@font-face{font-family:Lab Sans;src:local('Inter'),local('Helvetica Neue');font-display:swap}
:root{font-family:Lab Sans,Arial,sans-serif;font-synthesis:none;color-scheme:light;--bg:#f7f8fa;--panel:#fff;--soft:#f1f3f5;--ink:#23272e;--muted:#68707b;--line:#dde1e6;--accent:#315de1;--accent-bg:#eef2ff;--chart2:#8a939e;--water:#dbe1e6;--waterdark:#8b959f;--cut:#36424d;--cube-light:#f1f3f5;--cube-dark:#a8b0b9}
body[data-theme=dark]{color-scheme:dark;--bg:#15181c;--panel:#1b1f24;--soft:#23282e;--ink:#eceff3;--muted:#a2aab5;--line:#353c45;--accent:#a2b5ff;--accent-bg:#293349;--chart2:#8996a8;--water:#424c56;--waterdark:#202932;--cut:#ecf0f4;--cube-light:#88949f;--cube-dark:#3b4651}
*{box-sizing:border-box}body.iso{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-underline-offset:3px}.shell{max-width:1320px;padding:0 40px;margin:auto}.site-header{height:99px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;gap:14px;align-items:center;font-weight:650;font-size:19px;letter-spacing:-.6px}.brand-mark{background:var(--ink);color:var(--panel);width:40px;height:40px;border-radius:11px;font-family:Georgia,serif;font-size:35px;line-height:34px;text-align:center}.brand-mark span{font-size:18px}.brand-sub{display:block;font-size:8px;letter-spacing:1.8px;font-weight:550;color:var(--muted);margin-top:3px}.theme-button{display:flex;gap:8px;align-items:center;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:7px 12px;border-radius:30px;font-size:12px}.theme-button>span:first-child{font-size:19px;line-height:1}.nav-row{display:flex;justify-content:space-between;align-items:center;margin:26px 0 30px}.nav-row nav{display:flex;gap:6px;padding:4px;background:var(--soft);border-radius:12px}.nav-row button{border:0;background:transparent;color:var(--muted);padding:10px 18px;border-radius:9px;font-size:13px;font-weight:600}.nav-row button span{font:10px ui-monospace,monospace;margin-right:10px;opacity:.7}.nav-row button[aria-current=page]{background:var(--ink);color:var(--panel)}.nav-note{color:var(--muted);font-size:12px}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:1.7px;color:var(--muted);text-transform:uppercase;display:flex;gap:11px;align-items:center}.eyebrow:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent)}h1{font-size:clamp(28px,3.1vw,43px);max-width:850px;line-height:1.13;letter-spacing:-1.8px;font-weight:560;margin:13px 0 12px}.intro{color:var(--muted);font-size:15px;margin:0 0 29px}.lab-grid{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:24px;align-items:start}.apparatus-card{background:var(--panel);border:1px solid var(--line);border-radius:15px;overflow:hidden;min-width:0}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:19px 23px;font-size:11px}.card-top{color:var(--muted)}.fig-id{font:10px ui-monospace,monospace;letter-spacing:1px}.card-top strong{font-weight:500;color:var(--ink)}.stage{position:relative;width:100%;aspect-ratio:760/450;isolation:isolate;touch-action:pan-y;user-select:none;overflow:hidden}.stage>svg{display:block;width:100%;height:100%}.stage>.fx-layer,.stage>.iso-live{position:absolute;inset:0;width:100%!important;height:100%!important;pointer-events:none}.stage .iso-svg{margin:0;max-width:none}.stage svg .iso-line{stroke-width:.65}.stage svg .iso-edge{stroke-width:.8}.stage [data-action=drag]{cursor:ew-resize;pointer-events:all}.card-bottom{padding-top:10px;padding-bottom:20px}.hint{color:var(--muted);display:flex;align-items:center;gap:7px}.hint-symbol{font-size:19px;line-height:1}.state-label{color:var(--ink);font:11px ui-monospace,monospace;text-align:right}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:color-mix(in srgb,var(--soft) 45%,var(--panel));padding:20px 23px;gap:12px}.metric-label{font-size:10px;color:var(--muted);display:block;margin-bottom:6px}.metric-value{font:500 21px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-1px;white-space:nowrap}.metric-value small{font-family:Lab Sans,Arial,sans-serif;font-size:10px;letter-spacing:0;font-weight:400;color:var(--muted);margin-left:4px}.metric-value.word{font:550 17px/1.35 Lab Sans,Arial,sans-serif;white-space:normal;letter-spacing:-.3px}.caption{font-size:11px;color:var(--muted);padding:12px 5px 0;max-width:650px;line-height:1.6}.control-panel{padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:15px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.panel-title h2{font-size:14px;font-weight:600;margin:0}.subtle-button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:4px 0}.control{margin:18px 0}.control:first-child{margin-top:0}.control-label{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;gap:12px;margin-bottom:12px}.control-label output{font:12px ui-monospace,monospace;color:var(--ink)}input[type=range]{display:block;accent-color:var(--ink);width:100%;margin:0;height:18px;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font:10px ui-monospace,monospace;color:var(--muted);margin-top:7px}.button-row{display:flex;gap:6px;flex-wrap:wrap}.button-row button,.choice,.action-button{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);font-size:11px;line-height:1.35}.button-row button:hover,.choice:hover,.action-button:hover{background:var(--soft)}.button-row button[aria-pressed=true],.choice[aria-pressed=true],.action-button.primary{background:var(--ink);border-color:var(--ink);color:var(--panel)}.presets{display:grid;grid-template-columns:1fr 1fr;gap:7px}.presets button{min-height:40px;text-align:left}.presets button small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.presets button[aria-pressed=true] small{color:inherit;opacity:.7}.divider{height:1px;background:var(--line);margin:22px 0}.fixed-note{background:var(--soft);padding:11px 12px;border-radius:7px;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin:17px 0}.fixed-note strong{color:var(--ink);font-size:11px;font-weight:550}.plot-box{margin-top:22px}.plot-title{font-size:11px;font-weight:550;margin:0 0 10px;display:flex;justify-content:space-between;align-items:center}.plot-title span{color:var(--muted);font-size:10px;font-weight:400}.plot{display:block;width:100%;height:auto;overflow:visible}.plot text{fill:var(--muted);font:9px ui-monospace,monospace}.plot .grid{stroke:var(--line);fill:none;stroke-width:.8}.plot .curve{stroke:var(--ink);fill:none;stroke-width:1.6}.plot .guide{stroke:var(--muted);stroke-dasharray:3 3;opacity:.5;fill:none}.plot .point{fill:var(--accent);stroke:var(--panel);stroke-width:2}.plot-description{font-size:10px;line-height:1.55;color:var(--muted);margin:8px 0 0}.trace-legend{display:flex;gap:12px;margin-top:8px;font-size:10px;color:var(--muted)}.trace-legend i{width:15px;display:inline-block;border-top:1.6px solid currentColor;margin-right:4px;vertical-align:middle}.trace-legend .dash{border-top-style:dashed}.trace-legend .dot{border-top-style:dotted}.readout-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 10px;margin:14px 0}.mini-value{font:12px ui-monospace,monospace;color:var(--ink)}.mini-label{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.learning-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:27px}.learning-card{padding:23px 24px;background:var(--panel);border:1px solid var(--line);border-radius:13px;min-width:0}.section-kicker{font:9px ui-monospace,monospace;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin:0 0 12px}.learning-card h2{font-size:18px;font-weight:550;letter-spacing:-.45px;line-height:1.35;margin:0 0 10px}.learning-card p{font-size:13px;line-height:1.65;margin:0;color:var(--muted)}.learning-card p strong{font-weight:550;color:var(--ink)}.challenge-choices{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0}.feedback{font-size:12px!important;color:var(--ink)!important;min-height:20px}.challenge-test{margin-top:10px}.model-details{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.model-details summary{font-size:12px;font-weight:550;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.model-details summary:after{content:'+';font-size:18px;color:var(--muted)}.model-details[open] summary:after{content:'−'}.model-details p{font-size:12px;margin-top:12px}.equation{font:17px/1.8 ui-monospace,monospace;letter-spacing:-.5px;padding:13px 15px;margin:14px 0;background:var(--soft);border-radius:7px;overflow-wrap:anywhere}.equation small{display:block;font-size:11px;letter-spacing:0;color:var(--muted)}.model-details a{color:var(--ink)}.reviewer{margin-top:32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;font-size:12px;color:var(--muted)}.reviewer summary{cursor:pointer}.reviewer summary span{float:right;font-size:10px}.reviewer-body{padding:15px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;text-align:left;font-size:11px;min-width:670px}td,th{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--ink);font-weight:550}.reviewer-body p{line-height:1.7}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:22px 0 35px}footer a{text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:20px;top:-100px;z-index:100;padding:12px;background:var(--panel)}.skip:focus{top:10px}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}main:focus{outline:0}[hidden]{display:none!important}.gas-tint{fill:var(--soft)}.gas-particle{fill:var(--ink);opacity:.8}.needle-hub{fill:var(--ink)}.water-ground{fill:var(--water)}.probe-ring{fill:var(--panel);stroke:var(--ink);stroke-width:1.4}.probe-dot{fill:var(--ink)}#probe-art{pointer-events:all;cursor:move}.surface-marker{fill:var(--panel);stroke:var(--ink);stroke-width:.7}.wave-cell{stroke:none}.cube-face{fill:color-mix(in srgb,var(--cube-light) var(--face-light),var(--cube-dark));stroke:var(--muted);stroke-width:.7;stroke-linejoin:round}.cube-face.cut-face{fill:var(--cut);stroke:var(--ink);stroke-width:1}.section-inset{width:100%;height:150px;display:block;background:var(--soft);border-radius:8px}.section-inset path{fill:var(--cut);stroke:var(--ink);stroke-width:1.5}.section-inset circle{fill:var(--ink);stroke:var(--panel);stroke-width:2}.section-inset line{stroke:var(--ink);stroke-width:2}.no-section{font-size:12px;fill:var(--muted)}.wide-metrics{grid-template-columns:1.5fr .65fr 1fr .65fr}.probe-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}.physics-panel .control{margin:13px 0}.physics-panel .divider{margin:15px 0}.physics-panel .control-label{margin-bottom:7px}.physics-panel .plot-box{margin-top:17px}.physics-panel .fixed-note{margin:13px 0}.status-dot{width:5px;height:5px;border-radius:50%;display:inline-block;background:var(--accent);margin-right:6px}.error-message{padding:30px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
@media(min-width:1100px){.apparatus-card .stage{min-height:420px}.physics-panel{padding:19px}.physics-panel+.plot-box{margin:0}}
@media(max-width:1000px){.shell{padding:0 24px}.lab-grid{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.control-panel{padding:18px}.nav-note{display:none}.metrics{padding:17px}.metric-value{font-size:18px}.card-top,.card-bottom{padding-left:18px;padding-right:18px}.learning-grid{gap:18px}.learning-card{padding:20px}}
@media(max-width:760px){.shell{padding:0 17px}.site-header{height:82px}.brand{font-size:17px}.brand-sub{font-size:7px;letter-spacing:1.3px}.nav-row{margin:20px 0 26px}.nav-row nav{width:100%;gap:3px}.nav-row button{flex:1;padding:10px 8px;font-size:12px}.nav-row button span{margin-right:6px;font-size:9px}h1{letter-spacing:-1px;line-height:1.15;max-width:560px;font-size:31px}.intro{font-size:13px;line-height:1.6;margin-bottom:21px}.lab-grid{grid-template-columns:1fr;gap:21px}.stage{aspect-ratio:760/480}.card-top{padding:15px 16px;font-size:10px}.card-bottom{align-items:flex-start;padding:7px 16px 15px;font-size:10px}.state-label{font-size:9px}.metrics{padding:16px;gap:9px;grid-template-columns:1fr 1fr}.metric-label{font-size:10px;margin-bottom:5px}.metric-value{font-size:21px}.metric-value.word{font-size:17px}.caption{font-size:10px;padding-top:10px}.control-panel{padding:20px}.learning-grid{grid-template-columns:1fr;margin-top:22px;gap:18px}.learning-card{padding:21px}.plot{max-height:180px}.plot-box{margin-top:20px}.reviewer summary span{display:block;float:none;margin:5px 0 0 16px}.reviewer{margin-top:24px}footer{font-size:9px;gap:20px}.eyebrow{font-size:9px;letter-spacing:1.2px}.theme-button{padding:7px 9px}.theme-button #theme-label{display:none}.presets{grid-template-columns:repeat(2,1fr)}.section-inset{height:180px}.physics-panel{padding:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Override the standalone kit card frame: one conventional outline, no doubled borders. */
.apparatus-card.iso-plate{padding:0;box-shadow:none;--anatomy-card:var(--panel);--anatomy-paper:var(--panel)}
body.iso[data-theme=light]{--anatomy-shade-0:#cdd3da;--anatomy-shade-1:#dce1e6;--anatomy-shade-2:#e8ecf0;--anatomy-shade-3:#f2f4f6;--anatomy-top:#fcfdfe;--anatomy-mid:#84919e;--anatomy-lo:#aab4bf;--anatomy-faint:#d0d7df}
body.iso[data-theme=dark]{--anatomy-paper:var(--panel);--anatomy-card:var(--panel);--anatomy-face:#37414d;--anatomy-top:#333d48;--anatomy-shade-0:#1b232c;--anatomy-shade-1:#242d37;--anatomy-shade-2:#2a3440;--anatomy-shade-3:#303b47;--anatomy-mid:#758496;--anatomy-lo:#4c5c6e;--anatomy-faint:#354351;--anatomy-hi:#c8d3e1}
.stage:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--ink) 4%,transparent),transparent 40%);pointer-events:none;z-index:-1}
button:disabled{opacity:.45;cursor:default}

@media(max-width:760px){h1 br{display:none}.button-row button,.choice,.action-button,.presets button{min-height:40px}input[type=range]{height:26px}}
