:root{color-scheme:dark;--bg: #0b0c10;--panel: #12141a;--panel-border: #232733;--text: #e8eaf0;--muted: #9aa3b5;--accent: #7dd3fc;--accent-2: #f9a8d4;--danger: #fca5a5;--btn: #1c2030;--btn-hover: #272d42;--track: #2a3042;--thumb: #7dd3fc;font-family:IBM Plex Sans,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg)}#app{height:100%;min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1.25rem;padding:.75rem 1rem;border-bottom:1px solid var(--panel-border);background:linear-gradient(180deg,#10131a,#0b0c10)}.brand{display:flex;align-items:baseline;gap:.6rem}.brand-mark{font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.brand-sub{color:var(--muted);font-size:.95rem}.tagline{margin:0;color:var(--muted);flex:1;min-width:12rem}.guide-switch{display:flex;flex-wrap:nowrap;align-items:center;gap:.4rem .55rem}.guide-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.guide-switch select{background:var(--btn);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:.3rem .45rem;font:inherit}.layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);min-height:0;height:100%}html[data-guide=compact] .layout,body[data-guide=compact] .layout{grid-template-columns:minmax(0,1fr) minmax(260px,300px)}html[data-guide=lab] .layout,body[data-guide=lab] .layout{grid-template-columns:minmax(0,1fr) minmax(320px,420px)}html[data-kiosk="1"] .layout,html[data-guide=kiosk] .layout,body[data-guide=kiosk] .layout{grid-template-columns:minmax(0,1fr) var(--kiosk-panel, 15.5rem)}html[data-kiosk="1"][data-panel-open="0"] .layout{grid-template-columns:minmax(0,1fr) 2.75rem}.stage-wrap{display:flex;flex-direction:column;min-width:0;min-height:0;background:#000}.stage-host{position:relative;flex:1 1 auto;min-width:0;min-height:320px;overflow:hidden}#stage{display:block;width:100%;height:100%;cursor:crosshair}.stage-gl{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.transport{position:relative;z-index:2;flex:0 0 auto;display:flex;flex-wrap:nowrap;align-items:center;gap:.45rem .55rem;padding:.45rem .65rem;border-top:1px solid var(--panel-border);background:var(--panel);overflow:hidden;min-height:2.65rem;max-height:2.65rem;box-sizing:border-box}.transport-cluster{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:.35rem;flex:0 0 auto;min-width:0}.transport-speed{flex:0 0 auto}@media(max-width:1100px){.transport-playback #btn-reseed,.transport-playback #btn-record{display:none}}@media(max-width:900px){.transport-playback #btn-step,.transport-interact #btn-disturb{display:none}.transport-speed,#tool-wrap,#choreo-wrap{font-size:0;gap:0}.transport-speed select,#tool-wrap select,#choreo-wrap select{font-size:.85rem}}.stage-quality-chip{position:absolute;left:.55rem;right:.55rem;top:.55rem;z-index:3;width:auto;max-width:none;padding:.4rem .7rem;border-radius:6px;border:1px solid color-mix(in srgb,#fbbf24 45%,var(--panel-border));background:#120e08eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.76rem;line-height:1.35;font-variant-numeric:tabular-nums;color:#fcd34d;white-space:normal;overflow:visible;word-break:normal;overflow-wrap:anywhere;pointer-events:none;box-shadow:0 4px 16px #0006}.stage-quality-chip[data-severity=critical]{color:#fecaca;border-color:color-mix(in srgb,#f87171 50%,var(--panel-border));background:#1c0a0af0}.stage-quality-chip[hidden]{display:none!important}.stage-tool-chip{position:absolute;left:.55rem;right:.55rem;bottom:.55rem;z-index:3;width:auto;max-width:none;padding:.35rem .65rem;border-radius:6px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--panel-border));background:#0c0e14e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.78rem;line-height:1.35;font-variant-numeric:tabular-nums;color:var(--accent);white-space:normal;overflow:visible;text-overflow:unset;word-break:normal;overflow-wrap:anywhere;pointer-events:none;box-shadow:0 4px 16px #00000059}.stage-tool-chip[data-state=friend]{color:#60a5fa;border-color:color-mix(in srgb,#60a5fa 40%,var(--panel-border))}.stage-tool-chip[data-state=enemy]{color:#fbbf24;border-color:color-mix(in srgb,#fbbf24 40%,var(--panel-border))}.stage-tool-chip[data-state=info]{color:var(--accent)}.stage-tool-chip[hidden]{display:none!important}.tip-wrap{position:relative;display:inline-flex;align-items:center}.tip-btn{min-width:1.85rem;padding:.35rem .45rem;font-weight:700;color:var(--accent);line-height:1;border-color:color-mix(in srgb,var(--accent) 40%,var(--panel-border))}.tip-btn:hover{color:#fff;border-color:var(--accent)}.tip-btn[aria-expanded=true]{color:#0b0c10;background:var(--accent);border-color:var(--accent)}.tip-popover{position:fixed;z-index:200;width:min(22rem,calc(100vw - 2rem));max-height:min(50vh,22rem);overflow:auto;padding:.7rem .8rem .75rem;background:#161922;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--panel-border));border-radius:8px;box-shadow:0 12px 36px #000000a6;font-size:.8rem;line-height:1.45;color:var(--text)}.tip-popover[hidden]{display:none!important}.tip-popover h3{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.tip-popover h3+h3{margin-top:.75rem}.tip-popover p{margin:0 0 .45rem;color:var(--text)}.tip-popover p:last-child{margin-bottom:0}.tip-popover .tip-muted{color:var(--muted);font-size:.75rem}.tip-popover ul{margin:.25rem 0 .5rem;padding-left:1.1rem;color:var(--muted)}.tip-popover li{margin:.15rem 0}.tip-popover li strong{color:var(--text);font-weight:600}.btn{appearance:none;border:1px solid var(--panel-border);background:var(--btn);color:var(--text);border-radius:6px;padding:.4rem .75rem;font:inherit;cursor:pointer}.btn:hover{background:var(--btn-hover)}.btn.primary{border-color:#3b82f6;background:#1e3a5f}.btn.primary:hover{background:#254a78}.inline{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted)}.script-status{font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--muted);max-width:4.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}.script-status[data-state=running]{color:var(--accent)}.script-status[data-state=done]{color:#86efac}#btn-choreo-replay[hidden],.script-status[hidden]{display:none!important}#tool-wrap select{min-width:5.25rem}#choreo-wrap select{max-width:8.5rem}.inline select,.field select{background:var(--btn);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:.3rem .4rem;font:inherit}.hud{margin-left:auto;flex:1 1 auto;min-width:0;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--muted);font-size:.7rem;text-align:right;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.panel{border-left:1px solid var(--panel-border);background:var(--panel);overflow:auto;padding:.75rem .9rem 1.5rem;min-width:0;transition:padding .15s ease,opacity .15s ease}html[data-kiosk="1"] .panel{opacity:.96;padding:.65rem .7rem 1rem}html[data-kiosk="1"] #controls-root,html[data-kiosk="1"] #equation-root,html[data-kiosk="1"] #insights-root,html[data-kiosk="1"] #distance-matrix-root,html[data-kiosk="1"] #story-root,html[data-kiosk="1"] .panel-block.help,html[data-kiosk="1"] #preset-citation,html[data-kiosk="1"] #preset-dirty,html[data-kiosk="1"] #btn-step,html[data-kiosk="1"] #btn-reset,html[data-kiosk="1"] #btn-reseed,html[data-kiosk="1"] #btn-record,html[data-kiosk="1"] #btn-disturb,html[data-kiosk="1"] #choreo-wrap,html[data-kiosk="1"] #transport-tip-wrap,html[data-kiosk="1"] #choreo-script,html[data-kiosk="1"] #script-status,html[data-kiosk="1"] #btn-choreo-replay{display:none!important}html[data-kiosk="1"] #tool-wrap{display:inline-flex}html[data-kiosk="1"] .topbar .tagline,html[data-kiosk="1"] .brand-sub{display:none}.panel-toggle{display:none;width:100%;margin:0 0 .55rem;justify-content:center;font-size:.78rem;letter-spacing:.04em}html[data-kiosk="1"] .panel-toggle{display:inline-flex}html[data-kiosk="1"] .kiosk-blurb{display:block;margin:0 0 .65rem;color:var(--muted);font-size:.78rem;line-height:1.4}.kiosk-blurb{display:none}html[data-kiosk="1"][data-panel-open="0"] .panel{padding:.4rem .2rem;overflow:hidden}html[data-kiosk="1"][data-panel-open="0"] .panel>*:not(.panel-toggle){display:none!important}html[data-kiosk="1"][data-panel-open="0"] .panel-toggle{writing-mode:vertical-rl;transform:rotate(180deg);height:auto;min-height:6rem;margin:.35rem auto;padding:.5rem .25rem;width:auto}html[data-large-stage="1"] .stage-wrap,html[data-kiosk="1"] .stage-wrap{min-height:0}.panel-block{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--panel-border)}.panel-block:last-child{border-bottom:0}.panel h2,.panel summary{margin:0 0 .55rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.panel details summary{cursor:pointer;list-style:none}.panel details summary::-webkit-details-marker{display:none}.panel details summary:before{content:"▸ ";color:var(--accent)}.panel details[open] summary:before{content:"▾ "}.field{display:grid;gap:.15rem;margin-bottom:.55rem}.field-head{display:flex;align-items:baseline;gap:.45rem}.field-title{display:flex;flex:1;justify-content:space-between;align-items:baseline;gap:.5rem;color:var(--text);min-width:0}.field-name{font-weight:500;cursor:pointer}.field-symbol{margin-left:.25rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85em;color:var(--accent);font-weight:500}.field em,.field-val{font-style:normal;color:var(--accent);font-variant-numeric:tabular-nums}.field.check .field-head{align-items:center}.field.check input[type=checkbox]{margin:0;flex-shrink:0}.field-help-summary{display:none;margin:0;font-size:.75rem;color:var(--muted);line-height:1.3}.field.help-summary .field-help-summary{display:block}.field.help-tooltip .field-help-summary,.field.help-hidden .field-help-summary,.field.help-tooltip .field-more,.field.help-hidden .field-more{display:none}.field-more{margin:0;border:0;padding:0}.field-more>summary{cursor:pointer;list-style:none;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#6b9bb8;font-weight:600;-webkit-user-select:none;user-select:none;width:fit-content}.field-more>summary::-webkit-details-marker{display:none}.field-more>summary:before{content:"▸ ";color:var(--accent)}.field-more[open]>summary:before{content:"▾ "}.field-more[open]{margin-top:.15rem;padding:.35rem .45rem;border-radius:6px;background:#0e1118;border:1px solid #1c2230}.field-help-detail{margin:.25rem 0 0;font-size:.76rem;color:#9aa3b5;line-height:1.4}.field-help-range{margin:.3rem 0 0;font-size:.72rem;color:var(--accent-2);line-height:1.35}.field-help-ix{margin:.25rem 0 0;font-size:.72rem;color:#6b7388;font-style:italic}.field-inactive{opacity:.55}.field-inactive .field-name{color:var(--muted)}.field-inactive input[type=range],.field-inactive input[type=checkbox],.field-inactive select{cursor:not-allowed}.field-unlock{display:none;margin:.15rem 0 0;padding:.3rem .4rem;font-size:.72rem;line-height:1.35;color:#fcd34d;background:#fcd34d14;border:1px solid rgba(252,211,77,.22);border-radius:5px}.field-inactive .field-unlock:not([hidden]){display:block}.field-note{display:none;margin:.12rem 0 0;font-size:.72rem;line-height:1.35;color:#7dd3fc}.field-has-note .field-note:not([hidden]){display:block}input[type=range]{width:100%;accent-color:var(--thumb)}.citation{margin:.35rem 0 0;color:var(--muted);font-size:.85rem}.dirty{margin:.35rem 0 0;color:var(--accent-2);font-size:.8rem}.hidden{display:none!important}.equation .eq{margin:.15rem 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.92rem;color:var(--accent)}.equation .eq-detail{margin:.45rem 0 .65rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;color:var(--muted);white-space:pre-wrap}.eq-intro{margin:.3rem 0 .45rem;font-size:.76rem;color:var(--muted);line-height:1.35}.eq-fold{margin:.35rem 0 0;border:0;padding:0}.eq-fold>summary{cursor:pointer;list-style:none;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;-webkit-user-select:none;user-select:none}.eq-fold>summary::-webkit-details-marker{display:none}.eq-fold>summary:before{content:"▸ ";color:var(--accent)}.eq-fold[open]>summary:before{content:"▾ "}.eq-fold[open]{margin-bottom:.35rem}.eq-subhead{margin:.75rem 0 .4rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.eq-term{display:grid;grid-template-columns:2.4rem 1fr;gap:.35rem .5rem;margin-bottom:.55rem;padding-bottom:.45rem;border-bottom:1px solid #1a1e2a}.eq-term:last-child{border-bottom:0}.eq-term-sym{font-family:IBM Plex Mono,ui-monospace,monospace;color:var(--accent);font-size:.9rem;padding-top:.1rem}.eq-term-name{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.eq-term-name strong{font-size:.85rem;font-weight:600}.eq-term-val{font-style:normal;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem;color:var(--accent-2)}.eq-term-meaning{margin:.15rem 0 0;font-size:.78rem;color:var(--muted);line-height:1.4}.eq-term-link{margin:.2rem 0 0;font-size:.72rem;color:#6b9bb8}.eq-op-row{display:grid;gap:.1rem;margin-bottom:.45rem}.eq-op-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem;color:var(--accent)}.eq-op-meaning{font-size:.76rem;color:var(--muted);line-height:1.35}.eq-ix{margin-bottom:.55rem;padding:.45rem .55rem;border-radius:6px;background:#0e1118;border:1px solid #1c2230}.eq-ix strong{display:block;font-size:.8rem;margin-bottom:.2rem;color:var(--text)}.eq-ix p{margin:0;font-size:.76rem;color:var(--muted);line-height:1.4}.equation.eq-compact .eq-fold,.equation.eq-compact .eq-intro{display:none}.metrics-strip{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;color:var(--muted);line-height:1.45;margin:0;white-space:pre-wrap}.distance-matrix-wrap{margin-top:.4rem}.distance-matrix-wrap canvas{width:100%;max-width:220px;height:auto;border-radius:4px;border:1px solid var(--panel-border);image-rendering:pixelated;display:block}.selection-hud{margin:.25rem 0 0;font-size:.78rem;color:var(--accent);font-family:IBM Plex Mono,ui-monospace,monospace}.story-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.35rem}.story-bar .story-label{flex:1 1 100%;margin:0;font-size:.78rem;color:var(--muted)}.help p{margin:0;color:var(--muted);font-size:.85rem}kbd{display:inline-block;padding:.05rem .35rem;border:1px solid var(--panel-border);border-bottom-width:2px;border-radius:4px;background:var(--btn);font-size:.8em}.share-dialog{border:1px solid var(--panel-border);border-radius:10px;padding:0;background:var(--panel);color:var(--text);max-width:min(32rem,calc(100vw - 2rem));width:32rem;box-shadow:0 18px 50px #0000008c}.share-dialog::backdrop{background:#04060cb8}.share-dialog-inner{margin:0;padding:1rem 1.1rem 1.15rem}.share-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.share-dialog-head h2{margin:0;font-size:1.05rem;font-weight:650}.share-close{min-width:2rem;padding:.15rem .45rem;font-size:1.15rem;line-height:1}.share-dialog-blurb{margin:0 0 .75rem;color:var(--muted);font-size:.88rem}.share-url-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.3rem}.share-url-row{display:flex;gap:.45rem;align-items:stretch}.share-url-input{flex:1;min-width:0;background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:.45rem .55rem;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.share-status{min-height:1.25rem;margin:.55rem 0 0;color:var(--accent);font-size:.85rem}@media(max-width:860px){.layout{grid-template-columns:1fr;grid-template-rows:minmax(45vh,1fr) auto}.panel{border-left:0;border-top:1px solid var(--panel-border);max-height:48vh}.transport{max-height:2.65rem}.hud{margin-left:auto;width:auto;max-width:none}}
