/* FY14 Road to Fusion: the course components (units.js, fx/*.js) in the site's design system (templates/site.css):
   the same tokens, the task level of a card, inner panels tinted, 40 px controls, right and wrong said in words and
   by a sign, never by colour alone. Everything fits the 38rem reading column; the timeline, the map and the
   explorers may use the lesson's full width (.fx-wide), and on a phone they are one column. */
.fx{margin:1.25rem 0;font-size:var(--fs-inner);line-height:var(--lh)}
.fx .fx-fallback{color:var(--ink-2)}
.fx-prompt{font-size:var(--fs-body);margin:0 0 .75rem}
.fx-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.75rem 0 .25rem}
.fx-btn{font:600 var(--fs-ui) var(--sans);min-height:40px;padding:0 1rem;border:1px solid var(--accent-deep);border-radius:999px;background:var(--accent-deep);color:#fff;cursor:pointer}
.fx-btn:hover{background:var(--accent)}
.fx-btn.fx-quiet,.fx-step,.fx-move{background:var(--surface);color:var(--accent-deep)}
.fx-btn.fx-quiet:hover,.fx-step:hover,.fx-move:hover{background:var(--accent-soft)}
.fx-btn.fx-small{min-height:40px;padding:0 .75rem}
.fx-btn[hidden]{display:none}
.fx-link{font-weight:600}
.fx-msg{margin:.5rem 0 0;min-height:1.3em;font-size:var(--fs-ui);max-width:var(--measure)}
.fx-note{font-size:var(--fs-small);color:var(--ink-2);margin:.5rem 0 0;max-width:var(--measure)}
.fx output{display:block;font-size:var(--fs-ui);min-height:0}
.fx output[data-state=ok]{color:var(--accent-deep);font-weight:600}
.fx output[data-state=no]{color:#8a3b1a}
.fx output[data-state=hint]{color:var(--ink-2)}
.fx output[data-state=ok]::before{content:"✓ ";font-weight:700}
.fx output[data-state=no]::before{content:"✗ ";font-weight:700}
.fx select{font:inherit;font-size:var(--fs-inner);min-height:40px;max-width:100%;padding:0 .5rem;border:1px solid var(--fig-line);border-radius:8px;background:var(--surface);color:var(--ink)}
.fx select[data-state=ok]{border-color:var(--accent-deep);box-shadow:inset 0 0 0 1px var(--accent-deep)}
.fx select[data-state=no]{border-color:#8a3b1a;box-shadow:inset 0 0 0 1px #8a3b1a}
/* matching */
.fx-match{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.fx-match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.25rem .75rem;align-items:center;padding:.6rem .75rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-match-row output{grid-column:1/-1}
.fx-match-row[data-state=ok]{border-color:var(--accent-deep)}
.fx-match-row[data-state=no]{border-color:#c98a6a}
@container content (max-width:30rem){.fx-match-row{grid-template-columns:1fr}}
@media (max-width:30rem){.fx-match-row{grid-template-columns:1fr}}
/* ordering */
.fx-order{list-style:decimal;margin:0;padding-left:1.75rem;display:grid;gap:.4rem}
.fx-order-row{padding:.35rem .5rem .35rem .75rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);display:flex;gap:.5rem;align-items:center;justify-content:space-between}
.fx-order-row[data-state=ok]{border-color:var(--accent-deep)}
.fx-order-row[data-state=ok] .fx-order-text::after{content:" ✓";color:var(--accent-deep);font-weight:700}
.fx-order-row[data-state=no]{border-color:#c98a6a}
.fx-order-btns{display:flex;gap:.3rem;flex:none}
.fx-move{min-width:40px;min-height:40px;border:1px solid var(--accent-deep);border-radius:8px;font:700 1rem var(--sans);cursor:pointer}
.fx-move:disabled{opacity:.35;cursor:default}
/* gap fill */
.fx-gaps{display:grid;gap:.6rem}
.fx-gap-row{padding:.5rem .75rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-gap-line{margin:0;line-height:2.4}
.fx-gap-line select{margin:0 .25rem}
.fx-en{display:block;color:var(--ink-2);font-size:var(--fs-small)}
/* phrases */
.fx-table-wrap{overflow-x:auto}
.fx-say{display:table;border-collapse:collapse;width:100%;max-width:100%;border:0;border-radius:0;font-size:var(--fs-inner)}
.fx-say thead{display:table-header-group}.fx-say tbody{display:table-row-group}
.fx-say td,.fx-say th{white-space:normal}
.fx-say caption{text-align:left;font-weight:700;margin-bottom:.4rem}
.fx-say th{text-align:left;font-size:var(--fs-small);color:var(--ink-2);border-bottom:2px solid var(--line);padding:.4rem .5rem}
.fx-say td{border-bottom:1px solid var(--line-2);padding:.5rem;vertical-align:top}
.fx-tip{display:block;font-size:var(--fs-small);color:var(--ink-2)}
.fx-say-btns{white-space:nowrap}
.fx-say-btns .fx-btn{margin:0 .25rem .25rem 0}
@media (max-width:36rem){.fx-say thead{display:none}.fx-say tr{display:grid;padding:.5rem 0;border-bottom:1px solid var(--line-2)}.fx-say td{border:0;padding:.15rem 0}}
/* dialogue */
.fx-steps{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}
.fx-step{min-height:40px;padding:0 .9rem;border:1px solid var(--accent-deep);border-radius:999px;font:600 var(--fs-ui) var(--sans);cursor:pointer}
.fx-step[aria-pressed=true]{background:var(--accent-deep);color:#fff}
.fx-dlg{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.fx-dlg-line{display:grid;grid-template-columns:6.5rem minmax(0,1fr) auto;gap:.5rem;align-items:start;padding:.5rem .75rem;border-radius:var(--inner-radius);background:var(--fig-paper);border:1px solid var(--line)}
.fx-dlg-line[data-role=B]{background:var(--accent-soft)}
.fx-role{font-weight:700;font-size:var(--fs-small);color:var(--ink-2);padding-top:.15rem}
.fx-dlg-text .fx-fr{display:block;font-weight:600}
.fx-cue{font-style:italic;color:var(--ink-2)}
@media (max-width:30rem){.fx-dlg-line{grid-template-columns:minmax(0,1fr) auto}.fx-role{grid-column:1/-1}}
/* video */
.fx-video-card{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.9rem 1rem}
.fx-video-card p{margin:0 0 .35rem}
.fx-video-meta{font-size:var(--fs-small);color:var(--ink-2)}
.fx-video-frame.on{position:relative;aspect-ratio:16/9;margin-top:.75rem;border-radius:var(--inner-radius);overflow:hidden;background:#000}
.fx-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* word banks, sentence starters and French corners written in the text */
.wordbank{border:1px solid var(--line);border-left:4px solid var(--fig-water);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.75rem 1rem;margin:1rem 0;font-size:var(--fs-inner)}
.wordbank>:last-child{margin-bottom:0}
.wordbank h4,.french-corner h4{margin:0 0 .4rem;font-size:var(--fs-ui);letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2)}
.french-corner{border:1px solid var(--line);border-left:4px solid #1f4e9c;border-radius:var(--inner-radius);background:#f3f6fc;padding:.75rem 1rem;margin:1.5rem 0;font-size:var(--fs-inner)}
.french-corner>:last-child{margin-bottom:0}
/* course page: chapters and units, authors */
.local-authors{font-size:var(--fs-ui);color:var(--ink-2);margin:-.25rem 0 1rem}
.unit-chapters{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}
.unit-chapter h3{display:flex;gap:.6rem;align-items:baseline;margin:0 0 .2rem;font-size:var(--fs-h3)}
.unit-chapter .local-why{display:block;margin:0 0 .4rem;color:var(--ink-2);font-style:italic}
/* page end: credits and sources */
.unit-credits,.unit-sources,.unit-teacher{max-width:var(--measure)}
.unit-credits,.unit-sources{margin-top:var(--stage-space);border-top:1px solid var(--line);padding-top:1.25rem;font-size:var(--fs-inner)}
.unit-credits ul,.unit-sources ul{padding-left:1.2rem}
.unit-sources .checked{font-size:var(--fs-small);color:var(--ink-2);margin-left:.35rem;white-space:nowrap}
.unit-sources .source-note{display:block;font-size:var(--fs-small);color:var(--ink-2)}
.unit-sources-lead{font-size:var(--fs-small);color:var(--ink-2)}
.unit-teacher{margin-top:2rem}
/* filters shared by the map and the timeline */
.fx-field{display:flex;flex-direction:column;gap:.2rem;min-width:9rem;flex:1 1 9rem}
.fx-field label{font-size:var(--fs-small);font-weight:600;color:var(--ink-2)}
.fx-field input[type=search]{font:inherit;font-size:var(--fs-inner);min-height:40px;padding:0 .6rem;border:1px solid var(--fig-line);border-radius:8px;background:var(--surface)}
.fx-field-wide{flex:2 1 14rem}
.fx-check{display:flex;gap:.4rem;align-items:center;font-size:var(--fs-small);font-weight:400!important;min-height:40px}
.fx-check input{width:20px;height:20px}
.fx-legend{list-style:none;margin:.5rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:var(--fs-inner);color:var(--ink-2)}
.fx-legend li{display:flex;align-items:center;gap:.35rem}
.fx-swatch{display:inline-block;width:.85rem;height:.85rem;border-radius:3px;flex:none}
.fx-sym{font-size:1rem;line-height:1}
/* the map (wide: the lesson's full width from a laptop up) */
.fx[data-fx=map],.fx[data-fx=timeline]{max-width:none}
.fx-map-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-year-row{display:flex;align-items:center;gap:.6rem}.fx-year-row input{flex:1;min-height:40px}.fx-year-out{font-weight:700;min-width:3.5rem}
.fx-map-main{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:.75rem}
@container content (min-width:56rem){.fx-map-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}
.fx-map-canvas{width:100%;min-height:320px;border:1px solid var(--line);border-radius:var(--inner-radius);overflow:hidden;background:#dfe9ef;z-index:0}
@media (max-width:40rem){.fx-map-canvas{height:60vh!important;max-height:420px}}
.fx-map-panel{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--surface);padding:1rem 1.1rem;font-size:var(--fs-inner);max-height:520px;overflow:auto;scroll-margin-top:var(--sticky-top)}
.fx-map-panel h4{margin:.2rem 0 .3rem;font-size:var(--fs-h3);font-family:var(--serif)}
.fx-map-kicker,.fx-map-where{font-size:var(--fs-small);color:var(--ink-2);margin:0 0 .3rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.fx-map-src{font-size:var(--fs-small)}
.fx-map-photo{margin:.5rem 0}.fx-map-photo img{width:100%;height:auto;border-radius:8px}.fx-map-photo figcaption{font-size:var(--fs-small);color:var(--ink-2)}
.fx-map-list-h{margin:1.25rem 0 .4rem;font-size:var(--fs-ui);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2)}
.fx-map-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
.fx-map-list button,.fx-linkbtn{display:flex;gap:.45rem;align-items:center;width:100%;min-height:40px;text-align:left;font:inherit;font-size:var(--fs-small);padding:.35rem .6rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}
.fx-map-list button[aria-pressed=true]{border-color:var(--accent-deep);box-shadow:inset 0 0 0 1px var(--accent-deep);background:var(--accent-soft)}
.fx-pin span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.4);color:#fff;font:700 13px/1 var(--sans)}
.fx-pop ul{list-style:none;padding:0;margin:.3rem 0 0;display:grid;gap:.25rem}
/* the timeline */
.fx-tl-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin:.25rem 0 .5rem}
.fx-tl-strip{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.25rem .5rem;overflow-x:auto}
.fx-tl-strip svg{display:block;width:100%;height:auto}
.fx-tl-strip a:focus-visible{outline:none}.fx-tl-strip a:focus-visible *{stroke:#14171e;stroke-width:3}
.fx-tl-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.75rem;max-width:calc(var(--measure) + 3rem)}
.fx-tl-card{border:1px solid var(--line);border-left:6px solid var(--fig-muted);border-radius:var(--inner-radius);background:var(--surface);padding:.6rem 1rem;font-size:var(--fs-inner)}
.fx-tl-card h4{margin:.1rem 0 .35rem;font-size:var(--fs-h3)}
.fx-tl-card p{margin:0 0 .45rem}
.fx-tl-year{font-size:var(--fs-small);color:var(--ink-2)}.fx-tl-y{font-weight:700;color:var(--ink)}
.fx-tl-people,.fx-tl-src{font-size:var(--fs-small);color:var(--ink-2)}
.fx-tl-bio summary{cursor:pointer;font-weight:600;font-size:var(--fs-ui);min-height:40px;display:flex;align-items:center}
.fx-tl-card:target,.fx-tl-card:focus{box-shadow:0 0 0 3px var(--accent-soft)}
.unit-chapter ol.lessons .l-num{flex-basis:2.4rem}

/* ===== FY14 nuclear components: isotopes.js, binding.js, reaction.js (Isotope Builder, Binding Energy Explorer,
   D–T reaction and energy scales). Labels over an SVG are HTML (.fx-labs/.fx-lab, KaTeX) positioned in % of the
   viewBox, so they scale with the figure; the font follows the figure's width (container units). ===== */
.fx-plot{position:relative;container-type:inline-size;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-plot>svg{display:block;width:100%;height:auto}
.fx-labs{position:absolute;inset:0;pointer-events:none;z-index:1}
.fx-lab{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:clamp(14px,2.45cqw,16px);line-height:1;color:var(--fig-ink)}
.fx-lab .katex{font-size:1.05em}
.fx-lab{text-shadow:0 0 2px var(--fig-paper),0 0 2px var(--fig-paper),0 0 3px var(--fig-paper),0 0 4px var(--fig-paper)}   /* a halo: a label stays readable over a point or a line */
.fx-lab-start{transform:translate(0,-50%)}
.fx-lab-end{transform:translate(-100%,-50%)}
.fx-lab.fx-lab-abs{transform:none;background:rgba(255,253,248,.92);border-radius:3px;padding:1px 2px;box-shadow:0 0 0 1px rgba(201,194,178,.6)}   /* a point label is a small card over the points it may cover */
.fx-lab-muted{color:var(--fig-muted)}
.fx-lab-strong{font-weight:700}
.fx-lab-v{color:#1971c2}.fx-lab-f{color:#c92a2a}.fx-lab-fus{color:#1a4d2e}.fx-lab-fis{color:#7048e8}
.fx-question{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--inner-radius);background:var(--accent-soft);padding:.7rem 1rem;margin:1rem 0 0}
.fx-question p{margin:0}.fx-question .fx-question-h{font-size:var(--fs-small);font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-deep);margin-bottom:.2rem}
.fx-iso-dot{display:inline-flex;align-items:center;justify-content:center;width:1.05em;height:1.05em;border-radius:50%;vertical-align:-.12em;font:700 .8em/1 var(--sans);color:#fff}
.fx-iso-p{background:#c92a2a;border:1px solid #7f1d1d}.fx-iso-n{background:#9aa1a9;border:1px solid #4b5259}
/* isotope builder */
.fx-iso-ctls{display:grid;gap:.6rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-iso-ctl label{display:block;font-weight:600;font-size:var(--fs-ui);margin-bottom:.15rem}
.fx-iso-row{display:flex;align-items:center;gap:.5rem}
.fx-iso-row input[type=range]{flex:1;min-width:0;min-height:40px;accent-color:var(--accent-deep)}
.fx-iso-num{min-width:2.2rem;text-align:right;font:700 1.15rem var(--sans)!important}
.fx-iso-main{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:1rem;align-items:center;margin-top:1rem}
.fx-iso-pic{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-iso-svg{display:block;width:100%;height:auto}
.fx-iso-info p{margin:0 0 .4rem}
.fx-iso-notation{font-size:2rem;line-height:1.2}
.fx-iso-name,.fx-iso-mass{font-size:var(--fs-inner)}
.fx-iso-mass{margin:.75rem 0 0}
.fx-iso-row .fx-move{font-size:1.3rem}
.fx-iso-status{margin:.75rem 0 0;padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:var(--fs-ui)}
.fx-iso-status[data-state=ok]{border-color:var(--accent-deep)}.fx-iso-status[data-state=ok]::before{content:"✓ ";font-weight:700;color:var(--accent-deep)}
.fx-iso-status[data-state=rad]{border-color:#e8a33d}.fx-iso-status[data-state=rad]::before{content:"☢ ";font-weight:700;color:#8a5a00}
.fx-iso-status[data-state=no]{border-color:#c98a6a}.fx-iso-status[data-state=no]::before{content:"✗ ";font-weight:700;color:#8a3b1a}
.fx-iso-legend{margin-top:.6rem}
.fx-iso-chips-h{font-size:var(--fs-small);color:var(--ink-2);margin:.9rem 0 .35rem}
.fx-iso-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.fx-iso-chip{min-height:40px;min-width:3rem;padding:0 .6rem;font:inherit;font-size:var(--fs-ui);border:1px dashed var(--fig-line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}
.fx-iso-chip.is-stable{border:1px solid var(--accent-deep)}
.fx-iso-chip[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent-deep)}
.fx-iso-tasks-h{margin:1.25rem 0 .4rem;font-size:var(--fs-ui);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2)}
.fx-iso-tasks{margin:0;padding-left:1.5rem;display:grid;gap:.5rem}
.fx-iso-task{padding:.5rem .75rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-iso-task p{margin:0}.fx-iso-task .fx-actions{margin:.4rem 0 .1rem}
.fx-iso-task[data-state=ok]{border-color:var(--accent-deep)}.fx-iso-task[data-state=no]{border-color:#c98a6a}
@media (max-width:30rem){.fx-iso-main{grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);gap:.75rem}.fx-iso-notation{font-size:1.6rem}}
/* binding energy explorer */
.fx-be-bar{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:flex-end;margin-bottom:.75rem}
.fx-be-bar .fx-steps{margin:0;flex:1 1 100%}
.fx-be-fig{margin:0}
.fx-be-fig figcaption{margin-top:.4rem}
.fx-be-pt{cursor:pointer}
.fx-be-pt:hover circle:nth-of-type(1){stroke-width:3}
.fx-be-info,.fx-be-calc{margin-top:.9rem}
.fx-be-info:empty,.fx-be-calc:empty{display:none}
.fx-be-info{padding:.7rem 1rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--surface)}
.fx-be-info h4,.fx-be-calc h4{margin:0 0 .35rem;font-size:var(--fs-h3)}
.fx-be-info p{margin:0 0 .35rem}
.fx-be-calc{padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-be-calc>p{margin:.5rem 0 0}
.fx-be-eq,.fx-rx-eq{overflow-x:auto;overflow-y:hidden}
.fx-be-tbls{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;margin:.5rem 0}
.fx-be-tbl{border-collapse:collapse;width:100%;font-size:var(--fs-ui);background:var(--surface)}
.fx-be-tbl caption{text-align:left;font-weight:700;margin-bottom:.2rem}
.fx-be-tbl th{text-align:left;font-size:var(--fs-small);color:var(--ink-2);border-bottom:2px solid var(--line);padding:.3rem .4rem}
.fx-be-tbl td{border-bottom:1px solid var(--line-2);padding:.3rem .4rem}
.fx .fx-be-tbl{display:table;margin:0;border:1px solid var(--line);border-radius:8px}.fx .fx-be-tbl tbody,.fx .fx-be-tbl thead{display:table-row-group}.fx .fx-be-tbl thead{display:table-header-group}
.fx-be-tbl .fx-be-total td{font-weight:700;border-bottom:0;border-top:2px solid var(--line)}
.fx-be-tbl .num{text-align:right;white-space:nowrap}
.fx-be-steps{margin:.5rem 0 0;padding-left:1.4rem;display:grid;gap:.35rem}
.fx-be-steps li{overflow-x:auto;overflow-y:hidden}
/* D–T reaction and energy scales */
.fx-rx-h{margin:0 0 .3rem;font-size:var(--fs-h3)}
.fx-rx-h~.fx-rx-h{margin-top:2rem}
.fx-rx-legend{margin-top:.5rem}
.fx-key{display:inline-block;width:1.6em;height:4px;border-radius:2px;vertical-align:.2em;position:relative}
.fx-key::after{content:"";position:absolute;right:-2px;top:-4px;border:6px solid transparent;border-left:8px solid currentColor;border-right:0}
.fx-key-v{background:#1971c2;color:#1971c2}.fx-key-f{background:#c92a2a;color:#c92a2a}
.fx-rx-ctl .fx-rx-count{font-size:var(--fs-small);color:var(--ink-2)}
.fx-rx-text{margin:.25rem 0 0;min-height:4.8em;padding:.6rem .8rem;border-left:4px solid var(--fig-water);background:var(--surface);border-radius:0 8px 8px 0}
.fx-rx-share{margin-top:.75rem}
.fx-rx-share[hidden]{display:none}
.fx-rx-share-bar{display:flex;height:1.6rem;border:1px solid var(--fig-ink);border-radius:6px;overflow:hidden}
.fx-rx-share-n,.fx-rx-sw-n{background:#9aa1a9}
.fx-rx-share-n{border-right:2px solid var(--fig-ink)}
.fx-rx-share-a,.fx-rx-sw-a{background:repeating-linear-gradient(135deg,#d9a13a 0 5px,#f3d58c 5px 10px)}
.fx-rx-share-key{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem;margin:.35rem 0 0;font-size:var(--fs-small)}
.fx-rx-share-key>span,.fx-rx-legend>span{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.fx-rx-legend{display:flex;flex-wrap:wrap;gap:.2rem 1rem}
.fx-rx-legend>span:first-child{white-space:normal;display:inline;max-width:100%}
.fx-rx-speeds{margin:.4rem 0 0;min-height:1.5em}.fx-rx-speeds:empty{display:none}
.fx-rx-why{margin-top:.75rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.2rem 1rem .6rem}
.fx-rx-why summary{cursor:pointer;font-weight:600;font-size:var(--fs-ui);min-height:40px;display:flex;align-items:center}
.fx-sc{display:grid;gap:.45rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper)}
.fx-sc-row{display:grid;grid-template-columns:8.5rem minmax(0,1fr) 9.5rem;gap:.6rem;align-items:center}
.fx-sc-lab{font-weight:600;font-size:var(--fs-ui);line-height:1.25}
.fx-sc-kind{display:block;font-weight:400;font-size:var(--fs-small);color:var(--ink-2)}
.fx-sc-track{position:relative;height:1.6rem}
.fx-sc-grid{position:absolute;top:-.3rem;bottom:-.3rem;width:1px;background:var(--line)}
.fx-sc-bar{position:absolute;left:0;top:.2rem;bottom:.2rem;border-radius:0 4px 4px 0}
.fx-sc-chemical{background:repeating-linear-gradient(135deg,#8a96a3 0 6px,#a8b1bb 6px 12px)}
.fx-sc-nuclear{background:var(--accent-deep)}
.fx-sc-val{font-size:var(--fs-small);white-space:nowrap}
.fx-sc-axis{position:relative;height:1.6rem;border-top:1.5px solid var(--fig-ink)}
.fx-sc-tick{position:absolute;top:.25rem;transform:translateX(-50%);font-size:var(--fs-small)}
.fx-sc-tick::before{content:"";position:absolute;left:50%;top:-.3rem;height:.25rem;border-left:1.5px solid var(--fig-ink)}
.fx-sc-unit{margin:.1rem 0 0;font-size:var(--fs-small);color:var(--ink-2);text-align:center}
.fx-sc-say{margin:.6rem 0 0}
.fx-sc-src{margin:.3rem 0 0;padding-left:1.2rem;display:grid;gap:.45rem;font-size:var(--fs-ui)}
.fx-sc-cite{display:block;margin:0}
@media (max-width:34rem){.fx-sc-row{grid-template-columns:minmax(0,1fr) 7.6rem;gap:.2rem .6rem}.fx-sc-lab{grid-column:1/-1}.fx-sc-track,.fx-sc-axis{grid-column:1}.fx-sc-val{grid-column:2}.fx-sc-axisrow>span:first-child{display:none}.fx-sc-kind{display:inline}}
/* ===== end of the nuclear components ===== */

/* ===== FY14 explorers: Tokamak vs Stellarator (fx/reactors.js) and the ITER component explorer (fx/iter.js) =====
   Added as one block; the rules above are unchanged. The drawings scale by their viewBox inside the reading column;
   labels over a drawing are HTML (so that they stay readable and can hold KaTeX) and shrink to numbers on a phone,
   where a numbered key under the drawing names them. Layers are hidden by classes on the SVG (.off-<layer>). */
.rx-fig,.ip-fig{position:relative;border:1px solid var(--line);border-radius:var(--inner-radius);background:linear-gradient(#fbfaf6,#f1efe8);overflow:hidden}
.rx-svg,.ip-svg{display:block;width:100%;height:auto}
.rx-svg.off-coils .L-coils,.rx-svg.off-coils .rx-leader.L-coils,.rx-svg.off-bt .L-bt,.rx-svg.off-bp .L-bp,.rx-svg.off-helix .L-helix,.rx-svg.off-cur .L-cur{display:none}
.rx-labs{position:absolute;inset:0;pointer-events:none}
.rx-lab{position:absolute;transform:translate(0,-50%);display:inline-flex;align-items:center;gap:.3rem;font:600 var(--fs-small)/1.2 var(--sans);color:var(--ink);background:rgba(255,255,255,.92);border:1px solid var(--fig-line);border-radius:6px;padding:.15rem .4rem;white-space:nowrap}
.rx-lab[data-side=r]{transform:translate(-100%,-50%)}
.rx-lab[hidden]{display:none}
.rx-lab b,.rx-key li::marker{font-weight:700}
.rx-lab b{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;border-radius:50%;background:#14171e;color:#fff;font-size:.75rem}
.rx-key{display:none;margin:.4rem 0 0;padding-left:1.5rem;font-size:var(--fs-small);color:var(--ink-2)}
.rx-key li[hidden]{display:none}
.rx-views{margin:0 0 .6rem}
.rx-cap{margin:.6rem 0 .4rem;font-size:var(--fs-inner)}
.rx-layers{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.5rem .9rem .7rem;margin:.6rem 0 1rem}
.rx-layers legend{font-weight:700;font-size:var(--fs-ui);padding:0 .3rem}
.rx-check{font-size:var(--fs-inner)!important;flex-wrap:wrap}
.rx-check input:disabled+.rx-sw,.rx-check input:disabled~span{opacity:.55}
.rx-sw{display:inline-flex;width:36px;flex:none}
.rx-sw-coil{height:12px;border-radius:3px;background:linear-gradient(90deg,#c8763f 0 30%,transparent 30% 40%,#8fa3b5 40% 70%,transparent 70% 80%,#a86a32 80%)}
.rx-only{font-size:var(--fs-small);color:var(--ink-2);font-style:italic}
.rx-h{margin:1.5rem 0 .5rem;font-size:var(--fs-h3)}
.rx-card{border:1px solid var(--line);border-left:5px solid #2b8a3e;border-radius:var(--inner-radius);background:var(--surface);padding:.9rem 1.1rem;font-size:var(--fs-inner)}
.rx-card:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.rx-card h4{margin:.1rem 0 .4rem;font-size:var(--fs-h3)}
.rx-card p{margin:0 0 .6rem}
.rx-card-n{font-size:var(--fs-small);color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;margin:0!important}
.rx-fig-drift{max-width:26rem;margin:.4rem auto .6rem;background:var(--fig-paper)}
.rx-drift{display:block;width:100%;height:auto}
.rx-dl{position:absolute;font:600 .8125rem/1.2 var(--sans);color:var(--ink);background:rgba(255,255,255,.85);border-radius:4px;padding:0 .2rem;white-space:nowrap}
.rx-dl[data-side=r]{transform:translateX(-100%)}.rx-dl[data-side=c]{transform:translateX(-50%)}
.rx-drift-key{margin:0 0 .6rem;padding-left:1.2rem;font-size:var(--fs-small)}
.rx-nav{justify-content:space-between}
.rx-nav .fx-btn:disabled{opacity:.4;cursor:default}
.rx-table{display:table;border-collapse:collapse;width:100%;max-width:none;margin:.25rem 0 .5rem;font-size:var(--fs-inner)}
.rx-table thead,.rx-table tbody{display:table-row-group}.rx-table thead{display:table-header-group}
.rx-table th,.rx-table td{white-space:normal}
.rx-table caption{text-align:left;font-weight:700;font-size:var(--fs-h3);margin-bottom:.5rem}
.rx-table th,.rx-table td{text-align:left;vertical-align:top;padding:.5rem .6rem;border-bottom:1px solid var(--line-2)}
.rx-table thead th{font-size:var(--fs-small);color:var(--ink-2);border-bottom:2px solid var(--line)}
.rx-table tbody th{font-weight:600;width:28%}
.rx-table td{width:36%}
@media (max-width:36rem){.rx-table thead{display:none}.rx-table tr{display:grid;padding:.5rem 0;border-bottom:1px solid var(--line)}.rx-table th,.rx-table td{border:0;padding:.15rem 0;width:auto}.rx-table td::before{content:attr(data-h) ": ";font-weight:700;color:var(--ink-2)}}
.rx-checks{margin-top:1.5rem;display:grid;gap:1rem}
.rx-checks>h4{margin:0;font-size:var(--fs-h3)}
.rx-q{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.75rem .9rem}
.rx-q-t{margin:0 0 .5rem;font-weight:600}
.rx-opts{display:grid;gap:.4rem}
.rx-opt{display:flex;gap:.6rem;align-items:center;text-align:left;min-height:44px;width:100%;padding:.4rem .7rem;font:inherit;font-size:var(--fs-inner);color:var(--ink);background:var(--surface);border:1px solid var(--fig-line);border-radius:8px;cursor:pointer}
.rx-opt:hover{background:var(--accent-soft)}
.rx-opt-l{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;border:1px solid var(--fig-line);font-weight:700;font-size:var(--fs-small)}
.rx-opt[data-state=ok]{border-color:var(--accent-deep);box-shadow:inset 0 0 0 1px var(--accent-deep)}
.rx-opt[data-state=ok] .rx-opt-l::after{content:" ✓"}
.rx-opt[data-state=no]{border-color:#8a3b1a;box-shadow:inset 0 0 0 1px #8a3b1a}
.rx-opt[data-state=no] .rx-opt-l::after{content:" ✗"}
.rx-opt[data-state] .rx-opt-l{width:auto;padding:0 .35rem;border-radius:999px}
.rx-opt[data-state=""] .rx-opt-l{width:1.6rem;padding:0;border-radius:50%}
.rx-opt[data-state=""] .rx-opt-l::after{content:none}
.rx-q output{margin-top:.5rem}
.rx-note{margin-top:1.5rem}
.rx-note ul{margin:.3rem 0 0;padding-left:1.2rem}
@container content (max-width:34rem){.rx-lab .rx-lab-t{display:none}.rx-lab{padding:.1rem}.rx-key{display:block}}
@media (max-width:34rem){.rx-lab .rx-lab-t{display:none}.rx-lab{padding:.1rem}.rx-key{display:block}.rx-dl{font-size:.6875rem}}
/* ITER explorer */
.ip-mode{margin:0 0 .6rem}
.ip-main{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:.75rem}
.ip-part{cursor:pointer;outline:none}
.ip-part:focus-visible .ip-hl,.ip-part:hover .ip-hl{stroke:#14171e;stroke-width:3}
.ip-svg.has-sel .ip-part:not(.sel){opacity:.42}
.ip-svg.has-sel .ip-part.sel .ip-hl{stroke:#14171e;stroke-width:2.5}
.ip-mk circle{fill:#14171e;stroke:#fff;stroke-width:2}
.ip-mk text{fill:#fff;font:700 13px/1 var(--sans);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.ip-mk{cursor:pointer}
.ip-mk.sel circle{fill:#fff;stroke:#14171e;stroke-width:3}
.ip-mk.sel text{fill:#14171e}
.ip-mk.focus circle{stroke:#ffd43b;stroke-width:4}
.ip-scale{position:absolute;font:600 .8125rem/1 var(--sans);color:var(--ink-2);transform:translate(-50%,0)}
.ip-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.3rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.ip-list button{display:flex;gap:.5rem;align-items:center;width:100%;min-height:44px;text-align:left;font:inherit;font-size:var(--fs-small);padding:.35rem .6rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}
.ip-list button:hover{background:var(--accent-soft)}
.ip-list button[aria-pressed=true]{border-color:var(--accent-deep);box-shadow:inset 0 0 0 1px var(--accent-deep);background:var(--accent-soft)}
.ip-list b{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#14171e;color:#fff;font-size:.75rem}
.ip-list li[data-state=ok] button::after{content:"✓ found";margin-left:auto;font-weight:700;color:var(--accent-deep)}
.ip-panel{border:1px solid var(--line);border-left:5px solid #14532d;border-radius:var(--inner-radius);background:var(--surface);padding:.9rem 1.1rem;font-size:var(--fs-inner)}
.ip-panel:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.ip-panel h4{margin:.1rem 0 .5rem;font-size:var(--fs-h3);font-family:var(--serif)}
.ip-panel dl{margin:0;display:grid;gap:.5rem}
.ip-panel dt{font-size:var(--fs-small);font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em}
.ip-panel dd{margin:0}
.ip-num{font-weight:600}
.ip-src{font-size:var(--fs-small);color:var(--ink-2)}
.ip-quiz{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.75rem .9rem;margin:0 0 .75rem}
.ip-quiz-q{margin:0;font-size:var(--fs-body)}
.ip-quiz-n{font-size:var(--fs-small);color:var(--ink-2);margin:0 0 .2rem}
.ip-about{display:grid;gap:1rem;margin-top:1.5rem}
.ip-box{border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--fig-paper);padding:.8rem 1rem;font-size:var(--fs-inner)}
.ip-box h4{margin:0 0 .5rem;font-size:var(--fs-h3)}
.ip-box ul,.ip-box ol{margin:.3rem 0 .4rem;padding-left:1.2rem}
.ip-box li{margin:.2rem 0}
.ip-formula{text-align:center;margin:.4rem 0 .8rem;font-size:1.1em}
.ip-bars{display:grid;gap:.45rem;margin:.2rem 0 .8rem}
.ip-bar{display:grid;grid-template-columns:minmax(6.5rem,10rem) minmax(0,1fr);gap:.6rem;align-items:center;font-size:var(--fs-small)}
.ip-bar>span:last-child{display:block;height:1.6rem;border-radius:4px;color:#fff;font-weight:700;padding:0 .5rem;line-height:1.6rem;white-space:nowrap;min-width:fit-content}
.ip-bar-in{background:#1971c2;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0 6px,transparent 6px 12px)}
.ip-bar-out{background:#c2255c}
.ip-sched{list-style:none!important;padding:0!important;border-left:3px solid var(--fig-line);margin-left:.4rem!important}
.ip-sched li{position:relative;padding:.15rem 0 .35rem 1rem}
.ip-sched li::before{content:"";position:absolute;left:-.5rem;top:.6rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--surface);border:2px solid var(--accent-deep)}
.ip-sched b{display:inline-block;min-width:3rem}
@media (prefers-reduced-motion:reduce){.rx *,.ip *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* a match select never wider than its column; prose tables in units wrap (site tables are nowrap for numbers) */
.fx-match-row select{max-width:100%;min-width:0;width:100%}
.unit table:not(.exp-table) td,.unit table:not(.exp-table) th{white-space:normal}
/* French is never hyphenated automatically: beginners learn these words' spelling from the page */
[lang|="fr"]{hyphens:manual;-webkit-hyphens:manual}
.unit .intro-media>p{margin-top:.9rem}

/* component prompts keep the reading measure */
.fx .fx-prompt{max-width:var(--measure)}
/* timeline cards open and close (the list stays short on a phone); the strip has one frame only */
.fx-tl-strip svg{border:0;padding:0;background:none;border-radius:0}
.fx-tl-more>summary{cursor:pointer;list-style:none;display:grid;gap:.15rem;padding-right:1.6rem;position:relative}
.fx-tl-more>summary::-webkit-details-marker{display:none}
.fx-tl-more>summary::after{content:"+";position:absolute;right:0;top:0;font:700 1.25rem/1 var(--sans);color:var(--accent-deep)}
.fx-tl-more[open]>summary::after{content:"−"}
.fx-tl-more[open]>summary{margin-bottom:.5rem}
.fx-tl-title{font:600 var(--fs-h3)/1.3 var(--sans);color:var(--ink)}
.unit th{text-align:left}
.fx-tl-more>summary::before{content:none;display:none}
.unit p.source{border-radius:var(--inner-radius)}
details.opt.fold{border-style:solid;border-color:var(--accent-deep)}details.opt.fold .opt-tag{background:var(--accent-deep);color:#fff}
