:root{--ink:#f2f5faf5;--ink-dim:#e2e8f2d6;--ink-faint:#dae1eed1;--panel:#0a0d14e6;--panel-solid:#0b0e15;--line:#ffffff29;--line-strong:#ffffff52;--accent:#96b6f0;--accent-bg:#4664a552;--warn:#ffd68c;--ease:cubic-bezier(.2, .7, .2, 1);--gap:16px;--safe-l:max(var(--gap), env(safe-area-inset-left));--safe-r:max(var(--gap), env(safe-area-inset-right));--safe-t:max(12px, env(safe-area-inset-top));--safe-b:max(12px, env(safe-area-inset-bottom));--tap:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#000;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{position:fixed;inset:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}canvas.universe{cursor:grab;opacity:0;width:100%;height:100%;transition:opacity 1.6s var(--ease);outline:none;display:block}canvas.universe.is-ready{opacity:1}canvas.universe:active{cursor:grabbing}canvas.universe:focus-visible{box-shadow:inset 0 0 0 2px #96b6f080}.hud{pointer-events:none;transition:opacity .4s var(--ease);font-variant-numeric:tabular-nums;position:absolute;inset:0}.hud.is-hidden{opacity:0}.hud button,.hud [role=group]{pointer-events:auto}.hud.is-hidden *{pointer-events:none!important}.hud button:focus-visible,.panel button:focus-visible,.panel input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hud-top{top:var(--safe-t);left:var(--safe-l);right:var(--safe-r);justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute}.hud-status-column{flex:auto;justify-items:center;gap:6px;min-width:0;padding-left:0;display:grid}.hud-status,.hud-notice{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:min(560px,100%);color:var(--ink);text-shadow:none;background:#06080eb8;border-radius:999px;align-items:center;gap:10px;padding:4px 4px 4px 14px;font-size:13px;line-height:1.35;display:flex}.hud-status[hidden]{display:none}.hud-notice{color:var(--warn);padding-right:14px}.hud-notice:has(button){padding-right:4px}.hud-chip{border:1px solid var(--line-strong);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;background:#ffffff0f;border-radius:999px;padding:0 14px;font-size:13px}.hud-chip:hover{background:#ffffff1f}.hud-modes{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#06080e99;border-radius:999px;flex:none;gap:2px;padding:3px;display:flex}.hud-mode{min-height:var(--tap);min-width:44px;color:var(--ink-dim);font:inherit;letter-spacing:.02em;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:13px;transition:background .2s,color .2s}.hud-mode:hover{color:var(--ink)}.hud-mode.is-active{background:var(--accent-bg);color:var(--ink)}.hud-zoom{right:var(--safe-r);gap:8px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.hud-bottom{padding:40px var(--safe-r) var(--safe-b) var(--safe-l);background:linear-gradient(#0000,#0000002e 45%,#00000073);justify-content:space-between;align-items:flex-end;gap:12px 24px;display:flex;position:absolute;bottom:0;left:0;right:0}.hud-readout{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-shadow:0 1px 2px #000000e6,0 0 10px #000000b3;background:#05070ca8;border-radius:14px;gap:3px;min-width:0;max-width:min(600px,100%);margin-left:-12px;padding:10px 14px 10px 12px;display:grid}.hud-level{letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-size:12px;font-weight:500}.hud-distance{color:var(--ink);font-size:17px;font-weight:400}.hud-detail{color:var(--ink-dim);font-size:13px}.hud-detail[hidden],.hud-warning[hidden],.hud-scale[hidden]{display:none}.hud-warning{color:var(--warn);font-size:12.5px;line-height:1.4}.hud-meta{color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:4px;font-size:12px;display:flex}.hud-quality{min-height:var(--tap);color:var(--ink-dim);font:inherit;text-align:left;cursor:pointer;text-shadow:inherit;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;margin:-6px 0 -6px -8px;padding:0 10px 0 8px;font-size:12px;display:inline-flex}.hud-quality:hover{border-color:var(--line);background:#00000059}.hud-quality-dot,.kind-badge:before{background:var(--kind-color,#9aa);border-radius:50%;flex:0 0 8px;width:8px;height:8px}[data-kind=observed]{--kind-color:#7fd49b}[data-kind=model]{--kind-color:#8fb4f0}[data-kind=reconstructed]{--kind-color:#e8c27a}[data-kind=procedural]{--kind-color:#d79be8}[data-kind=visual-aid]{--kind-color:#a9b0bb}[data-kind=mixed]{--kind-color:#c7cfdb}.hud-quality .hud-quality-dot{background:var(--kind-color)}.hud-scale{color:var(--ink-faint);align-items:center;gap:8px;margin-top:2px;font-size:12px;display:flex}.hud-scale-line{border:1px solid #e6ecf6b3;border-top:0;height:6px;display:block}.hud-controls{flex:none;align-items:center;gap:8px;display:flex}.hud-button{pointer-events:auto;width:var(--tap);height:var(--tap);border:1px solid var(--line);color:var(--ink-dim);font:inherit;cursor:pointer;background:#06080e80;border-radius:999px;grid-auto-flow:column;place-items:center;gap:8px;padding:0;font-size:14px;transition:color .2s,border-color .2s,background .2s;display:inline-grid}.hud-button:hover{color:var(--ink);border-color:var(--line-strong)}.hud-button:disabled{opacity:.35;cursor:default}.hud-button.is-active{color:var(--ink);background:var(--accent-bg);border-color:#96b6f099}.hud-primary{width:auto;color:var(--ink);background:#283c6973;border-color:#96b6f073;padding:0 18px 0 14px}.hud-button-text{letter-spacing:.02em}.hud-hint{left:50%;top:calc(var(--safe-t) + 60px);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:max-content;max-width:min(680px,100vw - 48px);color:var(--ink-dim);text-align:center;transition:opacity 1.2s var(--ease), transform 1.2s var(--ease);animation:hint-in 1.4s 1.8s var(--ease) backwards;background:#0000008c;border-radius:14px;padding:9px 16px;font-size:13px;line-height:1.45;position:absolute;transform:translate(-50%)}.hud-hint.is-gone{opacity:0;visibility:hidden;transition:opacity 1.2s var(--ease), transform 1.2s var(--ease), visibility 0s 1.2s;transform:translate(-50%)translateY(-6px)}@keyframes hint-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}}dialog.panel{inset:var(--safe-t) var(--safe-r) auto auto;width:min(420px,100vw - 32px);max-width:none;height:auto;max-height:calc(100dvh - var(--safe-t) - var(--safe-b));border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--ink-dim);border-radius:16px;flex-direction:column;margin:0;padding:0;font-size:14px;line-height:1.55;display:none;position:fixed;overflow:hidden;box-shadow:0 20px 60px #0000008c}dialog.panel[open]{animation:panel-in .28s var(--ease);display:flex}dialog.panel::backdrop{background:#00000061}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}}.panel-header{border-bottom:1px solid var(--line);background:#0a0d1499;flex:none;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 10px 10px 20px;display:grid}.panel-title{letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin:0;font-size:13px;font-weight:600}.panel-close{width:var(--tap);height:var(--tap);border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.panel-close:hover{background:#ffffff14}.panel-tools{grid-column:1/-1;padding-bottom:4px}.panel-body{overscroll-behavior:contain;scrollbar-width:thin;flex:auto;min-height:0;padding:8px 20px 20px;overflow-y:auto}.dest-search{width:100%;min-height:var(--tap);border:1px solid var(--line-strong);color:var(--ink);font:inherit;background:#ffffff0f;border-radius:12px;padding:0 14px;font-size:16px}.dest-search::placeholder{color:#d4dcea99}.dest-group{margin-top:6px}.dest-heading{z-index:1;background:var(--panel-solid);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0 -20px;padding:10px 20px 6px;font-size:11.5px;font-weight:600;position:sticky;top:-8px}.dest-list{flex-wrap:wrap;gap:6px;margin:2px 0 6px;padding:0;list-style:none;display:flex}.dest-item{min-height:var(--tap);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:#ffffff0a;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:14px;transition:background .2s,border-color .2s;display:inline-flex}.dest-item:hover,.dest-item:focus-visible{background:#78a0e62e;border-color:#96b6f080}.dest-item[aria-current]{background:var(--accent-bg);border-color:#96b6f0b3}.dest-meta{color:var(--ink-faint);font-size:12.5px}.dest-here{color:var(--ink);background:#96b6f040;border-radius:999px;padding:1px 8px;font-size:11.5px}.dest-empty{color:var(--ink-faint);margin:4px 0 10px}.about-panel p{margin:10px 0}.about-section{margin-top:18px}.about-panel h3{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0 0 8px;font-size:12px;font-weight:600}.about-panel h4{color:var(--ink);margin:12px 0 4px;font-size:13px;font-weight:600}.kind-legend{flex-wrap:wrap;gap:6px 14px;margin:12px 0 0;padding:0;list-style:none;display:flex}.kind-badge{color:var(--ink-dim);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.kind-badge:before{content:"";display:inline-block}.source-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.source-list li{gap:2px;display:grid}.source-list strong{color:var(--ink);font-weight:500}.source-detail{color:var(--ink-dim);font-size:13px}.controls-list,.credit-list{margin:0;padding-left:18px;font-size:13.5px}.credit-list{color:var(--ink-faint);font-size:13px}.travel-style{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.travel-style legend{color:var(--ink);margin-bottom:6px}.radio{min-height:var(--tap);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;padding:0 16px;display:inline-flex;position:relative}.radio input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.radio:has(input:checked){background:var(--accent-bg);color:var(--ink);border-color:#96b6f0b3}.radio:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.about-note{color:var(--ink-faint);font-size:13px}.layer-list{gap:4px;display:grid}.layer-toggle{min-height:var(--tap);border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:14px;padding:10px 4px;display:flex;position:relative}.layer-toggle:last-child{border-bottom:0}.layer-toggle input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.layer-text{flex:auto;gap:2px;display:grid}.layer-name{color:var(--ink)}.layer-note{color:var(--ink-faint);font-size:12.5px}.layer-switch{border:1px solid var(--line);background:#ffffff0f;border-radius:999px;flex:none;width:40px;height:22px;transition:background .16s,border-color .16s;position:relative}.layer-switch:after{content:"";background:var(--ink-dim);border-radius:50%;width:14px;height:14px;transition:transform .16s,background .16s;position:absolute;top:3px;left:3px}.layer-toggle:has(input:checked) .layer-switch{background:var(--accent-bg);border-color:#96b6f0b3}.layer-toggle:has(input:checked) .layer-switch:after{background:var(--ink);transform:translate(18px)}.layer-toggle:has(input:focus-visible) .layer-switch{outline:2px solid var(--accent);outline-offset:2px}.layer-toggle:has(input:disabled){opacity:.5;cursor:default}@media (prefers-reduced-motion:reduce){.layer-switch,.layer-switch:after{transition:none}}.debug-overlay{top:calc(var(--safe-t) + 52px);color:#9fe3b0;pointer-events:none;white-space:pre;background:#0009;border-radius:6px;margin:0;padding:8px 10px;font:11px/1.45 ui-monospace,Cascadia Mono,Consolas,monospace;position:absolute;left:10px}.fallback{text-align:center;place-content:center;max-width:560px;margin:0 auto;padding:24px;display:grid;position:absolute;inset:0}.fallback h1{letter-spacing:.04em;font-size:18px;font-weight:400}.fallback p{color:var(--ink-dim);font-size:14px;line-height:1.6}.fallback-detail{color:var(--ink-faint)!important;font-size:12px!important}@media (max-width:640px){.hud-bottom{flex-direction:column;align-items:stretch;padding-top:56px}.hud-controls{justify-content:space-between}.hud-top{flex-direction:column-reverse;align-items:stretch}.hud-modes{align-self:flex-end}.hud-hint{top:calc(var(--safe-t) + 104px)}.hud-zoom{top:auto;bottom:calc(var(--safe-b) + 250px);transform:none}dialog.panel{width:100%;max-height:min(86dvh, calc(100dvh - var(--safe-t)));padding-bottom:env(safe-area-inset-bottom);border-radius:18px 18px 0 0;inset:auto 0 0}}@media (max-height:500px) and (orientation:landscape){.hud-bottom{padding-top:24px}.hud-distance{font-size:15px}.hud-readout{max-width:calc(100vw - 420px)}.hud-zoom{top:calc(var(--safe-t) + 56px);grid-auto-flow:row;transform:none}.hud-hint{display:none}dialog.panel{inset:var(--safe-t) var(--safe-r) var(--safe-b) auto;max-height:none}}@media (prefers-reduced-motion:reduce){canvas.universe,.hud,.hud-hint,.hud-button,.hud-mode,dialog.panel[open]{transition:none;animation:none}}.labels{pointer-events:none;transition:opacity .4s var(--ease);position:absolute;inset:0;overflow:hidden}.labels.is-hidden{opacity:0}.label{letter-spacing:.04em;color:#dee8f8db;text-align:center;white-space:nowrap;text-shadow:0 0 6px #000000f2,0 1px 2px #000000e6;will-change:transform;background:0 0;border:0;height:16px;padding:0;font:500 11.5px/16px Inter,system-ui,sans-serif;position:absolute;top:0;left:0}button.label{pointer-events:auto;cursor:pointer}button.label:hover{color:#fff}.label-focus{color:#fffffff7;font-weight:600}.label-star{color:#ffeececc;font-weight:400}.label-constellation{color:#96b2e1bf;letter-spacing:.2em;text-transform:uppercase;font-size:10.5px;font-weight:500}.label-place{color:#cddcffd9;letter-spacing:.08em}.label-region{color:#d6c4ffb3;letter-spacing:.18em;text-transform:uppercase;font-size:10.5px}@media (min-width:641px){dialog.panel.layers-panel{width:min(340px,100vw - 32px)}}dialog.panel.layers-panel::backdrop{background:#0000000f}.hud-controls .hud-button{flex-shrink:0}@media (max-width:420px){.hud-primary{width:var(--tap);padding:0}.hud-primary .hud-button-text{display:none}}
