@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}.setup-shell.setup-stepper,.setup-mode-backdrop{font-family:IBM Plex Sans,sans-serif;color:#eef0f3;font-size:14px;line-height:1.4}.setup-shell.setup-stepper{box-sizing:border-box;display:flex;flex-direction:column;gap:14px;width:100%;max-width:36rem;min-height:100dvh;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 20px calc(170px + env(safe-area-inset-bottom));background:#0c0d10;overflow:visible}.setup-stepper *,.setup-mode-backdrop *{box-sizing:border-box}.setup-stepper [hidden],.setup-mode-backdrop[hidden],.setup-mode-backdrop [hidden]{display:none!important}.setup-stepper .setup-card{position:relative;display:block;flex:none;margin:0 0 0 37px;padding:12px;border:1px solid #292c33;border-radius:17px;background:#15171c;min-width:0}.setup-stepper .setup-card:before{content:"";position:absolute;left:-27px;top:37px;bottom:-35px;width:1px;background:#5b616b;pointer-events:none}.setup-stepper [data-step=playback]:before{background:none;border-left:1px dashed #5b616b}.setup-stepper .headset-card:before{display:none}.setup-stepper h2{font-size:15px;margin:0;font-weight:500}.setup-stepper h2 button{width:100%;border:0;background:none;padding:0;display:flex;align-items:center;gap:6px;color:inherit;text-align:left;font-size:15px;font-weight:500}.setup-stepper [data-step-number],.setup-stepper .headset-node{display:flex;position:absolute;left:-40px;top:16px;width:26px;height:26px;border:2px solid #7b818b;border-radius:50%;background:#0c0d10;align-items:center;justify-content:center;font-size:13px}.setup-stepper [aria-current=step] [data-step-number]{border-color:#00deed;box-shadow:0 0 0 3px #00deed18}.setup-stepper .step-complete [data-step-number]{background:#00deed;border-color:#00deed;color:#092023;font-size:0}.setup-stepper .step-complete [data-step-number]:after{content:"✓";font-size:15px}.setup-stepper small{font-size:11px;font-weight:400;padding:2px 5px;border-radius:4px;background:#292c34;color:#c6cbd3}.setup-stepper .step-chevron{margin-left:auto;color:#a4aab5;font-size:22px}.setup-stepper [aria-expanded=true] .step-chevron{transform:rotate(-90deg)}.setup-stepper .step-summary{margin:-2px 0 2px;color:#aeb4bf;font-size:13px;overflow-wrap:anywhere}.setup-stepper .source-panel:has([data-step-toggle][aria-expanded=false]) [data-video-summary]{display:none}.setup-stepper button,.setup-stepper input,.setup-stepper select,.setup-stepper summary,.setup-mode-sheet button,.setup-mode-sheet input{min-height:44px;touch-action:manipulation}.setup-stepper button,.setup-stepper select,.setup-mode-sheet button{border-radius:10px;border:1px solid #555d6a;background:#20232b;color:#eef0f3;padding:10px 12px;font:inherit}.setup-stepper button:disabled{opacity:.55}.setup-stepper :focus-visible,.setup-mode-sheet :focus-visible{outline:2px solid #00deed;outline-offset:3px}.setup-stepper fieldset,.setup-mode-sheet fieldset{border:0;padding:0;margin:0;min-width:0}.setup-stepper [data-source-method-group] legend{display:none}.setup-stepper .source-method-options{display:flex;gap:8px;margin-bottom:12px}.setup-stepper .source-method-option{display:flex;gap:6px;align-items:center;min-height:44px;font-size:13px}.setup-stepper input[type=radio],.setup-stepper input[type=checkbox],.setup-mode-sheet input[type=radio]{accent-color:#00deed;width:22px;min-width:22px;margin:0}.setup-stepper .file-picker{position:relative;display:flex;align-items:center;justify-content:center;min-height:105px;border:1px dashed #69808c;border-radius:11px;color:#63dbe6;font-weight:500;padding:14px;text-align:center}.setup-stepper .file-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.setup-stepper .file-picker:focus-within{outline:2px solid #00deed;outline-offset:3px}.setup-stepper input[type=url]{width:100%;min-width:0;background:#0c0d10;border:1px solid #58606d;border-radius:8px;color:#eef0f3;padding:10px;font:inherit}.setup-stepper .source-preview-frame{width:48px;height:48px;margin:6px 10px 4px 0;float:left;border-radius:7px;overflow:hidden;background:#20232b}.setup-stepper .source-preview{display:block;width:100%;height:100%;object-fit:cover}.setup-stepper [data-source-status]{font-size:13px;overflow-wrap:anywhere}.setup-stepper .status-text,.setup-stepper .calibration-help,.setup-stepper p,.setup-mode-sheet p{color:#aeb4bf;font-size:12px;margin:8px 0}.setup-stepper [data-source-error],.setup-stepper [data-session-notice],.setup-stepper [data-camera-message],.setup-stepper .rotate-gate{color:#ffd08a}.setup-stepper [data-source-error]:empty,.setup-stepper [data-session-notice]:empty,.setup-stepper [data-progress]:empty,.setup-stepper [data-calibration-notice]:empty{display:none}.setup-stepper [data-projection-note],.setup-stepper [data-playback-timeline]{clear:both}.setup-stepper [data-action=replace]{border:0;background:none;color:#63dbe6;padding:6px 0}.setup-stepper .diagnostic-preview{border:0;padding:0;margin:4px 0 10px}.setup-stepper .diagnostic-preview h3,.setup-stepper [data-diagnostic-status]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.setup-stepper [data-diagnostic-canvas]{display:block;width:100%;height:auto;max-height:180px;aspect-ratio:2.2;border-radius:8px;object-fit:contain;background:repeating-conic-gradient(#777e8b 0% 25%,#434750 0% 50%) 50% / 14px 14px}.setup-stepper .mode-row{display:flex;align-items:center;gap:8px;width:100%;font-size:13px}.setup-stepper [data-keying-summary]{color:#63dbe6;margin-left:auto}.setup-stepper [data-keying-status]{font-size:12px}.setup-stepper details{margin-top:10px;border-top:1px solid #2a2d35}.setup-stepper summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:8px 0;color:#d8dce3}.setup-stepper summary:after{content:"⌄"}.setup-stepper details[open]>summary:after{content:"⌃"}.setup-stepper .calibration-setting{margin:12px 0}.setup-stepper .calibration-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 6px}.setup-stepper .calibration-setting-heading{display:flex;align-items:center;justify-content:space-between;min-width:0}.setup-stepper .calibration-help-toggle{flex:none;width:44px;height:44px;border:0;background:none;color:#9ca7b5;padding:0}.setup-stepper input[type=range]{grid-column:1 / -1;grid-row:2;width:100%;min-width:0;accent-color:#63dbe6}.setup-stepper output{color:#63dbe6;align-self:center;font-size:12px}.setup-stepper input[type=color]{width:52px;padding:4px;border-radius:8px;background:#20232b;border:1px solid #555d6a}.setup-stepper .calibration-check,.setup-stepper .timing-diagnostics label{display:flex;align-items:center;gap:10px;min-height:44px}.setup-stepper .calibration-check .calibration-setting-heading{flex:1}.setup-stepper .key-presets{display:flex;gap:8px}.setup-stepper .key-presets button{flex:1;padding:8px}.setup-stepper [aria-pressed=true]{outline:2px solid #63dbe6;outline-offset:-2px}.setup-stepper [data-continue-playback]{width:100%;text-align:left;display:flex;justify-content:space-between;background:transparent}.setup-stepper .text-action{display:block;border:0;background:none;color:#63dbe6;margin:6px auto}.setup-stepper .view-mode-setting{display:flex;flex-direction:column;gap:8px;margin-top:8px}.setup-stepper .quick-adjustments{display:block;border:0;padding:0;margin:0}.setup-stepper .headset-card h2{padding:8px 0 0}.setup-stepper [data-calibrate]{width:100%;display:flex;justify-content:space-between;border:0;background:none;padding:5px 0;text-align:left;color:#aeb4bf}.setup-stepper .setup-secondary{text-align:center;margin-left:37px}.setup-stepper .pwa-status{margin:0;padding:0;border:0;background:none}.setup-stepper .start-panel{border:0;border-radius:0;padding:14px 20px max(16px,env(safe-area-inset-bottom));margin:0;background:#0c0d10}.setup-stepper .start-panel.sticky-action{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:36rem;z-index:30;box-shadow:0 -12px 16px #0c0d10}.setup-stepper [data-action=start]{width:100%;min-height:50px;background:#5ad6e3;border:0;color:#082025;font-weight:600}.setup-stepper [data-action=start]:disabled{background:#292d37;color:#c3c8d0;opacity:1}.setup-stepper .build-version{align-self:center;background:transparent;margin-top:auto;font-size:10px}.setup-mode-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#000b}.setup-mode-sheet{display:block;width:100%;max-width:36rem;max-height:calc(100dvh - env(safe-area-inset-top));overflow:auto;padding:12px 20px max(20px,env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:#191c23;border:1px solid #373d48}.setup-mode-sheet .sheet-handle{width:42px;height:5px;border-radius:4px;background:#656b78;margin:0 auto 5px}.setup-mode-sheet header{display:flex;align-items:center;justify-content:space-between}.setup-mode-sheet h2{font-size:20px;font-weight:600;margin:0}.setup-mode-sheet [data-mode-close]{width:44px;border:0;background:none;font-size:28px;color:#63dbe6}.setup-mode-sheet .keying-mode-option{display:flex;align-items:center;gap:14px;min-height:83px;padding:14px 0;border-top:1px solid #30343c;cursor:pointer}.setup-mode-sheet .keying-mode-option span{font-size:15px}.setup-mode-sheet .keying-mode-option small{display:block;margin-top:5px;color:#b9bec8;font-size:12px}.setup-mode-sheet [data-mode-done]{width:100%;margin-top:16px;min-height:50px;background:#5ad6e3;color:#082025;font-weight:600;border:0}.setup-stepper .visually-hidden,.setup-mode-sheet .visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){.setup-stepper *,.setup-mode-sheet *{scroll-behavior:auto;transition:none;animation:none}}@media(max-height:480px){.setup-stepper .start-panel.sticky-action{position:sticky;left:auto;bottom:0;transform:none;padding:10px 0 max(10px,env(safe-area-inset-bottom))}.setup-shell.setup-stepper{padding-bottom:24px}}html:has(.setup-stepper:not([hidden])),body:has(.setup-stepper:not([hidden])){background:#0c0d10}.setup-shell.setup-stepper{justify-content:flex-start}.setup-stepper button,.setup-mode-sheet button{min-inline-size:0}.setup-stepper .source-preview-frame{min-block-size:0}.setup-stepper .build-version{position:static}.setup-stepper [data-source-method-group]{background:transparent}.setup-shell.setup-stepper[hidden]{display:none!important}.setup-shell.setup-stepper .keying-controls,.setup-shell.setup-stepper .quick-adjustments,.setup-shell.setup-stepper [data-keying-mode-group]{display:block;background:none;border:0;padding:0}.setup-shell.setup-stepper input[type=range],.setup-shell.setup-stepper input[type=checkbox]{accent-color:#63dbe6}.setup-shell.setup-stepper output{color:#63dbe6}.setup-shell.setup-stepper .start-panel.sticky-action{border:0;background:#0c0d10;margin:0}.setup-shell.setup-stepper .source-panel:has([data-action=replace]:not([hidden])) h2{padding-right:96px}.setup-shell.setup-stepper [data-action=replace]{position:absolute;right:12px;top:12px;font-size:12px}.setup-shell.setup-stepper .setup-secondary details{text-align:left}.setup-mode-backdrop .setup-mode-sheet,.setup-shell.setup-stepper [data-source-method-group]{display:block}.setup-shell.setup-stepper .source-method-options{display:block;margin:4px 0 0}.setup-shell.setup-stepper .source-method-option{position:relative;justify-content:center;color:#63dbe6;text-decoration:underline;font-size:13px}.setup-shell.setup-stepper .source-method-option input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.setup-shell.setup-stepper .source-method-option:focus-within{outline:2px solid #00deed;outline-offset:2px;border-radius:8px}.setup-shell.setup-stepper .file-picker small{display:block;background:transparent;font-size:13px;color:#b9bec8;margin-top:7px}.setup-shell.setup-stepper [data-action=start]{border-radius:16px}.setup-shell.setup-stepper [data-action=start]{font-size:16px}.setup-shell.setup-stepper .view-mode-setting{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:4px;background:#292c34;border-radius:10px}.setup-shell.setup-stepper .view-mode-option{position:relative;display:flex;min-width:0;min-height:44px;align-items:stretch;cursor:pointer}.setup-shell.setup-stepper .view-mode-option input{position:absolute;inset:0;width:100%;height:100%;min-width:0;margin:0;opacity:0;cursor:pointer;z-index:1}.setup-shell.setup-stepper .view-mode-option span{display:flex;flex:1;align-items:center;justify-content:center;border-radius:7px;font-size:13px}.setup-shell.setup-stepper .view-mode-option input:checked+span{background:#5ad6e3;color:#082025;font-weight:500}.setup-shell.setup-stepper .view-mode-option input:focus-visible+span{outline:2px solid #eef0f3;outline-offset:-3px}.setup-shell.setup-stepper .view-mode-option input:disabled+span{opacity:.5}.setup-shell.setup-stepper [data-calibration-setting=loop] .calibration-check{display:grid;grid-template-columns:minmax(0,1fr) 44px}.setup-shell.setup-stepper [data-calibration-setting=loop] .calibration-setting-heading{grid-column:1;grid-row:1;width:100%}.setup-shell.setup-stepper input[role=switch]{appearance:none;-webkit-appearance:none;position:relative;grid-column:2;grid-row:1;width:44px;height:44px;min-block-size:44px;margin:0;cursor:pointer;background:transparent;border:0;border-radius:22px}.setup-shell.setup-stepper input[role=switch]:before{content:"";position:absolute;inset:8px 0;border-radius:20px;background:#626977}.setup-shell.setup-stepper input[role=switch]:after{content:"";position:absolute;top:11px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff}.setup-shell.setup-stepper input[role=switch]:checked:before{background:#5ad6e3}.setup-shell.setup-stepper input[role=switch]:checked:after{transform:translate(16px)}.setup-shell.setup-stepper input[type=range]{appearance:none;-webkit-appearance:none;height:44px;min-block-size:44px;padding:0;margin:0;background:transparent;border:0;cursor:pointer}.setup-shell.setup-stepper input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,#63dbe6 0 var(--range-progress, 0%),#40454f var(--range-progress, 0%) 100%)}.setup-shell.setup-stepper input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border:0;border-radius:50%;background:#fff;box-shadow:none}.setup-shell.setup-stepper input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:#40454f}.setup-shell.setup-stepper input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:#63dbe6}.setup-shell.setup-stepper input[type=range]::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;background:#fff}.setup-shell.setup-stepper .key-presets button{display:flex;align-items:center;justify-content:center;gap:6px}.setup-shell.setup-stepper .key-swatch{display:inline-block;width:13px;height:13px;border-radius:50%}.setup-shell.setup-stepper .key-swatch-green{background:#0f0}.setup-shell.setup-stepper .key-swatch-blue{background:#00f}.single-view-hud{--hud-tile: #191919;--hud-text: #eeeeee;--hud-muted: #b9b9bc;--hud-accent: #438fff;position:fixed;inset:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));z-index:30;display:grid;align-content:end;gap:.5rem;max-block-size:100dvh;overflow:auto;padding:.5rem;pointer-events:none;color:var(--hud-text);font-family:system-ui,sans-serif;font-weight:500;background:transparent;border:0;border-radius:1rem;touch-action:manipulation}.single-view-hud>*{pointer-events:auto}.single-view-hud[hidden]{display:none}.single-view-hud__title,.single-view-hud__time,.single-view-hud__notice,.single-view-hud__countdown{margin:0}.single-view-hud__title{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}.single-view-hud__time{justify-self:end;padding:.35rem .55rem;border-radius:.45rem;background:var(--hud-tile);color:var(--hud-muted);font-size:.8125rem;font-variant-numeric:tabular-nums}.single-view-hud input[type=range]{appearance:none;-webkit-appearance:none;min-block-size:2.75rem;min-inline-size:2.75rem;margin:0;padding:0 .75rem;border:0;border-radius:.75rem;background:var(--hud-tile);accent-color:var(--hud-text);--hud-track-direction: to right}.single-view-hud input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(var(--hud-track-direction),#eeeeee var(--hud-progress, 0%),#343436 var(--hud-progress, 0%))}.single-view-hud input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:linear-gradient(var(--hud-track-direction),#eeeeee var(--hud-progress, 0%),#343436 var(--hud-progress, 0%))}.single-view-hud input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:var(--hud-text)}.single-view-hud input[type=range]::-moz-range-thumb{width:16px;height:16px;border:0;border-radius:50%;background:var(--hud-text)}.single-view-hud__controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;padding:0}.single-view-hud__action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;min-block-size:4rem;min-inline-size:2.75rem;padding:.5rem .25rem;border:1px solid transparent;border-radius:.8rem;background:var(--hud-tile);color:var(--hud-text);font-family:inherit;font-size:.6875rem;font-weight:500;line-height:1.2}.single-view-hud__action svg{width:1.375rem;height:1.375rem;flex:none;fill:currentColor}.single-view-hud__label{max-inline-size:100%}.single-view-hud__action[data-active=true],.single-view-hud[data-zoom-open] [data-action=toggle-zoom]{color:var(--hud-accent)}.single-view-hud__action:active,.single-view-hud__action:focus-visible{background:#192332;border-color:var(--hud-accent);color:var(--hud-accent)}.single-view-hud__action:focus-visible,.single-view-hud input[type=range]:focus-visible{outline:2px solid var(--hud-accent);outline-offset:2px}.single-view-hud__action:disabled{border-color:transparent;background:var(--hud-tile);color:#525252}.single-view-hud[data-state-overlay] .single-view-hud__controls,.single-view-hud[data-state-overlay] .single-view-hud__zoom-popover,.single-view-hud[data-state-overlay] .single-view-hud__confirmation{opacity:.45;pointer-events:none}.single-view-hud[data-notice-only] .single-view-hud__title,.single-view-hud[data-notice-only] .single-view-hud__time,.single-view-hud[data-notice-only] [data-seek],.single-view-hud[data-notice-only] .single-view-hud__controls,.single-view-hud[data-notice-only] .single-view-hud__zoom-popover,.single-view-hud[data-notice-only] .single-view-hud__confirmation{display:none}.single-view-hud[data-zoom-open] .single-view-hud__title,.single-view-hud[data-zoom-open] .single-view-hud__time,.single-view-hud[data-zoom-open] [data-seek],.single-view-hud[data-zoom-open] .single-view-hud__controls .single-view-hud__action:not([data-action=toggle-zoom]):not([data-action=close-hud]):not([data-action=toggle-view-mode]){display:none}.single-view-hud[data-zoom-open]{align-content:safe end}.single-view-hud__action--exit,.single-view-hud__action--confirm-exit{background:#301c20;color:#f5dfe1}.single-view-hud__action--exit:active,.single-view-hud__action--confirm-exit:active,.single-view-hud__action--exit:focus-visible,.single-view-hud__action--confirm-exit:focus-visible{background:#48282e;color:#f5dfe1}.single-view-hud__zoom-popover,.single-view-hud__confirmation{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem;padding:.65rem;border:1px solid transparent;border-radius:.8rem;background:var(--hud-tile)}.single-view-hud__zoom-popover[hidden],.single-view-hud__confirmation[hidden]{display:none}.single-view-hud[data-zoom-open] .single-view-hud__zoom-popover{justify-self:end;grid-template-columns:auto auto;min-inline-size:8rem}.single-view-hud__zoom-heading,.single-view-hud__zoom-value{font-size:.8rem;color:var(--hud-muted);font-variant-numeric:tabular-nums}.single-view-hud__zoom-popover .single-view-hud__action{min-block-size:2.75rem}.single-view-hud__zoom-popover .single-view-hud__label{display:none}.single-view-hud__zoom-popover input[data-zoom-slider]{grid-column:1 / -1;justify-self:center;width:2.75rem;height:8rem;writing-mode:vertical-lr;direction:rtl;padding:.5rem 0;--hud-track-direction: to top}.single-view-hud input[data-zoom-slider]::-webkit-slider-runnable-track{width:12px;height:100%;border-radius:6px}.single-view-hud input[data-zoom-slider]::-webkit-slider-thumb{margin-top:0;margin-left:-2px}.single-view-hud input[data-zoom-slider]::-moz-range-track{width:12px;height:100%;border-radius:6px}.single-view-hud__notice,.single-view-hud__countdown{padding:.5rem;border-radius:.5rem;background:var(--hud-tile);color:var(--hud-text);font-size:.8125rem}.single-view-hud__notice:not([hidden]){display:flex;align-items:center;gap:.5rem}.single-view-hud__action--dismiss-performance-notice{min-inline-size:44px;min-block-size:44px;flex-shrink:0}.single-view-hud__action--dismiss-performance-notice[hidden]{display:none}@media(orientation:landscape){.single-view-hud{inset-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));inset-block:auto max(1rem,env(safe-area-inset-bottom));inline-size:min(30rem,calc(100dvw - max(1rem,env(safe-area-inset-left)) - max(1rem,env(safe-area-inset-right))));margin-inline:auto;max-block-size:min(calc(100dvh - 2rem),32rem);gap:.375rem}.single-view-hud__controls{gap:.375rem}.single-view-hud__action{min-block-size:3rem;padding:.25rem;gap:.125rem}}: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}.guided-calibration-panel{width:min(100%,48rem);margin-inline:auto}.guided-calibration-panel>[data-calibration-instruction]{margin:0;color:#c9d4e4;line-height:1.45}.guided-calibration-panel [data-calibration-fields]{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem 1rem}.guided-calibration-panel [data-calibration-fields][hidden],.guided-calibration-panel [data-calibration-actions][hidden],.calibration-preview-surface[hidden]{display:none}.guided-calibration-field input[type=number]{min-block-size:2.75rem;padding:.55rem .7rem;border:1px solid #4a90e2;border-radius:.5rem;background:#080b12;color:#f3f5f9}.calibration-actions{display:flex;flex-wrap:wrap;gap:.6rem}.calibration-actions button{min-inline-size:0}.guided-calibration-panel [data-calibration-notice]{min-block-size:1.35rem;margin:0;color:#ffe2a3;line-height:1.4}.calibration-preview-surface{position:fixed;inset:0;z-index:30;display:block;inline-size:100dvw;block-size:100dvh;min-inline-size:100dvw;min-block-size: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}.calibration-preview-surface [data-calibration-canvas]{display:block;inline-size:100%;block-size:100%;min-inline-size:100%;min-block-size:100%;background:#000;touch-action:manipulation;user-select:none;-webkit-user-select:none}.calibration-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1rem;margin:0;padding:.75rem;border:1px solid #263244;border-radius:.5rem;background:#080b12;font-variant-numeric:tabular-nums}.calibration-summary dt{color:#c9d4e4}.calibration-summary dd{margin:0;color:#8ab4f8}.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}}
