@font-face{font-family:Barlow;src:url('/stradivari/barlow-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('/stradivari/barlow-medium.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--paper:#eee7d9;--card:#faf5ea;--stage:#f6efdf;--ink:#30333b;--muted:#65645f;--line:#d8ccb8;--accent:#964831;--accent-soft:#ead9ca;--inverse:#fff9ed;--rule:#b9ab94;--body:Barlow,system-ui,sans-serif;--reading:var(--body)}
:root[data-mode=dark]{--paper:#181f20;--card:#232c2d;--stage:#1e2829;--ink:#e9e3d5;--muted:#b5bbb5;--line:#465353;--accent:#e3a67c;--accent-soft:#493c31;--inverse:#202829;--rule:#6a7772}
body{background:var(--paper);font-family:var(--body)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.75' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.wrap{width:min(1660px,calc(100% - 42px))}
.sitebar{border-bottom:0}.sitebar .wrap{min-height:82px;gap:22px}.identity{gap:13px}.sitebar .home{font:11px var(--mono);padding-right:18px;margin-right:2px;border-color:var(--line)}
.machine-mark{width:45px;height:49px;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.sitebar h1{font:600 27px/.97 var(--display);letter-spacing:.085em;text-transform:uppercase}.sitebar h1 span{display:block;margin:0 0 7px;font:10px var(--mono);letter-spacing:.19em;color:var(--muted)}
.sitebar nav{gap:25px}.sitebar nav a{font:13px var(--body)}
.lab{margin:0 0 64px;border:1px solid var(--rule);border-radius:10px;background:var(--stage);box-shadow:0 1px 0 #fff7 inset,0 4px 12px #493a1b08;overflow:hidden}
.lab button,.lab select{font:400 13px/1.3 var(--body);min-height:34px;border:1px solid var(--line);border-radius:5px;background:var(--card);padding:7px 10px;color:var(--ink);-webkit-tap-highlight-color:transparent}
.lab button:hover,.lab button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.lab button:disabled{opacity:.45;cursor:default}.lab select{max-width:100%}
.lab-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:9px 19px;border-bottom:1px solid var(--line);font:10px var(--mono);letter-spacing:.05em}
.lab-topline>span{display:flex;align-items:baseline;gap:20px}.lab-topline small{font:13px var(--body);letter-spacing:0;color:var(--muted)}.lab-topline label{display:flex;align-items:center;gap:12px;font:10px var(--mono);color:var(--muted)}.lab-topline select{border:0;min-height:22px;padding:2px;background:transparent;font:12px var(--body)}
.lab-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:0;padding-right:14px;min-height:clamp(580px,calc(100svh - 310px),820px)}
.lab-viewport{position:relative;min-width:0;height:clamp(580px,calc(100svh - 310px),820px);isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 45% 48%,#fffaf0 0%,var(--stage) 77%)}
[data-mode=dark] .lab-viewport{background:radial-gradient(ellipse at 45% 48%,#2b3939 0%,var(--stage) 77%)}
#lab-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;outline-offset:-4px}
.lab-stage-title{position:absolute;top:20px;left:23px;z-index:2;pointer-events:none}.lab-stage-title span{font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.lab-stage-title p{font:400 13px var(--body);margin:5px 0;color:var(--muted)}
.lab-fallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:30px;pointer-events:none;background:var(--stage);z-index:3}.lab-fallback p{max-width:340px}.lab-fallback img{max-height:340px;max-width:100%;object-fit:contain}
.lab-inspector{padding:16px 17px 14px;margin:14px 0;max-height:clamp(552px,calc(100svh - 338px),792px);overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--card);box-shadow:0 1px 2px #49371c08,0 4px 8px -5px #49371c12;z-index:5;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}
.lab-chapter{display:flex;justify-content:space-between;gap:8px;font:9px var(--mono);color:var(--muted);margin-bottom:15px}.lab-chapter span:first-child{color:var(--accent)}
.lab-inspector h2{font:600 25px/1.08 var(--display);letter-spacing:.01em;margin:0 0 9px}.lab-inspector>p{font:400 14px/1.45 var(--body);margin:0 0 15px;color:var(--muted)}
.lab-main-actions{display:flex;gap:7px;margin:14px 0}.lab-main-actions button:first-child{flex:1}.lab .lab-primary{background:var(--ink);color:var(--card);border-color:var(--ink);font:500 14px var(--body);min-height:39px;text-align:left;padding-inline:13px}.lab .lab-primary:hover{background:var(--accent);color:var(--inverse)}
#lab-reset{font-size:0;width:37px}#lab-reset::before{content:'↺';font:23px/1 var(--body)}
.lab-control{display:block;margin:13px 0}.lab-control>span{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.lab-control output{font:11px var(--mono);color:var(--accent)}
.lab input[type=range]{width:100%;appearance:none;background:transparent;accent-color:var(--accent);margin:5px 0 0;min-height:24px;cursor:ew-resize}
.lab input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--range-value,50%),var(--line) var(--range-value,50%))}
.lab input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;margin-top:-5.5px;border:3px solid var(--card);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.lab input[type=range]::-moz-range-track{height:3px;background:var(--line)}.lab input[type=range]::-moz-range-progress{height:3px;background:var(--accent)}.lab input[type=range]::-moz-range-thumb{width:10px;height:10px;border:2px solid var(--card);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.lab-control small,.lab-hint{font:400 12px/1.45 var(--body);color:var(--muted);display:block;margin-top:2px}.lab-control-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.lab-control-row button{flex:1}.lab-progress{height:3px;background:var(--line);border-radius:3px;overflow:hidden;margin:10px 0}.lab-progress i{height:100%;display:block;background:var(--accent);width:0}
.lab-part{border-top:1px solid var(--line);padding:11px 0 0;margin-top:15px}.lab-part summary{cursor:pointer;font:9px var(--mono);color:var(--muted)}.lab-part summary span{font:600 15px var(--display);color:var(--ink);margin-left:9px}.lab-part-body{padding-top:11px}.lab-part label{display:block;font:9px var(--mono);color:var(--muted);margin-bottom:5px}.lab-part select{width:100%;font:600 16px var(--display);padding:6px 8px}.lab-part p{font:400 13px/1.45 var(--body);margin:9px 0}.lab-part-links{display:flex;align-items:center;justify-content:space-between;gap:8px}.lab-part-links a{font:12px var(--body)}.lab-part-links button{font-size:12px;min-height:30px}
.lab-section-inset{border:1px solid var(--line);border-radius:5px;margin-top:16px;background:color-mix(in srgb,var(--stage) 66%,var(--card));overflow:hidden}.lab-section-inset header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:4px 9px;font:9px var(--mono);color:var(--muted)}.lab-section-inset header button{font:11px var(--body);min-height:25px;border:0;padding:3px;background:transparent}.lab-section-inset>svg{display:block;width:100%;height:auto;padding:8px 10px 0}.lab-section-inset>p{font:11px var(--body);margin:0;padding:1px 12px 9px;color:var(--muted)}
.lab-inset-floating{position:absolute;right:20px;bottom:90px;width:230px;margin:0;z-index:3;box-shadow:0 2px 5px #49371c08}
@media(max-width:1100px) and (min-width:761px){.lab-inset-floating{width:180px;right:12px;bottom:80px}.lab-inset-floating header{font-size:8px;padding-inline:6px}.lab-inset-floating header button{font-size:10px}}
#lab-section text{font:400 12px var(--body);fill:var(--ink)}#lab-section .inset-label{font:8px var(--mono);letter-spacing:.04em;fill:var(--muted)}.inset-wall{fill:var(--card);stroke:var(--muted);stroke-width:1.4;stroke-linejoin:round}.inset-feed{fill:none;stroke:#557f88;stroke-width:4}.inset-rod{fill:#c5c4b8;stroke:var(--muted);stroke-width:1}.inset-piston{fill:#c6aa78;stroke:#716449;stroke-width:1}.inset-seal{fill:none;stroke:#444844;stroke-width:2}.inset-screen{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:2 2}.inset-coffee{fill:#86654b;stroke:#614a38;stroke-width:1}.inset-spout{fill:none;stroke:var(--muted);stroke-width:2}#inset-water{fill:#6cabb1;opacity:.6}
.lab-notes{font:400 11px/1.5 var(--body);color:var(--muted);margin-top:12px}.lab-notes summary{cursor:pointer}.lab-notes p{margin:8px 0}
.lab-view-tools{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:1px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px #493a1b0b,0 3px 8px #493a1b0a;max-width:calc(100% - 24px);z-index:4;white-space:nowrap}
.lab-view-tools button{display:flex;align-items:center;gap:6px;border:0;min-height:31px;padding:6px 9px;font-size:12px;background:transparent}.lab-view-tools svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1;stroke-linejoin:round}.lab-view-tools>span{height:18px;border-left:1px solid var(--line);margin:0 4px}
.lab-scene-note{position:absolute;bottom:12px;left:22px;right:22px;display:flex;justify-content:space-between;gap:10px;font:9px var(--mono);color:var(--muted);pointer-events:none}
#lab-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}#lab-leaders path{stroke:var(--muted);stroke-width:1;fill:none;stroke-dasharray:2.5 3;opacity:.75}#lab-leaders circle{fill:var(--card);stroke:var(--accent);stroke-width:1.5}
.lab .lab-callout{position:absolute;transform:translate(-50%,-50%);z-index:3;display:flex;align-items:flex-start;gap:9px;padding:10px 12px;box-shadow:0 1px 2px #493a1b07;background:var(--card);border:1px solid var(--line);border-radius:6px;text-align:left;width:176px;min-height:59px}
.lab-callout>svg{width:22px;height:24px;flex:0 0 22px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.lab-callout b{font:600 14px/1.1 var(--display);display:block;letter-spacing:.025em}.lab-callout small{font:400 11px/1.25 var(--body);color:var(--muted);display:block;margin-top:4px}.lab .lab-callout[aria-pressed=true]{border-color:var(--accent);background:var(--card)}
.lab .lab-handle{position:absolute;z-index:4;transform:translate(-50%,-50%);border:1px solid var(--accent);border-radius:30px;min-height:35px;padding:7px 11px;background:var(--card);color:var(--accent);box-shadow:0 0 0 5px #b9682e16;touch-action:none;cursor:ns-resize;display:flex;align-items:center;gap:6px;white-space:nowrap}.lab-handle svg{width:12px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}.lab-handle span{font:10px var(--mono)}
.lab-instruments{border-block:1px solid var(--line);display:flex;align-items:center;gap:26px;padding:12px 20px;background:color-mix(in srgb,var(--card) 65%,var(--stage))}.lab-phase{display:flex;align-items:center;gap:10px;min-width:240px}.lab-state-dot{width:6px;height:6px;background:#557f78;border-radius:50%;flex-shrink:0}.lab-phase span{font:500 13px var(--body)}.lab-phase small{display:block;font:400 11px var(--body);color:var(--muted);margin-top:3px}
.lab-instruments dl{display:flex;justify-content:space-around;flex:1;margin:0;gap:22px}.lab-instruments dt{font:9px var(--mono);color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.lab-instruments dd{margin:0;font:400 20px/1 var(--mono);font-variant-numeric:tabular-nums}.lab-instruments dd small{font:10px var(--body);margin-left:4px;color:var(--muted)}.lab-modelled{font:8px var(--mono);color:var(--muted);writing-mode:vertical-rl}
.lab-lessons{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;padding:11px;background:var(--stage)}.lab-lessons a{display:flex;align-items:center;min-height:72px;gap:8px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font:600 16px/1.12 var(--display);background:color-mix(in srgb,var(--card) 45%,var(--stage))}.lab-lessons a[aria-current]{background:var(--card);border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.lab-lessons a:hover{background:var(--card);border-color:var(--rule)}.lab-lessons small{display:block;font:8px var(--mono);color:var(--muted);margin-bottom:6px;white-space:nowrap}.lab-thumb{display:block;flex:0 0 46px;width:46px;height:62px}.lab-thumb img{width:100%;height:100%;object-fit:contain}
.lab-trace{padding:22px;border-top:1px solid var(--line);background:var(--card)}.lab-trace-head{display:flex;justify-content:space-between;gap:20px}.lab-trace h3{font:600 22px var(--display);margin:0}.lab-trace p{font:13px/1.4 var(--body);color:var(--muted);margin:5px 0}.lab-trace-head>div:last-child{display:flex;gap:7px;align-items:flex-start}.lab-trace svg{width:100%;height:auto;display:block;overflow:visible;margin-top:10px}.lab-chart-key{display:flex;gap:22px;font:10px var(--mono)!important}.lab-chart-key span:first-child{color:var(--accent)}
.lab-care{display:grid;gap:10px;font-size:13px;margin:15px 0}.lab-care label{display:flex;gap:9px;align-items:center}.lab-nojs{padding:20px}.lab-error{color:var(--accent)}
.essay-head h2{font-size:clamp(40px,5vw,64px)}.study-intro h3{font-size:clamp(28px,3.3vw,42px)}
@media(max-width:1100px){.lab-workspace{grid-template-columns:minmax(0,1fr) 290px;padding-right:10px}.lab-inspector{padding:14px}.lab .lab-callout{width:145px;padding:8px;gap:7px}.lab-callout>svg{width:18px;flex-basis:18px}.lab-callout b{font-size:13px}.lab-callout small{font-size:10px}.lab-thumb{width:32px;flex-basis:32px}.lab-lessons a{padding:4px 5px;gap:4px;font-size:14px}.lab-lessons small{font-size:7px}.lab-topline small{display:none}.lab-phase{min-width:200px}.lab-instruments{gap:12px}}
@media(max-width:760px){
 .wrap{width:calc(100% - 22px)}.sitebar .wrap{min-height:79px;flex-wrap:wrap;gap:0;padding:10px 0}.identity{gap:8px}.machine-mark{width:30px;height:35px}.sitebar h1{font-size:20px}.sitebar h1 span{font-size:8px;margin-bottom:5px}.sitebar .home{font-size:9px;padding-right:9px}.sitebar nav{width:100%;justify-content:flex-end;gap:18px;min-height:21px;margin-top:8px}.sitebar nav a{font-size:11px}
 .lab{display:flex;flex-direction:column;border-radius:7px}.lab-topline{order:0;padding:8px 10px;gap:4px;font-size:8px}.lab-topline label{font-size:0;gap:0}.lab-topline select{font-size:10px}.lab-lessons{order:1;display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:7px;gap:5px;border-bottom:1px solid var(--line)}.lab-lessons a{min-width:116px;min-height:57px;scroll-snap-align:start;font-size:14px}.lab-lessons small{font-size:7px}.lab-thumb{width:31px;flex-basis:31px;height:44px}
 .lab-workspace{order:2;display:flex;flex-direction:column;min-height:0;padding:0}.lab-viewport{width:100%;height:470px;min-height:0}.lab-stage-title{left:14px;top:13px}.lab-stage-title span{font-size:8px}.lab-stage-title p{font-size:11px;margin-top:4px}.lab-inspector{width:calc(100% - 20px);margin:0 10px 12px;padding:16px;max-height:none;overflow:visible}.lab-chapter{margin-bottom:10px}.lab-inspector h2{font-size:25px}.lab-inspector>p{font-size:14px}
 .lab .lab-callout{width:auto;max-width:112px;min-height:29px;padding:6px 7px;gap:5px;border-radius:4px}.lab-callout>svg{width:15px;height:17px;flex-basis:15px;margin:0}.lab-callout b{font-size:12px;letter-spacing:0}.lab-callout small{display:none}.lab-view-tools{bottom:30px;padding:3px;gap:0;max-width:calc(100% - 16px)}.lab-view-tools button{font-size:10px;padding:6px;gap:4px;min-height:29px}.lab-view-tools svg{width:13px;height:13px}.lab-view-tools>span{margin:0 1px}.lab-scene-note{font-size:7px;left:12px;right:12px;bottom:10px}
 .lab-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.lab-control{margin:8px 0}.lab-controls .lab-hint,.lab-controls .lab-control-row,.lab-controls .lab-care{grid-column:1/-1}.lab-section-inset{max-width:340px;margin-inline:auto}.lab-section-inset>svg{max-height:165px}.lab-instruments{order:3;padding:12px;gap:12px;flex-wrap:wrap}.lab-phase{width:100%;min-width:0}.lab-instruments dl{gap:8px;justify-content:space-between}.lab-instruments dt{font-size:7px}.lab-instruments dd{font-size:16px}.lab-instruments dd small{font-size:9px;margin-left:2px}.lab-modelled{display:none}.lab-trace{order:4;padding:15px}.lab-trace-head{display:block}.lab-trace-head>div:last-child{margin-top:10px}.lab-chart-key{gap:12px;flex-wrap:wrap}.lab-chart-key span:last-child{display:none}
}
@media(prefers-reduced-motion:no-preference){.lab button,.lab-lessons a{transition:background-color .1s,border-color .1s,color .1s}}
@media(max-width:760px){.lab{overflow:clip}.lab-viewport{position:sticky;top:0;height:clamp(320px,44svh,410px);z-index:6;border-bottom:1px solid var(--line)}.lab-inspector{margin-top:10px}.lab-stage-title{top:10px}.lab-stage-title p{max-width:230px}}
