@import url('data:text/css,');
:root{color-scheme:dark;font-family:Consolas,'Courier New',monospace;color:#dffcff;background:#03040b}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas{display:block;width:100vw;height:100vh}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid white;outline-offset:6px}[hidden]{display:none!important}.scanlines{position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#00000018 4px);opacity:.5}main{position:fixed;inset:0}#menu{padding:35px 4vw;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(90deg,#030611d9,transparent 85%)}.topline,footer{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:2px;color:#829ba9}.topline{border-bottom:1px solid #50dce132;padding-bottom:20px}#menu section{padding-bottom:3vh}.eyebrow{font-size:11px;letter-spacing:3px;color:#66f5ed}i{display:inline-block;width:6px;height:6px;background:#72ffbc;box-shadow:0 0 12px #72ffbc;margin-left:12px}h1{font-family:Impact,'Arial Black',sans-serif;font-style:italic;font-size:clamp(60px,10.4vw,160px);letter-spacing:-.035em;line-height:1;margin:20px 0;text-shadow:3px 2px #e02d9b,0 0 50px #33e0ff25}h1 span{color:#70ffef}.tagline{letter-spacing:5px;font-size:12px;margin:26px 0 40px;color:#bbcad7}button:not(.quiet){display:flex;align-items:center;justify-content:space-between;border:1px solid #76fff4;background:#72f9ed;color:#03111b;width:260px;padding:17px 24px;letter-spacing:4px;font-weight:bold;box-shadow:0 0 28px #39d9ed22}button:hover:not(.quiet){background:white;box-shadow:0 0 40px #39d9ed55}.controls{font-size:10px;letter-spacing:1px;color:#8aa4b5;margin-top:25px}kbd{border:1px solid #63818b;padding:4px 7px;margin-right:5px;color:white}b{margin:0 12px;font-weight:normal}.quiet{background:none;border:0;color:#9db4bc;font-size:10px;letter-spacing:2px}.overlay{display:grid;place-items:center;background:#03040bd9;backdrop-filter:blur(7px)}.panel{width:500px;max-width:90vw;border-top:2px solid #ef358f;padding:35px 30px;background:linear-gradient(140deg,#151129ee,#080e1bee);box-shadow:0 30px 100px #0008}h2{font-family:Impact,'Arial Black',sans-serif;font-size:64px;letter-spacing:2px;margin:15px 0;color:#fff}.bigtime{font-size:56px;color:#76fff4;font-variant-numeric:tabular-nums;margin:15px 0}.stats{display:flex;justify-content:space-between;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20;padding:22px 0;margin-bottom:28px;font-size:10px;color:#899bad;letter-spacing:2px}.stats strong{display:block;color:#e4f8ff;font-size:20px;margin-top:10px;letter-spacing:0}#newRecord{color:#ffbc55;font-size:11px;letter-spacing:3px;min-height:14px}#timer{position:fixed;top:30px;left:50%;transform:translateX(-50%);font-size:25px;letter-spacing:3px;text-shadow:0 2px 10px #000;font-variant-numeric:tabular-nums}#error{position:fixed;inset:30%;padding:30px;background:#150d21;color:white}

#speed{position:fixed;top:65px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:1px;color:#8aa4b5;text-shadow:0 2px 10px #000;font-variant-numeric:tabular-nums;white-space:nowrap}
/* Alpha 0.4: quiet framing; no animated scanlines or pulsing overlays. */
.scanlines{background:radial-gradient(ellipse at center,transparent 55%,#02050d55 100%);opacity:1}
#timer{top:25px;padding:8px 22px 25px;background:linear-gradient(180deg,#070e20cc,#070e2080);border-top:1px solid #789aa666;border-radius:3px;font-size:23px;letter-spacing:3px;color:#e1ecf1;text-shadow:0 1px 6px #000}
#speed{top:65px;font-size:10px;letter-spacing:1.2px;color:#9fb4c6}
.panel{border:1px solid #8c789b38;border-top:2px solid #a67a9c;background:linear-gradient(145deg,#181b2dee,#090f1dee);box-shadow:0 25px 90px #0007}
.bigtime{color:#badde3}.stats{border-color:#8198b025}
button:not(.quiet){background:#a8d8dc;border-color:#c5e8e9;box-shadow:0 0 24px #538fa516}
button:hover:not(.quiet){background:#d9eff1;box-shadow:0 0 25px #538fa530}
.audio-settings{position:absolute;right:4vw;bottom:85px;width:230px;padding:12px 16px;background:#090f1eeb;border:1px solid #789aa644;color:#a9c2ce;font-size:11px;letter-spacing:1px;z-index:2}.audio-settings summary{cursor:pointer}.audio-settings label{display:flex;align-items:center;justify-content:space-between;margin-top:15px;gap:12px}.audio-settings input[type=range]{width:120px;accent-color:#a8d8dc}.audio-settings input[type=checkbox]{accent-color:#a8d8dc}
/* Leaderboard is visible only outside gameplay. */
.lb-access{display:block;margin-top:20px;padding:8px 0}.online-result{font-size:11px;line-height:1.6;color:#a9c2ce;letter-spacing:.5px;min-height:18px}.leaderboard-panel{position:relative;width:760px;max-height:90vh;overflow:auto}.leaderboard-panel h2{font-size:38px}.lb-close{position:absolute;right:20px;top:18px}.lb-tabs,.lb-pages{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:15px 0}.lb-tabs button{padding:10px 8px;border-bottom:1px solid transparent}.lb-tabs button[aria-pressed=true]{color:#a8d8dc;border-color:#a8d8dc}.lb-table{max-height:38vh;overflow:auto}.lb-table table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.lb-table th{position:sticky;top:0;background:#131a2b;color:#849bab;font-size:10px;letter-spacing:2px}.lb-table th,.lb-table td{padding:11px;border-bottom:1px solid #8198b025}.lb-table .self{background:#a8d8dc16;color:#a8d8dc}.lb-pages{font-size:10px}.lb-pages button:disabled{opacity:.3;cursor:default}#nicknameForm{display:flex;align-items:center;gap:14px;border-top:1px solid #8198b025;padding-top:20px;font-size:11px}#nickname{background:#080f1e;color:#dffcff;border:1px solid #789aa644;padding:10px;width:190px;font:inherit}
/* Beta 0.8.1: local attempt and authoritative world record stay distinct. */
#over .gameover-panel{width:940px;max-width:94vw;max-height:94vh;padding:0;display:flex;flex-direction:column;overflow:hidden}
.gameover-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:28px 30px;overflow:auto;min-height:0}
.personal-result h2{font-size:52px;margin:14px 0}.personal-result .eyebrow{font-size:9px;letter-spacing:1.6px}.personal-result .bigtime{font-size:48px;margin:8px 0 20px}.personal-result .stats{margin-bottom:0;gap:20px}.personal-result .stats strong{font-size:18px}
.result-label{font-size:9px;letter-spacing:1.7px;color:#889eaf;margin:22px 0 8px}
.world-result{border-left:1px solid #8198b030;padding-left:30px}.world-result h3,.world-result h4{font-size:11px;letter-spacing:3px;color:#a8d8dc;margin:0 0 12px}.world-result h4{margin:20px 0 8px;font-size:10px}
.world-position{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.world-position strong{font-size:56px;line-height:1.1;letter-spacing:-2px;color:#d8eff0}.world-position span{font-size:17px;color:#8fa7b8}.world-identity{font-size:15px;line-height:1.5;color:#c9dce5;margin:0}.world-result .result-label{margin-top:15px}#worldNewBest{font-size:10px;color:#ffbc55;letter-spacing:1.6px;margin:10px 0}.world-result .online-result{font-size:10px;margin:10px 0;min-height:0}.mini-table{max-height:none}.mini-table th,.mini-table td{padding:9px 6px;font-size:11px}.mini-table th{font-size:9px}.mini-table .self{font-weight:bold}
.gameover-actions{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 30px 15px;border-top:1px solid #8198b030;background:#0b1221}.gameover-actions .controls{margin:9px 0 0;font-size:9px}.gameover-actions #retry{width:230px}.gameover-actions button.secondary{background:transparent;color:#a8d8dc;border:1px solid #789aa666;box-shadow:none;width:auto;font-size:10px;letter-spacing:1.3px;padding:15px 18px}.gameover-actions button.secondary:hover{background:#a8d8dc12;box-shadow:none}
@media(max-width:760px){.gameover-content{grid-template-columns:1fr;gap:20px;padding:22px}.world-result{border-left:0;border-top:1px solid #8198b030;padding:20px 0 0}.gameover-actions{padding:15px;gap:12px}.gameover-actions #retry{width:150px}.gameover-actions button.secondary{max-width:48%;font-size:9px;letter-spacing:.5px}}
@media(max-height:700px) and (min-width:761px){.gameover-content{padding:20px 26px;gap:24px}.personal-result h2{font-size:42px}.personal-result .bigtime{font-size:40px}.world-position strong{font-size:44px}.world-result h4{margin-top:12px}.gameover-actions{padding:12px 26px}.result-label{margin-top:14px}}
/* Beta 0.9: dynamic viewport, safe areas and touch-only game controls. */
canvas{height:100dvh;touch-action:none}
#touchControls{position:fixed;inset:0;pointer-events:none;user-select:none;-webkit-user-select:none}
#touchControls .touch-arrow{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));width:72px;height:72px;border:1px solid #b8f9ff;background:#0c253355;color:#d4fbff;font-size:34px;opacity:.24;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;letter-spacing:0;padding:0}
.touch-arrow[data-direction="-1"]{left:max(22px,env(safe-area-inset-left))}.touch-arrow[data-direction="1"]{right:max(22px,env(safe-area-inset-right))}
#touchControls .touch-arrow.pressed{opacity:.55;background:#24465188}
.overlay{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
#over .gameover-panel,.leaderboard-panel{max-height:100%;max-height:calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)))}
.gameover-content,.leaderboard-panel,.lb-table{overscroll-behavior:contain;touch-action:pan-y}
#timer{top:max(16px,env(safe-area-inset-top))}#speed{top:calc(max(16px,env(safe-area-inset-top)) + 40px)}
#menu{overflow:auto;padding:max(24px,env(safe-area-inset-top)) max(4vw,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(4vw,env(safe-area-inset-left));gap:20px}
#nicknameForm{flex-wrap:wrap}#nickname{max-width:100%;font-size:16px;min-width:0}
.lb-close,.lb-tabs button,.lb-pages button,#nicknameSave,.lb-access{min-height:44px}
.leaderboard-panel h2{margin-top:38px;font-size:clamp(24px,6vw,38px)}
#nicknameForm button{padding:10px}.world-identity,.online-result{overflow-wrap:anywhere}
#error{inset:auto 5% 15%;z-index:5;pointer-events:none}
@media(max-width:600px){h1{font-size:clamp(36px,10vw,60px)}.tagline{font-size:10px;letter-spacing:2px;margin:20px 0}.topline,footer{font-size:9px;letter-spacing:1px;gap:12px;flex-wrap:wrap}.audio-settings{position:static;align-self:flex-end;width:230px;max-width:100%}#menu section{padding:0}.leaderboard-panel{padding:20px 14px;max-width:100%}.lb-tabs{gap:3px}.lb-tabs button{font-size:9px;letter-spacing:.5px}.lb-table th,.lb-table td{padding:10px 5px}.lb-pages{gap:6px}.lb-pages button{font-size:9px;letter-spacing:0}.gameover-actions #retry{width:125px}.gameover-actions{gap:8px;padding:12px}.personal-result h2{font-size:42px}}
@media(max-height:500px){#menu{gap:10px;padding-top:12px;padding-bottom:12px}#menu h1{font-size:48px;margin:8px 0}#menu .tagline{margin:10px 0}#menu .controls{margin-top:12px}.audio-settings{position:static;align-self:flex-end}#menu .topline{padding-bottom:10px}.gameover-content{padding:16px}.gameover-actions{padding:10px 16px}.panel{padding:18px}.panel h2{font-size:36px}}
.music-credit{font-size:10px;line-height:1.5;letter-spacing:.4px;color:#8aa4b5;margin:0}#musicStatus{font-size:10px;line-height:1.5;margin:8px 0 0}#musicStatus:empty{display:none}
/* 0.9.1: portable identity and first-visit callsign, outside gameplay. */
.identity-tools{border-top:1px solid #789aa644;margin-top:20px;padding-top:12px;font-size:11px;line-height:1.6}.identity-tools>div,.identity-confirm>div{display:flex;flex-wrap:wrap;gap:12px}.identity-tools button,.identity-confirm button,#welcomeImport,#welcomeLocal{min-height:48px;padding:10px;letter-spacing:1px}.welcome-panel{max-height:calc(100dvh - 40px);overflow:auto}.welcome-panel h2,.identity-confirm h2{font-size:clamp(25px,5vw,36px);line-height:1.2}.welcome-panel form{display:grid;gap:16px}.welcome-panel label{font-size:12px;color:#a8d8dc}.welcome-panel input{font:inherit;font-size:16px;min-height:48px;width:100%;background:#080f1e;border:1px solid #789aa666;color:#dffcff;padding:12px}.welcome-panel #welcomeSave{width:100%;font-size:12px;letter-spacing:1px}.identity-note,#welcomeStatus,#identityStatus{font-size:11px;line-height:1.6;overflow-wrap:anywhere}.identity-confirm{color:#dffcff;max-height:90dvh;overflow:auto}.identity-confirm::backdrop{background:#03040be0}.identity-confirm p{font-size:13px;line-height:1.7}.identity-tools button:disabled,.welcome-panel button:disabled{opacity:.45;cursor:wait}
