.cpx{--bg:var(--paper);--panel:#fffefa;--text:var(--ink);--muted:var(--ink-soft);--line:#c9d2ce;--teal:#0c7065;--on-teal:#fff;--copper:var(--copper-text);--mono:"DM Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--sans:inherit;background:var(--bg);color:var(--text);max-width:none;padding:0}.cpx>section{width:var(--shell-width);margin-inline:auto;padding-inline:0}.lab-hero-art .hero-wire{stroke:#4a6a72;stroke-width:2px}.lab-hero-art .hero-cell{fill:#16333b;stroke:#6d8c86;stroke-width:1.5px}.lab-hero-art .hero-cell-low{fill:var(--mint);stroke:var(--night);stroke-width:2px}.lab-hero-art .hero-cell-read{fill:var(--mint);stroke:var(--copper-on-night);stroke-width:3.5px}.lab-hero-art .hero-cell-sneak{fill:#3a2818;stroke:var(--copper-on-night);stroke-width:2.5px}.lab-hero-art .hero-sneak{fill:none;stroke:var(--copper-on-night);stroke-width:3px;stroke-dasharray:8 6}.cpx h2{font:700 clamp(2rem, 4.6vw, 3.4rem)/1 var(--sans);letter-spacing:-.06em;margin:.2rem 0 .8rem}.cpx h3{font:700 1.3rem/1.3 var(--sans);margin:0 0 .5rem}.cpx p{max-width:var(--lab-measure);margin:0 0 1rem}.cpx a{color:var(--teal)}.cpx .eyebrow{color:var(--teal);font:500 .8rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0}.cpx .guide,.cpx .bench{margin-top:clamp(3rem,6vw,5.5rem)}.cpx .guide-lede{color:var(--muted)}.cpx .chapter{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1rem}.cpx .chapter-lede{color:var(--muted)}.cpx .chapter-body{grid-template-columns:minmax(0,30rem) minmax(0,1fr);align-items:start;column-gap:2rem;display:grid}.cpx .chapter-body>.stage{display:contents}.cpx .chapter-body .stage-vis{grid-area:1/1/span 3}.cpx .chapter-body .presets{grid-area:1/2}.cpx .chapter-body .chapter-controls{grid-area:2/2}.cpx .chapter-body .stage-text{grid-area:3/2}.cpx .presets{gap:.75rem;margin:0 0 1.25rem;padding:0;list-style:none;display:grid}.cpx .preset{grid-template-columns:minmax(10rem,13rem) minmax(0,1fr);align-items:start;gap:.25rem 1rem;display:grid}.cpx .preset-caption{color:var(--muted);margin:0;font-size:.92rem;line-height:1.5}.cpx .stage-vis{aspect-ratio:480/540;background:var(--night-panel);border:1px solid var(--night-line);--text:var(--on-night);--muted:var(--on-night-soft);--teal:var(--mint);--copper:var(--copper-on-night);width:100%;min-width:0}.cpx .scene-svg{width:100%;height:100%;display:block}.cpx .scene-svg .cell{fill:var(--mint);stroke:var(--night-line);stroke-width:1px}.cpx .scene-svg .cell.is-selected{stroke:var(--copper-on-night);stroke-width:3px}.cpx .scene-svg .axis{stroke:var(--on-night-soft);stroke-width:1px}.cpx .scene-svg .col-bar{fill:var(--mint)}.cpx .scene-svg .col-ideal{fill:none;stroke:var(--copper-on-night);stroke-width:2px;stroke-dasharray:4 3}.cpx .stage-text{min-width:0}.cpx .stage-label{color:var(--muted);font:500 .8rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .4rem}.cpx .stage-box{position:relative}.cpx .stage-sizer{visibility:hidden;display:grid}.cpx .stage-sizer>.stage-block{grid-area:1/1}.cpx .stage-live{position:absolute;inset:0}.cpx .stage-speed{color:var(--teal);font:700 1.35rem/1.25 var(--mono);margin:0 0 .5rem}.cpx .stage-binding{font-weight:600}.cpx .stage-facts{color:var(--muted);margin:0 0 .75rem;padding-left:1.1rem;font-size:.92rem}.cpx .stage-key{color:var(--muted);margin:0;font-size:.85rem;line-height:1.45}.cpx .stage-fig{min-width:0;margin:1.25rem 0 0}.cpx .stage-cap{color:var(--muted);margin-bottom:.4rem;font-size:.9rem}.cpx .chart{width:100%;min-width:0;min-height:164px}.cpx .chart-svg{max-width:none;display:block}.cpx .chart-svg text{font-family:var(--mono);fill:var(--muted);font-size:12px}.cpx .chart-svg .value-text{fill:var(--text);font-weight:700}.cpx .chart-svg .grid{stroke:var(--line);stroke-width:1px}.cpx .chart-svg .curve-line{fill:none;stroke:var(--teal);stroke-width:2.5px;stroke-linejoin:round}.cpx .chart-svg .curve-dot{fill:var(--panel);stroke:var(--teal);stroke-width:2px}.cpx .chart-svg .curve-dot.is-current{fill:var(--copper);stroke:var(--panel);stroke-width:2px}.cpx .step-button{border:1px solid var(--text);width:100%;min-height:44px;color:var(--text);font:500 .85rem/1.25 var(--mono);text-align:left;cursor:pointer;background:0 0;padding:0 .75rem;transition:background-color .15s,color .15s}.cpx .step-button:hover{background:#e3ece7}.cpx .step-button[aria-pressed=true]{background:var(--text);color:var(--bg)}.cpx .controls{border:1px solid var(--line);border-top:4px solid var(--teal);background:var(--panel);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin-bottom:1.25rem;padding:1.35rem;display:grid}.cpx .chapter-controls{margin-top:0}.cpx .control{min-width:0;font:500 .85rem/1.3 var(--mono);color:var(--muted);gap:.3rem;display:grid}.cpx .control output{min-width:9ch;color:var(--copper);font-weight:700;display:inline-block}.cpx .share{margin:0 0 1.25rem}.cpx .share-btn{border:1px dashed var(--text);min-height:44px;color:var(--text);font:500 .85rem/1.25 var(--mono);cursor:pointer;background:0 0;padding:0 1rem;transition:background-color .15s,color .15s}.cpx .share-btn:hover{background:#e3ece7}.cpx .share-btn:focus-visible,.cpx .share-url:focus-visible{outline:3px solid var(--copper);outline-offset:2px}.cpx .share-status{height:1.4em;color:var(--teal);font:.78rem/1.4 var(--mono);margin:.7rem 0 0;overflow:hidden}.cpx .share-fallback{margin-top:.5rem}.cpx .share-fallback[hidden]{visibility:hidden;display:block}.cpx .share-url{border:1px solid var(--line);background:var(--panel);width:100%;max-width:100%;min-height:44px;color:var(--text);font:1rem var(--mono);padding:0 .5rem}.cpx select{text-overflow:ellipsis;border:1px solid var(--line);background:var(--panel);width:100%;min-width:0;min-height:44px;color:var(--text);font:1rem var(--sans);padding:0 .5rem}.cpx input[type=range]{width:100%;min-height:44px;accent-color:var(--teal)}.cpx .bench>.stage{grid-template-columns:minmax(0,30rem) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.cpx .guide-term{border:0;border-bottom:1px dotted var(--teal);color:inherit;font:inherit;cursor:help;background:0 0;padding:0}.lab-notes-prose{position:relative}.cpx .guide-term-wrap,.lab-notes .guide-term-wrap{position:static}.lab-notes .guide-term{border:0;border-bottom:1px dotted var(--teal);color:inherit;font:inherit;cursor:help;background:0 0;padding:0}.lab-notes .guide-def{z-index:5;border:1px solid var(--line);background:var(--panel);width:auto;max-width:22rem;color:var(--ink);margin-top:1.6em;padding:.6rem .75rem;font-size:.88rem;line-height:1.45;position:absolute;left:0;right:0;box-shadow:0 6px 20px #0000002e}.lab-notes .guide-def[hidden]{display:none}@media (width<=55rem){.cpx .chapter-body,.cpx .bench>.stage{grid-template-columns:minmax(0,1fr)}.cpx .chapter-body .stage-vis{margin-inline:auto;grid-area:auto/1;max-width:30rem;margin-bottom:1rem}.cpx .chapter-body .presets,.cpx .chapter-body .chapter-controls,.cpx .chapter-body .stage-text{grid-area:auto/1}.cpx .chapter-body .stage-text{order:2;margin-bottom:1.25rem}.cpx .chapter-body .chapter-controls{order:1}.cpx .chapter-body .presets{order:3}.cpx .bench .stage-vis{max-width:30rem;margin-inline:auto}.cpx .preset{grid-template-columns:minmax(0,1fr)}}
