:root {
  color-scheme: light dark;
  --bg: #f4f1ea;
  --surface: #ebe6dd;
  --surface-strong: #ded7cb;
  --text: #171614;
  --muted: #656057;
  --line: #b8b0a3;
  --accent: #cf351b;
  --accent-ink: #9d200d;
  --on-accent: #fff;
  --max: 75rem;
  --measure: 67ch;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #141311;
    --surface: #1f1d1a;
    --surface-strong: #2d2924;
    --text: #f2eee6;
    --muted: #aaa398;
    --line: #4d4841;
    --accent: #ff5a3b;
    --accent-ink: #ff8068;
    --on-accent: #15120f;
  }
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f4f1ea; --surface: #ebe6dd; --surface-strong: #ded7cb;
  --text: #171614; --muted: #656057; --line: #b8b0a3;
  --accent: #cf351b; --accent-ink: #9d200d; --on-accent: #fff;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #141311; --surface: #1f1d1a; --surface-strong: #2d2924;
  --text: #f2eee6; --muted: #aaa398; --line: #4d4841;
  --accent: #ff5a3b; --accent-ink: #ff8068; --on-accent: #15120f;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); line-height: 1.5; }
a { color: inherit; text-decoration-color: var(--accent); text-decoration-thickness: .1em; text-underline-offset: .2em; }
a:hover { color: var(--accent-ink); }
:focus-visible { outline: .2rem solid var(--accent); outline-offset: .2rem; }
img { max-width: 100%; height: auto; }
.wrap { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 20; top: .5rem; left: .5rem; padding: .7rem 1rem; background: var(--accent); color: var(--on-accent); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.site-header { border-bottom: 1px solid var(--line); }
.site-header__inner { min-height: 5.5rem; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 2rem; }
.wordmark { font-size: 1.15rem; font-weight: 900; line-height: .76; letter-spacing: -.07em; text-decoration: none; text-transform: uppercase; }
.wordmark span:last-child { color: var(--accent); transform: translateX(.72em); }
.wordmark--small { font-size: .95rem; }
.main-nav { display: flex; align-items: center; gap: 1.5rem; font-weight: 700; font-size: .9rem; }
.main-nav a { text-decoration: none; padding-block: .4rem; border-bottom: 2px solid transparent; white-space: nowrap; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--text); border-color: var(--accent); }
.theme-toggle { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; padding: 0; color: var(--text); background: var(--surface); border: 1px solid var(--line); cursor: pointer; }
.theme-toggle:hover { color: var(--accent-ink); border-color: var(--accent); }
.theme-toggle svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle__sun { display: none; }
.theme-toggle[data-mode="dark"] .theme-toggle__sun { display: block; }
.theme-toggle[data-mode="dark"] .theme-toggle__moon { display: none; }
.home-list { padding-block: clamp(2rem, 4vw, 3.5rem) clamp(3.5rem, 8vw, 7rem); }
.home-intro { max-width: 48rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.home-intro p { margin: 0; font: clamp(1.0625rem, 1.5vw, 1.25rem)/1.6 var(--serif); }
.development-notice { display: grid; grid-template-columns: minmax(10rem, .45fr) 1.55fr; gap: 2rem; margin-bottom: 2rem; padding: 1rem 1.2rem; background: var(--surface); border-left: .35rem solid var(--accent); }
.development-notice strong { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.development-notice p { margin: 0; color: var(--muted); font: 1rem/1.45 var(--serif); }
.compact-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 3px solid var(--text); }
.compact-list { column-gap: 2rem; }
.compact-list--section { border-top: 0; }
.compact-list > .empty-state { grid-column: 1 / -1; }
.section-list { padding-bottom: 3rem; }
.compact-article { min-width: 0; grid-column: span 2; padding-block: clamp(1.5rem, 3vw, 2.25rem); border-bottom: 1px solid var(--line); }
.compact-article--wide { grid-column: 1 / -1; }
.compact-article--half { grid-column: span 3; }
.compact-article:not(.compact-article--wide) h2 { font-size: clamp(1.4rem, 2.5vw, 2.05rem); }
.compact-article:not(.compact-article--wide) .compact-article__meta { display: block; }
.compact-article:not(.compact-article--wide) .compact-article__meta time { display: block; margin-top: .25rem; }
.compact-article:not(.compact-article--wide) .compact-article__body { padding-right: 2rem; }
.compact-article__meta { display: flex; justify-content: space-between; gap: 1.5rem; margin-bottom: .7rem; color: var(--muted); font-size: .78rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.compact-article__meta strong { color: var(--accent-ink); }
.compact-article__meta time { flex: 0 0 auto; }
.compact-article__body { position: relative; padding-right: 3rem; }
.compact-article h2 { max-width: 30ch; margin: 0 0 .65rem; font-size: clamp(1.55rem, 3.2vw, 2.65rem); line-height: 1.03; letter-spacing: -.04em; }
.compact-article h2 a { text-decoration: none; }
.compact-article h2 a:hover { color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: .07em; }
.compact-article h2 a span { position: absolute; right: 0; top: .15em; color: var(--accent); font-family: var(--sans); font-size: .7em; }
.compact-article__body > p { display: -webkit-box; max-width: 62ch; margin: 0; overflow: hidden; color: var(--muted); font: 1.03rem/1.5 var(--serif); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.eyebrow, .section-kicker { margin: 0 0 .7rem; color: var(--accent-ink); font-weight: 900; font-size: .75rem; letter-spacing: .11em; text-transform: uppercase; }
.article-card { padding: 1.5rem 1.5rem 2.2rem 0; border-bottom: 1px solid var(--line); }
.article-card__meta, .article-card__source { color: var(--muted); font-size: .78rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.article-card__meta span { color: var(--accent-ink); }
.article-card h2 { margin: .5rem 0 .8rem; font-size: clamp(1.5rem, 2.4vw, 2.25rem); line-height: 1.05; letter-spacing: -.035em; }
.article-card h2 a { text-decoration: none; }
.article-card h2 a:hover { color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: .08em; }
.article-card > p:not([class]) { max-width: 45rem; font-family: var(--serif); font-size: 1.04rem; }
.empty-state { padding: 3rem 0; color: var(--muted); }

.page-header { padding-block: clamp(3.5rem, 8vw, 7rem) 3rem; border-bottom: 3px solid var(--text); }
.page-header h1, .not-found h1 { max-width: 15ch; margin: 0; font-size: clamp(3rem, 7vw, 6rem); line-height: .94; letter-spacing: -.06em; text-transform: capitalize; }
.page-header > p:last-child { max-width: 42rem; margin: 1.5rem 0 0; font: 1.18rem/1.55 var(--serif); }
.listing .article-card { display: grid; grid-template-columns: 1fr 2.2fr 2fr; gap: 2rem; align-items: start; padding: 2rem 0; border-left: 0; }
.listing .article-card h2 { margin: 0; }
.listing .article-card__source { grid-column: 3; }
.topic-index { display: grid; grid-template-columns: repeat(2, 1fr); padding-block: 2rem 6rem; }
.topic-index a { display: flex; justify-content: space-between; padding: 1.5rem 1.25rem 1.5rem 0; border-bottom: 1px solid var(--line); font-size: clamp(1.35rem, 3vw, 2.4rem); font-weight: 800; text-decoration: none; text-transform: capitalize; }
.topic-index a:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--line); }
.topic-index strong { color: var(--accent-ink); font-size: .8rem; }

.source-registry { padding-block: 2rem 6rem; }
.source-registry__source { padding-block: 2rem; border-bottom: 1px solid var(--line); }
.source-registry__source > summary { display: flex; justify-content: space-between; gap: 2rem; align-items: center; cursor: pointer; list-style: none; }
.source-registry__source > summary::-webkit-details-marker { display: none; }
.source-registry__source > summary:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 8px; }
.source-registry__toggle::before { content: "+"; font-size: 2rem; }
.source-registry__source[open] > summary .source-registry__toggle::before { content: "−"; }
.source-registry__content { padding-top: 1.5rem; }
.source-registry__source h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1; letter-spacing: -.045em; }
.source-registry code { display: inline-block; padding: .3rem .5rem; background: var(--surface); border: 1px solid var(--line); color: var(--accent-ink); font: 700 .85rem/1.2 ui-monospace, "Cascadia Code", monospace; }
.source-registry__site { margin-bottom: .4rem; color: var(--accent-ink); font-weight: 800; }
.source-registry__content > p:not(.source-registry__site) { max-width: var(--measure); font: 1.08rem/1.55 var(--serif); }
.source-registry__types, .source-registry__principles { max-width: 52rem; margin-top: 2rem; }
.source-registry__types > h3, .source-registry__principles > h3 { padding-bottom: .7rem; border-bottom: 2px solid var(--text); font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; }
.source-registry__principles p { max-width: var(--measure); font: 1.08rem/1.55 var(--serif); }
.source-registry__principles li { margin-block: .5rem; overflow-wrap: anywhere; }
.source-registry__types section { display: grid; grid-template-columns: minmax(12rem, .75fr) 1.5fr; gap: 2rem; padding-block: 1.25rem; border-bottom: 1px solid var(--line); }
.source-registry__types section div { display: flex; flex-direction: column; align-items: start; gap: .55rem; }
.source-registry__types h4, .source-registry__types p { margin: 0; }
.source-registry__types h4 { font-size: 1.2rem; }
.source-registry__types p { color: var(--muted); font: 1rem/1.5 var(--serif); }

