:root{--fg:#ffffff9e;--fg-dim:#ffffff52;--font:ui-monospace, "SF Mono", Menlo, monospace}html,body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#000;height:100%;margin:0;overflow:hidden}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#gate{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 15vh);text-align:center;font:13px/1 var(--font);letter-spacing:.2em;color:var(--fg-dim);pointer-events:none;animation:4s ease-in-out infinite breathe;position:fixed}#gate.gone{opacity:0;transition:opacity 1.2s;animation:none}@keyframes breathe{50%{opacity:.35}}#hud{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);font:12px/1.6 var(--font);color:var(--fg);text-align:center;position:fixed}#hud[hidden]{display:none}#settings{color:var(--fg);margin-top:6px}#settings[hidden]{display:none}#settings label{min-height:44px;color:var(--fg);cursor:pointer;justify-content:center;align-items:center;gap:10px;display:flex}#settings input[type=range]{width:min(220px,50vw);height:44px;accent-color:var(--accent);margin:0}#settings input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin:0}#credit{color:var(--fg-dim);margin-top:10px;font-size:10px}#credit a{color:inherit}#themes{border:1px solid var(--button-border);border-radius:999px;margin:12px 0 4px;padding:3px;display:inline-flex}#themes button{min-width:72px;min-height:44px;font:inherit;color:var(--fg);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 16px}#themes button[aria-checked=true]{color:#fff;background:#ffffff2e}#themes button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}:root{--accent:#6fc0ff;--line:#ffffff24;--rec:#ff453a;--button-border:#ffffff4d;--state-quiet:color-mix(in srgb, var(--accent) 42%, #000);--state-near:color-mix(in srgb, var(--accent) 70%, #000);--state-view:var(--accent);--state-paused:repeating-linear-gradient(135deg, #ffffff59 0 1.5px, transparent 1.5px 5px)}.button{border:1px solid var(--button-border);min-height:44px;font:13px/1 var(--font);letter-spacing:.02em;color:#ffffffe0;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff12;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;display:inline-flex}.button:hover{background:#ffffff1f}.button:active{background:#fff3}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button.primary{color:#fff;background:#ffffff29;border-color:#ffffff80}.button.recording{border-color:var(--rec);background:color-mix(in srgb, var(--rec) 22%, transparent)}#trip-controls{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}#rec{top:calc(env(safe-area-inset-top) + 66px);font:11px/1 var(--font);letter-spacing:.12em;color:var(--fg);pointer-events:none;align-items:center;gap:7px;display:flex;position:fixed;left:16px}#rec[hidden]{display:none}#rec .dot{background:var(--rec);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite breathe}#timeline{z-index:10;padding:calc(env(safe-area-inset-top) + 28px) 16px calc(env(safe-area-inset-bottom) + 28px);color:var(--fg);font:13px/1.5 var(--font);-webkit-user-select:text;user-select:text;background:#000000f0;position:fixed;inset:0;overflow-y:auto}#timeline[hidden]{display:none}#timeline .inner{max-width:520px;margin:0 auto}#timeline .eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);margin:0;font-size:11px}#timeline h2{color:#fff;margin:6px 0 4px;font-size:22px;font-weight:500}#timeline .stats{color:var(--fg);margin:0}#timeline .events{margin:28px 0 20px;padding:0;list-style:none;position:relative}#timeline .events li{grid-template-columns:4.5em 28px minmax(0,1fr);align-items:center;gap:12px;padding:9px 0;display:grid;position:relative}#timeline .events li:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:calc(4.5em + 26px)}#timeline .events li:first-child:before{top:50%}#timeline .events li:last-child:before{bottom:50%}#timeline .events li.paused:before{border-left:1px dashed var(--line);background:0 0}#timeline .when{color:var(--fg-dim);white-space:nowrap;flex-direction:column;font-size:12px;display:flex}#timeline .length{opacity:.75;font-size:11px}#timeline .icon{z-index:1;background:#000;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:relative}#timeline .icon svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}#timeline .icon svg .fill{fill:currentColor;stroke:none}#timeline .what{flex-direction:column;min-width:0;display:flex}#timeline .what strong{font-weight:500}#timeline .detail{color:var(--fg-dim);font-size:12px}#timeline .detail a{color:inherit}#timeline li.quiet,#timeline li.paused{color:var(--fg-dim)}#timeline li.near .icon{color:var(--fg)}#timeline li.view .icon{color:var(--accent);box-shadow:0 0 14px -2px var(--accent)}#timeline li.view strong{color:#fff}#timeline .address{color:var(--fg);font-size:12px}#timeline .address[hidden]{display:none}#timeline .share{margin:24px 0 0;position:relative}#timeline figcaption{letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:8px;font-size:11px}#timeline .bar{touch-action:none;gap:2px;height:14px;display:flex}#timeline .seg{flex-basis:0;min-width:3px}#timeline .seg:first-child{border-radius:4px 0 0 4px}#timeline .seg:last-child{border-radius:0 4px 4px 0}#timeline .seg:only-child{border-radius:4px}#timeline .seg.view,#timeline .swatch.view{background:var(--state-view)}#timeline .seg.near,#timeline .swatch.near{background:var(--state-near)}#timeline .seg.quiet,#timeline .swatch.quiet{background:var(--state-quiet)}#timeline .seg.paused,#timeline .swatch.paused{background:var(--state-paused);box-shadow:inset 0 0 0 1px #ffffff40}#timeline .legend{border-collapse:collapse;margin-top:10px;font-size:12px}#timeline .legend th{text-align:left;color:var(--fg);white-space:nowrap;padding:2px 16px 2px 0;font-weight:400}#timeline .legend td{text-align:right;color:var(--fg-dim);font-variant-numeric:tabular-nums;padding:2px 0 2px 14px}#timeline .legend td:first-of-type{color:var(--fg)}#timeline .swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:8px;display:inline-block}#timeline .tip{color:#fff;white-space:nowrap;pointer-events:none;background:#1c1f24;border-radius:4px;padding:5px 8px;font-size:12px;position:absolute;top:0;transform:translate(-50%,calc(-100% - 4px));box-shadow:0 0 0 1px #ffffff1f}#timeline .tip[hidden]{display:none}#timeline .empty{color:var(--fg-dim);margin:0 0 20px}#timeline .done{min-width:120px}#settings-toggle[aria-expanded=true]{color:#fff;background:#ffffff29}#hud:has(#settings:not([hidden])):before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000 25%,#000000eb 55%);position:fixed;inset:0}#range{top:calc(env(safe-area-inset-top) + 10px);z-index:2;flex-direction:column;align-items:stretch;gap:8px;display:flex;position:fixed;right:16px}#range-toggle{font-variant-numeric:tabular-nums;gap:8px;padding:0 14px 0 12px}#range-toggle[aria-expanded=true]{color:#fff;background:#ffffff29}.range-icon{fill:none;width:18px;height:18px;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round}.range-icon circle{fill:var(--accent);stroke:none}#range-panel{border:1px solid var(--button-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0c10db;border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:12px 0;display:flex}#range-panel[hidden]{display:none}.range-end{color:var(--fg-dim);white-space:nowrap;font-size:11px}#range-slider{--pos:0;touch-action:none;cursor:grab;border-radius:22px;width:44px;height:min(240px,42vh);position:relative}#range-slider.dragging{cursor:grabbing}#range-slider:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#range-slider .track{background:#ffffff2e;border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:13px;bottom:13px;left:50%}#range-slider .fill{height:calc(var(--pos) * 100%);background:var(--accent);border-radius:2px}#range-slider .thumb{left:50%;top:calc(13px + var(--pos) * (100% - 26px));width:26px;height:26px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent), 0 2px 8px #00000080;pointer-events:none;background:#fff;border-radius:50%;margin:-13px 0 0 -13px;position:absolute}#range-slider.dragging .thumb{transform:scale(1.12)}#badges{pointer-events:none;position:fixed;inset:0}.cam-badge{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);font:600 12px/1 var(--font);color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;will-change:transform, opacity;background:#000000b8;border-radius:999px;align-items:center;gap:4px;padding:3px 8px 3px 6px;display:inline-flex;position:absolute;top:0;left:0}.cam-badge[hidden]{display:none}.cam-badge svg{fill:none;width:15px;height:15px;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}#help-toggle{top:calc(env(safe-area-inset-top) + 10px);z-index:2;width:44px;padding:0;font-size:18px;font-weight:600;position:fixed;left:16px}.sheet{border:1px solid var(--button-border);width:min(560px,100vw - 32px);max-height:min(86vh,900px);color:var(--fg);font:14px/1.6 var(--font);background:#0b0d11;border-radius:20px;padding:0;box-shadow:0 20px 60px #000000b3}.sheet[open]{flex-direction:column;display:flex}.sheet::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3}.sheet header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 14px 20px;display:flex}.sheet h2{color:#fff;margin:0;font-size:17px;font-weight:500}.sheet .body{overscroll-behavior:contain;-webkit-user-select:text;user-select:text;outline:none;padding:4px 20px 24px;overflow-y:auto}.sheet h3{letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);margin:24px 0 8px;font-size:11px;font-weight:500}.sheet p{margin:0 0 10px}.sheet .lede{color:#fff;margin-top:16px}.sheet a{color:var(--accent)}.sheet strong{color:#fff;font-weight:600}.sheet .states{margin:0;padding:0;list-style:none}.sheet .states li{grid-template-columns:32px 1fr;align-items:start;gap:12px;padding:6px 0;display:grid}.sheet .icon{background:#ffffff0d;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.sheet .icon svg,.sheet .inline-badge svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.sheet .icon svg{width:24px;height:24px}.sheet .icon svg .fill{fill:currentColor;stroke:none}.sheet .icon.quiet{color:var(--fg-dim)}.sheet .icon.view{color:var(--accent);box-shadow:0 0 12px -2px var(--accent)}.sheet .with-diagram{grid-template-columns:128px 1fr;align-items:start;gap:16px;display:grid}@media (width<=400px){.sheet .with-diagram{grid-template-columns:1fr}.sheet .diagram{justify-self:center}}.sheet .diagram{width:128px;height:128px}.sheet .diagram .ring{fill:none;stroke:#ffffff1a;stroke-width:1.5px}.sheet .diagram .arc{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round}.sheet .diagram .ball{fill:color-mix(in srgb, var(--accent) 35%, #000)}.sheet .diagram .lid{fill:none;stroke:#fff;stroke-width:1.5px;stroke-linecap:round}.sheet .diagram .badge rect{fill:#000;stroke:color-mix(in srgb, var(--accent) 55%, transparent)}.sheet .diagram text{font:600 9px var(--font);fill:#fff;text-anchor:middle}.sheet .diagram .ahead{fill:var(--fg-dim);font-weight:400}.sheet .inline-badge{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);color:#fff;vertical-align:1px;border-radius:999px;align-items:center;gap:3px;padding:0 7px 0 5px;font-size:12px;font-weight:600;display:inline-flex}.sheet .inline-badge svg{width:13px;height:13px;stroke:var(--accent)}.sheet .caution{color:var(--rec)}.sheet .caution-box{border:1px solid color-mix(in srgb, var(--rec) 45%, transparent);background:color-mix(in srgb, var(--rec) 8%, transparent);border-radius:14px;padding:14px 16px 4px}.wake-video{opacity:.01;pointer-events:none;width:1px;height:1px;position:fixed;bottom:0;left:0}#wake-note{color:#ffd79a;background:#281c0aa3;border:1px solid #ffb34080;border-radius:12px;max-width:34em;margin:0 auto 8px;padding:8px 12px;font-size:12px;line-height:1.45}#wake-note[hidden]{display:none}#locate{border:1px solid var(--button-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;background:#0a0c10e0;border-radius:16px;max-width:30em;margin:0 auto 10px;padding:14px 16px;font-size:13px;line-height:1.5}#locate[hidden]{display:none}#locate .title{color:#fff;margin:0 0 4px;font-size:14px;font-weight:600}#locate .body{color:var(--fg);margin:0 0 12px}#locate .button{width:100%}#locate .button:disabled{opacity:.6;cursor:progress}#locate .help{color:var(--fg-dim);margin:10px 0 0;font-size:12px}#locate .help strong{color:var(--fg);font-weight:600}#locate.blocked{border-color:#ffb34080}#locate.blocked .help{color:#ffd79a}#settings #calibrate-toggle{margin-top:6px}#calibrate .dial{grid-template-columns:132px 1fr;align-items:center;gap:18px;margin:16px 0 6px;display:grid;position:relative}#calibrate .rose-wrap{width:132px;height:132px;transition:transform .12s linear}#calibrate .rose{width:100%;height:100%}#calibrate .rose circle{fill:#ffffff08;stroke:var(--button-border)}#calibrate .rose line{stroke:#ffffff47;stroke-width:1px}#calibrate .rose line.major{stroke:#fff9;stroke-width:1.5px}#calibrate .rose text{font:600 11px var(--font);fill:var(--fg-dim);text-anchor:middle}#calibrate .rose text.n{fill:var(--rec);font-size:13px}#calibrate .pointer{border:7px solid #0000;border-top:11px solid var(--accent);width:0;height:0;margin-left:-7px;position:absolute;top:-6px;left:66px}#calibrate .readout{gap:6px;margin:0;display:grid}#calibrate .readout div{justify-content:space-between;gap:12px;display:flex}#calibrate .readout div[hidden]{display:none}#calibrate .readout dt{color:var(--fg-dim)}#calibrate .readout dd{color:#fff;font-variant-numeric:tabular-nums;margin:0}#calibrate .note{color:var(--fg-dim);margin:10px 0 0;font-size:12px}#calibrate .note.warn{color:#ffd79a;border:1px solid #ffb34080;border-radius:12px;padding:8px 12px}#calibrate .note[hidden],#calibrate section[hidden],#calibrate .progress[hidden]{display:none}#calibrate section .button.primary{min-width:120px}#calibrate .button:disabled{opacity:.45;cursor:not-allowed}#calibrate .progress{color:var(--accent);margin:10px 0 0;font-size:12px}#calibrate .nudges{flex-wrap:wrap;gap:8px;display:flex}#calibrate .nudges .button{min-width:56px}
