@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/lab/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/lab/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/lab/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/lab/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/lab/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/lab/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/lab/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/lab/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/lab/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/lab/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/lab/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(/lab/assets/space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff")}:root{color:#dbe5ef;font-synthesis:none;--muted:#78899e;--border:#233043;--accent:#89dfd1;--panel:#101824;background:#080e18;font-family:DM Sans,system-ui,sans-serif;font-size:12px}html,body,#root{width:100%;height:100%}body{overflow:hidden}.inspector-content{min-height:0}@media (width<=550px){body{overflow:auto}}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);color:#becddd;background:#172231;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:29px;padding:5px 10px;transition:background .15s,color .15s;display:inline-flex}button:hover{color:#fff;background:#263649}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:default}input,select{color:#d3dfed;border:1px solid var(--border);background:#0b1320;border-radius:4px;outline:none;min-width:0}input{padding:7px 8px}select{max-width:100%;padding:7px 8px}input:focus,select:focus{border-color:#79c5be}small{color:var(--muted)}.hidden{display:none}.laboratory{grid-template-rows:70px minmax(0,1fr) 30px;grid-template-columns:240px minmax(300px,1fr) 310px;height:100dvh;min-height:540px;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:#111a27;grid-column:1/-1;align-items:center;gap:12px;padding:0 24px;display:flex}.brand-mark{width:37px;height:37px;color:var(--accent);background:#16302e;border:1px solid #426860;border-radius:10px;place-items:center;display:grid}.brand strong{letter-spacing:1.8px;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.brand strong span{color:#97a8ba;font-weight:400}.brand small{letter-spacing:2.8px;margin-top:5px;font-size:8px;display:block}.version-tag{color:var(--accent);border:1px solid #37574f;border-radius:3px;margin-left:6px;padding:3px 6px;font-family:monospace;font-size:9px}.topbar-spacer{flex:1}.engine-status{letter-spacing:.7px;color:#93a5b8;align-items:center;gap:6px;font-family:monospace;font-size:9px;display:flex}.engine-status i,.play-status i,.statusbar i{background:var(--accent);border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #89dfd155}.engine-status span{color:#46586d;padding:0 4px}.file-actions{gap:6px;margin-left:20px;display:flex}.file-actions button{background:0 0;font-size:11px}.left-panel,.right-panel{background:var(--panel);z-index:5;flex-direction:column;min-height:0;display:flex}.left-panel{border-right:1px solid var(--border);grid-area:2/1}.right-panel{border-left:1px solid var(--border);grid-area:2/3}.panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:48px;min-height:48px;padding:0 17px;display:flex}.panel-heading h2{letter-spacing:2px;color:#a4b4c5;font-size:10px;font-weight:600}.icon-button{color:#8094ab;background:0 0;border-color:#0000;width:27px;min-height:27px;padding:4px}.scenario-picker{border-bottom:1px solid var(--border);padding:22px 16px 17px}.eyebrow{letter-spacing:2px;color:var(--accent);font-size:8px;font-weight:600}.scenario-picker .eyebrow{color:var(--muted);margin-bottom:10px;display:block}.scenario-picker select{width:100%;padding:10px;font-weight:500}.scenario-picker p{color:var(--muted);margin:10px 0 0;font-size:10px;line-height:1.6}.search-box{border:1px solid var(--border);color:#667990;background:#0b1320;border-radius:5px;align-items:center;margin:18px 16px 17px;padding-left:9px;display:flex}.search-box input{background:0 0;border:0;width:100%;font-size:11px}.object-heading{letter-spacing:1.6px;color:#708397;justify-content:space-between;align-items:center;padding:0 18px;font-size:8px;display:flex}.object-heading small{border:1px solid var(--border);letter-spacing:0;border-radius:3px;padding:2px 4px;font-family:monospace}.object-list{flex:1;min-height:80px;padding:10px 9px;overflow:auto}.object-row{border:1px solid #0000;border-radius:5px;align-items:center;min-height:59px;margin:4px 0;padding:0 5px;display:flex}.object-row.selected{background:#16333166;border-color:#355f5866}.object-select{text-align:left;background:0 0;border:0;flex:1;justify-content:flex-start;gap:12px;padding:7px 5px}.object-select:hover{background:0 0}.object-select span:last-child{min-width:0}.object-select strong{text-overflow:ellipsis;max-width:132px;font-size:12px;font-weight:500;display:block;overflow:hidden}.object-select small{text-transform:capitalize;margin-top:4px;font-size:10px;display:block}.body-avatar{border-radius:50%;width:27px;min-width:27px;height:27px;box-shadow:0 0 18px #81aacc10}.visibility-button{color:#687f92;width:20px}.add-object{border-top:1px solid var(--border);padding:14px 16px}.add-object .select-field{margin-bottom:10px;display:block}.add-object .select-field span{color:var(--muted);margin-bottom:6px;font-size:9px;display:block}.add-object select,.primary-button{width:100%}.primary-button{color:#102623;background:#89dfd1;border-color:#89dfd1;min-height:36px;font-weight:600}.primary-button:hover{color:#102623;background:#a8ebdf}.left-footer{border-top:1px solid var(--border);padding:16px}.left-footer>div{color:#a6b8ca;align-items:center;gap:11px;font-size:10px;line-height:1.6;display:flex}.left-footer>div>svg{color:#6ca39a}.left-footer button{color:#687d94;background:0 0;border:0;width:100%;margin-top:14px;font-size:10px}.center-panel{background:radial-gradient(#122134,#080e18);grid-area:2/2;min-width:0;position:relative;overflow:hidden}.viewport{touch-action:none;position:absolute;inset:0}.viewport canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.scene-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.body-label{white-space:nowrap;color:#a5bdd0;pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;text-overflow:ellipsis;background:#080e18aa;border:1px solid #29445388;border-radius:4px;height:28px;min-height:28px;padding:5px 9px;font-size:11px;position:absolute;top:0;left:0;overflow:hidden}.body-label.dragging{cursor:grabbing}.body-label:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.body-label.selected{color:var(--accent);background:#16312ed0;border-color:#81d8ca88}.viewport-heading{pointer-events:none;position:absolute;top:31px;left:30px}.viewport-heading h1{letter-spacing:-.8px;color:#e4ecf5;margin:10px 0 7px;font-family:Space Grotesk,sans-serif;font-size:25px;font-weight:400}.viewport-heading p{color:#7990a8;margin:0;font-size:11px}.viewport-tools{gap:6px;display:flex;position:absolute;top:28px;right:24px}.viewport-tools button{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#8ea5bb;background:#121e2bcc;width:30px;height:31px;padding:0}.viewport-layer-toggles{grid-template-columns:repeat(2,max-content);gap:6px;width:max-content;display:grid;position:absolute;top:39px;right:0}.viewport-tools .viewport-layer-toggle{gap:5px;width:auto;padding:0 9px;font-size:11px}.viewport-layer-toggle[aria-pressed=true]{color:var(--accent);background:#16312ed0;border-color:#81d8ca88}.field-key{letter-spacing:1.3px;pointer-events:none;grid-template-columns:8px 1fr;gap:6px 7px;font-size:8px;display:grid;position:absolute;top:123px;left:30px}.field-key i{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-top:2px}.field-key span{color:#95cac5}.field-key small{letter-spacing:.2px;color:#6e8196;grid-column:2;font-size:8px}.axis-key{background:linear-gradient(115deg,#0000 49%,#5c6c8277 50%,#0000 52%);width:45px;height:44px;font-family:monospace;font-size:10px;position:absolute;bottom:113px;left:30px}.axis-key:before{content:"";background:#5c6c8277;width:1px;height:35px;position:absolute;bottom:6px;left:19px}.axis-key:after{content:"";transform-origin:0 0;background:#5c6c8277;width:29px;height:1px;position:absolute;bottom:7px;left:19px;transform:rotate(18deg)}.axis-y{color:#9adebc;position:absolute;top:-8px;left:16px}.axis-x{color:#f38d87;position:absolute;bottom:-3px;right:-11px}.axis-z{color:#86b9f6;position:absolute;bottom:-5px;left:-4px}.interaction-note{color:#60758c;text-align:right;pointer-events:none;max-width:75%;font-size:9px;position:absolute;bottom:112px;right:24px}.interaction-note span{color:#35485e;padding:0 7px}.interaction-note small{color:#93afa9;margin-top:7px;font-size:9px;display:block}.playback{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);white-space:nowrap;background:#121f2be8;border:1px solid #33435699;border-radius:9px;align-items:center;gap:9px;max-width:94%;min-height:62px;padding:11px 14px;display:flex;position:absolute;bottom:35px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0005}.play-button{background:var(--accent);color:#0b302b;border:0;border-radius:5px;width:34px;height:34px;padding:0}.play-button:hover{color:#0b302b;background:#b7eedd}.playback-divider{background:#304053;width:1px;height:27px;margin:0 6px}.clock small,.toolbar-speed small{letter-spacing:1.5px;color:#7891a7;margin-bottom:5px;font-size:7px;display:block}.clock strong{color:#dce7f1;min-width:80px;font-family:monospace;font-size:14px;font-weight:400;display:block}.clock strong span{color:#7289a0;font-size:10px}.toolbar-speed select{color:#d5e7df;background:0 0;border:0;max-width:110px;min-height:16px;padding:0;font-size:11px}.toolbar-speed select option{background:#182231}.play-status{letter-spacing:.7px;color:var(--accent);align-items:center;gap:6px;margin-left:9px;font-family:monospace;font-size:8px;display:flex}.play-status.limited{color:#ffd18a}.play-status.limited i{background:#ffd18a}.viewport-warning{text-align:center;color:#dbbc81;white-space:nowrap;text-overflow:ellipsis;font-size:9px;position:absolute;bottom:7px;left:24px;right:24px;overflow:hidden}.tabs{border-bottom:1px solid var(--border);min-height:44px;padding:0 10px;display:flex}.tabs button{color:#8092a7;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:10px 4px;font-size:10px}.tabs button.active{border-bottom-color:var(--accent);color:var(--accent)}.inspector-content{scrollbar-width:thin;scrollbar-color:#324457 transparent;flex:1;padding:0 18px 18px;overflow:auto}.inspector-title{align-items:center;gap:10px;padding:23px 0 20px;display:flex}.inspector-title>div{flex:1}.inspector-title h2{overflow-wrap:anywhere;margin:0 0 5px;font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:500}.inspector-title p{color:var(--muted);text-transform:capitalize;margin:0;font-size:9px}.body-dot{border-radius:50%;width:7px;height:7px;display:block}.body-dot.large{width:10px;height:10px;box-shadow:0 0 13px #a7d7ff44}.control-section{border-top:1px solid var(--border);padding:18px 0}.control-section h3{color:#9caec3;letter-spacing:1.3px;text-transform:uppercase;margin:0 0 15px;font-size:8px;font-weight:600}.number-field,.select-field,.text-field{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex;position:relative}.number-field>span,.select-field>span,.text-field>span{color:#95a6ba;flex:1;font-size:10px;line-height:1.4}.number-field>div{width:130px;min-width:0;display:flex;position:relative}.number-field input{width:100%;padding:8px;font-family:monospace;font-size:10px}.number-field small{background:#101824;padding:1px 3px;font-family:monospace;font-size:7px;line-height:1;position:absolute;bottom:-8px;right:7px}.number-field.invalid input{border-color:#eb9278}.number-field em{color:#eb9278;z-index:1;font-size:7px;font-style:normal;position:absolute;bottom:-10px;right:0}.select-field select{max-width:160px;font-size:10px}.text-field input{width:160px;font-size:11px}.hint{color:#70859d;margin:10px 0;font-size:9px;line-height:1.75}.vector-fields{margin:13px 0 17px}.field-caption{color:#98aabd;justify-content:space-between;margin-bottom:8px;font-size:9px;display:flex}.field-caption>span{color:#70859d;font-family:monospace;font-size:8px}.vector-fields>div:last-child{gap:6px;display:flex}.vector-fields .number-field{flex:1;min-width:0;margin:0;display:block}.vector-fields .number-field>span{color:#70859d;margin-bottom:4px;font-family:monospace;font-size:0;display:block}.vector-fields .number-field>span:after{content:"X";font-size:8px}.vector-fields .number-field:nth-child(2)>span:after{content:"Y"}.vector-fields .number-field:nth-child(3)>span:after{content:"Z"}.vector-fields .number-field>div{width:100%}.vector-fields input{padding:7px 5px;font-size:9px}.toggle{cursor:pointer;color:#a0b2c4;justify-content:space-between;align-items:center;gap:10px;margin:14px 0;font-size:10px;display:flex;position:relative}.toggle span small{margin-top:4px;font-size:8px;line-height:1.5;display:block}.toggle input{z-index:1;opacity:0;width:25px;height:14px;margin:0;padding:0;position:absolute;top:50%;right:0;transform:translateY(-50%)}.toggle i{background:#293749;border:1px solid #35475d;border-radius:9px;width:25px;min-width:25px;height:14px;display:block;position:relative}.toggle i:after{content:"";background:#8393a7;border-radius:50%;width:8px;height:8px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle input:checked+i{background:#275e54;border-color:#417a6e}.toggle input:checked+i:after{background:#a0e5d6;transform:translate(11px)}.toggle input:focus-visible+i{outline:2px solid var(--accent)}.button-pair{gap:7px;display:flex}.button-pair button{flex:1;font-size:10px}.button-pair .active{color:var(--accent);border-color:#417a6e}.bottom-actions{padding-top:5px}.danger{color:#c38d8d}.readout{background:#0b1320;border:1px solid #1d2a3b;border-radius:4px;margin-top:13px;padding:9px}.readout span{color:#748ca5;margin-bottom:7px;font-size:8px;display:block}.readout code{color:#b6c8db;overflow-wrap:anywhere;font-size:8px}.color-field{color:#95a6ba;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:10px;display:flex}.color-field input{width:55px;height:27px;padding:3px}.metric-row{color:#8b9fb5;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;font-size:9px;display:flex}.metric-row code{color:#c4d4e5;text-align:right;font-size:9px}.tab-intro{padding:24px 0 18px}.tab-intro>svg{color:var(--accent);margin-bottom:10px}.tab-intro h2{margin:0 0 7px;font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:400}.tab-intro p{color:var(--muted);margin:0;font-size:9px}.constant{color:#708fa0;padding:7px 0 14px;font-family:monospace;font-size:9px}.speed-presets{gap:4px;margin:0 0 17px;display:flex}.speed-presets button{flex:1;min-height:23px;padding:4px;font-size:8px}.warning-text{color:#dfbc80;border-left:2px solid #ad8342;margin:12px 0;padding-left:9px;font-size:9px;line-height:1.75}.wide-button{width:100%;font-size:10px}.empty-note{color:#8195ac;text-align:center;padding:24px 10px;font-size:11px;line-height:1.8}.empty-note h2{font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:400}.empty-note svg{color:#6da398}.ray-plot{border:1px solid var(--border);background:#0b1320;border-radius:5px;margin:17px 0;padding:9px}.ray-plot>div:first-child{color:#bccece;font-size:9px}.ray-plot>div:first-child span{float:right;color:#6a8098;font-size:8px}.ray-plot svg{width:100%;height:100px}.ray-plot .metric-row,.ray-plot .metric-row code{font-size:8px}.big-metric{background:#122a2866;border:1px solid #31534d;border-radius:5px;margin-bottom:15px;padding:16px 13px}.big-metric span{color:#97b6b1;font-size:9px;display:block}.big-metric strong{color:var(--accent);margin:11px 0;font-family:monospace;font-size:22px;font-weight:400;display:block}.big-metric small{font-size:8px;line-height:1.6;display:block}.statusbar{border-top:1px solid var(--border);color:#668097;letter-spacing:.3px;z-index:10;background:#101824;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 18px;font-size:8px;display:flex}.statusbar span{align-items:center;gap:7px;display:flex}.statusbar i{width:4px;height:4px}.statusbar b{color:#375166;font-weight:400}.statusbar code{color:#87bdb0;font-size:8px}.error-toast{color:#f5c2b3;z-index:100;background:#352525;border:1px solid #966565;border-radius:7px;align-items:center;gap:15px;max-width:80vw;padding:12px 15px;font-size:11px;display:flex;position:fixed;bottom:45px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #0006}.left-collapsed{grid-template-columns:0 minmax(300px,1fr) 310px}.left-collapsed .left-panel{display:none}.right-collapsed{grid-template-columns:240px minmax(300px,1fr) 0}.right-collapsed .right-panel{display:none}.left-collapsed.right-collapsed{grid-template-columns:0 minmax(300px,1fr) 0}@media (width>=1650px){.laboratory{grid-template-columns:265px minmax(300px,1fr) 330px}.left-collapsed{grid-template-columns:0 minmax(300px,1fr) 330px}.right-collapsed{grid-template-columns:265px minmax(300px,1fr) 0}.left-collapsed.right-collapsed{grid-template-columns:0 minmax(300px,1fr) 0}.viewport-heading h1{font-size:30px}}@media (width<=1100px){.laboratory{grid-template-columns:205px minmax(280px,1fr) 280px}.left-collapsed{grid-template-columns:0 minmax(280px,1fr) 280px}.right-collapsed{grid-template-columns:205px minmax(280px,1fr) 0}.left-collapsed.right-collapsed{grid-template-columns:0 minmax(280px,1fr) 0}.engine-status,.play-status{display:none}.playback{gap:5px;padding:10px}.viewport-heading{left:20px}.viewport-heading h1{font-size:22px}.viewport-tools{top:85px;right:15px}.field-key{left:20px}.number-field>div{width:113px}.text-field input{width:135px}.select-field select{max-width:135px}.interaction-note{font-size:8px}.object-select strong{max-width:100px}}@media (width<=800px){.laboratory{grid-template-rows:60px minmax(0,1fr) 27px;grid-template-columns:0 minmax(260px,1fr) 260px}.left-panel{display:none}.right-collapsed{grid-template-columns:0 minmax(260px,1fr) 0}.topbar{gap:9px;padding:0 13px}.brand strong{letter-spacing:1px;font-size:12px}.brand small{letter-spacing:1.6px;font-size:7px}.version-tag{display:none}.file-actions{margin-left:0}.file-actions span,.statusbar>span:nth-child(2){display:none}.inspector-content{padding:0 13px 15px}.playback{gap:2px;padding:8px;bottom:25px}.clock strong{min-width:55px;font-size:11px}.toolbar-speed select{max-width:89px;font-size:9px}.playback-divider{margin:0 5px}.interaction-note{display:none}.viewport-heading h1{font-size:19px}.viewport-heading p{font-size:9px}.field-key{top:118px}.viewport-tools{top:165px}.viewport-warning{font-size:8px}.number-field>div{width:109px}}@media (width<=550px){.laboratory{grid-template-rows:60px minmax(430px,60vh) minmax(350px,1fr) 27px;grid-template-columns:minmax(250px,1fr);height:auto;min-height:100dvh;overflow:auto}.left-panel{display:none}.center-panel{grid-area:2/1}.right-panel{border-top:1px solid var(--border);grid-area:3/1;height:500px}.statusbar{grid-row:4}.right-collapsed .right-panel{display:none}.right-collapsed .center-panel{min-height:calc(100dvh - 87px)}.left-collapsed,.right-collapsed,.left-collapsed.right-collapsed{grid-template-columns:minmax(250px,1fr)}.inspector-content{padding:0 20px 15px}.number-field>div{width:160px}.text-field input{width:180px}.select-field select{max-width:180px}.file-actions button{width:26px;padding:4px}.brand-mark{width:30px;height:30px}.brand strong{font-size:11px}.viewport-tools{top:25px}}@media (width<=800px){.laboratory:not(.left-collapsed) .left-panel{z-index:30;width:230px;display:flex;position:fixed;top:60px;bottom:27px;left:0;box-shadow:8px 0 30px #0007}}.left-panel{scrollbar-width:thin;scrollbar-color:#324457 transparent;overflow-y:auto}.left-panel>.object-list{flex:none;min-height:100px;max-height:220px}.left-panel>.scenario-picker,.left-panel>.panel-heading,.left-panel>.add-object,.left-panel>.left-footer{flex-shrink:0}.sidebar-fabric{border-bottom:1px solid var(--border);flex-shrink:0;padding:15px 16px 14px}.sidebar-fabric>summary{letter-spacing:1.8px;color:#a6b7ca;cursor:pointer;justify-content:space-between;align-items:center;font-size:8px;font-weight:600;list-style:none;display:flex}.sidebar-fabric>summary:after{content:"−";letter-spacing:0;color:#71879f;font-size:15px}.sidebar-fabric:not([open])>summary:after{content:"+"}.space-fabric-controls{padding:12px 0 15px}.sidebar-fabric .space-fabric-controls{padding-bottom:0}.fabric-modes{grid-template-columns:1fr 1fr;gap:6px;margin:0 0 15px;display:grid}.fabric-modes button{color:#899fb5;background:#0c1522;border:1px solid #263547;flex-direction:column;gap:3px;min-height:63px;padding:6px 4px 8px;font-size:9px;line-height:1.35;display:flex}.fabric-modes svg{width:88%;height:26px}.fabric-modes .active{color:#d7f5ed;background:#17312966;border-color:#608a7e}.fabric-range{color:#9dafc2;grid-template-columns:1fr auto;align-items:center;gap:4px;margin:11px 0 12px;font-size:10px;display:grid}.fabric-range .fabric-value{color:#c6d5de;font-family:monospace;font-size:9px}.fabric-range input{accent-color:#91c8b8;cursor:pointer;background:0 0;border:0;grid-column:1/-1;width:100%;height:12px;margin:3px 0 0;padding:0}.fabric-color{color:#91a5ba;align-items:center;gap:6px;margin:14px 0 10px;font-size:9px;display:flex}.fabric-color>span{flex:1}.fabric-color input[type=color]{border-radius:4px;width:24px;height:25px;padding:2px}.fabric-color input[type=text]{width:80px;min-width:0;padding:6px;font-family:monospace;font-size:9px}.fabric-check{color:#95aabe;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;margin:12px 0;font-size:9px;display:flex}.fabric-check input{accent-color:#89cbbb;width:13px;height:13px;margin:0}.fabric-advanced>summary{color:#7894a9;cursor:pointer;margin-top:14px;font-size:9px}.fabric-advanced>div{padding-top:12px}.fabric-number{color:#91a5ba;justify-content:space-between;align-items:center;gap:7px;margin:11px 0;font-size:9px;display:flex}.fabric-number input,.fabric-number select{width:78px;padding:5px;font-family:monospace;font-size:9px}.fabric-number small{margin-top:3px;font-size:7px;display:block}.fabric-reset{color:#acc8b8;background:#1b2a2366;border-color:#304337;min-height:26px;margin-top:12px;font-size:9px}.gravity-range-controls input{width:90px}.gravity-range-controls .fabric-number>span{flex:1;min-width:0}.lens-status{color:#87b8c2;font-family:monospace;font-size:8px;line-height:1.6}.black-hole-controls .metric-row{font-size:8px}.black-hole-controls .metric-row code{font-size:9px}.simulation-fullscreen .topbar,.simulation-fullscreen .left-panel,.simulation-fullscreen .right-panel,.simulation-fullscreen .statusbar{display:none!important}.simulation-fullscreen .center-panel{z-index:60;width:100vw;height:100dvh;position:fixed;inset:0}.simulation-fullscreen .viewport-heading,.simulation-fullscreen .field-key,.simulation-fullscreen .axis-key,.simulation-fullscreen .interaction-note{display:none}.simulation-fullscreen .viewport-tools{top:18px;right:20px}.simulation-fullscreen .viewport-tools button:not(.fullscreen-toggle):not(.viewport-layer-toggle){display:none}.simulation-fullscreen .playback{background:#0b1823dd;bottom:25px}.simulation-fullscreen .error-toast{z-index:100}.simulation-fullscreen{height:100dvh!important;min-height:0!important;overflow:hidden!important}.fullscreen-toggle{color:#afd7c7!important;border-color:#466457!important}.control-fields{border:0;min-width:0;margin:0;padding:0}fieldset:disabled input,fieldset:disabled select,button:disabled,select:disabled{opacity:.48;cursor:default}.real-positions-toggle{color:inherit;white-space:nowrap;border:1px solid #425068;border-radius:5px;align-items:center;gap:7px;padding:8px 10px;font-size:12px;text-decoration:none;display:flex}.reset-preset{border:1px solid #425068;border-radius:5px;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:10px;padding:8px;font-size:11px;display:flex}.real-positions-toggle[aria-pressed=true]{color:#a8dfff;background:#203950;border-color:#639bc4}@media (width<=1000px){.engine-status{display:none}}@media (width<=600px){.brand small,.version-tag{display:none}.brand strong{font-size:11px}.real-positions-toggle{padding:7px 5px;font-size:10px}}.real-live-indicator{color:#a8dfff;pointer-events:none;font-size:12px;position:absolute;top:24px;left:24px}@media (width<=600px){.topbar{gap:6px;padding:0 10px}.brand-mark{display:none}.brand strong{letter-spacing:.3px;font-size:10px}.real-positions-toggle{gap:4px}.real-observation .playback{gap:4px;padding:8px}.real-observation .playback .toolbar-speed,.real-observation .playback-divider{display:none}.real-observation .clock strong{font-size:10px}.real-live-indicator{font-size:10px;top:65px;left:12px}}.viewport.panning,.viewport.panning canvas,.viewport.panning .body-label{cursor:grabbing}html[data-capture=scene] .laboratory{background:#050a10;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:0}html[data-capture=scene] .laboratory>:not(.center-panel):not(.left-panel):not(.capture-sidebar-toggle):not(.mobile-panel-scrim):not(.error-toast),html[data-capture=scene] .center-panel>:not(.viewport){display:none!important}html[data-capture=scene] .center-panel>.universe-navigator,html[data-capture=scene] .center-panel>.atlas-open{display:block!important}html[data-capture=scene] .center-panel{width:min(100%, calc(100dvh * var(--capture-ratio,1.7778)));height:auto;aspect-ratio:var(--capture-ratio,1.7778);grid-area:1/1;place-self:center}.capture-sidebar-toggle{display:none}html[data-capture=scene] .capture-sidebar-toggle{z-index:24;color:#c9f4eb;background:#102536ee;border:1px solid #54897c;align-items:center;gap:8px;min-height:44px;padding:8px 12px;display:inline-flex;position:fixed;top:12px;left:12px;box-shadow:0 4px 16px #0006}html[data-capture=scene] .laboratory:not(.left-collapsed)>.capture-sidebar-toggle{display:none}html[data-capture=scene][data-capture-desktop=true] .laboratory{justify-content:flex-start}html[data-capture=scene][data-capture-desktop=true] .center-panel{margin-inline:auto}html[data-capture=scene][data-capture-desktop=true] .laboratory .left-panel{border-radius:0;flex:0 0 240px;width:240px;height:100dvh;max-height:none;display:flex;position:relative;inset:auto;overflow-y:auto}html[data-capture=scene][data-capture-desktop=true] .laboratory.left-collapsed .left-panel{display:none}.atlas-open{z-index:12;color:#cde8ff;cursor:pointer;background:#0d2236eb;border:1px solid #789ec85c;border-radius:9px;padding:12px 16px;position:absolute;bottom:100px;left:18px}.universe-navigator{z-index:12;color:#d8e9fc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto;background:#081422ed;border:1px solid #789ec83d;border-radius:14px;width:min(370px,100% - 36px);padding:14px;font-size:12px;position:absolute;bottom:100px;left:18px;box-shadow:0 12px 38px #0006}.atlas-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.universe-navigator label{gap:5px;margin:8px 0;display:grid}.universe-navigator input[type=search],.universe-navigator select{color:#e1edff;background:#111f31;border:1px solid #7998bb40;border-radius:7px;width:100%;min-width:0;padding:8px}.universe-navigator button{color:#bfdbf9;cursor:pointer;background:#13283a;border:1px solid #8bb7e63d;border-radius:6px;padding:5px 8px}.atlas-breadcrumb{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 7px;display:flex}.atlas-breadcrumb span{color:#fff}.atlas-scale{color:#9fb8d1;line-height:1.6;display:block}.atlas-details{overscroll-behavior:contain;max-height:29vh;margin-top:8px;padding-right:5px;line-height:1.65;overflow:auto}.atlas-details p{margin:6px 0 10px}.atlas-details a{color:#a0d6ff}.atlas-destinations{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.universe-navigator .atlas-check{align-items:center;gap:8px;display:flex}.atlas-limit{color:#9fb0c5;font-size:11px}@media (width<=800px){.universe-navigator{width:min(330px,100% - 20px);padding:10px;font-size:11px;bottom:112px;left:10px}.universe-navigator .atlas-search{display:none}.atlas-details{max-height:22vh}.atlas-scale{font-size:10px}}.mobile-lab-nav,.mobile-panel-scrim{display:none}html[data-capture=scene] .laboratory{justify-content:center;align-items:center;display:flex}html[data-capture=scene] .laboratory .center-panel{flex:0 auto;position:relative;inset:auto}.mobile-touch-hint,.touch-camera-tool,.touch-mode-toggle,.mobile-lab-link{display:none}@media (width<=900px){html,body,#root{height:100%;overflow:hidden}.laboratory,.laboratory.left-collapsed,.laboratory.right-collapsed,.laboratory.left-collapsed.right-collapsed{grid-template-columns:minmax(0,1fr);grid-template-rows:46px minmax(0, 1fr) calc(64px + env(safe-area-inset-bottom,0px));height:100dvh;min-height:0;overflow:hidden}.topbar{gap:8px;min-width:0;height:46px;padding:0 10px}.topbar .brand,.topbar .brand-mark,.topbar .version-tag,.topbar .engine-status,.topbar>a.real-positions-toggle,.topbar .topbar-spacer{display:none}.topbar .real-positions-toggle{min-height:40px;margin-right:auto;font-size:12px}.file-actions{flex-shrink:0;margin:0}.file-actions button{width:42px;min-height:42px;padding:0}.file-actions span{display:none}.center-panel,.right-collapsed .center-panel{grid-area:2/1;min-height:0}.statusbar,.field-key,.axis-key{display:none}.viewport-heading{top:14px;left:14px;right:14px}.viewport-heading h1{margin-top:7px;font-size:21px}.viewport-heading p{max-width:calc(100% - 20px);font-size:10px}.viewport-tools{gap:5px;top:84px;right:12px}.viewport-tools button{width:40px;height:40px}.viewport-tools .touch-camera-tool{display:inline-flex}.mobile-touch-hint{text-align:center;pointer-events:none;color:#a2bbc9;font-size:10px;display:block;position:absolute;bottom:94px;left:12px;right:12px}.mobile-lab-link{min-height:44px;color:var(--accent);align-items:center;margin-bottom:8px;text-decoration:none;display:flex}.viewport-tools button[aria-label="Expand object panel"],.viewport-tools button[aria-label="Expand controls panel"]{display:none}.viewport-layer-toggles{gap:5px;top:46px}.viewport-tools .viewport-layer-toggle{width:auto;min-height:36px;font-size:11px}.playback{justify-content:center;gap:6px;width:calc(100% - 20px);max-width:420px;padding:8px;bottom:18px}.playback button{flex-shrink:0;width:40px;height:42px;min-height:42px;padding:0}.playback-divider{display:none}.clock{min-width:60px;margin-left:3px;overflow:hidden}.clock strong{min-width:0;font-size:12px}.toolbar-speed select{max-width:112px;min-height:38px;font-size:12px}.playback .play-status{display:none}.viewport-warning{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 20px);font-size:9px;bottom:0;left:10px;overflow:hidden}.mobile-lab-nav{padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);z-index:35;background:#101c2a;grid-area:3/1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.mobile-lab-nav button{background:0 0;border:0;flex-direction:column;gap:4px;min-height:52px;padding:5px 2px;font-size:11px;display:flex}.mobile-lab-nav button[aria-expanded=true],.mobile-lab-nav button[aria-pressed=true]{color:var(--accent);background:#1c3438}.mobile-panel-scrim{inset:0 0 calc(64px + env(safe-area-inset-bottom,0px));z-index:25;background:#0207119c;border:0;border-radius:0;display:block;position:fixed}.laboratory:not(.left-collapsed) .left-panel,.laboratory:not(.right-collapsed) .right-panel{top:10px;bottom:calc(74px + env(safe-area-inset-bottom,0px));z-index:30;border:1px solid #3a5269;border-radius:12px;width:min(370px,100% - 20px);height:auto;max-height:none;display:flex;position:fixed;left:auto;right:10px;overflow:hidden;box-shadow:0 15px 60px #0009}.laboratory:not(.left-collapsed) .left-panel{left:10px;right:auto;overflow-y:auto}.panel-heading{min-height:52px}.panel-heading button{min-width:42px;min-height:42px}.right-panel .tabs{flex-wrap:wrap;flex-shrink:0}.right-panel .tabs button{flex:1 0 28%;min-height:42px}.inspector-content{overscroll-behavior:contain;min-height:0;padding:0 16px 20px;overflow-y:auto}.left-panel .scenario-picker select,.left-panel .add-object select{min-height:44px;font-size:16px}.left-panel .object-select,.left-panel .object-actions button{min-height:44px}.right-panel input:not([type=checkbox]):not([type=range]),.right-panel select{min-height:40px;font-size:16px}.right-panel button{min-height:40px}.body-label{height:36px;min-height:36px;padding:8px 10px}.simulation-fullscreen .mobile-lab-nav,.simulation-fullscreen .mobile-panel-scrim{display:none}.simulation-fullscreen .viewport-tools{top:12px}}@media (width<=370px){.playback{gap:3px;padding:6px}.playback button{width:36px}.toolbar-speed select{max-width:98px;font-size:11px}.clock{min-width:49px}}@media (width<=900px) and (height<=500px){.laboratory,.laboratory.left-collapsed,.laboratory.right-collapsed,.laboratory.left-collapsed.right-collapsed{grid-template-rows:40px minmax(0,1fr) 50px}.topbar{height:40px}.mobile-lab-nav{padding-block:0}.mobile-lab-nav button{flex-direction:row;min-height:48px}.viewport-heading p,.viewport-heading .eyebrow,.mobile-touch-hint{display:none}.viewport-heading h1{margin:0;font-size:17px}.viewport-tools{top:8px}.viewport-layer-toggles{top:44px}.playback{width:auto;min-height:50px;bottom:8px}.laboratory:not(.left-collapsed) .left-panel,.laboratory:not(.right-collapsed) .right-panel{bottom:60px}}@media (width>=901px) and (pointer:coarse){.viewport-tools .touch-mode-toggle,.viewport-tools .touch-camera-tool{min-width:44px;min-height:44px;display:inline-flex}}.moon-sky{color:#dcebf5;min-height:100vh;font-family:var(--font-dm-sans), sans-serif;background:#09121fb8;padding:32px clamp(18px,4vw,65px)}.moon-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.moon-heading h1{letter-spacing:-.04em;margin:10px 0;font-size:clamp(28px,3.8vw,48px)}.moon-heading p,.moon-observer p,.moon-source{color:#97adbf;font-size:13px;line-height:1.65}.moon-eyebrow{letter-spacing:.2em;color:#80ddce;font-size:11px}.moon-sky a{color:#91dbec}.moon-observer{background:#111f2c;border:1px solid #2b4050;border-radius:14px;margin:24px 0;padding:22px}.moon-observer button.moon-location-action{color:#071b21;background:#a1e8d6;border:1px solid #bceee2;font-weight:700;box-shadow:0 0 24px #75d8c325}.moon-location-start{border-bottom:1px solid #2b4050;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding-bottom:20px;display:flex}.moon-location-start p{margin:6px 0 0}@media (width<=600px){.moon-location-start{flex-direction:column;align-items:stretch;gap:14px}}.moon-observer button.moon-location-action:hover{background:#c0f4e8}.moon-observer button.moon-location-action:focus-visible{outline-offset:4px;outline:3px solid #fff}.moon-observer form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.moon-observer label{flex-direction:column;flex:135px;gap:7px;font-size:12px;display:flex}.moon-observer input{box-sizing:border-box;color:#dcebf5;background:#091523;border:1px solid #395364;border-radius:7px;width:100%;min-width:0;padding:12px}.moon-observer select{color:#dcebf5;background:#091523;border:1px solid #395364;border-radius:7px;width:100%;min-width:0;padding:12px}.moon-city-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.moon-city-picker{border-bottom:1px solid #2b4050;margin-bottom:20px;padding-bottom:14px}.moon-city-picker p{margin:0 0 10px}.moon-city-help{margin-top:10px!important}.moon-views{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:stretch;gap:20px;display:grid}.moon-view-card{background:#0b1927;border:1px solid #2b4050;border-radius:16px;min-width:0;padding:20px}.moon-view-card h2{margin:0 0 8px;font-size:20px}.moon-view-card p{color:#97adbf;font-size:12px;line-height:1.6}.moon-orbit-view svg{width:100%;display:block}.moon-orbit-view svg text{fill:#b6d2e5;font-size:12px}.moon-orbit-readout{text-align:center;grid-template-columns:1fr 1fr;gap:6px 10px;display:grid}.moon-orbit-readout strong{color:#b8e7f6;font-size:18px}.moon-orbit-readout span{color:#97adbf;grid-row:2;font-size:11px}.moon-phase-preview{align-items:center;gap:18px;margin-bottom:15px;display:flex}.moon-disc{flex-shrink:0;max-width:100%;display:block}.moon-phase-preview .moon-disc{width:180px!important;height:180px!important}@media (width<=1050px){.moon-views{grid-template-columns:minmax(0,1fr)}.moon-orbit-view svg{max-width:560px;margin:auto}}@media (width<=600px){.moon-city-fields{grid-template-columns:minmax(0,1fr)}.moon-phase-preview{text-align:center;flex-direction:column}.moon-view-card{padding:14px}}.moon-sky button{color:#ddf5f4;cursor:pointer;font:inherit;background:#183b45;border:1px solid #457080;border-radius:7px;padding:12px;font-size:12px}.moon-sky button:disabled{opacity:.5;cursor:wait}.moon-clock,.moon-chart-controls{flex-wrap:wrap;align-items:center;gap:18px;margin:20px 0;font-size:13px;display:flex}.moon-live{color:#91e5ca}.moon-clock time{font-variant-numeric:tabular-nums;letter-spacing:.03em}.moon-chart-controls{color:#9db9cc}.moon-chart-controls label{align-items:center;gap:7px;display:flex}.moon-chart-controls span{font-size:11px}.moon-chart{border:1px solid #2b4050;border-radius:14px;padding:22px 0;overflow:hidden}.moon-chart svg{width:100%;min-height:230px;display:block}.moon-chart text{fill:#b5ccda;font:12px sans-serif}.moon-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-top:22px;display:grid}.moon-metrics div{background:#111f2c;border:1px solid #2b4050;border-radius:12px;padding:17px}.moon-metrics span{color:#97adbf;margin-bottom:12px;font-size:11px;display:block}.moon-metrics strong{font-variant-numeric:tabular-nums;font-size:clamp(14px,1.5vw,21px)}.moon-error{color:#ffc3a7;background:#392723;border-radius:8px;padding:12px}.moon-source{margin-top:25px}.moon-forecast{color:#8ec9f4;font-size:13px}@media (width<=700px){.moon-heading{flex-direction:column;align-items:start}.moon-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.moon-clock{gap:9px}.moon-observer{padding:15px}.moon-chart text{font-size:16px}.moon-chart-controls span{width:100%}}
