/* ideatives.com v2. One file: tokens, base, components. Roles only; no hex outside :root. */

@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/source-serif-4-latin.woff2") format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/public-sans-latin.woff2") format("woff2")}
@font-face{font-family:"Bebas Neue";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/bebas-neue.woff2") format("woff2")}

:root{
  color-scheme:light dark;
  --surface:#fbfafb; --surface-alt:#f1eff3; --ink:#17151c; --ink-2:#3b3945; --muted:#4d4b5a; --rule:#dcd9e2; --rule-strong:#9b98a8;
  --accent:#651641; --on-accent:#fbfafb; --focus:#651641;
  --hl:#651641;            /* the one highlighted mark in a chart */
  --family:#651641; --band:#651641; --family-on:#fbfafb;
  --radius:4px;
  --font-serif:"Source Serif 4","Iowan Old Style",Charter,Georgia,serif;
  --font-text:"Public Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:"Bebas Neue","Oswald","Arial Narrow",sans-serif;
  --font-features:normal;
  --weight-regular:400; --weight-medium:500; --weight-semibold:600;
  --tracking-display:.04em; --tracking-caps:.08em;
  --space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:4rem;--space-8:6rem;--space-9:8rem;
  --wrap:78rem; --gutter:clamp(1.25rem,5vw,4rem); --measure:64ch; --measure-lead:46ch;
  --step--1:.8125rem; --step-0:1.0625rem; --step-1:clamp(1.15rem,1.05rem + .45vw,1.35rem); --step-2:clamp(1.35rem,1.2rem + .7vw,1.7rem); --step-3:clamp(1.6rem,1.3rem + 1.3vw,2.25rem); --step-4:clamp(2rem,1.4rem + 2.6vw,3.4rem); --step-5:clamp(2.4rem,1.5rem + 4vw,4.75rem);
  --lh-body:1.6; --lh-heading:1.12;
  --ease:cubic-bezier(.23,1,.32,1); --dur-ui:150ms; --dur-reveal:600ms;
  --tap-min:44px; --focus-width:2px; --focus-offset:3px; --z-skip:1000;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    --surface:#0f0d14; --surface-alt:#181520; --ink:#f3f1f6; --ink-2:#cbc8d5; --muted:#a8a5b6; --rule:#2b2836; --rule-strong:#5d5a6c;
    --accent:#e6a0c6; --on-accent:#0f0d14; --focus:#e6a0c6; --hl:#e6a0c6; --family:#651641; --band:#651641; --family-on:#f3f1f6;
  }
}
:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

*,*::before,*::after{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;scroll-padding-block-start:var(--space-6)}
body{background:var(--surface);color:var(--ink);font-family:var(--font-serif);font-size:var(--step-0);line-height:var(--lh-body);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums}
p{text-wrap:pretty;max-inline-size:var(--measure)}
::selection{background:var(--accent);color:var(--on-accent)}
.wrap{max-inline-size:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.vh{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nw{white-space:nowrap}

.skip-link{position:absolute;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);z-index:var(--z-skip);display:inline-flex;align-items:center;min-block-size:var(--tap-min);padding-inline:var(--space-3);background:var(--ink);color:var(--surface);border-radius:var(--radius);font:var(--weight-semibold) var(--step--1) var(--font-text);text-decoration:none;transform:translateY(calc(-100% - var(--space-4)));transition:transform var(--dur-ui) var(--ease)}
.skip-link:focus{transform:none}

/* Links: wine, underlined. */
.link{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);transition:text-decoration-color var(--dur-ui) var(--ease)}
.link:hover{text-decoration-color:currentColor;text-decoration-thickness:2px}
a{color:inherit}

/* ---------- Masthead ---------- */
.site-header{border-block-start:6px solid var(--band);border-block-end:1px solid var(--rule)}
.site-header .ledger{display:flex;align-items:center;justify-content:space-between;min-block-size:4.25rem}
.site-header .wordmark{--wm-cap:1.15rem}
.site-header a{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-block-size:var(--tap-min)}
.wordmark{display:block;fill:currentColor;block-size:var(--wm-cap,1rem);inline-size:auto}

