:root{--space-950:#050714;--space-900:#0b1026;--space-700:#18234a;--star:#f6f3d4;--cyan:#55d9e8;--engine:#ff9b45;--danger:#ff4f64;--success:#8de05b;--panel:#050714e0;--border:#6574a8;--shadow:#211b39}*{box-sizing:border-box}html,body{background:var(--space-950);min-height:100%;margin:0}button,input{font:inherit}button{color:inherit}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;min-height:100%;overflow:clip auto}body{min-height:100%;color:var(--star);image-rendering:pixelated;font-family:Courier New,ui-monospace,monospace;overflow:clip visible}body.asteroid-gallery-mode{background:var(--space-950);overflow-y:auto}body.asteroid-gallery-mode #asteroid-gallery-page{justify-content:center;min-height:100vh;display:grid}body.asteroid-gallery-mode #asteroid-gallery-canvas canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block;width:min(100vw,1120px)!important;height:auto!important}html.game-active,body.game-active,html.leaderboard-open,body.leaderboard-open{overflow:hidden}body.game-active #game-shell{position:fixed;inset:0}#experience{height:500vh;background:var(--space-950);height:500dvh;position:relative}#game-shell{width:100%;height:100vh;background:var(--space-950);outline:none;place-items:center;height:100dvh;display:grid;position:sticky;top:0;overflow:hidden}#game-canvas-container{place-items:center;display:grid;position:absolute;inset:0}#game-canvas-container canvas{object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;display:block;width:100%!important;height:100%!important}#ui-layer{pointer-events:none;position:absolute;inset:0}#scroll-driver{pointer-events:none;display:none}#scroll-debug{z-index:200;border:1px solid var(--cyan);color:var(--star);pointer-events:none;background:#050714eb;margin:0;padding:8px;font:10px/1.35 Courier New,monospace;position:fixed;bottom:8px;left:8px}.overlay{text-align:center;opacity:0;visibility:hidden;pointer-events:none;background:var(--space-950);place-content:center;justify-items:center;gap:18px;transition:opacity .24s steps(4,end);display:grid;position:absolute;inset:0}.overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto}.overlay.compact{background:#0507148c}.overlay.compact:before{content:"";border:4px solid var(--border);width:min(92vw,520px);height:min(50vh,280px);box-shadow:8px 8px 0 var(--shadow);background:var(--panel);z-index:-1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.brand,h2{color:var(--cyan);letter-spacing:.12em;text-shadow:4px 4px #20254b;font-size:clamp(1.45rem,4vw,2.8rem)}.loading-bar{border:4px solid var(--border);width:min(68vw,430px);height:20px;padding:3px}.loading-bar span{background:var(--cyan);transform-origin:0;width:100%;height:100%;animation:1.1s steps(8,end) infinite load;display:block}#loading.is-complete{opacity:0}@keyframes load{0%{transform:scaleX(.1)}to{transform:scaleX(1)}}#hud{top:max(18px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));border:3px solid var(--border);background:var(--panel);letter-spacing:.08em;text-shadow:2px 2px #000;opacity:0;min-width:165px;padding:10px 12px;line-height:1.45;transition:opacity .18s;position:absolute}[data-state=READY] #hud{opacity:.5}[data-state=PLAYING] #hud,[data-state=HIT] #hud,[data-state=PAUSED] #hud,[data-state=GAME_OVER] #hud{opacity:1}.lives-line{color:#ff7182}.ammo-line{color:var(--cyan);min-width:14ch}.ammo-line.is-low{color:var(--engine);animation:.7s steps(2,end) infinite ammo-low}.ammo-line.is-empty{color:var(--danger)}.ammo-line.is-empty-bump{animation:.18s steps(2,end) ammo-empty}@keyframes ammo-low{50%{opacity:.58}}@keyframes ammo-empty{50%{transform:translate(4px)}}#game-feedback{border:2px solid var(--border);min-width:12ch;color:var(--star);background:var(--panel);text-align:center;letter-spacing:.1em;opacity:0;padding:6px 10px;transition:opacity .12s steps(2,end),transform .12s steps(2,end);position:absolute;top:22%;left:50%;transform:translateY(8px)}#game-feedback.is-visible{opacity:1;transform:translateY(0)}#game-feedback[data-tone=warning]{color:var(--engine)}#game-feedback[data-tone=success]{color:var(--cyan)}.pixel-hint{text-align:center;letter-spacing:.18em;text-shadow:2px 2px #000;width:100%;position:absolute;bottom:11%}.pixel-hint span{animation:.9s steps(2,end) infinite bob;display:inline-block}@keyframes bob{50%{transform:translateY(6px)}}button{pointer-events:auto;cursor:pointer;border:3px solid var(--cyan);color:var(--star);letter-spacing:.08em;background:#101735;border-radius:0;padding:10px 16px;box-shadow:4px 4px #212746}button:hover{color:var(--space-950);background:var(--cyan)}button:disabled{cursor:not-allowed;color:#6f7588;box-shadow:none;background:#0b1026;border-color:#39405d}button:focus-visible{outline:4px solid var(--engine);outline-offset:4px}.hero-action{font-size:clamp(1rem,3vw,1.55rem);animation:1.2s steps(2,end) infinite pulse}.ready-actions{justify-items:center;gap:16px;display:grid}.ready-leaderboard{min-width:min(72vw,240px)}@keyframes pulse{50%{color:var(--cyan)}}.icon-button{top:max(18px, env(safe-area-inset-top));padding:7px;font-size:.7rem;position:absolute}#mute{left:max(18px, env(safe-area-inset-left))}#pause-button{left:max(118px, calc(env(safe-area-inset-left) + 118px));opacity:0}[data-state=PLAYING] #pause-button,[data-state=HIT] #pause-button{opacity:1}#touch-controls{display:none;position:absolute;inset:0}#touch-pad{pointer-events:auto;touch-action:none;left:max(22px, env(safe-area-inset-left));bottom:max(22px, env(safe-area-inset-bottom));border:3px solid #55d9e88c;width:110px;height:110px;position:absolute}#touch-pad span{background:#55d9e88c;width:28px;height:28px;position:absolute;top:39px;left:39px}#fire-button{right:max(28px, env(safe-area-inset-right));bottom:max(35px, env(safe-area-inset-bottom));touch-action:none;border-radius:50%;width:80px;height:80px;position:absolute}#rotate-prompt{text-align:center;background:var(--panel);letter-spacing:.1em;place-content:center;padding:24px;font-size:1.1rem;display:none;position:absolute;inset:0}#game-over{background:#050714c7;padding:12px}#game-over.overlay.compact:before{display:none}.leaderboard-card{border:4px solid var(--border);background:var(--panel);width:min(94vw,560px);max-height:94vh;box-shadow:8px 8px 0 var(--shadow);scrollbar-color:var(--cyan) var(--space-950);padding:18px 22px;overflow-y:auto}.leaderboard-card h2,.leaderboard-card h3,.leaderboard-card p{margin:0}.leaderboard-card h2{margin-bottom:8px}.leaderboard-card h3{color:var(--cyan);letter-spacing:.14em}.final-score{letter-spacing:.1em;line-height:1.5}.score-submit-form{gap:7px;margin-top:13px;display:grid}.score-submit-form label{color:var(--cyan);letter-spacing:.12em}.score-submit-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.score-submit-row input{border:3px solid var(--border);min-width:0;color:var(--star);background:var(--space-950);font:inherit;letter-spacing:.1em;text-transform:uppercase;border-radius:0;outline:none;padding:9px 10px}.score-submit-row input:focus{border-color:var(--cyan);box-shadow:3px 3px 0 var(--shadow)}.score-submit-row input:disabled{opacity:.65}.score-submit-row button{padding:8px 12px}.score-submit-status{color:#aeb5c7;letter-spacing:.08em;min-height:1.3em;font-size:.78rem;margin-top:8px!important}.score-submit-status[data-status=success]{color:var(--cyan)}.score-submit-status[data-status=validation-error],.score-submit-status[data-status=rate-limited],.score-submit-status[data-status=network-error],.score-submit-status[data-status=server-error]{color:var(--danger)}.score-saved-summary{color:var(--star);justify-content:center;gap:16px;margin-top:8px;font-size:.82rem;display:flex}.score-saved-summary[hidden]{display:none}.leaderboard-board{margin-top:12px}.leaderboard-dialog{width:100%;max-width:none;height:100%;max-height:none;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:var(--star);pointer-events:auto;background:#050714c7;border:0;margin:0}.leaderboard-dialog::backdrop{background:#050714c7}.leaderboard-dialog__content{width:min(94vw,560px);max-height:min(80vh,720px);border:4px solid var(--border);background:var(--panel);max-height:min(80dvh,720px);box-shadow:8px 8px 0 var(--shadow);scrollbar-color:var(--cyan) var(--space-950);margin:5vh auto 0;padding:16px 20px 20px;overflow-y:auto}.leaderboard-dialog__close{z-index:2;margin-left:auto;display:block;position:sticky;top:0}.leaderboard-dialog .leaderboard-board{margin-top:8px}.leaderboard-dialog #leaderboard-list{max-height:min(58vh,560px)}#leaderboard-list{background:#050714c2;border:2px solid #313957;min-height:64px;max-height:28vh;margin:7px 0 0;padding:6px 9px;list-style:none;overflow-y:auto}#leaderboard-list li{text-align:right;grid-template-columns:3ch minmax(0,1fr) 8ch;gap:8px;padding:3px 4px;font-size:.82rem;display:grid}#leaderboard-list li.is-current{color:var(--space-950);background:var(--cyan)}.leaderboard-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#leaderboard-list .leaderboard-empty{color:#aeb5c7;text-align:center;padding:18px 4px;display:block}#leaderboard-list .leaderboard-empty button{margin-top:12px}.game-over-actions{justify-content:center;gap:10px;margin-top:12px;display:flex}@media (max-width:560px),(max-height:650px){.leaderboard-card{padding:12px 14px}.score-submit-row{grid-template-columns:1fr}.score-saved-summary{flex-wrap:wrap;gap:8px 14px}#leaderboard-list{max-height:22vh}.leaderboard-dialog__content{max-height:calc(100dvh - 32px);margin-top:0;padding:12px 14px 16px}.leaderboard-dialog #leaderboard-list{max-height:58dvh}}@media (hover:none),(pointer:coarse){[data-state=PLAYING] #touch-controls,[data-state=HIT] #touch-controls{display:block}#experience{height:350vh;height:350dvh}}@media (orientation:portrait) and (max-width:700px){[data-state=READY] #rotate-prompt,[data-state=PLAYING] #rotate-prompt,[data-state=HIT] #rotate-prompt{pointer-events:auto;display:grid}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}#experience{height:100dvh;min-height:100dvh}}@media (prefers-contrast:more){:root{--border:#fff;--panel:#000}}
