:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f7f9;--fg:#16191d;--muted:#5d6670;--panel:#fffffff0;--border:#d5dae0;--accent:#2563eb;--accent-fg:#fff;--stage:#e9edf2;--left:#2f7de1;--right:#e07a1f;--surface:#6e9bd8;--edge:#e8770e;--corner:#d42b2b;--inside:#fff;--error:#c62828;--ok:#1b7f3b;--font:system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#101418;--fg:#e8ecf0;--muted:#9aa5b1;--panel:#161b21f2;--border:#313a44;--accent:#5b9cff;--accent-fg:#0b1220;--stage:#12171c;--left:#4fa3ff;--right:#ffa54f;--surface:#8ab4f8;--edge:#ff9a3c;--corner:#ff5a4f;--inside:#fff;--error:#ff6b6b;--ok:#5fd38a}}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);font:15px/1.4 var(--font);margin:0;overflow:hidden}button,select,input{font:inherit;color:inherit}button,select{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:6px 12px}button:hover{border-color:var(--accent)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary,button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}#stage{background:var(--stage);position:fixed;inset:0}#stage.video{background:#000}@media (width>=760px){body.menu-open #stage{right:min(380px,100vw)}}#video{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}#canvas{touch-action:none;display:block;position:absolute}#topbar{top:max(10px, env(safe-area-inset-top));pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:fixed;left:12px;right:12px}#topbar>*{pointer-events:auto}#trackingStatus{color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:5px 10px;font-size:13px}#trackingStatus:empty{display:none}#toast{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-width:calc(100vw - 32px);padding:8px 14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}#toast[data-kind=error]{color:var(--error)}#toast[data-kind=ok]{color:var(--ok)}#menu{background:var(--panel);border-left:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:min(380px,100vw);padding:12px 16px 24px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 30px #00000026}#menu[hidden]{display:none}.menu-head{justify-content:space-between;align-items:center;display:flex}h1{margin:4px 0 8px;font-size:20px}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px;font-size:13px}section{border-top:1px solid var(--border)}section:first-of-type{border-top:none}.row{justify-content:space-between;align-items:center;gap:12px;margin:8px 0;display:flex}.row>span{flex:1}.row input[type=range]{width:150px}.row select{max-width:200px}.row.check{justify-content:flex-start}.row.check>span{flex:1}output{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:4px}.demos{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;display:grid}.demos button{text-transform:capitalize;padding:6px 4px}.demos button[aria-checked=true]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.file-button{border:1px solid var(--border);cursor:pointer;background:var(--panel);border-radius:8px;padding:6px 12px;display:inline-block}.file-button:hover{border-color:var(--accent)}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.buttons{flex-wrap:wrap;gap:8px;display:flex}.status{color:var(--muted);white-space:pre-line;margin:8px 0;font-size:13px}.status[data-kind=error]{color:var(--error)}.hint{color:var(--muted);font-size:13px}details summary{cursor:pointer;margin:8px 0}#calibration{--wh-bg:transparent;--wh-fg:var(--fg);--wh-muted:var(--muted);--wh-border:var(--border);--wh-accent:var(--accent);--wh-font:var(--font)}.overlay{background:color-mix(in srgb, var(--bg) 85%, transparent);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay[hidden]{display:none}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;max-width:520px;padding:20px 24px;box-shadow:0 10px 40px #0003}.card h1{font-size:26px}.camera-list{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.camera-list li{align-items:center;gap:8px;display:flex}.camera-list .text{flex:1;min-width:0}.camera-list .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.camera-list .detail{color:var(--muted);font-size:13px}.camera-list .detail[data-ok=false]{color:var(--error)}.camera-list button{padding:2px 8px}#extraCameraSelect{flex:1;min-width:0}code{font-size:12px}#thumbs{pointer-events:none;gap:8px;display:flex;position:fixed;bottom:12px;left:12px}#thumbs figure{border:1px solid var(--border);background:#000;border-radius:8px;width:160px;margin:0;overflow:hidden}#thumbs video{aspect-ratio:16/9;object-fit:contain;width:100%;display:block;transform:scaleX(-1)}#thumbs figcaption{color:#fff;white-space:nowrap;text-overflow:ellipsis;padding:2px 6px;font-size:11px;overflow:hidden}