/* ---------- Footer ---------- */
.site-footer{margin-block-start:var(--space-8);border-block-start:1px solid var(--rule);color:var(--ink-2);font:var(--step--1)/1.6 var(--font-text)}
.site-footer .ledger{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;padding-block:var(--space-4)}
.site-footer .wordmark{--wm-cap:.8rem;color:var(--ink)}
.foot-line{margin:0;max-inline-size:none;line-height:2.75}
.foot-line .link{display:inline-block;padding-block:.75rem;margin-block:-.75rem;color:var(--ink);text-decoration-color:var(--rule-strong)}
.foot-line .sep{padding-inline:.25em}

/* ================= Home (v2 step 2) ================= */
body{min-block-size:100svh;display:flex;flex-direction:column}
main{flex:1}
.front{display:grid;gap:var(--space-6) var(--space-7);padding-block:var(--space-6) 0}
.intro .pp{font:var(--step--1)/1.4 var(--font-text);color:var(--muted);margin:0}
.intro h1{margin-block:var(--space-3) var(--space-4);font-weight:600;font-size:var(--step-5);line-height:1.02;letter-spacing:-.02em;text-wrap:balance}
.lead{font-size:var(--step-1);line-height:1.45;color:var(--ink-2);max-inline-size:var(--measure-lead)}
.index{list-style:none;padding:0;border-block-start:2px solid var(--ink)}
.row{position:relative;display:grid;grid-template-columns:2rem 1fr;column-gap:var(--space-3);padding:var(--space-4) 0 var(--space-4);border-block-end:1px solid var(--rule);transition:background-color var(--dur-ui) var(--ease)}
.row .pn{font:1.1rem/1.6 var(--font-display);letter-spacing:var(--tracking-display);color:var(--muted);grid-row:1 / span 2}
.fig-n{font:400 clamp(2.6rem,2rem + 3vw,3.75rem)/.9 var(--font-display);letter-spacing:.01em;color:var(--hl);grid-column:2;margin-block-end:var(--space-2);font-variant-numeric:lining-nums}
.row > div{grid-column:2}
.pt{font:600 var(--step-2)/1.2 var(--font-serif);letter-spacing:-.01em;text-wrap:balance}
.pt a{text-decoration:none}
.cover::after{content:"";position:absolute;inset:0}
.pg{margin-block-start:var(--space-2);color:var(--ink-2)}
.row .pp{margin-block-start:var(--space-2);font:var(--step--1)/1.5 var(--font-text);color:var(--muted)}
.go{margin-block-start:var(--space-2);font:var(--weight-medium) var(--step--1)/1.4 var(--font-text);color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
.row:has(.cover:focus-visible){outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}
.row .cover:focus-visible{outline:0}
@media (hover:hover) and (pointer:fine){.row:hover{background:var(--surface-alt)}.row:hover .go{text-decoration-thickness:2px}}
.row{transition:background-color var(--dur-ui) var(--ease),color 100ms var(--ease)}
.row:active{background:color-mix(in srgb,var(--ink) 6%,var(--surface))}
.more-from{margin-block-start:var(--space-4);max-inline-size:none}.more-from .link{display:inline-block;padding-block:.75rem;margin-block:-.75rem}
.row .go{display:none}
.row:first-child .go{display:block}
@media (min-width:64rem){
  .front{grid-template-columns:minmax(18rem,25rem) minmax(0,1fr);align-items:start;padding-block-start:var(--space-7)}
  .intro{position:sticky;inset-block-start:var(--space-5)}
  .intro h1{font-size:clamp(3rem,2rem + 3vw,4.25rem)}
  .more-from{grid-column:2}
  .row{grid-template-columns:2.25rem 11.5rem 1fr;align-items:start;padding-block:var(--space-3)}
  .row .pn{grid-row:auto;padding-block-start:.25rem}
  .fig-n{grid-column:2;margin:0;padding-block-start:0;font-size:2.75rem}
  .fig-n.s{font-size:2.75rem;padding-block-start:0}
  .row > div{grid-column:3}
  .row .pt{font-size:var(--step-1)}
  .row .pg{margin-block-start:var(--space-1);font-size:.95rem;line-height:1.5}
  .row:first-child{padding-block:var(--space-5)}
  .row:first-child .fig-n,.row:first-child .fig-n.s{font-size:3.85rem}
  .row:first-child .pt{font-size:var(--step-3)}
  .row:first-child .pg{font-size:var(--step-0)}
  .row:first-child .go{font-size:var(--step--1)}
}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .row{animation:rise 300ms var(--ease) backwards}
  .row:nth-child(2){animation-delay:30ms}.row:nth-child(3){animation-delay:60ms}.row:nth-child(4){animation-delay:90ms}.row:nth-child(5){animation-delay:120ms}.row:nth-child(6){animation-delay:150ms}.row:nth-child(7){animation-delay:180ms}.row:nth-child(8){animation-delay:210ms}
}
.pt{text-transform:none;letter-spacing:-.01em;font-size:var(--step-2)}
.fig-n.s{white-space:nowrap}

