html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{margin:0}[hidden]{display:none!important}:root{--bg:#e6e9e4;--surface:#f9faf7ed;--surface-solid:#f9faf7;--ink:#1b2320;--ink-2:#4b5752;--ink-3:#7b8681;--line:#1b23201f;--accent:#2e6a4c;--accent-soft:#2e6a4c1f;--focus:#1f6fd1;--c-free:#22a891;--c-ok:#8fc25a;--c-busy:#f1bf3f;--c-slow:#ef7c3a;--c-jam:#d6283f;--c-stop:#7b0d33;--v-1:#cfdcf3;--v-2:#7ea2e6;--v-3:#3d63c9;--v-4:#1d2a7a;--scene-ground:#e2e5df;--scene-farm:#e7e6d7;--scene-green:#cddbc4;--scene-wood:#b9cdb0;--scene-urban:#dddcd6;--scene-ind:#d7d4d9;--scene-civic:#dfd8cc;--scene-water:#9fc2d2;--scene-bld:#dcd6cb;--scene-road:#b9bfba;--scene-rail:#8a8f8c;--scene-wall:#7b9a69;--scene-car:#2b3330;--scene-label:#3c4642;--scene-halo:#eef0ec;--poi-edu:#7c5cd6;--poi-health:#e0366c;--poi-shop:#f08c1a;--poi-sport:#1f9ad6;--poi-work:#8b6b4e;--poi-civic:#2f9e8a;--font-display:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--font-body:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius:10px;--shadow:0 1px 2px #141e1914, 0 8px 28px #141e191f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1312;--surface:#111816e6;--surface-solid:#111816;--ink:#e5ebe8;--ink-2:#aab5b0;--ink-3:#74807b;--line:#e5ebe81f;--accent:#7cc49b;--accent-soft:#7cc49b24;--focus:#7fb2ff;--v-1:#22355e;--v-2:#3f6fd6;--v-3:#86aefc;--v-4:#dce8ff;--scene-ground:#121918;--scene-farm:#151c1a;--scene-green:#16241d;--scene-wood:#18291f;--scene-urban:#171e1d;--scene-ind:#1b1e22;--scene-civic:#1d1c1a;--scene-water:#17323d;--scene-bld:#2a3331;--scene-road:#2c3634;--scene-rail:#47504d;--scene-wall:#557f5b;--scene-car:#f1efe6;--scene-label:#b9c4bf;--scene-halo:#0d1312;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1312;--surface:#111816e6;--surface-solid:#111816;--ink:#e5ebe8;--ink-2:#aab5b0;--ink-3:#74807b;--line:#e5ebe81f;--accent:#7cc49b;--accent-soft:#7cc49b24;--focus:#7fb2ff;--v-1:#22355e;--v-2:#3f6fd6;--v-3:#86aefc;--v-4:#dce8ff;--scene-ground:#121918;--scene-farm:#151c1a;--scene-green:#16241d;--scene-wood:#18291f;--scene-urban:#171e1d;--scene-ind:#1b1e22;--scene-civic:#1d1c1a;--scene-water:#17323d;--scene-bld:#2a3331;--scene-road:#2c3634;--scene-rail:#47504d;--scene-wall:#557f5b;--scene-car:#f1efe6;--scene-label:#b9c4bf;--scene-halo:#0d1312;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;overflow:hidden}#scene{position:fixed;inset:0}#scene canvas{outline:none}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.brand{top:calc(env(safe-area-inset-top,0px) + 14px);text-align:right;pointer-events:none;z-index:3;position:fixed;right:16px}.brand h1{text-shadow:0 0 10px var(--bg), 0 0 3px var(--bg);font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;text-wrap:balance;margin:0;font-size:30px;font-weight:700;line-height:1}.brand h1 span{color:var(--accent)}.brand p{text-shadow:0 0 6px var(--bg), 0 0 2px var(--bg);font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.02em;margin:4px 0 0;font-size:11px}#panel{z-index:4;left:16px;top:calc(env(safe-area-inset-top,0px) + 14px);background:var(--surface);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);width:374px;box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;bottom:132px;overflow:hidden}#panel .scroll{overscroll-behavior:contain;flex-direction:column;gap:16px;padding:14px 16px 16px;display:flex;overflow-y:auto}#panel .scroll>*{flex-shrink:0}.sheet-handle{display:none}.seg{background:var(--line);border-radius:8px;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;display:grid}.seg button{cursor:pointer;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);background:0 0;border:0;border-radius:6px;padding:6px 8px;font-size:14px;font-weight:600}.seg button[aria-pressed=true]{background:var(--surface-solid);color:var(--ink);box-shadow:0 1px 2px #0000001f}.label{font-family:var(--font-display);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:12px;font-weight:600}.clock{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.clock .time{font-family:var(--font-display);letter-spacing:.01em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:44px;font-weight:700;line-height:.95}.clock .time small{color:var(--ink-3);margin-left:2px;font-size:22px;font-weight:600}.clock .ctx{color:var(--ink-2);text-align:right;max-width:130px;font-size:12px}.kpis{background:var(--line);border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.kpi{background:var(--surface-solid);min-width:0;padding:8px 10px}.kpi b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:19px;font-weight:500;display:block}.kpi span{color:var(--ink-2);font-size:11.5px}.legend{gap:6px;display:grid}.legend .bar{border-radius:4px;height:8px}.legend .ticks{font-family:var(--font-mono);color:var(--ink-3);justify-content:space-between;font-size:10.5px;display:flex}.spots{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.spot{cursor:pointer;border:1px solid #0000;border-radius:8px;grid-template-columns:26px 1fr auto;align-items:center;gap:4px 10px;padding:8px;display:grid}.spot:hover{background:var(--accent-soft)}.spot[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft)}.spot .rk{font-family:var(--font-display);text-align:center;color:#fff;border-radius:6px;font-size:18px;font-weight:700;line-height:26px}.spot .nm{min-width:0;font-size:13.5px;font-weight:600;line-height:1.2}.spot .meta{color:var(--ink-2);white-space:nowrap;grid-column:2/3;align-items:center;gap:8px;min-width:0;font-size:11px;display:flex;overflow:hidden}.spot .sp{color:var(--ink-3);grid-column:3/4;justify-self:end}.spot .val{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.chip{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.spark{flex:none;width:72px;height:18px}.spot .note{color:var(--ink-2);grid-column:2/4;padding-top:4px;font-size:12.5px;line-height:1.45}#layers{z-index:4;right:16px;top:calc(env(safe-area-inset-top,0px) + 76px);pointer-events:none;align-items:flex-start;gap:8px;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;transform:translate(calc(100% - 42px))}#layers.open{transform:none}#layers .handle,#layers-box{pointer-events:auto;background:var(--surface);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}#layers .handle{cursor:pointer;width:42px;height:42px;color:var(--accent);flex:none;place-items:center;padding:0;display:grid}#layers .handle svg{fill:currentColor;width:20px;height:20px}#layers.open .handle{background:var(--accent);color:var(--surface-solid);border-color:var(--accent)}#layers-box{visibility:hidden;gap:10px;width:210px;max-height:calc(100vh - 220px);padding:10px 14px 12px;transition:visibility 0s .3s;display:grid;overflow-y:auto}#layers.open #layers-box{visibility:visible;transition:none}.toggles{gap:6px;display:grid}.toggles label{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.toggles input{accent-color:var(--accent);width:15px;height:15px}.poi-key{border-top:1px solid var(--line);color:var(--ink-2);gap:4px;margin:0;padding:10px 0 0;font-size:12px;list-style:none;display:grid}.poi-key li{align-items:center;gap:7px;display:flex}.poi-key i{width:10px;height:10px;box-shadow:0 0 0 1.5px var(--scene-halo);border-radius:50%;flex:none}details{border-top:1px solid var(--line);padding-top:12px}details summary{cursor:pointer;font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;font-size:14px;font-weight:600}details .body{color:var(--ink-2);gap:10px;margin-top:10px;font-size:13px;line-height:1.5;display:grid}details .body p{margin:0}details table{border-collapse:collapse;width:100%;font-size:12px}details th,details td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:4px}details td.n,details th.n{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}details a{color:var(--accent)}#strip{z-index:4;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);background:var(--surface);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);height:104px;box-shadow:var(--shadow);grid-template-columns:auto 1fr;align-items:stretch;gap:14px;padding:10px 14px 8px;display:grid;position:fixed}.transport{flex-direction:column;justify-content:center;gap:8px;display:flex}.play{background:var(--accent);width:46px;height:46px;color:var(--surface-solid);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.play svg{fill:currentColor;width:18px;height:18px}.speed{gap:2px;display:flex}.speed button{border:1px solid var(--line);font-family:var(--font-mono);cursor:pointer;color:var(--ink-2);background:0 0;border-radius:5px;padding:1px 5px;font-size:11px}.speed button[aria-pressed=true]{background:var(--ink);color:var(--surface-solid);border-color:var(--ink)}#chart{cursor:pointer;touch-action:none;width:100%;min-width:0;height:100%;display:block}#chart text{font-family:var(--font-mono);fill:var(--ink-3);font-size:10px}#chart .hl text{fill:var(--ink);font-weight:500}.hint{color:var(--ink-3);margin:6px 0 0;font-size:12px}#follow{z-index:5;background:var(--surface);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);width:286px;box-shadow:var(--shadow);gap:6px;padding:10px 12px 12px;display:grid;position:fixed;bottom:132px;right:16px}#follow .head{justify-content:space-between;align-items:center;display:flex}#follow .head button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:4px;padding:0 4px;font-size:20px;line-height:1}#follow .when{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}#follow .bar{background:var(--line);border-radius:3px;height:5px;overflow:hidden}#follow .bar i{background:var(--accent);width:0;height:100%;transition:width .2s linear;display:block}#follow .m{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:12.5px}#tip{z-index:6;pointer-events:none;background:var(--surface-solid);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;max-width:260px;padding:8px 10px;font-size:12.5px;line-height:1.4;position:fixed}#tip b{font-weight:600}#tip .m{font-family:var(--font-mono);color:var(--ink-2);font-size:11.5px}#loading{z-index:10;background:var(--bg);place-items:center;transition:opacity .5s;display:grid;position:fixed;inset:0}#loading div{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-size:18px}#loading.done{opacity:0;pointer-events:none}.err{color:var(--c-jam)}@media (width<=760px){.brand{text-align:left;left:16px;right:16px}.brand h1{font-size:22px}.brand p{font-size:10px}#strip{height:84px;left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);gap:8px;padding:8px 10px 6px}.play{width:38px;height:38px}.speed{display:none}#panel{width:auto;top:auto;left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 100px);max-height:44vh}#panel.collapsed{max-height:132px}.sheet-handle{cursor:pointer;background:0 0;border:0;width:100%;padding:6px 0 0;display:block}.sheet-handle:before{content:"";background:var(--ink-3);opacity:.6;border-radius:2px;width:40px;height:4px;margin:0 auto;display:block}.clock .time{font-size:34px}#follow{width:auto;bottom:auto;left:8px;right:8px;top:calc(env(safe-area-inset-top,0px) + 74px)}#layers{right:8px;top:calc(env(safe-area-inset-top,0px) + 74px)}#layers-box{max-height:calc(100vh - 340px);padding:8px 12px}}@media (prefers-reduced-motion:reduce){#loading,#follow .bar i,#layers,#layers-box{transition:none}}
