:root{--bg:#0d1117;--panel:#161b22;--ink:#f0f6fc;--muted:#9aa7b4;--line:#30363d;--accent:#58a6ff;--accent-ink:#041220;--ok:#43d17a;--warn:#ffb454;--bad:#ff6b6b;--focus:#ffdd57;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (prefers-color-scheme:light){:root{--bg:#fff;--panel:#f2f5f9;--ink:#10161d;--muted:#4b5765;--line:#c9d1d9;--accent:#0b5cd5;--accent-ink:#fff;--ok:#10743c;--warn:#8a5300;--bad:#b3231f;--focus:#7a3d00}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;padding:0 1rem 4rem;font:400 clamp(1rem,.95rem + .4vw,1.2rem)/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main,.page-header,.page-footer{max-width:46rem;margin:0 auto}h1{letter-spacing:-.02em;margin:1.5rem 0 .25rem;font-size:clamp(1.8rem,1.4rem + 2vw,2.6rem)}h2{margin:2rem 0 .75rem;font-size:clamp(1.2rem,1.05rem + .8vw,1.5rem)}.tagline{color:var(--muted);margin:0 0 1rem}section{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:1.5rem;padding:1rem 1.25rem 1.5rem}.note{color:var(--muted);font-size:.9em}button,select,input[type=range]{font:inherit}button{border:2px solid var(--line);background:var(--bg);min-height:3rem;color:var(--ink);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.6rem 1rem;display:inline-flex}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);text-align:center;justify-content:center;font-weight:600}button.danger{border-color:var(--bad);color:var(--bad)}button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button[aria-pressed=true]:after{content:" "}:focus-visible{outline:4px solid var(--focus);outline-offset:3px}kbd{opacity:.75;white-space:nowrap;border:1px solid;border-radius:5px;padding:.25em .45em;font:600 .8em/1 ui-monospace,SFMono-Regular,Menlo,monospace}.button-row{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.button-row button{flex:16rem}.button-grid{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.field{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.85rem 0;display:flex}.field label{min-width:9rem}.field input[type=range]{flex:12rem;min-height:2.5rem}.field input[type=checkbox]{vertical-align:-.2em;width:1.4rem;height:1.4rem}select{border:2px solid var(--line);background:var(--bg);min-height:3rem;color:var(--ink);border-radius:10px;flex:12rem;padding:.4rem}details{border-top:1px solid var(--line);margin-top:1rem;padding-top:.75rem}summary{cursor:pointer;align-items:center;min-height:2.75rem;font-weight:600;display:flex}.status{border-left:6px solid var(--muted);background:var(--bg);border-radius:0 10px 10px 0;margin:0 0 1.25rem;padding:.75rem 1rem;font-size:1.15em;font-weight:600}.status[data-status=aligned]{border-left-color:var(--ok);color:var(--ok)}.status[data-status=guiding]{border-left-color:var(--accent)}.status[data-status=searching]{border-left-color:var(--warn);color:var(--warn)}.status[data-status=obstructed]{border-left-color:var(--bad);color:var(--bad)}.error-text{color:var(--bad);font-weight:700}.preview-mirror{aspect-ratio:4/3;background:#000;border-radius:12px;width:100%;max-width:32rem;position:relative;overflow:hidden;transform:scaleX(-1)}.preview-mirror video,.preview-mirror canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.skip-link{background:var(--accent);color:var(--accent-ink);z-index:10;border-radius:0 0 10px;padding:.75rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-footer{color:var(--muted);text-align:center;font-size:.9em}ul{padding-left:1.2rem}li{margin:.4rem 0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (prefers-contrast:more){button,select{border-width:3px}}
