body{margin:0}
a{color:inherit}a:hover{opacity:.75}
button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.stage{position:relative;overflow:hidden;-webkit-transition:background-color .9s ease,color .9s ease;transition:background-color .9s ease,color .9s ease}
.layer{position:absolute;inset:0;pointer-events:none}
.grain{position:absolute;inset:-60%;pointer-events:none;z-index:6;opacity:.16;mix-blend-mode:overlay;background-image:radial-gradient(rgba(0,0,0,.9) .6px,transparent .8px),radial-gradient(rgba(255,255,255,.9) .6px,transparent .8px);background-size:3px 3px,4px 4px;background-position:0 0,1px 2px;-webkit-animation:grain .9s steps(5) infinite;animation:grain .9s steps(5) infinite}
@-webkit-keyframes grain{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}20%{-webkit-transform:translate(-2%,1.5%);transform:translate(-2%,1.5%)}40%{-webkit-transform:translate(1.5%,-2%);transform:translate(1.5%,-2%)}60%{-webkit-transform:translate(-1%,-1%);transform:translate(-1%,-1%)}80%{-webkit-transform:translate(2%,1%);transform:translate(2%,1%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}
@keyframes grain{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}20%{-webkit-transform:translate(-2%,1.5%);transform:translate(-2%,1.5%)}40%{-webkit-transform:translate(1.5%,-2%);transform:translate(1.5%,-2%)}60%{-webkit-transform:translate(-1%,-1%);transform:translate(-1%,-1%)}80%{-webkit-transform:translate(2%,1%);transform:translate(2%,1%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}
.scan{z-index:5;background:repeating-linear-gradient(180deg,rgba(128,128,128,.16) 0 1px,transparent 1px 4px)}
.vig{z-index:5;-webkit-box-shadow:inset 0 0 18vw rgba(70,35,0,.24);box-shadow:inset 0 0 18vw rgba(70,35,0,.24)}
.flash{z-index:7;opacity:0;background:radial-gradient(60% 50% at 78% 16%,rgba(255,236,200,.9),transparent 70%)}
.flash.fl-a{-webkit-animation:flashA 1.2s ease-out both;animation:flashA 1.2s ease-out both}.flash.fl-b{-webkit-animation:flashB 1.2s ease-out both;animation:flashB 1.2s ease-out both}
@-webkit-keyframes flashA{0%{opacity:.85}100%{opacity:0}}
@keyframes flashA{0%{opacity:.85}100%{opacity:0}}@-webkit-keyframes flashB{0%{opacity:.85}100%{opacity:0}}@keyframes flashB{0%{opacity:.85}100%{opacity:0}}
.year.in-a{-webkit-animation:riseA 1s cubic-bezier(.16,.84,.24,1) both;animation:riseA 1s cubic-bezier(.16,.84,.24,1) both}.year.in-b{-webkit-animation:riseB 1s cubic-bezier(.16,.84,.24,1) both;animation:riseB 1s cubic-bezier(.16,.84,.24,1) both}
@-webkit-keyframes riseA{from{opacity:0;-webkit-transform:translateY(.18em) skewY(4deg);transform:translateY(.18em) skewY(4deg);-webkit-filter:blur(14px);filter:blur(14px)}to{opacity:1;-webkit-transform:none;transform:none;-webkit-filter:blur(0);filter:blur(0)}}
@keyframes riseA{from{opacity:0;-webkit-transform:translateY(.18em) skewY(4deg);transform:translateY(.18em) skewY(4deg);-webkit-filter:blur(14px);filter:blur(14px)}to{opacity:1;-webkit-transform:none;transform:none;-webkit-filter:blur(0);filter:blur(0)}}
@-webkit-keyframes riseB{from{opacity:0;-webkit-transform:translateY(.18em) skewY(4deg);transform:translateY(.18em) skewY(4deg);-webkit-filter:blur(14px);filter:blur(14px)}to{opacity:1;-webkit-transform:none;transform:none;-webkit-filter:blur(0);filter:blur(0)}}
@keyframes riseB{from{opacity:0;-webkit-transform:translateY(.18em) skewY(4deg);transform:translateY(.18em) skewY(4deg);-webkit-filter:blur(14px);filter:blur(14px)}to{opacity:1;-webkit-transform:none;transform:none;-webkit-filter:blur(0);filter:blur(0)}}
.pill.in-a{-webkit-animation:fadeA .7s .15s both;animation:fadeA .7s .15s both}.pill.in-b{-webkit-animation:fadeB .7s .15s both;animation:fadeB .7s .15s both}
@-webkit-keyframes fadeA{from{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px)}to{opacity:1;-webkit-transform:none;transform:none}}
@keyframes fadeA{from{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px)}to{opacity:1;-webkit-transform:none;transform:none}}
@-webkit-keyframes fadeB{from{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px)}to{opacity:1;-webkit-transform:none;transform:none}}
@keyframes fadeB{from{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px)}to{opacity:1;-webkit-transform:none;transform:none}}
.blink{-webkit-animation:blink 1.4s ease-in-out infinite;animation:blink 1.4s ease-in-out infinite}
@-webkit-keyframes blink{50%{opacity:.2}}
@keyframes blink{50%{opacity:.2}}
.spin{-webkit-animation:spin 9s linear infinite;animation:spin 9s linear infinite}
.slow{-webkit-animation:spin 140s linear infinite;animation:spin 140s linear infinite}
@-webkit-keyframes spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
@keyframes spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
.burst{-webkit-mask-image:radial-gradient(circle,#000 28%,transparent 68%);mask-image:radial-gradient(circle,#000 28%,transparent 68%)}
.knob{-webkit-transition:background-color .9s,color .9s,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:background-color .9s,color .9s,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:transform .35s cubic-bezier(.2,.8,.2,1),background-color .9s,color .9s;transition:transform .35s cubic-bezier(.2,.8,.2,1),background-color .9s,color .9s,-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}
.knob:hover{-webkit-transform:scale(1.08) rotate(-8deg);transform:scale(1.08) rotate(-8deg)}
.knob:active{-webkit-transform:scale(.94);transform:scale(.94)}
.ticks{opacity:.6;background:linear-gradient(90deg,transparent calc(50% - .75px),currentColor calc(50% - .75px) calc(50% + .75px),transparent calc(50% + .75px)) 0 0/6.25% 100% repeat-x,repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 8px) 0 100%/100% 40% no-repeat}
.needle{-webkit-transition:left .9s cubic-bezier(.65,0,.2,1),background-color .9s;transition:left .9s cubic-bezier(.65,0,.2,1),background-color .9s}
.stop{-webkit-transition:background-color .3s,color .3s;transition:background-color .3s,color .3s}
.stop:hover{text-decoration:underline;text-underline-offset:5px}
.track{display:flex;width:-webkit-max-content;width:-moz-max-content;width:max-content;-webkit-animation:marquee 90s linear infinite;animation:marquee 90s linear infinite}
.ticker:hover .track{-webkit-animation-play-state:paused;animation-play-state:paused}
@-webkit-keyframes marquee{to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}
@keyframes marquee{to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}

/* hero objects */
.hobj{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hobj *{transform-box:fill-box}
.hero-in{-webkit-animation:heroIn 1.1s cubic-bezier(.2,1.25,.3,1) both;animation:heroIn 1.1s cubic-bezier(.2,1.25,.3,1) both}
@-webkit-keyframes heroIn{from{opacity:0;-webkit-transform:translateY(40px) scale(.84) rotate(-6deg);transform:translateY(40px) scale(.84) rotate(-6deg)}to{opacity:1;-webkit-transform:none;transform:none}}
@keyframes heroIn{from{opacity:0;-webkit-transform:translateY(40px) scale(.84) rotate(-6deg);transform:translateY(40px) scale(.84) rotate(-6deg)}to{opacity:1;-webkit-transform:none;transform:none}}
.h-float{-webkit-animation:hFloat 4s ease-in-out infinite;animation:hFloat 4s ease-in-out infinite}
@-webkit-keyframes hFloat{50%{-webkit-transform:translateY(-12px);transform:translateY(-12px)}}
@keyframes hFloat{50%{-webkit-transform:translateY(-12px);transform:translateY(-12px)}}
.h-spin{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:spin 2.4s linear infinite;animation:spin 2.4s linear infinite}
.h-spin2{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:spin 1.6s linear infinite;animation:spin 1.6s linear infinite}
.h-rot{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:spin 14s linear infinite;animation:spin 14s linear infinite}
.h-flick{-webkit-animation:hFlick 3s steps(1) infinite;animation:hFlick 3s steps(1) infinite}
@-webkit-keyframes hFlick{0%,100%{opacity:1}7%{opacity:.72}9%{opacity:1}52%{opacity:.86}54%{opacity:1}}
@keyframes hFlick{0%,100%{opacity:1}7%{opacity:.72}9%{opacity:1}52%{opacity:.86}54%{opacity:1}}
.h-scan{-webkit-animation:hScan 2.6s linear infinite;animation:hScan 2.6s linear infinite}
@-webkit-keyframes hScan{from{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(126px);transform:translateY(126px)}}
@keyframes hScan{from{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(126px);transform:translateY(126px)}}
.h-knob{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hKnob 5s ease-in-out infinite;animation:hKnob 5s ease-in-out infinite}
@-webkit-keyframes hKnob{0%,100%{-webkit-transform:rotate(0);transform:rotate(0)}40%{-webkit-transform:rotate(70deg);transform:rotate(70deg)}60%{-webkit-transform:rotate(40deg);transform:rotate(40deg)}}
@keyframes hKnob{0%,100%{-webkit-transform:rotate(0);transform:rotate(0)}40%{-webkit-transform:rotate(70deg);transform:rotate(70deg)}60%{-webkit-transform:rotate(40deg);transform:rotate(40deg)}}
.h-glow{-webkit-animation:hGlow 1.4s ease-in-out infinite alternate;animation:hGlow 1.4s ease-in-out infinite alternate}
@-webkit-keyframes hGlow{from{opacity:.5}to{opacity:1}}
@keyframes hGlow{from{opacity:.5}to{opacity:1}}
.h-bub{-webkit-animation:hBub 3.3s ease-in infinite;animation:hBub 3.3s ease-in infinite}
@-webkit-keyframes hBub{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:0}15%{opacity:1}100%{-webkit-transform:translateY(-150px);transform:translateY(-150px);opacity:0}}
@keyframes hBub{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:0}15%{opacity:1}100%{-webkit-transform:translateY(-150px);transform:translateY(-150px);opacity:0}}
.h-flame{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-animation:hFlame .16s ease-in-out infinite alternate;animation:hFlame .16s ease-in-out infinite alternate}
@-webkit-keyframes hFlame{from{-webkit-transform:scaleY(.8) scaleX(.95);transform:scaleY(.8) scaleX(.95)}to{-webkit-transform:scaleY(1.14) scaleX(1.05);transform:scaleY(1.14) scaleX(1.05)}}
@keyframes hFlame{from{-webkit-transform:scaleY(.8) scaleX(.95);transform:scaleY(.8) scaleX(.95)}to{-webkit-transform:scaleY(1.14) scaleX(1.05);transform:scaleY(1.14) scaleX(1.05)}}
.h-twinkle{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hTw 2.2s ease-in-out infinite;animation:hTw 2.2s ease-in-out infinite}
@-webkit-keyframes hTw{0%,100%{opacity:.25;-webkit-transform:scale(.6);transform:scale(.6)}50%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}
@keyframes hTw{0%,100%{opacity:.25;-webkit-transform:scale(.6);transform:scale(.6)}50%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}
.h-lava1{-webkit-animation:hLava1 9s ease-in-out infinite alternate;animation:hLava1 9s ease-in-out infinite alternate}
@-webkit-keyframes hLava1{0%{-webkit-transform:translateY(0) scale(1,1);transform:translateY(0) scale(1,1)}50%{-webkit-transform:translateY(-70px) scale(.85,1.15);transform:translateY(-70px) scale(.85,1.15)}100%{-webkit-transform:translateY(-130px) scale(1.05,.9);transform:translateY(-130px) scale(1.05,.9)}}
@keyframes hLava1{0%{-webkit-transform:translateY(0) scale(1,1);transform:translateY(0) scale(1,1)}50%{-webkit-transform:translateY(-70px) scale(.85,1.15);transform:translateY(-70px) scale(.85,1.15)}100%{-webkit-transform:translateY(-130px) scale(1.05,.9);transform:translateY(-130px) scale(1.05,.9)}}
.h-lava2{-webkit-animation:hLava2 7s ease-in-out infinite alternate;animation:hLava2 7s ease-in-out infinite alternate}
@-webkit-keyframes hLava2{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}100%{-webkit-transform:translateY(100px) scale(1.25,.85);transform:translateY(100px) scale(1.25,.85)}}
@keyframes hLava2{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}100%{-webkit-transform:translateY(100px) scale(1.25,.85);transform:translateY(100px) scale(1.25,.85)}}
.h-lava3{-webkit-animation:hLava3 11s ease-in-out infinite alternate;animation:hLava3 11s ease-in-out infinite alternate}
@-webkit-keyframes hLava3{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{-webkit-transform:translateY(120px) scale(1.4);transform:translateY(120px) scale(1.4)}}
@keyframes hLava3{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{-webkit-transform:translateY(120px) scale(1.4);transform:translateY(120px) scale(1.4)}}
.h-dial{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hDial 4.5s cubic-bezier(.4,0,.2,1) infinite;animation:hDial 4.5s cubic-bezier(.4,0,.2,1) infinite}
@-webkit-keyframes hDial{0%,20%{-webkit-transform:rotate(0);transform:rotate(0)}45%,55%{-webkit-transform:rotate(150deg);transform:rotate(150deg)}85%,100%{-webkit-transform:rotate(0);transform:rotate(0)}}
@keyframes hDial{0%,20%{-webkit-transform:rotate(0);transform:rotate(0)}45%,55%{-webkit-transform:rotate(150deg);transform:rotate(150deg)}85%,100%{-webkit-transform:rotate(0);transform:rotate(0)}}
.h-ring{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-animation:hRing 3s ease-in-out infinite;animation:hRing 3s ease-in-out infinite}
@-webkit-keyframes hRing{0%,60%,100%{-webkit-transform:rotate(0);transform:rotate(0)}64%{-webkit-transform:rotate(-4deg);transform:rotate(-4deg)}68%{-webkit-transform:rotate(4deg);transform:rotate(4deg)}72%{-webkit-transform:rotate(-4deg);transform:rotate(-4deg)}76%{-webkit-transform:rotate(4deg);transform:rotate(4deg)}80%{-webkit-transform:rotate(0);transform:rotate(0)}}
@keyframes hRing{0%,60%,100%{-webkit-transform:rotate(0);transform:rotate(0)}64%{-webkit-transform:rotate(-4deg);transform:rotate(-4deg)}68%{-webkit-transform:rotate(4deg);transform:rotate(4deg)}72%{-webkit-transform:rotate(-4deg);transform:rotate(-4deg)}76%{-webkit-transform:rotate(4deg);transform:rotate(4deg)}80%{-webkit-transform:rotate(0);transform:rotate(0)}}
.h-slide{-webkit-animation:hSlide .9s linear infinite;animation:hSlide .9s linear infinite}
@-webkit-keyframes hSlide{to{-webkit-transform:translateX(-24px);transform:translateX(-24px)}}
@keyframes hSlide{to{-webkit-transform:translateX(-24px);transform:translateX(-24px)}}
.h-beams{transform-box:view-box;-webkit-transform-origin:200px 236px;transform-origin:200px 236px;-webkit-animation:spin 16s linear infinite;animation:spin 16s linear infinite}
.h-beat{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hBeat 1s steps(2) infinite;animation:hBeat 1s steps(2) infinite}
@-webkit-keyframes hBeat{50%{-webkit-transform:scale(1.18);transform:scale(1.18)}}
@keyframes hBeat{50%{-webkit-transform:scale(1.18);transform:scale(1.18)}}
.h-snake{-webkit-animation:hSnake 2.4s steps(8) infinite;animation:hSnake 2.4s steps(8) infinite}
@-webkit-keyframes hSnake{to{-webkit-transform:translateX(48px);transform:translateX(48px)}}
@keyframes hSnake{to{-webkit-transform:translateX(48px);transform:translateX(48px)}}
.h-blink{-webkit-animation:hBlink 1.1s steps(1) infinite;animation:hBlink 1.1s steps(1) infinite}
@-webkit-keyframes hBlink{50%{opacity:0}}
@keyframes hBlink{50%{opacity:0}}
.h-load{-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-animation:hLoad 4s steps(14) infinite;animation:hLoad 4s steps(14) infinite}
@-webkit-keyframes hLoad{from{-webkit-transform:scaleX(0);transform:scaleX(0)}90%,to{-webkit-transform:scaleX(1);transform:scaleX(1)}}
@keyframes hLoad{from{-webkit-transform:scaleX(0);transform:scaleX(0)}90%,to{-webkit-transform:scaleX(1);transform:scaleX(1)}}
.h-pop{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hPop 5s cubic-bezier(.2,1.4,.3,1) infinite both;animation:hPop 5s cubic-bezier(.2,1.4,.3,1) infinite both}
@-webkit-keyframes hPop{0%{-webkit-transform:scale(0);transform:scale(0)}12%,88%{-webkit-transform:scale(1);transform:scale(1)}100%{-webkit-transform:scale(0);transform:scale(0)}}
@keyframes hPop{0%{-webkit-transform:scale(0);transform:scale(0)}12%,88%{-webkit-transform:scale(1);transform:scale(1)}100%{-webkit-transform:scale(0);transform:scale(0)}}
.h-eject{-webkit-animation:hEject 4.5s cubic-bezier(.3,.8,.3,1) infinite;animation:hEject 4.5s cubic-bezier(.3,.8,.3,1) infinite}
@-webkit-keyframes hEject{0%{-webkit-transform:translateY(100px);transform:translateY(100px);opacity:1}35%,85%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:0}}
@keyframes hEject{0%{-webkit-transform:translateY(100px);transform:translateY(100px);opacity:1}35%,85%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:0}}
.h-burst{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hBurst 4.5s ease-out infinite;animation:hBurst 4.5s ease-out infinite}
@-webkit-keyframes hBurst{0%{opacity:.9;-webkit-transform:scale(.4);transform:scale(.4)}9%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}
@keyframes hBurst{0%{opacity:.9;-webkit-transform:scale(.4);transform:scale(.4)}9%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}
.h-pulse{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation:hPulse 1.8s ease-in-out infinite;animation:hPulse 1.8s ease-in-out infinite}
@-webkit-keyframes hPulse{50%{-webkit-transform:scale(1.12);transform:scale(1.12)}}
@keyframes hPulse{50%{-webkit-transform:scale(1.12);transform:scale(1.12)}}
.h-prog{-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-animation:hProg 9s linear infinite;animation:hProg 9s linear infinite}
@-webkit-keyframes hProg{from{-webkit-transform:scaleX(0);transform:scaleX(0)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}
@keyframes hProg{from{-webkit-transform:scaleX(0);transform:scaleX(0)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}
.h-speak{-webkit-animation:hSpeak 1.1s ease-in-out infinite alternate;animation:hSpeak 1.1s ease-in-out infinite alternate}
@-webkit-keyframes hSpeak{from{opacity:.2}to{opacity:1}}
@keyframes hSpeak{from{opacity:.2}to{opacity:1}}
.h-steam{-webkit-animation:hSteam 2.6s ease-in-out infinite;animation:hSteam 2.6s ease-in-out infinite}
@-webkit-keyframes hSteam{0%{opacity:0;-webkit-transform:translateY(6px);transform:translateY(6px)}50%{opacity:.8}100%{opacity:0;-webkit-transform:translateY(-12px);transform:translateY(-12px)}}
@keyframes hSteam{0%{opacity:0;-webkit-transform:translateY(6px);transform:translateY(6px)}50%{opacity:.8}100%{opacity:0;-webkit-transform:translateY(-12px);transform:translateY(-12px)}}
.h-msg{-webkit-animation:hMsg 7s ease-out infinite both;animation:hMsg 7s ease-out infinite both}
@-webkit-keyframes hMsg{0%{opacity:0;-webkit-transform:translateY(12px) scale(.9);transform:translateY(12px) scale(.9)}8%,86%{opacity:1;-webkit-transform:none;transform:none}96%,100%{opacity:0;-webkit-transform:none;transform:none}}
@keyframes hMsg{0%{opacity:0;-webkit-transform:translateY(12px) scale(.9);transform:translateY(12px) scale(.9)}8%,86%{opacity:1;-webkit-transform:none;transform:none}96%,100%{opacity:0;-webkit-transform:none;transform:none}}
.h-dot{-webkit-animation:hDot 1.2s ease-in-out infinite;animation:hDot 1.2s ease-in-out infinite}
@-webkit-keyframes hDot{0%,100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:.4}50%{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:1}}
@keyframes hDot{0%,100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:.4}50%{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:1}}

