
/* Original figures with richer color; the observation walkthrough is hidden.
   Reference: site/assets/hero/header-watercolor.f997e23eb21dce56.webp.
   Richer pigments echo the reveal's burst of color against the sparse paper.
   Darker matching inks keep small category labels and values readable. */
:is(#obs-instrument,#supply-instrument,.sk-deep,.tb-guide,.tb-dossier) {
  --figure-font-ui:'Libre Franklin','Helvetica Neue',Helvetica,Arial,sans-serif;
  --wc-atmosphere:#D9A432; --wc-atmosphere-ink:#805714;
  --wc-hydrosphere:#447BD0; --wc-hydrosphere-ink:#284F87;
  --wc-cryosphere:#58B7C9; --wc-cryosphere-ink:#326D80;
  --wc-biosphere:#62A34B; --wc-biosphere-ink:#42672B;
  --wc-lithosphere:#C65D4A; --wc-lithosphere-ink:#914C35;
  --wc-stone:#889EA9; --wc-pine:#7C71A8; --wc-rust:#A8543E;
  --chart-panel:var(--paper); --chart-grid:#D4D9CC; --chart-faint:#939E92;
  --chart-ocean:#447BD0; --chart-alert:#A8543E;
  --plate-accent:#284F87; --plate-accent-ink:#1C3D6B;
}

