:root{--bg:#0a0a0a;--panel:#111;--text:#eee;--text-dim:#888;--accent:#fff;--accent-green:#0f0;--border:#222;--mono:"Courier New", ui-monospace, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--mono);margin:0;padding:0;font-size:15px;line-height:1.5;overflow-x:hidden}#app{min-height:100svh}.arcade-shell{flex-direction:column;min-height:100svh;display:flex}.global-header{background:#050505;border-bottom:1px solid #222;padding:14px 20px}.header-content{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;display:flex}.brand{letter-spacing:4px;font-size:21px;font-weight:700}.brand-retro{color:#888}.brand-arcade{color:#fff}.current-game-label{color:#0f0;letter-spacing:3px;border:1px solid #0f0;padding:4px 14px;font-size:13px}.main-area{flex:1;justify-content:center;width:100%;min-width:0;padding:20px 16px 40px;display:flex}.global-footer{text-align:center;color:#444;border-top:1px solid #222;padding:16px;font-size:10px}.menu{width:100%;max-width:1040px}.menu-header{text-align:center;margin-bottom:32px}.arcade-logo{letter-spacing:6px;font-size:62px;font-weight:800;line-height:1}.logo-text{color:#666}.logo-arcade{color:#fff;text-shadow:0 0 20px #ffffff40}.games-grid{grid-template-columns:repeat(2,1fr);gap:22px;max-width:720px;margin:0 auto;display:grid}.game-card{cursor:pointer;background:#111;border:3px solid #222;flex-direction:column;transition:transform .1s,border-color .1s;display:flex;overflow:hidden}.game-card:hover{border-color:#444;transform:translateY(-2px)}.card-image{background:#000;width:100%;overflow:hidden}.card-image img{width:100%;height:auto;image-rendering:pixelated;display:block}.card-title{letter-spacing:1px;color:#fff;margin-bottom:4px;font-size:18px;font-weight:700}.card-year{opacity:.6;color:#888;margin-bottom:8px;font-size:11px}.card-body{flex-direction:column;flex:1;padding:10px 14px 8px;display:flex}.card-desc{color:#ccc;flex:1;margin:0 0 14px;font-size:13px;line-height:1.4}.card-highscore{color:#666;margin-bottom:14px;font-size:11px;line-height:1.2}.hs-value{color:#0f0;letter-spacing:1px;font-size:22px}.card-controls{color:#555;letter-spacing:1px;font-size:11px}.play-btn{font-family:var(--mono);color:#fff;letter-spacing:2px;cursor:pointer;text-transform:uppercase;background:#222;border:none;border-top:2px solid #333;padding:13px;font-size:13px;transition:background .1s}.play-btn:hover{background:#2a2a2a}.menu-footer{text-align:center;color:#555;margin-top:32px;font-size:13px}.menu-footer kbd{background:#1f1f1f;border:1px solid #333;padding:1px 7px}.menu-footer .hint{color:#444;margin-top:8px;font-size:11px}.game-wrapper{flex-direction:column;align-items:center;width:100%;min-width:0;max-width:860px;margin:0 auto;display:flex}.game-page{flex-direction:column;align-items:stretch;width:100%;min-width:0;max-width:860px;display:flex}.game-global-top-bar{z-index:10;justify-content:space-between;align-items:center;gap:8px;width:100%;max-width:860px;margin:0 auto 12px;padding:0 4px 8px;display:flex}.game-box{background:#050505;border:1px solid #222;border-radius:4px;flex-direction:column;align-items:center;width:100%;min-width:0;max-width:860px;margin:0 auto;padding:8px 12px 4px;display:flex}.canvas-wrap{justify-content:center;width:100%;line-height:0;display:flex}.back-btn{font-family:var(--mono);color:#aaa;letter-spacing:1px;cursor:pointer;background:0 0;border:1px solid #444;padding:7px 14px;font-size:12px}.back-btn:hover{color:#fff;border-color:#666}.game-title{letter-spacing:3px;color:#fff;text-align:center;width:100%;font-size:18px;line-height:1.4}.game-title .hs{color:#0f0;white-space:nowrap;margin-left:16px;font-size:12px}.sound-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 8px;font-size:18px}.top-controls-right{align-items:center;gap:4px;display:flex}.crt-toggle{font-family:var(--mono);letter-spacing:1px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #444;padding:3px 8px;font-size:11px;transition:all .1s}.crt-toggle:hover{color:#aaa;border-color:#666}.crt-toggle.active{color:#0f0;background:#00ff0014;border-color:#0f0}canvas{image-rendering:pixelated;cursor:pointer;background:#000;border:6px solid #1a1a1a;max-width:100%;height:auto;display:block;box-shadow:inset 0 0 30px #000c,0 0 12px #00ff6426}.scores{color:#777;justify-content:space-between;width:100%;max-width:800px;margin:0 auto 8px;font-size:16px;display:flex}.score{letter-spacing:1px;align-items:center;gap:10px;font-size:12px;display:flex}.score-value{color:#fff;text-align:center;min-width:38px;font-size:26px;font-weight:700}.status{color:#0f0;letter-spacing:2px;text-align:center;width:100%;min-height:20px;margin:12px 0 6px;padding:0 4px;font-size:12px;line-height:1.4}.controls{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.btn{font-family:var(--mono);color:#fff;letter-spacing:1px;cursor:pointer;text-transform:uppercase;background:#1a1a1a;border:2px solid #333;padding:9px 18px;font-size:13px;transition:all .1s}.btn:hover:not(:disabled){background:#222;border-color:#555}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{color:#000;background:#fff;border-color:#fff}.btn-primary:hover:not(:disabled){background:#ddd;border-color:#ddd}.btn-danger{color:#f88;border-color:#400}.difficulty{justify-content:center;gap:6px;margin-top:10px;display:flex}.diff-btn{font-family:var(--mono);color:#888;letter-spacing:1px;cursor:pointer;background:#111;border:1px solid #333;padding:5px 12px;font-size:11px}.diff-btn.active{color:#0f0;background:#222;border-color:#0f0}@media (width<=860px){.main-area{padding:12px 10px 28px}.global-header{padding:10px 12px}.brand{letter-spacing:2px;font-size:16px}.current-game-label{letter-spacing:1px;padding:3px 8px;font-size:10px}.games-grid{grid-template-columns:1fr;gap:16px;max-width:380px;margin:0 auto}.arcade-logo{letter-spacing:3px;font-size:42px}.game-global-top-bar{flex-wrap:wrap;padding:0 0 8px}.back-btn{letter-spacing:0;padding:6px 10px;font-size:10px}.game-box{padding:6px 8px 4px}.game-title{letter-spacing:2px;font-size:15px}.game-title .hs{margin-top:2px;margin-left:0;font-size:11px;display:block}.scores{margin-bottom:6px;font-size:14px}.score-value{min-width:32px;font-size:22px}.status{letter-spacing:1px;font-size:10px}.controls{gap:6px}.btn{padding:8px 12px;font-size:11px}.difficulty{flex-wrap:wrap}.diff-btn{padding:4px 10px;font-size:10px}canvas{border-width:3px}.touch-btn{width:46px;height:46px;font-size:18px}.touch-btn.small{height:34px}.touch-btn.action{height:34px;padding:0 10px;font-size:10px}.leaderboard{margin-top:24px;padding:12px 14px}.leaderboard-grid{grid-template-columns:1fr;gap:4px}}@media (width<=400px){.main-area{padding:10px 6px 24px}.brand{letter-spacing:1px;font-size:14px}.arcade-logo{letter-spacing:2px;font-size:32px}.game-title{letter-spacing:1px;font-size:13px}.btn{letter-spacing:0;padding:7px 10px;font-size:10px}.touch-row.actions{flex-wrap:wrap;justify-content:center}}.leaderboard{background:#111;border:2px solid #222;max-width:520px;margin-top:36px;margin-left:auto;margin-right:auto;padding:16px 20px}.leaderboard-title{text-align:center;letter-spacing:3px;color:#0f0;border-bottom:1px solid #222;margin-bottom:10px;padding-bottom:6px;font-size:13px}.leaderboard-grid{grid-template-columns:1fr 1fr;gap:6px 18px;display:grid}.leaderboard-row{justify-content:space-between;padding:3px 0;font-size:13px;display:flex}.lb-label{color:#888}.lb-score{color:#0f0;letter-spacing:1px;font-weight:700}.leaderboard-note{text-align:center;color:#444;margin-top:10px;font-size:10px}.touch-controls{flex-direction:column;align-items:center;gap:8px;margin-top:12px;display:none}@media (width<=860px),(pointer:coarse){.touch-controls{display:flex}}.touch-row{align-items:center;gap:8px;display:flex}.touch-btn{font-family:var(--mono);color:#0f0;-webkit-user-select:none;user-select:none;touch-action:none;background:#222;border:2px solid #333;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;display:flex}.touch-btn.small{height:38px;font-size:16px}.touch-btn.action{letter-spacing:1px;width:auto;height:38px;padding:0 14px;font-size:11px}.touch-v{flex-direction:column;gap:4px;display:flex}.game-wrapper{position:relative}.game-wrapper.crt-enabled:after{content:"";pointer-events:none;z-index:20;mix-blend-mode:multiply;background:repeating-linear-gradient(#0000 0 2px,#00000047 2px 4px),repeating-linear-gradient(90deg,#0000 0 3px,#ffffff08 3px 4px);border-radius:3px;width:100%;height:100%;position:absolute;top:0;left:0}.game-wrapper.crt-enabled:before{content:"";pointer-events:none;z-index:15;background:radial-gradient(circle,#0000 68%,#00000061 88%);border-radius:6px;position:absolute;inset:-2px;box-shadow:inset 0 0 40px #00000059,0 0 0 8px #111,0 0 0 10px #1a1a1a}.game-wrapper.tetris-theme canvas{border-color:#a0f}.game-wrapper.tetris-theme .game-title{color:#a0f}.game-wrapper.tetris-theme .hs{color:#c0f}.pong-accent .game-title{color:#0ff}.pong-accent .hs{color:#0cc}.snake-accent .game-title{color:#0f0}.snake-accent .hs{color:#0a0}.breakout-accent .game-title{color:#ff0}.breakout-accent .hs{color:#cc0}.sonic-accent .game-title{color:#08f}.sonic-accent .hs{color:#06c}.tetris-theme .touch-btn{color:#c0f;border-color:#a0f}.snake-theme .touch-btn{color:#0f0;border-color:#0f0}.breakout-theme .touch-btn{color:#ff0;border-color:#ff0}.sonic-accent .touch-btn{color:#0af;border-color:#08f}
