/* ---- ARCADE CABINET PLAYER (the signature: play the real machine) ---- */
.cab{position:fixed;inset:0;z-index:80;display:none;place-items:center;
  background:radial-gradient(120% 120% at 50% 30%,rgba(20,10,40,.85),rgba(3,2,9,.96));
  backdrop-filter:blur(6px)}
.cab.is-open{display:grid}
.cab-backdrop{position:absolute;inset:0}
.cabinet{position:relative;width:min(560px,94vw);z-index:2;
  background:linear-gradient(180deg,#1a1330,#0b0818);border:1px solid var(--line-strong);
  border-radius:26px 26px 18px 18px;padding:18px 18px 22px;box-shadow:0 60px 140px -40px #000,var(--glow-p);
  transform:translateY(24px) scale(.94);opacity:0}
.cabinet.in{transform:none;opacity:1;transition:transform .5s var(--ease-spring),opacity .4s ease}
.cab-marquee{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px;border-radius:12px;margin-bottom:14px;
  background:linear-gradient(90deg,var(--primary-deep),var(--primary));box-shadow:var(--glow-p)}
.cab-marquee h3{font-size:1.4rem;color:#fff;letter-spacing:.02em}
.cab-marquee .close{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.4);
  background:rgba(0,0,0,.2);color:#fff;cursor:pointer;font-size:1.1rem;display:grid;place-items:center;
  transition:transform var(--t-ui) var(--ease-spring),background var(--t-ui)}
.cab-marquee .close:hover{transform:rotate(90deg);background:rgba(0,0,0,.45)}
.bezel{position:relative;border-radius:16px;padding:16px;background:#050409;
  border:2px solid #17122b;box-shadow:inset 0 0 60px rgba(0,0,0,.9)}
.bezel::after{content:"";position:absolute;inset:16px;pointer-events:none;border-radius:8px;
  background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.28) 2px 3px);
  mix-blend-mode:multiply;opacity:.55;z-index:5}
.bezel::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:16px;z-index:6;
  box-shadow:inset 0 0 120px 10px rgba(0,0,0,.7)} /* CRT vignette */
.gcanvas{width:100%;aspect-ratio:4/3;display:block;border-radius:8px;background:#04030a;image-rendering:pixelated}
.cab-hud{display:flex;justify-content:space-between;align-items:center;margin-top:12px;
  font-family:var(--font-mono);font-size:.78rem;color:var(--text-dim)}
.cab-hud .score b{color:var(--accent)}
.cab-controls{font-size:.7rem;color:var(--text-faint);letter-spacing:.08em}
.cab-controls kbd{background:#1a1533;border:1px solid var(--line-strong);border-bottom-width:2px;
  border-radius:5px;padding:1px 7px;color:var(--text);font-family:var(--font-mono);font-size:.7rem;margin:0 1px}
.cab-start{position:absolute;inset:16px;z-index:8;display:grid;place-content:center;gap:14px;text-align:center;
  background:radial-gradient(120% 120% at 50% 40%,rgba(10,6,22,.4),rgba(4,3,10,.86));border-radius:8px}
.cab-start.hide{display:none}
.cab-start .insert{font-family:var(--font-display);font-size:1.6rem;color:var(--warm);
  text-shadow:0 0 18px var(--warm);animation:blink 1.1s steps(1) infinite}
.cab-start p{font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim);letter-spacing:.1em;max-width:34ch}
@keyframes blink{50%{opacity:.25}}
.cab-start .go{margin:0 auto}
.gameover{position:absolute;inset:16px;z-index:9;display:none;place-content:center;gap:12px;text-align:center;
  background:rgba(4,3,10,.86);border-radius:8px}
.gameover.show{display:grid}
.gameover h4{font-family:var(--font-display);font-size:2rem;color:var(--primary);text-shadow:var(--glow-p)}
.gameover .fin{font-family:var(--font-mono);color:var(--accent)}
@media(max-width:560px){.cab-controls{display:none}}
