/* The Oxygen Machine: art direction lives here. Shared typography, menu and tokens live in wum.css. */
:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;background:#07060a;color:#f2ede6}button,input{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #f3aa74;outline-offset:4px}button{cursor:pointer}.site-head{position:relative;z-index:40;min-height:62px}.opening,.instrument,.chemistry,.legacy,.source-foot{width:min(1460px,calc(100% - 92px));margin-inline:auto}.eyebrow,.mission-tag,.stage-label,.stage-bottom,.section-top h2,.console-head,.console legend,.mode-buttons button,.live-value>span,.gauge>span,.scrub-label,.note-counter,.source-foot{font-family:var(--wum-mono,"IBM Plex Mono",ui-monospace,monospace);letter-spacing:.14em}.eyebrow{font-size:11px;color:#eaa983;font-weight:650}.opening{min-height:min(780px,80svh);display:grid;grid-template-columns: minmax(0,1fr) minmax(320px,.9fr);align-items:center;gap:30px;position:relative;padding:80px 0 110px}.opening:after{position:absolute;content:"";height:1px;background:linear-gradient(90deg,transparent,#765b4b,transparent);bottom:0;left:0;right:0}.opening-copy{position:relative;z-index:2}.opening h1{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(5.3rem,10vw,11rem);font-weight:700;line-height:.80;letter-spacing:-.047em;margin:38px 0 36px;max-width:790px}.opening h1 em{display:block;font-style:normal;color:#ee9c70}.lead{font-size:clamp(1.25rem,2.4vw,2rem);font-weight:520;line-height:1.35;max-width:600px;margin:0 0 18px}.sublead{color:#aaa5a2;max-width:530px;font-size:15px;line-height:1.75}.enter-link{display:inline-flex;align-items:center;gap:45px;margin-top:24px;background:#e4a077;color:#21140d;padding:17px 22px;font-weight:700;text-decoration:none;border-radius:2px;transition:background .2s}.enter-link:hover{background:#ffba8d}.opening-orbit{height:500px;position:relative;display:grid;place-items:center;overflow:hidden;mask-image:linear-gradient(to right,transparent 0,#000 18%,#000 90%,transparent)}.orb{position:absolute;width:min(440px,65vw);height:min(440px,65vw);border-radius:50%}.orb-back{background:radial-gradient(circle at 22% 35%,rgba(255,185,126,.15),transparent 36%),radial-gradient(circle at 42% 43%,#b36844 2%,#6d3527 35%,#21191c 72%);box-shadow:0 0 80px #bb724b17, inset -65px -25px 90px #060408e8;transform:rotate(-16deg)}.orb-back:after{content:"";position:absolute;inset:8%;border:1px solid #ffa47522;border-radius:50%;box-shadow:inset -40px 13px 40px #0004}.orb-front{border:1px solid #cb947c38;transform:scale(1.2) rotateX(68deg);box-shadow:0 0 0 1px #d3a58a14}.opening-orbit-label{position:absolute;bottom:13%;font:10px ui-monospace,monospace;letter-spacing:.3em;color:#bda79d}.instrument{padding:90px 0 110px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.section-top h2{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(2.5rem,4.9vw,5.2rem);font-weight:700;line-height:1;margin:18px 0 0;letter-spacing:-.015em}.mission-tag{font-size:10px;color:#b7aea7;white-space:nowrap;display:flex;gap:10px;align-items:center}.signal-dot{width:7px;height:7px;border-radius:50%;background:#8ae0a4;box-shadow:0 0 10px #8ae0a45a}.lab{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(335px,.75fr);gap:18px}.machine-col{min-width:0}.stage-shell{border:1px solid #3a3230;background:radial-gradient(ellipse at 45% 42%,#40302b45,transparent 60%),linear-gradient(160deg,#171719,#0d1014);position:relative;overflow:hidden}.stage-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff04 0px,#ffffff04 1px,transparent 1px,transparent 58px),repeating-linear-gradient(90deg,#ffffff04 0px,#ffffff04 1px,transparent 1px,transparent 58px);mask-image:linear-gradient(#0000,#0009,#0000)}.stage-label,.stage-bottom{position:relative;z-index:2;display:flex;justify-content:space-between;gap:12px;align-items:center;color:#c4b5a9;font-size:10px;padding:19px 22px}.stage-label>span{font-size:13px;font-weight:700;color:#f4d4bd;letter-spacing:.2em}.stage-label small{font-size:9px;color:#958b88}.stage-bottom{border-top:1px solid #ffffff12}.quiet-button{border:0;background:transparent;color:#eed7c9;padding:4px 3px;font-size:11px;letter-spacing:.02em}.quiet-button:hover{color:#fff}.machine-frame{position:relative;z-index:1;min-height:470px;display:flex;align-items:center;justify-content:center;transition:filter .4s}.machine-frame svg{width:100%;height:auto;display:block;max-height:560px;filter:drop-shadow(0 14px 24px #0008);overflow:visible}.static-poster{display:grid;place-items:center;gap:12px;color:#b69b86;font:10px ui-monospace,monospace;letter-spacing:.2em}.poster-icon{font-size:64px;color:#bf805e}.machine-frame .iso-svg{transition:opacity .4s}.machine-frame svg [data-assembly]{transition:transform .72s cubic-bezier(.2,.8,.2,1),opacity .35s,filter .35s;transform-box:fill-box;transform-origin:center}.machine-frame[data-selected]:not([data-selected=""]) svg [data-assembly]{opacity:.28}.machine-frame[data-selected="intake"] [data-assembly="intake"],.machine-frame[data-selected="compressor"] [data-assembly="compressor"],.machine-frame[data-selected="heater"] [data-assembly="heater"],.machine-frame[data-selected="outlet"] [data-assembly="outlet"]{opacity:1;filter:drop-shadow(0 0 8px #e59b7390)}.machine-frame[data-state="off"] [data-flow]{opacity:0}.machine-frame [data-flow]{opacity:.95;transition:opacity .4s;stroke-dasharray:3 10;stroke-width:2.3;fill:none;stroke-linecap:round;animation:gas-flow 1.15s linear infinite}.machine-frame [data-flow="co2"]{stroke:#9db5c6}.machine-frame [data-flow="o2"]{stroke:#7ee0c2}.machine-frame [data-flow="co"]{stroke:#e19a7a}.machine-frame [data-flow="energy"]{stroke:#ffd493}.machine-frame[data-state="off"] [data-indicator]{fill:#8d6e62}.machine-frame [data-indicator]{fill:#8ce7b8;transition:fill .4s}.machine-frame[data-exploded="true"] [data-flow]{opacity:0}.component-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#3c3432;border:1px solid #3c3432;margin-top:1px}.part-button{border:0;text-align:left;background:#171619;color:#d1c5bc;min-height:85px;padding:19px 15px;display:flex;gap:10px;align-items:start;line-height:1.45;font-size:12px;transition:background .2s}.part-button span{font:10px ui-monospace,monospace;color:#e4a67a}.part-button:hover,.part-button[aria-pressed="true"]{background:#35302d;color:#fff}.part-notes{padding:28px 30px 32px;background:#141216;border:1px solid #35302c;border-top:0;min-height:155px}.note-counter{font-size:10px;color:#e3a980}.part-notes h3{font-size:22px;font-weight:600;margin:10px 0}.part-notes p{color:#ada5a1;line-height:1.7;font-size:14px;max-width:850px;margin:0}.console{border:1px solid #3c3430;padding:28px;background:linear-gradient(150deg,#1b191b,#121214);min-width:0}.console-head{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#d9d1c8;font-size:11px}.status{border:1px solid #4f4b45;color:#a99f95;font-size:9px;letter-spacing:.13em;padding:8px 10px}.status.running{color:#94f5c5;border-color:#4c9473;background:#23463640}.console-intro{color:#a49e9c;font-size:13px;line-height:1.7;margin:28px 0}.mode-select{border:0;padding:0;margin:0}.console legend,.scrub-label{font-size:10px;color:#b4a8a1;display:block;margin-bottom:11px}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-buttons button{padding:14px 12px;min-height:72px;background:#1d1c20;border:1px solid #423a37;color:#a7a4a2;font-size:9px;text-align:left;line-height:1.7}.mode-buttons button span{display:block;font-size:12px;letter-spacing:.05em;color:#ddd3cc}.mode-buttons button[aria-pressed="true"]{background:#39281f;border-color:#d79569;color:#f7c6a8}.live-value{padding:36px 0 31px;margin:28px 0;border-top:1px solid #ffffff19;border-bottom:1px solid #ffffff19}.live-value>span,.gauge>span{font-size:10px;color:#b8a7a1}.value-line{display:flex;gap:14px;align-items:baseline;margin:14px 0 23px}.value-line strong{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(4.3rem,6.5vw,6.7rem);font-weight:600;letter-spacing:-.03em;line-height:.95;color:#f4e2d1;font-variant-numeric:tabular-nums}.value-line span{font-size:14px;color:#e2ac88}.meter{height:4px;background:#4a3c36;overflow:hidden}.meter div{width:0;height:100%;background:#dfa47b;transition:width .15s}.live-value small{display:block;margin-top:9px;font-size:11px;color:#9b928c}.gauge-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px;margin-bottom:34px}.gauge strong{display:block;font-size:21px;color:#f6e5d6;margin:8px 0 5px;font-weight:500;font-variant-numeric:tabular-nums}.gauge small{font-size:11px;color:#948e8b}.scrub-label{display:flex;justify-content:space-between;align-items:center;gap:15px}.scrub-label span+span{color:#e9ae8a;font-variant-numeric:tabular-nums}input[type="range"]{width:100%;accent-color:#eaa77d;cursor:pointer;margin:4px 0 26px}.run-buttons{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px}.run-buttons button{height:56px;border-radius:0;font-size:12px;font-weight:700;letter-spacing:.06em}.run-buttons .primary{border:1px solid #e4a177;background:#e4a177;color:#271c14;display:flex;align-items:center;justify-content:space-around}.run-buttons .primary:hover{background:#f6b994}.run-buttons .secondary{background:transparent;border:1px solid #75675c;color:#eadaca}.simulation-note{line-height:1.6;font-size:11px;color:#8f8884;border-top:1px solid #ffffff12;padding-top:22px;margin:28px 0 0}.simulation-note strong{color:#c9bcb0}.chemistry{border-top:1px solid #403431;border-bottom:1px solid #403431;display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;padding:80px 0}.chemistry h2,.legacy h2{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(3rem,5.4vw,6rem);font-weight:700;line-height:.95;letter-spacing:-.02em;margin:20px 0}.chemistry p:not(.eyebrow),.legacy p:not(.eyebrow){max-width:580px;font-size:16px;line-height:1.75;color:#b7aea8}.reaction{border:1px solid #73503b;background:radial-gradient(ellipse at 50% 50%,#53312166,transparent 80%),#181316;min-height:270px;padding:42px;display:flex;align-items:center;justify-content:space-around;gap:10px;flex-wrap:wrap}.reaction span{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(2.5rem,5vw,6rem)}.reaction b{font-size:35px;color:#ecaa80}.reaction small{width:100%;color:#e3ab87;text-align:center;font:10px ui-monospace,monospace;letter-spacing:.1em}.legacy{padding:110px 0;max-width:1100px;text-align:center}.legacy p{margin-inline:auto}.legacy-links{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;margin-top:35px}.legacy-links a{padding:17px 22px;border:1px solid #9c6d53;color:#ffe1c6;text-decoration:none;font-size:13px}.legacy-links a:hover{background:#533629}.source-foot{width:100%;border-top:1px solid #41312b;padding:30px max(46px,calc((100vw - 1368px)/2));background:#0f0b0d;color:#a59a93;display:flex;justify-content:space-between;align-items:start;gap:24px;font-size:10px;line-height:1.8;letter-spacing:.025em}.source-foot p{max-width:650px;margin:0}.foot-links{display:flex;flex-direction:column;gap:7px}.foot-links a{color:#d2b49f;text-decoration:none;white-space:nowrap} .foot-links a:hover{text-decoration:underline}@keyframes gas-flow{to{stroke-dashoffset:-26}}
@media(max-width:1080px){.lab{grid-template-columns:1fr}.console{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.console-head,.console-intro,.run-buttons,.simulation-note{grid-column:1/-1}.mode-select{grid-column:1}.live-value{grid-column:2;margin:0;padding-top:10px}.gauge-grid{grid-column:1}.scrub-label,.console input{grid-column:2}.opening{min-height:680px}.opening h1{font-size:clamp(5rem,11vw,8.5rem)}}
@media(max-width:720px){.opening,.instrument,.chemistry,.legacy{width:calc(100% - 36px)}.opening{grid-template-columns:1fr;display:block;min-height:auto;padding:72px 0 80px;overflow:hidden}.opening-copy{z-index:2}.opening h1{font-size:clamp(4.7rem,18vw,8rem);margin:28px 0 24px}.opening-orbit{position:absolute;right:-90px;top:35px;width:300px;height:300px;opacity:.37;z-index:0}.opening-orbit .orb{width:280px;height:280px}.opening-orbit-label{display:none}.lead{font-size:19px}.sublead{font-size:13px}.enter-link{margin-top:15px}.instrument{padding:60px 0}.section-top{display:block}.mission-tag{margin:20px 0}.machine-frame{min-height:265px}.stage-label,.stage-bottom{font-size:8px;padding:13px}.stage-label small{display:none}.stage-bottom{align-items:start}.component-nav{grid-template-columns:1fr 1fr}.part-button{min-height:70px;padding:13px 11px;font-size:11px}.part-notes{padding:23px 19px}.part-notes h3{font-size:19px}.console{display:block;padding:20px}.console-head{font-size:10px}.console-intro{margin:22px 0}.live-value{padding:25px 0;margin:20px 0}.value-line strong{font-size:70px}.gauge-grid{gap:21px 12px}.gauge strong{font-size:18px}.chemistry{grid-template-columns:1fr;padding:55px 0}.reaction{min-height:210px;padding:24px}.legacy{padding:75px 18px}.source-foot{padding:27px 18px;display:block}.foot-links{margin-top:20px}.run-buttons{grid-template-columns:minmax(0,1fr) 75px}.run-buttons button{font-size:10px}.mode-buttons button{font-size:8px}.mode-buttons button span{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.machine-frame [data-flow]{animation:none}.machine-frame svg [data-assembly]{transition:none}.meter div{transition:none}}

/* M01: detach the whole illustrative external network when opening assemblies.
   Connector sockets remain physically mounted in their owning assembly group. */
.machine-frame[data-exploded="true"] [data-plumbing]{display:none}
.machine-frame[data-exploded="true"] [data-flow]{display:none}
.machine-frame [data-port] {pointer-events:none}
.stage-bottom #connection-state {max-width:65%;line-height:1.4}
.machine-frame[data-exploded="true"] + .stage-bottom #connection-state {color:#ecc39e}
.run-buttons button:disabled {opacity:.46;cursor:not-allowed}

/* A true process close-up: only ion transfer, not whole gas molecules, traverses zirconia. */
.soxe-detail{border:1px solid #4e3d33;border-top:0;background:linear-gradient(130deg,#1d1b1b,#13171b);padding:30px 30px 25px}
.soxe-detail[hidden]{display:none!important}
.soxe-title-row{display:flex;justify-content:space-between;align-items:start;gap:25px}
.soxe-title-row h3{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(29px,3.6vw,43px);letter-spacing:.02em;line-height:1.05;margin:15px 0}
.soxe-hot{white-space:nowrap;color:#ecc08e;border:1px solid #74513d;padding:9px 12px;font:10px ui-monospace,monospace;letter-spacing:.12em}
.soxe-intro{color:#bcb6af;line-height:1.65;font-size:14px;max-width:670px;margin:0 0 24px}
.soxe-scroll{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:#a58168 #24201f;border:1px solid #343b41}
.soxe-scroll:focus-visible{outline:2px solid #f3ad80;outline-offset:3px}
.soxe-svg{display:block;width:100%;min-width:690px;height:auto}
.soxe-detail[data-running="true"] .chem-in,.soxe-detail[data-running="true"] .chem-ion,.soxe-detail[data-running="true"] .chem-oxygen,.soxe-detail[data-running="true"] .chem-out{animation:oxygen-cell-flow 1.3s linear infinite}
.soxe-detail[data-running="false"] .chem-in,.soxe-detail[data-running="false"] .chem-ion,.soxe-detail[data-running="false"] .chem-oxygen,.soxe-detail[data-running="false"] .chem-out{stroke-dasharray:none;opacity:.6}
@keyframes oxygen-cell-flow{to{stroke-dashoffset:-34}}
.soxe-caveat{font-size:11px!important;color:#aaa19a;line-height:1.65;margin:17px 0 0}
.soxe-caveat a{color:#ebb58d;text-underline-offset:3px}
@media(max-width:720px){.soxe-detail{padding:23px 14px}.soxe-title-row{display:block}.soxe-hot{display:inline-block;margin:0 0 18px}.soxe-intro{font-size:13px}}
@media(prefers-reduced-motion:reduce){.soxe-detail .chem-in,.soxe-detail .chem-ion,.soxe-detail .chem-oxygen,.soxe-detail .chem-out{animation:none!important;stroke-dasharray:none}}

/* The selected assembly must stay fully opaque: the base dimming rule has :not specificity. */
.machine-frame[data-selected="intake"] svg [data-assembly="intake"],
.machine-frame[data-selected="compressor"] svg [data-assembly="compressor"],
.machine-frame[data-selected="heater"] svg [data-assembly="heater"],
.machine-frame[data-selected="outlet"] svg [data-assembly="outlet"]{opacity:1!important;filter:drop-shadow(0 0 8px #edb5806e)}

/* Inspection keeps context legible and only emphasizes lines attached to
   the selected assembly. Those line ownerships come from mechanical-layout. */
.machine-frame[data-selected]:not([data-selected=""]) svg [data-assembly]{opacity:.48}
.machine-frame[data-selected]:not([data-selected=""]) [data-route]{opacity:.19;transition:opacity .25s ease}
.machine-frame[data-selected="intake"] [data-route][data-from-owner="intake"],
.machine-frame[data-selected="intake"] [data-route][data-to-owner="intake"],
.machine-frame[data-selected="compressor"] [data-route][data-from-owner="compressor"],
.machine-frame[data-selected="compressor"] [data-route][data-to-owner="compressor"],
.machine-frame[data-selected="heater"] [data-route][data-from-owner="heater"],
.machine-frame[data-selected="heater"] [data-route][data-to-owner="heater"],
.machine-frame[data-selected="outlet"] [data-route][data-from-owner="outlet"],
.machine-frame[data-selected="outlet"] [data-route][data-to-owner="outlet"]{opacity:1}
@media(prefers-reduced-motion:reduce){.machine-frame [data-route]{transition:none!important}}

/* M02 interfaces: braided-looking insulated electrical harness is NOT a gas
   pipe. It is live in running mode but does not imply electrons as particles
   flowing through a transparent tube. External geometry remains illustrative. */
.machine-frame .power-harness path{stroke-linecap:round;stroke-linejoin:round}
.machine-frame [data-flow="energy"]{
 animation:none!important;
 stroke:#d5bd83;
 stroke-width:1.1;
 stroke-dasharray:2 9;
 opacity:.7
}
.machine-frame[data-state="off"] [data-flow="energy"]{opacity:0}
.machine-frame [data-port][data-medium="electric"]{pointer-events:none}

/* M03: a sourced, functional process schematic, deliberately NOT invented
   photographs or unsupported locations for internal manifold hardware. */
.gas-path-detail{border:1px solid #354347;border-top:0;background:linear-gradient(152deg,#142026,#161719 68%);padding:31px 30px 24px}
.gas-path-detail[hidden]{display:none!important}
.gas-path-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}
.gas-path-heading h3{font-family:var(--wum-display,"Saira Condensed",Impact,sans-serif);font-size:clamp(29px,3.6vw,45px);letter-spacing:.015em;line-height:1.05;margin:14px 0}
.gas-path-status{border:1px solid #64777a;color:#aac7c6;padding:10px 11px;font:10px var(--wum-mono,ui-monospace,monospace);letter-spacing:.1em;white-space:nowrap}
.gas-path-intro{font-size:14px;color:#b8c2c2;line-height:1.7;max-width:690px;margin:4px 0 25px}
.gas-train{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:19px;color:#b6ccd4;font:10px var(--wum-mono,ui-monospace,monospace);letter-spacing:.055em}
.gas-train span:nth-child(odd){background:#263139;border:1px solid #44525b;padding:10px 12px;line-height:1.5}
.gas-train span:nth-child(even){color:#e8ac89}
.gas-streams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.gas-stream{position:relative;padding:22px 19px 20px;border:1px solid #344f4c;background:linear-gradient(145deg,#17302a,#151c20);min-width:0}
.gas-stream-residual{border-color:#62433d;background:linear-gradient(145deg,#352421,#191b20)}
.gas-stream-header{display:flex;justify-content:space-between;align-items:start;gap:10px;color:#9fddc6;font:10px var(--wum-mono,ui-monospace,monospace);letter-spacing:.1em}
.gas-stream-residual .gas-stream-header{color:#e2b39e}
.gas-stream-header strong{font-size:21px;font-weight:600;letter-spacing:0;white-space:nowrap}
.gas-stream h4{margin:17px 0 7px;font-weight:650;font-size:17px;color:#e7f0e8}
.gas-stream p{font-size:12px;line-height:1.7;color:#bed0c8;margin:0;min-height:84px}
.gas-stream-residual p{color:#d3bab0}
.gas-stream-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font:9px var(--wum-mono,ui-monospace,monospace);letter-spacing:.045em;margin-top:20px;color:#bbdfd5}
.gas-stream-flow span:nth-child(odd){padding:6px 7px;background:#3251474d;border:1px solid #68877865}
.gas-stream-residual .gas-stream-flow{color:#dfb5a3}
.gas-stream-residual .gas-stream-flow span:nth-child(odd){border-color:#94705b55;background:#66423842}
.gas-recirculation{border:1px dashed #95745083;background:#35281963;padding:17px 18px;display:flex;align-items:center;gap:16px;margin-top:16px}
.gas-loop-icon{font:34px var(--wum-display,Impact,sans-serif);color:#d8b38a}
.gas-recirculation p{font-size:12px;line-height:1.65;color:#d5c5b4;margin:0}
.gas-recirculation strong{color:#f2bd91;letter-spacing:.06em}
.gas-path-source{margin:19px 0 0;color:#a4adad;font-size:11px;line-height:1.75}
.gas-path-source a{color:#c3d6cf;text-underline-offset:3px}
@media(max-width:720px){
 .gas-path-detail{padding:22px 14px}
 .gas-path-heading{display:block}
 .gas-path-status{display:inline-block;margin-bottom:15px}
 .gas-path-intro{font-size:13px}
 .gas-streams{grid-template-columns:1fr}
 .gas-stream p{min-height:0}
 .gas-train{display:grid;grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:5px}
 .gas-train span:nth-child(odd){padding:9px 12px;text-align:center}
 .gas-train span:nth-child(even){justify-self:center;transform:rotate(90deg);font-size:14px;line-height:12px;height:12px}
 .gas-stream{padding:19px 16px}
}

/* M04: the parent-owned open union face is shown ONLY in disassembled mode.
   It is an illustrative uncoupled fitting, not a pressure-isolation valve.
   All five full-length external lines are independently hidden above. */
.machine-frame [data-unmated-end]{display:none}
.machine-frame[data-exploded="true"] [data-unmated-end]{display:inline}
.machine-frame[data-exploded="true"] [data-unmated-end] .iso-solid{opacity:.95}
.machine-frame [data-route-support]{pointer-events:none}


/* Step 5. The instrument is the hero, and inspection has its own quiet tools. */
.opening{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:660px;padding:65px 0 80px;gap:8px}
.opening-study{position:relative;min-width:0;isolation:isolate;align-self:center}
.opening-study:before{content:"";position:absolute;inset:16% 8%;border-radius:50%;background:radial-gradient(ellipse,#bc835b25,transparent 68%);z-index:-1}
#hero-machine svg{width:115%;max-width:none;height:auto;display:block;transform:translateX(-6%);filter:drop-shadow(0 25px 25px #0009)}
#hero-machine [data-flow],#hero-machine [data-unmated-end]{display:none}
.opening-study-caption{display:block;text-align:center;color:#d2b7a2;font:10px var(--wum-mono,monospace);letter-spacing:.18em;margin-top:12px}
.opening h1{font-size:clamp(5rem,8.5vw,9.8rem)}
.inspection-toolbar{display:flex;border-bottom:1px solid #ffffff14;gap:5px;padding:12px 16px;position:relative;z-index:3}
.inspection-toolbar button,.camera-toolbar button{border:1px solid #5d5046;background:#17181b;color:#dacec1;padding:10px 13px;min-height:44px;font:11px var(--wum-mono,monospace);letter-spacing:.02em}
.inspection-toolbar button[aria-pressed="true"]{background:#3c2d21;color:#ffe0b9;border-color:#c99a6f}
.inspection-toolbar button:hover,.camera-toolbar button:hover{background:#3d332b;color:#fff}
.camera-toolbar{position:relative;z-index:3;display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #ffffff12}
.camera-toolbar button:first-child,.camera-toolbar #zoom-out{font-size:21px;padding:4px 12px}
.camera-toolbar button:disabled{opacity:.4;cursor:default}
#zoom-label{font:12px var(--wum-mono,monospace);min-width:26px;text-align:center;color:#e8c8a7}
#camera-help{font-size:11px;color:#b8ada3;margin-left:auto;max-width:210px;line-height:1.6}
.machine-frame:focus-visible{outline:2px solid #efb57b;outline-offset:-4px}
.machine-frame[data-zoomed="true"]{cursor:grab;touch-action:none;overflow:hidden}
.machine-frame[data-zoomed="true"]:active{cursor:grabbing}
.machine-frame svg{pointer-events:none}
.machine-frame [data-annotations]{display:none}
.machine-frame[data-view="annotated"] [data-annotations]{display:inline}
.callout-pin{pointer-events:auto;cursor:pointer}
.callout-pin circle{fill:#221c17;stroke:#e4b07b;stroke-width:1.6}
.callout-pin text{fill:#ffe0bd;font:8px var(--wum-mono,monospace);font-weight:600}
.callout-label{fill:#e1d5c8;font:10px var(--wum-mono,monospace)}
.callout-line{fill:none;stroke:#b18b69;stroke-width:1;stroke-opacity:.65}
[data-callout][data-active="true"] circle{fill:#e6b688;stroke:#ffe5c7}
[data-callout][data-active="true"] .callout-pin text{fill:#21170f}
.machine-frame[data-zoomed="true"] .callout-label,.machine-frame[data-zoomed="true"] .callout-line{display:none}
.annotation-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid #4e4236;background:#4e4236}
.annotation-index[hidden]{display:none}
.annotation-index button{min-height:48px;display:flex;gap:12px;align-items:center;text-align:left;border:0;background:#1d1c1b;color:#e3d9cf;font-size:12px;padding:12px 16px}
.annotation-index button span{color:#d7a779;font:10px var(--wum-mono,monospace)}
.annotation-index button[aria-pressed="true"]{background:#463322;color:#ffead1}
.machine-frame[data-selected="electronics"] [data-electronics-detail]{filter:brightness(1.3)}
.machine-frame[data-selected="oxygen"] [data-route="R-03"],.machine-frame[data-selected="residual"] [data-route="R-04"]{opacity:1}
.machine-frame[data-selected="oxygen"] svg [data-assembly="heater"],.machine-frame[data-selected="residual"] svg [data-assembly="heater"]{opacity:.8}
.circuit-note{font-size:13px;line-height:1.7;color:#d2c4b2}
.static-poster{padding:35px;text-align:center;line-height:1.8}
.static-poster p{font:13px var(--wum-body,sans-serif);letter-spacing:0;max-width:430px;color:#bdb2a9}
.no-script{padding:24px;max-width:680px;margin:auto;color:#d5bcaa}
.gas-stream-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:5px;text-align:center;align-items:center;letter-spacing:0}
.gas-stream-flow span:nth-child(odd){padding:7px 5px}
@media(max-width:1100px){.opening{min-height:610px}.opening h1{font-size:clamp(4.7rem,9vw,8rem)}#camera-help{width:100%;max-width:none;margin-left:0}.lab{grid-template-columns:minmax(0,1fr) minmax(310px,.6fr)}}
@media(max-width:900px){
 .opening{grid-template-columns:1fr;min-height:0;padding:55px 0 45px;gap:25px}.opening h1{font-size:clamp(4.7rem,15vw,8rem);margin:24px 0}.opening-copy{max-width:620px}.opening-study{width:min(620px,100%);margin:auto}#hero-machine svg{width:100%;transform:none}.opening-study-caption{margin:0}.lab{grid-template-columns:1fr}.machine-frame{min-height:0}.machine-frame svg{max-height:560px}.console{padding:24px}.component-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.part-button{min-height:62px}.instrument{padding-top:60px}
}
@media(max-width:720px){
 .opening,.instrument,.chemistry,.legacy{width:calc(100% - 32px)}.opening{padding-top:42px}.opening h1{font-size:clamp(4.3rem,19vw,7rem)}.opening-study{margin:5px auto 0}.opening-study-caption{font-size:8px;letter-spacing:.11em}.lead{font-size:20px}.sublead{font-size:14px}.section-top{display:block}.mission-tag{margin-top:19px}.stage-label{padding:15px}.stage-label small{display:none}.inspection-toolbar{padding:10px;gap:5px}.inspection-toolbar button{flex:1;padding:10px 4px;font-size:10px}.camera-toolbar{padding:10px}#camera-help{font-size:11px;max-width:none}.machine-frame svg{width:100%;max-height:none}.machine-frame .fidelity-seal{display:none}.callout-label,.callout-line{display:none}.callout-pin circle{r:15}.callout-pin text{font-size:10px}.annotation-index button{padding:11px 9px;gap:8px;font-size:11px;min-height:52px}.stage-bottom{padding:13px 10px}.stage-bottom #connection-state{font-size:8px;max-width:60%}.quiet-button{min-height:44px;font-size:11px}.part-notes{padding:22px 18px}.part-notes h3{font-size:21px}.part-notes p{font-size:14px}.console-intro{margin:18px 0}.gauge-grid{gap:18px}.live-value{padding:24px 0;margin:22px 0}.live-value small,.gauge small,.simulation-note{font-size:12px}.chemistry{padding:50px 0}.source-foot{padding:25px 16px;font-size:11px}.gas-stream-flow{display:grid;grid-template-columns:1fr;justify-items:stretch;gap:5px;margin-top:16px;font-size:10px}.gas-stream-flow span:nth-child(even){transform:rotate(90deg);justify-self:center}.gas-stream-flow span:nth-child(odd){padding:8px}.soxe-svg{min-width:650px}
}
@media(prefers-reduced-motion:reduce){.machine-frame,.machine-frame .iso-svg{transition:none}#hero-machine svg{animation:none}.callout-pin{transition:none}}

/* Phone production controls share the machine column in actual reading order. */
.machine-col>.console{margin-top:16px;margin-bottom:16px}
.machine-frame[data-selected="electronics"] [data-route="R-05"]{opacity:1}
@media(max-width:900px){.machine-col>.console{margin:16px 0}.part-notes{border-top:1px solid #35302c}}
/* Keep the hero within its grid column, including its SVG paint bounds. */
.opening-study{overflow:hidden}
#hero-machine svg{width:100%;transform:none}

/* Labels inherit the project typography explicitly on SVG text. Small phones
   use the full-size index, rather than tiny touch targets on the artwork. */
.machine-frame .callout-label{font-family:var(--wum-mono,monospace);font-size:10px}
@media(max-width:720px){.machine-frame[data-view="annotated"] [data-annotations]{display:none}}
/* At high magnification the labels must not cover the very joints being
   inspected. The full-size selection index remains available outside the SVG. */
.machine-frame[data-zoomed="true"] [data-annotations]{display:none}

.machine-frame[data-state="off"] [data-flow]{animation:none}
