.party{z-index:9990;pointer-events:none;position:fixed;inset:0}.party-sparks{width:100%;height:100%;position:absolute;inset:0}.party-lights{mix-blend-mode:screen;opacity:calc(.35 + var(--party-beat,0) * .35);position:absolute;inset:0;overflow:hidden}.party-lights i{background:conic-gradient(from 0deg,transparent 0 40%,#9fb8ff8c 44%,transparent 48% 60%,#ffb3e480 63%,transparent 67% 100%);width:160vmax;height:160vmax;margin-left:-80vmax;animation:6s linear infinite party-sweep;position:absolute;top:-40vmax;left:50%}.party-lights i:nth-child(2){background:conic-gradient(from 90deg,transparent 0 30%,#b3fff073 33%,transparent 37% 75%,#ffe2ae73 78%,transparent 82% 100%);animation-duration:9s;animation-direction:reverse}.party-lights i:nth-child(3){background:conic-gradient(from 200deg,transparent 0 45%,#c2b1ff80 49%,transparent 53% 100%);animation-duration:7s;top:auto;bottom:-40vmax}@keyframes party-sweep{to{transform:rotate(360deg)}}html[data-party=on] .station-case .case-title,html[data-party=on] .station-case .case-section-head h2{transform:scale(calc(1 + var(--party-beat,0) * .025));transform-origin:0;text-shadow:0 0 calc(var(--party-beat,0) * 24px) #c2b1ffe6}html[data-party=on][data-party-beat="0"] .station-case :is(.case-title,.case-section-head h2,.case-wheel li button){color:#9fb8ff}html[data-party=on][data-party-beat="1"] .station-case :is(.case-title,.case-section-head h2,.case-wheel li button){color:#ffb3e4}html[data-party=on][data-party-beat="2"] .station-case :is(.case-title,.case-section-head h2,.case-wheel li button){color:#b3fff0}html[data-party=on][data-party-beat="3"] .station-case :is(.case-title,.case-section-head h2,.case-wheel li button){color:#ffe2ae}html[data-party=on] .station-case :is(.case-visual,.case-brief,.case-figure,.case-results-grid){box-shadow:0 0 calc(var(--party-beat,0) * 40px) #9fb8ff73}html[data-party=on] .station-case .case-cover>img{filter:saturate(calc(1 + var(--party-beat,0) * .8)) hue-rotate(calc(var(--party-beat,0) * 40deg))}html[data-party=on] .case-wheel-cd{animation:.8s linear infinite party-disc}@keyframes party-disc{to{rotate:360deg}}html[data-party=calm] .party-lights{opacity:.25}html[data-party=calm] .party-lights i{animation:none}.party-frame{box-shadow:inset 0 0 calc(20px + var(--party-beat,0) * 70px) #9fb8ffd9;opacity:calc(.3 + var(--party-beat,0) * .7);border:8px solid #9fb8ff;position:absolute;inset:0}html[data-party-beat="1"] .party-frame{box-shadow:inset 0 0 calc(20px + var(--party-beat,0) * 70px) #ffb3e4d9;border-color:#ffb3e4}html[data-party-beat="2"] .party-frame{box-shadow:inset 0 0 calc(20px + var(--party-beat,0) * 70px) #b3fff0d9;border-color:#b3fff0}html[data-party-beat="3"] .party-frame{box-shadow:inset 0 0 calc(20px + var(--party-beat,0) * 70px) #ffe2aed9;border-color:#ffe2ae}.party-monsters{justify-content:space-evenly;align-items:flex-end;display:flex;position:absolute;bottom:14px;left:0;right:0}.party-monster{transform-origin:50% 100%;width:clamp(40px,5.4vw,68px);animation:monster-hop var(--party-beat-s,.484s) cubic-bezier(.3,0,.5,1) infinite;animation-delay:calc(var(--m) * var(--party-beat-s,.484s) * .5);filter:drop-shadow(0 6px 10px #00000073)}.party-monster.kind-tall{width:clamp(40px,5.4vw,68px)}.party-monster.kind-tiny{width:clamp(30px,3.8vw,48px)}.party-monster.move-spin{animation-name:monster-hop-spin;animation-duration:calc(var(--party-beat-s,.484s) * 2)}.party-monster.move-float{animation:monster-float calc(var(--party-beat-s,.484s) * 4) ease-in-out infinite}.party-monster.move-drink{animation:monster-sway calc(var(--party-beat-s,.484s) * 2) ease-in-out infinite}.party-monster.move-nod{animation:monster-nod var(--party-beat-s,.484s) ease-in-out infinite}.party-monster.move-bounce{animation:monster-hop calc(var(--party-beat-s,.484s) / 2) cubic-bezier(.3,0,.5,1) infinite}.party-monster svg{width:100%;height:auto;display:block;overflow:visible}.party-monster .monster-arm{transform-box:fill-box;animation:monster-wave calc(var(--party-beat-s,.484s) * 2) ease-in-out infinite}.party-monster .monster-arm-l{transform-origin:100% 0}.party-monster .monster-arm-r{transform-origin:0 0;animation-direction:reverse}.party-monster .monster-leg{transform-box:fill-box;transform-origin:50% 0;animation:monster-kick var(--party-beat-s,.484s) ease-in-out infinite alternate}.party-monster .monster-leg-r{animation-direction:alternate-reverse}.party-monster .monster-eyes{transform-box:fill-box;transform-origin:50%;animation:2.6s step-end infinite monster-blink;animation-delay:calc(var(--m) * .37s)}.party-monster .monster-antenna{transform-box:fill-box;transform-origin:50% 100%;animation:monster-wave var(--party-beat-s,.484s) ease-in-out infinite alternate}.party-monster .monster-sip{transform-box:fill-box;transform-origin:50% 100%;animation:monster-sip calc(var(--party-beat-s,.484s) * 4) ease-in-out infinite}.party-monster .monster-phones{transform-box:fill-box;transform-origin:50%;animation:monster-nod var(--party-beat-s,.484s) ease-in-out infinite}.party-monster .ghost-hem{animation:ghost-hem calc(var(--party-beat-s,.484s) / 2) steps(2) infinite}@keyframes monster-float{0%,to{transform:translateY(-10%)rotate(-6deg)}50%{transform:translateY(-35%)rotate(6deg)}}@keyframes monster-sway{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}@keyframes monster-nod{0%,to{transform:translateY(0)rotate(0)}40%{transform:translateY(6%)rotate(-5deg)}}@keyframes monster-sip{0%,55%,to{transform:rotate(0)}65%,90%{transform:translate(-40%,10%)rotate(-50deg)}}@keyframes ghost-hem{to{transform:translate(2px)}}@keyframes monster-hop{0%,to{transform:translateY(0)scale(1.08,.9)}30%{transform:translateY(-38%)scale(.94,1.08)}60%{transform:translateY(-8%)scale(1)}}@keyframes monster-hop-spin{0%,to{transform:translateY(0)rotate(0)scale(1.08,.9)}25%{transform:translateY(-55%)rotate(-12deg)scale(.94,1.08)}50%{transform:translateY(0)rotate(0)scale(1.06,.92)}75%{transform:translateY(-35%)rotate(12deg)scale(.96,1.05)}}@keyframes monster-wave{0%,to{transform:rotate(-35deg)}50%{transform:rotate(35deg)}}@keyframes monster-kick{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}@keyframes monster-blink{0%,92%{transform:scaleY(1)}94%,to{transform:scaleY(.1)}}.party-letter{display:inline-block}.party-letter.is-space{width:.28em}.party-letter.is-hop{z-index:1;color:var(--hop-color,#c2b1ff);text-shadow:0 0 10px var(--hop-color,#c2b1ff);animation:.5s cubic-bezier(.3,0,.3,1) party-letter-hop;position:relative}@keyframes party-letter-hop{0%{transform:translateY(0)rotate(0)scale(1)}40%{transform:translateY(-.7em)rotate(-14deg)scale(1.35)}70%{transform:translateY(.05em)rotate(6deg)scale(.95)}to{transform:translateY(0)rotate(0)scale(1)}}html[data-party=on] .station-case :is(.case-tags li,.case-meta-item,.case-brief dl>div,.case-section-body p,.case-visual,.case-figure,.case-result,.case-sign,.credits-card,.recommendation-card,.case-back,.case-controls){animation:party-bop calc(var(--party-beat-s,.484s) * 2) ease-in-out infinite}html[data-party=on] .station-case :is(.case-tags li,.case-meta-item,.case-brief dl>div,.case-result,.credits-card,.recommendation-card,.case-sign):nth-child(2n){animation-direction:reverse}html[data-party=on] .station-case .case-section-body p:nth-child(2n){animation-name:party-sway}html[data-party=on] .station-case :is(.case-visual,.case-figure){animation-name:party-pulse;animation-duration:var(--party-beat-s,.484s)}@keyframes party-bop{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-6px)rotate(-1.5deg)}50%{transform:translateY(0)rotate(0)}75%{transform:translateY(-6px)rotate(1.5deg)}}@keyframes party-sway{0%,to{transform:translate(0)skew(0)}25%{transform:translate(-8px)skew(3deg)}75%{transform:translate(8px)skew(-3deg)}}@keyframes party-pulse{0%,to{transform:scale(1)}15%{transform:scale(1.02)}}html[data-party=calm] .party-frame{opacity:.35}html[data-party=calm] .party-monster,html[data-party=calm] .party-monster *{animation:none}.party-flood{opacity:calc(.25 + var(--party-beat,0) * .35);mix-blend-mode:screen;background:radial-gradient(120% 90% at 50% 100%,#9fb8ff59,#0000 60%);position:absolute;inset:0}html[data-party-beat="1"] .party-flood{background:radial-gradient(120% 90% at 20% 0,#ffb3e459,#0000 60%)}html[data-party-beat="2"] .party-flood{background:radial-gradient(120% 90% at 80% 0,#b3fff052,#0000 60%)}html[data-party-beat="3"] .party-flood{background:radial-gradient(120% 90%,#ffe2ae4d,#0000 60%)}.party-spots{mix-blend-mode:screen;position:absolute;inset:0}.party-spots i{clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);filter:blur(6px);transform-origin:50% 0;width:60vmax;height:130vh;opacity:calc(.35 + var(--party-beat,0) * .4);background:linear-gradient(#ffffff8c,#c2b1ff2e 55%,#0000 90%);position:absolute;top:-10vh}.party-spots i:first-child{animation:3.8s ease-in-out infinite alternate party-spot-l;left:-22vmax}.party-spots i:nth-child(2){background:linear-gradient(#ffffff80,#b3fff02e 55%,#0000 90%);animation:4.4s ease-in-out infinite alternate party-spot-r;right:-22vmax}@keyframes party-spot-l{0%{transform:rotate(-38deg)}to{transform:rotate(-4deg)}}@keyframes party-spot-r{0%{transform:rotate(38deg)}to{transform:rotate(4deg)}}.party-lasers{mix-blend-mode:screen;width:0;height:0;position:absolute;bottom:-2vh;left:50%}.party-lasers i{transform-origin:0;width:150vmax;height:2px;animation:party-laser calc(2.6s + var(--l) * .35s) ease-in-out infinite alternate;animation-delay:calc(var(--l) * -.45s);background:linear-gradient(90deg,#fffffff2,#9fb8ffcc 30%,#0000 75%);position:absolute;top:0;left:0;box-shadow:0 0 10px #9fb8ffe6}.party-lasers i:nth-child(2n){background:linear-gradient(90deg,#fffffff2,#ffb3e4cc 30%,#0000 75%);box-shadow:0 0 10px #ffb3e4e6}@keyframes party-laser{0%{transform:rotate(-172deg)}to{transform:rotate(-8deg)}}html[data-party=calm] :is(.party-spots,.party-lasers){display:none}html[data-party=calm] .party-flood{opacity:.2}.party-walker{--walk:calc(6vw + var(--m) * 1.6vw);animation:monster-walk calc(5s + var(--m) * .9s) linear infinite;animation-delay:calc(var(--m) * -1.3s)}@keyframes monster-walk{0%{transform:translate(calc(var(--walk) * -1)) scaleX(1)}49.9%{transform:translate(var(--walk)) scaleX(1)}50%{transform:translate(var(--walk)) scaleX(-1)}99.9%{transform:translate(calc(var(--walk) * -1)) scaleX(-1)}to{transform:translate(calc(var(--walk) * -1)) scaleX(1)}}html[data-party=calm] .party-walker{animation:none}html[data-perf=lite] .party-spots i{filter:none}html[data-perf=lite] .party-lasers i{box-shadow:none}html[data-perf=lite] .party-monster{filter:none}
