:root{--bg: #02030a;--glass: rgba(15, 20, 35, .55);--glass-strong: rgba(15, 20, 35, .86);--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .16);--text: #e8eeff;--muted: #8d99bb;--accent: #6fd3ff;--accent-ink: #04121c;--good: #59e3a0;--warn: #ffb347;--bad: #ff5d5d;--radius: 14px;--ui: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--top: calc(env(safe-area-inset-top, 0px) + 8px) ;--bottom: calc(env(safe-area-inset-bottom, 0px) + 8px) ;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--ui);overscroll-behavior:none}body{-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;touch-action:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.small{font-size:12px}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.pulse{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#stage{position:fixed;inset:0}#stage canvas{display:block;touch-action:none}.label-layer{position:fixed!important;inset:0;pointer-events:none}.hud{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-radius:var(--radius)}.topbar{position:fixed;top:var(--top);left:8px;right:8px;z-index:20;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"brand views actions";gap:8px;align-items:center;pointer-events:none}.topbar>*{pointer-events:auto}.brand{grid-area:brand;display:flex;align-items:center;gap:9px;font-weight:500;letter-spacing:.04em;font-size:12px;line-height:1.15}.brand-text{display:none}.logo{width:30px;height:30px;border-radius:8px;box-shadow:0 0 16px #ff9a3a44;flex:none}.top-actions{grid-area:actions;justify-self:end;display:flex;gap:6px}.icon svg{width:19px;height:19px;fill:var(--text)}#btn-sound{display:none}body.rewinding #stage{filter:saturate(.6) hue-rotate(-12deg)}body.rewinding .timebar{border-color:#ffb34799}#btn-back.on{background:#ffb34733}#btn-back.on svg{fill:#ffb347}.icon,.pill{height:38px;min-width:38px;border-radius:12px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 9px}.pill span{display:none;font-size:13px}.desktop-only{display:none}.seg{grid-area:views;justify-self:center;display:flex;padding:3px;border-radius:12px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.seg button{border:0;background:none;padding:7px 8px;border-radius:9px;font-size:12.5px;color:var(--muted);white-space:nowrap}.seg button.on{background:#6fd3ff29;color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.telemetry{position:fixed;left:8px;top:calc(var(--top) + 54px);z-index:10;padding:8px 10px;font:11px/1.55 var(--mono);width:min(240px,calc(100vw - 160px));pointer-events:none}.telemetry div{display:flex;gap:8px;align-items:baseline;white-space:nowrap}.telemetry span{color:var(--muted);width:76px;letter-spacing:.08em;font-size:10px}.telemetry b{font-weight:600}.earth-pill{display:flex;align-items:center;gap:8px;width:100%;margin-top:6px;padding:6px 10px 6px 6px;border-radius:10px;text-align:left;font:12px/1.3 var(--ui);white-space:normal;pointer-events:auto;border:1px solid;background:#59e3a01f;border-color:#59e3a073;color:#c9f7df}.earth-pill .globe{font-size:20px;width:auto}.earth-pill span{width:auto;letter-spacing:0;font-size:12px;color:inherit}.earth-pill b{color:var(--text);margin-right:4px}.earth-pill.warn{background:#ffb34724;border-color:#ffb34780;color:#ffe2b8}.earth-pill.bad{background:#ff5d5d29;border-color:#ff5d5d8c;color:#ffd0d0;animation:pulse 1.6s infinite}.badge{font-style:normal;font-size:9px;padding:1px 5px;border-radius:4px;background:#6fd3ff33;color:var(--accent);letter-spacing:.08em;animation:pulse 1.2s infinite}.badge.warn{background:#ffb34733;color:var(--warn)}#log{position:fixed;right:8px;top:calc(var(--top) + 54px);z-index:16;width:calc(100vw - min(240px,calc(100vw - 160px)) - 24px);max-width:360px;padding:0;overflow:hidden}#log.open{width:min(360px,calc(100vw - 16px))}.log-head{display:flex;align-items:center;gap:6px;width:100%;min-height:40px;padding:6px 10px;background:none;border:0;text-align:left;font-size:11.5px;line-height:1.3}.lh-last{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lh-n{font:600 10px var(--mono);background:var(--accent);color:var(--accent-ink);border-radius:9px;padding:1px 6px}.lh-chev{color:var(--muted);font-size:11px}#log.flash{animation:logFlash 1.2s ease-out}@keyframes logFlash{0%{border-color:var(--accent);box-shadow:0 0 18px #6fd3ff73}}.log-list{list-style:none;margin:0;padding:0 8px 8px;max-height:min(46vh,420px);overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;border-top:1px solid var(--line);user-select:text}.log-list li{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:7px 2px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.35}.log-list li:last-child{border-bottom:0}.log-list li.note .tx{color:var(--muted)}.log-list li.achievement .tx{color:#ffe0a0}.log-list li.severe .tx{color:#ffc2c2}.log-list .replay{grid-column:2;justify-self:start;margin-top:4px;height:32px;padding:0 12px;border-radius:9px;border:1px solid rgba(255,179,71,.5);background:#ffb3471f;color:#ffe2b8;font-size:12px;font-weight:600}.log-list .ach{font-size:14px}.log-offer{display:flex;align-items:stretch}.log-offer .offer-btn{flex:1;min-height:40px;padding:6px 10px;border:0;background:#6fd3ff24;color:var(--text);font-size:12px;font-weight:600;text-align:left}.log-offer .log-head{width:auto;flex:none}body[data-view=galaxy] #log{display:none}#replaybar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-color:#ffb34780;font-size:13px}#replaybar[hidden]{display:none}#replaybar .rb-btns{display:flex;gap:6px;flex:none}#replaybar button{height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--line-strong);background:#ffffff0f;color:var(--text);font-weight:600}#replaybar button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:700}body.flying .arsenal,body.reeling .arsenal,body.flying #btn-rewind,body.reeling #btn-rewind,body.reeling #btn-back,body.reeling #info,body.flying #info,body.replaying .arsenal,body.replaying #btn-rewind,body.replaying #btn-back,body.replaying #btn-reset,body.replaying #aimbar,body.replaying #info,body.replaying #btn-saved{display:none!important}#mission-hud{position:fixed;z-index:12;left:8px;top:calc(var(--top) + 198px);display:grid;grid-template-columns:1fr auto;grid-template-areas:"title quit" "status shots";gap:2px 12px;padding:8px 10px 8px 14px;width:calc(100vw - 64px);max-width:360px;border-color:#ffb34766}#mission-hud[hidden]{display:none}.mh-title{grid-area:title;font-weight:700;font-size:13px}.mh-status{grid-area:status;font:11px var(--mono);color:var(--warn)}.mh-shots{grid-area:shots;font:11px var(--mono);color:var(--muted)}.mh-quit{grid-area:quit;border:0;background:none;color:var(--muted);padding:0 2px}#rail{position:fixed;right:8px;top:calc(var(--top) + 148px);z-index:10;display:flex;flex-direction:column;gap:5px}body.aiming #rail{display:none}.rail-btn{position:relative;width:36px;height:36px;border-radius:11px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font:600 13px var(--mono);color:var(--muted)}.rail-btn.on{color:var(--accent);border-color:var(--line-strong);background:#6fd3ff24}.rail-btn em{display:none}#rail{align-items:flex-end}.rail-pill{width:auto;height:auto;min-height:40px;padding:5px 10px;font:600 12px var(--ui);color:var(--text);text-align:right;border-color:var(--line-strong)}.rail-pill .cn{display:flex;flex-direction:column;line-height:1.2}.rail-pill small{font:9px var(--mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}#info{position:fixed;z-index:14;left:8px;right:8px;bottom:calc(var(--bottom) + 128px);padding:12px 14px}#info[hidden]{display:none}.info-head{display:flex;align-items:center;gap:10px}.info-head h3{margin:0;font-size:17px}.info-head small{color:var(--muted)}.info-head .x{margin-left:auto;border:0;background:none;color:var(--muted);font-size:16px}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;box-shadow:0 0 10px currentColor;flex:none}#info .details-toggle{display:none}body.mobile #info .details-toggle{display:block;width:100%;margin:8px 0 0;padding:4px;border:0;background:none;color:var(--muted);font-size:12px;text-align:left}body.mobile #info:not(.open) dl{display:none}#info dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:10px 0;font-size:12px}#info dt{color:var(--muted)}#info dd{margin:0;font-family:var(--mono);text-align:right}.info-actions{display:flex;gap:6px}.info-actions button{flex:1;padding:8px 6px;border-radius:10px;border:1px solid var(--line);background:#ffffff0a;font-size:12px}.info-actions button.on{border-color:var(--accent);color:var(--accent)}.info-actions .danger{color:#ffc2c2;border-color:#ff5d5d59}.ts{font-family:var(--mono);color:var(--accent);font-size:10px}.dock{position:fixed;left:0;right:0;bottom:0;z-index:15;padding:0 8px var(--bottom);display:flex;flex-direction:column;gap:6px;pointer-events:none}.dock>*{pointer-events:auto}.timebar{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 4px}.tb{width:40px;height:40px;border:0;background:none;border-radius:10px;display:grid;place-items:center}.tb svg{width:20px;height:20px;fill:var(--text)}.tb.play{background:#6fd3ff29}.tb.labelled{width:auto;display:flex;flex-direction:column;gap:0;padding:0 6px;font-size:9.5px;color:var(--muted)}.tb.labelled svg{width:18px;height:18px}.tb.play svg{fill:var(--accent)}#speed{flex:1;min-width:60px;accent-color:var(--accent)}#speed-label{font-size:11px;min-width:78px;text-align:right;color:var(--muted)}.arsenal{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 0;mask-image:linear-gradient(90deg,#000 92%,transparent)}.arsenal::-webkit-scrollbar{display:none}.chip{flex:none;scroll-snap-align:start;width:74px;height:68px;border-radius:12px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px;transition:transform .12s,border-color .12s}.chip:active{transform:scale(.95)}.chip .ic{font-size:22px;line-height:1}.chip .nm{font-size:10.5px;line-height:1.15;text-align:center}.chip .ms{font:9px var(--mono);color:var(--muted)}.chip.active{border-color:var(--accent);background:#6fd3ff29;box-shadow:0 0 18px #6fd3ff40}.galaxy-caption{display:none;font-size:12px;color:var(--muted);text-align:center;padding:6px 12px}#aimbar{padding:10px 12px;display:flex;flex-direction:column;gap:10px;border-color:#6fd3ff66}body.aiming .arsenal,body.aiming #info{display:none}.aim-dial{position:fixed;left:0;top:0;z-index:13;pointer-events:none;touch-action:none}.aim-dial[hidden]{display:none}.aim-dial svg{overflow:visible}.dial-track{fill:none;stroke:#6fd3ff59;stroke-width:2}.dial-tick{stroke:#6fd3ff73;stroke-width:1.5}.dial-arrow{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:4 4}.dial-hint{display:none}.sling-fork{fill:none;stroke:#c89a64;stroke-width:7;stroke-linecap:round;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}.sling-band{stroke:#d9573b;stroke-width:4;stroke-linecap:round}.aim-dial.pulling .sling-band{stroke-width:3}.sling-pouch{fill:#ffd67829;stroke:#ffd36b;stroke-width:3;filter:drop-shadow(0 0 6px rgba(255,211,107,.9));animation:pouch-pulse 1.2s ease-in-out infinite}@keyframes pouch-pulse{50%{stroke-width:4.5;fill:#ffd6784d}}@media (prefers-reduced-motion: reduce){.sling-pouch{animation:none}}.sling-grab{fill:transparent;pointer-events:all;cursor:grab;touch-action:none}.aim-dial.pulling .sling-grab{cursor:grabbing}.sling-guides{opacity:.35;transition:opacity .2s}.aim-dial.pulling .sling-guides{opacity:1}.aim-dial.snap .sling-band{transition:all .15s ease-out}.dial-escape{fill:none;stroke:#ffb34773;stroke-width:1.5;stroke-dasharray:5 5}.dial-text{fill:#6fd3ffcc;font:600 9.5px var(--mono);text-anchor:middle;letter-spacing:.08em;text-transform:uppercase}.dial-text.esc{fill:#ffb347d9}.dial-speed{fill:#fff;font:600 12px var(--mono);text-anchor:middle;paint-order:stroke;stroke:#02030ad9;stroke-width:3px}#aimbar[hidden]{display:none}.wiz-steps{display:flex;gap:6px;font-size:11.5px;color:var(--muted)}.wiz-steps span{display:flex;align-items:center;gap:5px;flex:1;padding-bottom:6px;border-bottom:2px solid var(--line)}.wiz-steps i{font-style:normal;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:600 10px var(--mono);background:#ffffff14}.wiz-steps .on{color:var(--text);border-color:var(--accent)}.wiz-steps .on i{background:var(--accent);color:var(--accent-ink)}.wiz-steps .done{color:var(--good);border-color:#59e3a080}.wiz-steps .done i{background:#59e3a033}.aim-live b.mono{font-size:18px;color:var(--accent)}.tilt output{font:11px var(--mono);min-width:34px;text-align:right;color:var(--text)}.aim-msg{font-size:13px;line-height:1.4}.aim-msg b{margin-right:6px}.aim-msg b.mono{color:var(--accent)}.tilt{display:flex;align-items:center;gap:6px;flex:1;font-size:11px;color:var(--muted)}.tilt input{flex:1;accent-color:var(--accent)}.aim-actions{display:flex;gap:6px}.aim-row{display:flex;align-items:center;gap:10px}.aim-back{flex:none;height:38px;padding:0 18px;border-radius:10px;border:1px solid var(--line);background:#ffffff0d;font-weight:500}.aim-live{font-size:12px;line-height:1.4}.aim-actions button{flex:1;height:48px;border-radius:10px;border:1px solid var(--line);background:#ffffff0d;font-weight:500}#aimbar button,.chip{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .08s,filter .08s}#aimbar button.pressed,.chip.pressed{transform:scale(.95);filter:brightness(1.35)}.aim-actions .primary,.modal-actions .primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}body.aiming #stage canvas{cursor:crosshair}body[data-view=galaxy] .arsenal,body[data-view=galaxy] #btn-rewind,body[data-view=galaxy] #btn-stop,body[data-view=galaxy] #rail .rail-btn:not([data-id=fit]),body[data-view=galaxy] #rail .sep{display:none}body[data-view=galaxy] .galaxy-caption{display:block}.label{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;max-width:180px;pointer-events:auto;cursor:pointer;text-shadow:0 1px 3px #000,0 0 8px #000;transition:opacity .2s;padding:2px 4px}.label b{font-size:11.5px;font-weight:600;letter-spacing:.02em}.label small{flex-basis:100%;padding-left:13px;font-size:9.5px;color:#b4bfdc;opacity:.85;margin-top:-2px}.label .dot{width:7px;height:7px;box-shadow:none}.label.spawned b{color:#ffe0a0}.label.selected b{color:var(--accent)}.label.kind-blackhole b{color:#ffb070}.galaxy-label{pointer-events:none}.galaxy-label b{font-size:11px;color:#ffd0b0}.galaxy-label.milestone b{color:#ffb08a}.galaxy-label.future{opacity:.25}.galaxy-label.you b{color:var(--accent);font-size:12px}.drift-label{pointer-events:none}.drift-label b{color:#ffd27a}.impact-warning{pointer-events:none;font:600 11px var(--mono);color:var(--bad);text-shadow:0 0 6px #000;display:flex;flex-direction:column;animation:pulse .8s infinite}.impact-warning span{font-weight:400;color:#ffb3b3}#toasts{position:fixed;z-index:40;top:calc(var(--top) + 54px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;width:min(92vw,420px);pointer-events:none}.toast{pointer-events:auto;background:var(--glass-strong);border:1px solid var(--line-strong);border-radius:12px;padding:9px 14px;font-size:13px;box-shadow:0 10px 30px #0008;animation:toastIn .3s ease-out;transition:opacity .4s,transform .4s;text-align:center}.toast.achievement{border-color:#ffd27a99;background:linear-gradient(135deg,#3c280aeb,#0f1224eb)}.toast .ach{font-size:18px;vertical-align:-2px}.toast.out{opacity:0;transform:translateY(-8px)}.toast .link{background:none;border:0;color:var(--accent);font-weight:700;text-decoration:underline;padding:0 0 0 6px}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px) scale(.97)}}.scrim{position:fixed;inset:0;z-index:50;background:#0002088c;display:grid;place-items:center;padding:16px;animation:fade .2s}@keyframes fade{0%{opacity:0}}.modal{width:min(420px,100%);background:var(--glass-strong);border:1px solid var(--line-strong);border-radius:18px;padding:20px;box-shadow:0 30px 80px #000a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);max-height:86vh;overflow:auto;user-select:text;animation:pop .22s ease-out}@keyframes pop{0%{transform:scale(.96);opacity:0}}.modal h2{margin:0 0 8px;font-size:20px}.modal-body{font-size:14px;line-height:1.5;color:#cdd6f0}.modal-body p{margin:0 0 10px}.modal-body h4{margin:14px 0 4px;font-size:13px;color:var(--text)}.tip{background:#6fd3ff14;border-left:3px solid var(--accent);padding:8px 10px;border-radius:6px}.modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.modal-actions button{height:44px;border-radius:12px;border:1px solid var(--line-strong);background:#ffffff0d;font-weight:500}.howto{padding-left:20px;margin:0 0 8px}.howto li{margin-bottom:6px}.keys{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 10px;font-size:12px}kbd{font:11px var(--mono);padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;background:#ffffff0f}.dots{display:flex;gap:6px;justify-content:center;margin-top:10px}.dots i{width:6px;height:6px;border-radius:50%;background:var(--line-strong)}.dots i.on{background:var(--accent);width:18px;border-radius:3px}.stars{font-size:40px;color:#ffd27a;letter-spacing:6px;text-align:center;text-shadow:0 0 20px #ffb34788}.stars span{color:#fff2;text-shadow:none}.stars.small{font-size:14px;letter-spacing:2px;text-align:left}.sheet-scrim{place-items:end center;padding:0}.sheet{width:100%;max-height:82vh;overflow:auto;background:var(--glass-strong);border:1px solid var(--line-strong);border-bottom:0;border-radius:20px 20px 0 0;padding:6px 16px calc(var(--bottom) + 12px);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:up .25s ease-out;user-select:text}@keyframes up{0%{transform:translateY(40px);opacity:0}}.grab{width:40px;height:4px;border-radius:2px;background:var(--line-strong);margin:4px auto 6px}.sheet header{display:flex;align-items:center;position:sticky;top:-6px;background:inherit;padding:4px 0 8px}.sheet h2{margin:0;font-size:18px;flex:1}.sheet .x{border:0;background:none;color:var(--muted);font-size:18px;width:36px;height:36px}.sheet h4{margin:18px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.mission{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#ffffff08;border-radius:14px;padding:12px 14px;margin-bottom:8px}.mission>div:first-child{display:flex;align-items:center;gap:8px}.mission p{margin:4px 0 6px;font-size:13px;color:#c3cce6}.lvl{font:600 9.5px var(--mono);padding:2px 6px;border-radius:5px;letter-spacing:.06em;text-transform:uppercase}.lvl-easy{background:#59e3a029;color:var(--good)}.lvl-medium{background:#ffb34729;color:var(--warn)}.lvl-hard,.lvl-expert{background:#ff5d5d29;color:var(--bad)}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menu-grid button{height:48px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a;font-size:13px;text-align:left;padding:0 12px}.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}.row input[type=range]{flex-basis:100%;accent-color:var(--accent)}.row.check{justify-content:flex-start}.row.check input{accent-color:var(--accent);width:18px;height:18px}.row select{background:#ffffff0f;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px;font:inherit}#drift-val{font:11px var(--mono);color:var(--muted)}.pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.pick-list button{display:flex;align-items:center;gap:8px;padding:10px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a;text-align:left}.pick-list button small{margin-left:auto;font-size:10px;color:var(--muted)}.pick-list button.on{border-color:var(--accent);background:#6fd3ff1f}.seg-row{display:flex;gap:6px}.seg-row button{flex:1;height:40px;border-radius:10px;border:1px solid var(--line);background:#ffffff0a;font-size:13px}.layer span{display:flex;flex-direction:column}.layer small{color:var(--muted);font-size:12px}.hz-label{pointer-events:none}.hz-label b{color:#8dffbf;font-size:13px;text-shadow:0 0 8px rgba(80,240,150,.8)}.hz-label small{padding-left:0;color:#b5f0cc}#loading{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted);font-size:13px;letter-spacing:.1em;transition:opacity .5s}#loading.done{opacity:0;pointer-events:none}.spinner{width:46px;height:46px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#drop-hint{position:fixed;inset:12px;z-index:90;border:2px dashed var(--accent);border-radius:20px;display:none;place-items:center;font-size:20px;background:#02030a99;pointer-events:none}body.dropping #drop-hint{display:grid}@media (min-width: 760px){#btn-sound{display:grid}.menu-sound{display:none}.seg button{padding:8px 14px;font-size:14px}.topbar{grid-template-columns:auto 1fr auto;grid-template-areas:"brand views actions";left:14px;right:14px}.pill span{display:inline}.desktop-only{display:inline-flex}.telemetry{top:calc(var(--top) + 54px);left:14px;font-size:12px}#log{top:calc(var(--top) + 54px);right:14px;width:340px}#log.open{width:380px}#mission-hud{top:calc(var(--top) + 54px);left:50%;transform:translate(-50%);width:340px}#toasts{top:calc(var(--top) + 120px)}#rail{right:14px;top:50%;transform:translateY(-40%);gap:6px}body.aiming #rail{display:flex}.rail-btn{width:40px;height:40px;border-radius:12px}.rail-btn.rail-pill{width:auto;height:auto}.rail-btn em{display:block;position:absolute;right:48px;top:50%;transform:translateY(-50%);white-space:nowrap;font:12px var(--ui);color:var(--text);background:var(--glass-strong);padding:4px 8px;border-radius:8px;border:1px solid var(--line);opacity:0;pointer-events:none;transition:opacity .15s}.rail-btn:hover em{opacity:1}#info{left:auto;right:64px;top:calc(var(--top) + 190px);bottom:auto;width:300px}.dock{left:50%;right:auto;transform:translate(-50%);width:min(860px,calc(100vw - 28px));padding-bottom:calc(env(safe-area-inset-bottom,0px) + 14px)}.chip{width:78px}.arsenal{justify-content:center;mask-image:none}.brand{font-size:13px}.brand-text{display:block;font-weight:600}.aim-actions{justify-content:flex-end}.aim-actions button{flex:0 0 auto;padding:0 22px}.sheet-scrim{place-items:stretch end}.sheet{width:400px;max-height:none;height:100%;border-radius:20px 0 0 20px;border-bottom:1px solid var(--line-strong);padding-top:14px;animation:slideL .25s ease-out}.grab{display:none}@keyframes slideL{0%{transform:translate(40px);opacity:0}}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body.cinema .topbar,body.cinema #telemetry,body.cinema #log,body.cinema #rail,body.cinema #mission-hud,body.cinema .timebar,body.cinema #toasts{opacity:0;pointer-events:none;transition:opacity .4s}body.cinema:before,body.cinema:after{content:"";position:fixed;left:0;right:0;height:9vh;background:#000;z-index:14;pointer-events:none;animation:barIn .6s ease-out}body.cinema:before{top:0}body.cinema:after{bottom:0}@keyframes barIn{0%{height:0}}body.cinema #stage:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}body.cinema .label-layer{opacity:0;transition:opacity .4s}body.cinema #replaybar{background:#0000008c;border-color:#ffb34759}body.cinema .dock{z-index:16}.sling-compass{position:fixed;left:50%;transform:translate(-50%);z-index:14;display:flex;align-items:center;gap:6px;width:min(380px,calc(100vw - 24px))}.sling-compass[hidden]{display:none}.cmp-turn{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid rgba(140,180,255,.35);background:#0a101ebf;color:#cfe0ff;font-size:20px;backdrop-filter:blur(6px)}.cmp-strip{position:relative;flex:1;height:46px;border-radius:10px;background:#0a101eb3;border:1px solid rgba(140,180,255,.25);overflow:hidden;touch-action:none;cursor:ew-resize;backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.cmp-ticks{position:absolute;inset:0}.cmp-tick{position:absolute;bottom:0;width:1px;height:7px;background:#a0beff73}.cmp-tick.big{height:12px;background:#a0beffcc}.cmp-needle{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#ffd36b;box-shadow:0 0 6px #ffd36b}.cmp-mark{position:absolute;top:3px;transform:translate(-50%);white-space:nowrap;font-size:11px;font-weight:600;padding:2px 7px;border-radius:8px;color:#cfe0ff;background:#3c5a9673;cursor:pointer}.cmp-mark.host{color:#ffe3a3;background:#966e2880}.cmp-mark.body{color:#bff0d0;background:#28785073}.cmp-mark.r2{top:22px}.cmp-mark.on{outline:1.5px solid #ffd36b}.aim-row .aim-live{flex:1}#btn-saved{position:relative}.shot-list{display:flex;flex-direction:column;gap:8px}.shot-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a}.shot-row>div{flex:1;min-width:0;display:flex;flex-direction:column}.shot-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shot-row small{color:var(--muted);font-size:12px}.shot-row button{height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#ffffff0d}.shot-row button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.save-name{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.save-name input{height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--line-strong);background:#ffffff0f;color:var(--text);font-size:16px}svg.ico{width:20px;height:20px;fill:none!important;stroke:currentColor;flex:none}.icon,.pill{color:#dfe6f7}.icon svg.ico,.pill svg.ico{width:19px;height:19px}.pill{gap:6px}.seg{background:#ffffff0d;border:0;box-shadow:inset 0 1px 2px #00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.seg button{color:#dce4f59e;font-weight:500;transition:background .2s,color .2s}.seg button.on{background:#ffffff26;color:#fff;box-shadow:0 1px 3px #00000059,inset 0 .5px #ffffff2e}.telemetry{background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;left:12px;top:calc(var(--top) + 50px);width:auto;max-width:calc(100vw - 24px)}.t-strip{display:flex;align-items:center;gap:6px;white-space:nowrap;font:10.5px var(--mono);font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000}.telemetry .t-strip span{width:auto;font-size:9.5px;letter-spacing:.1em;color:#c8d2eb8c}.t-strip b{font-weight:600;color:#e8eeff}.t-strip em{font-style:normal;color:#c8d2eb59}.t-year,#speed-label{font-variant-numeric:tabular-nums}.t-dot{width:6px;height:6px;border-radius:50%;background:var(--good);box-shadow:0 0 6px var(--good);flex:none}.t-dot.warn{background:var(--warn);box-shadow:0 0 6px var(--warn)}.t-dot.bad{background:var(--bad);box-shadow:0 0 6px var(--bad)}.t-note{font-size:10px;color:var(--muted);margin-top:3px}.earth-pill{display:inline-flex;width:auto;margin-top:8px;padding:5px 11px 5px 7px;border-radius:999px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#d6e2f5;font-size:11.5px}.earth-pill.warn{background:var(--glass);border-color:#ffb34740;color:#ffe2b8}.earth-pill.bad{background:#3c0f148c;border-color:#ff5d5d4d;color:#ffd0d0}.earth-pill .globe{width:12px;height:12px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 30%,#d8f3ff,#3a8fd8 45%,#1a4d2a 80%);box-shadow:0 0 8px #59e3a0cc}.earth-pill.warn .globe{box-shadow:0 0 8px #ffb347d9}.earth-pill.bad .globe{box-shadow:0 0 8px #ff5d5de6}.earth-pill span{font-size:11.5px}#log{top:calc(var(--top) + 76px)}#rail{top:calc(var(--top) + 126px)}.ldot{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 7px 1px 0;vertical-align:middle;background:var(--accent);box-shadow:0 0 5px var(--accent)}.ldot.note{background:#8d99bb;box-shadow:none}.ldot.achievement{background:#ffd36b;box-shadow:0 0 5px #ffd36b}.ldot.severe{background:var(--bad);box-shadow:0 0 5px var(--bad)}.log-list .replay{display:inline-flex;align-items:center;gap:5px;border-color:#ffffff1f;background:#ffffff0f;color:#ffe2b8}.log-list .replay svg.ico{width:13px;height:13px;fill:currentColor!important}#aimbar,#replaybar{border-color:var(--line)}body.rewinding .timebar{border-color:#ffb34759}.rb-save{display:flex;align-items:center;gap:8px}.rb-save svg.ico{color:var(--accent)}.label{background:#0009;border-radius:6px;padding:3px 6px 3px 5px;text-shadow:none;max-width:170px}.label small{display:none}.label.selected small,.label.status small{display:block}.hz-label{background:#00140a99}#btn-back svg.ico{width:20px;height:20px;color:#dfe6f7}#btn-back.on svg.ico{color:#ffb347;fill:none!important}#speed{-webkit-appearance:none;appearance:none;height:22px;background:transparent}#speed::-webkit-slider-runnable-track{height:2px;border-radius:1px;background:linear-gradient(90deg,var(--accent) var(--fill, 50%),rgba(255,255,255,.14) var(--fill, 50%))}#speed::-moz-range-track{height:2px;border-radius:1px;background:#ffffff24}#speed::-moz-range-progress{height:2px;background:var(--accent)}#speed::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;margin-top:-5.5px;border-radius:50%;background:#e9f7ff;border:0;box-shadow:0 0 0 3px #6fd3ff40,0 0 10px #6fd3ffcc}#speed::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:#e9f7ff;border:0;box-shadow:0 0 0 3px #6fd3ff40,0 0 10px #6fd3ffcc}.tb.play{background:#ffffff14}.tb.play svg{fill:#e9f7ff}.chip{border-color:var(--line)}.chip.active{border-color:#6fd3ff73;background:#6fd3ff1a;box-shadow:0 0 16px #6fd3ff2e}.chip .ic{height:30px;display:grid;place-items:center}.chip .ms sup{font-size:7px;vertical-align:4px;line-height:0}.orb{position:relative;width:22px;height:22px;border-radius:50%;display:block;background:radial-gradient(circle at 34% 30%,color-mix(in srgb,var(--c) 35%,#fff) 0%,var(--c) 42%,color-mix(in srgb,var(--c) 30%,#000) 100%);box-shadow:0 0 10px color-mix(in srgb,var(--c) 45%,transparent)}.orb.rock{width:18px;height:16px;border-radius:45% 55% 50% 40%/55% 45%;box-shadow:none}.orb.ringed{width:20px;height:20px}.orb.ringed:after{content:"";position:absolute;left:-8px;right:-8px;top:7px;height:6px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--c) 60%,#fff);transform:rotate(-18deg);opacity:.85}.orb.tailed{width:12px;height:12px;background:radial-gradient(circle at 40% 40%,#fff,var(--c) 70%);box-shadow:0 0 10px var(--c)}.orb.tailed:before{content:"";position:absolute;right:8px;top:3px;width:22px;height:6px;border-radius:3px;background:linear-gradient(270deg,color-mix(in srgb,var(--c) 70%,transparent),transparent);transform:rotate(-25deg);transform-origin:right center}.orb.star{background:radial-gradient(circle at 50% 50%,#fff 0%,color-mix(in srgb,var(--c) 50%,#fff) 35%,var(--c) 70%);box-shadow:0 0 12px var(--c),0 0 22px color-mix(in srgb,var(--c) 40%,transparent)}.orb.hole{background:radial-gradient(circle,#000 52%,var(--c) 62%,transparent 74%);box-shadow:0 0 12px color-mix(in srgb,var(--c) 60%,transparent)}.resume-pill{position:fixed;left:50%;bottom:calc(var(--bottom) + 140px);transform:translate(-50%);z-index:22;display:flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--glass-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#e8eeff;font-size:13px;font-weight:500;box-shadow:0 6px 24px #00000073;animation:pillIn .35s ease-out;transition:opacity .35s,transform .35s}.resume-pill small{color:var(--muted);margin-left:4px;font-size:11px}.resume-pill svg.ico{width:17px;height:17px;color:var(--accent)}.resume-pill.gone{opacity:0;transform:translate(-50%,10px);pointer-events:none}@keyframes pillIn{0%{opacity:0;transform:translate(-50%,12px)}}.menu-grid svg.ico{width:16px;height:16px;vertical-align:-3px}@media (min-width: 760px){.telemetry{left:16px;top:calc(var(--top) + 54px)}.t-strip{font-size:12px}#log{top:calc(var(--top) + 54px)}#rail{top:50%}}.resume-pill{white-space:nowrap}.log-head{min-height:34px;padding:4px 10px}#log{width:auto;min-width:120px}#log{width:auto!important;min-width:0;max-width:none;padding:0;overflow:visible;background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}#log .log-head{position:relative;width:38px;height:38px;min-height:0;padding:0;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#dfe6f7}#log.open .log-head{background:#ffffff24}#log .lh-n{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;font:600 10px/17px var(--mono);text-align:center}#log.flash{animation:none}#log.flash .log-head{animation:logPing .9s ease-out}@keyframes logPing{0%{box-shadow:0 0 #6fd3ffb3}to{box-shadow:0 0 0 10px #6fd3ff00}}.log-panel{position:absolute;right:0;top:46px;width:min(360px,calc(100vw - 16px));border-radius:var(--radius);border:1px solid var(--line);background:var(--glass-strong);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 30px #00000080;overflow:hidden}.log-panel header{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 12px;font-size:12px;font-weight:600;color:#cfd8ee;letter-spacing:.04em}.log-x{width:30px;height:30px;border:0;background:none;color:var(--muted)}.log-panel .log-list{border-top:1px solid var(--line)}.lx{font:600 10px var(--mono);color:var(--muted)}.log-flash{position:fixed;z-index:17;right:8px;top:calc(var(--top) + 122px);max-width:min(320px,calc(100vw - 16px));display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:12px;border:1px solid var(--line);background:var(--glass-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#e8eeff;font-size:12px;line-height:1.35;text-align:left;box-shadow:0 6px 20px #00000073;animation:lfIn .25s ease-out;transition:opacity .35s,transform .35s}.log-flash.severe{border-color:#ff5d5d59}.log-flash .lf-tx{min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.log-flash .lf-more{flex:none;font:600 10px var(--mono);color:var(--muted)}.log-flash.gone{opacity:0;transform:translateY(-14px) scale(.92);transform-origin:top right;pointer-events:none}@keyframes lfIn{0%{opacity:0;transform:translateY(-8px)}}body.cinema .log-flash{display:none}@media (min-width: 760px){.log-flash{top:calc(var(--top) + 102px);right:14px}}@media (max-width: 759px){.log-flash{right:auto;left:12px;max-width:calc(100vw - 132px)}.log-flash.gone{transform-origin:top left}}.shot-empty{display:flex;gap:14px;align-items:flex-start;padding:6px 2px}.shot-empty svg{flex:none;width:28px;height:28px;color:var(--accent);opacity:.8;margin-top:2px}.shot-empty p{margin:0;line-height:1.5;color:var(--muted)}.shot-empty b{color:var(--text)}.feedback{display:flex;flex-direction:column;gap:14px}.fb-kind{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.fb-kind label{position:relative}.fb-kind input{position:absolute;opacity:0;pointer-events:none}.fb-kind span{display:block;text-align:center;padding:9px 6px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:500}.fb-kind input:checked+span{background:#ffffff1f;color:#fff}.fb-kind input:focus-visible+span{outline:2px solid var(--accent)}.fb-field{display:flex;flex-direction:column;gap:6px}.fb-field>span{font-size:13px;color:var(--muted)}.fb-field input,.fb-field textarea{font:inherit;font-size:16px;color:#fff;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 12px;resize:vertical}.fb-field input:focus,.fb-field textarea:focus{outline:none;border-color:var(--accent)}.fb-check{display:flex;gap:10px;align-items:center;font-size:14px}.fb-check input{width:18px;height:18px;accent-color:var(--accent)}.feedback .muted{margin:0;font-size:13px}.feedback button.primary{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:12px;padding:12px;font:700 16px var(--ui);cursor:pointer}.menu-link{display:flex;align-items:center;height:48px;padding:0 12px;border-radius:12px;color:var(--muted);font-size:13px;text-decoration:none;border:1px dashed var(--line)}.menu-link:hover{color:var(--text)}.menu-note{font-size:13px;line-height:1.45;margin:0 2px 10px}.tour{position:fixed;inset:0;z-index:60}.tour-hole{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px #030610b8;outline:2px solid var(--accent);transition:all .3s ease;pointer-events:none}.tour.centered .tour-hole{outline:none}.tour-card{position:absolute;left:50%;transform:translate(-50%);width:min(380px,calc(100% - 32px));background:var(--glass-strong);border:1px solid var(--line-strong);border-radius:18px;padding:16px 18px;box-shadow:0 30px 80px #000a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:pop .22s ease-out;max-height:70vh;overflow:auto}.tour.centered .tour-card{top:50%;transform:translate(-50%,-50%)}.tour-card h3{margin:2px 0 6px;font-size:18px}.tour-card p{margin:0;font-size:14px;line-height:1.5;color:#cdd6f0}.tour-step{font:600 11px var(--mono);color:var(--muted);letter-spacing:.04em}.tour-fig{display:block;width:100%;max-height:110px;margin:4px 0 10px;color:var(--text)}.tour-actions{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:8px}.tour-actions span{display:flex;gap:8px}.tour-actions button{height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--line-strong);background:#ffffff0d;font-weight:500}.tour-actions .tour-skip{border:0;background:none;color:var(--muted);padding:0 4px}.tour-actions .primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}
