:root{--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--hud-meters:84px;--ink:#e9e2d0;--muted:#8e93a3;--amber:#ffb347;--ember:#ff6a2a;--hull:#9fc3ff;--panel:#080a12d1;--line:#ffdca02e;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:none;background:#03050a;margin:0;overflow:hidden}#app canvas{display:block}.hidden{display:none!important}#hud{pointer-events:none;position:fixed;inset:0}#hud:before{content:"";height:calc(var(--hud-meters) + 44px + var(--sat));background:linear-gradient(#03050ac7 0%,#03050a8c 70%,#03050a00 100%);position:absolute;inset:0 0 auto}.bar{background:#ffffff14;border:1px solid #ffffff1f;border-radius:5px;height:8px;overflow:hidden}.bar i{border-radius:4px;width:50%;height:100%;transition:width 80ms linear;display:block}#clock{top:calc(14px + var(--sat));text-align:center;width:220px;position:absolute;left:50%;transform:translate(-50%)}#clock-text{letter-spacing:2px;text-shadow:0 0 12px #ffc87866;font-size:28px}#clock small,#killcount small,.muted{color:var(--muted);font-size:13px}.bar.dawn i{background:linear-gradient(90deg,#4b4f86,#f29a6b,#ffd6a0)}#lvl{top:calc(16px + var(--sat));width:200px;position:absolute;left:16px}#lvl-text{font-size:18px}.bar.xp i{background:#8ff3ff;box-shadow:0 0 8px #8ff3ff}#killcount{top:calc(16px + var(--sat));text-align:right;font-size:22px;position:absolute;right:16px}#killcount small{display:block}#combo{top:calc(var(--hud-meters) + 46px + var(--sat));color:var(--amber);text-shadow:0 0 10px #ff8c28cc;opacity:0;font-size:22px;transition:opacity .2s;position:absolute;left:50%;transform:translate(-50%)}#meters{top:calc(var(--hud-meters) + var(--sat));grid-template-columns:repeat(3,1fr);gap:16px;width:min(480px,100% - 24px);display:grid;position:absolute;left:50%;transform:translate(-50%)}.meter{grid-template-columns:1fr auto;grid-template-areas:"label value""bar bar";align-items:end;gap:3px 6px;font-size:13px;display:grid}.meter label{color:var(--muted);grid-area:label}.meter span{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:value}.meter .bar{grid-area:bar;height:8px}.meter.oil i{background:linear-gradient(90deg, #b8641c, var(--amber))}.meter.heat i{background:linear-gradient(90deg, #5a6b8a, #ffb070 60%, var(--ember))}.meter.hull i{background:var(--hull)}.meter.alert{animation:.35s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.35}}button{font:inherit;color:inherit;cursor:pointer}button.icon{right:16px;bottom:calc(16px + var(--sab));border:1px solid var(--line);pointer-events:auto;background:#00000059;border-radius:50%;width:34px;height:34px;position:absolute}#pause-btn{letter-spacing:-1px;font-size:11px;right:60px}#horn-btn{left:50%;bottom:calc(18px + var(--sab));background:radial-gradient(circle, #050810eb 58%, transparent 60%), conic-gradient(#b8d8ffd9 calc(var(--p,0) * 1turn), #ffffff14 0);color:#dceaff;pointer-events:auto;touch-action:manipulation;opacity:.6;border:2px solid #b8d8ff80;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:0;width:70px;height:70px;transition:opacity .15s,box-shadow .15s;display:flex;position:absolute;transform:translate(-50%)}#horn-btn.ready{opacity:1;border-color:#e6f1ff;box-shadow:0 0 22px #b8d8ffb3}#horn-btn .horn-icon{font-size:22px;line-height:1}#horn-count{font-variant-numeric:tabular-nums;font-size:13px}#horn-btn.shake{animation:.3s horn-shake}@keyframes horn-shake{25%{transform:translate(calc(-50% - 5px))}75%{transform:translate(calc(5px - 50%))}}#vibe-btn{font-size:15px;right:104px}button.icon.off{opacity:.4;text-decoration:line-through}#toasts{top:calc(var(--hud-meters) + 82px + var(--sat));flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{text-align:center;border:1px solid var(--line);max-width:92vw;animation:toast var(--dur,3s) forwards;background:#05070ec7;border-radius:14px;padding:7px 16px;font-size:17px;line-height:1.35}#toasts.frozen .toast{animation-play-state:paused}.toast.warn{color:#ffb0a0;border-color:#ff5a3c80}.toast.good{color:#ffe3a6}@keyframes toast{0%{opacity:0;transform:translateY(-6px)}10%,75%{opacity:1;transform:none}to{opacity:0}}.screen{background:radial-gradient(#03050a40,#03050abf);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#title{background:radial-gradient(#03050a1a,#03050a99)}.panel{background:var(--panel);border:1px solid var(--line);text-align:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:14px;width:100%;max-width:460px;padding:26px 30px;box-shadow:0 0 60px #0009}.screen .panel{scrollbar-width:thin;max-height:100%;overflow-y:auto}.touch{display:none}@media (pointer:coarse){.touch{display:inline}.desk{display:none}}.panel.wide{max-width:820px}h1{letter-spacing:8px;color:#ffe9bf;text-shadow:0 0 24px #ffc87899;margin:0 0 6px;font-size:54px;font-weight:400}h2{letter-spacing:3px;color:#ffe9bf;margin:0 0 12px;font-weight:400}.tag{color:#c9c3b3;line-height:1.5}.night-picker{color:#ffe9bf;justify-content:center;align-items:center;gap:14px;margin:12px 0 0;font-size:19px;display:flex}.night-picker button{border:1px solid var(--line);color:#ffd28a;background:#ffdca00f;border-radius:50%;width:40px;height:40px;font-size:14px}.night-picker button:disabled{opacity:.25}#night-label{text-align:center;min-width:84px}#night-desc{min-height:1em;margin:4px 0 0;font-size:13px}button.primary{letter-spacing:1px;background:linear-gradient(#ffd28a40,#ffa0501f);border:1px solid #ffd28a;border-radius:26px;margin:14px 0 10px;padding:12px 30px;font-size:19px;transition:transform .1s,box-shadow .2s;box-shadow:0 0 22px #ffbe6e59}.buttons{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}button.secondary{border:1px solid var(--line);background:#ffffff0a;border-radius:22px;padding:10px 22px;font-size:16px}#pause{cursor:pointer}button.primary:hover{transform:scale(1.04);box-shadow:0 0 32px #ffbe6e99}.controls{color:#b8b4a8;text-align:left;margin:12px 0 6px;padding:0;font-size:14px;line-height:1.8;list-style:none;display:inline-block}.controls li{grid-template-columns:64px 1fr;gap:6px;margin-bottom:4px;line-height:1.45;display:grid}.gauges-title{color:#ffe9bf;text-align:left;margin:8px 0 2px;font-size:15px;font-weight:400}.gauges-title .muted{font-size:12px}.controls.gauges{margin-top:4px;display:block}.g-oil{color:var(--amber)!important}.g-heat{color:#ff9a5a!important}.g-hull{color:var(--hull)!important}.controls b{color:var(--ink);min-width:64px;font-weight:400;display:inline-block}#cards{grid-template-columns:repeat(3,1fr);gap:14px;margin:8px 0 14px;display:grid}.card{text-align:left;border:1px solid var(--line);background:#ffdca00d;border-radius:12px;flex-direction:column;gap:6px;min-height:170px;padding:16px;transition:transform .15s ease-out,border-color .1s,background .1s,opacity .2s;display:flex}.card:hover,.card:focus{background:#ffdca01f;border-color:#ffd28a;outline:none;transform:translateY(-3px)}#cards.arming .card{pointer-events:none;opacity:.35;transform:translateY(10px)}.card .icon{color:#ffd28a;font-size:28px}.card .name{color:#ffe9bf;font-size:18px}.card .lv{color:var(--muted);font-size:12px}.card .desc{color:#c9c3b3;font-size:14px;line-height:1.4}.card .key{color:var(--muted);margin-top:auto;font-size:12px}#tally-tip{color:#ffe3a6;background:#ffd28a12;border:1px solid #ffd28a59;border-radius:12px;max-width:440px;margin:4px auto 10px;padding:8px 14px;font-size:15px;line-height:1.4}#tally-table{border-collapse:collapse;min-width:280px;margin:10px auto;font-size:15px}#tally-table td{border-bottom:1px solid #ffffff0d;padding:3px 10px}#tally-table td:first-child{text-align:left;color:var(--muted)}#tally-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}#tally-score{color:#ffe9bf;margin-top:8px;font-size:30px}#tally-score small{color:var(--muted);font-size:14px;display:block}.newbest{color:var(--amber);letter-spacing:2px;font-size:14px}@media (max-height:500px){.panel{padding:14px 18px}h1{letter-spacing:5px;font-size:34px}.controls{font-size:13px;line-height:1.45}.card{min-height:0;padding:10px 12px}.card .icon{font-size:20px}:root{--hud-meters:64px}#clock-text{font-size:22px}#clock small{display:none}}@media (max-width:700px){#cards{grid-template-columns:1fr}.card{min-height:0}h1{letter-spacing:5px;font-size:38px}:root{--hud-meters:74px}#meters{gap:10px}.meter{font-size:12px}#lvl{width:110px}#clock{width:140px}#clock-text{font-size:24px}#killcount{font-size:19px}.toast{padding:6px 12px;font-size:16px}}#how-to{margin:0 auto 8px;display:block}body.intro-on #clock,body.intro-on #lvl,body.intro-on #killcount,body.intro-on #combo,body.intro-on #pause-btn,body.intro-on #toasts{visibility:hidden}#intro-card{left:50%;bottom:calc(84px + var(--sab));box-sizing:border-box;border:1px solid var(--line);text-align:center;z-index:5;background:#05070ed1;border-radius:14px;width:min(560px,100vw - 32px);padding:14px 18px 12px;position:fixed;transform:translate(-50%)}#intro-text{min-height:2.8em;color:var(--ink);margin:0 0 10px;font-size:18px;line-height:1.4;transition:opacity .18s}#intro-text.fade{opacity:0}.intro-dots{justify-content:center;gap:6px;display:flex}.intro-dots i{background:#ffdca038;border-radius:50%;width:7px;height:7px}.intro-dots i.on{background:#ffd28a}#intro-skip{color:var(--muted);background:0 0;border:none;padding:6px 8px;font-size:14px;position:absolute;bottom:4px;right:8px}#intro-ghost{pointer-events:none;z-index:6;transition:opacity .2s;position:fixed;top:0;left:0}#intro-ghost .finger{box-sizing:border-box;background:#ffffff38;border:2px solid #fffc;border-radius:50%;width:44px;height:44px;transition:transform .12s,background .12s;position:absolute;top:-22px;left:-22px;box-shadow:0 0 18px #ffe6b473}#intro-ghost.down .finger{background:#fff0d28c;transform:scale(.78)}#intro-ghost .cursor{filter:drop-shadow(0 0 6px #ffe6b499);position:absolute;top:-2px;left:-2px}#intro-ghost .wheel{color:#ffd28a;flex-direction:column;align-items:center;gap:1px;font-size:13px;display:none;position:absolute;top:6px;left:26px}#intro-ghost .wheel .mouse{border:2px solid #fff;border-radius:8px;width:14px;height:20px}#intro-ghost.wheel-up .wheel,#intro-ghost.wheel-down .wheel{display:flex}#intro-ghost.wheel-up .wheel .down,#intro-ghost.wheel-down .wheel .up{visibility:hidden}#intro-ghost.wheel-up .wheel .up,#intro-ghost.wheel-down .wheel .down{animation:.5s ease-in-out infinite alternate intro-wheel}@keyframes intro-wheel{to{opacity:.25}}.intro-hl{animation:1s ease-in-out infinite intro-hl}@keyframes intro-hl{50%{filter:brightness(1.6)drop-shadow(0 0 6px #ffd28a)}}button.revive{color:#ffe9bf;background:#ffbe6e1f;border:1px solid #ffd28a;border-radius:22px;margin:4px auto 14px;padding:11px 22px;font-size:16px;display:block;box-shadow:0 0 16px #ffbe6e40}button.revive.hidden{display:none}button.link{color:var(--muted);background:0 0;border:none;margin:6px auto 0;padding:4px 8px;font-size:13px;text-decoration:underline;display:block}button.link.hidden{display:none}.test-note{opacity:.75;max-width:30em;margin:10px auto 0;font-size:12px}.test-note a{color:#f0c27a;pointer-events:auto}.expired{max-width:24em;margin:18px auto 6px;font-size:16px}.expired a{color:#f0c27a}
