/* A tighter header, with a subtle settings disclosure immediately above the phone. */
.preference-shell{height:20px}.display-options>summary{min-height:20px;padding:2px 0 1px 10px;line-height:17px}.nav{height:64px}.preference-panel{top:24px}.preference-panel .seasonal-toggle{flex-basis:100%;text-align:left}.preference-panel #seasonal-help{padding-top:8px;font-size:11px}.preference-panel{z-index:50}html{scroll-padding-top:100px}
#seasonal-decorations{position:absolute;top:0;left:0;width:100%;height:760px;pointer-events:none;overflow:hidden;user-select:none}#seasonal-decorations[hidden]{display:none}#seasonal-decorations svg{display:block;width:100%;height:100%}.preference-bar{position:relative;z-index:40}.season-web{position:absolute;top:0;width:112px;height:112px;color:#859195;opacity:.6}.season-web.left{left:0}.season-web.right{right:0;transform:scaleX(-1)}.season-pumpkin{position:absolute;top:88px;right:10px;width:85px;transform:rotate(8deg)}.pumpkin-glow{filter:drop-shadow(0 0 5px #ffe380);animation:pumpkinGlow 3s ease-in-out infinite alternate}.season-garland{position:absolute;top:0;left:0;width:100%;height:64px}.season-garland svg{object-fit:cover}.festive-bulb{filter:drop-shadow(0 0 4px currentColor);animation:bulbGlow 3s ease-in-out infinite alternate}.bulb-1{animation-delay:-1s}.bulb-2{animation-delay:-2s}
@keyframes pumpkinGlow{from{filter:drop-shadow(0 0 3px #ffdd77)}to{filter:drop-shadow(0 0 9px #ffe7a0)}}@keyframes bulbGlow{from{opacity:.7}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#seasonal-decorations *{animation:none!important}}@media(max-width:800px){.preference-shell{height:20px}.nav{height:60px}.season-web{width:65px;height:65px}.season-pumpkin{width:55px;top:87px;right:0}.season-garland{height:38px}html{scroll-padding-top:20px}}


/* Fixed decorations hang from the header; motion has its own viewport layer. */
.seasonal-anchor{position:relative;height:0;z-index:8;pointer-events:none}
.nav-phone{display:flex;align-items:center;gap:6px;flex:none}
.nav-holiday-icon{display:flex;align-items:center;gap:2px}
.nav-holiday-icon[hidden],#seasonal-motion[hidden]{display:none}
.nav-holiday-icon svg{display:block;width:25px;height:31px}
.nav-holiday-icon .pumpkin-glow{animation:none}
#seasonal-motion{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:9}
#seasonal-motion svg{display:block;width:100%;height:100%}
.season-particle{position:absolute}
.season-flake{top:-14px;left:var(--x);width:calc(var(--size) * .85);height:calc(var(--size) * .85);border-radius:50%;background:#fff;box-shadow:0 0 1px 1px #415e7899,0 0 6px #6b9bb4b0;animation:holidaySnow var(--duration) linear var(--delay) infinite}
/* One slow, faint bat enters from each viewport edge. */
.season-bat{width:16px;animation:holidayBat var(--duration) linear var(--delay) infinite}
.season-bat:nth-child(4n+1){top:26%;left:-24px;--travel-x:calc(100vw + 48px);--travel-y:36vh;--tilt:12deg;--facing:1}
.season-bat:nth-child(4n+2){top:65%;left:calc(100% + 24px);--travel-x:calc(-100vw - 48px);--travel-y:-45vh;--tilt:-12deg;--facing:-1;animation-delay:calc(var(--delay) - 7s)}
.season-bat:nth-child(4n+3){top:-24px;left:68%;--travel-x:-45vw;--travel-y:calc(100vh + 48px);--tilt:38deg;--facing:-1;animation-delay:calc(var(--delay) - 14s)}
.season-bat:nth-child(4n+4){top:calc(100% + 24px);left:28%;--travel-x:42vw;--travel-y:calc(-100vh - 48px);--tilt:-38deg;--facing:1;animation-delay:calc(var(--delay) - 21s)}
.season-spider{position:absolute;top:38%;left:38%;width:16px;height:54px;transform:translateX(-50%);opacity:.65;animation:spiderDrop 6s ease-in-out var(--delay) infinite alternate}
.season-spider::before{content:'';position:absolute;top:0;bottom:12px;left:50%;width:1px;background:currentColor}
#seasonal-decorations .season-spider svg{position:absolute;bottom:0;height:16px}
.season-treat{bottom:-20px;left:var(--x);width:13px;opacity:.25;filter:drop-shadow(0 1px 2px #34263870);animation:eggBounce var(--duration) linear var(--delay) infinite}
.season-newyear-banner{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:max-content;max-width:90%;padding:5px 18px;border:1px solid #e1bb67;border-radius:30px;background:#27323a;color:#fff1c5;font-size:14px;font-weight:700;box-shadow:0 2px 8px #0003}
.season-newyear-banner span{color:#efc76f;padding-inline:4px}
.season-burst{position:absolute;left:var(--x);top:var(--y);width:1px;height:1px;animation:firework 4.2s ease-out var(--delay) infinite}
.season-burst i{position:absolute;left:0;top:0;width:3.5px;height:calc(var(--length) * .86);transform-origin:50% 0;transform:rotate(var(--angle));background:linear-gradient(transparent 28%,var(--burst) 80%,#fff9);border-radius:50%;box-shadow:0 0 2px #fff6}
@keyframes holidaySnow{0%{transform:translate3d(0,0,0);opacity:0}8%,84%{opacity:.684}100%{transform:translate3d(34px,104vh,0);opacity:0}}
@keyframes holidayBat{
  0%{transform:translate3d(0,0,0) rotate(var(--tilt)) scaleX(var(--facing));opacity:0}
  18%,78%{opacity:.22}
  42%{transform:translate3d(calc(var(--travel-x) * .42 + 12px),calc(var(--travel-y) * .42 - 14px),0) rotate(calc(var(--tilt) + 9deg)) scaleX(var(--facing))}
  100%{transform:translate3d(var(--travel-x),var(--travel-y),0) rotate(var(--tilt)) scaleX(var(--facing));opacity:0}
}
@keyframes spiderDrop{from{height:32px}to{height:76px}}
@keyframes eggBounce{
  0%,100%{transform:translateY(0) rotate(-12deg)}
  17%{transform:translateY(-13vh) rotate(16deg);animation-timing-function:ease-in}
  34%{transform:translateY(-20px) rotate(-10deg);animation-timing-function:ease-out}
  49%{transform:translateY(-7vh) rotate(12deg);animation-timing-function:ease-in}
  63%{transform:translateY(-20px) rotate(-7deg);animation-timing-function:ease-out}
  73%{transform:translateY(-4vh) rotate(7deg);animation-timing-function:ease-in}
  83%{transform:translateY(-20px) rotate(0)}
}
@keyframes firework{0%,10%,68%,100%{opacity:0}10%{transform:scale(.12)}17%{opacity:.8}65%,100%{transform:scale(1.3)}}
@media(prefers-reduced-motion:reduce){#seasonal-motion:not([data-preview]){display:none}}
@media(max-width:800px){.nav-phone{gap:3px}.nav-phone .button{padding:10px 12px;font-size:12px;white-space:nowrap}.nav-holiday-icon svg{width:18px;height:24px}.season-flake:nth-child(n+21){display:none}.season-bat{width:13px}.season-treat{width:11px}}
@media(max-width:400px){header .nav{padding-inline:12px;gap:7px}.nav-phone .button{padding-inline:8px;font-size:11px}.nav-holiday-icon svg{width:15px;height:22px}}

.season-sport-banner{display:flex;align-items:center;gap:7px}
#seasonal-decorations .season-sport-banner svg{width:22px;height:22px;flex:none}
.season-sport-particle{width:24px;left:var(--x);top:-30px;animation:sportFloat var(--duration) linear var(--delay) infinite}
.season-sport-race{left:-48px;top:calc(15% + var(--x) * .68);width:38px;animation-name:sportRace}
.season-sport-race:nth-child(even){animation-direction:reverse}
.season-sport-race:nth-child(even) svg{transform:scaleX(-1)}
.season-sport-golf{top:auto;bottom:-22px;width:18px;animation-name:sportGolf;animation-duration:calc(var(--duration) * .55)}
@keyframes sportFloat{0%{transform:translateY(0) rotate(-18deg);opacity:0}16%,80%{opacity:.28}100%{transform:translate(32px,105vh) rotate(125deg);opacity:0}}
@keyframes sportRace{0%{transform:translateX(0);opacity:0}15%,80%{opacity:.27}100%{transform:translateX(calc(100vw + 96px));opacity:0}}
@keyframes sportGolf{
  0%,100%{transform:translateY(0);opacity:0}
  10%,76%{opacity:.35}
  24%{transform:translateY(-15vh);animation-timing-function:ease-in}
  42%{transform:translateY(-22px);animation-timing-function:ease-out}
  54%{transform:translateY(-8vh);animation-timing-function:ease-in}
  66%{transform:translateY(-22px);animation-timing-function:ease-out}
  74%{transform:translateY(-4vh);animation-timing-function:ease-in}
  84%{transform:translateY(-22px)}
}

.season-present{left:var(--x);bottom:10px;width:25px;opacity:.4;animation:presentBounce 3.6s ease-in-out var(--delay) infinite}
@keyframes presentBounce{
  0%,100%{transform:translateY(0) rotate(-3deg)}
  50%{transform:translateY(-12px) rotate(3deg)}
}

/* Give the Easter artwork a dedicated row so it never overlays the page. */
.seasonal-anchor:has(#seasonal-decorations[data-season="easter"]:not([hidden])){height:auto}
#seasonal-decorations[data-season="easter"]{position:relative;height:auto}
.season-easter-banner{display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,20px);padding:5px 12px;background:var(--surface);border-bottom:1px solid var(--line)}
.season-easter-banner .season-bunny{width:31px;height:38px;flex:none}
.season-easter-banner .season-eggs{display:flex;align-items:center;gap:clamp(5px,1.5vw,14px)}
.season-easter-banner .season-egg{width:clamp(16px,4vw,25px);height:auto;display:block}
.season-easter-banner .season-egg:nth-child(odd){transform:rotate(-10deg)}
.season-easter-banner .season-egg:nth-child(even){transform:rotate(10deg)}

.season-easter-greeting{color:var(--ink);font-size:clamp(13px,3.4vw,17px);font-weight:700;white-space:nowrap}
@media(max-width:370px){.season-easter-banner .season-egg:nth-child(n+5){display:none}}
