:root{color-scheme:dark;--mint:#a0ffda;--muted:#a0adb9;--line:#293740;font-family:Inter,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:#090d12;color:#edf3f5;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,[tabindex]{outline-offset:5px} :focus-visible{outline:2px solid var(--mint)}button{cursor:pointer}em{font-style:normal;color:var(--mint)}.skip{position:absolute;top:-100px;background:var(--mint);color:#090d12;padding:10px}.skip:focus{top:5px;z-index:10}.lab-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 4vw;border-bottom:1px solid var(--line);font-size:12px}.lab-brand{font-size:34px;font-weight:800;letter-spacing:-3px}.lab-brand>span:first-child{color:var(--mint)}.lab-brand-label{font:9px Consolas,monospace;letter-spacing:.12em;margin-left:18px;color:var(--muted)}main{max-width:1600px;margin:auto;padding:40px 4vw}.lab-intro{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:34px}.eyebrow{font:9px/1.7 Consolas,monospace;letter-spacing:.12em;color:var(--muted)}h1{font-size:clamp(34px,4vw,58px);line-height:1.12;font-weight:550;letter-spacing:-.05em;margin:12px 0}.lab-intro>p{font-size:12px;color:var(--muted)}.lab-layout{display:grid;grid-template-columns:1fr 310px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.lab-stage{position:relative;min-width:0;isolation:isolate;background:radial-gradient(ellipse at center,#14313b88,transparent 65%)}.lab-stage:before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#8aa9bf08 1px,transparent 1px),linear-gradient(90deg,#8aa9bf08 1px,transparent 1px);background-size:44px 44px}.stage-header,.stage-footer{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;font:10px Consolas,monospace;color:var(--muted);gap:12px}.stage-footer{min-height:74px}.scene{height:490px;position:relative;cursor:grab;touch-action:none;overflow:hidden}.scene:active{cursor:grabbing}.scene canvas{display:block;width:100%;height:100%}.scene-fallback{position:absolute;inset:0;width:100%;height:100%;opacity:.6}.scene[data-ready] .scene-fallback{display:none}.controls{padding:27px;background:#101820;border-left:1px solid var(--line)}h2{font-weight:550;font-size:24px;line-height:1.25;letter-spacing:-.03em}.controls h2{margin:12px 0 24px}.controls label{display:block;font-size:11px;color:#c4d0d9;margin:20px 0 9px}.controls select{width:100%;border:1px solid #394954;border-radius:3px;background:#0c1219;color:#eef5f6;padding:12px 8px;font-size:11px}.controls output{float:right;color:var(--mint);font-family:Consolas,monospace}.controls input{width:100%;accent-color:var(--mint)}.reset{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:25px;padding:11px 13px;color:var(--mint);border:1px solid #4a695d;border-radius:3px;background:transparent;font-size:11px}.pause{width:34px;height:34px;border:1px solid #476357;background:#182c25;color:var(--mint);border-radius:50%}.instructions{font-size:10px;color:var(--muted);margin-top:20px}.explanation{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;padding:48px 0}.explanation h2{margin-top:13px}.explanation p{font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}footer a{color:var(--mint)}[hidden]{display:none!important}button:disabled,select:disabled,input:disabled{opacity:.45;cursor:default}@media(max-width:850px){.lab-layout{grid-template-columns:1fr 260px}.scene{height:490px}.controls{padding:22px}.lab-intro>p{display:none}.explanation{grid-template-columns:1fr;gap:5px}.explanation h2{margin-bottom:5px}}@media(max-width:620px){main{padding:28px 20px}.lab-header{padding:15px 20px}.lab-brand-label{font-size:7px;letter-spacing:0;margin-left:9px}.lab-header>a:last-child{font-size:10px}.lab-layout{grid-template-columns:1fr}.scene{height:370px}.controls{border-left:0;border-top:1px solid var(--line)}.stage-header,.stage-footer{padding-inline:18px;font-size:9px}.lab-intro{margin-bottom:25px}.explanation{padding-block:30px}footer{flex-direction:column;gap:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
