@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/manrope-latin-wght-DHIcAJRg.woff2)format("woff2-variations"),url(/assets/manrope-latin-wght-DHIcAJRg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-latin-400-DMJ8VG8y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-latin-500-DSY6xOcd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--midnight:#10141f;--surface:#202638;--lilac:#b7abe8;--aqua:#9acac7;--blush:#d8b7c8;--pearl:#eceaf2;--bg:var(--midnight);--surface-1:#171c2bd9;--surface-2:#202638;--surface-glass:#121624eb;--veil:#10141f;--text:var(--pearl);--text-2:#c3c1d2;--text-3:#a3a2b8;--border:#eceaf21f;--border-strong:#eceaf238;--interactive:var(--lilac);--interactive-hover:#cbc2f0;--interactive-soft:#b7abe81f;--interactive-strong:#b7abe838;--on-interactive:var(--midnight);--active:var(--aqua);--active-soft:#9acac71f;--highlight:var(--blush);--danger:#eba697;--danger-soft:#eba6971f;--focus:#d9d2f7;--font-sans:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--radius-pill:999px;--radius-panel:20px;--radius-field:12px;--ease:cubic-bezier(.2,.7,.2,1);font-family:var(--font-sans);color:var(--text);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);font-size:15px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100dvh}html,body{overscroll-behavior:none}body{background:var(--bg);margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:500 14px/1.2 var(--font-sans);color:var(--text);cursor:pointer;border:1px solid var(--border);background:var(--surface-1);border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:8px;padding:9px 15px;transition:background-color .25s,border-color .25s,color .25s,opacity .25s;display:inline-flex}@media (hover:hover){button:hover{border-color:color-mix(in srgb,var(--interactive) 60%,transparent)!important;background:var(--interactive-soft)!important}}.gesture-hover{border-color:color-mix(in srgb,var(--interactive) 60%,transparent)!important;background:var(--interactive-soft)!important}button:disabled{opacity:.4;cursor:default}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}button.primary{background:var(--interactive);color:var(--on-interactive);border-color:var(--interactive);font-weight:600}@media (hover:hover){button.primary:hover{color:var(--on-interactive);background:var(--interactive-hover)!important;border-color:var(--interactive-hover)!important}}:where(.system-controls,.welcome,.shell-panel,.notice) button:active:not(:disabled),.menu-trigger:active{background:var(--interactive-strong)}:where(.system-controls,.welcome) button.primary:active:not(:disabled){background:var(--interactive-hover)}button.ghost{color:var(--text-2);background:0 0;border-color:#0000}@media (hover:hover){button.ghost:hover{color:var(--text)}}p{color:var(--text-2);font-size:14px;line-height:1.6}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-sans);color:var(--text)}h3{letter-spacing:-.005em;font-size:15px;font-weight:600}.gesture-held{border-color:var(--interactive)!important;background:var(--interactive-strong)!important}.gesture-release{animation:.35s ease-out release-feedback}@keyframes release-feedback{0%{box-shadow:0 0 0 8px #b7abe833}}.immersive-shell{background:var(--bg);overscroll-behavior:none;position:fixed;inset:0;overflow:hidden}.stage-canvas{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hud{pointer-events:none;z-index:5;position:absolute;inset:0}.hud>*{pointer-events:auto}.wordmark{top:calc(22px + var(--safe-t));left:calc(26px + var(--safe-l));font:600 14px/1 var(--font-sans);letter-spacing:.16em;color:color-mix(in srgb,var(--text) 80%,transparent);text-shadow:0 0 18px var(--veil);pointer-events:none;opacity:0;transition:opacity .8s var(--ease);position:absolute}.awake .wordmark{opacity:1}.tracking-indicator{top:calc(18px + var(--safe-t));right:calc(22px + var(--safe-r));font:500 12px/1.2 var(--font-sans);color:var(--text-2);text-shadow:0 0 12px var(--veil);pointer-events:none;opacity:.7;align-items:center;gap:8px;transition:opacity .6s;display:flex;position:absolute}.tracking-indicator i{background:#5c6078;border-radius:50%;width:7px;height:7px}.tracking-indicator.tracking i{background:var(--active);box-shadow:0 0 6px #9acac780}.tracking-indicator.tracking{opacity:.85}.tracking-indicator.searching i,.tracking-indicator.starting i{background:var(--interactive);animation:1.6s infinite pulse}.tracking-indicator.error{color:var(--danger);opacity:1}.tracking-indicator.error i{background:var(--danger)}.tracking-indicator.offline span{opacity:0;transition:opacity .6s}.awake .tracking-indicator.offline span{opacity:1}@keyframes pulse{50%{opacity:.3}}.scene-title{left:calc(clamp(22px,5vw,72px) + var(--safe-l));bottom:calc(clamp(110px,16vh,160px) + var(--safe-b));pointer-events:none;opacity:0;max-width:min(540px,80vw);transition:opacity 1.2s var(--ease),transform 1.6s var(--ease);position:absolute;transform:translateY(10px)}.scene-title.show{opacity:1;transform:none}.scene-index{font:500 12px/1 var(--font-mono);letter-spacing:.08em;color:var(--accent);text-shadow:0 0 12px var(--veil)}.scene-title h1{letter-spacing:-.025em;color:var(--text);text-shadow:0 0 36px var(--veil),0 0 2px #10141f80;margin:10px 0 12px;font-size:clamp(34px,5.4vw,72px);font-weight:300;line-height:1.02}.scene-title p{color:color-mix(in srgb,var(--text-2) 92%,transparent);text-shadow:0 0 16px var(--veil),0 0 2px var(--veil);margin:0 0 14px;font-size:16px;line-height:1.5}.scene-title ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.scene-title li{font:500 12.5px/1.3 var(--font-sans);color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius-pill);background:#10141fa6;padding:6px 12px}.scene-dots{left:50%;bottom:calc(24px + var(--safe-b));opacity:.55;gap:4px;transition:opacity .6s;display:flex;position:absolute;transform:translate(-50%)}.awake .scene-dots,.scene-dots:focus-within{opacity:1}@media (width>=701px) and (hover:hover){.scene-dots{bottom:calc(68px + var(--safe-b))}}.scene-dots button{background:0 0;border:0;width:30px;height:30px;padding:0}.scene-dots button:hover{background:0 0!important}.scene-dots i{width:6px;height:6px;transition:width .5s var(--ease),background-color .5s var(--ease);background:#eceaf259;border-radius:50%}@media (hover:hover){.scene-dots button:hover i{background:#eceaf2a6}}.scene-dots button[aria-current] i{background:var(--accent);width:22px;box-shadow:0 0 6px color-mix(in srgb,var(--accent) 50%,transparent);border-radius:3px}.scene-dots button:focus-visible{outline-offset:0;border-radius:var(--radius-field)}.menu-trigger{bottom:calc(18px + var(--safe-b));left:calc(22px + var(--safe-l));opacity:.6;flex-direction:column;gap:4px;width:44px;height:44px;padding:0;transition:opacity .6s,background-color .25s,border-color .25s;position:absolute}.menu-trigger i{background:var(--text);border-radius:50%;width:4px;height:4px;display:block}.awake .menu-trigger,.menu-trigger:focus-visible{opacity:1}.system-dock{right:calc(18px + var(--safe-r));bottom:calc(16px + var(--safe-b));opacity:0;pointer-events:none;transition:opacity .5s var(--ease),transform .5s var(--ease);position:absolute;transform:translateY(8px)}.awake .system-dock,.system-dock:focus-within{opacity:1;pointer-events:auto;transform:none}.system-controls{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.system-controls button{min-height:40px;font-size:13px}.system-controls button.on{border-color:color-mix(in srgb,var(--active) 45%,transparent);color:var(--active);background:var(--active-soft)}.system-controls button[aria-pressed=true]:not(.on){color:var(--text)}.system-controls.compact{justify-content:center}.system-controls.compact button{min-height:52px;padding:10px 18px}.world-arrow{display:none}.gesture-feedback{position:absolute;inset:0;pointer-events:none!important}.edge-light{opacity:0;will-change:opacity;width:22vw;position:absolute;top:10%;bottom:10%}.edge-light.left{background:radial-gradient(60% 50% at 0%,#b7abe84d,#0000 70%);left:0}.edge-light.right{background:radial-gradient(60% 50% at 100%,#9acac74d,#0000 70%);right:0}.menu-zone{top:calc(14px + var(--safe-t));opacity:0;font:500 12px/1.2 var(--font-sans);color:var(--text-2);text-shadow:0 0 10px var(--veil);flex-direction:column;align-items:center;gap:2px;transition:opacity .4s;display:flex;position:absolute;left:50%;transform:translate(-50%)}.menu-zone svg{width:34px;height:34px;transform:rotate(-90deg)}.menu-zone circle{fill:none;stroke-width:1.5px}.menu-zone .track{stroke:#eceaf233}.menu-zone .progress{stroke:var(--interactive);stroke-dasharray:100;stroke-dashoffset:100px;stroke-linecap:round}.menu-zone.holding{color:var(--interactive)}.welcome{left:50%;bottom:calc(clamp(70px,12vh,120px) + var(--safe-b));z-index:6;text-align:center;width:min(460px,100vw - 32px);animation:rise 1.6s var(--ease) both .6s;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;transform:translate(-50%)}.welcome:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#10141fb3,#10141f66 55%,#0000);border-radius:50%;position:absolute;inset:-48px -64px}.welcome p{color:var(--text);letter-spacing:-.015em;margin:0;font-size:clamp(22px,2.6vw,30px);font-weight:300;line-height:1.2}.welcome small{color:var(--text-2);font-size:13px;line-height:1.55}.welcome .primary{margin-top:4px;padding:12px 24px;font-size:15px}.welcome .ghost{font-size:14px}@keyframes rise{0%{opacity:0;transform:translate(-50%,14px)}}.orbital-menu{z-index:20;animation:fade .5s var(--ease);position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.menu-hint{top:calc(22px + var(--safe-t));font:500 13px/1.4 var(--font-sans);color:var(--text-2);text-shadow:0 0 12px var(--veil);white-space:nowrap;margin:0;position:absolute;left:50%;transform:translate(-50%)}.portal{will-change:transform;background:0 0;border:0;border-radius:50%;padding:0;position:absolute;top:0;left:0}.portal:hover,.portal.gesture-hover,.portal.gesture-held{background:0 0!important;border:0!important}.portal:focus-visible{outline:2px solid var(--focus);outline-offset:6px}.portal-orb{border-radius:50%;position:absolute;inset:0}.plain .portal-orb{background:radial-gradient(circle at 40% 35%,#eceaf22e,transparent 45%),radial-gradient(circle,color-mix(in srgb,var(--accent) 45%,transparent),#0000 70%);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 32px color-mix(in srgb,var(--accent) 28%,transparent)}.portal-label{white-space:nowrap;font:500 14px/1.2 var(--font-sans);color:var(--text-2);text-shadow:0 0 10px var(--veil),0 0 2px var(--veil);align-items:baseline;gap:8px;transition:color .3s;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%,6px)}.portal-label b{font:500 12px/1 var(--font-mono);color:var(--accent)}@media (width<=699px){.portal-label{gap:5px;font-size:12.5px}}.portal:hover .portal-label,.portal.gesture-hover .portal-label,.portal:focus-visible .portal-label{color:var(--text)}.portal.current .portal-label:after{content:"·";color:var(--accent)}.portal-close{border:1px solid var(--border-strong);color:var(--text);background:#10141fcc;border-radius:50%;padding:0;font-size:22px;font-weight:300;position:absolute;top:0;left:0}.menu-system{left:50%;bottom:calc(22px + var(--safe-b));width:min(900px,100vw - 32px);position:absolute;transform:translate(-50%)}.shell-panel{width:min(560px,100vw);padding-right:var(--safe-r);z-index:30;background:var(--surface-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-left:1px solid var(--border);animation:slide .35s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slide{0%{opacity:0;transform:translate(30px)}}.shell-panel header{padding:calc(16px + var(--safe-t)) 18px 16px 22px;border-bottom:1px solid var(--border);font:600 16px/1.2 var(--font-sans);color:var(--text);justify-content:space-between;align-items:center;display:flex}.shell-panel header button{width:40px;height:40px;padding:0}.shell-panel-body{overscroll-behavior:contain;padding:4px 22px calc(30px + var(--safe-b));flex:1;overflow:auto}.settings-panel .setting,.calibration-setting .setting{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px 0;display:flex}.setting h3{margin-bottom:6px}.setting p{color:var(--text-3);margin:0;font-size:13px;line-height:1.5}.setting label{color:var(--text-2);font-size:14px}.stepper{align-items:center;gap:10px;display:flex}.stepper output{font:500 13px var(--font-mono);text-align:center;width:48px;color:var(--interactive)}.stepper button{width:36px;height:36px;padding:0;font-size:16px}.calibration-setting{border-bottom:1px solid var(--border);padding:18px 0}.calibration-setting input{background:var(--surface-2);width:84px;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-field);font:400 14px var(--font-mono);margin-left:10px;padding:7px 9px}.calibration-setting input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.debug-controls{flex-wrap:wrap;gap:8px;padding-top:10px;display:flex}.debug-controls button{font-size:13px}.vision-canvas{aspect-ratio:4/3;border-radius:var(--radius-field);background:var(--surface-2);width:100%;height:auto;margin-top:14px;display:block}.debug-readout{font:12px/1.5 var(--font-mono);color:var(--text-3);margin:12px 0;display:block}.trace-tools{border-top:1px solid var(--border);padding-top:14px}.trace-tools div{flex-wrap:wrap;gap:8px;display:flex}.event-log{font:12px/1.7 var(--font-mono);color:var(--text-3);padding-left:18px}.notice{top:calc(56px + var(--safe-t));z-index:40;border:1px solid color-mix(in srgb,var(--interactive) 30%,transparent);background:var(--surface-glass);color:var(--text);border-radius:var(--radius-field);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:12px 16px;font-size:14px;line-height:1.45;display:flex;position:fixed;left:50%;transform:translate(-50%)}.notice.error{border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger);background:color-mix(in srgb,var(--danger-soft) 40%,var(--surface-glass))}.gesture-cursor,.cursor-trail{pointer-events:none;z-index:100;opacity:0;will-change:transform;position:fixed;top:0;left:0}.gesture-cursor{transition:opacity .2s}.gesture-cursor.visible{opacity:1}.gesture-cursor i{background:var(--pearl);border-radius:50%;width:8px;height:8px;transition:scale .15s,background .15s;position:absolute;top:-4px;left:-4px;box-shadow:0 0 8px 2px #d9eceb,0 0 22px 5px #9acac74d}.gesture-cursor span{width:34px;height:34px;transition:scale .18s var(--ease),border-color .18s,opacity .18s;opacity:.75;border:1px solid #9acac759;border-radius:50%;position:absolute;top:-17px;left:-17px}.gesture-cursor.hovering span{border-color:var(--active);opacity:1;scale:1.25}.gesture-cursor.pinching i{box-shadow:0 0 12px 3px var(--blush),0 0 28px 8px #d8b7c84d;background:#f3e6ee;scale:1.6}.gesture-cursor.pinching span{border-color:var(--highlight);opacity:1;scale:.55}.gesture-cursor.releasing span{opacity:0;border-color:var(--pearl);scale:1.7}.gesture-cursor b{color:var(--active);font:500 12px var(--font-mono);letter-spacing:.04em;white-space:nowrap;text-shadow:0 1px 4px var(--veil);position:absolute;top:-7px;left:22px}.cursor-trail{transition:transform .2s ease-out,opacity .2s}.cursor-trail:after{content:"";background:radial-gradient(#9acac72e,#0000 70%);border-radius:50%;width:28px;height:28px;position:absolute;top:-14px;left:-14px}.menu-open .gesture-cursor span{border-color:#eceaf280}@media (width<=700px){.system-dock{right:calc(12px + var(--safe-r));bottom:calc(16px + var(--safe-b))}.menu-trigger{left:calc(12px + var(--safe-l));bottom:calc(16px + var(--safe-b))}.system-controls button span,.system-controls.compact button span{display:none}.system-controls button{width:44px;height:44px;padding:0}.scene-title{bottom:calc(128px + var(--safe-b))}.scene-title p{font-size:15px}.menu-hint{white-space:normal;text-align:center;width:calc(100vw - 32px);top:calc(58px + var(--safe-t))}.scene-dots{bottom:calc(84px + var(--safe-b));width:min(calc(var(--dots) * 30px),calc(100vw - 24px - var(--safe-l) - var(--safe-r)));justify-content:center;gap:0}.scene-dots button{flex:1 1 0;width:auto;min-width:0}.welcome{bottom:calc(128px + var(--safe-b))}.wordmark{top:calc(18px + var(--safe-t));left:calc(16px + var(--safe-l))}.tracking-indicator{right:calc(14px + var(--safe-r))}}@media (hover:none) and (pointer:coarse){.hud,.orbital-menu,.welcome{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.hud button,.orbital-menu,.welcome button{touch-action:none}.menu-trigger{left:calc(12px + var(--safe-l));bottom:calc(16px + var(--safe-b))}.system-dock{right:calc(12px + var(--safe-r));bottom:calc(16px + var(--safe-b));opacity:.4;pointer-events:none;transform:none}.awake .system-dock,.system-dock:focus-within{opacity:1}.system-dock button{pointer-events:auto}.system-dock [data-secondary],.system-dock button:disabled,.system-controls button span{display:none}.system-controls button,.system-controls.compact button{width:44px;height:44px;min-height:44px;padding:0}.world-arrow{width:44px;height:64px;color:var(--text-2);opacity:.4;background:0 0;border:0;padding:0;transition:opacity .6s;display:flex;position:absolute;top:50%;translate:0 -50%}.world-arrow:before{content:"";border:1px solid var(--border);background:#10141f80;border-radius:50%;position:absolute;inset:15px 5px}.world-arrow svg{position:relative}.world-arrow.prev{left:calc(4px + var(--safe-l))}.world-arrow.next{right:calc(4px + var(--safe-r))}.awake .world-arrow,.world-arrow:focus-visible{opacity:.9}.scene-dots{bottom:calc(72px + var(--safe-b))}.scene-dots button{height:44px}.scene-title{left:calc(60px + var(--safe-l));max-width:calc(100vw - 120px - var(--safe-l) - var(--safe-r));bottom:calc(128px + var(--safe-b))}.welcome{bottom:calc(128px + var(--safe-b));width:min(440px,calc(100vw - 112px - var(--safe-l) - var(--safe-r)))}.welcome button{min-height:44px}.shell-panel header button,.stepper button{width:44px;height:44px}.notice button{min-height:44px}.hud button:active:not(:disabled),.system-controls button:active:not(:disabled),.welcome button:active:not(:disabled),.portal-close:active,.shell-panel button:active:not(:disabled),.notice button:active{filter:brightness(1.15);scale:.94}.world-arrow:active:before{border-color:color-mix(in srgb,var(--interactive) 50%,transparent);background:var(--interactive-strong)}.portal:active .portal-orb{scale:.94}.portal:active .portal-label{color:var(--text)}}@media (hover:none) and (pointer:coarse) and (height<=500px) and (orientation:landscape){.scene-dots{bottom:calc(64px + var(--safe-b))}.scene-title{bottom:calc(116px + var(--safe-b))}.scene-title h1{margin:6px 0 8px;font-size:34px}.scene-title p{margin-bottom:8px}.welcome{bottom:calc(112px + var(--safe-b));width:min(520px,calc(100vw - 112px - var(--safe-l) - var(--safe-r)));gap:8px}.welcome p{font-size:19px}.welcome:before{inset:-24px -40px}.menu-hint{white-space:nowrap;width:auto;top:calc(12px + var(--safe-t))}.menu-system{bottom:calc(12px + var(--safe-b))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}}.menu-open .hud .system-dock,.menu-open .hud .scene-dots,.menu-open .hud .menu-trigger,.menu-open .hud .world-arrow{opacity:0;pointer-events:none;visibility:hidden}
