/* ===== GEEKED ($GEEKED) — retro console theme ===== */
:root{
  --bg:#07050d; --bg2:#0e0a1c; --ink:#f3eeff; --mute:#9d93b8; --soft:#ddd6f3;
  --purple:#7b2ff7; --purple2:#b47cff; --deep:#3a0f80;
  --lime:#b6ff3b; --gold:#ffd23f; --red:#ff3b5c; --sprite:#39ffb0;
  --px:'Press Start 2P',monospace; --vt:'VT323',monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--vt);font-size:22px;line-height:1.35}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--px);text-transform:uppercase;font-weight:400}
button{font:inherit}
::selection{background:var(--lime);color:#000}

.cup{display:inline-block;width:1.15em;height:1.15em;background:url(assets/img/cup.svg) center/contain no-repeat;vertical-align:-.2em;margin-right:.35em;image-rendering:pixelated}

@keyframes blink{50%{opacity:0}}
@keyframes tick{to{opacity:1}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}
@keyframes load{0%{width:0}45%{width:58%}62%{width:58%}80%{width:87%}88%{width:87%}100%{width:100%}}
@keyframes scroll{to{transform:translateX(-50%)}}
@keyframes flash{0%{opacity:.9}100%{opacity:0}}
@keyframes flicker{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.85}94%{opacity:1}}

/* ===== pixel buttons ===== */
.btn{font-family:var(--px);font-size:12px;line-height:1;padding:16px 22px;background:var(--purple);color:#fff;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  clip-path:polygon(0 6px,6px 6px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 6px),0 calc(100% - 6px));
  box-shadow:inset 0 -6px 0 rgba(0,0,0,.35),inset 0 6px 0 rgba(255,255,255,.18);transition:transform .05s,filter .1s}
.btn:hover{transform:translate(2px,2px);filter:brightness(1.12)}
.btn:active{transform:translate(4px,4px);box-shadow:inset 0 0 0 rgba(0,0,0,0)}
.btn-lime{background:var(--lime);color:#0b1200}
.btn-lg{font-size:14px;padding:20px 28px}
.btn-sm{padding:12px 16px;font-size:10px}
.btn-xs{padding:9px 11px;font-size:9px;clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));box-shadow:inset 0 -4px 0 rgba(0,0,0,.35),inset 0 4px 0 rgba(255,255,255,.18)}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.cta.center{justify-content:center;margin-top:36px}

