:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#080b12;color:#f3f5f9;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0;background:#080b12}body{min-height:100dvh}button,input,select{font:inherit}button{min-block-size:3rem;min-inline-size:10rem;padding:.75rem 1.25rem;border:1px solid #4a90e2;border-radius:.75rem;background:#2864a6;color:#fff;cursor:pointer;touch-action:manipulation}button:disabled{border-color:#374151;background:#1f2937;color:#9ca3af;cursor:not-allowed}#app{position:relative;width:100%;min-height:100dvh}.setup-root{min-width:100%;min-height:100dvh;overscroll-behavior-y:auto;touch-action:auto}.viewer-surface{position:fixed;inset:0;z-index:10;width:100dvw;height:100dvh;min-width:100dvw;min-height:100dvh;overflow:hidden;background:#000;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none;user-select:none;-webkit-user-select:none}.viewer-surface[hidden]{display:none}.viewer-canvas{display:block;width:100%;height:100%;min-width:100%;min-height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.viewer-head-locked-recovery{position:absolute;inset-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));inset-block-end:max(1rem,env(safe-area-inset-bottom));z-index:2;display:grid;gap:.55rem;justify-items:center;padding:.75rem 1rem;border:1px solid #7c5f1f;border-radius:.75rem;background:#0f172af0;color:#ffe2a3;text-align:center}.viewer-head-locked-recovery[hidden]{display:none}.viewer-head-locked-recovery p{margin:0;max-inline-size:34rem;line-height:1.4}.viewer-head-locked-recovery button{min-block-size:2.75rem;min-inline-size:9rem}.viewer-head-locked-recovery-actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center}.setup-shell{display:flex;min-height:100dvh;flex-direction:column;justify-content:safe center;gap:1.5rem;width:min(100%,54rem);margin-inline:auto;padding-block:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-bottom));padding-inline:max(1.5rem,env(safe-area-inset-left)) max(1.5rem,env(safe-area-inset-right));overscroll-behavior-y:auto;touch-action:auto;user-select:text;-webkit-user-select:text}.setup-shell[hidden]{display:none}.build-version{position:fixed;inset-inline-end:max(.5rem,env(safe-area-inset-right));inset-block-end:max(.5rem,env(safe-area-inset-bottom));z-index:20;max-inline-size:calc(100dvw - 2rem);overflow:hidden;color:#64748b;font:500 .625rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;user-select:text}.source-panel,.calibration-panel,.start-panel{display:grid;gap:.9rem;max-width:48rem;padding:1rem;border:1px solid #263244;border-radius:.75rem;background:#0e1522}.source-panel h2,.calibration-panel h2{margin:0;font-size:1.05rem}.pwa-status{display:grid;gap:.45rem;padding:.7rem .8rem;border:1px solid #263244;border-radius:.5rem;background:#080b12}.pwa-status[hidden]{display:none}.pwa-status p{margin:0}.pwa-install-hint{color:#b5c0d0;font-size:.86rem;line-height:1.45}.pwa-offline-hint{color:#ffe2a3;font-size:.86rem;line-height:1.45}.pwa-update-notice{color:#8ab4f8;font-weight:600}.pwa-status button{min-block-size:2.5rem;min-inline-size:0;justify-self:start}.file-picker,.calibration-check,.calibration-control{display:grid;gap:.45rem;color:#c9d4e4;font-size:.92rem}[data-source-method-group]{display:grid;gap:.55rem;margin:0;padding:.85rem;border:1px solid #263244;border-radius:.5rem;background:#080b12}[data-source-method-group] legend{padding-inline:.35rem;color:#f3f5f9;font-weight:700}.source-method-options{display:flex;flex-wrap:wrap;gap:.55rem 1rem}.source-method-option{display:inline-flex;align-items:center;gap:.6rem;min-block-size:2.5rem;color:#c9d4e4}.source-method-option input{inline-size:1.15rem;block-size:1.15rem;accent-color:#8ab4f8}.url-source-form{display:grid;gap:.55rem;padding:.85rem;border:1px solid #263244;border-radius:.5rem;background:#080b12;color:#c9d4e4}.url-source-form input{min-block-size:2.5rem;padding:.55rem .7rem;border:1px solid #4a90e2;border-radius:.5rem;background:#0e1522;color:#f3f5f9}.url-source-form p{margin:0;color:#b5c0d0;font-size:.86rem;line-height:1.45}[data-local-source-controls][hidden],[data-url-source-controls][hidden]{display:none}[data-keying-mode-group]{display:grid;gap:.55rem;margin:0;padding:.85rem;border:1px solid #263244;border-radius:.5rem;background:#080b12}[data-keying-mode-group] legend{padding-inline:.35rem;color:#f3f5f9;font-weight:700}.keying-mode-option{display:flex;align-items:center;gap:.6rem;min-block-size:2.5rem;color:#c9d4e4}.keying-mode-option input{inline-size:1.15rem;block-size:1.15rem;accent-color:#8ab4f8}.keying-mode-summary-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}[data-keying-mode-options]{display:grid;gap:.55rem}[data-keying-mode-options][hidden],.source-preview-frame[hidden]{display:none}.keying-mode-controls{display:grid;gap:.8rem}.keying-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem 1rem;padding:.75rem;border:1px solid #263244;border-radius:.5rem;background:#080b12}.keying-controls[hidden]{display:none}.keying-warning{grid-column:1 / -1;margin:0;padding:.65rem .75rem;border-inline-start:2px solid #d59b3f;background:#2b210b;color:#ffe2a3;line-height:1.45}[data-keying-field=keyColor]{inline-size:4rem;min-block-size:2.5rem;padding:.2rem}.calibration-setting{display:grid;min-inline-size:0;gap:.45rem}.calibration-setting-heading{display:inline-flex;align-items:center;gap:.35rem;inline-size:fit-content}.calibration-setting-check{grid-template-columns:minmax(0,1fr) auto;align-items:start}.calibration-setting-check .calibration-help{grid-column:1 / -1}.calibration-check{display:flex;align-items:center;min-block-size:2.75rem}.calibration-check input{inline-size:1.25rem;block-size:1.25rem;accent-color:#8ab4f8}.quick-adjustments{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem 1rem;padding:.75rem;border:1px solid #263244;border-radius:.5rem;background:#080b12}.calibration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem 1rem}.calibration-control input[type=range]{min-block-size:2rem;accent-color:#8ab4f8}.calibration-control output{color:#8ab4f8;font-variant-numeric:tabular-nums}.calibration-help-toggle{min-inline-size:1.35rem;min-block-size:1.35rem;justify-self:start;padding:0;border-radius:50%;background:#162c48;color:#d7e8ff;font-size:.75rem;font-weight:700;line-height:1}.calibration-help-toggle[aria-expanded=true]{border-color:#8ab4f8;background:#214c7f}.calibration-help{margin:0;padding:.6rem .75rem;border-inline-start:2px solid #4a90e2;background:#111d2d;color:#c9d4e4;font-size:.86rem;line-height:1.45}.calibration-help[hidden]{display:none}.source-preview-frame{min-block-size:9rem;overflow:hidden;border:1px solid #263244;border-radius:.5rem;background:#05070b}.source-preview{display:block;width:100%;max-block-size:18rem;object-fit:contain;background:#05070b}.diagnostic-preview{display:grid;gap:.5rem;margin-block-start:.75rem;padding:.75rem;border:1px solid #263244;border-radius:.5rem;background:#080b12}.diagnostic-preview[hidden]{display:none}.diagnostic-preview h3{margin:0;color:#d7e2f2;font-size:.95rem}.diagnostic-preview canvas{display:block;inline-size:100%;aspect-ratio:2 / 1;min-block-size:7rem;border-radius:.35rem;background:#000}.status-text,.error-text,.progress-text,.rotate-gate{margin:0;color:#b5c0d0;line-height:1.45}.error-text{min-block-size:1.2rem;color:#ffb4ab}.start-panel.sticky-action{position:sticky;bottom:0;z-index:3;margin-block:1rem 2rem;padding-block-end:max(1rem,env(safe-area-inset-bottom));border:1px solid #263244;background:#0e1522}.progress-text{color:#8ab4f8;font-weight:600}.rotate-gate{padding:.75rem;border:1px solid #7c5f1f;border-radius:.5rem;background:#2b210b;color:#ffe2a3}[data-camera-decision]{display:grid;gap:.6rem}[data-camera-decision][hidden],[data-landscape-gate][hidden],[data-action=confirm-alpha][hidden]{display:none}[data-action=retry-camera],[data-action=continue-vr-only]{min-inline-size:0}@media(orientation:landscape){.setup-shell{justify-content:flex-start}}.setup-header,.setup-actions{max-width:42rem}.eyebrow{margin:0 0 .5rem;color:#8ab4f8;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;font-size:clamp(2rem,7vw,4rem);line-height:1.05}.lede{margin:1rem 0 0;color:#b5c0d0;font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.5}.setup-actions{display:flex}@media(orientation:landscape)and (min-width:44rem){.setup-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);align-content:center;align-items:center;column-gap:clamp(2rem,8vw,6rem);max-width:72rem}.setup-header{grid-column:1}.setup-actions{grid-column:2;grid-row:1 / span 2}}