/* ================= Briefs ================= */
.brief{padding-block:var(--space-6) 0}
.brief .pp,.pp{font:var(--step--1)/1.5 var(--font-text);color:var(--muted);max-inline-size:none}
.brief h1{margin-block:var(--space-3) var(--space-5);font-weight:600;font-size:var(--step-5);line-height:1.04;letter-spacing:-.02em;text-wrap:balance;max-inline-size:18ch}
.big{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"n t" "n s";gap:var(--space-2) var(--space-5);align-items:center;border-block-start:2px solid var(--ink);border-block-end:1px solid var(--rule);padding-block:var(--space-5)}
.big-n{grid-area:n;font:400 clamp(4.5rem,2rem + 11vw,10.5rem)/.82 var(--font-display);color:var(--hl);letter-spacing:.005em;text-transform:uppercase}
.big-t{grid-area:t;font-size:var(--step-1);line-height:1.5;max-inline-size:44rem;align-self:end}
.big>.pp{grid-area:s;align-self:start}
.big .link,.pp .link{color:var(--ink);text-decoration-color:var(--rule-strong)}
.big .link:hover,.pp .link:hover{color:var(--accent)}
.cols{display:grid;gap:var(--space-6) var(--space-7);margin-block-start:var(--space-6)}
.rail{display:none}
.block{margin-block-start:var(--space-7);padding-block-start:var(--space-4);border-block-start:1px solid var(--rule-strong)}
.block:first-child{margin-block-start:0;border-block-start:2px solid var(--ink)}
.bh{font:600 var(--step-3)/1.15 var(--font-serif);letter-spacing:-.015em;text-wrap:balance;max-inline-size:26ch;margin-block-end:var(--space-4)}
.lede{max-inline-size:var(--measure);margin-block-end:var(--space-5);font-size:var(--step-1);line-height:1.5;color:var(--ink-2)}
.fig{margin:0;display:grid;gap:var(--space-4)}
.fig figcaption{max-inline-size:var(--measure)}
.fig .pp{font-size:var(--step--1)}

