/* Seasonal theme. The layout never changes: only the hero takes on the season.
   html[data-season] is set by seasonal.js from the date (or ?season= for previews). */
html[data-season]:not([data-season-lite]) .hero{position:relative;color:#fff;max-width:none;margin:0;padding-top:120px;padding-bottom:110px;isolation:isolate;overflow:hidden}
html[data-season]:not([data-season-lite]) .hero::before{content:"";position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;transform:scale(1.04);filter:saturate(1.35) contrast(1.08) brightness(1.08);animation:seasonDrift 30s ease-in-out infinite alternate}
html[data-season]:not([data-season-lite]) .hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 42%,rgba(8,8,10,.18),rgba(8,8,10,.52) 72%),linear-gradient(180deg,rgba(8,8,10,.10),rgba(8,8,10,.25) 55%,var(--paper))}
html[data-season]:not([data-season-lite]) .hero h1{color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.45)}
html[data-season]:not([data-season-lite]) .hero p{color:rgba(255,255,255,.82)}
html[data-season]:not([data-season-lite]) .hero .btn{background:#fff;color:#111}
html[data-season]:not([data-season-lite]) .hero .btn.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(8px)}
html[data-season]:not([data-season-lite]) .hero .eyebrow{backdrop-filter:blur(8px)}
.season-note{display:none}
html[data-season]:not([data-season-lite]) .season-note{display:inline-block;margin-top:22px;font-size:14px;color:rgba(255,255,255,.85);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:2px}
html[data-season]:not([data-season-lite]) .season-note:hover{color:#fff;border-color:#fff}

html[data-season=halloween] .hero::before{background-image:url('/img/seasonal/halloween.jpg')}
html[data-season=halloween] .hero .eyebrow{color:#ffb070;background:rgba(255,122,26,.16)}
html[data-season=christmas] .hero::before{background-image:url('/img/seasonal/christmas.jpg')}
html[data-season=christmas] .hero .eyebrow{color:#f2d48a;background:rgba(232,199,102,.16)}

@keyframes seasonDrift{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-1.5%,-1%,0)}}
.season-fx{position:absolute;inset:0;z-index:-1;pointer-events:none}
@media (prefers-reduced-motion:reduce){html[data-season]:not([data-season-lite]) .hero::before{animation:none}.season-fx{display:none}}

/* Dark seasonal mode: the whole page goes dark with the season's accent. */
html[data-season]{color-scheme:dark}
html[data-season] body{--ink:#f4f1ec;--ink-soft:#b7b2ab;--paper:#0d0d10;--card:#17171c;--line:rgba(255,255,255,.09)}
html[data-season] nav{background:rgba(13,13,16,.72);border-bottom-color:rgba(255,255,255,.08)}
html[data-season] nav a{color:#e9e6e1}
html[data-season] .btn{background:#f4f1ec;color:#0d0d10}
html[data-season] .btn.ghost{background:transparent;color:#f4f1ec;border-color:rgba(255,255,255,.25)}
html[data-season] .btn.invert{background:#f4f1ec;color:#0d0d10}
html[data-season=halloween] body{--teal:#ff8a2a;--teal-soft:rgba(255,138,42,.14)}
html[data-season=christmas] body{--teal:#ff4d5e;--teal-soft:rgba(255,77,94,.14);--coral:#f2c14e;--coral-soft:rgba(242,193,78,.14)}
html[data-season]:not([data-season-lite]) .hero .eyebrow{font-weight:700}
html[data-season=halloween] .hero .eyebrow{color:#ffb070;background:rgba(255,122,26,.22)}
html[data-season=christmas] .hero .eyebrow{color:#ffd77a;background:rgba(255,77,94,.22)}

/* Closer card: was var(--ink) with white text, which turns light-on-light in dark mode */
html[data-season] .closer-card{background:linear-gradient(160deg,#1c1b22,#121116);color:#f4f1ec;border:1px solid rgba(255,255,255,.08)}
html[data-season] .closer-card p{color:rgba(244,241,236,.68)}
html[data-season=halloween] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(255,138,42,.18),transparent 60%),linear-gradient(160deg,#1c1714,#110f10)}
html[data-season=christmas] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(255,77,94,.16),transparent 60%),linear-gradient(160deg,#1a1416,#101011)}

/* Animated logo: the "do" takes on the season */
html[data-season] .logo span{display:inline-block;position:relative}
html[data-season=christmas] .logo span{animation:xmasDo 6s ease-in-out infinite}
@keyframes xmasDo{0%,100%{color:#ff4d5e;text-shadow:0 0 10px rgba(255,77,94,.45)}33%{color:#3ccf7a;text-shadow:0 0 10px rgba(60,207,122,.45)}66%{color:#f2c14e;text-shadow:0 0 12px rgba(242,193,78,.55)}}
html[data-season=christmas] .logo span::after{content:"";position:absolute;right:-7px;top:-3px;width:5px;height:5px;background:#ffe9a8;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:twinkle 2.4s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.3) rotate(45deg)}}
html[data-season=halloween] .logo span{color:#ff8a2a;animation:flicker 3.2s steps(1,end) infinite}
@keyframes flicker{0%,100%{text-shadow:0 0 8px rgba(255,138,42,.55);opacity:1}42%{opacity:.92}44%{text-shadow:0 0 2px rgba(255,138,42,.2);opacity:.7}46%{opacity:1;text-shadow:0 0 12px rgba(255,138,42,.7)}78%{opacity:.85}80%{opacity:1}}
@media (prefers-reduced-motion:reduce){html[data-season] .logo span,html[data-season] .logo span::after{animation:none}}

/* Hallowe'en jack-o'-lantern beside the logo */
html[data-season=halloween] .logo span::after{content:"";position:absolute;right:-24px;top:-4px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M30%2010c1-5%205-7%209-6-3%202-4%204-4%207z%22%20fill%3D%22%235a8f3c%22/%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2238%22%20rx%3D%2214%22%20ry%3D%2219%22%20fill%3D%22%23e8741a%22/%3E%3Cellipse%20cx%3D%2244%22%20cy%3D%2238%22%20rx%3D%2214%22%20ry%3D%2219%22%20fill%3D%22%23e8741a%22/%3E%3Cellipse%20cx%3D%2232%22%20cy%3D%2238%22%20rx%3D%2215%22%20ry%3D%2221%22%20fill%3D%22%23f58a24%22/%3E%3Cpath%20d%3D%22M20%2030l7%206h-9zM44%2030l-7%206h9z%22%20fill%3D%22%23ffd25c%22/%3E%3Cpath%20d%3D%22M18%2044c4%206%2024%206%2028%200l-4%201-3%204-3-4-4%204-3-4-3%204-3-4z%22%20fill%3D%22%23ffd25c%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(255,170,60,.75));opacity:0;animation:pumpkinIn .9s .4s ease-out forwards,pumpkinBob 3.4s 1.3s ease-in-out infinite,pumpkinGlow 2.6s 1.3s steps(1,end) infinite}
@keyframes pumpkinIn{from{opacity:0;transform:translateY(6px) scale(.6) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes pumpkinBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(6deg)}}
@keyframes pumpkinGlow{0%,100%{filter:drop-shadow(0 0 5px rgba(255,170,60,.75))}47%{filter:drop-shadow(0 0 2px rgba(255,170,60,.3))}49%{filter:drop-shadow(0 0 9px rgba(255,190,80,.95))}}
html[data-season=halloween] nav .logo{margin-right:24px}
@media (prefers-reduced-motion:reduce){html[data-season=halloween] .logo span::after{animation:none;opacity:1}}

/* Christmas tree beside the logo (replaces the plain star) */
html[data-season=christmas] .logo span::after{content:"";position:absolute;right:-24px;top:-6px;width:20px;height:22px;clip-path:none;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M32%206l3%206%206%201-5%204%201%206-5-3-5%203%201-6-5-4%206-1z%22%20fill%3D%22%23ffd25c%22/%3E%3Cpath%20d%3D%22M32%2016L18%2034h7L13%2048h38L39%2034h7z%22%20fill%3D%22%232fa65a%22/%3E%3Cpath%20d%3D%22M32%2016l-6%208h12z%22%20fill%3D%22%233cc46c%22/%3E%3Crect%20x%3D%2228%22%20y%3D%2248%22%20width%3D%228%22%20height%3D%228%22%20rx%3D%221%22%20fill%3D%22%238a5a3c%22/%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2231%22%20r%3D%222.2%22%20fill%3D%22%23ff4d5e%22/%3E%3Ccircle%20cx%3D%2237%22%20cy%3D%2236%22%20r%3D%222.2%22%20fill%3D%22%23ffd25c%22/%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2242%22%20r%3D%222.2%22%20fill%3D%22%236ec6ff%22/%3E%3Ccircle%20cx%3D%2240%22%20cy%3D%2244%22%20r%3D%222.2%22%20fill%3D%22%23ff4d5e%22/%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2227%22%20r%3D%222%22%20fill%3D%22%236ec6ff%22/%3E%3C/svg%3E") center/contain no-repeat;opacity:0;animation:treeIn .9s .4s ease-out forwards,treeLights 1.8s 1.3s steps(1,end) infinite}
@keyframes treeIn{from{opacity:0;transform:translateY(6px) scale(.6)}to{opacity:1;transform:none}}
@keyframes treeLights{0%,100%{filter:drop-shadow(0 0 4px rgba(255,210,92,.8)) saturate(1)}50%{filter:drop-shadow(0 0 8px rgba(255,77,94,.7)) saturate(1.6) brightness(1.15)}}
html[data-season=christmas] nav .logo{margin-right:24px}
@media (prefers-reduced-motion:reduce){html[data-season=christmas] .logo span::after{animation:none;opacity:1}}

/* ===== Year-round themes (approved 2026-10-03). Preview any with ?season=<name> ===== */
html[data-season=newyear] body{--teal:#ffcf5a;--teal-soft:rgba(255,207,90,.14)}
html[data-season=newyear]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/newyear.jpg')}
html[data-season=newyear] .hero .eyebrow{color:#ffe39a;background:rgba(255,207,90,.22)}
html[data-season=newyear] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(255,207,90,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=newyear] .logo span{background:linear-gradient(100deg,#ffcf5a 20%,#fff8e1 40%,#ffcf5a 60%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:goldSweep 3.2s linear infinite}
html[data-season=newyear] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cg%20stroke-linecap%3D%22round%22%20stroke-width%3D%224%22%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2258.0%22%20y2%3D%2232.0%22%20stroke%3D%22%23ffd36b%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2250.4%22%20y2%3D%2250.4%22%20stroke%3D%22%23fff%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2232.0%22%20y2%3D%2258.0%22%20stroke%3D%22%23ffd36b%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2213.6%22%20y2%3D%2250.4%22%20stroke%3D%22%23ff9a4d%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%226.0%22%20y2%3D%2232.0%22%20stroke%3D%22%23ffd36b%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2213.6%22%20y2%3D%2213.7%22%20stroke%3D%22%23fff%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2231.9%22%20y2%3D%226.0%22%20stroke%3D%22%23ffd36b%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2250.3%22%20y2%3D%2213.6%22%20stroke%3D%22%23ff9a4d%22/%3E%3C/g%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2232%22%20r%3D%226%22%20fill%3D%22%23fff6d8%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(255,207,90,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,burst 2.4s ease-out infinite 1.1s}
html[data-season=newyear] nav .logo{margin-right:24px}
html[data-season=valentines] body{--teal:#ff4f7b;--teal-soft:rgba(255,79,123,.14)}
html[data-season=valentines]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/valentines.jpg')}
html[data-season=valentines] .hero .eyebrow{color:#ffb3c6;background:rgba(255,79,123,.22)}
html[data-season=valentines] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(255,79,123,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=valentines] .logo span{color:#ff4f7b;animation:beat 1.6s ease-in-out infinite}
html[data-season=valentines] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M32%2056S6%2040%206%2022a13%2013%200%200%201%2026-4%2013%2013%200%200%201%2026%204c0%2018-26%2034-26%2034z%22%20fill%3D%22%23ff3d6e%22/%3E%3Cpath%20d%3D%22M18%2016a8%208%200%200%200-6%208%22%20stroke%3D%22%23ffc2d1%22%20stroke-width%3D%224%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(255,79,123,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,beat 1.6s ease-in-out infinite 1.1s}
html[data-season=valentines] nav .logo{margin-right:24px}
html[data-season=uni] body{--teal:#ffd23f;--teal-soft:rgba(255,210,63,.14)}
html[data-season=uni]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/uni.jpg')}
html[data-season=uni] .hero .eyebrow{color:#ffe58a;background:rgba(255,210,63,.22)}
html[data-season=uni] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(255,210,63,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=uni] .logo span{color:#fff;background:linear-gradient(transparent 55%,rgba(255,210,63,.75) 55%,rgba(255,210,63,.75) 92%,transparent 92%) no-repeat left/0% 100%;animation:highlight 4s ease-in-out infinite;padding:0 2px;margin:0 -2px}
html[data-season=uni] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M32%2010L2%2024l30%2014%2030-14z%22%20fill%3D%22%23f4f1ec%22/%3E%3Cpath%20d%3D%22M16%2031v12c0%205%2032%205%2032%200V31L32%2038z%22%20fill%3D%22%23d9d4cc%22/%3E%3Cpath%20d%3D%22M58%2026v16%22%20stroke%3D%22%23ffd23f%22%20stroke-width%3D%223%22/%3E%3Ccircle%20cx%3D%2258%22%20cy%3D%2244%22%20r%3D%224%22%20fill%3D%22%23ffd23f%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(255,210,63,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,capToss 4s ease-in-out infinite 1.1s}
html[data-season=uni] nav .logo{margin-right:24px}
html[data-season=mothersday] body{--teal:#ff8fb1;--teal-soft:rgba(255,143,177,.14)}
html[data-season=mothersday]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/mothersday.jpg')}
html[data-season=mothersday] .hero .eyebrow{color:#ffc4d6;background:rgba(255,143,177,.22)}
html[data-season=mothersday] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(255,143,177,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=mothersday] .logo span{color:#ff8fb1;animation:bloomDo 5s ease-in-out infinite}
html[data-season=mothersday] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M32%2058V30%22%20stroke%3D%22%235fae7a%22%20stroke-width%3D%224%22/%3E%3Cpath%20d%3D%22M32%2044c-8-2-14-8-14-14%208%200%2014%206%2014%2014zM32%2040c8-2%2012-8%2012-12-8%200-12%206-12%2012z%22%20fill%3D%22%235fae7a%22/%3E%3Cpath%20d%3D%22M20%2010c0%2012%205%2020%2012%2020s12-8%2012-20l-6%206-6-10-6%2010z%22%20fill%3D%22%23ff8fb1%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(255,143,177,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,sway 3.6s ease-in-out infinite 1.1s}
html[data-season=mothersday] nav .logo{margin-right:24px}
html[data-season=fathersday] body{--teal:#5b9bff;--teal-soft:rgba(91,155,255,.14)}
html[data-season=fathersday]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/fathersday.jpg')}
html[data-season=fathersday] .hero .eyebrow{color:#a9c9ff;background:rgba(91,155,255,.22)}
html[data-season=fathersday] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(91,155,255,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=fathersday] .logo span{color:#5b9bff;animation:dadDo 5s ease-in-out infinite}
html[data-season=fathersday] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M24%206h16l-4%208h-8z%22%20fill%3D%22%237fb2ff%22/%3E%3Cpath%20d%3D%22M28%2014h8l6%2032-10%2012-10-12z%22%20fill%3D%22%233d7bff%22/%3E%3Cpath%20d%3D%22M27%2024l12-4M25%2034l14-5M24%2044l15-5%22%20stroke%3D%22%239cc4ff%22%20stroke-width%3D%222.5%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(91,155,255,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,swing 3s ease-in-out infinite 1.1s}
html[data-season=fathersday] nav .logo{margin-right:24px}
html[data-season=easter] body{--teal:#c9a7ff;--teal-soft:rgba(201,167,255,.14)}
html[data-season=easter]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/easter.jpg')}
html[data-season=easter] .hero .eyebrow{color:#e2d2ff;background:rgba(201,167,255,.22)}
html[data-season=easter] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(201,167,255,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=easter] .logo span{animation:pastelDo 6s linear infinite}
html[data-season=easter] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cellipse%20cx%3D%2232%22%20cy%3D%2235%22%20rx%3D%2220%22%20ry%3D%2225%22%20fill%3D%22%23ffd9ec%22/%3E%3Cpath%20d%3D%22M13%2030l7%205%206-5%206%205%206-5%206%205%207-5%22%20stroke%3D%22%239ed8ff%22%20stroke-width%3D%224%22%20fill%3D%22none%22/%3E%3Cpath%20d%3D%22M13%2042l7-4%206%204%206-4%206%204%206-4%207%204%22%20stroke%3D%22%23bdf0c5%22%20stroke-width%3D%224%22%20fill%3D%22none%22/%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2220%22%20r%3D%223%22%20fill%3D%22%23ffe28a%22/%3E%3Ccircle%20cx%3D%2240%22%20cy%3D%2222%22%20r%3D%223%22%20fill%3D%22%23c9b6ff%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(201,167,255,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,wobble 3s ease-in-out infinite 1.1s}
html[data-season=easter] nav .logo{margin-right:24px}
html[data-season=movember] body{--teal:#8fb3d9;--teal-soft:rgba(143,179,217,.14)}
html[data-season=movember]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/movember.jpg')}
html[data-season=movember] .hero .eyebrow{color:#c3d6ea;background:rgba(143,179,217,.22)}
html[data-season=movember] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(143,179,217,.18),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=movember] .logo span{color:#8fb3d9;animation:steelDo 4s ease-in-out infinite}
html[data-season=movember] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cpath%20d%3D%22M32%2026c-6-6-14-6-20%200-4%204-8%206-10%204%200%208%208%2012%2016%2010%206-2%2010-6%2014-8%204%202%208%206%2014%208%208%202%2016-2%2016-10-2%202-6%200-10-4-6-6-14-6-20%200z%22%20fill%3D%22%23e9e6e1%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(143,179,217,.7));opacity:0;animation:emblemIn .8s .3s ease-out forwards,twirl 3.4s ease-in-out infinite 1.1s}
html[data-season=movember] nav .logo{margin-right:24px}
html[data-season=january] body{--teal:#c8f031;--teal-soft:rgba(200,240,49,.14)}
html[data-season=january]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/january.jpg')}
html[data-season=january] .hero .eyebrow{color:#e2ff8a;background:rgba(200,240,49,.2)}
html[data-season=january] .closer-card{background:radial-gradient(ellipse at 50% 0%,rgba(200,240,49,.16),transparent 60%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=january] .logo span{color:#c8f031;animation:limeDo 2.4s ease-in-out infinite}
html[data-season=january] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2232%22%20r%3D%2224%22%20fill%3D%22none%22%20stroke%3D%22%232a2f1a%22%20stroke-width%3D%228%22/%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2232%22%20r%3D%2224%22%20fill%3D%22none%22%20stroke%3D%22%23c8f031%22%20stroke-width%3D%228%22%20stroke-linecap%3D%22round%22%20stroke-dasharray%3D%22151%22%20stroke-dashoffset%3D%22151%22%20transform%3D%22rotate%28-90%2032%2032%29%22%3E%3Canimate%20attributeName%3D%22stroke-dashoffset%22%20values%3D%22151%3B0%3B0%3B151%22%20keyTimes%3D%220%3B.55%3B.85%3B1%22%20dur%3D%223.2s%22%20repeatCount%3D%22indefinite%22/%3E%3C/circle%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2232%22%20r%3D%226%22%20fill%3D%22%23c8f031%22%3E%3Canimate%20attributeName%3D%22r%22%20values%3D%224%3B7%3B4%22%20dur%3D%221.6s%22%20repeatCount%3D%22indefinite%22/%3E%3C/circle%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(200,240,49,.6));opacity:0;animation:emblemIn .8s .3s ease-out forwards}
html[data-season=january] nav .logo{margin-right:24px}
@keyframes emblemIn{from{opacity:0;transform:translateY(6px) scale(.5)}to{opacity:1;transform:none}}
@keyframes goldSweep{to{background-position:-150% 0}}
@keyframes beat{0%,100%{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}36%{transform:scale(1.12)}50%{transform:scale(1)}}
@keyframes highlight{0%{background-size:0% 100%}30%,80%{background-size:100% 100%}100%{background-size:0% 100%;background-position:right}}
@keyframes bloomDo{0%,100%{color:#ff8fb1;text-shadow:0 0 8px rgba(255,143,177,.4)}50%{color:#ffc4d6;text-shadow:0 0 14px rgba(255,143,177,.6)}}
@keyframes dadDo{0%,100%{color:#5b9bff}50%{color:#a9c9ff;text-shadow:0 0 12px rgba(91,155,255,.5)}}
@keyframes pastelDo{0%,100%{color:#ffb3d9}25%{color:#9ed8ff}50%{color:#bdf0c5}75%{color:#ffe28a}}
@keyframes steelDo{0%,100%{color:#8fb3d9;letter-spacing:0}50%{color:#c3d6ea;text-shadow:0 0 10px rgba(143,179,217,.5)}}
@keyframes sunsetDo{to{background-position:300% 0}}
@keyframes burst{0%{transform:scale(.2) rotate(0);opacity:0}15%{opacity:1}45%{transform:scale(1.15) rotate(20deg);opacity:1}70%,100%{transform:scale(1.3) rotate(30deg);opacity:0}}
@keyframes capToss{0%,60%,100%{transform:translateY(0) rotate(0)}72%{transform:translateY(-9px) rotate(-200deg)}86%{transform:translateY(-3px) rotate(-360deg)}}
@keyframes sway{0%,100%{transform:rotate(-8deg);transform-origin:50% 100%}50%{transform:rotate(8deg);transform-origin:50% 100%}}
@keyframes swing{0%,100%{transform:rotate(-10deg);transform-origin:50% 0}50%{transform:rotate(10deg);transform-origin:50% 0}}
@keyframes wobble{0%,60%,100%{transform:rotate(0)}66%{transform:rotate(-14deg)}74%{transform:rotate(12deg)}82%{transform:rotate(-6deg)}90%{transform:rotate(3deg)}}
@keyframes twirl{0%,70%,100%{transform:scaleX(1)}78%{transform:scaleX(1.25) rotate(-6deg)}86%{transform:scaleX(.9) rotate(6deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
html[data-season=uni] .logo span::after{right:-26px}
@media (prefers-reduced-motion:reduce){html[data-season] .logo span::after{opacity:1}}

html[data-season=july4] body{--teal:#ff4d5e;--teal-soft:rgba(255,77,94,.14)}
html[data-season=july4]:not([data-season-lite]) .hero::before{background-image:url('/img/seasonal/july4.jpg')}
html[data-season=july4] .hero .eyebrow{color:#c9d8ff;background:rgba(91,140,255,.22)}
html[data-season=july4] .closer-card{background:radial-gradient(ellipse at 30% 0%,rgba(255,77,94,.14),transparent 55%),radial-gradient(ellipse at 70% 0%,rgba(91,140,255,.16),transparent 55%),linear-gradient(160deg,#1a1a1f,#101012)}
html[data-season=july4] .logo span{animation:usaDo 3s ease-in-out infinite}
html[data-season=july4] .logo span::after{content:"";position:absolute;right:-24px;top:-5px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cg%20stroke-linecap%3D%22round%22%20stroke-width%3D%224%22%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2258.0%22%20y2%3D%2232.0%22%20stroke%3D%22%23ff4d5e%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2250.4%22%20y2%3D%2250.4%22%20stroke%3D%22%23fff%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2232.0%22%20y2%3D%2258.0%22%20stroke%3D%22%235b8cff%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2213.6%22%20y2%3D%2250.4%22%20stroke%3D%22%23ff4d5e%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%226.0%22%20y2%3D%2232.0%22%20stroke%3D%22%23fff%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2213.6%22%20y2%3D%2213.7%22%20stroke%3D%22%235b8cff%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2231.9%22%20y2%3D%226.0%22%20stroke%3D%22%23ff4d5e%22/%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2250.3%22%20y2%3D%2213.6%22%20stroke%3D%22%23fff%22/%3E%3C/g%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2232%22%20r%3D%226%22%20fill%3D%22%23fff%22/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 5px rgba(255,255,255,.6));opacity:0;animation:emblemIn .8s .3s ease-out forwards,burst 2.4s ease-out infinite 1.1s}
html[data-season=july4] nav .logo{margin-right:24px}
@keyframes usaDo{0%,100%{color:#ff4d5e;text-shadow:0 0 10px rgba(255,77,94,.45)}33%{color:#fff;text-shadow:0 0 10px rgba(255,255,255,.4)}66%{color:#5b8cff;text-shadow:0 0 10px rgba(91,140,255,.5)}}
@keyframes limeDo{0%,100%{text-shadow:0 0 6px rgba(200,240,49,.35)}50%{text-shadow:0 0 14px rgba(200,240,49,.75)}}

/* The home top draws its own backgrounds (for.js). Keep the season's colours and effects, not its single image. */
html[data-season]:not([data-season-lite]) .forhero::before{display:none}
html[data-season]:not([data-season-lite]) .forhero::after{background:linear-gradient(180deg,rgba(0,0,0,.42),rgba(0,0,0,.22) 42%,rgba(0,0,0,.66))}
html[data-season]:not([data-season-lite]) .forhero{padding-top:150px;padding-bottom:130px}

/* Year-round dark ("night"): the dark seasonal look without a season. Preview with ?season=night. */
html[data-season=night] body{--teal:#2fd3b8;--teal-soft:rgba(47,211,184,.14)}
html[data-season=night] .logo span{color:#2fd3b8}
html[data-season=night] .hero .eyebrow{color:#7ee8d6;background:rgba(47,211,184,.16)}