/* gallery: shared */
.gal{list-style:none;margin:0;padding:0;display:-ms-grid;display:grid}
.cell.in-a{-webkit-animation:dealA .85s cubic-bezier(.16,.84,.24,1) both;animation:dealA .85s cubic-bezier(.16,.84,.24,1) both}.cell.in-b{-webkit-animation:dealB .85s cubic-bezier(.16,.84,.24,1) both;animation:dealB .85s cubic-bezier(.16,.84,.24,1) both}
@-webkit-keyframes dealA{from{opacity:0;-webkit-transform:translateY(48px) rotate(-4deg) scale(.96);transform:translateY(48px) rotate(-4deg) scale(.96)}to{opacity:1;-webkit-transform:none;transform:none}}
@keyframes dealA{from{opacity:0;-webkit-transform:translateY(48px) rotate(-4deg) scale(.96);transform:translateY(48px) rotate(-4deg) scale(.96)}to{opacity:1;-webkit-transform:none;transform:none}}
@-webkit-keyframes dealB{from{opacity:0;-webkit-transform:translateY(48px) rotate(-4deg) scale(.96);transform:translateY(48px) rotate(-4deg) scale(.96)}to{opacity:1;-webkit-transform:none;transform:none}}
@keyframes dealB{from{opacity:0;-webkit-transform:translateY(48px) rotate(-4deg) scale(.96);transform:translateY(48px) rotate(-4deg) scale(.96)}to{opacity:1;-webkit-transform:none;transform:none}}
.tilt{-webkit-transform:rotate(var(--r,0deg));transform:rotate(var(--r,0deg));-webkit-transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1),-webkit-box-shadow .5s;transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1),-webkit-box-shadow .5s;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s,-webkit-transform .5s cubic-bezier(.2,.8,.2,1),-webkit-box-shadow .5s}
.r1{--r:-1.6deg}.r2{--r:1.2deg}.r3{--r:-.6deg}.r4{--r:2deg}
.big.r1{--r:-3.5deg}.big.r2{--r:2.5deg}.big.r3{--r:-1.4deg}.big.r4{--r:4deg}
.cell:hover .tilt{-webkit-transform:translateY(-8px) rotate(0deg) scale(1.03);transform:translateY(-8px) rotate(0deg) scale(1.03)}
.icx{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,1.4,.3,1);transition:-webkit-transform .6s cubic-bezier(.2,1.4,.3,1);transition:transform .6s cubic-bezier(.2,1.4,.3,1);transition:transform .6s cubic-bezier(.2,1.4,.3,1), -webkit-transform .6s cubic-bezier(.2,1.4,.3,1)}
.cell:hover .icx{-webkit-transform:scale(1.12) rotate(-6deg);transform:scale(1.12) rotate(-6deg)}
.pat{position:absolute;inset:0;opacity:.17;pointer-events:none}
.p0{background:radial-gradient(currentColor 1.3px,transparent 1.8px) 0 0/11px 11px}
.p1{background:repeating-linear-gradient(-45deg,currentColor 0 1.5px,transparent 1.5px 11px)}
.p2{background:repeating-conic-gradient(from 0deg at 50% 115%,currentColor 0 3deg,transparent 3deg 10deg)}
.p3{background:linear-gradient(currentColor 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,currentColor 1px,transparent 1px) 0 0/16px 16px}
.p4{background:repeating-radial-gradient(circle at 100% 100%,currentColor 0 1.5px,transparent 1.5px 13px)}
.chipf{-webkit-transition:background-color .3s,color .3s,-webkit-transform .3s;transition:background-color .3s,color .3s,-webkit-transform .3s;transition:background-color .3s,color .3s,transform .3s;transition:background-color .3s,color .3s,transform .3s,-webkit-transform .3s}
.chipf:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}