/* Line chart (inline SVG; geometry in attributes) */
.chart{display:block;inline-size:100%;max-inline-size:60rem;block-size:auto;overflow:visible}
.ch-grid{stroke:var(--rule);stroke-width:1}
.ch-line{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.ch-dot{fill:var(--surface);stroke:var(--ink);stroke-width:2}
.ch-dot.ch-hl{fill:var(--hl);stroke:var(--hl)}
.ch-axis{fill:var(--muted);font:12.5px var(--font-text)}
.ch-val{fill:var(--ink-2);font:600 14px var(--font-text);font-variant-numeric:tabular-nums}
.ch-val.ch-hl{fill:var(--ink)}
.ch-bar{fill:var(--ink-2)}.ch-bar-neg{fill:var(--muted)}.ch-bar-hl{fill:var(--hl)}
.ch-lab{fill:var(--ink-2);font:13px var(--font-text)}
.ch-zero{stroke:var(--ink-2);stroke-width:1;vector-effect:non-scaling-stroke}
.ch-m{display:none}
.ch-m .ch-axis{font-size:14px}.ch-m .ch-val{font-size:15px}

/* Horizontal bars as rows */
.hbars{list-style:none;padding:0;max-inline-size:44rem}
.hbars li{display:grid;grid-template-columns:minmax(0,1fr) 5.5rem;column-gap:var(--space-3);align-items:center;padding-block:var(--space-2);border-block-end:1px solid var(--rule)}
.hbars li:first-child{border-block-start:1px solid var(--rule)}
.hb-l{grid-column:1 / -1;font:var(--step--1)/1.4 var(--font-text);color:var(--ink-2)}
.hb-bar{display:block;inline-size:100%;block-size:.65rem;overflow:visible}
.hb-v{font:600 var(--step-0)/1 var(--font-text);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}
.hbars li.hl .hb-l{color:var(--ink);font-weight:var(--weight-semibold)}
.hbars li.hl .hb-v{color:var(--hl)}
@media (min-width:40.0625rem){.hbars li{grid-template-columns:15rem minmax(0,1fr) 6rem;padding-block:var(--space-2)}.hb-l{grid-column:auto}}

/* Stat triplets: open columns, rule on top */
.stats3,.flow,.todo,.srcs,.tl{list-style:none;padding:0}
.stats3{display:grid;gap:var(--space-5) var(--space-6)}
.stats3 li{border-block-start:2px solid var(--ink);padding-block-start:var(--space-3)}
.stats3 li>*+*{margin-block-start:var(--space-2)}
.s-n{font:400 clamp(3rem,2rem + 3vw,4.5rem)/.9 var(--font-display);color:var(--hl);text-transform:uppercase}

/* Decided / seen flow */
.flow{display:grid;margin-block-end:var(--space-3);border-block-start:1px solid var(--rule)}
.flow li{padding:var(--space-3) var(--space-3) var(--space-4);border-block-end:1px solid var(--rule);border-block-start:4px solid transparent}
.flow li>*+*{margin-block-start:var(--space-2)}
.flow li.f-dec{border-block-start-color:var(--ink)}
.flow li.f-seen{background:var(--surface-alt)}
.flow h3{font:600 var(--step-1)/1.25 var(--font-serif)}
.f-k{font:var(--weight-semibold) var(--step--1)/1.2 var(--font-text);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--muted)}
.f-dec .f-k{color:var(--ink)}
@media (min-width:64rem){
  .flow{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  .flow li{border-inline-end:1px solid var(--rule)}
}

/* What to do */
.todo{counter-reset:t;border-block-start:1px solid var(--rule);max-inline-size:52rem}
.todo li{counter-increment:t;display:grid;grid-template-columns:3rem 1fr;padding-block:var(--space-3);border-block-end:1px solid var(--rule);font-size:var(--step-1);line-height:1.45}
.todo li::before{content:counter(t);font:400 1.6rem/1.1 var(--font-display);color:var(--hl)}

/* Timeline */
.tl{border-block-start:1px solid var(--rule)}
.tl li{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--space-4);padding-block:var(--space-3);border-block-end:1px solid var(--rule)}
.tl .tl-d{font:400 1.35rem/1.2 var(--font-display);letter-spacing:var(--tracking-display);color:var(--muted);text-transform:uppercase}
.tl li>div>*+*{margin-block-start:var(--space-1)}
.tl h3{font:600 var(--step-1)/1.25 var(--font-serif)}
.tl .link,.srcs .link,.pp .link{display:inline}

