/* Sodium Lamp — spectroscopist's instrument.
   Two voices: a warm serif narrates the physics; monospace carries the data.
   The sodium D-doublet (two close yellow lines) is the recurring visual mark.
   No webfonts, no external assets: the page stays fully self-contained. */

:root{
  color-scheme:dark;
  --bg:#08090c;
  --panel:#101419;
  --panel-deep:#0b0e12;
  --line:#252c35;
  --line-soft:#1a2027;
  --text:#eef0ec;
  --ink:#d9d2c0;          /* serif narrative */
  --muted:#939ea8;
  --faint:#6b757e;
  --amber:#ffb21c;
  --yellow:#ffe26b;
  --cyan:#6fe1ef;
  --green:#93e5aa;
  --red:#ff6c54;
  --serif:"Iowan Old Style",Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-family:var(--serif);
}
*{box-sizing:border-box}
body{
  margin:0;min-width:320px;color:var(--text);
  background:
    radial-gradient(ellipse 60% 34% at 50% -6%,#2a2410 0,transparent 70%),
    radial-gradient(ellipse 40% 26% at 85% 0,#131b20 0,transparent 65%),
    var(--bg);
}
h1,h2,h3,p{margin:0}
a{color:#c9d3da;text-decoration:none}
a:hover{color:var(--yellow);text-decoration:underline;text-underline-offset:3px}
button,select{font:13px var(--mono);color:var(--text);background:#161b21;border:1px solid var(--line);border-radius:3px;padding:8px 12px;cursor:pointer}
button:hover,select:hover{border-color:#5a6874}
button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* ---- the D-doublet mark: two close-set sodium lines ---- */
.doublet-mark,.section-head h2::before,.intro-question::before,.energy-ledger h3::before{
  content:"";display:inline-block;width:26px;height:9px;margin-right:10px;vertical-align:baseline;
  background:
    linear-gradient(var(--yellow),var(--yellow)) 0 1px/100% 2px no-repeat,
    linear-gradient(var(--amber),var(--amber)) 0 6px/100% 2px no-repeat;
}

/* ---- frame ---- */
.topbar,main,footer{width:min(1480px,calc(100% - 40px));margin:auto}
.topbar{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}
h1{font:600 30px/1.1 var(--serif);letter-spacing:-.015em}
.eyebrow{font:500 10px/1.6 var(--mono);letter-spacing:.16em;color:var(--amber);margin-bottom:2px}
.status-wrap{display:flex;align-items:center;gap:8px}
.status{font:11px var(--mono);color:var(--muted);margin-right:8px}
.status.ok{color:var(--green)}
.status.error{color:var(--red)}
main{padding:0 0 40px}

/* ---- intro / narrative hero ---- */
.intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:24px 48px;padding:26px 0 24px;border-bottom:1px solid var(--line)}
.intro-question{font:italic 600 clamp(21px,2.4vw,27px)/1.25 var(--serif);color:var(--text);margin-bottom:10px}
.intro-question::before{width:34px;margin-right:12px}
.intro-lede p+p,.intro-lede>p:not(.intro-question){font:15px/1.65 var(--serif);color:var(--ink)}
.intro-lede em{color:var(--yellow);font-style:italic}
.intro-guide{display:grid;gap:13px;align-content:center}
.intro-guide>div{display:flex;gap:12px;align-items:flex-start}
.intro-guide b{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;margin-top:1px;border:1px solid #6b531e;color:var(--amber);font:12px var(--mono)}
.intro-guide p{font:13px/1.55 var(--serif);color:var(--muted)}
.intro-guide strong{color:var(--text);font-weight:600}

/* ---- mode bar ---- */
.mode-bar{display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.mode-bar>div span,.mode-bar label>span{display:block;color:var(--faint);font:9px var(--mono);letter-spacing:.1em}
.mode-bar>div strong{display:block;margin-top:4px;color:var(--green);font:600 12px var(--mono)}
.mode-bar>div strong.warning{color:var(--yellow)}
.mode-bar>div output{display:block;margin-top:4px;color:var(--cyan);font:9px var(--mono)}
.mode-bar>div output.entering{color:var(--yellow)}
.mode-bar p{max-width:760px;color:var(--muted);font:12px/1.55 var(--serif)}
.mode-bar label{min-width:210px}
.mode-bar select{display:block;width:100%;margin-top:5px;font-size:11px;padding:6px 8px}

/* ---- process strip ---- */
.process-strip{display:grid;grid-template-columns:1fr auto 1.15fr auto 1.15fr auto 1fr;align-items:center;gap:10px;padding:15px 0 16px}
.process-strip>div{display:flex;align-items:center;gap:10px;min-width:0}
.process-strip b{display:grid;place-items:center;width:24px;height:24px;flex:0 0 auto;border:1px solid #6b531e;color:var(--amber);font:12px var(--mono)}
.process-strip span{font:12px/1.4 var(--serif);color:var(--muted)}
.process-strip strong{display:block;color:var(--text);font:600 12px/1.3 var(--serif)}
.process-strip>i{font-style:normal;color:#59626a}

/* ---- visuals grid ---- */
.visuals{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(390px,.9fr);gap:14px;align-items:start}
.viewport{position:sticky;top:14px;background:#040507;border:1px solid var(--line);height:540px;overflow:hidden}
.viewport canvas{display:block;width:100%;height:100%}
.view-label{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:11px 13px;background:linear-gradient(#090b0de0,transparent);font:11px var(--mono);color:var(--muted);pointer-events:none}
.view-label select{pointer-events:auto;max-width:250px;padding:5px 8px;font-size:11px}
.drag-hint{position:absolute;z-index:4;left:13px;bottom:12px;color:#79828a;font:10px var(--mono)}
.construction-key{position:absolute;z-index:4;left:13px;top:46px;display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;padding:8px 9px;background:#080b0dcc;color:#b3bcc3;font:9px var(--mono);pointer-events:none}
.construction-key span{display:flex;align-items:center;gap:6px}
.construction-key i{display:block;width:13px;height:4px;background:#54606a}
.construction-key .core{background:#d7b445}
.construction-key .nozzle{background:#d8e0e5}
.construction-key .tube{background:#d6e0e5}
.construction-key .annulus{background:#45657a}
.construction-key .optical{background:#93d5df}
.run-phase{position:absolute;z-index:4;left:13px;right:13px;bottom:58px;padding:6px 9px;background:#080b0de0;border-left:2px solid var(--amber);color:var(--ink);font:italic 12px/1.45 var(--serif)}
.run-phase.entering{border-left-color:var(--yellow)}
.run-phase.danger{border-left-color:var(--red);color:var(--red)}
.volume-definition{position:absolute;z-index:4;left:13px;bottom:32px;max-width:62%;color:#aab3ba;background:#080b0ddd;padding:5px 8px;font:9px/1.45 var(--mono);pointer-events:none}
.volume-scale{position:absolute;z-index:4;right:13px;bottom:12px;width:min(270px,42%);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;color:#b7bec5;font:9px var(--mono)}
.volume-scale i{height:6px}
.volume-scale.sodium i{background:linear-gradient(90deg,#09031b,#441070,#b83248,#ff8f0b,#fff087)}
.volume-scale.thermal i{background:linear-gradient(90deg,#050015,#4a0b6c,#a42c60,#ed6925,#fcffa4)}
.volume-scale.photon i{background:linear-gradient(90deg,#160600,#713006,#e98b0a,#ffe150,#fffbd0)}
.volume-scale.reaction i{background:linear-gradient(90deg,#07112b,#315be8,#ffe45d,#fffbd1)}
.volume-scale.camera i{background:linear-gradient(90deg,#080400,#5d1900,#ff7900,#ffe449,#fffdf0)}
.gpu-fallback{position:absolute;z-index:6;inset:auto 13px 13px;top:46px;display:grid;gap:10px;align-content:center;padding:20px;background:#0a0d10ee;border:1px solid var(--line)}
.gpu-fallback strong{font:600 17px/1.35 var(--serif);color:var(--yellow)}
.gpu-fallback span{font:13px/1.6 var(--serif);color:var(--ink)}

/* ---- non-LTE instrument ---- */
.nonlte-instrument{min-height:540px;border:1px solid var(--line);background:var(--panel-deep);padding:14px;display:flex;flex-direction:column;gap:13px;overflow:hidden}
.instrument-head,.plot-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font:10px var(--mono);letter-spacing:.08em}
.instrument-head strong{font-weight:600;color:var(--green)}
.run-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.run-summary div{min-width:0;padding:9px;background:var(--panel)}
.run-summary span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.run-summary strong{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;color:var(--text);font:600 12px var(--mono)}
.run-summary strong.warning{color:var(--yellow)}
.run-summary strong.danger{color:var(--red)}
.departure-readout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(145px,.8fr);gap:10px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0}
.departure-readout>div>span,.departure-readout small{display:block;color:var(--muted);font:10px/1.45 var(--mono)}
.departure-readout output{display:block;margin:3px 0;color:var(--yellow);font:600 clamp(30px,3.4vw,52px)/1 var(--mono);text-shadow:0 0 22px #ffe26b33}
.departure-readout dl{margin:0}
.departure-readout dl div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid var(--line-soft)}
.departure-readout dt{color:var(--muted);font:10px var(--mono)}
.departure-readout dd{margin:0;color:var(--text);font:11px var(--mono)}
.departure-readout .caption{grid-column:1/-1;margin:0}
.caption{color:var(--faint);font:italic 12px/1.5 var(--serif)}
.atomic-and-population{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(160px,.85fr);gap:12px;align-items:center}
.rate-flow{display:grid;grid-template-columns:1fr 1.08fr 1fr;gap:8px;align-items:stretch;min-height:165px}
.rate-flow h3{margin:0 0 8px;color:var(--muted);font:600 9px var(--mono);text-transform:uppercase;letter-spacing:.07em}
.flow-column,.state-column{min-width:0}
.flow-column>div{margin-bottom:12px}
.flow-column span,.flow-column output,.state-column span,.state-column output{display:block;font:9px/1.4 var(--mono)}
.flow-column span,.state-column span{color:var(--muted)}
.flow-column output,.state-column output{color:var(--text);margin:2px 0 4px;font-size:10px}
.flow-column i{display:block;height:6px;background:#171d22;overflow:hidden}
.flow-column b{display:block;height:100%;min-width:1px;transition:width .2s ease}
.gains b{background:#70d6ad}
.losses>div:first-of-type b{background:var(--yellow)}
.losses>div:last-of-type b{background:var(--red)}
.state-column>div{padding:8px;border-left:2px solid var(--yellow);background:#11161a;margin-bottom:6px}
.state-column .ground{border-left-color:#8e989f;margin-top:11px}
.population-plot{min-width:0}
.plot-head{padding-bottom:7px;border-bottom:1px solid var(--line)}
.pop-row{display:grid;grid-template-columns:80px minmax(45px,1fr) 64px;align-items:center;gap:7px;margin-top:11px;color:var(--muted);font:9px var(--mono)}
.pop-row i{display:block;height:8px;background:#171d22;overflow:hidden}
.pop-row b{display:block;height:100%;min-width:1px;transition:width .2s ease}
.pop-row.solved b{background:var(--yellow)}
.pop-row.reference b{background:var(--cyan)}
.pop-row output{text-align:right;color:var(--text)}
.population-plot p{margin-top:10px;color:var(--faint);font:italic 11px/1.45 var(--serif)}

/* ---- spectrum ---- */
.spectrum-wrap{padding-top:10px;border-top:1px solid var(--line)}
.spectrum-wrap canvas{display:block;width:100%;height:128px;margin-top:8px}
.spectrum-key{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:5px;color:var(--muted);font:9px var(--mono)}
.spectrum-key span{display:flex;align-items:center;gap:5px}
.spectrum-key i{display:block;width:17px;height:0;border-top:2px solid var(--yellow)}
.spectrum-key .produced{border-color:var(--cyan);border-top-style:dashed}
.spectrum-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:8px;background:var(--line)}
.spectrum-summary div{padding:8px 9px;background:var(--panel)}
.spectrum-summary span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.spectrum-summary strong{display:block;margin-top:3px;color:var(--text);font:600 12px var(--mono)}
.spectrum-wrap .caption{margin-top:8px}

/* ---- engineering disclosure ---- */
.engineering-details{border-top:1px solid var(--line);padding-top:9px}
.engineering-details summary{cursor:pointer;color:#b9c2c8;font:10px var(--mono)}
.engineering-details summary:hover{color:var(--yellow)}
.engineering-details[open] summary{margin-bottom:10px}
.wall-safety{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:1px;background:var(--line);margin-bottom:9px}
.wall-safety>div,.wall-safety>output{height:100%;padding:8px 9px;background:var(--panel)}
.wall-safety span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.wall-safety strong{display:block;margin-top:3px;color:var(--text);font:600 12px var(--mono)}
.wall-safety output{display:grid;place-items:center;color:var(--green);font:600 10px var(--mono)}
.wall-safety output.warning{color:var(--yellow)}
.wall-safety output.danger{color:var(--red)}
.wall-safety p{grid-column:1/-1;margin:0;padding:6px 2px 0;color:var(--muted);background:var(--panel-deep);font:9px/1.45 var(--mono)}
.wall-safety p.danger{color:var(--red)}
.flame-diagnostics{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:1px;background:var(--line);margin-bottom:2px}
.flame-diagnostics>div,.flame-diagnostics>output{padding:8px 9px;background:var(--panel)}
.flame-diagnostics span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.flame-diagnostics strong{display:block;margin-top:3px;color:var(--text);font:600 12px var(--mono)}
.flame-diagnostics output{display:grid;place-items:center;color:var(--green);font:600 10px var(--mono)}
.flame-diagnostics output.warning{color:var(--yellow)}
.flame-diagnostics output.danger{color:var(--red)}
.flame-diagnostics p{grid-column:1/-1;padding:6px 2px 0;color:var(--muted);font:9px/1.45 var(--mono)}
.reference-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);margin:8px 0}
.reference-strip>div{padding:8px 9px;background:var(--panel)}
.reference-strip span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.reference-strip strong{display:block;margin-top:3px;color:var(--cyan);font:600 12px var(--mono)}
.reference-strip p{grid-column:1/-1;padding:6px 2px 0;color:var(--muted);font:9px/1.45 var(--mono)}
.reference-strip p.warning{color:var(--yellow)}
.reference-strip p.danger{color:var(--red)}
.radical-cycle,.video-evidence{border:1px solid #394047;background:#0b0f12;margin-top:9px;padding:9px}
.radical-head,.evidence-head{display:flex;justify-content:space-between;gap:12px;color:var(--amber);font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.radical-head output{color:var(--yellow);text-align:right}
.evidence-head output{color:var(--green);text-align:right}
.radical-values,.evidence-values{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:8px}
.radical-values>div,.evidence-values>div{background:var(--panel);padding:8px}
.radical-values span,.evidence-values span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.radical-values strong,.evidence-values strong{display:block;margin-top:3px;color:var(--cyan);font:600 12px var(--mono)}
.radical-cycle p,.video-evidence p{margin-top:8px;color:var(--muted);font:9px/1.5 var(--mono)}
.video-evidence a{color:var(--cyan)}
.recycling-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:9px}
.recycling-strip div{background:var(--panel);padding:9px}
.recycling-strip span{display:block;min-height:23px;color:var(--muted);font:9px/1.35 var(--mono)}
.recycling-strip strong{display:block;color:var(--text);font:600 12px var(--mono)}

/* ---- workbench ---- */
.workbench{display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(380px,.9fr);gap:14px 28px;margin-top:16px}
.controls,.audit,.assumptions{border-top:1px solid var(--line);padding:18px 0}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:15px 24px;align-content:start}
.section-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px}
.section-head h2{font:600 18px var(--serif)}
.section-head h2::before{width:22px}
.section-head span{font:11px var(--mono);color:var(--muted)}
.section-head>div span{display:block;margin-top:5px}
.control-group-title{grid-column:1/-1;padding:6px 0 8px;border-bottom:1px solid var(--line-soft);color:var(--muted);font:600 10px var(--mono);letter-spacing:.09em;text-transform:uppercase}
.controls label{font:13px var(--serif);color:#ccd2d7}
.controls label[data-pending="true"]{color:var(--yellow)}
.controls output{float:right;font:11px var(--mono);color:var(--amber)}
input[type=range]{display:block;width:100%;margin:9px 0 0;accent-color:var(--amber)}
#control-status.pending{color:var(--yellow)}
#control-status.solving{color:var(--cyan)}
.derived-operation{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.derived-operation div{padding:9px;background:var(--panel)}
.derived-operation span{display:block;color:var(--muted);font:9px/1.35 var(--mono)}
.derived-operation strong{display:block;margin-top:4px;color:var(--yellow);font:600 12px var(--mono)}
.run-protocol{grid-column:1/-1;color:var(--muted);font:13px/1.6 var(--serif)}
.run-protocol strong{color:var(--text);font-weight:600}
.run-protocol output{float:right;color:var(--cyan);font:11px var(--mono)}

/* ---- audit column ---- */
.audit{padding-left:24px;border-left:1px solid var(--line-soft)}
.rate-equation{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:16px 0 12px;font:10px var(--mono)}
.rate-equation span{padding:5px 8px;border:1px solid var(--line)}
.rate-equation .gain{border-color:#365e50;color:#9ce1bd}
.rate-equation .loss{border-color:#653d35;color:#ff9e8c}
.rate-equation b{font-weight:400;color:var(--muted)}
.rates{margin:0}
.rates div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line-soft)}
.rates dt{font:12px var(--serif);color:var(--muted)}
.rates dd{margin:0;font:11px var(--mono)}
.comparison{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:14px}
.comparison div{background:var(--panel);padding:11px}
.comparison span{display:block;color:var(--muted);font:10px/1.35 var(--mono);min-height:27px}
.comparison strong{display:block;margin-top:6px;font:600 14px var(--mono);color:var(--yellow)}
.balance{margin-top:12px;color:var(--muted);font:11px/1.5 var(--mono)}
.energy-ledger{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}
.energy-ledger h3{color:var(--amber);font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px}
.energy-ledger h3::before{width:18px;height:8px}
.energy-ledger dl{display:grid;grid-template-columns:1fr 1fr;margin:0;gap:0 20px}
.energy-ledger dl div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line-soft)}
.energy-ledger dt{font:11px var(--serif);color:var(--muted)}
.energy-ledger dd{margin:0;font:11px var(--mono)}
.energy-ledger .residual dd{color:var(--yellow)}
.energy-ledger .caption{margin-top:9px}

/* ---- conversion gate ---- */
.conversion-gate{margin-top:20px;border:1px solid #384149;background:#0d1114;padding:13px}
.gate-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gate-head h3{color:var(--amber);font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.gate-head output{color:var(--yellow);font:10px var(--mono)}
.gate-live,.gate-scenarios{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:10px}
.gate-live>div,.gate-scenarios>div{background:var(--panel);padding:10px}
.gate-live span,.gate-scenarios span{display:block;min-height:26px;color:var(--muted);font:10px/1.4 var(--mono)}
.gate-live strong,.gate-scenarios strong{display:block;color:var(--cyan);font:600 15px var(--mono)}
.gate-scenarios .impossible strong{color:var(--red)}
.gate-scenarios small{display:block;margin-top:4px;color:var(--muted);font:9px/1.4 var(--mono)}
.gate-target,.gate-note{margin-top:10px;color:var(--muted);font:12px/1.55 var(--serif)}
.gate-note{color:#b7c0c6}

/* ---- assumptions ---- */
.assumptions{grid-column:1/-1}
.assumptions summary{cursor:pointer;font:15px var(--serif);color:#ced4d9}
.assumptions summary:hover{color:var(--yellow)}
.assumption-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;padding-top:18px}
.assumption-grid h3{font:600 12px var(--mono);color:var(--amber);margin-bottom:7px;letter-spacing:.04em;text-transform:uppercase}
.assumption-grid p{color:var(--muted);font:12px/1.6 var(--serif)}

/* ---- footer ---- */
footer{display:flex;justify-content:space-between;gap:24px;padding:20px 0 30px;border-top:1px solid var(--line);color:var(--muted);font:12px/1.6 var(--serif)}
footer p{max-width:680px}
footer nav{display:flex;gap:18px;flex-wrap:wrap;align-items:baseline}
#fatal{position:fixed;inset:0;background:#090b0df2;z-index:10;padding:15vh 10vw;color:var(--red);font:14px/1.7 var(--mono)}

/* ---- responsive ---- */
@media(max-width:1100px){
  .visuals{grid-template-columns:minmax(0,1.1fr) minmax(370px,.9fr)}
  .atomic-and-population{grid-template-columns:1fr}
  .intro{grid-template-columns:1fr;gap:18px}
}
@media(max-width:900px){
  .visuals,.workbench{grid-template-columns:1fr}
  .viewport{height:430px;position:relative;top:0}
  .audit{padding-left:0;border-left:0}
  .assumption-grid{grid-template-columns:1fr 1fr}
  .process-strip{grid-template-columns:1fr 1fr}
  .process-strip>i{display:none}
  .atomic-and-population{grid-template-columns:1fr 1fr}
  .nonlte-instrument{min-height:0}
}
@media(max-width:760px){
  .mode-bar{grid-template-columns:1fr}
  .mode-bar label{min-width:0}
  .mode-bar p{max-width:none}
}
@media(max-width:560px){
  .topbar,main,footer{width:min(100% - 24px,1480px)}
  .topbar{min-height:0;padding:16px 0;align-items:flex-start;flex-wrap:wrap}
  .status{display:none}
  .viewport{height:360px}
  .visuals{gap:10px}
  .process-strip{grid-template-columns:1fr}
  .controls{grid-template-columns:1fr}
  .comparison,.spectrum-summary,.run-summary,.recycling-strip{grid-template-columns:1fr}
  .recycling-strip span{min-height:0}
  .departure-readout,.atomic-and-population,.rate-flow{grid-template-columns:1fr}
  .derived-operation,.reference-strip{grid-template-columns:1fr}
  .run-protocol output{float:none;display:block;margin-top:5px}
  .energy-ledger dl{grid-template-columns:1fr}
  .wall-safety,.flame-diagnostics{grid-template-columns:1fr 1fr}
  .radical-values,.evidence-values{grid-template-columns:1fr 1fr}
  .gate-head{align-items:flex-start;flex-direction:column}
  .gate-live,.gate-scenarios{grid-template-columns:1fr}
  .assumption-grid{grid-template-columns:1fr}
  footer{flex-direction:column}
  .construction-key{grid-template-columns:1fr}
  .construction-key span:nth-child(n+3){display:none}
  .run-phase{bottom:52px}
  .volume-definition,.volume-scale{display:none}
}