/* ===== boot ===== */
.boot{position:fixed;inset:0;background:#000;z-index:1000;display:grid;place-items:center;transition:opacity .45s}
.boot.out{opacity:0;pointer-events:none}
.boot-inner{width:min(600px,92vw);font-size:24px;color:#cfc6ff}
.boot-logo{font-family:var(--px);color:#fff;margin-bottom:28px;display:grid;gap:10px}
.boot-logo span{font-size:clamp(26px,6vw,38px);text-shadow:4px 4px 0 var(--purple)}
.boot-logo small{font-size:10px;color:var(--purple2);letter-spacing:3px}
.boot-log{list-style:none;padding:0;margin:0 0 16px}
.boot-log li{margin:0 0 6px}
.boot-log li{opacity:0;animation:tick .05s forwards}
.boot-log li:nth-child(1){animation-delay:.4s}
.boot-log li:nth-child(2){animation-delay:1.2s}
.boot-log li:nth-child(3){animation-delay:2.1s}
.boot-log li:nth-child(4){animation-delay:3.3s}
.boot-log li:nth-child(5){animation-delay:4.2s}
.boot-log b.dim{color:var(--mute)}
.boot-log b{color:var(--sprite);font-weight:400}
.boot-bar{height:20px;border:3px solid #fff;padding:3px;margin-bottom:26px}
.boot-bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--purple) 0 10px,var(--purple2) 10px 12px);animation:load 4.9s .4s steps(9) forwards}
.esrb{display:flex;border:4px solid #fff;background:#fff;color:#000;width:max-content;max-width:100%;opacity:0;animation:tick .05s 4.7s forwards}
.esrb b{font-family:var(--px);font-size:22px;padding:10px 14px;line-height:1.15;border-right:4px solid #000;display:grid;place-items:center;text-align:center;font-weight:400}
.esrb span{padding:8px 12px;font-family:var(--px);font-size:11px;line-height:1.5;display:grid;align-content:center}
.esrb em{font-style:normal;font-family:var(--vt);font-size:18px;display:block;margin-top:4px;color:#333}
.boot-skip{margin-top:26px;font-size:17px;color:var(--mute);animation:blink 1s steps(2) infinite;font-family:var(--px);font-size:9px}

/* ===== HUD header ===== */
.hud{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;transition:background .25s;background:linear-gradient(#07050dd9,#07050d00)}
.hud.solid{background:#07050df2;border-bottom:3px solid var(--deep)}
.brand{font-family:var(--px);font-size:15px;display:inline-flex;align-items:center;text-shadow:3px 3px 0 var(--purple)}
.brand .cup{width:22px;height:22px}
.nav{display:flex;gap:22px;font-family:var(--px);font-size:9px}
.nav a{padding:6px 0;border-bottom:3px solid transparent}
.nav a:hover{color:var(--lime);border-color:var(--lime)}
.hud-right{display:flex;align-items:center;gap:12px}
.pill{font-family:var(--px);font-size:10px;padding:10px 12px;border:3px solid var(--purple2);color:var(--purple2);background:#07050dcc}

/* ===== hero / title screen ===== */
.hero{position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background:#000}
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s;filter:saturate(1.15) contrast(1.05)}
.hero-vid.is-on{opacity:1}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07050d88 0%,#07050d22 30%,#07050d66 70%,var(--bg) 100%)}
.static{position:absolute;inset:0;opacity:0;pointer-events:none;mix-blend-mode:screen;z-index:2;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.static.on{animation:flash .35s steps(5) forwards}
.hud-corner{position:absolute;z-index:3;top:70px;font-family:var(--px);font-size:11px;display:grid;gap:8px;text-shadow:2px 2px 0 #000}
.hud-corner.tl{left:20px}
.hud-corner.tr{right:20px;text-align:right}
.hearts{color:var(--red);letter-spacing:3px;font-size:14px}
.lives{color:var(--gold)}
.clock{color:#fff}
.money{color:var(--sprite)}
.money b{font-weight:400}
.hero-inner{position:relative;z-index:3;align-self:center;padding:150px 20px 40px;max-width:1100px;margin:0 auto;width:100%}
.kicker{font-family:var(--px);font-size:11px;color:var(--lime);margin:0 0 18px;text-shadow:2px 2px 0 #000}
.title{font-size:clamp(46px,11vw,132px);margin:0 0 20px;line-height:1;color:#fff;display:inline-block;
  text-shadow:4px 4px 0 var(--purple2),8px 8px 0 var(--purple),12px 12px 0 var(--deep),16px 16px 0 #000;animation:bob 4s ease-in-out infinite}
.sub{font-size:clamp(24px,3.4vw,34px);margin:0 0 22px;color:#fff;text-shadow:2px 2px 0 #000;line-height:1.2}
.ca{display:inline-flex;align-items:center;gap:12px;background:#000d;border:3px solid var(--purple2);padding:8px 8px 8px 14px;margin:0 0 22px;max-width:100%}
.ca-label{font-family:var(--px);font-size:10px;color:var(--lime)}
.ca code{font-family:var(--vt);font-size:22px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(52vw,520px)}
.hero-foot{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 20px 22px;font-family:var(--px);font-size:9px}
.hero-foot .blink{animation:blink 1.1s steps(2) infinite;color:#fff;text-shadow:2px 2px 0 #000}
.channels{display:flex;align-items:center;gap:10px;color:var(--mute)}
.channels b{color:#fff;font-weight:400}

/* ===== marquee ===== */
.marquee-wrap{overflow:hidden;padding:12px 0;margin:-10px 0 10px;position:relative;z-index:4}
.marquee{overflow:hidden;background:var(--lime);color:#0b1200;font-family:var(--px);font-size:12px;padding:13px 0;border-top:4px solid #000;border-bottom:4px solid #000;position:relative;z-index:4;transform:rotate(-1.2deg) scale(1.03)}
.marquee-track{display:flex;gap:34px;width:max-content;animation:scroll 40s linear infinite;white-space:nowrap}

/* ===== sections ===== */
.sec{padding:100px 20px}
.sec-alt{background:var(--bg2);border-top:4px solid #1a1236;border-bottom:4px solid #1a1236}
.wrap{max-width:1180px;margin:0 auto}
.h2{font-size:clamp(20px,3.6vw,34px);line-height:1.4;margin:0 0 40px;text-shadow:4px 4px 0 var(--deep)}
.h2 span{display:block;font-size:.42em;color:var(--lime);text-shadow:none;margin-bottom:10px;letter-spacing:1px}
.lead{font-size:24px;color:var(--soft);margin:-18px 0 34px;max-width:720px}

/* ===== character select ===== */
.select{display:grid;grid-template-columns:minmax(280px,1fr) 1.45fr;gap:28px;align-items:start}
.preview{border:4px solid #fff;background:var(--bg2);box-shadow:8px 8px 0 var(--purple)}
.preview-img{aspect-ratio:3/4;overflow:hidden;background:#000;position:relative}
.preview-img img{width:100%;height:100%;object-fit:cover}
.preview-img::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0000 0 3px,#00000022 3px 4px);pointer-events:none}
.preview-meta{padding:18px 18px 22px;border-top:4px solid #fff}
.pv-p1{font-family:var(--px);font-size:10px;color:var(--gold);margin:0 0 8px}
#pv-name{font-size:18px;margin:0 0 10px;line-height:1.4}
.pv-special{font-family:var(--px);font-size:9px;color:var(--mute);margin:0}
.pv-special b{color:var(--lime);font-weight:400}
.stats{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px}
.stats li{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:10px;font-family:var(--px);font-size:9px}
.bar{height:18px;border:3px solid #fff;padding:2px;display:block;background:#000}
.bar b{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--lime) 0 8px,#0000 8px 10px);width:0;transition:width .45s steps(10)}
.hint{font-family:var(--px);font-size:8px;color:var(--mute);margin:18px 0 0;line-height:1.7}
.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.port{aspect-ratio:1;border:4px solid #2c1f55;overflow:hidden;cursor:pointer;position:relative;background:#000;padding:0;color:#fff}
.port img{width:100%;height:100%;object-fit:cover;filter:saturate(.6) brightness(.7);transition:filter .12s,transform .12s}
.port:hover img,.port.sel img{filter:none;transform:scale(1.06)}
.port.sel{border-color:var(--lime);animation:blink 1s steps(2) infinite}
.port.sel{animation:none;outline:4px solid var(--lime);outline-offset:-4px}
.port span{position:absolute;left:0;right:0;bottom:0;background:#000c;font-family:var(--px);font-size:7px;padding:7px 4px;text-align:center;letter-spacing:.5px}

/* ===== memory card ===== */
.mc{border:4px solid #fff;background:#0b0820;box-shadow:8px 8px 0 var(--purple)}
.mc-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--px);font-size:10px;padding:14px 18px;border-bottom:4px solid #fff;background:var(--deep)}
.mc-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.mc-slot{padding:30px 18px;border:2px solid #2a1d52;text-align:center;display:grid;gap:10px;justify-items:center;background:#0e0a1c}
.mc-slot:hover{background:#150f2e}
.mc-slot .ico{font-size:36px;font-style:normal;line-height:1}
.mc-slot b{font-family:var(--px);font-size:15px;color:var(--lime);font-weight:400}
.mc-slot span{font-family:var(--px);font-size:8px;color:var(--mute)}
.mc-foot{font-family:var(--px);font-size:9px;padding:14px 18px;color:var(--gold);border-top:4px solid #fff;margin:0;line-height:1.7;animation:blink 1.4s steps(2) infinite}

/* ===== worlds ===== */
.worlds{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.world{position:relative;aspect-ratio:3/4;border:4px solid #fff;overflow:hidden;background:var(--bg) var(--bg-img) center/cover;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;box-shadow:6px 6px 0 var(--deep);transition:transform .12s}
.world:hover{transform:translate(-3px,-3px)}
.world::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 25%,#07050df2 100%)}
.world>*{position:relative}
.w-num{font-family:var(--px);font-size:9px;color:var(--gold)}
.world h3{font-size:14px;margin:8px 0;line-height:1.4}
.world p{margin:0 0 10px;font-size:19px;color:var(--soft);line-height:1.25}
.w-status{font-family:var(--px);font-size:8px;color:var(--lime)}
.world.done .w-status{color:var(--gold)}
.world.locked{filter:grayscale(.8)}
.world.locked::after{content:"LOCKED";position:absolute;inset:0;display:grid;place-items:center;font-family:var(--px);font-size:18px;color:#fff;background:#00000088;text-shadow:3px 3px 0 var(--red)}

/* ===== video wall ===== */
.wall{columns:4 220px;column-gap:12px}
.tile{break-inside:avoid;margin:0 0 12px;position:relative;border:4px solid #fff;background:#000;overflow:hidden;box-shadow:5px 5px 0 var(--deep)}
.tile video{width:100%;aspect-ratio:9/16;object-fit:cover;background:#000}
.tile.sq video{aspect-ratio:1}
.tile figcaption{position:absolute;inset:0;padding:10px;display:flex;justify-content:space-between;align-items:flex-start;font-size:20px;color:#fff;text-shadow:2px 2px 0 #000;pointer-events:none;letter-spacing:1px}
.tile .rec{color:var(--red);animation:blink 1s steps(2) infinite}

/* ===== tutorial ===== */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.steps li{border:4px solid #fff;padding:24px 22px;background:var(--bg2);box-shadow:6px 6px 0 var(--purple)}
.k{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-family:var(--px);font-size:14px;color:#000;margin-bottom:16px;border:3px solid #fff;box-shadow:3px 3px 0 #000}
.k-a{background:#3cb84c}.k-b{background:#2f6fe4;color:#fff}.k-x{background:var(--lime)}.k-y{background:var(--gold)}
.steps h3{font-size:12px;margin:0 0 12px;line-height:1.6}
.steps p{margin:0;font-size:20px;color:var(--soft);line-height:1.25}

/* ===== lobby ===== */
.lobby{position:relative;min-height:72vh;display:grid;place-items:center;overflow:hidden;text-align:center;padding:110px 20px;border-top:4px solid #1a1236}
.lobby-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:brightness(.5) saturate(1.1)}
.lobby::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#07050d55,#07050dcc);z-index:1}
.lobby-inner{position:relative;z-index:2;max-width:760px}
.lobby .h2{text-shadow:4px 4px 0 #000}
.lobby .lead{margin:0 auto;text-shadow:2px 2px 0 #000;color:#fff}

/* ===== footer ===== */
.foot{padding:60px 20px 40px;text-align:center;border-top:4px solid var(--deep);background:#04030a}
.foot-brand{font-family:var(--px);font-size:14px;margin:0 0 20px;text-shadow:3px 3px 0 var(--purple)}
.disc{max-width:760px;margin:0 auto 18px;color:var(--mute);font-size:19px;line-height:1.3}
.copy{font-family:var(--px);font-size:8px;color:#5f5480;margin:0;line-height:1.8}

/* ===== overlays ===== */
.crt{pointer-events:none;position:fixed;inset:0;z-index:900;background:repeating-linear-gradient(0deg,#0000 0 2px,#00000030 2px 4px);animation:flicker 6s infinite}
.crt::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 58%,#000000b0 100%)}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,180%);z-index:950;background:var(--lime);color:#0b1200;font-family:var(--px);font-size:11px;padding:16px 22px;border:4px solid #000;box-shadow:6px 6px 0 #000;transition:transform .25s steps(4)}
.toast.on{transform:translate(-50%,0)}

/* ===== geeked mode (konami code, or tap the cup logo 5x) ===== */
@keyframes sway{0%,100%{transform:rotate(-.9deg) translateX(-8px) scale(1.03)}50%{transform:rotate(.9deg) translateX(8px) scale(1.03)}}
@keyframes hue{to{filter:hue-rotate(360deg) saturate(1.9)}}
@keyframes dv{0%,100%{text-shadow:-4px 0 #ff2bd6,4px 0 #2bfff0,4px 4px 0 var(--purple2),8px 8px 0 var(--purple),12px 12px 0 var(--deep)}50%{text-shadow:4px 0 #ff2bd6,-4px 0 #2bfff0,4px 4px 0 var(--purple2),8px 8px 0 var(--purple),12px 12px 0 var(--deep)}}
@keyframes drip{0%{background-position:0 -40px}100%{background-position:0 0}}
.geeked .hero,.geeked .sec,.geeked .lobby,.geeked .foot,.geeked .marquee-wrap{animation:sway 4.5s ease-in-out infinite}
.geeked img,.geeked video{animation:hue 5s linear infinite}
.geeked .title,.geeked .h2,.geeked .brand{animation:dv .3s steps(2) infinite}
.geeked .marquee-track{animation-duration:8s;animation-direction:reverse}
.geeked .clock,.geeked .hearts,.geeked .pill{animation:blink .35s steps(2) infinite}
.geeked .money{color:#ff2bd6}
.geeked .sub,.geeked .lead,.geeked .steps p,.geeked .world p,.geeked .disc{filter:blur(.5px)}
.geeked .crt{background:repeating-linear-gradient(0deg,#0000 0 2px,#00000030 2px 4px),radial-gradient(ellipse at center,#7b2ff700 35%,#7b2ff799 100%)}
.geeked .crt::before{content:"";position:absolute;left:0;right:0;top:0;height:40px;background:radial-gradient(circle at 10% 0,var(--purple) 0 14px,#0000 15px),radial-gradient(circle at 35% 0,var(--purple) 0 22px,#0000 23px),radial-gradient(circle at 60% 0,var(--purple) 0 12px,#0000 13px),radial-gradient(circle at 82% 0,var(--purple) 0 18px,#0000 19px);animation:drip 3s ease-in-out infinite alternate}
.geeked,.geeked a,.geeked button{cursor:url(assets/img/cup.svg) 8 8,auto}
.geeked .bar b{background:repeating-linear-gradient(90deg,#ff2bd6 0 8px,#0000 8px 10px)}

/* ===== responsive ===== */
@media (max-width:980px){
  .select{grid-template-columns:1fr}
  .preview{display:grid;grid-template-columns:minmax(220px,2fr) 3fr}
  .preview-meta{border-top:0;border-left:4px solid #fff;align-self:center}
  .worlds,.steps{grid-template-columns:repeat(2,1fr)}
  .mc-grid{grid-template-columns:repeat(2,1fr)}
  .nav{display:none}
}
@media (max-width:600px){
  body{font-size:20px}
  .preview{grid-template-columns:1fr}
  .preview-img{aspect-ratio:1}
  .preview-meta{border-left:0;border-top:4px solid #fff}
  .sec{padding:72px 16px}
  .worlds,.steps,.mc-grid{grid-template-columns:1fr}
  .roster{grid-template-columns:repeat(4,1fr);gap:6px}
  .port span{display:none}
  .hud{padding:10px 14px}
  .hud-corner{top:62px;font-size:9px}
  .hud-corner.tl{left:14px}.hud-corner.tr{right:14px}
  .hero-inner{padding:130px 16px 30px}
  .ca{width:100%}
  .ca code{max-width:none;flex:1}
  .cta .btn{flex:1 1 auto;justify-content:center}
  .hero-foot{flex-direction:column;align-items:flex-start;gap:14px}
  .title{font-size:52px;text-shadow:3px 3px 0 var(--purple2),6px 6px 0 var(--purple),9px 9px 0 var(--deep),12px 12px 0 #000}
  .esrb b{font-size:16px}
  .esrb span{font-size:9px}
}
@media (prefers-reduced-motion:reduce){
  .title,.crt,.marquee-track,.mc-foot,.hero-foot .blink{animation:none}
}

/* ===== insert coin cutscene (PRESS START) ===== */
.cut{position:fixed;inset:0;z-index:980;background:#04030a;opacity:0;transition:opacity .4s;overflow:hidden;--cw:250px;--ch:calc(var(--cw) * 1.75)}
.cut.on{opacity:1}
.cut-room{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,#2a1a52 0%,#120c24 35%,#04030a 70%)}
.cut-scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0000 0 2px,#00000038 2px 4px);pointer-events:none;z-index:4}
.cut-floor{position:absolute;left:-40%;right:-40%;bottom:0;height:34%;background:repeating-linear-gradient(90deg,#b47cff2e 0 2px,#0000 2px 110px),repeating-linear-gradient(0deg,#b47cff2e 0 2px,#0000 2px 44px),linear-gradient(#0000,#7b2ff722);transform:perspective(420px) rotateX(62deg);transform-origin:50% 100%}
.cut-sign{position:absolute;left:50%;top:6%;transform:translateX(-50%);font-family:var(--px);font-size:clamp(20px,4.2vw,42px);letter-spacing:8px;color:#ff2bd6;text-shadow:0 0 6px #ff2bd6,0 0 18px #ff2bd6,0 0 44px #ff2bd699;animation:neon 4s infinite;text-align:center}
.cut-sign small{display:block;font-size:.3em;letter-spacing:4px;color:var(--lime);text-shadow:0 0 6px var(--lime),0 0 16px var(--lime);margin-top:10px}
@keyframes neon{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.5}94%{opacity:1}97%{opacity:.7}98%{opacity:1}}
.cab-ghost{position:absolute;bottom:20%;width:calc(var(--cw) * .82);height:calc(var(--cw) * .82 * 1.75);filter:brightness(.22) blur(1.5px);opacity:.95}
.cab-ghost.l{left:8%;transform:rotate(-2deg)}
.cab-ghost.r{right:8%;transform:rotate(2deg)}
.cut-dust{position:absolute;inset:0;pointer-events:none}
.cut-dust i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:0;animation:mote linear infinite}
@keyframes mote{0%{transform:translateY(0);opacity:0}15%{opacity:.5}85%{opacity:.35}100%{transform:translateY(-120px);opacity:0}}

/* the cabinet: positioned so its screen centre sits at the viewport centre, then scaled around that point */
.cab{position:absolute;left:50%;top:50%;width:var(--cw);height:var(--ch);margin-left:calc(var(--cw) * -.453);margin-top:calc(var(--ch) * -.334);transform-origin:45.3% 33.4%;transform:scale(.9) translateY(3%);will-change:transform;-webkit-box-reflect:below 6px linear-gradient(#0000 55%,#0009);filter:drop-shadow(0 30px 40px #000)}
.cab-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.cab-screen{position:absolute;left:14.4%;top:20%;width:61.9%;height:26.8%;overflow:hidden;border-radius:5px/6px;background:#000;box-shadow:inset 0 0 18px #000,0 0 22px #7b2ff766}
.cab-vid{width:100%;height:100%;object-fit:cover;filter:saturate(1.25) contrast(1.08) brightness(1.05)}
.cab-glass{position:absolute;inset:0;pointer-events:none;transition:opacity 1.2s;background:radial-gradient(ellipse at 50% 50%,#0000 55%,#0009 100%),linear-gradient(115deg,#ffffff22 0%,#ffffff08 28%,#0000 42%),repeating-linear-gradient(0deg,#0000 0 2px,#0006 2px 3px);border-radius:inherit}
.cab-hud{position:absolute;left:0;right:0;top:5px;display:flex;justify-content:space-between;padding:0 7px;font-family:var(--px);font-size:5px;color:#fff;text-shadow:1px 1px 0 #000;z-index:2}
.cab-copy{position:absolute;left:0;right:0;bottom:5px;text-align:center;font-family:var(--px);font-size:4.5px;color:#ddd;text-shadow:1px 1px 0 #000;z-index:2}
.cab-msg{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--px);font-size:10px;color:#fff;text-shadow:2px 2px 0 #000,0 0 8px #fff8;text-align:center;line-height:1.9;padding:8px;animation:blink 1s steps(2) infinite;z-index:2;transition:opacity .3s}
.cab-msg.solid{animation:none;color:var(--lime);text-shadow:2px 2px 0 #000,0 0 10px var(--lime)}
.cut.lit .slot-txt{animation:blink .25s steps(2) infinite}
.cab-flash{position:absolute;left:27.5%;top:67.5%;width:36%;height:14%;border-radius:4px;box-shadow:0 0 0 0 #b6ff3b00;pointer-events:none}
.cab-flash.hit{animation:slothit .7s ease-out forwards}
@keyframes slothit{0%{box-shadow:0 0 0 2px var(--lime),0 0 24px var(--lime)}100%{box-shadow:0 0 0 0 #b6ff3b00,0 0 0 #b6ff3b00}}
.coin{position:absolute;left:36.2%;top:69.6%;width:8.6%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff2a8,#ffd23f 45%,#a87a00);border:2px solid #6b4d00;box-shadow:inset -3px -3px 0 #0004,0 0 10px #ffd23f88;font-family:var(--px);font-size:.55em;color:#6b4d00;display:grid;place-items:center;opacity:0;z-index:3}
.coin.drop{animation:coindrop .95s cubic-bezier(.5,0,.9,1) forwards}
@keyframes coindrop{0%{opacity:1;transform:translateY(calc(var(--cw) * -1.55)) rotateY(0)}80%{opacity:1;transform:translateY(0) rotateY(900deg)}100%{opacity:0;transform:translateY(6px) scaleY(.1)}}
.cut-skip{position:absolute;right:16px;bottom:14px;margin:0;font-family:var(--px);font-size:8px;color:var(--mute);z-index:4}
.cut.zoom .cab-glass,.cut.zoom .cab-hud,.cut.zoom .cab-copy{opacity:0}
.cab-hud,.cab-copy{transition:opacity .6s}
.cut.flash::after{content:"";position:absolute;inset:0;background:#fff;animation:flash .45s steps(3) forwards;z-index:5}
@media (max-width:600px){.cut{--cw:215px}.cab-ghost{display:none}.cut-sign{top:5%}}