/* FAQ, sources, disclosure */
.faq{max-inline-size:52rem;border-block-start:1px solid var(--rule)}
.q{border-block-end:1px solid var(--rule)}
.q summary{cursor:pointer;min-block-size:var(--tap-min);padding-block:var(--space-2);display:flex;gap:var(--space-2);align-items:baseline;font:600 var(--step-0)/1.35 var(--font-serif);list-style:none}
.q summary::-webkit-details-marker{display:none}
.q summary::before{content:"+";flex:none;inline-size:1.1rem;font:600 var(--step--1) var(--font-text);color:var(--muted)}
.q[open]>summary::before{content:"−"}
.q p{margin:0 0 var(--space-3) 1.6rem;color:var(--ink-2)}
.toc-m{margin-block-start:0;border-block-end:1px solid var(--rule);font:var(--step--1)/1.4 var(--font-text)}
.toc-m summary{cursor:pointer;min-block-size:var(--tap-min);display:flex;align-items:center;font-weight:var(--weight-semibold);list-style:none}
.toc-m summary::-webkit-details-marker{display:none}
.toc-m summary::before{content:"+";inline-size:1.25rem}
.toc-m[open]>summary::before{content:"−"}
.toc-m ol{list-style:none;padding:0 0 var(--space-2)}
.toc-m a{display:flex;align-items:center;min-block-size:var(--tap-min);color:var(--ink-2);text-decoration:none}
@media (min-width:64rem){.toc-m{display:none}}
.srcd{margin-block-start:var(--space-2)}
.srcd summary{cursor:pointer;min-block-size:var(--tap-min);display:flex;align-items:center;font:var(--weight-semibold) var(--step--1) var(--font-text)}
.srcd summary::before{content:"+";inline-size:1.25rem}
.srcd[open]>summary::before{content:"−"}
.srcs{max-inline-size:none}
@media (min-width:64rem){.srcs{columns:2;column-gap:var(--space-6)}.srcs li{break-inside:avoid}}
.srcs li{padding-block:var(--space-2);color:var(--ink-2);font:var(--step--1)/1.55 var(--font-text);border-block-end:1px solid var(--rule)}
.srcs .link{color:var(--ink);text-decoration-color:var(--rule-strong)}
.srcs .link:hover{color:var(--accent)}
.more,.data,.lic{margin-block-start:var(--space-3)}
.more summary,.data summary,.lic summary{cursor:pointer;min-block-size:var(--tap-min);display:flex;align-items:center;font:var(--weight-semibold) var(--step--1) var(--font-text);color:var(--ink)}
.data{max-inline-size:var(--measure)}
.more summary::before,.data summary::before,.lic summary::before{content:"+";display:inline-block;inline-size:1.25rem;font-weight:600}
.more[open]>summary::before,.data[open]>summary::before,.lic[open]>summary::before{content:"−"}
.more summary{margin-block-end:var(--space-2)}
.data table{border-collapse:collapse;font:var(--step--1) var(--font-text);font-variant-numeric:tabular-nums}
.data th,.data td{padding:var(--space-1) var(--space-4) var(--space-1) 0;border-block-end:1px solid var(--rule);text-align:start}
.data caption{text-align:start;color:var(--muted);padding-block-end:var(--space-1)}
.data .link{display:inline}

/* End matter */
.related{margin-block-start:var(--space-6)}
.brief-nav{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;border-block:1px solid var(--rule);padding-block:var(--space-2);margin-block-start:var(--space-6)}
.brief-nav .link{display:inline-flex;align-items:center;min-block-size:var(--tap-min);font:var(--step--1) var(--font-text);color:var(--ink);text-decoration-color:var(--rule-strong)}
.brief-nav [rel=next]{margin-inline-start:auto;text-align:end}
.brief-end{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap;margin-block-start:var(--space-5)}
.brief-end>.link{display:inline-flex;align-items:center;min-block-size:var(--tap-min);font:var(--step--1) var(--font-text)}
.quiet,.more-from{font:var(--step--1)/1.5 var(--font-text);color:var(--ink-2)}
.quiet strong,.more-from strong{font-weight:var(--weight-semibold)}
.brief-end .quiet{display:inline-flex;align-items:center;min-block-size:var(--tap-min)}
.nf-list{list-style:none;padding:0;margin-block:var(--space-5);border-block-start:1px solid var(--rule)}
.nf-list li{border-block-end:1px solid var(--rule)}
.nf-list .link{display:flex;align-items:center;min-block-size:var(--tap-min)}

