@font-face{font-family:"Source Serif 4";src:url("./vendor/fonts/SourceSerif4Variable-Roman.ttf.woff2") format("woff2");font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("./vendor/fonts/SourceSerif4Variable-Italic.ttf.woff2") format("woff2");font-style:italic;font-weight:200 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("./vendor/fonts/JetBrainsMono-Regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
/* Lake publication system. Shared tokens also serve the surrounding project index. */
:root{
  --page:#f1ece1;--surface:#f9f6ee;--surface-2:#e7e0d1;
  --ink:#211e18;--ink-2:#4e4a3f;--ink-3:#6e6a5d;
  --border:#ddd5c4;--border-strong:#c7bea9;--grid:#e6dfce;--grid-step:24px;
  --accent:#2b59d1;--accent-ink:#f5f1e8;--accent-soft:rgba(43,89,209,.09);
  --category-a:var(--accent);--category-b:#79668b;--category-c:#a35e3d;--category-d:#947327;--category-e:#527362;
  --data-stimulation:var(--category-a);--data-spikes:var(--category-c);--data-trajectory:var(--category-b);
  --negative:#a13c33;--error-soft:#f2e0d7;
  --body-shell:#b49e73;--body-core:#9d8861;--body-eye:#98583d;--body-wing:#b7bdac;
  --body-sky:#f9f6ee;--body-shadow:#82745a;--body-key:#fff5df;--body-fill:#d3dbe6;
  --display:"Source Serif 4",Georgia,"Times New Roman",serif;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace;
  --radius-sm:9px;--radius-md:14px;--radius-lg:18px;--radius-pill:999px;
  --dur-med:260ms;--dur-slow:420ms;--ease-out:cubic-bezier(.16,1,.3,1);--motion-ok:1;
  --topbar-height:80px;--content-max:1600px;--prose-max:760px;--page-gutter:24px;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --page:#17150f;--surface:#1e1b15;--surface-2:#26221a;
  --ink:#ece6d8;--ink-2:#c0b8a7;--ink-3:#a49b88;
  --border:#3a352b;--border-strong:#5c5343;--grid:#302b22;
  --accent:#7c9cf0;--accent-ink:#17150f;--accent-soft:rgba(124,156,240,.12);
  --category-b:#b49bc9;--category-c:#d49a76;--category-d:#c5a461;--category-e:#90b29c;
  --negative:#e59b8c;--error-soft:#37251e;
  --body-shell:#bea77b;--body-core:#a38d65;--body-eye:#bb7657;--body-wing:#c6cbbd;
  --body-sky:#e6e0d1;--body-shadow:#645c4b;--body-key:#fff0d4;--body-fill:#bdc6dc;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;-webkit-font-smoothing:antialiased}
body{background:var(--page);color:var(--ink);font:400 17px/1.6 var(--serif)}
button,input,textarea,select{font:inherit}button,a,summary{touch-action:manipulation}
button:not(:disabled),summary{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}
[hidden],.hidden{display:none!important}
::selection{background:var(--accent-soft);color:var(--ink)}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:-100px;z-index:50;padding:10px 20px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);font:12px/1.6 var(--mono)}.skip-link:focus{top:10px}
.app-viewer{height:100dvh;min-height:650px;display:flex;flex-direction:column;overflow:hidden}
.app-viewer button{min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);padding:10px 15px;background:transparent;color:var(--ink-2);font:400 11px/1.4 var(--mono);transition:background-color var(--dur-med) ease,border-color var(--dur-med) ease,color var(--dur-med) ease}
.app-viewer button:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-2);color:var(--ink)}
.app-viewer .primary{background:var(--ink);border-color:var(--ink);color:var(--page);text-align:left}
.app-viewer .primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.primary span{float:right}.app-viewer .secondary{background:var(--surface)}
.app-viewer .quiet{border-color:transparent;background:transparent;padding-inline:11px}
.app-viewer .icon-button{display:grid;place-items:center;min-width:44px;width:44px;height:44px;padding:0;font-family:var(--serif);font-size:23px}
.wide{width:100%;margin-top:8px}
.app-viewer input[type=number],.app-viewer textarea,.app-viewer select{width:100%;min-height:44px;border:1px solid var(--ink-3);border-radius:var(--radius-sm);padding:10px 11px;background:var(--surface);color:var(--ink);font:400 11px/1.5 var(--mono)}
.app-viewer textarea{font:400 17px/1.6 var(--serif);resize:vertical;min-height:128px}
.app-viewer input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}
.app-viewer label{display:block;margin:13px 0 7px;color:var(--ink-2);font:400 10px/1.5 var(--mono)}
.app-viewer p{margin:0 0 14px}.app-viewer h1,.app-viewer h2,.app-viewer h3{font-family:var(--display);font-weight:400;letter-spacing:-.025em;line-height:1.08}
.app-viewer header{height:var(--topbar-height);min-height:var(--topbar-height);display:flex;align-items:center;gap:16px;padding:0 var(--page-gutter);border-bottom:1px solid var(--border-strong);background:var(--page)}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);margin-right:auto;min-width:0}
.brand-mark{font:400 38px/1 var(--serif);color:var(--accent)}
.brand strong{display:block;font:400 31px/1.04 var(--display);letter-spacing:-.04em}
.brand small{display:block;margin-top:8px;color:var(--ink-2);font:400 8px/1.4 var(--mono);letter-spacing:.12em}
.brand small span{color:var(--accent);margin:0 5px}.header-actions{display:flex;align-items:center;gap:8px}
.state{display:flex;align-items:center;gap:7px;font:400 9px/1.4 var(--mono);color:var(--ink-2);max-width:170px}
.state i{flex:none;width:5px;height:5px;border-radius:50%;background:currentColor}
.state[data-state=ready],.state[data-state=complete]{color:var(--accent)}.state[data-state=running],.state[data-state=preview]{color:var(--category-c)}.state[data-state=error]{color:var(--negative)}
.app-viewer .theme-control{margin:0}
.app-viewer main{display:flex;flex:1;min-height:0;min-width:0}
.drawer{flex:0 0 302px;width:302px;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border-strong);background:var(--page)}
.drawer-scroll{padding:23px 19px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
.drawer-hidden .drawer{width:0;flex-basis:0;border:0;overflow:hidden}.drawer-hidden .drawer-scroll,.drawer-hidden .run-controls{display:none}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}
.eyebrow{font:400 9px/1.5 var(--mono);letter-spacing:.11em;color:var(--ink-2);text-transform:uppercase}
.app-viewer .file-button{display:inline-flex;align-items:center;min-height:44px;margin:0;color:var(--accent);font:400 10px/1.5 var(--mono);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.file-button input{display:none}.app-viewer .caption{font:400 12px/1.55 var(--serif);color:var(--ink-2);margin:9px 0 13px}
.preset-row{display:flex;gap:8px;margin:15px 0 17px}.app-viewer .preset{flex:1;min-width:0;border-radius:var(--radius-sm);padding:10px 8px;font-size:10px;text-align:left}
.preset small{display:block;margin-top:6px;font:9px/1.5 var(--mono);color:var(--ink-2)}.app-viewer .preset.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.app-viewer details{border-top:1px solid var(--border);padding:7px 0}
.app-viewer summary{display:flex;align-items:center;min-height:44px;gap:9px;list-style:none;font:400 16px/1.4 var(--serif);cursor:pointer}
summary::-webkit-details-marker{display:none}summary:before{content:"+";font:16px/1 var(--mono);color:var(--accent)}details[open]>summary:before{content:"−"}.summary-meta{margin-left:auto;font:10px/1 var(--mono);color:var(--ink-3)}
.inline{display:flex;align-items:center;gap:9px}.inline>*{min-width:0}.inline select:first-child{flex:1.25}.inline select:last-child{flex:1}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 9px}
.app-viewer .checkbox{display:flex;align-items:center;gap:6px;align-self:end;min-height:44px;margin-bottom:0}
.config-tools{justify-content:space-between}.app-viewer .config-tools .quiet{font-size:9px;padding-inline:0}.run-controls{padding:13px 19px 17px;border-top:1px solid var(--border-strong);background:var(--surface-2)}
.app-viewer #estimate{margin:0 0 7px;font:400 10px/1.6 var(--mono)}#progress{height:3px;margin-top:12px;border-radius:var(--radius-pill);overflow:hidden;background:var(--border)}#progress-fill{height:100%;width:0;background:var(--accent);transition:width var(--dur-med) ease}
.workspace{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:18px var(--page-gutter) 0;position:relative}
.panes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;flex:1;min-height:240px}
.pane{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md)}
.pane-heading{height:85px;flex:0 0 85px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 20px 14px}
.pane-heading .eyebrow{font-size:8px;letter-spacing:.1em}.app-viewer .pane-heading h1,.app-viewer .pane-heading h2{font-size:27px;font-weight:400;margin:7px 0 0;line-height:1.06}
.app-viewer .camera-button{font-size:9px;min-height:44px;padding:9px 10px;color:var(--ink-2);white-space:nowrap;background:var(--surface)}.camera-buttons{display:flex;gap:6px;flex-shrink:0}
.layer-tabs{display:flex;align-items:center;gap:4px;min-height:44px;flex:0 0 44px;margin:0 20px;width:max-content;max-width:calc(100% - 40px)}
.app-viewer .layer-tabs button{min-height:40px;border-color:transparent;white-space:nowrap;font-size:10px;padding:9px 13px;color:var(--ink-2)}
.app-viewer .layer-tabs button.active{background:var(--data-stimulation);border-color:var(--data-stimulation);color:var(--accent-ink)}
.app-viewer .layer-tabs button[data-layer=spikes].active{background:var(--data-spikes);border-color:var(--data-spikes);color:var(--surface)}
.app-viewer .layer-tabs button[data-layer=both].active{background:var(--ink);border-color:var(--ink);color:var(--page)}
.body-context{display:flex;align-items:center;min-height:44px;flex:0 0 44px;padding:0 20px;font:400 10px/1.5 var(--mono);color:var(--ink-2)}
.viewport{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--surface)}.viewport canvas{position:absolute;inset:0;display:block;max-width:100%}
/* Each scene draws its single coordinate grid in Three.js, not in CSS. */
.viewport::after{content:"";position:absolute;inset:13px;z-index:2;pointer-events:none;background:linear-gradient(var(--border-strong) 0 0) 5px 0/1px 11px no-repeat,linear-gradient(var(--border-strong) 0 0) 0 5px/11px 1px no-repeat,linear-gradient(var(--border-strong) 0 0) calc(100% - 5px) 0/1px 11px no-repeat,linear-gradient(var(--border-strong) 0 0) 100% 5px/11px 1px no-repeat,linear-gradient(var(--border-strong) 0 0) 5px 100%/1px 11px no-repeat,linear-gradient(var(--border-strong) 0 0) 0 calc(100% - 5px)/11px 1px no-repeat,linear-gradient(var(--border-strong) 0 0) calc(100% - 5px) 100%/1px 11px no-repeat,linear-gradient(var(--border-strong) 0 0) 100% calc(100% - 5px)/11px 1px no-repeat}
.scene-loading{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:25px;text-align:center;color:var(--ink-2);font:400 13px/1.6 var(--serif);background:var(--surface)}
.scene-footnote{position:absolute;left:20px;bottom:10px;max-width:calc(100% - 40px);padding:3px 5px;background:var(--surface);color:var(--ink-2);font:400 9px/1.5 var(--mono);z-index:3;pointer-events:none}
.layer-legend,.body-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px 14px;min-height:54px;flex:0 0 54px;border-top:1px solid var(--border-strong);padding:10px 20px;background:var(--surface);color:var(--ink-2);font:400 9px/1.5 var(--mono)}
.geometry-label,.body-legend>span{font:400 11px/1.4 var(--serif);color:var(--ink-2);margin-left:auto}.body-legend{column-gap:6px}
.swatch{width:6px;height:6px;display:inline-block;vertical-align:1px;margin-right:5px;background:var(--data-stimulation);border-radius:50%}.swatch.spikes{background:var(--data-spikes);border-radius:0;transform:rotate(45deg)}.swatch.trajectory{background:var(--data-trajectory);border-radius:0;width:11px;height:2px;margin-right:1px}
#neuron-viewport{cursor:grab}#neuron-viewport:active{cursor:grabbing}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;flex:0 0 auto;min-height:90px;padding:14px 0;margin-top:16px;border-bottom:1px solid var(--border-strong)}
.metrics>div{padding-right:12px;border-right:1px solid var(--border)}.metrics>div:last-child{border:0;padding:0}
.metrics span{display:block;min-height:28px;color:var(--ink-2);font:400 9px/1.5 var(--mono)}
.metrics strong{display:block;font:400 28px/1.1 var(--display);font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.025em;margin-top:4px}
.metrics>div:first-child strong{color:var(--data-stimulation)}.metrics>div:nth-child(2) strong{color:var(--data-spikes)}.metrics small{font:400 8px/1.4 var(--mono)}#motor-extra{display:block;color:var(--ink-2);margin-top:4px}
.current-card{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px;flex:0 0 auto;padding:15px 0 9px}
.current-card>div{min-width:0}.current-card .eyebrow{font-size:8px;letter-spacing:.1em;color:var(--ink-2)}.app-viewer .current-card p{font:italic 400 38px/1.15 var(--display);letter-spacing:-.025em;margin:6px 0;white-space:pre-line;overflow-wrap:anywhere}
#clock{flex-shrink:0;color:var(--ink);font:400 14px/1.4 var(--mono);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}#clock small{display:block;margin-top:7px;text-align:right;color:var(--ink-2);font:400 10px/1.4 var(--mono)}
.playback{display:flex;align-items:center;gap:17px;min-height:59px;flex:0 0 59px;padding:0 0 12px}.app-viewer .playback button{width:44px;height:44px;padding:0;border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-size:15px}.app-viewer .playback button:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--page)}
.timeline-track{display:flex;align-items:center;position:relative;flex:1;height:44px;min-width:40px}.timeline-track input{accent-color:var(--accent);width:100%;height:44px;margin:0;cursor:pointer;z-index:1;background:transparent}.app-viewer .playback select{width:72px;flex:0 0 72px;border-radius:var(--radius-pill);border-color:var(--border-strong);font-size:10px;padding:8px}
.playback-label{font:400 9px/1.4 var(--mono);color:var(--ink-2)}#card-markers{position:absolute;left:7px;right:7px;bottom:0;height:3px}#card-markers i{position:absolute;height:2px;min-width:1px;background:var(--data-stimulation);opacity:.55}
.preview-tools{display:flex;align-items:center;gap:9px;margin-bottom:5px}.preview-badge{color:var(--data-spikes);margin-right:auto;font:400 10px/1.5 var(--mono)}.app-viewer .preview-tools select{width:auto;max-width:50%;font-size:10px}.app-viewer .preview-tools button{padding:0;width:44px;font-size:15px}
.status-line{display:flex;align-items:center;gap:12px;min-height:31px;flex:0 0 31px;border-top:1px solid var(--border);font:400 9px/1.4 var(--mono);color:var(--ink-2);white-space:nowrap;overflow:hidden}.status-line #run-status{overflow:hidden;text-overflow:ellipsis}#result-summary{margin-left:auto;flex-shrink:0}
#error{padding:13px 16px;max-height:125px;overflow:auto;background:var(--error-soft);color:var(--negative);border:1px solid var(--negative);border-radius:var(--radius-sm);font:400 14px/1.55 var(--serif)}
#readouts{display:flex;flex-direction:column;gap:8px;margin-top:8px}.readout{padding:11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}.readout-title{display:flex;align-items:baseline;justify-content:space-between;gap:7px;font:400 13px/1.5 var(--serif)}.readout-title strong{font-weight:400}.readout-title span{font:400 10px/1.4 var(--mono);color:var(--accent);white-space:nowrap}.readout-subtitle{margin:6px 0;font:400 9px/1.5 var(--mono);color:var(--ink-2)}.bar-track{display:flex;flex-direction:column;gap:3px}.bar-track>div{height:2px;background:var(--border)}.bar-fill{height:100%;width:0;background:var(--accent)}#downloads{display:flex;flex-direction:column;gap:10px;margin:15px 0;font:400 11px/1.5 var(--mono)}
.app-viewer dialog{width:calc(100% - 36px);max-width:650px;max-height:85dvh;border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:0;background:var(--surface);color:var(--ink);box-shadow:none}
.app-viewer dialog::backdrop{background:color-mix(in srgb,var(--page) 75%,transparent)}#detail-content{padding:31px}.app-viewer #close-detail{position:absolute;top:14px;right:14px;background:var(--surface)}
.app-viewer dialog h2{font-size:39px;margin:13px 45px 22px 0;font-weight:400}.app-viewer dialog p,.app-viewer dialog li{color:var(--ink-2);font:400 16px/1.65 var(--serif)}.app-viewer dialog li{margin:9px 0}.app-viewer dialog a{font-size:13px}.app-viewer dialog .notice{padding:13px 17px;background:var(--accent-soft);border-left:2px solid var(--accent)}
.app-viewer dialog .run-item{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;margin-top:8px;padding:14px;border-radius:var(--radius-sm);background:var(--surface);text-align:left;color:var(--ink);font-family:var(--serif);font-size:16px}.run-item>span:last-child{font:400 10px/1.5 var(--mono);color:var(--accent);white-space:nowrap}.run-item small{display:block;font:400 10px/1.6 var(--mono);color:var(--ink-2);margin-top:6px}.run-list{max-height:49dvh;overflow:auto;scrollbar-width:thin}
.replay-download-list{display:flex;flex-direction:column;gap:10px;margin:19px 0}.replay-download{display:flex;align-items:center;justify-content:space-between;gap:18px;text-decoration:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:16px;background:var(--surface)}.replay-download:hover{background:var(--accent-soft);border-color:var(--accent)}.replay-download strong{display:block;font:400 19px/1.3 var(--display);color:var(--ink)}.replay-download small{display:block;margin-top:6px;color:var(--ink-2);font:400 10px/1.5 var(--mono)}.replay-download>span:last-child{font:400 10px/1.5 var(--mono);white-space:nowrap}
.replay-mode .drawer,.replay-mode #toggle-settings,.replay-mode .preview-tools{display:none!important}
.export-only{display:none}.export-mode *{transition:none!important;animation:none!important}.export-mode .drawer,.export-mode #toggle-settings,.export-mode .header-actions,.export-mode .state,.export-mode .camera-buttons,.export-mode .camera-button,.export-mode .playback,.export-mode .status-line,.export-mode .preview-tools{display:none!important}.export-mode .export-only{display:block}.export-attribution{font:400 11px/1.5 var(--mono);color:var(--ink-2)}
.app-viewer.export-mode{--topbar-height:86px;--page-gutter:36px}.export-mode .workspace{padding-top:22px}.export-mode .panes{gap:22px}.export-mode .pane-heading{height:93px;flex-basis:93px;padding:23px 27px 15px}.export-mode .pane-heading h1,.export-mode .pane-heading h2{font-size:34px}.export-mode .layer-tabs{margin-left:27px}.export-mode .layer-tabs button{font-size:11px}.export-mode .body-context{padding-left:27px;font-size:11px}.export-mode .metrics{min-height:101px;margin-top:20px;padding-block:17px}.export-mode .metrics strong{font-size:33px}.export-mode .metrics span{font-size:10px}.export-mode .current-card{min-height:115px;padding-bottom:20px}.export-mode .current-card p{font-size:46px}.export-mode .current-card .eyebrow{font-size:9px}.export-mode #clock{font-size:18px}.export-mode #clock small{font-size:13px}
@media(max-width:1390px){.app-viewer{--page-gutter:18px}.app-viewer header{gap:11px}.brand strong{font-size:28px}.brand small{font-size:7px;letter-spacing:.08em}.state{font-size:8px;max-width:135px}.header-actions{gap:6px}.app-viewer .header-actions button{font-size:10px;padding-inline:12px}.app-viewer .header-actions .icon-button{font-size:22px;padding:0}.drawer{width:280px;flex-basis:280px}.drawer-scroll,.run-controls{padding-left:16px;padding-right:16px}.pane-heading{padding-inline:16px;gap:8px}.app-viewer .pane-heading h1,.app-viewer .pane-heading h2{font-size:23px}.app-viewer .camera-button{font-size:8px;padding-inline:8px}.layer-tabs{margin-inline:16px;max-width:calc(100% - 32px)}.app-viewer .layer-tabs button{font-size:9px;padding-inline:10px}.body-context{padding-inline:16px;font-size:9px}.layer-legend,.body-legend{padding-inline:16px;font-size:8px}.geometry-label,.body-legend>span{font-size:10px}.metrics{gap:15px}.metrics span{font-size:8px}.metrics strong{font-size:25px}#result-summary{display:none}}
@media(max-width:1100px){.app-viewer:not(.export-mode) .drawer{position:absolute;top:var(--topbar-height);bottom:0;left:0;z-index:10;width:302px;border-right:1px solid var(--ink-3)}.drawer-hidden .drawer{width:0!important;border:0!important}.state{display:none}.brand strong{font-size:29px}.app-viewer .pane-heading h1,.app-viewer .pane-heading h2{font-size:27px}.geometry-label{display:none}.playback-label{display:none}}
@media(max-height:820px) and (min-width:761px){.app-viewer:not(.export-mode){--topbar-height:66px}.app-viewer:not(.export-mode) .workspace{padding-top:13px}.app-viewer:not(.export-mode) .pane-heading{height:65px;flex-basis:65px;padding-top:12px;padding-bottom:8px}.app-viewer:not(.export-mode) .pane-heading h1,.app-viewer:not(.export-mode) .pane-heading h2{font-size:24px;margin-top:5px}.app-viewer:not(.export-mode) .metrics{min-height:71px;padding-block:10px;margin-top:12px}.app-viewer:not(.export-mode) .metrics span{min-height:24px}.app-viewer:not(.export-mode) .metrics strong{font-size:24px}.app-viewer:not(.export-mode) .current-card{min-height:78px;padding-block:10px}.app-viewer:not(.export-mode) .current-card p{font-size:32px;margin-top:4px}.app-viewer:not(.export-mode) .playback{min-height:53px;flex-basis:53px;padding-bottom:8px}.app-viewer:not(.export-mode) .status-line{min-height:26px;flex-basis:26px}.app-viewer:not(.export-mode) .layer-legend,.app-viewer:not(.export-mode) .body-legend{min-height:46px;flex-basis:46px;padding-block:7px}.app-viewer:not(.export-mode) .scene-footnote{font-size:8px}.app-viewer:not(.export-mode) #motor-extra{font-size:7px}.app-viewer:not(.export-mode) .drawer-scroll{padding-top:16px}}
@media(max-width:760px){.app-viewer{height:auto;min-height:100dvh;overflow:visible;--topbar-height:125px;--page-gutter:16px}.app-viewer header{height:auto;min-height:var(--topbar-height);padding-block:13px;flex-wrap:wrap;gap:10px 12px}.brand{flex:1;min-width:calc(100% - 70px)}.brand strong{font-size:30px}.brand small{font-size:7px;letter-spacing:.08em}.header-actions{width:100%;gap:7px;justify-content:flex-start}.app-viewer .header-actions button{font-size:10px}.app-viewer .header-actions .quiet{display:block;padding-inline:4px}.app-viewer .header-actions .secondary{padding-inline:13px}.app-viewer .theme-control{margin-left:auto}.app-viewer .header-actions .icon-button{min-width:40px;width:40px}.app-viewer main{display:block;min-height:0}.workspace{padding-top:16px}.panes{grid-template-columns:minmax(0,1fr);gap:15px;flex:none;min-height:0}.pane{height:430px}.app-viewer .pane-heading h1,.app-viewer .pane-heading h2{font-size:28px}.pane-heading{height:79px;flex-basis:79px;padding:17px 18px 11px}.app-viewer .camera-button{font-size:9px;padding-inline:12px}.body-context{font-size:10px;padding-inline:18px}.layer-tabs{margin-inline:18px}.app-viewer .layer-tabs button{font-size:10px;padding-inline:13px}.layer-legend,.body-legend{font-size:9px;padding-inline:18px;min-height:49px;flex-basis:49px}.geometry-label{display:inline;font-size:10px}.scene-footnote{font-size:8px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 15px;padding:19px 0;margin-top:5px}.metrics>div:nth-child(2){border:0}.metrics strong{font-size:29px}.metrics span{font-size:9px;min-height:28px}.current-card{min-height:111px;gap:15px;padding-block:19px}.app-viewer .current-card p{font-size:36px}.current-card .eyebrow{font-size:7px}#clock{font-size:12px}#clock small{font-size:9px}.playback{position:sticky;bottom:0;z-index:7;margin-inline:calc(-1 * var(--page-gutter));padding:9px var(--page-gutter);background:var(--page);border-top:1px solid var(--border-strong);min-height:68px;flex-basis:68px;gap:13px}.status-line{white-space:normal;min-height:53px;padding-block:10px;margin-bottom:8px;line-height:1.6}.app-viewer:not(.export-mode) .drawer{top:var(--topbar-height);position:fixed;max-width:calc(100% - 30px);bottom:0;z-index:9}.app-viewer .preview-tools{flex-wrap:wrap}.preview-badge{width:100%}.app-viewer dialog h2{font-size:33px}#detail-content{padding:25px}.app-viewer.export-mode{height:100dvh;overflow:hidden;min-height:650px;--topbar-height:70px}.export-mode header{flex-wrap:nowrap;min-height:70px}.export-mode .brand{min-width:0}.export-mode .brand strong{font-size:25px}.export-mode .export-attribution{font-size:8px}.export-mode main{display:flex;flex:1}.export-mode .panes{grid-template-columns:1fr 1fr;flex:1}.export-mode .pane{height:auto}.export-mode .metrics{grid-template-columns:repeat(4,minmax(0,1fr));padding-block:12px;gap:10px}.export-mode .current-card{min-height:85px}.export-mode .current-card p{font-size:30px}.export-mode .metrics strong{font-size:22px}.export-mode .metrics span{font-size:7px}.export-mode .pane-heading h1,.export-mode .pane-heading h2{font-size:22px}}
@media(max-width:390px){.app-viewer{--page-gutter:12px}.brand strong{font-size:27px}.brand-mark{font-size:32px}.brand small{font-size:6px}.app-viewer .header-actions button{font-size:9px}.app-viewer .header-actions .secondary{padding-inline:10px}.app-viewer .header-actions .icon-button{min-width:35px;width:35px}.app-viewer .pane-heading h1,.app-viewer .pane-heading h2{font-size:24px}.app-viewer .camera-button{font-size:8px;padding-inline:9px}.body-context{font-size:9px}.layer-tabs{margin-inline:14px}.app-viewer .layer-tabs button{font-size:9px;padding-inline:12px}.geometry-label{display:none}.app-viewer .current-card p{font-size:31px}.metrics span{font-size:8px}.metrics strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){:root{--motion-ok:0}.app-viewer *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.app-viewer{height:auto;overflow:visible;background:#f1ece1;color:#211e18}.app-viewer header{border-bottom:1px solid #c7bea9}.app-viewer main,.workspace{display:block}.drawer,.header-actions,#toggle-settings,.state,.playback,.preview-tools,.camera-buttons,.camera-button,.status-line,.skip-link{display:none!important}.workspace{padding:20px 0}.panes{display:grid;grid-template-columns:1fr 1fr;gap:12px;break-inside:avoid}.pane{height:390px;break-inside:avoid}.metrics{break-inside:avoid}.current-card{break-inside:avoid}.app-viewer dialog{display:none}.app-viewer .brand{color:inherit}}
/* Narrow screens keep every action legible and preserve a 44 px touch target. */
@media(max-width:760px){.app-viewer:not(.export-mode) .pane-heading{height:auto;min-height:79px;flex-basis:auto}.pane-heading>div:first-child{min-width:0}.brand>span:last-child{min-width:0}}
@media(max-width:520px){.app-viewer:not(.export-mode){--topbar-height:177px}.app-viewer:not(.export-mode) .header-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:8px}.app-viewer:not(.export-mode) .header-actions .quiet{grid-column:1;grid-row:1}.app-viewer:not(.export-mode) .header-actions .secondary{grid-column:2;grid-row:1}.app-viewer:not(.export-mode) .header-actions .icon-button{grid-column:3;grid-row:1;width:44px;min-width:44px}.app-viewer:not(.export-mode) .theme-control{grid-column:1 / -1;grid-row:2;width:100%;margin:0}.app-viewer:not(.export-mode) .header-actions button{font-size:10px}.app-viewer:not(.export-mode) .header-actions .icon-button{font-size:22px}.app-viewer:not(.export-mode) .brand small{font-size:6px;letter-spacing:.07em}}

/* A single quiet frame, three directly selectable themes. */
.theme-switch{display:inline-grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;flex-shrink:0;gap:2px;padding:3px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:transparent}
.app-viewer .header-actions .theme-switch button,.catalog .theme-switch button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;margin:0;padding:8px 10px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-2);font:400 10px/1.4 var(--mono);white-space:nowrap;transition:background-color 160ms ease,color 160ms ease}
.app-viewer .header-actions .theme-switch button:hover,.catalog .theme-switch button:hover{background:var(--surface-2);color:var(--ink)}
.app-viewer .header-actions .theme-switch button[aria-pressed=true],.catalog .theme-switch button[aria-pressed=true]{background:var(--ink);color:var(--page)}
.theme-switch svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.theme-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media(min-width:981px) and (max-width:1390px){.app-viewer .theme-switch button span{display:none}.app-viewer .header-actions .theme-switch button{padding-inline:10px}}
@media(min-width:761px) and (max-width:980px){.app-viewer:not(.export-mode){--topbar-height:125px}.app-viewer:not(.export-mode) header{flex-wrap:wrap;padding-block:10px;gap:8px 12px}.app-viewer:not(.export-mode) .brand{flex:1}.app-viewer:not(.export-mode) .header-actions{width:100%;justify-content:flex-end}}
@media(max-width:760px){.app-viewer:not(.export-mode){--topbar-height:138px}.app-viewer .theme-switch{margin-left:auto}.app-viewer .header-actions .theme-switch button{padding-inline:8px}}
@media(min-width:521px) and (max-width:680px){.app-viewer .theme-switch button span{display:none}}
@media(max-width:520px){.app-viewer:not(.export-mode){--topbar-height:186px}.app-viewer:not(.export-mode) .theme-switch{width:100%;margin:0}}

/* Shared select-only combobox: native selects keep values but never open a popup. */
.app-viewer select.select-source{display:none!important}
.select-control{position:relative;min-width:0;width:100%}
.app-viewer .select-control .select-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:44px;min-height:44px;padding:10px 11px;border:1px solid var(--ink-3);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:400 11px/1.5 var(--mono);text-align:left}
.app-viewer .select-control .select-trigger:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-2);color:var(--ink)}
.app-viewer .select-control .select-trigger[aria-expanded=true]{border-color:var(--accent)}
.select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-chevron{display:block;width:14px;height:14px;min-width:14px;flex:0 0 14px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.select-trigger[aria-expanded=true] .select-chevron{transform:rotate(180deg)}
.inline>.select-control:first-child{flex:1.25}.inline>.select-control:last-child{flex:1}
.app-viewer .playback .select-control{width:80px;flex:0 0 80px}
.app-viewer .playback .select-control .select-trigger{height:44px;min-height:44px;padding:8px 12px;border-color:var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);font-size:10px}
.app-viewer .preview-tools .select-control{width:auto;max-width:50%;flex:0 1 340px}
.app-viewer .preview-tools .select-control .select-trigger{font-size:10px}
.select-listbox{position:fixed;inset:auto;z-index:1000;margin:0;padding:5px;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);box-shadow:none}
.select-listbox::backdrop{background:transparent}
.app-viewer .select-listbox .select-option{position:relative;display:block;width:100%;min-width:44px;min-height:44px;margin:0;padding:11px 32px 11px 12px;border:0;border-radius:5px;background:transparent;color:var(--ink-2);font:400 11px/1.5 var(--mono);text-align:left;white-space:normal;overflow-wrap:anywhere;transition:none}
.app-viewer .select-listbox .select-option:hover:not(:disabled),.app-viewer .select-listbox .select-option.is-active{background:var(--surface-2);color:var(--ink)}
.app-viewer .select-listbox .select-option[aria-selected=true]{color:var(--accent);background:var(--accent-soft)}
.app-viewer .select-listbox .select-option[aria-selected=true]::after{content:"";position:absolute;right:14px;top:50%;width:5px;height:9px;margin-top:-6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.app-viewer .select-listbox .select-option.is-active{outline:1px solid var(--ink-3);outline-offset:-2px}
@media(max-width:520px){.app-viewer .preview-tools .select-control{flex:1;max-width:calc(100% - 106px)}}
@media print{.select-listbox{display:none!important}}
