.arcade-page{background:#172020;color:#eef4f1;min-height:100vh}
.arcade-wrap{width:min(960px,calc(100% - 48px));margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.arcade-header{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #3a4c49}
.arcade-header h1{font-size:1.375rem;font-weight:600;line-height:1.3;letter-spacing:-.025em}
.arcade-home{display:flex;align-items:center;gap:10px;font-size:.875rem;color:#bdceca}
.arcade-home:hover{color:#f4ff7c}
.arcade-home .brand-mark{width:30px;height:30px;font-size:.8125rem;background:#c2eff0;color:#172020;border-radius:4px}
.sound-button{background:transparent;border:1px solid #4a615a;color:#bdceca;border-radius:5px;min-height:40px;padding:8px 12px;font-size:.875rem}
.sound-button:hover{border-color:#9fb7b0}
.sound-button[aria-pressed="true"]{background:#29483d;color:#d9f1dc;border-color:#718f7a}
.arcade-page a:focus-visible,.arcade-page button:focus-visible,.arcade-page summary:focus-visible,.game-screen:focus-visible{outline:2px solid #f4ff7c;outline-offset:4px}
.arcade-page main{padding-block:18px 24px}
.game-selectors{display:flex;gap:4px;padding:4px;background:#20312d;border:1px solid #3a5149;border-radius:7px;margin-bottom:16px}
.game-selector{flex:1;min-width:0;border:0;border-radius:4px;background:transparent;color:#b9ccc4;padding:10px 14px;min-height:44px;font-size:1rem;font-weight:500;line-height:1.3;transition:background .15s,color .15s}
.game-selector:hover{background:#2b4238;color:#eff6f0}
.game-selector.selected{background:#3a5548;color:#eef6ea}
.game-cabinet{border:1px solid #4a6359;border-radius:8px;overflow:hidden;background:#172020;min-width:0}
.game-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#20312d;border-bottom:1px solid #3a5149}
.game-hud>div{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 14px}
.game-hud span{font-size:.875rem;color:#b2c6bc}
.game-hud strong{font:500 1.125rem var(--mono);color:#f3f7ef}
.game-screen{position:relative;isolation:isolate;background:#172020;width:100%;aspect-ratio:16/9;max-height:calc(100svh - 270px);min-height:240px;overflow:hidden;touch-action:none}
.game-screen:focus-visible{outline-offset:-2px}
.game-screen canvas{width:100%;height:100%;display:block;image-rendering:pixelated;object-fit:contain}
.screen-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:24px;text-align:center;background:#172020d9;color:#f3f6ee;z-index:1}
.screen-overlay[hidden]{display:none}
.screen-overlay h3{font-size:clamp(1.625rem,3vw,2.5rem);font-weight:600;line-height:1.2;letter-spacing:-.035em}
.screen-overlay>p{font-size:1rem;color:#c1d1c8;line-height:1.55;max-width:390px;margin-top:13px}
.screen-overlay>p[hidden]{display:none}
#start-game{background:#e9f492;border:0;border-radius:5px;color:#172020;font-size:1rem;font-weight:600;padding:11px 28px;min-height:46px;margin-top:22px}
#start-game:hover{background:#f4ffac}
.game-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 14px;border-top:1px solid #3a5149;background:#20312d}
.game-toolbar p{font-size:.875rem;color:#b2c6bc;line-height:1.5}
.game-toolbar>div{display:flex;gap:6px;flex-shrink:0}
.game-toolbar button{background:transparent;color:#edf3ed;border:1px solid #4a6359;border-radius:4px;padding:7px 10px;min-height:40px;font-size:.875rem;white-space:nowrap}
.game-toolbar button:hover:enabled{background:#2e483b;border-color:#91aa99}
.game-toolbar button:disabled{opacity:.4;cursor:default}
.game-toolbar kbd{font:400 .75rem var(--mono);color:#9db6a6;margin-left:5px}
.touch-controls{display:none;justify-content:center;align-items:center;gap:28px;padding:15px 20px;background:#20312d;border-top:1px solid #3a5149}
.direction-pad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,44px);gap:6px}
.direction-pad button,.action-control{border:1px solid #69806f;border-radius:5px;background:#2c4436;color:#eff6ea;touch-action:none;user-select:none;-webkit-user-select:none}
.direction-pad button{display:grid;place-items:center;font-size:1rem;padding:0;min-height:44px}
.direction-pad button.pressed,.action-control.pressed{background:#c2eff0;color:#172020;border-color:#c2eff0}
.control-up{grid-column:2;grid-row:1}.control-left{grid-column:1;grid-row:2}.control-down{grid-column:2;grid-row:2}.control-right{grid-column:3;grid-row:2}
.action-control{padding:12px 22px;min-height:48px;font-size:.9375rem;background:#d9e6b8;color:#172020;border-color:#d9e6b8;font-weight:500}
.action-control[hidden]{display:none}
.touch-controls.is-horizontal .direction-pad{grid-template-columns:repeat(2,52px);grid-template-rows:48px;gap:10px}
.touch-controls.is-horizontal .control-left{grid-column:1;grid-row:1}.touch-controls.is-horizontal .control-right{grid-column:2;grid-row:1}
.touch-controls.is-horizontal .control-up,.touch-controls.is-horizontal .control-down{display:none}
.arcade-help{border-bottom:1px solid #3a5149;margin-top:14px;padding:0 1px 12px}
.arcade-help summary{font-size:.875rem;color:#b9ccc3;cursor:pointer;min-height:38px;line-height:38px}
.arcade-help summary:hover{color:#f0f6ed}
.help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:12px}
.help-grid h3{font-size:1rem;font-weight:500;letter-spacing:0;line-height:1.4;color:#ecf4e9}
.help-grid p,.help-shared,.records-note{font-size:.875rem;line-height:1.7;color:#b5cabd;margin-top:10px}
.help-shared{border-top:1px solid #3a5149;padding-top:16px;margin-top:20px}.records-note{font-size:.8125rem}
.arcade-expanded{overflow:hidden}
.game-cabinet:fullscreen,.game-cabinet.is-expanded{position:fixed;inset:0;z-index:30;border:0;border-radius:0;display:flex;flex-direction:column;background:#172020;overflow:auto}
.game-cabinet:fullscreen .game-screen,.game-cabinet.is-expanded .game-screen{flex:1;min-height:0;max-height:none;aspect-ratio:auto;display:grid;place-items:center}
.game-cabinet:fullscreen canvas,.game-cabinet.is-expanded canvas{width:100%;height:100%;object-fit:contain}
.game-cabinet:fullscreen .game-toolbar,.game-cabinet.is-expanded .game-toolbar{flex-shrink:0}
@media(max-width:850px){.game-toolbar{flex-wrap:wrap;gap:10px}.game-toolbar>div{margin-left:auto}.game-screen{max-height:none}.touch-controls{display:flex}.game-hud>div{gap:9px}.help-grid{gap:20px}}
@media(max-width:540px){.arcade-wrap{width:calc(100% - 28px)}.arcade-header{height:66px;gap:12px}.arcade-home{font-size:.875rem;gap:8px}.arcade-home .brand-mark{display:none}.arcade-header h1{font-size:1.125rem}.sound-button{font-size:.875rem;padding-inline:9px;min-height:40px}.arcade-page main{padding-top:14px}.game-selectors{margin-bottom:12px}.game-selector{font-size:.875rem;padding-inline:8px}.game-hud>div{display:block;text-align:center;padding:9px 6px}.game-hud span{font-size:.875rem}.game-hud strong{display:block;margin-top:3px;font-size:1rem}.game-screen{aspect-ratio:4/3;min-height:220px}.screen-overlay{padding:18px}.screen-overlay h3{font-size:1.625rem}.screen-overlay>p{font-size:.875rem;max-width:280px;margin-top:10px}#start-game{font-size:.9375rem;margin-top:16px;min-height:44px;padding:10px 24px}.game-toolbar{padding:11px 12px}.game-toolbar p{font-size:.875rem;width:100%}.game-toolbar>div{width:100%;justify-content:space-between;gap:7px}.game-toolbar button{font-size:.875rem;min-height:44px;padding-inline:7px}.game-toolbar kbd{display:none}.touch-controls{padding:14px;gap:22px}.direction-pad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:5px}.action-control{padding-inline:16px;font-size:.875rem}.help-grid{grid-template-columns:1fr;gap:18px}.help-grid p{margin-top:6px}}
@media(hover:none) and (pointer:coarse){.touch-controls{display:flex}}
@media(prefers-reduced-motion:reduce){.game-selector{transition:none}}