@media (min-width:40.0625rem){.stats3{grid-template-columns:repeat(3,1fr)}}
@media (max-width:40rem){
  .big{grid-template-columns:1fr;grid-template-areas:"n" "t" "s"}
  .ch-d{display:none}.ch-m{display:block}
  .tl li{grid-template-columns:1fr;gap:var(--space-1)}
}
@media (min-width:64rem){
  .cols{grid-template-columns:12.5rem minmax(0,1fr)}
  .rail{display:block;position:sticky;inset-block-start:var(--space-5);align-self:start;font:var(--step--1)/1.4 var(--font-text)}
  .rail-k{color:var(--muted);margin-block-end:var(--space-2);max-inline-size:none}
  .rail ol{list-style:none;padding:0;border-inline-start:1px solid var(--rule)}
  .rail a{display:block;padding:.5rem 0 .5rem var(--space-3);margin-inline-start:-1px;border-inline-start:2px solid transparent;color:var(--ink-2);text-decoration:none}
  .rail a{transition:color var(--dur-ui) var(--ease),border-color var(--dur-ui) var(--ease)}
  @media (hover:hover) and (pointer:fine){.rail a:hover{color:var(--ink)}}
  .rail a[aria-current=true]{border-inline-start-color:var(--hl);color:var(--ink);font-weight:var(--weight-semibold)}
  .fig{grid-template-columns:minmax(0,1fr)}
}

/* Legal + 404 pages reuse .link, h1 and .lead */
.legal-main{display:block}