.article { max-width: 75rem; padding-block: clamp(3rem, 7vw, 7rem); }
.article-header { max-width: 62rem; margin-bottom: 3rem; }
.article-header h1 { max-width: 18ch; margin: 0; font-size: clamp(2.8rem, 7vw, 6rem); line-height: .95; letter-spacing: -.055em; text-wrap: balance; }
.article-deck { max-width: 52rem; margin: 1.6rem 0; font: clamp(1.25rem, 2.5vw, 1.7rem)/1.42 var(--serif); color: var(--muted); }
.article-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .82rem; font-weight: 700; }
.topic-links a { color: var(--accent-ink); text-transform: capitalize; }
.reviewed-source { max-width: 56rem; margin: 3rem 0 1rem; padding: 1.5rem; background: var(--surface); border-left: .4rem solid var(--accent); }
.reviewed-source__label { margin: 0; color: var(--accent-ink); font-weight: 900; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.reviewed-source h2 { margin: .45rem 0 1rem; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1.15; overflow-wrap: anywhere; }
.reviewed-source__kind { margin: 0 0 .5rem; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; }
.reviewed-source__descriptions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin: 1.2rem 0; padding-block: 1rem; border-block: 1px solid var(--line); }
.reviewed-source__descriptions h3 { margin: 0 0 .35rem; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.reviewed-source__descriptions p { margin: 0; color: var(--muted); font: .95rem/1.5 var(--serif); }
.reviewed-source dl { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 0 0 1rem; }
.reviewed-source dl div { display: flex; gap: .35rem; font-size: .78rem; }
.reviewed-source dt { color: var(--muted); }
.reviewed-source dd { margin: 0; font-weight: 700; }
.source-link { font-weight: 850; }
.reading-note { max-width: 56rem; color: var(--muted); font: italic 1rem var(--serif); }
.review-note { max-width: 56rem; margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--line); color: var(--muted); font: 1rem/1.6 var(--sans); }
.review-note h2 { margin: 0 0 .5rem; font: 600 1rem/1.5 var(--sans); }
.review-note p { margin: 0; }
.article-content { margin-top: 4rem; }
.article-content--with-sources { display: grid; grid-template-columns: minmax(0, var(--measure)) minmax(16rem, 22rem); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.article-body { max-width: var(--measure); min-width: 0; }
.series-label { font: .85rem/1.5 var(--sans); color: var(--muted); overflow-wrap: anywhere; }
.series-label--article { max-width: var(--measure); margin: 1rem 0 2rem; }
.article-series { max-width: var(--measure); margin: 3rem 0; padding: 1.25rem; border: 1px solid var(--line); background: var(--surface); font: 1rem/1.5 var(--sans); }
.article-series h2 { margin: 0; font-size: 1.4rem; }
.article-series ol { padding-left: 1.5rem; }
.article-series li { padding: .65rem 0 .65rem .25rem; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.article-series__status { display: block; color: var(--muted); font-size: .85rem; }
.article-header h1 { overflow-wrap: anywhere; }
.prose { font: 1.18rem/1.72 var(--serif); }
.prose h2, .prose h3 { font-family: var(--sans); line-height: 1.1; letter-spacing: -.035em; overflow-wrap: anywhere; }
.prose h2 { margin: 3.2rem 0 1rem; padding-top: 3rem; border-top: 2px solid var(--line); font-size: 2rem; }
.prose h3 { margin-top: 2.5rem; font-size: 1.45rem; }
.prose p { margin-block: 0 1.35em; }
.prose li { margin-block: .45rem; }
.prose blockquote { margin: 2rem 0; padding: .2rem 0 .2rem 1.5rem; border-left: .3rem solid var(--accent); font-size: 1.15em; }
.short-answer { margin: 2rem 0; padding: clamp(1rem, 3vw, 1.5rem); border-left: .3rem solid #347cb4; background: color-mix(in srgb, #347cb4 10%, var(--bg)); }
.prose .short-answer h2 { margin: 0 0 1rem; padding: 0; border: 0; font-size: clamp(1.4rem, 4vw, 1.65rem); }
.short-answer > :last-child { margin-bottom: 0; }
.observation, .background-note { margin: 2.2rem 0; padding: 1.4rem 1.5rem; background: var(--surface); border-top: .3rem solid var(--text); }
.observation__label, .background-note__label { margin: 0 0 .5rem !important; color: var(--accent-ink); font: 900 .72rem var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.observation h3 { margin: 0 0 .8rem; }
.observation__content > :last-child, .background-note__content > :last-child { margin-bottom: 0; }
.background-note summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; list-style: none; cursor: pointer; }
.background-note summary::-webkit-details-marker { display: none; }
.background-note summary:hover .background-note__title { color: var(--accent-ink); }
.background-note__label { display: block; }
.background-note__title { display: block; font: 800 1.35rem/1.15 var(--sans); letter-spacing: -.025em; }
.background-note__indicator { flex: 0 0 auto; display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--line); font: 500 1.4rem/1 var(--sans); }
.background-note__indicator::before { content: "+"; }
.background-note[open] .background-note__indicator::before { content: "−"; }
.background-note__content { margin-top: 1.2rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.observation--incorrect, .observation--misleading { border-color: var(--accent); }
.claim { margin: 1.4rem 0; background: var(--surface); border: 1px solid var(--line); }
.claim--missing-context { border-inline-start: .3rem solid var(--muted); }
.claim__kind { display: block; margin-bottom: .6rem; color: var(--muted); font: 700 .75rem/1.4 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.claim__summary { padding: 1.2rem; cursor: pointer; list-style: none; }
.claim__summary::-webkit-details-marker { display: none; }
.claim__summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.claim__title { display: block; font: 800 1.3rem/1.25 var(--sans); overflow-wrap: anywhere; }
.claim__labels { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; margin: .7rem 0; }
.claim__labels .observation__label { margin: 0 !important; }
.claim__central { font: 600 .8rem/1.4 var(--sans); color: var(--muted); }
.claim__conclusion { display: block; }
.claim__toggle { display: block; margin-top: .8rem; color: var(--accent-ink); font: 700 .85rem/1.4 var(--sans); }
.claim__toggle::before { content: "+ "; }
.claim[open] .claim__toggle::before { content: "− "; }
.claim__opened, .claim[open] .claim__closed { display: none; }
.claim[open] .claim__opened { display: inline; }
.claim__content { margin: 0 1.2rem; padding: 1.2rem 0; border-top: 1px solid var(--line); }
.claim__content > :first-child { margin-top: 0; }
.claim__content > :last-child { margin-bottom: 0; }
.sources, .corrections { max-width: var(--measure); margin-top: 5rem; padding-top: 1.5rem; border-top: 3px solid var(--text); }
.article-content > .sources { position: sticky; top: 1.5rem; margin-top: 0; }
.sources h2, .corrections h2 { margin: 0 0 1.5rem; font-size: 2rem; }
.sources ol { padding-left: 1.4rem; }
.sources li { overflow-wrap: anywhere; margin-bottom: 1rem; padding-left: .5rem; font: 1rem/1.55 var(--serif); }
.sources li span { display: block; color: var(--muted); }
.corrections { background: var(--surface); padding: 1.5rem; border-top-color: var(--accent); }
.share { max-width: var(--measure); margin-top: 4rem; padding-block: 1.25rem; border-block: 1px solid var(--line); }
.share h2 { margin: 0 0 1rem; font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; }
.share__actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.share__button { appearance: none; display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; padding: .55rem .85rem; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: 750 .9rem/1 var(--sans); text-decoration: none; cursor: pointer; }
.share__button:hover { border-color: var(--accent); color: var(--accent-ink); }
.share__button--primary { border-color: var(--accent); background: var(--accent); color: var(--on-accent); }
.share__button--primary:hover { background: var(--text); border-color: var(--text); color: var(--bg); }
.share__status { min-height: 1.4em; margin: .65rem 0 0; color: var(--muted); font-size: .85rem; }
.article-topics { max-width: var(--measure); display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-top: 3rem; }
.article-topics ul { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; list-style: none; margin: 0; padding: 0; }
.article-footer { max-width: var(--measure); display: flex; justify-content: space-between; gap: 1rem; margin-top: 4rem; padding-top: 1.2rem; border-top: 1px solid var(--line); font-weight: 750; }
.article-footer p { margin: 0; }
.related-articles { max-width: var(--measure); margin-top: 4rem; padding: 1.5rem; background: var(--surface); border-top: .3rem solid var(--accent); }
.related-articles h2 { margin: 0 0 1rem; font-size: 1.5rem; line-height: 1.2; }
.related-articles ul { list-style: none; padding: 0; margin: 0; }
.related-articles li + li { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.related-articles p { margin: 0 0 .75rem; color: var(--muted); font: 1.05rem/1.5 var(--serif); }
.related-articles a { font-weight: 750; overflow-wrap: anywhere; }

.site-footer { padding-block: 4rem; border-top: 1px solid var(--line); }
.site-footer__grid { display: flex; justify-content: space-between; gap: 3rem; }
.site-footer p { max-width: 28rem; color: var(--muted); font: 1rem var(--serif); }
.site-footer nav { display: flex; gap: 1.5rem; align-items: start; font-weight: 750; }
.not-found { min-height: 65vh; padding-block: 7rem; }
.button { display: inline-block; margin-top: 1rem; padding: .8rem 1rem; background: var(--accent); color: var(--on-accent); font-weight: 800; text-decoration: none; }
.button:hover { background: var(--text); color: var(--bg); }

@media (max-width: 60rem) {
  .site-header__inner { grid-template-columns: 1fr auto; padding-block: 1rem; gap: 1rem; }
  .main-nav { grid-column: 1 / -1; grid-row: 2; flex-wrap: wrap; gap: .4rem 1.15rem; }
}

@media (max-width: 52rem) {
  .article-card { padding-inline: 0; border-left: 0 !important; }
  .listing .article-card { display: block; }
  .listing .article-card__source { margin-top: 1rem; }
  .topic-index { grid-template-columns: 1fr; }
  .topic-index a:nth-child(even) { padding-left: 0; border-left: 0; }
  .site-footer__grid, .site-footer nav { flex-direction: column; }
  .reviewed-source__descriptions { grid-template-columns: 1fr; }
  .source-registry__content code { margin-top: .5rem; }
  .source-registry__types section { grid-template-columns: 1fr; gap: 1rem; }
  .compact-article__meta { align-items: start; }
  .compact-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-article { grid-column: span 1; }
  .compact-article--wide { grid-column: 1 / -1; }
}

@media (max-width: 70rem) {
  .article-content--with-sources { grid-template-columns: minmax(0, 1fr); }
  .article-content > .sources { position: static; margin-top: 2rem; }
}

@media (max-width: 30rem) {
  .wrap { width: min(calc(100% - 1.25rem), var(--max)); }
  .article-footer { display: block; }
  .development-notice { grid-template-columns: 1fr; gap: .35rem; }
  .compact-article__meta { display: block; }
  .compact-article__meta time { display: block; margin-top: .25rem; }
  .compact-article__body { padding-right: 2rem; }
}

@media (max-width: 40rem) {
  .compact-list { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .site-header, .site-footer, .theme-toggle, .article-footer, .share { display: none; }
  :root { --bg: #fff; --text: #000; --muted: #444; --surface: #eee; }
  .article { padding-block: 0; }
  a { color: #000; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* Article charts: text stays readable as the plot adapts to its container. */
.prose .finland-timeline__events { list-style: none; padding: 0; margin: 1.75rem 0; }
.finland-timeline__event { position: relative; display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 1.5rem; padding: 0 0 1.5rem 1.5rem; border-left: 2px solid var(--line); }
.finland-timeline__event:last-child { padding-bottom: 0; border-left-color: transparent; }
.finland-timeline__event::before { content: ""; position: absolute; left: -.4rem; top: .35rem; width: .65rem; height: .65rem; border-radius: 50%; background: var(--text); box-shadow: 0 0 0 4px var(--surface); }
.finland-timeline__event--change::before { background: var(--accent-ink); border-radius: 0; }
.finland-timeline__event--change strong { color: var(--accent-ink); }
.finland-timeline__date { font-size: .85rem; font-weight: 750; padding-top: .15rem; }
.prose .finland-timeline__event p { margin: .25rem 0 0; font-size: .9rem; color: var(--muted); }
.finland-employment__rows .data-chart__track { height: 1.8rem; background: repeating-linear-gradient(to right, transparent 0, transparent calc(25% - 1px), var(--line) calc(25% - 1px), var(--line) 25%); border-right: 1px solid var(--line); }
.prose .finland-employment__unit { margin: .3rem 0 1.5rem; color: var(--muted); font-size: .75rem; }
.finland-employment__finding { display: flex; align-items: center; gap: 1.25rem; padding: 1rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.finland-employment__finding strong { white-space: nowrap; font-size: 1.6rem; color: var(--accent-ink); }
.finland-employment__finding span { font-size: .9rem; }
.finland-periods { margin-top: 1.5rem; }
.prose .finland-periods h3 { font: 750 1rem/1.4 var(--sans); margin: 0 0 1rem; }
.finland-periods__years { display: grid; grid-template-columns: 1fr 1fr; font-size: .8rem; font-weight: 750; margin-bottom: .4rem; }
.finland-periods__years span { padding-left: .4rem; }
.finland-periods__track { position: relative; display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); background: var(--surface-strong); padding: .35rem 0; }
.finland-periods__track::after { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px dashed var(--text); }
.finland-periods__track span { padding: .35rem .4rem; font-size: .75rem; text-align: center; font-weight: 650; }
.finland-periods__first { grid-column: 1 / 13; background: var(--text); color: var(--bg); }
.finland-periods__later { grid-column: 11 / 23; background: var(--accent); color: var(--on-accent); }
.prose .finland-periods p { font-size: .85rem; margin: .5rem 0 1rem; }
@media (max-width: 540px) {
  .finland-timeline__event { grid-template-columns: minmax(0, 1fr); gap: .25rem; padding-left: 1.2rem; }
  .finland-employment__finding { align-items: flex-start; flex-direction: column; gap: .35rem; }
}
.data-chart { margin: 2rem 0; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid var(--line); background: var(--surface); font: 1rem/1.5 var(--sans); }
.data-chart__title { display: block; font-size: 1.2rem; font-weight: 800; line-height: 1.3; }
.data-chart__description { display: block; margin-top: .65rem; color: var(--muted); font-size: .9rem; }
.data-chart__rows { margin: 1.5rem 0 .5rem; }
.data-chart__row { position: relative; margin-top: 1.1rem; }
.data-chart__row dt { padding-right: 5rem; font-weight: 650; }
.data-chart__row dd { margin: .4rem 0 0; }
.data-chart__value { position: absolute; top: 0; right: 0; font-weight: 750; font-variant-numeric: tabular-nums; }
.data-chart__track { display: block; height: 1.2rem; background: var(--surface-strong); border-left: 1px solid var(--muted); }
.data-chart__bar { display: block; height: 100%; background: var(--muted); }
.data-chart__row--highlight .data-chart__bar { background: var(--accent); }
.data-chart__axis { display: flex; justify-content: space-between; gap: .2rem; color: var(--muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
.data-chart--interval .data-chart__track { border: 0; background: repeating-linear-gradient(to right, var(--line) 0, var(--line) 1px, transparent 1px, transparent 25%), var(--surface-strong); box-shadow: inset -1px 0 var(--line); }
.data-chart--interval .data-chart__bar { box-shadow: inset 1px 0 var(--text), inset -1px 0 var(--text); }
.data-chart--interval .data-chart__axis { position: relative; display: block; height: 1.5em; margin-inline: 0; }
.data-chart--interval .data-chart__axis span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.data-chart--interval .data-chart__axis span:first-child { transform: none; }
.data-chart--interval .data-chart__axis span:last-child { transform: translateX(-100%); }
.prose .data-chart__source { margin: 1.25rem 0 0; font-size: .85rem; }
.prose .data-chart__note { margin: .65rem 0 0; font-size: .85rem; color: var(--muted); }
.trend-chart__panels { margin-top: 1rem; }
.trend-chart__panels--pair { display: grid; gap: 1.5rem; }
.trend-chart__panel { min-width: 0; }
.trend-chart__panel h3 { margin: .5rem 0 0; font: 750 1rem/1.4 var(--sans); }
.trend-chart__svg { display: block; width: 100%; height: auto; overflow: visible; }
.trend-chart__svg text { fill: var(--muted); font: 16px var(--sans); }
.trend-chart__panels--pair .trend-chart__svg text { font-size: 18px; }
.trend-chart__grid { stroke: var(--line); stroke-width: 1; }
.trend-chart__line { fill: none; stroke: var(--accent-ink); stroke-width: 2.5; stroke-linejoin: round; }
.trend-chart__line--1 { stroke: var(--text); stroke-dasharray: 5 3; }
.trend-chart__point { fill: var(--accent-ink); }
.trend-chart__point--1 { fill: var(--text); }
.trend-chart__svg .trend-chart__end { fill: var(--accent-ink); font-weight: 750; paint-order: stroke; stroke: var(--surface); stroke-width: 4px; stroke-linejoin: round; }
.trend-chart__svg .trend-chart__end--1 { fill: var(--text); }
.trend-chart__table { font-size: .85rem; }
.trend-chart__table summary { cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.trend-chart__table-scroll { overflow-x: auto; }
.trend-chart__table table { width: 100%; border-collapse: collapse; margin-top: .75rem; font-variant-numeric: tabular-nums; }
.trend-chart__table th, .trend-chart__table td { padding: .35rem .5rem; text-align: right; border-bottom: 1px solid var(--line); }
.trend-chart__table th:first-child { text-align: left; }
.trend-chart__table caption { text-align: left; margin-bottom: .5rem; }
@media (min-width: 760px) {
  .trend-chart__panels--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (forced-colors: active) {
  .data-chart__bar { background: Highlight; }
  .data-chart__track { outline: 1px solid CanvasText; }
}

/* Hybrid charts: HTML labels retain their size while only SVG geometry scales. */
.responsive-chart { min-width: 0; }
/* Opt-in editorial figure layout; other charts retain their presentation. */
.figure-card { padding: clamp(1rem, 4vw, 2.5rem); }
.figure-card__eyebrow { display: block; color: var(--accent-ink); font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .7rem; }
.figure-card .data-chart__title { font-size: clamp(1.6rem, 3vw, 2.4rem); letter-spacing: -.035em; line-height: 1.15; }
.figure-card .data-chart__description { font: 1.1rem/1.4 var(--serif); }
.figure-card__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin: 2rem 0; }
.figure-card__stats > div { display: flex; flex-direction: column-reverse; justify-content: end; background: var(--bg); border: 1px solid var(--line); border-left: 5px solid var(--accent-ink); padding: 1rem 1.25rem; }
.figure-card__stats dt { font: 1rem/1.4 var(--serif); }
.figure-card__stats dd { margin: 0 0 .25rem; color: var(--accent-ink); font-size: 2rem; font-weight: 800; line-height: 1.2; }
.figure-card__panel + .figure-card__panel { border-top: 1px solid var(--line); padding-top: 1.75rem; margin-top: 2.5rem; }
.figure-card__panel-heading { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-bottom: 1.5rem; }
.prose .figure-card__panel-heading h3 { margin: 0; font: 800 .85rem/1.4 var(--sans); text-transform: uppercase; letter-spacing: .12em; }
.prose .figure-card__panel-heading p { margin: .3rem 0 0; font: 1rem/1.4 var(--serif); color: var(--muted); }
.figure-card__panel-heading > span { flex-shrink: 0; font-size: .8rem; color: var(--muted); font-weight: 700; }
.figure-card__plot-surface { background: var(--bg); padding: 1rem .75rem .5rem 0; }
.figure-card .responsive-chart__plot { height: 16rem; margin: 0 .5rem 2rem 0; }
.figure-card .responsive-chart__grid { border-top-style: dashed; }
.figure-card .responsive-chart__line { stroke-width: 4; }
.figure-card .responsive-chart__x span,
.figure-card .responsive-chart__x span:first-child,
.figure-card .responsive-chart__x span:last-child { transform: translateX(-50%); font-weight: 750; }
.figure-card__point { position: absolute; width: .95rem; height: .95rem; transform: translate(-50%, 50%); border: 4px solid var(--accent-ink); border-radius: 50%; background: var(--bg); }
.figure-card__point--estimate { border-style: dotted; }
.figure-card__point strong { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); font-size: 1.1rem; white-space: nowrap; }
.figure-card__bars { margin: 0; }
.figure-card__bars > div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem; align-items: center; margin: 1.2rem 0; }
.figure-card__bars dt { font-weight: 750; }
.figure-card__bars dt span { display: block; font: .9rem/1.4 var(--serif); color: var(--muted); }
.figure-card__bars dd { display: grid; grid-template-columns: minmax(0, 1fr) 4rem; gap: 1rem; align-items: center; margin: 0; }
.figure-card__bars dd strong { text-align: right; font-size: 1.15rem; }
.figure-card__bars .data-chart__track { height: 2rem; border: 0; }
.figure-card__bars .data-chart__bar { background: var(--accent-ink); }
.figure-card__bars .figure-card__bar--estimate { background: var(--muted); }
.figure-card__footer { margin-top: 2.75rem; }
.figure-card__callout { margin: 2rem 0; padding: 1rem 1.25rem; border: 1px solid var(--line); border-left: 5px solid var(--accent-ink); background: var(--bg); }
.figure-card__callout > strong { color: var(--accent-ink); font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; }
.prose .figure-card__callout p { margin: .25rem 0 0; font: 1.1rem/1.4 var(--serif); }
.figure-card__comparison { margin: 0; }
.figure-card__comparison-value small { display: block; color: var(--muted); font: 400 .9rem/1.4 var(--sans); margin-top: .2rem; }
.figure-card__scale-midpoint { position: absolute; left: 50%; top: -.55rem; height: 1.35rem; border-left: 1px dashed var(--text); }
.figure-card__position-labels { display: flex; justify-content: space-between; gap: .3rem; margin-top: 1rem; font-size: .8rem; color: var(--muted); }
.figure-card__position-labels span { flex: 1; }
.figure-card__position-labels span:nth-child(2) { text-align: center; }
.figure-card__position-labels span:last-child { text-align: right; }
.figure-card__text-comparison--single .figure-card__column-headings,
.figure-card__text-comparison--single .figure-card__text-row dl { grid-template-columns: minmax(0, 1fr); }
.figure-card__text-comparison { margin-top: 2rem; }
.figure-card__intervals { margin-top: 1.75rem; padding-top: .75rem; border-top: 2px solid var(--text); }
.prose .figure-card .figure-card__intervals h3 { margin: 0 0 .75rem; font: 800 .75rem/1.5 var(--sans); text-transform: uppercase; letter-spacing: .05em; }
.figure-card__interval-axis { position: relative; height: 1.3rem; color: var(--muted); font-size: .8rem; }
.figure-card__interval-axis span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.figure-card__interval-axis span:first-child { transform: none; }
.figure-card__interval-axis span:last-child { transform: translateX(-100%); }
.figure-card__intervals dl { margin: 0; }
.figure-card__interval-row { position: relative; padding: 1.25rem 0 1.75rem; }
.figure-card__interval-row dt { padding-right: 6rem; font-weight: 750; line-height: 1.4; }
.figure-card__interval-row dd { margin: .75rem 0 0; }
.figure-card__interval-row dd > strong { position: absolute; top: 1.25rem; right: 0; font-size: .95rem; }
.figure-card__interval-track { display: block; position: relative; height: 2rem; }
.figure-card__interval-grid { position: absolute; top: -3rem; bottom: -1.75rem; border-left: 1px dashed var(--line); z-index: 0; }
.figure-card__interval-range { display: flex; align-items: center; justify-content: center; position: absolute; top: 0; bottom: 0; background: var(--muted); color: var(--bg); border-inline: 2px solid var(--text); }
.figure-card__interval-range > span { font-size: .85rem; font-weight: 750; white-space: nowrap; }
.figure-card__interval-range--lower-open { border-left: 0; clip-path: polygon(1rem 0, 100% 0, 100% 100%, 1rem 100%, 0 50%); padding-left: .7rem; }
.figure-card__interval-range--upper-open { border-right: 0; clip-path: polygon(0 0, calc(100% - 1rem) 0, 100% 50%, calc(100% - 1rem) 100%, 0 100%); padding-right: .7rem; }
.figure-card__interval-row--highlight dd > strong { color: var(--accent-ink); }
.figure-card__interval-row--highlight .figure-card__interval-range { background: var(--accent-ink); }
@media (max-width: 540px) {
  .figure-card__interval-range > span { display: none; }
  .figure-card__interval-row dt { padding-right: 0; }
  .figure-card__interval-row dd > strong { position: relative; display: block; top: auto; right: auto; margin-bottom: .6rem; }
}
.figure-card__mirrored { margin-top: 1.75rem; border-top: 2px solid var(--text); }
.figure-card__mirror-headings, .figure-card__mirror-axes, .figure-card__mirror-row dd { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.figure-card__mirror-headings { padding-top: .75rem; font-size: .85rem; text-transform: uppercase; }
.figure-card__mirror-headings strong:last-child { text-align: right; color: var(--accent-ink); }
.figure-card__mirror-axes { margin-top: .5rem; color: var(--muted); font-size: .8rem; }
.figure-card__mirror-axes > div { display: flex; justify-content: space-between; }
.figure-card__mirror-rows { position: relative; margin: .5rem 0 0; border-bottom: 1px solid var(--line); }
.figure-card__mirror-rows::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px solid var(--line); }
.figure-card__mirror-row { padding: 1rem 0 2rem; }
.figure-card__mirror-row dt { position: relative; z-index: 1; font-weight: 750; margin-bottom: .6rem; }
.figure-card__mirror-row dd { margin: 0; }
.figure-card__mirror-track { position: relative; display: block; height: 2.1rem; background: var(--surface-strong); }
.figure-card__mirror-bar { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent-ink); }
.figure-card__mirror-track:first-child .figure-card__mirror-bar { left: auto; right: 0; background: var(--muted); }
.figure-card__mirror-track strong { position: absolute; top: .3rem; left: .5rem; color: var(--bg); font-size: .9rem; z-index: 1; }
.figure-card__mirror-track:first-child strong { left: auto; right: .5rem; }
.figure-card__mirror-reference { position: absolute; top: -3rem; bottom: -2rem; border-left: 1px dashed var(--line); pointer-events: none; }
.figure-card__mirror-row:first-child .figure-card__mirror-reference { top: -3rem; }
.prose .figure-card__mirror-legend { font: 1rem/1.4 var(--serif); margin: .75rem 0 0; }
.figure-card__mirror-legend > span { display: inline-block; width: 1.75rem; border-top: 1px dashed var(--muted); vertical-align: middle; margin-right: .5rem; }
@media (max-width: 420px) {
  .figure-card__mirror-headings, .figure-card__mirror-axes, .figure-card__mirror-row dd { gap: 1.25rem; }
  .figure-card__mirror-headings { font-size: .75rem; }
  .figure-card__mirror-row dt { margin-bottom: 2rem; }
  .figure-card__mirror-track strong { top: -1.6rem; left: 0; color: var(--text); }
  .figure-card__mirror-track:first-child strong { right: 0; }
}
.figure-card__measurements { display: grid; gap: 1rem; margin: 1.75rem 0 0; }
.figure-card__measurement { display: grid; grid-template-columns: minmax(7.5rem, .8fr) minmax(0, 2fr); padding: 1rem; border: 1px solid var(--line); background: var(--bg); column-gap: 1.25rem; }
.figure-card__measurement--highlight { border-left: 5px solid var(--accent-ink); padding-left: calc(1rem - 4px); }
.figure-card__measurement dt { grid-column: 2; grid-row: 1; border-left: 1px solid var(--line); padding-left: 1.25rem; }
.figure-card__measurement dd { grid-column: 1; grid-row: 1; align-self: start; margin: 0; font: 800 2.5rem/1.2 var(--sans); padding-top: .3rem; overflow-wrap: anywhere; }
.figure-card__measurement-label { display: block; color: var(--muted); font: 800 .72rem/1.5 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.figure-card__measurement-description { display: block; margin-top: .5rem; font: 1.1rem/1.4 var(--serif); }
.figure-card__measurement-note { display: block; color: var(--muted); margin-top: .55rem; font: .95rem/1.4 var(--serif); }
@media (max-width: 420px) {
  .figure-card__measurement { grid-template-columns: minmax(0, 1fr); row-gap: .85rem; }
  .figure-card__measurement dd { grid-column: 1; grid-row: 1; padding-top: 0; }
  .figure-card__measurement dt { grid-column: 1; grid-row: 2; border-left: 0; border-top: 1px solid var(--line); padding: .85rem 0 0; }
}
.figure-card__column-headings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--surface-strong); }
.figure-card__column-headings span { padding: .75rem 1rem; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.figure-card__column-headings span + span { border-left: 1px solid var(--line); }
.figure-card__text-row { padding: .8rem 1rem 1rem; border-left: 5px solid transparent; }
.figure-card__text-row:nth-child(even) { background: var(--bg); }
.figure-card__text-row--highlight { border-left-color: var(--accent-ink); }
.prose .figure-card .figure-card__text-row h3 { margin: 0; padding-bottom: .6rem; border-bottom: 1px solid var(--line); font: 800 1.1rem/1.3 var(--sans); letter-spacing: 0; }
.figure-card__text-row dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.figure-card__text-row dl > div { padding: .65rem .9rem .75rem 0; min-width: 0; }
.figure-card__text-row dl > div + div { border-left: 1px solid var(--line); padding-left: 1rem; padding-right: 0; }
.figure-card__text-row dt { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.figure-card__text-row dd { margin: 0; font: 1.05rem/1.4 var(--serif); overflow-wrap: anywhere; }
.figure-card__text-comparison--triple .figure-card__column-headings,
.figure-card__text-comparison--triple .figure-card__text-row dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) {
  .figure-card__text-comparison--triple .figure-card__column-headings { display: none; }
  .figure-card__text-comparison--triple .figure-card__text-row dl { grid-template-columns: minmax(0, 1fr); }
  .figure-card__text-comparison--triple .figure-card__text-row dl > div { padding: .75rem 0; border: 0; }
  .figure-card__text-comparison--triple .figure-card__text-row dl > div + div { border-top: 1px solid var(--line); }
  .figure-card__text-comparison--triple .figure-card__text-row dt { position: static; width: auto; height: auto; margin: 0 0 .35rem; overflow: visible; clip-path: none; white-space: normal; font: 800 .75rem/1.4 var(--sans); text-transform: uppercase; letter-spacing: .07em; }
}
.figure-card__callout--conclusion { --conclusion-ink: #21669a; background: color-mix(in srgb, var(--bg) 90%, #4388b8); border-left-color: var(--conclusion-ink); }
.figure-card__callout--conclusion > strong { color: var(--conclusion-ink); }
:root[data-theme="dark"] .figure-card__callout--conclusion { --conclusion-ink: #88c7f4; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .figure-card__callout--conclusion { --conclusion-ink: #88c7f4; }
}
@media (max-width: 420px) {
  .figure-card__column-headings { display: none; }
  .figure-card__text-row dl { grid-template-columns: minmax(0, 1fr); }
  .figure-card__text-row dl > div, .figure-card__text-row dl > div + div { padding: .75rem 0; border: 0; }
  .figure-card__text-row dl > div + div { border-top: 1px solid var(--line); }
  .figure-card__text-row dt { position: static; width: auto; height: auto; margin: 0 0 .35rem; overflow: visible; clip-path: none; white-space: normal; font: 800 .75rem/1.4 var(--sans); text-transform: uppercase; letter-spacing: .07em; }
}
.figure-card__categories { margin: 0; }
.figure-card__category { position: relative; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); column-gap: 1.5rem; padding: 1.25rem 0; }
.figure-card__category dt { grid-column: 1; }
.figure-card__stage { display: block; color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .5rem; }
.figure-card__category dt > strong { display: block; font-size: 1rem; line-height: 1.35; }
.figure-card__category dd { grid-column: 1; margin: 0; }
.figure-card__category-value { display: block; font-size: 2rem; line-height: 1.2; }
.figure-card__category-plot { position: absolute; left: calc(40% + .9rem); right: 0; top: 0; bottom: 0; display: flex; align-items: center; background: var(--bg); }
.figure-card__category-grid { position: absolute; inset: 0; }
.figure-card__category-grid span { position: absolute; top: 0; bottom: 0; border-left: 1px dashed var(--line); }
.figure-card__category-bar { display: block; position: relative; height: 1.8rem; background: var(--muted); }
.figure-card__category--highlight .figure-card__category-bar { background: var(--accent-ink); }
.figure-card__category--highlight .figure-card__category-value,
.figure-card__category--highlight .figure-card__stage { color: var(--accent-ink); }
.figure-card__category-axis { margin-left: calc(40% + .9rem); height: 2rem; padding-top: .5rem; }
.figure-card__category-axis > div { position: relative; }
.figure-card__category-axis span { position: absolute; transform: translateX(-50%); color: var(--muted); font-size: .8rem; }
.figure-card__category-axis span:first-child { transform: none; }
.figure-card__category-axis span:last-child { transform: translateX(-100%); }
@media (max-width: 540px) {
  .figure-card__category { display: block; padding: 1rem 0 0; }
  .figure-card__category-value { margin-bottom: .75rem; }
  .figure-card__category-plot { position: relative; left: auto; right: auto; height: 3rem; }
  .figure-card__category-axis { margin-left: 0; }
}
.figure-card__comparison-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1.5rem; padding: 1.5rem 0; align-items: center; }
.figure-card__comparison-row + .figure-card__comparison-row { border-top: 1px solid var(--line); }
.figure-card__comparison-row dt > span, .figure-card__comparison-row dt > strong { display: block; }
.figure-card__comparison-value { color: var(--accent-ink); font-size: 2rem; font-weight: 800; line-height: 1.2; margin-bottom: .4rem; }
.figure-card__comparison-row dt > strong { font-size: 1rem; line-height: 1.4; }
.figure-card__comparison-description { color: var(--muted); font: 1rem/1.4 var(--serif); margin-top: .2rem; }
.figure-card__comparison-row dd { position: relative; margin: 0; min-width: 0; padding-top: 2rem; padding-bottom: 1rem; }
.figure-card__measure-type { display: block; position: absolute; top: 0; left: clamp(2.75rem, var(--position), calc(100% - 2.75rem)); transform: translateX(-50%); color: var(--accent-ink); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.figure-card__measure-track { position: relative; display: block; height: 4px; background: var(--line); }
.figure-card__measure-line { display: block; border-top: 4px solid var(--accent-ink); }
.figure-card__measure-point { position: absolute; top: 50%; width: 1.25rem; height: 1.25rem; border: 5px solid var(--accent-ink); border-radius: 50%; background: var(--bg); transform: translate(-50%, -50%); }
.figure-card__comparison-row--calculated .figure-card__comparison-value { color: var(--text); }
.figure-card__comparison-row--calculated .figure-card__measure-type { color: var(--muted); }
.figure-card__comparison-row--calculated .figure-card__measure-line { border-color: var(--muted); border-top-style: dashed; }
.figure-card__comparison-row--calculated .figure-card__measure-point { border: 3px solid var(--muted); border-radius: 0; transform: translate(-50%, -50%) rotate(45deg); }
.figure-card__comparison-axis { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1.5rem; margin-top: 1rem; padding-bottom: 1.5rem; }
.figure-card__comparison-axis > div { grid-column: 2; position: relative; border-top: 1px solid var(--muted); }
.figure-card__comparison-axis span { position: absolute; top: .6rem; transform: translateX(-50%); white-space: nowrap; color: var(--muted); font-size: .8rem; }
.figure-card__comparison-axis span::before { content: ''; position: absolute; height: .6rem; border-left: 1px solid var(--muted); left: 50%; top: -.95rem; }
.figure-card__comparison-axis span:first-child { transform: none; }
.figure-card__comparison-axis span:last-child { transform: translateX(-100%); }
.figure-card__comparison-axis span:first-child::before { left: 0; }
.figure-card__comparison-axis span:last-child::before { left: 100%; }
@media (max-width: 700px) {
  .figure-card__comparison-row { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .figure-card__comparison-row dd { margin-inline: .75rem; }
  .figure-card__comparison-axis { display: block; margin-inline: .75rem; }
}
.prose .figure-card__footer p { font-family: var(--serif); font-size: .9rem; color: var(--muted); margin: .5rem 0; }
.figure-card .trend-chart__table { margin-top: .75rem; }
.figure-card .trend-chart__table summary { text-align: right; font-weight: 750; padding: .5rem 0; }
.figure-card .trend-chart__table :focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 3px; }
@media (max-width: 540px) {
  .figure-card__stats { grid-template-columns: minmax(0, 1fr); gap: .75rem; margin: 1.5rem 0; }
  .figure-card__panel-heading { align-items: start; flex-direction: column; }
  .figure-card .responsive-chart__plot { height: 12rem; grid-template-columns: 1.5rem minmax(0, 1fr); }
  .figure-card__point strong { font-size: .9rem; }
  .figure-card .responsive-chart__x span { font-size: .8rem; }
  .figure-card__bars > div { grid-template-columns: 3.5rem minmax(0, 1fr); gap: .5rem; }
  .figure-card__bars dd { grid-template-columns: minmax(0, 1fr) 3.25rem; gap: .5rem; }
  .figure-card__bars dd strong { font-size: 1rem; }
  .figure-card__plot-surface { padding-right: .25rem; }
}
.method-comparison__cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-bottom: 1.25rem; }
.method-comparison__card { min-width: 0; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.prose .method-comparison__card h3 { margin: 0 0 .5rem; padding: 0; border: 0; font-size: 1.05rem; }
.prose .method-comparison__card p { margin: .4rem 0 0; font-size: 1rem; }
@media (min-width: 760px) {
  .method-comparison__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
}
.prose .responsive-chart__intro { font-size: 1rem; margin: 1rem 0; }
.prose .responsive-chart__unit { font-size: .9rem; margin: 1.5rem 0 1rem; }
.responsive-chart__plot { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); height: 18rem; margin: 0 .9rem 3rem 0; font-size: .875rem; }
.responsive-chart__y, .responsive-chart__drawing { position: relative; min-width: 0; }
.responsive-chart__y span { position: absolute; right: .65rem; transform: translateY(50%); }
.responsive-chart__drawing { border-bottom: 1px solid var(--muted); }
.responsive-chart__drawing svg { position: absolute; width: 100%; height: 100%; overflow: visible; }
.responsive-chart__grid, .responsive-chart__target { position: absolute; left: 0; right: 0; border-top: 1px solid var(--line); }
.responsive-chart__target { border-top: 2px dotted var(--muted); }
.responsive-chart__line { fill: none; stroke: var(--accent-ink); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.responsive-chart__line--estimate { stroke-dasharray: 3 6; }
.responsive-chart__line--second { stroke: var(--text); stroke-dasharray: 9 6; }
.responsive-chart__x span { position: absolute; top: calc(100% + .6rem); transform: translateX(-50%); }
.responsive-chart__x span:first-child { transform: none; }
.responsive-chart__x span:last-child { transform: translateX(-100%); }
.prose .responsive-chart__legend { list-style: none; padding: 0; margin: 1rem 0; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; font-size: .95rem; }
.responsive-chart__key { display: inline-block; width: 2rem; border-top: 3px solid var(--accent-ink); vertical-align: middle; margin-right: .4rem; }
.responsive-chart__key--estimate { border-top-style: dotted; }
.responsive-chart__key--target { border-top: 2px dotted var(--muted); }
.responsive-chart__key--second { border-top: 3px dashed var(--text); }
.responsive-chart__events { border-block: 1px solid var(--line); margin: 1.25rem 0; padding: .85rem 0; font-size: .95rem; }
.prose .responsive-chart__events p, .prose .responsive-chart__events ul { margin: 0; }
.prose .responsive-chart__events ul { padding-left: 1.2rem; margin-top: .5rem; }
.prose .responsive-chart h3 { font: 750 1.05rem/1.45 var(--sans); margin: 1.5rem 0 1rem; }
.responsive-chart__bars { margin: 0; }
.responsive-chart__bars > div { margin: 1rem 0; }
.responsive-chart__bars dd { margin: .2rem 0 0; }
.responsive-chart__bars .data-chart__track { margin-top: .35rem; }
.responsive-chart__bars .data-chart__bar { background: var(--accent-ink); }
.responsive-chart__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.responsive-chart__facts > div { display: flex; flex-direction: column; justify-content: space-between; gap: .7rem; border: 1px solid var(--line); padding: 1rem; }
.responsive-chart__facts dt { font-size: .95rem; }
.responsive-chart__facts dd { margin: 0; font-size: 1.4rem; font-weight: 800; font-variant-numeric: tabular-nums; }
@media (max-width: 540px) {
  .responsive-chart__plot { height: 16rem; }
  .responsive-chart__extra-tick { display: none; }
  .responsive-chart__facts { grid-template-columns: minmax(0, 1fr); }
}
@media (forced-colors: active) {
  .responsive-chart__line { stroke: CanvasText; }
  .responsive-chart__bars .data-chart__bar { background: Highlight; }
}

/* Dense time series keep labels in HTML and preserve every annual point. */
.figure-card .figure-series .responsive-chart__plot { grid-template-columns: 5rem minmax(0, 1fr); height: 17rem; margin-top: 2rem; }
.figure-series__line { fill: none; stroke: var(--accent-ink); stroke-width: 3; stroke-linejoin: round; }
.figure-series__line--1 { stroke: var(--text); }
.figure-series__line--0.figure-series__line--projection { stroke-dasharray: 3 4; }
.figure-series__line--1.figure-series__line--projection { stroke-dasharray: 10 5; }
.figure-series__key { display: inline-block; width: 2rem; border-top: 3px dotted var(--accent-ink); vertical-align: middle; margin-right: .4rem; }
.figure-series__key--1 { border-top: 3px dashed var(--text); }
.figure-series__key--observed { border-top-style: solid; }
.figure-card .figure-series .responsive-chart__x span { white-space: nowrap; }
.figure-card .figure-series .responsive-chart__x span:first-child { transform: none; }
.figure-card .figure-series .responsive-chart__x span:last-child { transform: translateX(-100%); }
.figure-series__observation { position: absolute; width: .6rem; height: .6rem; border-radius: 50%; background: var(--accent-ink); transform: translate(-50%, 50%); }
.figure-series__observation--1 { background: var(--text); border-radius: 0; }
@media (max-width: 540px) {
  .figure-card .figure-series .responsive-chart__plot { grid-template-columns: 4.6rem minmax(0, 1fr); height: 14rem; margin-right: 0; }
}
@media (forced-colors: active) {
  .figure-series__line { stroke: CanvasText; }
  .figure-series__observation { background: CanvasText; }
}

/* Article images preserve the photograph; list previews use a shallow crop. */
.media-image, .prose .media-image, .media-map, .prose .media-map { margin: 2rem 0; min-width: 0; }
.media-image img { display: block; width: 100%; height: auto; background: var(--surface); }
.media-image figcaption, .media-map figcaption { margin-top: .65rem; font: .88rem/1.5 var(--sans); }
.media-caption { display: block; }
.media-credit, .prose .media-credit { display: block; margin: .4rem 0 0; color: var(--muted); font: .75rem/1.5 var(--sans); overflow-wrap: anywhere; }
.media-credit a { color: inherit; text-underline-offset: .15em; }
.media-map { padding-top: 1rem; border-top: 1px solid var(--line); }
.media-map figcaption { margin: 0 0 .85rem; }
.media-map iframe { display: block; width: 100%; height: clamp(19rem, 45vw, 26rem); border: 1px solid var(--line); background: var(--surface); }
.compact-article__text, .compact-article__image { min-width: 0; width: 100%; }
.compact-article__image .media-image { margin: 0 0 1rem; }
.media-image__article-link { display: block; }
.media-image--compact img { width: 100%; height: auto; aspect-ratio: 2 / 1; max-height: 15rem; object-fit: cover; object-position: center; }
@media (min-width: 52.001rem) {
  .compact-article--with-image.compact-article--wide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); align-items: start; gap: 2rem; }
  .compact-article--wide .media-image { margin: 0; }
}
@media print { .media-map iframe { display: none; } }

/* Simple publication list on writer profiles. */
.author-article-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.author-article-list > li { padding-block: 1rem; border-bottom: 1px solid var(--line); }
.author-article-list > li > a { font-size: 1.125rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; text-decoration-thickness: .06em; text-underline-offset: .15em; }
.author-article-list__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .35rem; color: var(--muted); font-size: .875rem; }

/* Values above mirrored bars stay readable even when a bar is very short. */
.figure-card__mirrored--labels-above .figure-card__mirror-row dt { margin-bottom: 2rem; }
.figure-card__mirrored--labels-above .figure-card__mirror-track strong { top: -1.6rem; left: 0; color: var(--text); }
.figure-card__mirrored--labels-above .figure-card__mirror-track:first-child strong { right: 0; }