/* A white cutaway distinguishes the interactive figures from the essay paper. */
:is(#obs-instrument,#supply-instrument) {
  --inst-bg:#FFFFFF;--chart-panel:#FFFFFF;
  --figure-inset:clamp(.375rem,1.2vw,.75rem);
  width:calc(100% - 1.5rem);
  max-width:64rem;
  container-type:inline-size;
  margin-block:clamp(3.5rem,6vw,5rem);
  background:transparent;border:0;padding:0;box-shadow:none;
}
:is(#obs-instrument,#supply-instrument) .inst-inner,
figure.plate[data-figure="pipeline"] > img {
  border:1px solid rgba(32,40,36,.07);border-radius:3px;
}
:is(#obs-instrument,#supply-instrument) .inst-inner {
  background:var(--inst-bg);
  padding:clamp(1.5rem,2.5vw,2rem) var(--figure-inset);
  box-shadow:0 1px 3px rgba(32,40,36,.035),0 12px 36px -16px rgba(32,40,36,.18);
}
figure.plate[data-figure="pipeline"] {--figure-width:28rem}
figure.plate[data-figure="pipeline"] > img {
  box-shadow:0 1px 2px rgba(32,40,36,.025),0 5px 16px -8px rgba(32,40,36,.09);
}

/* These SVG presentation attributes carry the existing domain assignments.
   Gradients, nodes, icons, bars, legends, and source histories use the same map. */
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [fill="#B58A4A" i] {fill:var(--wc-atmosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stroke="#B58A4A" i] {stroke:var(--wc-atmosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stop-color="#B58A4A" i] {stop-color:var(--wc-atmosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) text[fill="#B58A4A" i] {fill:var(--wc-atmosphere-ink)}

:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [fill="#6F8A93" i] {fill:var(--wc-hydrosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stroke="#6F8A93" i] {stroke:var(--wc-hydrosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stop-color="#6F8A93" i] {stop-color:var(--wc-hydrosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) text[fill="#6F8A93" i] {fill:var(--wc-hydrosphere-ink)}

:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [fill="#7F7A94" i] {fill:var(--wc-cryosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stroke="#7F7A94" i] {stroke:var(--wc-cryosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stop-color="#7F7A94" i] {stop-color:var(--wc-cryosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) text[fill="#7F7A94" i] {fill:var(--wc-cryosphere-ink)}

:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [fill="#6E7F45" i] {fill:var(--wc-biosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stroke="#6E7F45" i] {stroke:var(--wc-biosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stop-color="#6E7F45" i] {stop-color:var(--wc-biosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) text[fill="#6E7F45" i] {fill:var(--wc-biosphere-ink)}

:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [fill="#9E6A5A" i] {fill:var(--wc-lithosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stroke="#9E6A5A" i] {stroke:var(--wc-lithosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) [stop-color="#9E6A5A" i] {stop-color:var(--wc-lithosphere)}
:is(#sankey,#supfig,.doss-spark,.sup-card,.sk-deep) text[fill="#9E6A5A" i] {fill:var(--wc-lithosphere-ink)}

/* Bring the pipeline and mixed-use endpoints into the same pigment family. */
#sankey :is([fill="#C79B5E" i],[fill="#C2703E" i]) {fill:var(--wc-atmosphere)}
#sankey :is([stop-color="#C79B5E" i],[stop-color="#C2703E" i]) {stop-color:var(--wc-atmosphere)}
#sankey [fill="#9A6F33" i] {fill:var(--wc-atmosphere-ink)}
#sankey [stop-color="#9A6F33" i] {stop-color:var(--wc-atmosphere-ink)}
#sankey [fill="#6E4B8E" i] {fill:var(--wc-pine)}
#sankey [stop-color="#6E4B8E" i] {stop-color:var(--wc-pine)}
#sankey :is([fill="#A8A8AE" i],[fill="#C4BDC0" i]) {fill:var(--wc-stone)}
#sankey :is([stop-color="#A8A8AE" i],[stop-color="#C4BDC0" i]) {stop-color:var(--wc-stone)}
#sankey [stop-color="#2F5D8C" i] {stop-color:var(--wc-hydrosphere)}
#sankey [stroke="#2F5D8C" i] {stroke:var(--wc-hydrosphere)}
#sankey [stroke="#C0392B" i] {stroke:var(--wc-rust)}
/* A solid archive column with white hatching reads as a substantial endpoint. */
#sankey{--archive-ink:#607B86}
#sankey #hatch rect {fill:var(--archive-ink)}
#sankey #hatch line {stroke:#FFFFFF;stroke-width:1.25px}
#sankey rect[data-node="archive"][fill="url(#hatch)"] {stroke:none}

/* Let the color register at rest, while preserving the original hover tracing.
   Opacity changes pigment strength only; every path, width and endpoint stays. */
#sankey .rb,#sankey path[fill^="url(#gm"] {fill-opacity:.68}
#sankey .rb[data-t="archive"] {fill-opacity:.52}
#sankey .pipe-rb {fill-opacity:.76}
#sankey .pipe-rb[data-s="pipe"][data-t="pipe"] {fill-opacity:.34}
#sankey.sk-focus .rb.on {fill-opacity:.92}
#sankey.sk-focus .pipe-rb[data-s="pipe"][data-t="pipe"].on {fill-opacity:.46}
#sankey.sk-focus .rb{opacity:.18}
#sankey.sk-focus .rb.on{opacity:1}
#sankey.sk-focus text[data-node]{opacity:.7}
#sankey.sk-focus text[data-node].on{opacity:1}
#obs-instrument #sankey.sk-focus text.on[data-node][font-size="13"][text-anchor="end"]{font-weight:700}
#sankey.sk-focus text[data-node][font-size="10.5"]:not(.on),
#sankey.sk-focus text:not([data-node]){opacity:.35}
#obs-instrument.chart-details-pinned #sankey text.on[data-node][font-size="13"][text-anchor="end"]{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
#supply-instrument #supfig.sup-focus .srow{opacity:1}
#supfig.sup-focus .srow:not(.on)>:is(line,circle,path){opacity:.22}
#supfig.sup-focus .srow:not(.on) .sglyph{opacity:.65}
#supfig.sup-focus .srow:not(.on) :is(.slab,.sval){opacity:.7}
#supfig.sup-focus .shead{opacity:.8}
#supply-instrument #supfig .rowband{display:none}
#supply-instrument #supfig .srow.on .slab{font-weight:700}
#supply-instrument.chart-details-pinned #supfig .srow.on .slab{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
#supfig .snote{transition:opacity .18s ease}
#supfig .supply-legend-item{transition:opacity .18s ease}
#supfig.sup-focus .supply-legend-item:not(.on){opacity:.16}
/* Source cards preview on hover; selection opens the shared page lightbox. */
#obs-instrument #sk-tip {display:none}
#obs-instrument #sankey :is(.rb,.sk-passive) {pointer-events:none;cursor:default}
#obs-instrument #sankey line[y1="150"]{display:none}
#supply-instrument #sup-card-layer {z-index:70}
:is(#obs-instrument,#supply-instrument) > .inst-head {position:relative;width:100%;justify-items:start;text-align:left;scroll-margin-top:5rem;overflow-anchor:none}
#obs-instrument .sk-scale-key {pointer-events:none;transition:opacity .18s ease}
#obs-instrument .sk-scale-key>text {font-family:var(--figure-font-ui);fill:var(--muted);font-weight:400}
#obs-instrument #sk-legend {overflow:hidden;opacity:.8}
#obs-instrument #sk-legend text {font-family:var(--figure-font-ui);font-size:12.5px;font-weight:400}
#obs-instrument #sk-legend text[font-weight="700"] {font-weight:500}
#obs-instrument #sk-legend text[font-size="10.5"] {font-family:var(--font-ui);font-size:16px}
/* One crisp stroke and one solid endpoint for every cadence.
   Cadence patterns and measured endpoints stay unchanged. */
#supfig .srow line:is([stroke-width="13"],[stroke-width="11"]),
#supfig .srow>circle[fill="none"],#supfig .supply-legend-item>circle[fill="none"] {display:none}
#supfig .srow line:is([stroke-width="6.5"],[stroke-width="7"],[stroke-width="5.5"]) {
  stroke-width:12px;opacity:.96;
}
#supfig .gbar {opacity:.5}
#supfig .gpanel {stroke:var(--hairline-soft)}
#supfig .gline {opacity:.95;stroke-width:1.4}
#supfig .glineh {opacity:.7;stroke-width:1.1}
#supfig :is(.gline,.glineh){transition:opacity .18s ease}

/* Temporarily remove the guided walkthrough from the preview. */
#obs-instrument #sk-play {display:none}

/* Fit the full diagram within small gutters, including narrow windows. */
#obs-instrument .skwrap,#supply-instrument .supwrap {min-width:0;max-width:100%;overflow:visible}
#obs-instrument #sankey,#supply-instrument #supfig {
  display:block;width:100%;min-width:0;max-width:100%;height:auto;
}
.figure-pan-hint {display:none}

/* A steady rhythm from title to hint, chart, and source notes at every width. */
:is(#obs-instrument,#supply-instrument) .inst-head {
  display:grid;gap:0;margin-bottom:clamp(1.25rem,2vw,1.5rem);padding-bottom:0;
}
:is(#obs-instrument,#supply-instrument)>.inst-head{height:0;margin:0;overflow:hidden}
#supply-instrument>.inst-head{
  height:auto;overflow:visible;width:min(100%,var(--chart-overview-row-width,100%));
  margin:0 auto clamp(1.25rem,2vw,1.5rem);transition:width .24s cubic-bezier(.22,.68,0,1);
}
:is(#obs-instrument,#supply-instrument) .inst-hints {display:none}
:is(#obs-instrument,#supply-instrument) .inst-foot {
  width:calc(100% - var(--figure-inset) - var(--figure-inset));
  max-width:37.7rem;margin:1.5rem auto 0;padding:0;border-top:0;
}
:is(#obs-instrument,#supply-instrument) .inst-foot p + p {margin-top:.875rem}
:is(#obs-instrument,#supply-instrument) .inst-foot .inst-credit {margin-top:1rem}

/* The ticker supplies the regular sans-serif voice; headings use the site's Lyon. */
:is(#obs-instrument,#supply-instrument) .inst-title {
  font-family:var(--font-display);font-weight:500;
  font-size:1.5rem;line-height:1.2;letter-spacing:-.015em;
}
:is(#obs-instrument,#supply-instrument) .inst-hints {
  font-family:var(--figure-font-ui);font-weight:400;letter-spacing:0;
  font-size:.8125rem;line-height:1.5;
}
/* Match the essay's image captions, including their smaller phone size. */
:is(#obs-instrument,#supply-instrument) .inst-foot {
  font-family:var(--font-body);font-size:.90625rem;font-weight:400;
  font-style:italic;line-height:1.45;letter-spacing:0;
  color:var(--ink-soft);text-align:left;text-wrap:pretty;
}
:is(#obs-instrument,#supply-instrument) .inst-foot .inst-credit {font-style:normal}
@media(max-width:600px){
  :is(#obs-instrument,#supply-instrument) .inst-foot {font-size:.875rem}
}
:is(#obs-instrument,#supply-instrument) .inst-hints b {font-weight:500}
#obs-instrument #sankey text,#supply-instrument #supfig text {
  font-family:var(--figure-font-ui);font-weight:400;
  font-variant-numeric:lining-nums tabular-nums;
}
#obs-instrument #sankey text[data-node][font-size="13"] {
  font-size:16px;font-weight:500;letter-spacing:0;transform:translateY(-1px);
}
#obs-instrument #sankey text[data-node="archive"][font-size="13"] {font-weight:700}
#obs-instrument #sankey text[data-node][font-size="10.5"] {
  font-size:12px;font-weight:400;letter-spacing:0;transform:translateY(0);
}
#obs-instrument #sankey text[data-node="ecosystems"][font-size="10.5"] {transform:translateY(1px)}
#obs-instrument #sankey text:not([data-node])[font-size="11.5"] {
  font-size:16px;font-weight:600;letter-spacing:.8px;
}
/* Use a little of the SVG's right inset for more label-to-glyph space. */
#obs-instrument #sankey{--sk-source-label-inset:-14px;overflow:visible;clip-path:inset(0 -6px 0 0)}
#obs-instrument #sankey .sk-spaced-plot{translate:14px 0}
#obs-instrument #sankey text[data-node][text-anchor="end"]{translate:var(--sk-source-label-inset) 0}
/* Keep each sphere heading and its open-form icon together at the left inset. */
#obs-instrument #sankey :is(.ngi-sphere-glyph,text[x="92.0"]){translate:-12px 0}
#obs-instrument #sankey rect[x="40"][width="296"]{x:32px;width:304px}
#obs-instrument #sankey rect[x="40"][width="3.5"]{x:32px}
#obs-instrument #sankey text:not([data-node])[font-size="12"] {font-size:12.5px;font-weight:400}
#obs-instrument #sankey text:not([data-node])[font-size="12"][font-weight="700"] {font-weight:500}
#obs-instrument #sankey text:not([data-node])[font-size="10.5"] {
  font-family:var(--font-ui);font-size:11.5px;font-weight:500;letter-spacing:0;
}
#obs-instrument #sankey text[x="92.0"][font-size="12"][font-weight="700"] {
  font-size:12.5px;font-weight:600;letter-spacing:.8px;
}
/* The pipeline's quantity is emphasized within a compact three-stage key. */
#obs-instrument #sankey .sk-pipeline-frame{y:204px;height:143px;transition:y .24s cubic-bezier(.22,.68,0,1),height .24s cubic-bezier(.22,.68,0,1)}
#obs-instrument #sankey text[data-node="pipe"][font-size="11"] {font-size:12px;font-weight:600;letter-spacing:.4px;transform:translateY(0);transition:transform .24s cubic-bezier(.22,.68,0,1)}
#obs-instrument #sankey text[data-node="pipe"][font-size="11.5"] {font-size:12px;font-weight:500;letter-spacing:.3px;transform:translateY(0);transition:transform .24s cubic-bezier(.22,.68,0,1)}
#obs-instrument #sankey text[data-node="pipe"][font-size="10"] {font-size:10.5px;font-weight:400}
#obs-instrument #sankey .figure-emphasis {font-weight:600}
/* Give the archive's main quantity, scale explanation, and total separate beats. */
#obs-instrument #sankey text[data-node="archive"][y="1230"] {font-size:12.5px}
#obs-instrument #sankey text[data-node="archive"][font-size="10"] {font-size:11px;font-style:normal}
#obs-instrument #sankey text[data-node="archive"][y="1408"] {font-size:12.5px;font-weight:500}

/* Source names identify each row; the number carries more weight than its unit. */
#supply-instrument #supfig .slab {font-size:22px;font-weight:500;letter-spacing:0}
#supply-instrument #supfig{--sup-source-label-inset:-12px}
#supply-instrument #supfig :is(.slab,.sfamily,.chart-source-cue){translate:var(--sup-source-label-inset) 0}
#supply-instrument #supfig .supply-sphere-glyph{translate:-10px 0}
#supply-instrument #supfig :is(.slab,.chart-source-cue){transform:translateY(-12px);transition:transform .18s ease}
#supply-instrument #supfig .sfamily{font-size:16.5px;font-weight:400;fill:#7E8A88;letter-spacing:0;transition:opacity .18s ease;pointer-events:none}
#supply-instrument #supfig .sval {font-family:var(--font-ui);font-size:23px;font-weight:400;letter-spacing:0}
#supply-instrument #supfig .snum {font-size:24px;font-weight:600}
#supply-instrument #supfig .sunit {font-size:17.5px;font-weight:400}
#supply-instrument #supfig .shead {font-size:28px;font-weight:600;letter-spacing:.8px}
#supply-instrument #supfig .ssub {font-size:22px;font-weight:400}
#supply-instrument #supfig .sshare {font-family:var(--font-ui);font-size:26px;font-weight:600}
#supply-instrument #supfig .snote {font-size:22px;font-weight:400}
#supply-instrument #supfig :is(.sleg,.slegd) {font-size:22px;font-weight:400;letter-spacing:0}
#supply-instrument #supfig .sleg{font-size:20px}
#supply-instrument #supfig .supply-legend-item[data-cadence="streaming"]{translate:-16px 0}
#supply-instrument #supfig .supply-legend-item[data-cadence="batch"]{translate:-12px 0}
#supply-instrument #supfig .slegk {font-size:17.5px;font-weight:500;letter-spacing:1px}
#supply-instrument #supfig :is(.ssub,.snote) {font-style:normal}
#supply-instrument #supfig :is(.sax,.saxm) {font-family:var(--font-ui);font-weight:400;letter-spacing:0}
#supply-instrument #supfig .sax {font-size:17px;font-weight:500}
#supply-instrument #supfig .saxm {font-size:12.5px}

/* Ticker cards inherit their source family's exact Sankey pigment and label ink. */
:is(.tb-guide,.tb-dossier,.sk-deep,.sk-doss)[data-sphere="atmosphere"] {--guide-accent:var(--wc-atmosphere);--guide-ink:var(--wc-atmosphere-ink)}
:is(.tb-guide,.tb-dossier,.sk-deep,.sk-doss)[data-sphere="hydrosphere"] {--guide-accent:var(--wc-hydrosphere);--guide-ink:var(--wc-hydrosphere-ink)}
:is(.tb-guide,.tb-dossier,.sk-deep,.sk-doss)[data-sphere="cryosphere"] {--guide-accent:var(--wc-cryosphere);--guide-ink:var(--wc-cryosphere-ink)}
:is(.tb-guide,.tb-dossier,.sk-deep,.sk-doss)[data-sphere="biosphere"] {--guide-accent:var(--wc-biosphere);--guide-ink:var(--wc-biosphere-ink)}
:is(.tb-guide,.tb-dossier,.sk-deep,.sk-doss)[data-sphere="lithosphere"] {--guide-accent:var(--wc-lithosphere);--guide-ink:var(--wc-lithosphere-ink)}

/* One field-note hierarchy for figure dossiers and ticker observation cards. */
:is(#obs-instrument,#supply-instrument) :is(.doss-name,.supc-name),
.sk-deep .deep-name,.tb-guide h2 {font-family:var(--font-display);font-weight:500;letter-spacing:0}
:is(#obs-instrument,#supply-instrument) :is(.doss-name,.supc-name),.tb-guide h2 {font-size:var(--field-title-size,1.15rem)}
:is(#obs-instrument,#supply-instrument) :is(.doss-body,.supc-body) {padding:var(--field-note-padding)}
:is(#obs-instrument,#supply-instrument) :is(.doss-meta,.supc-meta) {margin-top:.4rem;line-height:1.5}
:is(#obs-instrument,#supply-instrument) :is(.doss-note,.supc-note) {margin:.875rem 0;line-height:1.55}
.sk-deep .deep-name {font-size:var(--field-title-size,1.5rem)}
:is(#obs-instrument,#supply-instrument) :is(.doss-meta,.supc-meta,.doss-credit,.supc-lab),
.sk-deep :is(.deep-meta,.deep-chartlab,.deep-maplab,.deep-cr),
.tb-guide :is(figcaption,.tb-guide-counting,.tb-guide-sources,.tb-guide-credits) {font-family:var(--figure-font-ui);font-weight:400;letter-spacing:0}
:is(#obs-instrument,#supply-instrument) :is(.doss-spark,.sup-card) svg text,
.sk-deep :is(.deep-mapsvg,.deep-chartsvg) text {font-family:var(--figure-font-ui);font-weight:400}

/* A stable chart surface, with details alongside at contents-rail widths. */
.chart-explorer,.chart-explorer-stage,.chart-pane-content{display:contents}
.chart-pane-shell{display:none}
.chart-pane-heading,.chart-pane-empty{display:none}
.chart-source-cue{display:none;pointer-events:none}
#sankey .chart-source-cue{translate:var(--sk-source-label-inset) 0;transform:translateY(var(--sk-label-shift,0px))}
#sankey .sk-archive-ghost{
  color:var(--archive-ink);opacity:0;pointer-events:none;transition:opacity .18s ease;
  filter:drop-shadow(-1.5px -1.5px 0 #fff) drop-shadow(1.5px 1.5px 0 color-mix(in srgb,var(--archive-ink) 40%,transparent));
}
@keyframes chart-source-pulse{0%,100%{opacity:.35}50%{opacity:1}}
.sk-deep[data-detail-view="observing"] .supply-breakdown{display:none}
.sk-deep[data-detail-view="supply"] .observing-flow-notes{display:none}
.observing-flow-notes{grid-column:1/-1}
.observing-flow-notes p{margin:.65rem 0 0}
.sk-deep[data-detail-view] .deep-photograph{display:none}

/* Named data sources and combined maps share the original field-note style. */
.source-networks{grid-column:1/-1;min-width:0;margin:1rem 0 .25rem;font-family:var(--figure-font-ui)}
.source-networks h3{margin:0 0 .65rem;font-size:.9rem;font-weight:500;color:inherit}
.source-network{border-top:1px solid color-mix(in srgb,currentColor 15%,transparent);padding:.65rem 0}
.source-network summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.3rem 1rem;cursor:pointer;font-size:.83rem;line-height:1.5;list-style:none}
.source-network summary::-webkit-details-marker{display:none}
.source-network-name::before{content:'+';display:inline-block;width:1rem;font-family:var(--figure-font-ui)}
.source-network[open] .source-network-name::before{content:'−'}
.source-network-access{font-size:.75rem;opacity:.8;text-align:right}
.source-network-body{padding:.5rem 0 0 1rem;font-size:.8rem;line-height:1.6}
.source-network-body p{margin:0 0 .5rem}
.source-network-body strong{font-weight:500}
.source-network-region,.source-network-map-note{opacity:.8}
.source-network-data{display:inline-block;margin:.25rem 0}
.source-network-references{margin-top:.6rem;font-size:.72rem;line-height:1.55;overflow-wrap:anywhere}
.source-network-references>span{display:block;margin-top:.35rem;opacity:.8}
.source-network-preview{font-family:var(--figure-font-ui);font-size:.76rem;line-height:1.55;margin:.9rem 0 .25rem}
.source-network-preview>span{display:block;font-weight:500;margin-bottom:.2rem}
.source-map-scale-label{margin:0 0 7px;color:var(--plate-muted);font:var(--field-caption-size,.75rem)/1.4 var(--figure-font-ui,var(--font-ui))}
.source-map-label{font-family:var(--figure-font-ui);font-size:.76rem;line-height:1.5;margin:0 0 .5rem}
.sk-deep .deep-map[data-family-map] .deep-maplab{font-style:normal;font-size:.75rem;line-height:1.5}
.source-map-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;list-style:none;padding:0;font-family:var(--figure-font-ui);font-size:.72rem;line-height:1.5;margin:.65rem 0}
.source-map-legend li{display:flex;align-items:baseline;gap:.5rem;min-width:0}
.source-map-key{display:inline-block;flex:0 0 .7rem;width:.7rem;height:.7rem;color:var(--map-layer-color)}
.source-map-key-point{border-radius:50%;background:currentColor;transform:scale(.65)}
.source-map-key-line{height:.4rem;border-top:2px solid currentColor}
.source-map-key-area{height:.55rem;border:1px solid currentColor;background:color-mix(in srgb,currentColor 15%,transparent)}
.source-map-legend-compact{grid-template-columns:1fr;gap:.25rem;font-size:.65rem;margin:.5rem 0}
.source-map-legend-frequency{display:flex;flex-wrap:wrap;gap:.4rem 1rem}
.source-map-key-frequency{height:.55rem;background:currentColor}
.source-map-accounting{font-family:var(--figure-font-ui);font-size:.75rem;line-height:1.5;margin:.45rem 0}
.source-map-evidence{font-family:var(--figure-font-ui);font-size:.73rem;line-height:1.55;margin:.55rem 0 0}
.source-map-evidence summary{cursor:pointer}
.source-map-evidence p{margin:.5rem 0 0;overflow-wrap:anywhere}
.source-map-evidence article{padding:.65rem 0;border-bottom:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.source-map-evidence h4{font-size:inherit;font-weight:500;margin:0}
@media(max-width:480px){
  .source-network summary{grid-template-columns:1fr;gap:.15rem}
  .source-network-access{text-align:left;padding-left:1rem}
  .source-map-legend{grid-template-columns:1fr}
}
@media(pointer:coarse){.source-network summary,.source-map-evidence summary{min-height:44px;align-content:center}}
#obs-instrument #sankey text[data-node][font-size="13"]:not([data-node="archive"]){font-size:calc(16px * var(--sk-usecase-font-scale,1));transform:translateY(var(--sk-label-shift,0px));transition:transform .18s ease}
#obs-instrument #sankey text[data-node][font-size="10.5"]:not([data-node="archive"]):not([data-node="pipe"]){font-size:calc(12px * var(--sk-usecase-font-scale,1));transform:translateY(var(--sk-label-shift,0px));transition:opacity .16s ease}
#obs-instrument #sankey text[data-node][font-size="13"][text-anchor="end"]{font-size:calc(16px * var(--sk-source-font-scale,1))}
#obs-instrument #sankey text[data-node][font-size="10.5"][text-anchor="end"]{font-size:calc(12px * var(--sk-source-font-scale,1))}
/* Pane selections and compact preview cards share the simplified annotations. */
#supply-instrument:is(.has-chart-details,.has-chart-preview) #supfig :is(.snote,.sfamily,.gline,.glineh){opacity:0;pointer-events:none}
#supply-instrument:is(.has-chart-details,.has-chart-preview) #supfig .slab{transform:translateY(0)}
#obs-instrument:is(.has-chart-details,.has-chart-preview) .sk-scale-key{opacity:0}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey text[data-node][font-size="10.5"]{
  opacity:0;transition:opacity .18s ease;pointer-events:none;
}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey text[data-node="pipe"]:is([font-size="11"],[font-size="11.5"]){transform:translateY(16px)}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey .sk-pipeline-frame{y:220px;height:109px}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey :is(text[data-node="pipe"][font-size="10"],text[data-node="pipe"][font-size="10.5"],text[data-node="archive"]:not([font-size="13"])){opacity:0;pointer-events:none}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey circle[cx="876.5"]{opacity:0}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey .sk-archive-ghost{opacity:.32}
#obs-instrument:is(.has-chart-details,.has-chart-preview) #sankey text[data-node][font-size="13"]:not([data-node="archive"]){
  transform:translateY(var(--sk-label-shift,0px));transition:transform .18s ease;
}
@media(min-width:900px){
  body.chart-details-open nav.rail{transform:translateX(-100%);pointer-events:none}
  :is(#obs-instrument,#supply-instrument){
    --chart-section-width:min(calc(100vw - 2rem),88rem);
    position:relative;z-index:55;
    width:var(--chart-section-width);max-width:none;
    margin-left:calc((100vw - var(--chart-section-width))/2 - var(--rail-width));margin-right:0;
  }
  :is(#obs-instrument,#supply-instrument) .chart-explorer{
    display:block;overflow-anchor:none;
    --chart-empty-pane-width:clamp(12rem,calc(60vw - 20rem),calc(40% - .4rem));
    width:100%;transition:width .24s cubic-bezier(.22,.68,0,1);
  }
  :is(#obs-instrument,#supply-instrument) .chart-explorer-stage{
    display:grid;align-items:start;gap:1rem;
    grid-template-columns:minmax(0,calc(100% - 1rem - var(--chart-empty-pane-width))) minmax(0,1fr);
    transition:grid-template-columns .24s cubic-bezier(.22,.68,0,1);
  }
  :is(#obs-instrument,#supply-instrument) .inst-inner{width:100%;container-type:inline-size}
  :is(#obs-instrument,#supply-instrument) .inst-inner{padding-block:.5rem}
  #obs-instrument .skwrap{display:block;height:auto}
  #obs-instrument #sankey{height:auto}
  #obs-instrument #sankey text[data-node="archive"][font-size]{font-size:calc(12px * var(--sk-archive-font-scale,1))}
  #obs-instrument #sankey text[data-node="archive"][font-size="13"]{font-size:calc(16px * var(--sk-archive-font-scale,1))}
  :is(#obs-instrument,#supply-instrument).has-chart-details .chart-explorer{
    width:min(100%,var(--chart-overview-row-width,100%));margin-inline:auto;
    min-height:var(--chart-context-height,0px);
  }
  :is(#obs-instrument,#supply-instrument).has-chart-details .chart-explorer-stage{
    position:sticky;top:16px;
    grid-template-columns:minmax(0,var(--chart-overview-chart-width,calc(60% - .6rem))) minmax(0,1fr);
  }
  :is(#obs-instrument,#supply-instrument).has-chart-details :is(.inst-inner,.chart-pane-shell){position:static}
  #obs-instrument #sankey.sk-focus text:not([data-node])[font-weight="700"]{opacity:.8}
  .chart-pane-shell{
    position:sticky;top:24px;display:block;width:100%;min-width:0;min-height:0;
    max-height:var(--chart-pane-height,calc(100dvh - 96px));overflow:auto;
    overscroll-behavior:contain;scrollbar-width:thin;pointer-events:auto;
    background:var(--paper);border:1px solid var(--hairline-soft);border-top:3px solid var(--guide-accent,var(--hairline));
    border-radius:2px;font:14px/1.5 var(--figure-font-ui,var(--font-ui));text-align:left;
    container-type:inline-size;container-name:chart-details;
  }
  .chart-pane-shell:not(.chart-detail-pane){visibility:hidden}
  .chart-detail-pane .chart-pane-heading{
    position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;
    gap:.5rem;padding:.875rem;background:var(--paper);border-bottom:1px solid var(--hairline-soft);
    color:var(--muted);font:600 .875rem/1.35 var(--figure-font-ui);letter-spacing:.05em;text-transform:uppercase;
  }
  .has-chart-details .chart-detail-pane .chart-pane-heading{display:none}
  /* Source and pane dots start together to keep their pulse in sync. */
  :is(#obs-instrument,#supply-instrument).is-chart-exploring:not(.has-chart-details) .chart-source-cue,
  :is(#obs-instrument,#supply-instrument).is-chart-exploring:not(.has-chart-details) .chart-pane-heading>span::before{
    animation:chart-source-pulse 1.5s ease-in-out infinite;
  }
  :is(#obs-instrument,#supply-instrument).is-chart-exploring:not(.has-chart-details) .chart-source-cue{
    display:block;fill:var(--accent);stroke:color-mix(in srgb,var(--accent) 18%,transparent);stroke-width:8;
    filter:drop-shadow(0 0 10px color-mix(in srgb,var(--accent) 75%,transparent));
  }
  :is(#obs-instrument,#supply-instrument) .chart-pane-heading>span{display:inline-flex;align-items:center;gap:.6rem}
  :is(#obs-instrument,#supply-instrument) .chart-pane-heading>span::before{
    content:"";width:10px;height:10px;flex:none;border-radius:50%;background:var(--accent);
  }
  .chart-detail-pane .chart-pane-empty:not([hidden]){
    display:grid;place-items:center;min-height:12rem;
    margin:0;padding:2rem;color:#7E8A88;font:400 1.125rem/1.5 var(--figure-font-ui);letter-spacing:0;text-align:center;text-wrap:balance;
  }
  .chart-pane-hint::before{
    content:"";display:inline-block;width:1.1em;height:1.1em;margin-right:.45em;vertical-align:-.18em;background:currentColor;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 1 20 19 15 15 11 23 7 21 11 13 4 13Z'/%3E%3C/svg%3E") center/contain no-repeat;
  }
  .chart-detail-pane .sk-deep{
    --field-note-padding:.875rem;
    --field-title-size:clamp(1rem,calc(.875rem + .4cqi),1.125rem);
    --field-body-size:clamp(.8125rem,calc(.75rem + .3cqi),.875rem);
    --field-small-size:.75rem;--field-caption-size:.75rem;
    --field-lead-size:var(--field-body-size);--field-value-size:1.0625rem;
    position:static;width:100%;max-width:none;max-height:none;display:block;overflow:visible;
    margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
    font-size:var(--field-body-size);
  }
  .chart-detail-pane .sk-deep[hidden]{display:none}
  .chart-detail-pane .deep-heading{
    position:sticky;top:0;display:grid;grid-template-columns:2.5rem minmax(0,1fr);
    column-gap:.625rem;row-gap:.25rem;padding:var(--field-note-padding);padding-right:3rem;
    background:color-mix(in srgb,var(--guide-accent) 3%,var(--plate));box-shadow:none;
  }
  .chart-detail-pane .deep-name{display:contents;font-size:var(--field-title-size);font-weight:500}
  .chart-detail-pane .deep-name .tb-guide-icon{grid-column:1;grid-row:1/4;align-self:center;width:2.5rem;height:2.5rem}
  .chart-detail-pane .deep-name>span{grid-column:2;grid-row:2;min-width:0}
  .chart-detail-pane .deep-sphere{grid-column:2;grid-row:1;margin:0;padding:0;font-size:var(--field-caption-size);font-variant-caps:all-small-caps}
  .chart-detail-pane .deep-heading .deep-meta{
    grid-column:2;grid-row:3;margin:0;color:var(--guide-ink);text-transform:none;line-height:1.45;
  }
  .chart-detail-pane .deep-x{display:grid;place-items:center;top:7px;right:7px;width:32px;height:32px;font-size:24px}
  .chart-detail-pane .chart-pane-unpin{
    grid-column:2;grid-row:4;justify-self:start;margin:.15rem 0 0;padding:0;border:0;
    background:transparent;color:var(--guide-ink);font:var(--field-caption-size)/1.45 var(--figure-font-ui);cursor:pointer;
    text-decoration:underline;text-underline-offset:3px;
  }
  .chart-detail-pane .chart-pane-unpin[hidden]{display:none}
  .chart-detail-pane .deep-grid{grid-template-columns:minmax(0,1fr);padding:var(--field-note-padding);gap:1rem;overflow:visible}
  .chart-detail-pane .sk-deep[data-detail-view="supply"] .supply-breakdown-full{border-top:0;padding-top:0}
  .chart-detail-pane .instrument-facts,.chart-detail-pane .instrument-facts tbody{display:block}
  .chart-detail-pane .instrument-facts tr{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem;padding:.625rem 0;border-top:1px solid var(--plate-rule)}
  .chart-detail-pane .instrument-facts tr:last-child{border-bottom:1px solid var(--plate-rule)}
  .chart-detail-pane .instrument-facts tr :is(th,td){display:block;width:auto;padding:0;border:0;text-align:left;text-wrap:pretty}
  .chart-detail-pane .deep-media{grid-template-columns:minmax(0,1fr);gap:1rem}
  .chart-detail-pane .deep-media img.deep-photo{max-height:18rem;object-fit:contain}
  .chart-detail-pane :is(button,a,summary):focus-visible{outline:2px solid var(--guide-ink,var(--plate-accent));outline-offset:3px}
  .chart-detail-pane .contribution-label{grid-template-columns:minmax(0,1fr);gap:.15rem;font-size:var(--field-small-size)}
  .chart-detail-pane .contribution-value{display:flex;justify-content:space-between;font-size:var(--field-caption-size)}
}
@media(prefers-reduced-motion:reduce){
  #supply-instrument>.inst-head{transition:none}
  #sankey .sk-archive-ghost{transition:none}
  :is(#obs-instrument,#supply-instrument).is-chart-exploring:not(.has-chart-details) .chart-source-cue,
  :is(#obs-instrument,#supply-instrument).is-chart-exploring:not(.has-chart-details) .chart-pane-heading>span::before{animation:none;opacity:1}
  :is(#obs-instrument,#supply-instrument) :is(.chart-explorer,.chart-explorer-stage),#supfig :is(.srow,.slab,.sfamily,.ssub,.snote,.gline,.glineh,.supply-legend-item),#obs-instrument #sankey text[data-node],#obs-instrument .sk-scale-key,#obs-instrument #sankey .sk-pipeline-frame{transition:none!important}
}

/* Preview interaction fixes. */
#sup-card-layer .sup-card{pointer-events:auto;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column}
#sup-card-layer .sup-card[hidden],#sk-doss-layer .sk-doss[hidden]{display:none}
.sup-card .supc-heading{position:relative;flex:none;padding-right:3rem}
.sup-card .supc-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.supc-close{position:absolute;top:4px;right:4px;width:44px;height:44px;background:transparent;border:0;font-size:24px;color:var(--ink);cursor:pointer}
.supc-open{flex:none;width:100%;min-height:44px;padding:.6rem 1rem;border:0;border-top:1px solid var(--hairline-soft);background:var(--paper);font:500 .9375rem/1.35 var(--font-ui);color:var(--ink);text-align:left;cursor:pointer}
/* Translucent paper gently softens the ribbons while text and controls stay sharp. */
#sk-doss-layer .sk-doss{display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:color-mix(in srgb,var(--plate) 72%,transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}
#sk-doss-layer .sk-doss>img{display:none}
#sk-doss-layer .doss-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding-top:var(--field-note-padding);background:transparent}
#sk-doss-layer :is(.doss-sphere,.doss-name){padding-right:2.5rem}
#sk-doss-layer .doss-sphere,#sup-card-layer .supc-sphere{font-variant-caps:all-small-caps}
#sk-doss-layer .doss-x{width:44px;height:44px;z-index:2}
#sk-doss-layer .doss-open{flex:none;min-height:44px;width:100%;margin:0;padding:.65rem 1rem;border-top:1px solid var(--hairline-soft);background:transparent}