/* Print */
@media print{
  :root{color-scheme:light}
  body{background:#fff;color:#000}
  .skip-link,.rail,.brief-nav,.brief-end,.related,.site-footer .ledger>svg{display:none!important}
  .srcs a::after{content:" " attr(href);word-break:break-all;color:#555}
  .fig,.stats3 li,.flow li,.tl li,.hbars li,.row{break-inside:avoid}
  details::details-content{content-visibility:visible!important;display:block!important}
  .big-n,.fig-n,.s-n{color:#000}
  .hb-bar rect{fill:#000}.hb-bar .ch-bar-hl{fill:#444}
}
@media (forced-colors:active){
  .ch-bar,.ch-bar-neg,.ch-bar-hl{fill:CanvasText}.ch-line{stroke:CanvasText}
}

.pp{word-spacing:.08em}

/* Data reveal: one-shot, time-based, ~500ms ease-out when a chart enters view (rail.js adds .pre, then .in).
   Value labels are never animated. Without JS, or under reduced motion/print, bars are at final length. */
@media (prefers-reduced-motion:no-preference){
  .pre .hb-bar rect{transform-box:fill-box;transform-origin:left center;transform:scaleX(0)}
  .pre .hb-bar .ch-bar-neg{transform-origin:right center}
  .pre .ch-line{stroke-dashoffset:var(--len)}
  .pre .ch-dot{opacity:0}
  .pre.in .hb-bar rect,.pre.in .ch-line,.pre.in .ch-dot{transition:transform 500ms var(--ease),stroke-dashoffset 500ms var(--ease),opacity 300ms var(--ease) 200ms}
  .pre.in .hb-bar rect{transform:none}
  .pre.in .ch-line{stroke-dashoffset:0}
  .pre.in .ch-dot{opacity:1}
}
@media print,(prefers-reduced-motion:reduce){
  .pre .hb-bar rect{transform:none!important}.pre .ch-line{stroke-dashoffset:0!important;stroke-dasharray:none!important}.pre .ch-dot{opacity:1!important}
  *{animation:none!important;transition:none!important}
}

/* ---------- v3 compression by layout ---------- */
.block{margin-block-start:var(--space-6)}
.bh{font-size:var(--step-2);margin-block-end:var(--space-3)}
.lede{font-size:var(--step-0);line-height:1.55;margin-block-end:var(--space-4)}
.fig{gap:var(--space-3)}
.todo li{padding-block:var(--space-2);font-size:var(--step-0)}
.stats3 li>*+*{margin-block-start:var(--space-1)}
.s-n{font-size:clamp(2.4rem,1.8rem + 2.4vw,3.4rem)}
.flow li{padding-block:var(--space-2) var(--space-3)}
.tl li{padding-block:var(--space-2)}
.tl .tl-d{font-size:1.15rem}
.tl h3{font-size:var(--step-0)}
.tl p:not(.pp):not(.tl-d){font-size:.95rem;line-height:1.5}
@media (min-width:64rem){
  .tl{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-6)}
  .tl li{grid-template-columns:5.5rem minmax(0,1fr);gap:var(--space-3);break-inside:avoid}
  .tl li:nth-child(2):nth-last-child(n+2),.tl li:nth-child(1){border-block-start:0}
}
/* secondary charts are shorter than the one finding chart (first figure) */
.block ~ .block .hbars li{padding-block:var(--space-1)}
.block ~ .block .hb-bar{block-size:.5rem}
@media (max-width:40rem){
  .hbars li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l v" "b b";row-gap:.2rem;padding-block:var(--space-2)}
  .hb-l{grid-area:l}.hb-bar{grid-area:b}.hb-v{grid-area:v;font-size:var(--step--1)}
  .hb-bar{block-size:.7rem}
}
.stats3+.pp,.flow+.pp,.hbars+.pp{margin-block-start:var(--space-3)}

.todo{background:var(--surface-alt);padding-inline:var(--space-4);border-block-start:2px solid var(--ink)}
.todo li:last-child{border-block-end:0}
.block{scroll-margin-block-start:var(--space-5)}

/* ---------- v3 pass 2 ---------- */
/* one signal colour: secondary stats and todo numerals in ink */
.s-n,.todo li::before{color:var(--ink)}
.quiet .link{color:var(--ink-2);text-decoration-color:var(--rule-strong);display:inline;padding:0;margin:0}
.quiet .link:hover{color:var(--accent)}
.more-from .quiet{display:inline-block;padding-block:.75rem;margin-block:-.75rem}
@media (min-width:64rem){.more-from{padding-inline-start:15.75rem}}
.ch-bar{fill:color-mix(in srgb,var(--ink) 62%,var(--surface))}
.todo,.faq{max-inline-size:none}
.f-seen{border-block-start-color:var(--muted)}
/* diverging chart cue: unit, zero, direction */
.axis-cue{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem;max-inline-size:44rem;margin-block-end:var(--space-2);font:var(--step--1)/1.3 var(--font-text);color:var(--muted)}
.ac-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:end}
.ac-bar b{font-weight:var(--weight-semibold);color:var(--ink)}.ac-bar span:last-child{text-align:end}
@media (min-width:40.0625rem){
  .axis-cue{grid-template-columns:15rem minmax(0,1fr) 6rem;column-gap:var(--space-3);align-items:end}
  .ac-u{grid-column:1}.ac-bar{grid-column:2}
}
.ch-zero{stroke:var(--ink);stroke-width:1.5}
/* summaries: hover, press, glyph that morphs plus -> minus (no layout shift) */
:is(.q,.srcd,.toc-m,.more,.lic,.data)>summary{transition:color var(--dur-ui) var(--ease),background-color var(--dur-ui) var(--ease)}
:is(.srcd,.more,.lic)>summary{font-size:.9375rem}
@media (hover:hover) and (pointer:fine){:is(.q,.srcd,.toc-m,.more,.lic,.data)>summary:hover{color:var(--accent)}}
:is(.q,.srcd,.toc-m,.more,.lic,.data)>summary:active{background:var(--surface-alt)}
:is(.q,.srcd,.toc-m,.more,.lic,.data)>summary::before,:is(.q,.srcd,.toc-m,.more,.lic,.data)[open]>summary::before{content:"";display:inline-block;flex:none;inline-size:.7rem;block-size:.7rem;margin-inline-end:.6rem;background:currentColor;font:0;
  clip-path:polygon(40% 0,60% 0,60% 40%,100% 40%,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%,0 40%,40% 40%);transition:clip-path 180ms var(--ease)}
:is(.q,.srcd,.toc-m,.more,.lic,.data)[open]>summary::before{clip-path:polygon(40% 40%,60% 40%,60% 40%,100% 40%,100% 60%,60% 60%,60% 60%,40% 60%,40% 60%,0 60%,0 40%,40% 40%)}
.q p{margin-inline-start:1.3rem}
@media print{
  .toc-m{display:none!important}
  .hb-bar rect{fill:#999}.hb-bar .ch-bar-hl{fill:#000}
}
.ac-bar.zl{display:flex;justify-content:space-between}.ac-bar.zl b{margin-inline-start:4.26%;transform:translateX(-50%)}
