@charset "UTF-8";
:root{font-family:Geist,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17211f;background:#bfc9c4;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;--paper: rgba(248, 249, 245, .94);--paper-solid: #f8f9f5;--ink: #17211f;--muted: #5f6e69;--line: rgba(28, 51, 44, .22);--line-strong: rgba(28, 51, 44, .42);--forest: #205d4b;--forest-dark: #153d32;--mint: #bde4d0;--yellow: #f0c44d;--coral: #cf5e4b;--blue: #3c7794;--scenario-accent: #2f7896;--shadow: 0 14px 38px rgba(18, 32, 28, .18)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,input,output{font:inherit}button{letter-spacing:0}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #f0c44d;outline-offset:2px}.studio{position:relative;isolation:isolate;background:#c7d0cb}#scene{position:fixed;inset:0;z-index:0;display:block;width:100vw;height:100vh;cursor:grab;touch-action:none}#scene:active{cursor:grabbing}.skip-link{position:fixed;left:12px;top:-60px;z-index:30;padding:10px 14px;color:#fff;background:#153d32;border-radius:4px}.skip-link:focus{top:12px}.hud-surface{z-index:5;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:6px;box-shadow:var(--shadow);backdrop-filter:blur(14px) saturate(.95);-webkit-backdrop-filter:blur(14px) saturate(.95)}.topbar{position:fixed;top:max(10px,env(safe-area-inset-top));left:12px;right:12px;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.2fr) minmax(320px,1fr) auto;gap:10px;align-items:center;min-height:60px;padding:8px}.brand{display:flex;min-width:0;align-items:center;gap:9px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;flex:0 0 52px;width:52px;height:38px;place-items:center;color:#fff;background:var(--forest-dark);border-radius:4px;font-size:12px;font-weight:900}.brand>span:last-child,.brand strong,.brand small{display:block;min-width:0}.brand strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.brand small{margin-top:2px;overflow:hidden;color:var(--muted);font-size:9px;font-weight:700;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.segmented{display:grid;gap:3px;min-width:0;padding:3px;background:#213f3514;border:1px solid var(--line);border-radius:5px}.scenario-switcher,.view-switcher{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented button{min-width:0;height:34px;overflow:hidden;padding:0 8px;color:#50615b;background:transparent;border:0;border-radius:3px;cursor:pointer;font-size:10px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.scenario-switcher button,.view-switcher button{display:grid;grid-template-columns:16px minmax(0,auto);gap:6px;place-content:center;align-items:center}.scenario-switcher button{height:40px}.segmented button svg{width:15px;height:15px;stroke-width:1.8}.scenario-switcher button span,.view-switcher button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenario-switcher button b{margin-right:4px;color:currentColor;font-size:8px;opacity:1}.segmented button:hover{color:var(--ink);background:#ffffffb3}.segmented button[aria-pressed=true]{color:#fff;background:var(--scenario-accent)}.top-actions{display:flex;gap:4px;justify-content:end}.view-caption{position:fixed;left:12px;top:calc(max(10px,env(safe-area-inset-top)) + 78px);display:grid;gap:2px;max-width:min(460px,calc(100vw - 24px));padding:9px 11px;border-left:4px solid var(--scenario-accent)}.view-caption[hidden]{display:none}.view-caption b{font-size:11px}.view-caption span{color:var(--muted);font-size:9px;line-height:1.35}.icon-button,.play-button,.focus-component,.guide-start{display:inline-grid;place-items:center;color:var(--ink);background:#ffffffb8;border:1px solid var(--line-strong);border-radius:4px;cursor:pointer}.icon-button{width:38px;height:38px;padding:0}.icon-button.compact{flex:0 0 32px;width:32px;height:32px}.icon-button svg,.play-button svg,.focus-component svg,.model-boundary svg,.restore-hud svg{width:17px;height:17px;stroke-width:1.8}.icon-button:hover,.focus-component:hover{color:#fff;background:var(--forest);border-color:var(--forest)}.control-panel,.detail-panel{position:fixed;top:calc(max(10px,env(safe-area-inset-top)) + 72px);bottom:174px;width:310px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px}.control-panel{left:12px;transition:transform .18s ease,opacity .18s ease}.detail-panel{right:12px;width:328px}.studio[data-controls=closed] .control-panel{visibility:hidden;opacity:0;pointer-events:none;transform:translate(-24px)}.panel-header{display:flex;align-items:start;justify-content:space-between;gap:10px}.eyebrow{display:block;color:var(--scenario-accent);font-size:8px;font-weight:900;text-transform:uppercase}.panel-header h1,.panel-header h2{margin:3px 0 0;font-size:19px;line-height:1.08}.panel-purpose{margin:10px 0 0;color:#4f605a;font-size:11px;line-height:1.45}.decision-brief{display:grid;gap:4px;margin-top:11px;padding:9px 10px;background:#ffffff9e;border-left:3px solid var(--scenario-accent)}.decision-brief span{color:#6b7773;font-size:8px;font-weight:900;text-transform:uppercase}.decision-brief strong{color:#2d3d38;font-size:10px;line-height:1.35}.control-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.section-header{display:flex;min-height:22px;align-items:center;justify-content:space-between;gap:10px}.section-header h2{margin:0;font-size:10px;text-transform:uppercase}.section-header output,.section-header span{color:var(--forest);font-size:9px;font-weight:900;text-transform:uppercase}.parameter-controls{display:grid;gap:12px;margin-top:9px}.parameter-row{display:grid;gap:5px}.parameter-row>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.parameter-row label{color:#35443f;font-size:11px;font-weight:760}.parameter-row output{color:var(--forest-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:800}.parameter-row input[type=range],.time-control input[type=range]{width:100%;margin:0;accent-color:var(--scenario-accent)}.parameter-row small{color:#6d7a76;font-size:9px}.switch-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:10px;align-items:center;min-height:54px;margin-top:8px;padding:8px 9px;background:#205d4b14;border:1px solid rgba(32,93,75,.24);border-radius:4px;cursor:pointer}.switch-row b,.switch-row small{display:block}.switch-row b{font-size:11px}.switch-row small{margin-top:3px;color:#61716b;font-size:9px;line-height:1.25}.switch-row input{position:absolute;opacity:0;pointer-events:none}.switch-row i{position:relative;width:38px;height:22px;background:#8c9995;border-radius:11px}.switch-row i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s ease}.switch-row input:checked+i{background:var(--scenario-accent)}.switch-row input:checked+i:after{transform:translate(16px)}.layer-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px}.layer-check{display:flex;min-width:0;min-height:34px;align-items:center;gap:6px;padding:6px 7px;color:#475852;background:#ffffffa3;border:1px solid var(--line);border-radius:3px;cursor:pointer;font-size:9px;font-weight:800}.layer-check input{width:14px;height:14px;margin:0;accent-color:var(--forest)}.layer-check span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:7px}.camera-presets button{min-width:0;min-height:32px;overflow:hidden;padding:5px;color:#455650;background:#ffffffb3;border:1px solid var(--line);border-radius:3px;cursor:pointer;font-size:9px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.camera-presets button:hover,.camera-presets button[aria-pressed=true]{color:#fff;background:var(--scenario-accent);border-color:var(--scenario-accent)}.model-boundary{display:grid;grid-template-columns:18px 1fr;gap:7px;align-items:start;margin-top:14px;padding:9px;color:#563d17;background:#f0c44d2e;border-left:3px solid var(--yellow);font-size:9px;line-height:1.35}.model-boundary b{font-weight:900}.component-specs{display:grid;gap:8px;margin-top:14px}.component-spec{display:grid;grid-template-columns:70px 1fr;gap:10px;padding-top:8px;border-top:1px solid var(--line)}.component-spec b{color:var(--forest);font-size:9px;text-transform:uppercase}.component-spec span{color:#43534e;font-size:10px;line-height:1.4}.focus-component{grid-template-columns:18px auto;gap:8px;width:100%;min-height:38px;margin-top:14px;padding:0 12px;font-size:10px;font-weight:900}.flow-panel{position:fixed;left:334px;right:12px;bottom:94px;display:grid;grid-template-columns:minmax(250px,.78fr) minmax(480px,1.4fr);gap:14px;align-items:center;min-height:70px;padding:9px 10px;transition:left .18s ease}.studio[data-controls=closed] .flow-panel{left:12px}.flow-copy{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center;min-width:0}.flow-copy>span{display:grid;width:42px;height:42px;place-items:center;color:#fff;background:var(--scenario-accent);border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;font-weight:900}.flow-copy h2{margin:0;font-size:12px}.flow-copy p{display:-webkit-box;margin:3px 0 0;overflow:hidden;color:#596963;font-size:9px;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}.flow-rail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;min-width:0;margin:0;padding:0;list-style:none}.flow-rail button{position:relative;display:grid;width:100%;min-width:0;height:44px;place-items:center;overflow:hidden;padding:4px 3px 3px;color:#64736e;background:#24443912;border:1px solid var(--line);border-radius:3px;cursor:pointer;font-size:8px;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.flow-rail button:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#9aa6a2}.flow-rail button[data-state=complete]:before{background:var(--mint)}.flow-rail button[data-state=complete]:after{content:"✓";position:absolute;top:4px;right:4px;color:var(--mint);font-size:8px;line-height:1}.flow-rail button[aria-current=step]{color:#fff;background:var(--scenario-accent);border-color:var(--scenario-accent)}.flow-rail button[aria-current=step]:before{background:var(--yellow)}.timeline-panel{position:fixed;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:max-content minmax(280px,1fr) minmax(330px,.8fr);gap:14px;align-items:center;min-height:72px;padding:8px 10px}.playback-controls{display:grid;grid-template-columns:38px 1fr 38px;gap:5px;align-items:center}.play-extra{font-style:normal}.play-button{min-width:142px;grid-template-columns:17px auto;gap:7px;height:38px;padding:0 13px;color:#fff;background:var(--scenario-accent);border-color:var(--scenario-accent);font-size:10px;font-weight:900}.play-button:hover{background:var(--forest-dark)}.time-control{min-width:0}.time-control>div:first-child,.time-scale{display:flex;align-items:center;justify-content:space-between;gap:8px}.time-control>div:first-child{margin-bottom:3px;font-size:9px;font-weight:900;text-transform:uppercase}.time-control output{color:var(--forest);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.time-scale{margin-top:1px;color:#76827e;font-size:7px;font-weight:800}.metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.metric{min-width:0;padding:6px 7px;background:#23473a12;border-left:3px solid #82918b}.metric[data-tone=warning]{border-left-color:var(--yellow)}.metric[data-tone=risk]{border-left-color:var(--coral)}.metric[data-tone=good]{border-left-color:var(--forest)}.metric span,.metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric span{color:#6c7975;font-size:7px;font-weight:900;text-transform:uppercase}.metric strong{margin-top:3px;font-size:10px}.restore-hud{position:fixed;left:12px;top:12px;z-index:12;display:none;grid-template-columns:18px auto;gap:7px;align-items:center;min-height:38px;padding:0 12px;color:#fff;background:#153d32eb;border:1px solid rgba(255,255,255,.45);border-radius:4px;cursor:pointer;font-size:10px;font-weight:900}.studio[data-hud=hidden] .hud-surface,.studio[data-hud=hidden] .scene-labels{display:none}.studio[data-hud=hidden] .restore-hud{display:grid}.guide-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;color:var(--ink);background:var(--paper-solid);border:1px solid var(--line-strong);border-radius:6px;box-shadow:0 28px 80px #0c1d1759}.guide-dialog::backdrop{background:#0f1c18a3;backdrop-filter:blur(5px)}.guide-header{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.guide-header h2{margin:3px 0 0;font-size:21px}.guide-dialog ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;padding:14px;counter-reset:guide;list-style:none}.guide-dialog li{position:relative;min-height:88px;padding:12px 10px 10px 42px;background:#205d4b12;border:1px solid var(--line);counter-increment:guide}.guide-dialog li:before{content:counter(guide,decimal-leading-zero);position:absolute;left:10px;top:12px;color:var(--forest);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:900}.guide-dialog li b,.guide-dialog li span{display:block}.guide-dialog li b{font-size:11px}.guide-dialog li span{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.4}.guide-dialog>p{margin:0 14px 14px;padding:10px;color:#5b4218;background:#f0c44d2e;border-left:3px solid var(--yellow);font-size:10px;line-height:1.4}.guide-dialog form{padding:0 14px 14px}.guide-start{width:100%;min-height:40px;color:#fff;background:var(--forest);border-color:var(--forest);font-size:11px;font-weight:900}.loading-screen{position:fixed;inset:0;z-index:25;display:grid;align-content:center;justify-items:center;color:#edf5f0;background:#1d302a;transition:opacity .26s ease,visibility .26s ease}.loading-screen[hidden]{display:none}.loading-mark{position:relative;width:58px;height:58px;margin-bottom:14px;border:1px solid rgba(255,255,255,.28);border-radius:50%}.loading-mark span{position:absolute;inset:8px;border:4px solid transparent;border-top-color:var(--yellow);border-right-color:var(--mint);border-radius:50%;animation:loading-spin 1s linear infinite}.loading-screen strong{font-size:15px}.loading-screen>span{margin-top:5px;color:#b9ccc4;font-size:10px}@keyframes loading-spin{to{transform:rotate(360deg)}}.scene-labels{position:fixed;inset:0;z-index:3;pointer-events:none}.scene-tag{position:absolute;z-index:2;max-width:164px;min-height:25px;padding:6px 8px;color:#17211f;background:#fafbf8f5;border:1px solid rgba(40,63,55,.35);border-left:3px solid var(--yellow);border-radius:3px;box-shadow:0 3px 10px #14241e21;font-size:9px;font-weight:750;line-height:1.25;letter-spacing:0;text-transform:none}.scene-tag.is-active{border-color:#194a3ba8;box-shadow:0 4px 13px #14241e30}.scene-tag.is-audit-focus{border-color:var(--scenario-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--scenario-accent) 36%,transparent),0 5px 16px #14241e3d}.scene-tag--flow{min-height:38px;padding:5px 7px 6px}.scene-tag--flow strong,.scene-tag--flow span{display:block;letter-spacing:0}.scene-tag--flow strong{color:#49615a;font-size:7px;font-weight:850;text-transform:uppercase}.scene-tag--flow span{margin-top:2px;font-size:8px;font-weight:720;line-height:1.2}.scene-leader{position:absolute;z-index:1;height:1px;background:#1d423694;box-shadow:0 0 0 .25px #fafbf8d9;transform-origin:0 50%}.scene-leader:before{content:"";position:absolute;left:-3px;top:-3px;width:7px;height:7px;background:#f8faf6;border:2px solid #2e725b;border-radius:50%}.scene-tag[hidden],.scene-leader[hidden]{display:none}.scene-tag[data-kind=sensor]{border-left-color:#3c7794}.scene-tag[data-kind=action]{border-left-color:#cf5e4b}.scene-tag[data-kind=landscape]{border-left-color:#3e795c}@media(max-width:700px){.scene-tag{max-width:138px;min-height:23px;padding:5px 7px;font-size:8px}.scene-tag--flow{max-width:112px;min-height:34px;padding:4px 6px 5px}.scene-tag--flow strong{font-size:6px}.scene-tag--flow span{font-size:7px}}@media(max-width:1180px){.topbar{grid-template-columns:minmax(170px,.7fr) minmax(240px,1fr) minmax(320px,1.2fr) auto}.segmented button{padding-inline:5px;font-size:9px}.control-panel{width:288px}.flow-panel{left:312px;grid-template-columns:minmax(220px,.7fr) minmax(420px,1.3fr)}.timeline-panel{grid-template-columns:140px minmax(260px,1fr) minmax(280px,.8fr)}}@media(max-width:920px){.topbar{grid-template-columns:minmax(180px,1fr) auto;grid-template-areas:"brand actions" "scenario scenario" "views views";gap:5px;min-height:132px}.brand{grid-area:brand}.scenario-switcher{grid-area:scenario}.view-switcher{grid-area:views}.top-actions{grid-area:actions}.control-panel,.detail-panel{top:calc(max(10px,env(safe-area-inset-top)) + 144px);bottom:172px;width:min(340px,calc(100vw - 24px))}.flow-panel,.studio[data-controls=closed] .flow-panel{left:12px;grid-template-columns:minmax(200px,.62fr) minmax(420px,1.38fr)}.timeline-panel{grid-template-columns:136px minmax(250px,1fr) minmax(260px,.8fr)}}@media(max-width:700px){.topbar{top:max(6px,env(safe-area-inset-top));left:6px;right:6px;min-height:132px;padding:6px}.brand-mark{flex-basis:44px;width:44px;height:34px;font-size:10px}.brand strong{font-size:12px}.brand small{display:none}.top-actions{gap:3px}.top-actions .icon-button{width:34px;height:34px}.view-caption{left:6px;top:calc(max(6px,env(safe-area-inset-top)) + 140px);max-width:calc(100vw - 12px)}#guide-toggle,#fullscreen-toggle{display:none}.segmented{gap:2px;padding:2px}.segmented button{height:32px;padding:0 3px;font-size:8px}.control-panel,.detail-panel{top:calc(max(6px,env(safe-area-inset-top)) + 142px);bottom:171px;left:6px;right:auto;width:min(330px,calc(100vw - 12px));padding:12px}.detail-panel{left:auto;right:6px}.flow-panel,.studio[data-controls=closed] .flow-panel{left:6px;right:6px;bottom:calc(max(6px,env(safe-area-inset-bottom)) + 78px);grid-template-columns:1fr;gap:5px;min-height:74px;padding:6px}.flow-copy{grid-template-columns:34px 1fr}.flow-copy>span{width:34px;height:34px;font-size:8px}.flow-copy h2{font-size:10px}.flow-copy p{-webkit-line-clamp:1;font-size:8px}.flow-rail button{height:28px;font-size:7px}.timeline-panel{left:6px;right:6px;bottom:max(6px,env(safe-area-inset-bottom));grid-template-columns:88px minmax(0,1fr);gap:7px;min-height:68px;padding:6px}.playback-controls{grid-template-columns:1fr}#step-back,#step-forward{display:none}.playback-controls .icon-button{width:32px;height:34px}.play-button{min-width:0;height:34px;padding-inline:8px}.play-extra{display:none}.time-control>div:first-child{font-size:8px}.metric-strip{display:none}.guide-dialog ol{grid-template-columns:1fr}.guide-dialog li{min-height:68px}.scene-tag{max-width:120px;font-size:7px}.scene-tag--flow{max-width:112px}}@media(max-width:390px){.brand{gap:6px}.brand strong{font-size:11px}.top-actions .icon-button{width:32px}.segmented button{font-size:7px}.control-panel,.detail-panel{width:calc(100vw - 12px)}.layer-controls{grid-template-columns:1fr}}@media(max-height:700px)and (min-width:701px){.topbar{min-height:54px}.control-panel,.detail-panel{top:76px;bottom:154px}.flow-panel{bottom:82px;min-height:60px}.timeline-panel{min-height:60px}.compact-section,.panel-purpose{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
