.cabinet{--c: var(--magenta);--a: var(--cyan);max-width:760px;margin:1rem auto 0;background:linear-gradient(180deg,#1a1440,#0d0a1f);border:2px solid var(--line);border-radius:8px 8px 4px 4px;box-shadow:var(--shadow-hard),0 0 40px color-mix(in srgb,var(--c) 18%,transparent);overflow:hidden}.cabinet-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 30%,#000),color-mix(in srgb,var(--c) 12%,#000));border-bottom:2px solid color-mix(in srgb,var(--c) 60%,#000)}.cabinet-top h1{margin:0;font-size:clamp(.75rem,2.4vw,1.05rem);color:#fff;text-shadow:0 0 8px var(--c),0 0 20px color-mix(in srgb,var(--c) 60%,transparent)}.cabinet-hud{display:flex;gap:1rem;font-family:var(--font-pixel);font-size:.5rem;color:var(--muted);text-align:right;white-space:nowrap}.cabinet-hud b{display:block;color:var(--yellow);font-size:.7rem;margin-top:.3em}.stage{position:relative;display:grid;place-items:center;width:100%;height:clamp(320px,calc(100dvh - 260px),760px);background:#000;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}.game-canvas{outline:none;background:#000}.game-canvas:focus-visible{outline:1px solid rgba(0,240,255,.35);outline-offset:-1px}.stage-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .8rem;background:var(--panel);border-top:2px solid var(--line)}.stage-bar .group{display:flex;gap:.4rem;flex-wrap:wrap}body.is-playing{overflow:hidden;touch-action:none}@media (max-width: 820px){.cabinet{margin-top:.5rem}.stage{height:calc(100dvh - 300px);min-height:300px}body.is-playing .site-header{display:none}body.is-playing .cabinet{margin-top:0;border-radius:0;border-left:0;border-right:0}body.is-playing .cabinet-top{padding:.35rem .8rem}body.is-playing .cabinet-top h1{font-size:.7rem}body.is-playing .cabinet-hud{font-size:.42rem}body.is-playing .cabinet-hud b{font-size:.55rem;margin-top:.15em}body.is-playing .stage-bar{padding:.3rem .6rem}body.is-playing .stage-bar [data-action=fullscreen],body.is-playing .stage-bar a.btn{display:none}body.is-playing .stage-bar .btn-sm{min-height:34px;font-size:.55rem}body.is-playing .stage-bar .pref-btn{min-height:32px;font-size:.5rem}body.is-playing .cabinet.has-touch .stage{height:calc(100dvh - 216px - var(--safe-b));min-height:260px}body.is-playing .cabinet:not(.has-touch) .stage{height:calc(100dvh - 86px - var(--safe-b))}.touch-controls{padding:.6rem .8rem calc(.6rem + var(--safe-b))}.tc-cluster{gap:.5rem}}.cabinet.is-fullscreen{max-width:none;border:0;border-radius:0;height:100vh;display:flex;flex-direction:column;background:#000}.cabinet.is-fullscreen .stage{flex:1;height:auto}.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:1rem;background:#04030cb8;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);text-align:center;z-index:5}.overlay:empty{display:none}.stage[data-state=playing] .overlay{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}.ov-card{max-width:480px;width:100%}.ov-kicker{font-family:var(--font-pixel);font-size:.5rem;letter-spacing:.2em;color:var(--cyan);margin-bottom:1rem}.ov-h1{font-size:clamp(1rem,4.5vw,1.8rem);color:#fff;text-shadow:0 0 10px var(--glow, var(--magenta)),0 0 30px var(--glow, var(--magenta));margin-bottom:.6rem;line-height:1.5}.ov-h2{font-size:clamp(.9rem,3.5vw,1.4rem);color:#fff;text-shadow:var(--glow-c)}.ov-gameover{color:var(--red);text-shadow:0 0 10px rgba(255,56,96,.9),0 0 30px rgba(255,56,96,.5)}.ov-newhs{color:var(--yellow);text-shadow:0 0 10px rgba(255,227,77,.9),0 0 30px rgba(255,227,77,.5)}html[data-motion=full] .ov-newhs{animation:hs-flash .6s steps(2) infinite}@keyframes hs-flash{50%{color:#fff}}.ov-tag{font-size:1.3rem;color:var(--text);margin-bottom:1rem}.ov-stats{display:flex;justify-content:center;gap:1.5rem;margin:0 0 1.4rem;font-family:var(--font-pixel);font-size:.55rem;color:var(--muted)}.ov-stats b{color:var(--yellow);margin-left:.4em}.ov-blink{margin-top:1rem;font-family:var(--font-pixel);font-size:.55rem;color:var(--cyan);animation:blink 1.1s steps(2) infinite}html[data-motion=reduced] .ov-blink{animation:none}.ov-controls{margin-top:.8rem;font-size:1.05rem;color:var(--muted);line-height:1.3}.ov-actions{display:flex;flex-direction:column;gap:.7rem;align-items:center}.ov-actions .btn{min-width:220px}.ov-score{font-family:var(--font-pixel);font-size:clamp(1.4rem,6vw,2.4rem);color:var(--yellow);text-shadow:0 0 12px rgba(255,227,77,.7);margin:.4rem 0 .8rem}.ov-newhs-badge{font-family:var(--font-pixel);font-size:.6rem;color:var(--green);text-shadow:0 0 10px rgba(57,255,20,.7);margin-bottom:1rem}.ov-ready-text{font-family:var(--font-pixel);font-size:clamp(1.4rem,7vw,2.6rem);color:var(--yellow);text-shadow:0 0 14px rgba(255,227,77,.8);animation:ready-pop .7s steps(4)}@keyframes ready-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.ov-hint{margin-top:1rem;font-size:1rem;color:var(--muted)}.initials{display:flex;justify-content:center;gap:.8rem;margin:.6rem 0 1.2rem}.initial{display:flex;flex-direction:column;align-items:center;width:72px;padding:.3rem 0;border:2px solid var(--line);background:var(--panel);cursor:pointer}.initial.is-active{border-color:var(--yellow);box-shadow:0 0 14px #ffe34d73}.initial-ch{font-family:var(--font-pixel);font-size:2rem;color:#fff;line-height:1.2;padding:.2rem 0}.initial.is-active .initial-ch{color:var(--yellow)}.initial-arrow{width:100%;min-height:36px;background:transparent;border:0;color:var(--cyan);font-size:.9rem;cursor:pointer}.initial-arrow:hover{color:#fff}.touch-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem calc(.8rem + var(--safe-b));background:linear-gradient(180deg,#16113a,#0b0920);border-top:2px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none}.touch-controls[hidden]{display:none}.tc-cluster{display:flex;gap:.7rem;align-items:center}.tc-btn{width:64px;height:64px;display:grid;place-items:center;font-family:var(--font-pixel);font-size:.75rem;color:#fff;background:linear-gradient(180deg,#2a2456,#1a1540);border:2px solid var(--cyan);border-radius:8px;box-shadow:0 4px #000,inset 0 2px #ffffff14;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:pointer}.tc-btn.is-active{transform:translateY(3px);box-shadow:0 1px #000;background:#3a3270;border-color:#fff}.tc-big{width:88px;height:88px;border-radius:50%;font-size:.7rem}.tc-round{width:72px;height:72px;border-radius:50%;font-size:1rem}.tc-small{width:64px;height:52px;font-size:.5rem;border-radius:8px}.tc-a{border-color:var(--magenta);background:linear-gradient(180deg,#5a1550,#3b0f36)}.tc-b{border-color:var(--yellow);background:linear-gradient(180deg,#4d4414,#2d2810)}.tc-layout-dpad-ab .tc-left-cluster,.tc-layout-dpad .tc-left-cluster{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);gap:2px}.tc-layout-dpad-ab .tc-left-cluster .tc-btn,.tc-layout-dpad .tc-left-cluster .tc-btn{width:56px;height:56px;border-radius:4px}.tc-up{grid-column:2;grid-row:1}.tc-left{grid-column:1;grid-row:2}.tc-right{grid-column:3;grid-row:2}.tc-down{grid-column:2;grid-row:3}.tc-layout-dpad-ab .tc-right-cluster,.tc-layout-ship .tc-right-cluster{flex-wrap:wrap;justify-content:flex-end;max-width:180px}.tc-layout-dpad .tc-right-cluster{display:none}.tc-layout-blocks .tc-left-cluster .tc-btn{width:56px;height:64px}.tc-layout-blocks .tc-right-cluster{display:grid;grid-template-columns:64px 64px;grid-template-rows:44px 60px;gap:6px}.tc-layout-blocks .tc-right-cluster .tc-small{width:64px;height:44px}.tc-layout-blocks .tc-right-cluster .tc-round{grid-column:1 / -1;width:100%;height:60px;border-radius:10px}.tc-layout-blocks .tc-right-cluster .tc-b{order:1}.tc-layout-blocks .tc-right-cluster .tc-round{order:2}@media (max-width: 380px){.tc-layout-blocks .tc-left-cluster .tc-btn{width:48px}.tc-layout-blocks .tc-right-cluster{grid-template-columns:56px 56px}.tc-layout-blocks .tc-right-cluster .tc-small{width:56px}.tc-btn{width:56px;height:56px}.tc-big{width:76px;height:76px}.tc-layout-dpad-ab .tc-left-cluster,.tc-layout-dpad .tc-left-cluster{grid-template-columns:repeat(3,50px);grid-template-rows:repeat(3,50px)}.tc-layout-dpad-ab .tc-left-cluster .tc-btn,.tc-layout-dpad .tc-left-cluster .tc-btn{width:50px;height:50px}}.orient-hint{display:none;padding:.5rem 1rem;text-align:center;font-family:var(--font-pixel);font-size:.5rem;color:var(--yellow);background:#ffe34d14;border-bottom:1px solid var(--line)}@media (max-width: 820px) and (orientation: landscape){.cabinet[data-orientation=portrait] .orient-hint{display:block}}.game-info{max-width:760px;margin:2.5rem auto 0}.game-info h2{color:#fff;margin-top:2rem}.game-info h2:before{content:"▶ ";color:var(--magenta)}.game-info p,.game-info li{font-size:1.25rem}.controls-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 600px){.controls-grid{grid-template-columns:1fr 1fr}}.controls-grid h3{color:var(--cyan);font-size:.6rem;margin-bottom:.6em}.controls-grid ul{list-style:none;padding:0;margin:0}.controls-grid li{padding:.3em 0;border-bottom:1px dashed var(--line)}kbd{font-family:var(--font-pixel);font-size:.55rem;padding:.2em .5em;background:var(--panel-2);border:1px solid var(--line);border-bottom-width:3px;border-radius:3px;color:#fff}.related-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.related-card{--c: var(--magenta);display:block;padding:.8rem;background:var(--panel);border:2px solid var(--line);color:var(--text);text-decoration:none!important;transition:border-color .12s,transform .12s}.related-card:hover{border-color:var(--c);transform:translateY(-2px)}.related-card canvas{width:100%;aspect-ratio:4 / 3;background:#000;border:3px solid #2a2450;margin-bottom:.6rem}.related-card .rc-title{font-family:var(--font-pixel);font-size:.6rem;color:#fff;margin-bottom:.3em}.related-card .rc-sub{font-size:1rem;color:var(--muted)}.fact-box{margin-top:1.5rem;padding:1rem 1.2rem;border-left:4px solid var(--yellow);background:#ffe34d0f}.fact-box strong{font-family:var(--font-pixel);font-size:.55rem;color:var(--yellow);display:block;margin-bottom:.5em}.ov-options{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}.ov-options .chip b{color:var(--yellow);margin-left:.3em}