/* 1950 frames */
.wall{padding:clamp(20px,3vw,40px);border-radius:6px;background:repeating-linear-gradient(90deg,rgba(30,43,47,.06) 0 22px,transparent 22px 44px);-webkit-box-shadow:inset 0 0 0 1.5px rgba(30,43,47,.15);box-shadow:inset 0 0 0 1.5px rgba(30,43,47,.15)}
.hang{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:rotate(var(--r,0deg));transform:rotate(var(--r,0deg))}
.cell:hover .hang{-webkit-animation:swing 1.3s ease-in-out;animation:swing 1.3s ease-in-out}
@-webkit-keyframes swing{0%{-webkit-transform:rotate(var(--r,0deg));transform:rotate(var(--r,0deg))}25%{-webkit-transform:rotate(4deg);transform:rotate(4deg)}50%{-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}75%{-webkit-transform:rotate(1.5deg);transform:rotate(1.5deg)}100%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}
@keyframes swing{0%{-webkit-transform:rotate(var(--r,0deg));transform:rotate(var(--r,0deg))}25%{-webkit-transform:rotate(4deg);transform:rotate(4deg)}50%{-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}75%{-webkit-transform:rotate(1.5deg);transform:rotate(1.5deg)}100%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}
.frame{border:12px solid #6B3B20;-webkit-box-shadow:inset 0 0 0 2px #C9A15A,0 20px 30px -16px rgba(0,0,0,.5);box-shadow:inset 0 0 0 2px #C9A15A,0 20px 30px -16px rgba(0,0,0,.5);background:#FFF6E8;padding:12px}
/* 1955 singles */
.sl{position:relative;aspect-ratio:1/1;-webkit-filter:drop-shadow(0 14px 16px rgba(0,0,0,.55));filter:drop-shadow(0 14px 16px rgba(0,0,0,.55))}
.sl-disc{position:absolute;inset:3%;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#151515 0 1.5px,#242424 1.5px 3px);-webkit-transition:-webkit-transform .8s cubic-bezier(.2,.8,.2,1);transition:-webkit-transform .8s cubic-bezier(.2,.8,.2,1);transition:transform .8s cubic-bezier(.2,.8,.2,1);transition:transform .8s cubic-bezier(.2,.8,.2,1), -webkit-transform .8s cubic-bezier(.2,.8,.2,1)}
.cell:hover .sl-disc{-webkit-transform:translateX(36%) rotate(140deg);transform:translateX(36%) rotate(140deg)}
.sl-cover{position:absolute;inset:0;border-radius:3px;overflow:hidden;-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 13%,#000 13.6%);mask-image:radial-gradient(circle at 50% 50%,transparent 13%,#000 13.6%);-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.8,.2,1);transition:-webkit-transform .6s cubic-bezier(.2,.8,.2,1);transition:transform .6s cubic-bezier(.2,.8,.2,1);transition:transform .6s cubic-bezier(.2,.8,.2,1), -webkit-transform .6s cubic-bezier(.2,.8,.2,1)}
.cell:hover .sl-cover{-webkit-transform:translateX(-6%) rotate(-2deg);transform:translateX(-6%) rotate(-2deg)}
/* 1960 slides */
.lightbox{padding:clamp(18px,3vw,34px);border-radius:12px;background-color:#FBF8F0;background-image:radial-gradient(120% 90% at 50% 40%,#FFFFFF 0,rgba(255,255,255,0) 70%),linear-gradient(rgba(15,27,45,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,27,45,.05) 1px,transparent 1px);background-size:auto,24px 24px,24px 24px;-webkit-box-shadow:0 0 90px rgba(242,214,162,.35),inset 0 0 0 1px rgba(15,27,45,.1),inset 0 0 40px rgba(255,255,255,.9);box-shadow:0 0 90px rgba(242,214,162,.35),inset 0 0 0 1px rgba(15,27,45,.1),inset 0 0 40px rgba(255,255,255,.9)}
/* 35 mm slide mount: square card, equal borders, rounded 3:2 window, printed lab text */
.mount{position:relative;aspect-ratio:1/1;-webkit-box-sizing:border-box;box-sizing:border-box;padding:22% 13%;display:flex;align-items:center;background:#E9E2D2;color:#5A5144;border-radius:7px;-webkit-box-shadow:inset 0 0 0 1px rgba(90,81,68,.25),inset 0 2px 0 rgba(255,255,255,.6),0 1px 2px rgba(0,0,0,.25),0 8px 14px -8px rgba(0,0,0,.35);box-shadow:inset 0 0 0 1px rgba(90,81,68,.25),inset 0 2px 0 rgba(255,255,255,.6),0 1px 2px rgba(0,0,0,.25),0 8px 14px -8px rgba(0,0,0,.35)}
.win{position:relative;width:100%;aspect-ratio:3/2;border-radius:5px/7px;overflow:hidden;background:#1D2633;-webkit-box-shadow:0 0 0 1.5px rgba(90,81,68,.45);box-shadow:0 0 0 1.5px rgba(90,81,68,.45)}
.win-img{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;-webkit-filter:saturate(1.15) contrast(1.05);filter:saturate(1.15) contrast(1.05)}
.win::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 45%);-webkit-box-shadow:inset 0 0 18px rgba(0,0,0,.35);box-shadow:inset 0 0 18px rgba(0,0,0,.35);pointer-events:none}
.mount-top,.mount-bottom{position:absolute;left:13%;right:13%;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mount-top{top:8%;display:flex;justify-content:space-between}
.mount-bottom{bottom:auto;top:79%;font-family:'Instrument Sans',sans-serif;font-size:11px;font-weight:600;line-height:1.15;letter-spacing:.02em;text-transform:none;color:#2E2A24;text-align:center;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-wrap:balance}
.mount-side{position:absolute;right:4%;top:50%;-webkit-transform:translateY(-50%) rotate(90deg);transform:translateY(-50%) rotate(90deg);font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em}
.cell:hover .mount{-webkit-box-shadow:inset 0 0 0 1px rgba(90,81,68,.25),0 0 0 3px #FFFFFF,0 18px 30px -12px rgba(0,0,0,.45);box-shadow:inset 0 0 0 1px rgba(90,81,68,.25),0 0 0 3px #FFFFFF,0 18px 30px -12px rgba(0,0,0,.45)}
/* 1965 posters */
.poster{position:relative;aspect-ratio:3/4;padding:16px;-webkit-box-sizing:border-box;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;overflow:hidden;-webkit-box-shadow:0 18px 30px -18px rgba(58,19,64,.65);box-shadow:0 18px 30px -18px rgba(58,19,64,.65)}
.tape{position:absolute;top:-8px;width:58px;height:18px;background:rgba(255,250,235,.72);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:0 1px 2px rgba(0,0,0,.15)}
/* 1970 instants */
.panel{padding:clamp(24px,3vw,44px);border-radius:6px;background:repeating-linear-gradient(90deg,#8A5A32 0 52px,#6E4524 52px 55px,#946338 55px 110px,#6E4524 110px 113px);-webkit-box-shadow:inset 0 0 50px rgba(0,0,0,.35);box-shadow:inset 0 0 50px rgba(0,0,0,.35)}
.pola{position:relative;background:#FFFDF8;padding:10px 10px 12px;-webkit-box-shadow:0 14px 24px -12px rgba(0,0,0,.6);box-shadow:0 14px 24px -12px rgba(0,0,0,.6)}
.pin{position:absolute;top:-8px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;-webkit-box-shadow:0 3px 4px rgba(0,0,0,.45),inset -3px -3px 0 rgba(0,0,0,.22);box-shadow:0 3px 4px rgba(0,0,0,.45),inset -3px -3px 0 rgba(0,0,0,.22)}
.fade{-webkit-filter:sepia(.3) saturate(.85) contrast(.95);filter:sepia(.3) saturate(.85) contrast(.95)}
/* 1975 stubs */
.tk{position:relative;display:flex;height:136px;border-radius:12px}
.tk::before,.tk::after{content:"";position:absolute;left:calc(100% - 84px);width:22px;height:22px;margin-left:-11px;border-radius:50%;background:#1A0F24}
.tk::before{top:-11px}.tk::after{bottom:-11px}
/* 1980 stickers */
.sheet{padding:clamp(22px,3vw,40px);border-radius:22px;background:#1C1645;-webkit-box-shadow:inset 0 0 0 2px rgba(244,238,255,.12);box-shadow:inset 0 0 0 2px rgba(244,238,255,.12)}
.stk{position:relative;aspect-ratio:1/1;-webkit-box-sizing:border-box;box-sizing:border-box;border:7px solid #FFFFFF;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:16%;overflow:hidden}
.stk::before{content:"";position:absolute;left:12%;top:8%;width:46%;height:22%;border-radius:50%;background:rgba(255,255,255,.35);-webkit-transform:rotate(-20deg);transform:rotate(-20deg);pointer-events:none}
.s0{border-radius:50%}.s1{border-radius:30px}.s2{border-radius:42% 58% 52% 48%/48% 42% 58% 52%}.s3{border-radius:50% 50% 50% 14%}
/* 1985 cartridges */
.cart{position:relative;aspect-ratio:5/6;-webkit-box-sizing:border-box;box-sizing:border-box;background:#3B3F3A;padding:22% 9% 12%;clip-path:polygon(0 0,86% 0,100% 7%,100% 100%,0 100%);display:flex;flex-direction:column;-webkit-transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1);transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1), -webkit-transform .5s cubic-bezier(.2,.8,.2,1)}
.cart::before{content:"";position:absolute;left:9%;right:9%;top:5%;height:12%;background:repeating-linear-gradient(180deg,rgba(255,255,255,.16) 0 2px,transparent 2px 6px)}
.cart::after{content:"";position:absolute;left:30%;right:30%;bottom:0;height:5%;background:#A9BE58}
.cell:hover .cart{-webkit-transform:translateY(-14px);transform:translateY(-14px)}
.clabel{position:relative;flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:6px;padding:10px;overflow:hidden;-webkit-box-shadow:inset 0 0 0 2px rgba(0,0,0,.25);box-shadow:inset 0 0 0 2px rgba(0,0,0,.25)}
/* 1990 trading cards */
.album{padding:clamp(20px,3vw,36px);border-radius:8px;background:#3A352F;-webkit-box-shadow:inset 0 0 0 2px rgba(233,225,211,.12);box-shadow:inset 0 0 0 2px rgba(233,225,211,.12)}
.cromo{position:relative;aspect-ratio:5/7;-webkit-box-sizing:border-box;box-sizing:border-box;border:8px solid #E9E1D3;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;-webkit-box-shadow:0 16px 26px -14px rgba(0,0,0,.8);box-shadow:0 16px 26px -14px rgba(0,0,0,.8)}
.cromo::after{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;background:linear-gradient(115deg,transparent 20%,rgba(255,120,200,.4) 35%,rgba(120,220,255,.4) 45%,rgba(255,240,120,.4) 55%,transparent 70%);background-size:250% 250%;mix-blend-mode:color-dodge;-webkit-transition:opacity .4s;transition:opacity .4s}
.holo::after{opacity:.85;-webkit-animation:holo 4s linear infinite;animation:holo 4s linear infinite}
.cell:hover .cromo::after{opacity:.95;-webkit-animation:holo 1.6s linear infinite;animation:holo 1.6s linear infinite}
@-webkit-keyframes holo{from{background-position:100% 0}to{background-position:-150% 0}}
@keyframes holo{from{background-position:100% 0}to{background-position:-150% 0}}
/* 1995 desktop */
.w95{background:#C0C0C0;color:#000000;padding:3px;-webkit-box-shadow:inset 1px 1px #FFFFFF,inset -1px -1px #000000,inset 2px 2px #DFDFDF,inset -2px -2px #808080;box-shadow:inset 1px 1px #FFFFFF,inset -1px -1px #000000,inset 2px 2px #DFDFDF,inset -2px -2px #808080;-webkit-transition:-webkit-transform .25s steps(2),-webkit-box-shadow .25s;transition:-webkit-transform .25s steps(2),-webkit-box-shadow .25s;transition:transform .25s steps(2),box-shadow .25s;transition:transform .25s steps(2),box-shadow .25s,-webkit-transform .25s steps(2),-webkit-box-shadow .25s}
.cell:hover .w95{-webkit-transform:translate(-4px,-4px);transform:translate(-4px,-4px);-webkit-box-shadow:inset 1px 1px #FFFFFF,inset -1px -1px #000000,inset 2px 2px #DFDFDF,inset -2px -2px #808080,8px 8px 0 rgba(0,0,0,.35);box-shadow:inset 1px 1px #FFFFFF,inset -1px -1px #000000,inset 2px 2px #DFDFDF,inset -2px -2px #808080,8px 8px 0 rgba(0,0,0,.35)}
.wbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 3px 2px 8px;color:#FFFFFF;font-family:'VT323',monospace;font-size:18px;line-height:1}
.wx{width:18px;height:16px;flex-shrink:0;background:#C0C0C0;color:#000000;display:flex;align-items:center;justify-content:center;font-size:14px;-webkit-box-shadow:inset 1px 1px #FFFFFF,inset -1px -1px #000000,inset -2px -2px #808080;box-shadow:inset 1px 1px #FFFFFF,inset -1px -1px #000000,inset -2px -2px #808080}
.wbody{background:#FFFFFF;margin:4px 2px 2px;padding:12px;-webkit-box-shadow:inset 1px 1px #808080,inset -1px -1px #FFFFFF,inset 2px 2px #000000;box-shadow:inset 1px 1px #808080,inset -1px -1px #FFFFFF,inset 2px 2px #000000;display:flex;flex-direction:column;gap:10px}
/* 2000 burned CDs */
.cd{position:relative;aspect-ratio:1/1;border-radius:50%;background:conic-gradient(from 30deg,#E9EEF5,#F8D9EE,#E6EEF6,#D3F1F3,#F6F2D2,#E9EEF5);-webkit-box-shadow:0 14px 24px -12px rgba(20,33,61,.5),inset 0 0 0 1px rgba(20,33,61,.15);box-shadow:0 14px 24px -12px rgba(20,33,61,.5),inset 0 0 0 1px rgba(20,33,61,.15);-webkit-transition:-webkit-transform 1.2s cubic-bezier(.2,.8,.2,1);transition:-webkit-transform 1.2s cubic-bezier(.2,.8,.2,1);transition:transform 1.2s cubic-bezier(.2,.8,.2,1);transition:transform 1.2s cubic-bezier(.2,.8,.2,1), -webkit-transform 1.2s cubic-bezier(.2,.8,.2,1)}
.cd::before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-radial-gradient(circle,rgba(255,255,255,0) 0 3px,rgba(255,255,255,.4) 3px 4px);pointer-events:none}
.cd::after{content:"";position:absolute;inset:36%;border-radius:50%;background:radial-gradient(circle,#DDE6F1 0 28%,rgba(20,33,61,.2) 29% 31%,rgba(255,255,255,.65) 32% 100%);-webkit-box-shadow:inset 0 0 0 1px rgba(20,33,61,.2);box-shadow:inset 0 0 0 1px rgba(20,33,61,.2)}
.cell:hover .cd{-webkit-transform:rotate(200deg) scale(1.04);transform:rotate(200deg) scale(1.04)}
/* 2005 home screen */
.home{position:relative;overflow:hidden;padding:clamp(24px,3vw,44px);border-radius:30px;background:#1769B8;color:#FFFFFF}
.ai{position:relative;width:84px;height:84px;border-radius:20px;display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-box-shadow:0 6px 12px -4px rgba(0,0,0,.45),inset 0 0 0 1px rgba(0,0,0,.18);box-shadow:0 6px 12px -4px rgba(0,0,0,.45),inset 0 0 0 1px rgba(0,0,0,.18)}
.ai::before{content:"";position:absolute;left:-10%;right:-10%;top:-30%;height:78%;border-radius:0 0 50% 50%;background:rgba(255,255,255,.32);pointer-events:none}
.badge{position:absolute;top:-7px;right:-9px;min-width:26px;height:24px;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 6px;border-radius:12px;background:#C8221B;color:#FFFFFF;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;-webkit-box-shadow:0 0 0 2px #FFFFFF;box-shadow:0 0 0 2px #FFFFFF}
.cell:hover .ai{-webkit-animation:jiggle .3s ease-in-out infinite;animation:jiggle .3s ease-in-out infinite}
@-webkit-keyframes jiggle{0%,100%{-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}50%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}}
@keyframes jiggle{0%,100%{-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}50%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}}
/* 2010 feed */
.post{background:#FFF7EE;color:#3A2E26;border-radius:6px;border:1px solid rgba(58,46,38,.14);-webkit-box-shadow:0 14px 24px -16px rgba(58,46,38,.5);box-shadow:0 14px 24px -16px rgba(58,46,38,.5);overflow:hidden;-webkit-transition:-webkit-transform .4s cubic-bezier(.2,.8,.2,1);transition:-webkit-transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1), -webkit-transform .4s cubic-bezier(.2,.8,.2,1)}
.cell:hover .post{-webkit-transform:translateY(-6px);transform:translateY(-6px)}
.ph{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-filter:sepia(.28) saturate(1.25) contrast(.96);filter:sepia(.28) saturate(1.25) contrast(.96)}
.ph::after{content:"";position:absolute;inset:0;-webkit-box-shadow:inset 0 0 70px rgba(60,30,10,.5);box-shadow:inset 0 0 70px rgba(60,30,10,.5);pointer-events:none}
.hrt{fill:transparent;-webkit-transition:fill .3s,stroke .3s,-webkit-transform .3s cubic-bezier(.2,1.4,.3,1);transition:fill .3s,stroke .3s,-webkit-transform .3s cubic-bezier(.2,1.4,.3,1);transition:fill .3s,stroke .3s,transform .3s cubic-bezier(.2,1.4,.3,1);transition:fill .3s,stroke .3s,transform .3s cubic-bezier(.2,1.4,.3,1),-webkit-transform .3s cubic-bezier(.2,1.4,.3,1)}
.cell:hover .hrt{fill:#C8221B;stroke:#C8221B;-webkit-transform:scale(1.2);transform:scale(1.2)}
/* 2015 up next */
.thumb{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;-webkit-transition:-webkit-transform .45s cubic-bezier(.2,.8,.2,1),-webkit-box-shadow .45s;transition:-webkit-transform .45s cubic-bezier(.2,.8,.2,1),-webkit-box-shadow .45s;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,-webkit-transform .45s cubic-bezier(.2,.8,.2,1),-webkit-box-shadow .45s}
.cell:hover .thumb{-webkit-transform:scale(1.05);transform:scale(1.05);-webkit-box-shadow:0 22px 34px -18px rgba(0,0,0,.8),0 0 0 2px #F5F5F5;box-shadow:0 22px 34px -18px rgba(0,0,0,.8),0 0 0 2px #F5F5F5}
.playo{position:absolute;width:54px;height:54px;border-radius:50%;background:rgba(18,18,18,.78);display:flex;align-items:center;justify-content:center;opacity:0;-webkit-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .35s,-webkit-transform .35s;transition:opacity .35s,-webkit-transform .35s;transition:opacity .35s,transform .35s;transition:opacity .35s,transform .35s,-webkit-transform .35s}
.cell:hover .playo{opacity:1;-webkit-transform:none;transform:none}
/* 2020 call */
.callwin{padding:12px;border-radius:18px;background:#22262A;color:#FFFFFF}
.vt{position:relative;aspect-ratio:16/10;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.speak::after{content:"";position:absolute;inset:0;border-radius:12px;-webkit-box-shadow:inset 0 0 0 3px #5FD36A;box-shadow:inset 0 0 0 3px #5FD36A;-webkit-animation:hSpeak 1.1s ease-in-out infinite alternate;animation:hSpeak 1.1s ease-in-out infinite alternate;pointer-events:none}
.av{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.14);-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s, -webkit-transform .4s}
.cell:hover .av{-webkit-transform:scale(1.1);transform:scale(1.1)}
.nm{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);-webkit-box-sizing:border-box;box-sizing:border-box;display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;background:rgba(0,0,0,.66);color:#FFFFFF;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 2025 shorts */
.story{position:relative;aspect-ratio:9/16;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:12px;-webkit-transition:-webkit-transform .45s cubic-bezier(.2,.8,.2,1);transition:-webkit-transform .45s cubic-bezier(.2,.8,.2,1);transition:transform .45s cubic-bezier(.2,.8,.2,1);transition:transform .45s cubic-bezier(.2,.8,.2,1), -webkit-transform .45s cubic-bezier(.2,.8,.2,1)}
.cell:hover .story{-webkit-transform:translateY(-8px) scale(1.03);transform:translateY(-8px) scale(1.03)}
.segs{display:flex;gap:4px}
.segs span{flex:1;height:3px;border-radius:2px;background:currentColor;opacity:.35}
.segs span:first-child{opacity:1}

.still .grain,.still .spin,.still .slow,.still .track,.still .blink,.still .hobj *,.still .holo::after{-webkit-animation:none;animation:none}
/* Wordmark: "five" set in a serif italic, "ago" in the mono used across the UI */
.wordmark{display:inline-flex;align-items:baseline;gap:.08em;line-height:1;white-space:nowrap}
.wm-five{font-family:'Instrument Serif',serif;font-style:italic;font-size:26px;letter-spacing:-.01em;text-transform:none}
.wm-ago{font-family:'DM Mono',monospace;font-size:16px;font-weight:500;letter-spacing:.06em;text-transform:none}
.wordmark-sm .wm-five{font-size:19px}.wordmark-sm .wm-ago{font-size:12px}

/* Runtime-state replacements (were template conditionals) */
[hidden]{display:none!important}
.era-only{display:contents}
.stage:not([data-fx="vignette"]) .vig,.stage:not([data-fx="scanlines"]) .scan{display:none}
.stop{background:transparent;color:inherit}
.stop[aria-current="true"]{background:var(--t-a1);color:var(--t-on);font-weight:500!important}
.chipf{border:1.5px solid currentColor;background:transparent;color:inherit}
.chipf[aria-pressed="true"]{border-color:var(--t-ink);background:var(--t-ink);color:var(--t-bg)}

@media (prefers-reduced-motion:reduce){.stage *,.stage *::before,.stage *::after{-webkit-animation:none!important;animation:none!important;-webkit-transition:none!important;transition:none!important}}

/* Phones: two columns per gallery so more fits on screen. 1975 (ticket stubs) and 1995 (desktop
   windows) are wide by design and keep one; 2005 (home screen icons) already packs several. */
@media (max-width: 600px){
  .era-only:not([data-era="5"]):not([data-era="9"]):not([data-era="11"]) .gal{-ms-grid-columns:(minmax(0,1fr))[2]!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;-webkit-column-gap:14px!important;-moz-column-gap:14px!important;column-gap:14px!important;row-gap:22px!important}
  .era-only[data-era="1"] .gal{padding-right:18px!important}
}
