:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--chalk:#f7f8f4;--white:#fff;--mist:#e6e8e0;--stone:#68705f;--charcoal:#262c24;--olive:#586b37;--pale-olive:#edf1e5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--surface:var(--chalk);--panel:var(--white);--text:var(--charcoal);--muted:var(--stone);--border:var(--mist);--accent:var(--olive);--selected:var(--pale-olive);--control-bg:var(--surface);--shadow:0 8px 32px #0002,0 2px 6px #0002;color:var(--text);background:var(--surface);font-synthesis:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:wait}button,select,input{touch-action:manipulation}button{background:0 0;border:0;transition:background .14s,color .14s}button:hover{background:var(--selected)}button:focus-visible,input:focus-visible,a:focus-visible,#viewport:focus-visible{outline-offset:3px;outline:3px solid #8ca45d}svg{stroke-width:1.65px;flex-shrink:0;width:17px;height:17px}button svg{pointer-events:none}h1,h2,h3,p{margin:0}h1,h2{letter-spacing:-.035em}h3{font-size:13px;font-weight:600}#app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);height:68px;padding:0 var(--space-6);background:var(--panel);z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.identity,.topbar-right{align-items:center;gap:var(--space-3);display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:var(--radius-sm);place-items:center;width:34px;height:34px;display:grid}.brand-mark svg{width:23px;height:23px}h1{font-size:19px;font-weight:650}h1 span{color:#bac0b2;margin:0 10px;font-weight:300}h1 small{letter-spacing:0;color:var(--muted);font-size:13px;font-weight:400}.reference-tag{color:var(--muted);align-items:center;gap:8px;margin-right:12px;font-size:12px;display:flex}.icon-button{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.outlined{border:1px solid var(--border)}.workspace{flex:1;min-height:0;display:flex}.inspector{background:var(--panel);border-right:1px solid var(--border);scrollbar-width:thin;z-index:4;flex-direction:column;flex-shrink:0;width:294px;display:flex;overflow-y:auto}.intro{padding:27px 24px 25px}.eyebrow{letter-spacing:.15em;color:var(--muted);font-size:10px;font-weight:600}.intro h2{margin-top:9px;font-size:22px;font-weight:550;line-height:1.3}.intro p{color:var(--muted);margin-top:6px;font-size:12px}.control-section{border-top:1px solid var(--border);padding:20px 24px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.section-heading>svg{width:15px;color:var(--muted)}.status{color:var(--accent);align-items:center;gap:6px;font-size:11px;display:flex}.status>span,.status-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.status.paused{color:var(--muted)}.readouts{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:19px;display:grid}.readouts>div{flex-direction:column;gap:5px;display:flex}.readouts strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:500}.readouts strong small{color:var(--muted);letter-spacing:0;margin-left:4px;font-size:10px;font-weight:400}.readouts span{color:var(--muted);font-size:10px;line-height:1.5}.playback{gap:8px;display:flex}.primary-button{background:var(--accent);color:#fff;border-radius:var(--radius-sm);flex:1;justify-content:center;align-items:center;gap:10px;min-height:44px;font-size:12px;font-weight:500;display:flex}.primary-button:hover{background:#45562b}.field{margin-top:22px}.field label{font-size:12px}.field-heading{justify-content:space-between;align-items:center;display:flex}.field output{color:var(--muted);font-size:11px}input[type=range]{appearance:none;background:linear-gradient(to right,var(--accent) 41%,var(--border) 41%);cursor:pointer;border-radius:4px;width:100%;height:3px;margin:20px 0 10px;display:block}input[type=range]::-webkit-slider-thumb{appearance:none;border:3px solid var(--accent);background:var(--panel);width:13px;height:13px;box-shadow:0 0 0 3px var(--panel);border-radius:50%}input[type=range]::-moz-range-thumb{border:3px solid var(--accent);background:#fff;border-radius:50%;width:8px;height:8px}.range-labels{color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.segmented{background:var(--control-bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:10px;padding:3px;display:flex}.segmented button{font-variant-numeric:tabular-nums;border-radius:4px;flex:1;min-height:36px;font-size:12px}.segmented button[aria-pressed=true]{color:var(--accent);background:#fff;font-weight:600;box-shadow:0 1px 3px #0001,0 0 0 1px #00000008}.quiet-label{color:var(--muted);font-size:10px}.view-presets{grid-template-columns:1fr 1fr;gap:7px;display:grid}.view-presets button{border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:8px;min-height:42px;padding:8px;font-size:10px;display:flex}.view-presets button svg{width:15px}.view-presets button[aria-pressed=true]{background:var(--selected);color:#45592d;border-color:#bbc9a6}.text-button{align-items:center;gap:10px;width:100%;min-height:44px;margin-top:8px;padding:0 4px;font-size:11px;display:flex}.text-button svg:last-child{width:14px;color:var(--muted);margin-left:auto}.text-button.active{color:var(--accent);background:var(--selected)}.switch-row{justify-content:space-between;align-items:center;min-height:34px;font-size:12px;display:flex}.switch-row label{cursor:pointer;flex:1;padding:10px 0}.switch-row input{appearance:none;cursor:pointer;background:#dce0d6;border-radius:20px;width:28px;height:16px;margin:0;position:relative}.switch-row input:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0002}.switch-row input:checked{background:var(--accent)}.switch-row input:checked:after{transform:translate(12px)}.switch-row input:before{content:"";position:absolute;inset:-14px -8px}.scene-section .section-heading{margin-bottom:12px}.inline-note{color:var(--muted);margin-left:3px;font-size:10px}.reference-button{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;align-items:center;gap:10px;width:100%;margin-top:18px;padding:7px;display:flex}.reference-button img{object-fit:cover;border-radius:3px;width:51px;height:40px}.reference-button span{font-size:11px}.reference-button small{color:var(--muted);margin-top:5px;font-size:9px;display:block}.reference-button svg{width:14px;margin-left:auto;margin-right:3px}.inspector-footer{border-top:1px solid var(--border);color:var(--muted);gap:9px;margin-top:auto;padding:20px 24px;font-size:10px;line-height:1.7;display:flex}.inspector-footer svg{width:14px;margin-top:2px}.inspector-footer span{font-size:9px}#viewport{outline-offset:-3px;background:#242b25;flex:1;min-width:0;position:relative;overflow:hidden}#scene,#scene canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#scene canvas{cursor:grab}#scene canvas:active{cursor:grabbing}.scene-topline{pointer-events:none;color:#fff;justify-content:space-between;align-items:center;display:flex;position:absolute;top:24px;left:24px;right:24px}.scene-badge{background:#283129eb;border:1px solid #ffffff20;border-radius:5px;align-items:center;gap:8px;padding:10px 13px;font-size:11px;display:flex;box-shadow:0 2px 10px #0001}.live-dot{background:#c8dfa5;border-radius:50%;width:5px;height:5px}.scene-caption{letter-spacing:.07em;text-shadow:0 1px 4px #000;font-size:10px}.camera-tools{background:var(--panel);border-radius:var(--radius-md);box-shadow:var(--shadow);flex-direction:column;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.camera-tools .icon-button{width:38px;height:41px}.camera-tools>span{background:var(--border);width:22px;height:1px;margin:3px 0}.scene-bottom{justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;bottom:20px;left:24px;right:24px}#camera-help{color:#e8ece3;background:#242b25e8;border:1px solid #ffffff18;border-radius:5px;gap:18px;padding:12px 14px;font-size:10px;display:flex}#camera-help span{align-items:center;gap:7px;display:flex}#camera-help svg{width:13px;height:13px}.snapshot-button{background:var(--panel);border-radius:var(--radius-sm);height:39px;box-shadow:var(--shadow);align-items:center;gap:8px;padding:0 14px;font-size:11px;display:flex}#compass{color:#fff;border-radius:6px;flex-direction:column;align-items:center;gap:1px;width:50px;height:68px;display:flex;position:absolute;top:85px;right:22px}#compass:hover{background:#ffffff12}#compass span{letter-spacing:.08em;text-shadow:0 1px 4px #000;font-size:8px;font-weight:600}#compass svg{filter:drop-shadow(0 2px 3px #0006);width:42px;height:42px}.needle-top{fill:#f4f6ef}.needle-bottom{fill:#8f9c87}#labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.place-label{white-space:nowrap;color:#30392a;letter-spacing:.01em;will-change:transform;background:#f8faf2f0;border:1px solid #fff8;border-radius:4px;align-items:center;gap:8px;padding:7px 9px;font-size:10px;display:flex;position:absolute;top:0;left:0;box-shadow:0 2px 8px #0003}.place-label:before{content:"";border:1px solid var(--accent);border-radius:50%;width:4px;height:4px}.place-label:after{content:"";background:#f5f7ecaa;width:1px;height:18px;position:absolute;top:100%;left:12px}.statusbar{height:30px;color:var(--muted);border-top:1px solid var(--border);background:var(--panel);flex-shrink:0;align-items:center;gap:24px;padding:0 24px;font-size:10px;display:flex}.statusbar>span{align-items:center;gap:7px;display:flex}.statusbar .statusbar-right{gap:24px;margin-left:auto}#simulation-time,#fps{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.status-dot{color:var(--accent)}#loading{z-index:10;color:#f0f3e9;background:#242b25;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}#loading strong{font-size:16px;font-weight:500}#loading>span:last-child{color:#bec8b6;font-size:12px}.loader-ring{border:2px solid #ffffff20;border-top-color:#bfd99a;border-radius:50%;width:30px;height:30px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#loading.hidden{display:none}#toast{color:var(--text);box-shadow:var(--shadow);border-radius:var(--radius-sm);opacity:0;pointer-events:none;text-align:center;background:#f8faf2;max-width:90%;padding:12px 18px;font-size:12px;transition:opacity .15s;position:absolute;bottom:85px;left:50%;transform:translate(-50%)}#toast.visible{opacity:1}dialog{border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);box-shadow:var(--shadow);background:var(--panel);max-width:min(1050px,94vw);padding:24px}dialog::backdrop{background:#151d18b8}dialog h2{font-size:23px;font-weight:550}.dialog-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;display:flex}.dialog-header .eyebrow{margin-bottom:6px;display:block}dialog>img{object-fit:contain;border-radius:4px;width:100%;max-height:70dvh;display:block}dialog p{color:var(--muted);margin-top:18px;font-size:13px;line-height:1.7}#about-dialog{max-width:550px}.keyboard-guide{border-top:1px solid var(--border);margin-top:24px;padding-top:18px}.keyboard-guide p{margin-top:12px}kbd{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:4px;min-width:22px;padding:3px 6px;font-family:inherit;display:inline-block}.skip-link{z-index:100;background:#fff;padding:12px;position:absolute;top:-100px;left:10px}.skip-link:focus{top:10px}.mobile-only{display:none}#viewport:fullscreen{width:100vw;height:100dvh}@media (height>=1000px){.control-section{padding-top:25px;padding-bottom:25px}.intro{padding-top:32px;padding-bottom:32px}}@media (height<=850px) and (width>=801px){.topbar{height:58px}.intro{padding-top:20px;padding-bottom:20px}.control-section{padding-top:16px;padding-bottom:16px}.section-heading{margin-bottom:14px}.field{margin-top:17px}.inspector-footer{padding-top:14px;padding-bottom:14px}}@media (width<=1100px){.inspector{width:272px}.control-section,.intro{padding-left:20px;padding-right:20px}#camera-help{gap:12px}#camera-help span:last-child,.scene-caption{display:none}}@media (width<=800px){.topbar{height:58px;padding:0 14px}.brand-mark{width:30px;height:30px}h1{font-size:17px}h1 span{margin:0 5px}h1 small{font-size:11px}.reference-tag{display:none}.topbar-right{gap:0}.mobile-only{display:flex}.inspector{width:280px;box-shadow:var(--shadow);transition:transform .18s;position:absolute;top:58px;bottom:30px;left:0;transform:translate(-100%)}.inspector.open{transform:translate(0)}.scene-topline{top:16px;left:16px;right:16px}.camera-tools{right:12px}.camera-tools .icon-button{width:36px;height:40px}#compass{top:70px;right:12px}.scene-bottom{gap:8px;bottom:14px;left:12px;right:12px}#camera-help{gap:10px;padding:11px 9px;font-size:9px}#camera-help span:nth-child(2){display:none}.snapshot-button{justify-content:center;width:40px;padding:0}.snapshot-button span{display:none}.statusbar{gap:14px;padding:0 14px}.statusbar-right>span:last-child{display:none}.place-label{padding:6px;font-size:8px}.intro{padding-top:20px;padding-bottom:20px}.control-section{padding-top:16px;padding-bottom:16px}dialog{padding:18px}dialog h2{font-size:19px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}[hidden]{display:none!important}#flight-hud{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);text-align:center;width:max-content;max-width:95%;padding:12px 14px;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}#flight-hud>span{color:var(--muted);font-size:11px}.flight-buttons{gap:5px;margin-top:8px;display:flex}.flight-buttons button{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:40px;height:40px;font-size:12px}.flight-buttons button:active{background:var(--selected)}#exit-flight{margin-left:7px;padding:0 12px}.text-button.active{background:var(--selected);color:var(--accent)}@media (width<=800px){#flight-hud{padding:10px;bottom:76px}#flight-hud>span{font-size:9px}.flight-buttons{gap:3px}.flight-buttons button{min-width:34px;height:42px}#exit-flight{margin-left:3px;padding:0 7px}}.flight-mode #camera-help{visibility:hidden}
