:root{--brand-orange-300:#f7a24a;--brand-orange-500:#ea7530;--brand-orange-700:#c9501b;--brand-paper:#f6f4ee;--brand-navy:#2e3a54;--bg:#151b29;--surface:#1e283eeb;--surface-solid:#1e283e;--border:#3a4761;--control:#2a3550;--control-hover:#344263;--text:#f6f4ee;--text-muted:#a7b0c4;--text-faint:#6f7a93;--accent:#ea7530;--accent-hover:#f7a24a;--on-accent:#1e283e;--link:#f7a24a;--drop:#f7a24a;--danger:#ff8d8d;--shadow:0 6px 18px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f6f4ee;--surface:#ffffffeb;--surface-solid:#fff;--border:#ddd6c8;--control:#efebe2;--control-hover:#e6e0d3;--text:#2e3a54;--text-muted:#5b6680;--text-faint:#8a93a8;--accent:#ea7530;--accent-hover:#c9501b;--on-accent:#f6f4ee;--link:#c9501b;--drop:#c9501b;--danger:#c2413a;--shadow:0 6px 18px #2e3a5429;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#f6f4ee;--surface:#ffffffeb;--surface-solid:#fff;--border:#ddd6c8;--control:#efebe2;--control-hover:#e6e0d3;--text:#2e3a54;--text-muted:#5b6680;--text-faint:#8a93a8;--accent:#ea7530;--accent-hover:#c9501b;--on-accent:#f6f4ee;--link:#c9501b;--drop:#c9501b;--danger:#c2413a;--shadow:0 6px 18px #2e3a5429;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.brand{color:var(--text);letter-spacing:.2px;align-items:center;gap:8px;margin-right:4px;font-weight:700;text-decoration:none;display:inline-flex}.brand img,.brand svg{width:22px;height:22px;display:block}.brand small{color:var(--text-muted);font-weight:400}.theme-toggle{background:var(--control);color:var(--text);border:1px solid var(--border);width:32px;height:32px;font:inherit;cursor:pointer;border-radius:8px;padding:0;font-size:15px;line-height:1}.theme-toggle:hover{background:var(--control-hover)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:13px/1.45 system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#scene{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#hud{pointer-events:none;position:absolute;inset:0}#hud .panel{pointer-events:auto;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px}#hud a{color:var(--link);text-decoration:none}#hud #info{color:var(--text-muted)}#hud .time-toggle{font:inherit;color:var(--text);background:var(--control);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:7px;padding:3px 10px}#hud .time-toggle:hover{border-color:var(--accent)}#hud .weather-select{font:inherit;color:var(--text);background:var(--control);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:3px 6px}#hud .gpu-error{pointer-events:auto;background:var(--surface);border:1px solid var(--accent);color:var(--text);white-space:pre-wrap;border-radius:10px;max-height:40vh;padding:8px 10px;font:12px/1.4 ui-monospace,monospace;position:absolute;bottom:12px;left:12px;right:12px;overflow:auto}#hud .panel.stats{top:auto;bottom:calc(12px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch;gap:6px}#hud .stats .controls{flex-wrap:wrap;gap:6px;display:flex}#hud .stats .time-toggle[aria-pressed=true]{border-color:var(--accent)}#hud .readout{color:var(--text);white-space:pre;margin:0;font:13px/1.4 ui-monospace,monospace}@media (width<=720px){#hud .panel{flex-wrap:wrap;gap:6px 8px;right:12px}#hud #info{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;flex:100%;order:9;min-width:0;overflow:hidden}#hud #info.open{white-space:normal}}.drop #app{outline:3px dashed var(--drop);outline-offset:-8px}body.page{overflow:auto}body.page main{max-width:720px;margin:48px auto;padding:0 16px}body.page a{color:var(--link)}body.page li{margin:8px 0}body.page .muted{color:var(--text-muted)}body.page code{background:var(--control);border-radius:4px;padding:1px 5px}.unsupported{background:var(--bg);color:var(--text);place-items:center;display:grid;position:fixed;inset:0}.unsupported-card{text-align:center;max-width:320px;padding:24px}.unsupported-emoji{font-size:48px}.unsupported-icon img,.unsupported-icon svg{width:72px;height:72px}.unsupported h1{color:var(--text)}.unsupported-hint{color:var(--text-muted)}.landing-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.landing-header .lockup img{max-width:100%;height:auto;display:block}body.page h1{color:var(--text);margin:0 0 8px;font-size:22px}.loading{padding:16px;padding-top:max(16px, env(safe-area-inset-top));padding-bottom:max(16px, env(safe-area-inset-bottom));background:var(--bg);color:var(--text);opacity:0;display:flex;position:absolute;inset:0;overflow-y:auto}.loading.in{opacity:1;transition:opacity .16s ease-out .15s}.loading.now{opacity:1;transition:none}.loading.through{pointer-events:none}.loading.leaving{opacity:0;transition:opacity .25s ease-in}.loading-card{background:var(--surface);border:1px solid var(--border);width:100%;min-width:0;max-width:420px;box-shadow:var(--shadow);border-radius:12px;margin:clamp(84px,16vh,180px) auto auto;padding:18px 18px 16px}.loading-head{align-items:center;gap:12px;display:flex}.loading-head img{flex:none;width:40px;height:40px}.loading-head h1{color:var(--text);margin:0;font-size:18px;line-height:1.2}.loading-blurb{color:var(--text-muted);margin:2px 0 0}.loading-phases{gap:6px;margin:14px 0 12px;padding:0;line-height:1.35;list-style:none;display:grid}.loading-row,.loading-overall{grid-template-columns:1.1em minmax(0,1fr) auto;align-items:baseline;gap:3px 8px;display:grid}.loading-overall{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;padding-top:12px}.loading-mark{color:var(--accent);text-align:center;font-weight:700}.loading-name{overflow-wrap:anywhere;min-width:0}.loading-count{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.loading-row.done{color:var(--text-muted);opacity:.7}.loading-row.pending{color:var(--text-muted);opacity:.45}.loading-row.done .loading-bar,.loading-row.pending .loading-bar{display:none}.loading-note{color:var(--text-muted);font-size:12px;display:block}.loading-row.done .loading-note{display:none}.loading-bar{background:var(--control);border-radius:2px;grid-column:2/-1;height:3px;display:block;overflow:hidden}.loading-overall .loading-bar{border-radius:3px;grid-column:1/-1;height:6px}.loading-bar>i{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s ease-out;display:block;transform:scaleX(0)}.loading-row.busy:not(.counted) .loading-bar>i{width:35%;transition:none;animation:1.2s ease-in-out infinite loading-slide;transform:none!important}.loading.failed .loading-bar>i{animation:none!important}@keyframes loading-slide{0%{margin-left:-35%}to{margin-left:100%}}.loading-error{border:1px solid var(--danger);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;max-height:40vh;margin-top:14px;padding:8px 10px;font:12px/1.4 ui-monospace,monospace;overflow:auto}.loading-error[hidden]{display:none}.loading-pill{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));pointer-events:none;background:var(--surface);border:1px solid var(--border);max-width:calc(100% - 24px);box-shadow:var(--shadow);color:var(--text-muted);font-variant-numeric:tabular-nums;opacity:0;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 10px;font-size:12px;transition:opacity .2s;display:flex;position:absolute}.loading-pill>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.loading-pill>i{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.loading-pill.on{opacity:1}.loading-pill.on>i{animation:1.2s ease-in-out infinite loading-pulse}.loading-pill.failed{border-color:var(--danger);color:var(--text);border-radius:10px}.loading-pill.failed>span{white-space:normal}.loading-pill.failed>i{background:var(--danger);animation:none}@keyframes loading-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.loading.in{transition:opacity 0s linear .15s}.loading.leaving,.loading-pill,.loading-bar>i{transition:none}.loading-row.busy:not(.counted) .loading-bar>i{opacity:.45;width:100%;margin-left:0;animation:none}.loading-pill.on>i{animation:none}}
