:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e0eeee;background:#0c161b;font-synthesis:none}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{margin:0}button,input,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #83f4d7;outline-offset:5px}[hidden]{display:none!important}#title-screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;padding:32px;text-align:center;background:radial-gradient(ellipse at 50% 42%,#193d40,#0c161b 68%)}#game-title{margin:0;color:#b0f5df;font-size:clamp(44px,12vw,108px);font-weight:600;letter-spacing:.035em;line-height:1.1}#start-game{min-width:200px;min-height:56px;padding:16px 32px;border:1px solid #8dedcf;border-radius:8px;background:#8dedcf;color:#163d37;font-size:17px;font-weight:600;touch-action:manipulation}#start-game:hover{background:#b0f5df}#start-game:active{transform:translateY(1px)}#difficulty-screen{height:100vh;height:100dvh;overflow-y:auto;display:grid;place-items:center;padding:28px 20px;text-align:center;background:radial-gradient(ellipse at 50% 42%,#193d40,#0c161b 68%)}#difficulty-form{width:min(100%,720px)}#difficulty-title{margin:12px 0 28px;font-size:clamp(26px,5vw,40px);font-weight:500}#difficulty-form fieldset{padding:0;margin:0;border:0;min-width:0}.difficulty-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.difficulty-option{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;text-align:left;padding:20px 16px;border:1px solid #40606a;border-radius:12px;background:#132931;cursor:pointer;touch-action:manipulation}.difficulty-option:has(input:checked){border-color:#8dedcf;background:#20423f;box-shadow:0 0 0 1px #8dedcf}.difficulty-option input{accent-color:#8dedcf;margin:4px 0 0;flex-shrink:0}.difficulty-option strong{display:block;color:#e6f6f4;font-size:18px;font-weight:500}.difficulty-option small{display:block;margin-top:10px;color:#afc8ce;font-size:12px;line-height:1.5}.difficulty-note{margin:20px 0;color:#afc8ce;font-size:12px;line-height:1.5}#enter-arena{min-width:200px;min-height:56px;padding:16px 32px;border:1px solid #8dedcf;border-radius:8px;background:#8dedcf;color:#163d37;font-size:17px;font-weight:600;touch-action:manipulation}#enter-arena:hover{background:#b0f5df}@media(max-width:560px){.difficulty-options{grid-template-columns:1fr}.difficulty-option{padding:16px}.difficulty-option small{margin-top:4px}}@media(max-height:480px){#difficulty-screen{padding:16px 20px}#difficulty-title{margin:8px 0 16px}.difficulty-note{margin:12px 0}}#game{position:fixed;inset:0;width:100vw;height:100vh;width:100dvw;height:100dvh;display:block;outline:none;touch-action:none}header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:30px 38px;pointer-events:none}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:800;letter-spacing:5px}.brand-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid #76d8c1;color:#83f4d7;font-size:24px;transform:skewY(-8deg);letter-spacing:0}.brand small{display:block;margin-top:4px;color:#7d989f;font-size:9px;font-weight:500;letter-spacing:2px}.status{display:flex;align-items:center;gap:8px;color:#9db8bc;font-size:10px;letter-spacing:1.5px}.status-dot{width:5px;height:5px;background:#81ebc7;border-radius:100%;box-shadow:0 0 12px #81ebc777}.overlay{position:fixed;inset:120px 38px auto;display:flex;justify-content:flex-end;pointer-events:none}.eyebrow{color:#77cbb8;font-size:10px;letter-spacing:2px}h1{font-size:clamp(25px,3vw,40px);font-weight:500;letter-spacing:-1.5px;margin:12px 0}.tuning{width:232px;padding:19px;background:#12232be6;border:1px solid #2f454c;border-radius:12px;pointer-events:auto;backdrop-filter:blur(16px)}summary{cursor:pointer;font-size:13px;list-style:none;font-weight:600}summary::-webkit-details-marker{display:none}summary span{float:right;color:#88b5b2}.tuning p{color:#829da6;font-size:11px;margin:9px 0 23px}.level-label{margin-top:18px}#level-select{width:100%;margin-top:8px;padding:8px 4px;border:1px solid #395059;border-radius:5px;background:#1b2d35;color:#c5dcde;font:inherit;font-size:11px}.arena-label b{font-weight:inherit}label{display:flex;justify-content:space-between;font-size:11px;color:#c6d5d7}output{color:#94efd9;font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:#86e8ce;margin:13px 0 21px;height:3px;cursor:pointer}.text-button{background:none;border:none;padding:0;color:#99b1b7;font-size:11px;text-decoration:underline;text-underline-offset:4px}.tuning-note{margin-top:20px;border-top:1px solid #2a3e47;padding-top:12px;font-size:10px;color:#7d969e;line-height:1.6}.arena-label{position:fixed;bottom:116px;left:38px;color:#9ab2b7;font-size:10px;letter-spacing:2px;pointer-events:none}.arena-label>span{color:#81dec5;margin-right:10px}.arena-label i{display:block;color:#597780;margin:8px 0 0 29px;font-size:9px;font-style:normal;letter-spacing:1px}#boss-status{margin-top:10px;color:#dfaaff;font-size:10px;letter-spacing:1px}footer{position:fixed;bottom:0;left:0;right:0;padding:22px 38px;border-top:1px solid #23363e;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#0c171de8}.controls{display:flex;gap:15px;align-items:center;color:#8ca6ad;font-size:11px}kbd{font-family:inherit;font-size:9px;border:1px solid #3b535a;border-radius:4px;padding:4px 5px;margin-right:3px;color:#c3d6db}.control-divider{height:16px;width:1px;background:#34494f}.actions{display:flex;gap:10px}.actions button,#retry{min-height:44px;border:1px solid #395059;background:#1b2d35;color:#c5dcde;padding:11px 14px;border-radius:7px;font-size:12px}.actions button:hover{filter:brightness(1.15)}.music-controls{position:relative}footer{z-index:2}.music-controls>summary{min-height:44px;display:flex;align-items:center;border:1px solid #395059;border-radius:7px;background:#1b2d35;color:#c5dcde;padding:11px 12px;font-size:12px;font-weight:400}.music-panel{width:220px;padding:14px;border:1px solid #48666d;border-radius:10px;background:#152b34}footer .music-panel{position:absolute;bottom:calc(100% + 10px);right:0;box-shadow:0 8px 30px #0006}.music-panel button{margin-bottom:14px;min-height:36px;border:1px solid #48666d;border-radius:7px;padding:8px 12px;color:#c5dcde;background:#1b343e}.music-panel input{margin:16px 0 6px}.round-music{margin-top:10px;text-align:left}.round-music .music-panel{width:100%;margin-top:8px}@media(max-width:500px){.music-controls>summary{padding:10px 8px;font-size:11px}footer .controls{display:none}footer .actions{width:100%;justify-content:space-between}footer .music-panel{right:auto;left:-55px}}.actions button.primary{background:#8dedcf;color:#163d37;border-color:#8dedcf}.actions kbd{margin-left:12px;color:inherit;border-color:currentColor;opacity:.55}.telemetry{position:fixed;right:38px;bottom:112px;width:130px;pointer-events:none}.telemetry>div:first-child{display:flex;gap:7px;align-items:baseline}.telemetry small{font-size:9px;color:#8aa7ae;letter-spacing:1px;margin-right:auto}.telemetry strong{font-size:25px;font-weight:400;font-variant-numeric:tabular-nums}.telemetry span{font-size:10px;color:#7b9ca6}.speed-track{height:3px;background:#30454c;margin-top:8px}#speed-bar{display:block;height:100%;width:0;background:#87e8ce;transition:width .1s linear}#joystick{position:fixed;width:112px;height:112px;margin:-56px 0 0 -56px;border:1px solid #a6ffdd60;background:#72e5c410;border-radius:50%;pointer-events:none}#joystick span{display:block;width:32px;height:32px;margin:39px;border-radius:50%;border:1px solid #b5ffe1a0;background:#97e9d450}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#0c161bf5;z-index:10;text-align:center}.loading-card{padding:30px;max-width:360px}.loading-card h2{font-size:20px;font-weight:500}.loading-card p{color:#92acb4;line-height:1.6;font-size:13px}.loading-spinner{width:36px;height:36px;margin:auto;border:2px solid #264b48;border-top-color:#90f2ce;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#paused{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#0b151b55;pointer-events:none}#paused span{font-size:38px;letter-spacing:-1px}#paused small{margin-top:10px;color:#a6c3ca}@media(max-width:800px){header{padding:22px}.overlay{inset:108px 22px auto}.tuning{width:190px;padding:14px}.controls{font-size:10px}.controls>span:first-child,.control-divider{display:none}footer{padding:18px 22px}.actions kbd{display:none}.arena-label{left:22px;bottom:100px}.telemetry{right:22px;bottom:100px}}@media(max-width:500px){.brand{font-size:18px;letter-spacing:2px}.status{font-size:8px;letter-spacing:1px}.overlay{top:110px}h1{font-size:25px}.eyebrow{font-size:8px}.tuning{width:156px;padding:12px}summary{font-size:11px}footer{padding:16px;gap:8px}.actions{gap:7px}.actions button{padding:10px;font-size:11px}.controls{max-width:85px;line-height:1.6}}@media(max-height:540px){header{padding:14px 22px}.overlay{inset:83px 22px auto;justify-content:flex-end}.eyebrow{display:none}h1{font-size:23px;margin-top:0}footer{padding:12px 22px}.arena-label,.telemetry{bottom:80px}.tuning{max-height:calc(100dvh - 165px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto}.controls>span:first-child,.control-divider,.actions kbd{display:none}}header,.overlay,footer{margin-left:env(safe-area-inset-left,0px);margin-right:env(safe-area-inset-right,0px)}header,.overlay{margin-top:env(safe-area-inset-top,0px)}footer{bottom:env(safe-area-inset-bottom,0px)}.arena-label{margin-left:env(safe-area-inset-left,0px);margin-bottom:env(safe-area-inset-bottom,0px)}.telemetry{margin-right:env(safe-area-inset-right,0px);margin-bottom:env(safe-area-inset-bottom,0px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#round-over{position:fixed;inset:0;z-index:6;margin:0;width:100%;height:100%;max-width:none;max-height:none;border:0;color:inherit;display:grid;place-items:center;padding:24px;background:#08141bd9;overflow-y:auto}.round-card{width:min(100%,360px);padding:28px;border:1px solid #3a5b60;border-radius:16px;background:#152b34;text-align:center}.round-card h2{margin:12px 0;font-size:36px;font-weight:500}.round-card p{margin:0 0 24px;color:#afc6ca;font-size:13px;line-height:1.6}#restart,#next-level{min-height:44px;padding:12px 28px;border:0;border-radius:7px;background:#8dedcf;color:#163d37;font-size:14px;font-weight:600}#next-level{display:block;width:100%;margin-bottom:12px}.round-card small{display:block;margin-top:14px;color:#8da8ae;font-size:11px}.round-sound{margin-top:16px;min-height:32px}.run-stats{margin:0 0 18px;color:#94efd9;font-size:11px;line-height:1.7}.round-card.has-upgrades{width:min(100%,640px);padding:22px}.has-upgrades h2{margin:8px 0;font-size:30px}.has-upgrades p{margin-bottom:14px}#upgrade-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}#upgrade-choices button{min-height:106px;padding:14px 8px;border:1px solid #48666d;border-radius:10px;background:#1b343e;color:#e0eeee;touch-action:manipulation}#upgrade-choices button:hover{border-color:#8dedcf}#upgrade-choices button[aria-pressed=true]{border-color:#8dedcf;background:#254e4b;box-shadow:inset 0 0 0 1px #8dedcf}#upgrade-choices strong{display:block;font-size:15px}#upgrade-choices span{display:block;margin-top:8px;font-size:11px;line-height:1.5}#upgrade-choices small{margin-top:8px;color:#94efd9}#upgrade-selection{font-size:12px;color:#b0f5df}#next-level:disabled{cursor:default}.has-upgrades #restart{background:transparent;color:#afc6ca;padding:5px 12px;min-height:34px;font-size:12px}@media(max-width:540px){#upgrade-choices{grid-template-columns:1fr;gap:8px}#upgrade-choices button{min-height:76px;padding:10px}#upgrade-choices span,#upgrade-choices small{margin-top:4px}}@media(max-height:540px)and (min-width:541px){#round-over{padding:12px}.round-card.has-upgrades{padding:14px 20px}.has-upgrades h2{font-size:26px;margin:4px 0}.has-upgrades p{margin-bottom:8px}#upgrade-choices{margin:10px 0}#upgrade-choices button{min-height:90px;padding:10px 6px}.has-upgrades>small{margin-top:4px}}
