/* Authored scientific figures. Mechanisms and labels share the same responsive surface. */
.section-figure{--sf-ink:var(--ink,#232724);--sf-line:var(--muted,#69746e);--sf-paper:var(--panel,#faf8f1);--sf-copper:#bd6845;--sf-teal:#458478;--sf-blue:#668ca7;margin:2.5rem 0 3rem;padding:1.4rem 0 1.1rem;border-top:1px solid var(--line,#d7d5cb);border-bottom:1px solid var(--line,#d7d5cb);color:var(--sf-ink);break-inside:avoid}
.sf-eyebrow{font:600 .63rem/1.4 var(--mono,monospace);letter-spacing:.1em;color:var(--accent,#a25436)}.sf-eyebrow span{opacity:.45;margin:0 .3em}
.section-figure .sf-title{margin:.5rem 0 1.3rem!important;font:600 clamp(1.15rem,2.2vw,1.55rem)/1.18 var(--sans,system-ui);letter-spacing:-.025em;scroll-margin-top:100px}
.sf-drawing{position:relative;background:color-mix(in srgb,var(--sf-line) 4%,transparent);border:1px solid color-mix(in srgb,var(--sf-line) 11%,transparent);border-radius:4px;padding:1.2rem;overflow:hidden}
.sf-drawing>svg{display:block;width:100%;max-width:740px;max-height:440px;margin:auto;overflow:visible}
.sf-object{fill:color-mix(in srgb,var(--sf-teal) 14%,var(--sf-paper));stroke:var(--sf-ink);stroke-width:1.65;stroke-linejoin:round;stroke-linecap:round}.sf-object-1{fill:color-mix(in srgb,var(--sf-copper) 18%,var(--sf-paper))}.sf-object-2{fill:color-mix(in srgb,var(--sf-blue) 20%,var(--sf-paper))}.sf-object-3{fill:color-mix(in srgb,var(--sf-line) 16%,var(--sf-paper))}
.sf-fine{stroke:var(--sf-line);stroke-width:1.3;fill:none}.sf-accent{fill:color-mix(in srgb,var(--sf-teal) 50%,var(--sf-paper))}.sf-solid{fill:var(--sf-ink)}.sf-hot{stroke:var(--sf-copper);fill:none;stroke-width:3}.sf-link{stroke:var(--sf-line);stroke-width:2.2;fill:none}.sf-arrowhead{fill:none;stroke:var(--sf-line);stroke-width:1.5}.sf-number{font:600 22px var(--sans,system-ui);fill:var(--sf-ink);text-anchor:middle}.sf-label{font:600 20px var(--sans,system-ui);fill:var(--sf-ink);text-anchor:middle}.sf-scene-label{font:500 23px var(--sans,system-ui);fill:var(--sf-ink)}
.sf-via{fill:none;stroke:var(--sf-copper);stroke-width:5;stroke-linecap:round}.sf-trace{fill:none;stroke:var(--sf-copper);stroke-width:6;stroke-linejoin:round}.sf-material-line{fill:none;stroke:var(--sf-line);stroke-width:1;opacity:.35}.sf-grain{opacity:.35}
.section-figure .sf-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;gap:1.1rem 1.6rem;padding:0;margin:1.3rem 0;font:400 .83rem/1.5 var(--sans,system-ui)}.section-figure .sf-legend li{padding:0;margin:0;min-width:0}.sf-legend strong{display:block;font-weight:650;line-height:1.3;margin-bottom:.35rem}.sf-legend span{color:var(--text-muted,var(--muted,#69746e));overflow-wrap:anywhere}
.section-figure figcaption{font:400 .76rem/1.55 var(--sans,system-ui);color:var(--text-muted,var(--muted,#69746e));max-width:82ch;margin-top:1rem}.sf-note{display:block;margin-top:.4rem}.section-figure .sf-relations{font:400 .76rem/1.55 var(--sans,system-ui);list-style:none;padding:0;margin:.6rem 0 1rem}.sf-relations li{margin:.3rem 0}.sf-relations span{font-weight:650;margin-right:.4rem}
.section-figure .sf-components{gap:1.4rem;margin:0;grid-template-columns:repeat(2,minmax(0,1fr))}.section-figure .sf-count-3,.section-figure .sf-count-6{grid-template-columns:repeat(3,minmax(0,1fr))}.sf-unit{text-align:center;position:relative;min-width:0}.sf-unit>svg{display:block;width:100%;height:116px;margin:0 auto .8rem;overflow:visible}.sf-unit-copy{max-width:29ch;margin:auto}.sf-unit-copy strong{font-size:.88rem}.sf-unit-copy span{font-size:.79rem;line-height:1.5;display:block}
.sf-process{counter-reset:sf-stage}.sf-process .sf-unit{counter-increment:sf-stage}.sf-process .sf-unit-copy strong:before{content:counter(sf-stage,decimal-leading-zero) ' / ';font:600 .65rem var(--mono,monospace);color:var(--accent,#a25436)}.sf-process .sf-unit:not(:last-child):after{content:'→';position:absolute;right:-1.2rem;top:2.8rem;color:var(--sf-line);font:400 1.3rem var(--sans,system-ui)}.sf-process.sf-count-4 .sf-unit:nth-child(2):after,.sf-process.sf-count-6 .sf-unit:nth-child(3):after{display:none}.sf-cycle-return{font:500 .68rem var(--mono,monospace);color:var(--sf-line);border-top:1px dashed color-mix(in srgb,var(--sf-line) 35%,transparent);padding-top:.8rem;margin-top:1.2rem;text-align:center}.sf-cycle-return span{font-size:1rem;margin-right:.5rem}
.sf-stack{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:1.3rem;align-items:stretch}.sf-stack>svg{width:100%;height:100%;max-height:none;overflow:visible}.section-figure .sf-stack-labels{display:grid;grid-template-columns:1fr;grid-auto-rows:1fr;gap:0;margin:0;padding:.25rem 0}.section-figure .sf-stack-labels li{display:flex;flex-direction:column;justify-content:center;padding:.65rem 0;border-bottom:1px solid color-mix(in srgb,var(--sf-line) 15%,transparent)}.section-figure .sf-stack-labels li:last-child{border:0}.sf-stack-labels strong{font-size:.85rem}.sf-stack-labels span{font-size:.76rem}
.sf-convergence{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,.8fr);align-items:center;gap:.5rem}.section-figure .sf-branch-inputs,.section-figure .sf-branch-output{grid-template-columns:1fr;margin:0;gap:1rem}.sf-branch-inputs .sf-unit{display:grid;grid-template-columns:66px 1fr;gap:.65rem;align-items:center;text-align:left}.sf-branch-inputs .sf-unit>svg{height:68px;margin:0}.sf-branch-inputs .sf-unit-copy{margin:0}.sf-branch-inputs .sf-unit-copy strong{font-size:.79rem}.sf-branch-inputs .sf-unit-copy span{font-size:.74rem}.sf-branch-output .sf-unit>svg{height:120px}.sf-merge{height:70%;border:1px solid var(--line,#d7d5cb);border-left:0;position:relative}.sf-merge span{position:absolute;right:-.48em;top:calc(50% - .5em);font:400 1.4rem/1 var(--sans,system-ui);background:var(--sf-paper);color:var(--sf-line)}
.section-figure .sf-scale-levels{grid-template-columns:1fr;gap:.45rem;margin:0}.section-figure .sf-scale-levels li{display:flex;align-items:center;gap:1rem;margin-left:calc(var(--level)*1.2rem);padding:.6rem 1rem;border:1px solid color-mix(in srgb,var(--sf-line) 23%,transparent);border-left:3px solid var(--sf-teal);border-radius:3px;background:color-mix(in srgb,var(--sf-paper) 65%,transparent)}.sf-scale-levels svg{flex:0 0 58px;width:58px;height:58px}.sf-scale-levels span{font-size:.77rem}
.sf-vessel{fill:color-mix(in srgb,var(--sf-line) 5%,var(--sf-paper));stroke:var(--sf-ink);stroke-width:3}.sf-bed{fill:color-mix(in srgb,var(--sf-copper) 12%,var(--sf-paper));stroke:var(--sf-line);stroke-width:1.5}.sf-melt{fill:color-mix(in srgb,var(--sf-copper) 42%,var(--sf-paper));stroke:var(--sf-copper);stroke-width:2}.sf-electrode{stroke:var(--sf-ink);stroke-width:14;fill:none}.sf-deposit{stroke:color-mix(in srgb,var(--sf-teal) 55%,var(--sf-paper));stroke-width:23;fill:none}.sf-crystal{fill:color-mix(in srgb,var(--sf-blue) 28%,var(--sf-paper));stroke:var(--sf-ink);stroke-width:2}.sf-scene .sf-drawing{padding:.75rem .3rem}.sf-scene .sf-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.5rem}
@media(min-width:1100px){.section-figure .sf-count-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}.sf-count-4 .sf-unit>svg{height:108px}.sf-count-4 .sf-unit-copy strong{font-size:.77rem}.sf-count-4 .sf-unit-copy span{font-size:.74rem}.sf-process.sf-count-4 .sf-unit:nth-child(2):after{display:block}.sf-process.sf-count-4 .sf-unit:after{right:-1rem}}
@media(max-width:600px){.section-figure{margin:1.7rem 0 2rem;padding-top:1.1rem}.sf-drawing{padding:.85rem}.section-figure .sf-legend{grid-template-columns:1fr;gap:.85rem}.section-figure .sf-components{grid-template-columns:1fr;gap:1.05rem}.sf-components .sf-unit{display:grid;grid-template-columns:86px minmax(0,1fr);gap:1rem;align-items:center;text-align:left}.sf-components .sf-unit>svg{height:86px;margin:0}.sf-components .sf-unit-copy{margin:0;max-width:none}.sf-components .sf-unit-copy strong{font-size:.84rem}.sf-components .sf-unit-copy span{font-size:.77rem}.sf-components .sf-unit:not(:last-child){padding-bottom:1rem;border-bottom:1px solid color-mix(in srgb,var(--sf-line) 15%,transparent)}.sf-process .sf-unit:after{display:none!important}.sf-cycle-return{line-height:1.5}.sf-stack{grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:.9rem}.sf-stack-labels strong{font-size:.78rem}.sf-stack-labels span{font-size:.7rem;line-height:1.5}.section-figure .sf-stack-labels li{padding:.6rem 0}.sf-convergence{grid-template-columns:minmax(0,1fr) 20px minmax(0,.8fr);gap:.6rem}.sf-branch-inputs .sf-unit{display:block;text-align:left}.sf-branch-inputs .sf-unit>svg{height:58px;width:65px;margin:0 0 .5rem}.sf-branch-output .sf-unit>svg{height:90px}.sf-branch-output .sf-unit-copy strong{font-size:.8rem}.sf-branch-output .sf-unit-copy span{font-size:.73rem}.section-figure .sf-scale-levels li{margin-left:calc(var(--level)*.65rem);gap:.6rem;padding:.6rem}.sf-scale-levels svg{flex-basis:42px;width:42px;height:42px}.sf-scale-levels strong{font-size:.79rem}.sf-scale-levels span{font-size:.73rem}.sf-scene .sf-legend{grid-template-columns:1fr}.sf-scene .sf-drawing{margin:0}.sf-scene-label{font-size:25px}.sf-label{font-size:23px}}
/* Relationship lanes keep prose outside geometry and give every edge its own route. */
.section-figure .sf-connections{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.sf-connections>li{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.9fr) minmax(0,1fr);gap:.8rem;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--line)}.sf-connections>li:last-child{border:0}.sf-endpoint{text-align:center;font:600 .86rem/1.35 var(--sans,system-ui)}.sf-endpoint>svg{display:block;width:86px;height:78px;margin:0 auto .45rem}.sf-endpoint strong{display:block;overflow-wrap:anywhere}.sf-connection{text-align:center;font:500 .76rem/1.35 var(--sans,system-ui);color:var(--text-muted,var(--muted))}.sf-connection>svg{display:block;width:100%;height:24px;margin:.45rem auto 0}.sf-callout circle{fill:var(--sf-paper);stroke:var(--sf-ink);stroke-width:2}.sf-callout text{fill:var(--sf-ink);font:650 25px var(--sans,system-ui);text-anchor:middle}.section-figure .sf-scene-key{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1.1rem;padding:0;margin:1rem 0;font:500 .82rem/1.4 var(--sans,system-ui)}.sf-scene-key li{display:flex;gap:.55rem;align-items:flex-start}.sf-scene-key b{display:grid;place-items:center;flex:0 0 1.35rem;height:1.35rem;border:1px solid var(--line);border-radius:50%;font:600 .7rem var(--mono,monospace)}
@media(max-width:600px){.sf-connections>li{grid-template-columns:minmax(0,1fr) 78px minmax(0,1fr);gap:.35rem}.sf-endpoint{font-size:.75rem}.sf-endpoint>svg{width:65px;height:62px}.sf-connection{font-size:.7rem}.section-figure .sf-scene-key{grid-template-columns:1fr;font-size:.79rem}.sf-callout text{font-size:30px}}
@media(max-width:600px){.sf-connections>li{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:.65rem .4rem}.sf-connections .sf-connection{display:contents}.sf-connection>span{grid-column:1/-1;grid-row:1;font:500 .78rem/1.4 var(--sans,system-ui);text-align:center;color:var(--text-muted,var(--muted))}.sf-connection>svg{grid-column:2;grid-row:2;margin:auto}.sf-endpoint{grid-row:2}.sf-endpoint:first-child{grid-column:1}.sf-endpoint:last-child{grid-column:3}}
@media(max-width:600px){.sf-network .sf-label{font-size:30px}}
/* Carbon is a distinct material, not a parent fill that child shapes can override. */
.sf-carbon{fill:color-mix(in srgb,var(--sf-ink) 72%,var(--sf-paper));stroke:var(--sf-ink);stroke-width:1.8;stroke-linejoin:round}
/* A convergence remains readable on a phone: all inputs feed one full-width result. */
@media(max-width:600px){
 .sf-convergence{grid-template-columns:minmax(0,1fr);gap:1rem}
 .sf-branch-inputs .sf-unit,.sf-branch-output .sf-unit{display:grid;grid-template-columns:70px minmax(0,1fr);gap:.85rem;align-items:center;text-align:left}
 .sf-branch-inputs .sf-unit>svg,.sf-branch-output .sf-unit>svg{width:70px;height:68px;margin:0}
 .sf-branch-output .sf-unit-copy{margin:0;max-width:none}
 .sf-merge{height:12px;width:calc(100% - 52px);margin:0 auto;border:1px solid var(--line);border-top:0}
 .sf-merge span{right:calc(50% - .5em);top:.1em;transform:rotate(90deg)}
}
