:root{color-scheme:light;--ink:#161616;--dim:#737373;--line:#dedede;--accent:#161616;--mono:'IBM Plex Mono',monospace;--display:'Lora',Georgia,serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#bbb;color:var(--ink)}body{font:14px/1.5 system-ui,sans-serif}button,input,a,summary{-webkit-tap-highlight-color:transparent}button,a,input,summary{touch-action:manipulation}button{cursor:pointer;color:inherit;font:inherit}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #222;outline-offset:4px}a{color:inherit;text-underline-offset:3px}[hidden]{display:none!important}canvas{display:block;position:fixed;inset:0;z-index:0;touch-action:none}.site-nav{position:fixed;z-index:4;top:0;left:0;right:0;padding:22px 32px;display:flex;align-items:center;gap:28px;font:500 12px var(--mono);background:#bbb}.site-nav a{text-decoration:none}.site-nav .brand{font:800 14px Manrope,sans-serif;letter-spacing:1px;color:#fff}.site-nav>span{margin-left:auto;color:#555;font-size:11px}#ui{position:fixed;left:32px;top:76px;width:352px;max-height:calc(100dvh - 96px);overflow:auto;scrollbar-width:thin;z-index:3;padding:0 4px 12px 0}.intro{padding:0 4px 20px}.eyebrow{font:500 10px var(--mono);text-transform:uppercase;letter-spacing:1.3px;margin:0 0 14px;color:#525252}h1{font:500 52px/1.03 var(--display);letter-spacing:-2.5px;margin:0}h1 em{font-weight:500}.model-name{font:500 10px var(--mono);margin:16px 0 0;display:flex;gap:10px;align-items:center}.model-name span{margin-left:auto}.model-name a{color:#555;text-decoration:none}.control-card{background:#fff;border-radius:12px;padding:18px;box-shadow:0 3px 16px #00000009}.chapters{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-bottom:1px solid var(--line);padding-bottom:14px}.chapters button{border:0;background:none;font:500 11px var(--mono);padding:7px 3px;text-align:left;color:#888}.chapters span{display:block;font-size:9px;margin-bottom:4px}.chapters button[aria-pressed=true]{color:#111}.chapters button[aria-pressed=true] span{font-weight:700}.chapter-copy{padding:17px 0 16px}.chapter-copy h2{font:600 23px/1.12 var(--display);letter-spacing:-.7px;margin:0 0 10px}.chapter-copy p{font-size:12px;line-height:1.55;color:#666;margin:0;min-height:55px}.range-heading,.range-ends{display:flex;justify-content:space-between;align-items:center;font:500 10px var(--mono)}.range-heading output{color:#777}.range-ends{color:#999;font-size:9px;margin:2px 0 16px}input[type=range]{width:100%;accent-color:#222;cursor:ew-resize;margin:12px 0 5px;height:20px}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip,.layout-switch button{border:1px solid #ddd;background:#fff;border-radius:5px;padding:7px 9px;font:500 10px var(--mono);white-space:nowrap}.chip[aria-pressed=true],.chip[aria-current=true],.layout-switch button[aria-pressed=true]{background:#222;color:#fff;border-color:#222}.hint{font:400 10px/1.5 var(--mono);color:#777;margin:10px 0}.play-row{display:flex;gap:8px;margin-top:14px}.btn{border:1px solid #222;background:#222;color:#fff;border-radius:6px;padding:11px 13px;font:600 11px var(--mono);flex:1}.btn.ghost{background:#fff;color:#333;border-color:#ddd}.utility{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid #eee}.chk{display:flex;align-items:center;gap:6px;font:400 10px var(--mono);margin:7px 0;color:#777}.chk input{accent-color:#222}.text-button{border:0;background:none;font:500 10px var(--mono);padding:7px 0;color:#777}.layout-switch{display:flex;gap:6px;margin:15px 0}.light-options{display:grid;gap:5px}.light-options button{border:1px solid #e6e6e6;background:white;border-radius:6px;text-align:left;padding:10px 12px}.light-options b{display:block;font:500 11px var(--mono)}.light-options span{display:block;font-size:11px;color:#888;margin-top:3px}.light-options [aria-pressed=true]{border-color:#222;background:#f4f4f4}#advanced,.credits{margin-top:12px;font-size:11px;color:#555}#advanced{background:#ffffff91;border-radius:8px;padding:0 14px}summary{font:500 10px var(--mono);cursor:pointer;padding:14px 0}summary span{float:right;color:#888}.credits{padding:0 4px}.credits p{margin-top:0;font-size:11px;line-height:1.6}.row{display:flex;gap:7px;align-items:center}.row label{width:78px;flex-shrink:0;font:10px var(--mono)}.row output{width:40px;text-align:right;font:10px var(--mono)}.hd{font:600 10px var(--mono);text-transform:uppercase;margin:14px 0 8px}hr{border:0;border-top:1px solid #ddd;margin:12px 0}#stat{font:9px/1.6 var(--mono);white-space:pre;margin:12px 0}.stage-hint{position:fixed;z-index:2;left:420px;right:24px;bottom:18px;text-align:center;color:#555;font:400 10px var(--mono);pointer-events:none}.stage-hint span{padding:0 8px}#boot{position:fixed;z-index:8;left:420px;right:0;top:48%;text-align:center;font:12px var(--mono);color:#555}#err{display:none;position:fixed;z-index:9;left:440px;right:24px;top:35%;white-space:pre-line;color:#822;font:12px/1.6 var(--mono)}
@media(max-width:719px){.site-nav{padding:18px 18px;gap:20px;font-size:10px}.site-nav>span{font-size:9px}#ui{inset:0;width:auto;max-height:none;padding:0;overflow:visible;pointer-events:none}.intro{position:fixed;top:70px;left:20px;right:20px;padding:0;pointer-events:auto}.eyebrow{font-size:8px;margin-bottom:7px}h1{font-size:31px;letter-spacing:-1.3px}h1 br{display:none}h1 em{margin-left:7px}.model-name{font-size:9px;margin-top:9px;max-width:310px}.control-card{position:fixed;left:10px;right:10px;bottom:10px;max-height:43dvh;overflow:auto;pointer-events:auto;padding:14px;border-radius:10px}.chapters{padding-bottom:8px}.chapters button{font-size:11px;padding:4px}.chapters span{display:inline;margin-right:7px}.chapter-copy{padding:12px 0}.chapter-copy h2{font-size:21px;margin-bottom:7px}.chapter-copy p{min-height:0;font-size:11px}.range-ends{margin-bottom:11px}.utility{margin-top:12px;padding-top:6px}.chip{padding:7px 10px}.stage-hint{left:10px;right:10px;bottom:45dvh;font-size:8px}#advanced,.credits{display:block;pointer-events:auto}#boot{left:0;top:32%;font-size:10px}#err{left:20px;right:20px;top:25%}.play-row{margin-top:10px}.light-options button{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.stage-tools{position:fixed;z-index:3;bottom:46px;left:calc(50% + 205px);transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:9px;background:#ffffffed;box-shadow:0 2px 12px #0000000a;white-space:nowrap}.stage-tools button{border:0;background:transparent;border-radius:5px;min-width:34px;min-height:34px;font:12px var(--mono)}.stage-tools button[aria-pressed=true]{background:#222;color:#fff}.gesture-switch{display:flex;gap:2px;margin-right:5px}.gesture-switch button{padding:0 10px;font-size:10px}@media(max-width:719px){.stage-tools{left:50%;bottom:calc(43dvh + 24px)}.stage-hint{display:none}.stage-tools button{min-height:36px}}

/* One continuous lab panel: all instruments and source notes stay in view. */
.control-card>.utility{margin:0;padding:0 0 12px;position:sticky;top:0;background:white;z-index:2}.lab-section{padding:22px 0;border-top:1px solid var(--line)}.lab-section h2,.credits h2{font:600 25px/1.15 var(--display);letter-spacing:-.6px;margin:0 0 16px}.lab-section h2>span{font:500 10px var(--mono);color:#999;display:inline-block;width:28px;letter-spacing:0}.lab-note{font:12px/1.65 system-ui,sans-serif;color:#666;margin:14px 0}.source-link{font:9px var(--mono);white-space:nowrap;color:#888}.lab-section>.lab-note:first-of-type{margin-top:0}.lab-section .chk{font:11px/1.5 var(--mono);padding:4px 0;margin:3px 0;align-items:flex-start}.lab-section .chk input{margin-top:3px}.lab-section .row label{width:115px;font-size:10px}.lab-section .row output{flex-shrink:0}.lab-section .row input{min-width:0}.lab-section .chips{gap:6px}.lab-section .chip{font-size:10px;padding:8px 9px}.credits{border-top:1px solid var(--line);padding:22px 0 4px;margin:0}.credits h2{font-size:20px}.credits p{color:#888}#ui{overscroll-behavior:contain}.control-card{overscroll-behavior:contain}@media(max-width:719px){.control-card>.utility{top:0;padding-bottom:10px}.lab-section{padding:20px 0}.lab-section h2{font-size:23px}.lab-section .chk{padding:7px 0}.lab-note{font-size:12px}.lab-section .row input{height:28px}.lab-section .chip{min-height:36px}}

.model-name{display:block;margin:14px 0 5px;font-size:11px}.model-tech{font:10px/1.7 var(--mono);color:#555;margin:0}.asset-note{font:10px/1.4 system-ui,sans-serif;color:#737373;margin:5px 0 0}.mode-readout{font:11px/1.6 system-ui,sans-serif;color:#666;padding:12px;background:#f5f5f5;border-radius:5px;margin:12px 0}.stage-tools{bottom:24px}.stage-tools #stageReset{font-size:10px;padding:0 9px}.loop-control{margin-top:10px!important}.loop-control input{flex-shrink:0}@media(max-width:719px){h1{font-size:29px}.model-name{margin-top:8px;font-size:10px}.model-tech{font-size:9px;line-height:1.55}.asset-note{font-size:9px;max-width:340px}.stage-tools{bottom:calc(43dvh + 24px)}}

body,.site-nav{background:var(--stage-background,#bbb)}body[data-studio-tone=dark] .intro,body[data-studio-tone=dark] .site-nav{color:#eee}body[data-studio-tone=dark] .intro p,body[data-studio-tone=dark] .site-nav>span{color:#bac3d1}.lighting-presets{margin-bottom:12px}.lighting-presets button{flex-grow:1;padding:10px}.lighting-presets [data-lighting=red]:before{content:'●';color:#b51d39;margin-right:5px}.lighting-presets [data-lighting=night]:before{content:'●';color:#6d9fff;margin-right:5px}.lighting-presets [data-lighting=warm]:before{content:'●';color:#ce934d;margin-right:5px}
