:root{font-family:Segoe UI,sans-serif;color:#e9f1f8;background:#101822;font-synthesis:none;--bg: #101822;--panel: #182433;--panel-deep: #121d29;--text: #e9f1f8;--muted: #91a5b8;--accent: #93ccef;--line: #304254;--warning: #e8c38a;--scroll-thumb: #52697e;--scroll-track: #121d29;--scroll-hover: #7894ac;--scroll-active: #93ccef;--radius: 6px;--font-body: "Segoe UI", sans-serif;--font-display: Georgia, serif;--font-data: Consolas, monospace;--space: 8px;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}*{box-sizing:border-box;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--scroll-track)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--scroll-track);border-radius:5px}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}*::-webkit-scrollbar-thumb:active{background:var(--scroll-active)}body{margin:0}button,input,select{font:inherit}button,select{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:36px;padding:6px 11px}button,select,input[type=range],summary,input[type=checkbox]{cursor:pointer}button:hover,select:hover{background:#253a4c;border-color:#6a8da6}button:active{background:#365269}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,#viewport:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}button.primary:hover{background:#b5e1fa}button.primary:active{background:#78b6db}button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#253b4d}input[type=range]{width:100%;height:20px;accent-color:var(--accent);margin:0}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}select{max-width:100%;color-scheme:dark}option{background:var(--panel);color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.observatory{height:100dvh;min-height:550px;display:grid;grid-template-columns:minmax(0,1fr) 298px;grid-template-rows:70px minmax(0,1fr) 139px;position:relative;overflow:hidden}.topbar{grid-column:1/-1;display:flex;align-items:center;gap:22px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--bg);z-index:4}.identity{display:flex;align-items:center;gap:12px}.identity-mark{font:39px var(--font-display);color:var(--accent);line-height:1}.identity h1{font:25px/1 var(--font-display);font-weight:400;margin:0;letter-spacing:.02em}.identity p{font-size:11px;margin:5px 0 0;color:var(--muted)}.header-meta{margin-left:auto;display:flex;gap:9px;align-items:center;font-size:12px;color:var(--muted)}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.metric{margin-left:15px;font-family:var(--font-data);font-size:11px}.settings-toggle{display:flex;gap:20px;align-items:center}.scene{position:relative;min-height:0;overflow:hidden;background:#182331}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}.scene-heading{position:absolute;top:23px;left:26px;pointer-events:none;text-shadow:0 1px 7px #101822}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:600;color:var(--muted)}.mono{font-family:var(--font-data);font-size:11px;color:var(--muted)}.scene-heading .mono{margin-left:12px}.scene-heading p{font-size:12px;margin:8px 0}.camera-controls{flex-wrap:wrap;max-width:calc(100% - 36px);position:absolute;top:21px;right:22px;display:flex;gap:4px}.camera-controls button{background:#121d29e8;font-size:11px;min-height:32px;padding:5px 9px}.observation{position:absolute;bottom:59px;left:24px;width:300px;padding:14px 15px;background:#121d29ed;border:1px solid #4c64757d;border-radius:var(--radius);box-shadow:0 6px 24px #0002}.observation-top{display:flex;justify-content:space-between;align-items:center}.bolt-picker{display:flex;gap:6px;margin-top:11px}.bolt-picker select{min-width:0;flex:1;font-size:12px}.bolt-picker button{font-size:12px}.observation p{font-size:12px;min-height:16px;margin:10px 0;color:var(--muted)}.stage-track{display:flex;gap:4px;height:2px}.stage-track span{background:var(--line);flex:1}.stage-track span:first-child{background:var(--accent)}.scene-help{position:absolute;bottom:10px;left:26px;font-size:10px;line-height:1.7;color:#a7bac9;pointer-events:none;margin:0;text-shadow:0 1px 5px #101822}.scene-help span{color:var(--muted)}.settings-panel{grid-column:2;grid-row:2/4;display:flex;flex-direction:column;min-height:0;background:var(--panel-deep);border-left:1px solid var(--line);z-index:3}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 18px 13px}.panel-heading h2{font-size:18px;font-weight:500;margin:5px 0 0}.icon-button{font-size:22px;padding:0;min-width:32px;min-height:32px;background:transparent;border-color:transparent}.settings-scroll{overflow-y:auto;min-height:0;padding:0 18px;scrollbar-gutter:stable}.presets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:0 0 16px}.presets button{font-size:10px;padding:5px 3px;min-height:30px}.setting-group{border-top:1px solid var(--line);padding:0}.setting-group summary{font-size:12px;font-weight:600;padding:13px 0;list-style-position:inside}.setting-fields{display:flex;flex-direction:column;gap:11px;padding-bottom:16px}.range-field{display:grid;grid-template-columns:1fr auto;align-items:center;font-size:11px;gap:5px;color:var(--muted)}.range-field output{font:11px var(--font-data);color:var(--text)}.range-field input{grid-column:1/-1;height:15px}.render-settings{border-top:1px solid var(--line);padding:14px 0 20px}.select-field{display:flex;align-items:center;justify-content:space-between;font-size:12px}.select-field select{min-height:32px;font-size:11px}.checkbox-field{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:15px}.field-help{font-size:10px;color:var(--muted);line-height:1.6;margin-bottom:0}.panel-footer{border-top:1px solid var(--line);padding:12px 18px 16px;margin-top:auto;background:var(--panel-deep)}.panel-footer p{font-size:10px;margin:0 0 10px;color:var(--muted);min-height:14px}.panel-footer p.dirty{color:var(--warning)}.panel-footer button{display:flex;justify-content:space-between;width:100%;font-size:12px}.panel-closed{grid-template-columns:minmax(0,1fr) 0}.panel-closed .settings-panel{visibility:hidden}.transport{grid-column:1;grid-row:3;min-width:0;background:var(--bg);padding:15px 25px 12px;border-top:1px solid var(--line);z-index:2}.transport-row{display:flex;gap:16px;align-items:center}.playback-controls{display:flex;gap:5px}.playback-controls button{font-size:11px;white-space:nowrap;padding:6px 9px}.play-button{width:91px}.time-display{display:flex;align-items:baseline;gap:7px;white-space:nowrap;font:11px var(--font-data);color:var(--muted)}.time-display strong{font-size:20px;color:var(--text);font-weight:400;min-width:61px;text-align:right}.speed-field{display:flex;align-items:center;gap:9px;font-size:11px;margin-left:auto;white-space:nowrap}.speed-field input{width:84px}.speed-field output{font:11px var(--font-data);min-width:37px}.mode-field select{font-size:11px;min-height:33px;padding-right:4px}.timeline{margin-top:8px;position:relative;padding-top:18px}.event-marks{height:18px;position:absolute;left:8px;right:8px;top:0}.event-mark{position:absolute;min-width:10px;min-height:18px;width:10px;height:18px;padding:0;border:0;border-radius:2px;transform:translate(-50%);background:transparent}.event-mark:after{content:"";position:absolute;width:2px;left:4px;top:5px;height:9px;background:#779eb8}.event-mark.cloud:after{background:#b2a6d0;height:6px;top:8px}.event-mark:hover{background:#93ccef29}.event-mark.selected:after{background:var(--text);width:4px;left:3px;height:15px;top:1px}.timeline input{display:block;height:16px}.timeline-ticks{display:flex;justify-content:space-between;color:var(--muted);font:10px var(--font-data);padding:4px 3px 0}@media(min-width:1600px){.observatory{grid-template-columns:minmax(0,1fr) 320px}.panel-closed{grid-template-columns:minmax(0,1fr) 0}.settings-scroll{padding-left:23px;padding-right:23px}}@media(max-width:1100px){.header-meta{gap:6px}.metric{display:none}.topbar{padding:0 18px}.transport{padding-left:16px;padding-right:16px}.transport-row{gap:9px}.speed-field>span{display:none}.speed-field input{width:62px}.camera-controls{top:74px;left:24px;right:auto}.scene-heading{top:20px}.time-display strong{font-size:17px;min-width:51px}.mode-field select{max-width:127px}}@media(max-width:800px){.observatory{grid-template-columns:minmax(0,1fr);grid-template-rows:65px minmax(0,1fr) 163px;min-height:540px}.settings-panel{position:absolute;grid-area:1 / 1 / -1 / -1;right:0;top:65px;bottom:163px;width:298px;box-shadow:-15px 0 35px #0005;max-width:calc(100% - 30px)}.panel-closed{grid-template-columns:minmax(0,1fr)}.transport{grid-column:1;padding-top:12px}.transport-row{flex-wrap:wrap;gap:8px 12px}.playback-controls{order:0}.time-display{margin-left:auto;order:1}.speed-field{order:2;margin:0;flex:1}.speed-field>span{display:inline}.speed-field input{width:100%;max-width:150px}.mode-field{order:3}.mode-field select{max-width:none}.timeline{margin-top:6px;padding-top:15px}.topbar{gap:10px;padding:0 15px}.header-meta{display:none}.settings-toggle{margin-left:auto;font-size:11px;gap:12px}.identity h1{font-size:23px}.identity p{font-size:10px}.scene-heading{left:18px;top:18px}.scene-heading .mono{font-size:10px}.camera-controls{left:17px;top:73px}.observation{left:17px;bottom:52px;width:280px;padding:11px}.scene-help{font-size:9px;left:18px;bottom:9px}.observation p{margin-bottom:8px}.panel-heading{padding-top:14px}}@media(max-height:650px)and (min-width:801px){.observation{bottom:51px}.scene-help{font-size:9px}.scene-heading,.camera-controls{top:15px}.panel-heading{padding-top:12px}.setting-fields{gap:8px}.observatory{grid-template-rows:62px minmax(0,1fr) 130px;min-height:480px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.stage-track span:first-child{background:var(--line)}.stage-track span.current{background:var(--accent)}.render-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 40px));padding:24px;background:var(--panel-deep);border:1px solid var(--line);border-radius:var(--radius);z-index:2}.render-error h2{font-size:19px;font-weight:500;margin:0 0 12px}.render-error p{font-size:13px;line-height:1.6;color:var(--muted)}.render-error button{margin-top:5px}@media(forced-colors:active){*{scrollbar-color:auto}button,select,.observation,.settings-panel{border:1px solid CanvasText}.event-mark:after{background:CanvasText}}.language-field{display:flex;align-items:center;flex-shrink:0}.camera-controls{flex-wrap:wrap;max-width:calc(100% - 44px)}#flight-toggle{display:flex;align-items:center;gap:7px}#flight-toggle kbd{font:10px var(--font-data);color:var(--muted);border:1px solid var(--line);padding:0 3px;border-radius:3px}.flight-hud{position:absolute;right:22px;bottom:19px;width:330px;padding:13px 15px;border:1px solid #4c64757d;background:#121d29ed;border-radius:var(--radius);box-shadow:0 6px 24px #0002}.flight-hud[hidden],.flight-crosshair[hidden]{display:none}.flight-heading{display:flex;flex-wrap:wrap;align-items:center;gap:6px;justify-content:space-between;margin-bottom:12px}#flight-mouse-status{font-size:10px;color:var(--muted)}.flight-speed-field{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;font-size:11px}.flight-speed-field input{grid-column:1/-1}.flight-speed-field output{font:11px var(--font-data);color:var(--accent)}.flight-stage{font-size:11px;margin:9px 0}.flight-stage>span:first-child{color:var(--muted)}.flight-help{font-size:10px;color:var(--text);line-height:1.7;margin:0}.flight-focus-help{font-size:10px;color:var(--muted);line-height:1.5;margin:7px 0 0}.flight-enabled .scene-help{display:none}.flight-crosshair{position:absolute;left:50%;top:50%;width:13px;height:13px;transform:translate(-50%,-50%);pointer-events:none;opacity:.75;filter:drop-shadow(0 1px 1px #101822)}.flight-crosshair:before,.flight-crosshair:after{content:"";position:absolute;background:var(--text)}.flight-crosshair:before{width:1px;height:13px;left:6px;top:0}.flight-crosshair:after{width:13px;height:1px;top:6px;left:0}@media(max-width:1100px){.flight-enabled .observation{display:none}}@media(max-width:800px){.flight-hud{left:17px;right:17px;bottom:14px;width:auto;padding:12px}.flight-heading{margin-bottom:9px}.camera-controls{gap:4px;max-width:calc(100% - 34px)}}@media(max-height:650px){.flight-focus-help{display:none}.flight-hud{padding:10px 12px}}.language-field select{min-width:55px;min-height:36px;font-size:11px;padding:6px}@media(max-width:800px){.topbar{gap:8px}.identity{gap:8px;min-width:0}.identity p{white-space:nowrap}.language-field{margin-left:auto}.settings-toggle{margin-left:0;gap:8px;padding:6px 8px}}@media(max-width:390px){.topbar{padding:0 10px;gap:6px}.identity h1{font-size:21px}.identity p{font-size:9px}.identity-mark{font-size:32px}.settings-toggle{gap:5px;padding:6px}}.audio-settings{display:grid;gap:10px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}.audio-settings button{justify-self:start}.audio-settings .field-help{margin:0}.analytics-settings{display:grid;gap:8px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}.analytics-settings button{justify-self:start}.analytics-settings p{margin:0}.analytics-consent{position:absolute;right:22px;bottom:70px;width:min(390px,calc(100% - 44px));padding:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-deep);box-shadow:0 6px 24px #0003;z-index:5}.analytics-consent[hidden]{display:none}.analytics-consent strong{font-size:12px}.analytics-consent p{margin:9px 0;font-size:11px;line-height:1.6;color:var(--text)}.analytics-consent a{font-size:10px;color:var(--accent)}.analytics-consent-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.analytics-consent-actions button{flex:1}@media(max-width:800px){.analytics-consent{right:17px;bottom:190px;width:calc(100% - 34px)}}
