/* TEX Moto — "The device is a dimension line" */

:root{
  /* palette — five named jobs */
  --paper:#EDEBE6;        /* ground */
  --ink:#0F1216;          /* ink */
  --ultra:#A32014;        /* accent — full bands, bars, numerals */
  --acid:#F4E7C3;         /* highlight — bright type and ticks on dark grounds */
  --teal:#0F5A4E;         /* secondary — the one data band and the callouts */
  --flag:#0F5A4E;         /* flag — Rules & Data, alerts */
  /* working tints derived from the five */
  --grid:#B6B9B2;
  --meta:#5F645C;
  --paper-2:#DEDCD5;
  --blue-pale:#F7E4DF;
  --blue-mid:#E3ADA2;
  --ink-2:#241C1A;

  --prose:960px;
  --wide:1520px;
  --side:280px;
  --pad:24px;

  --fs-body:19px;
  --fs-prose:20px;
  --fs-cap:15px;
  --fs-credit:12px;
  --fs-label:13px;

  --gap-insert:64px;
  --gap-para:26px;

  --display:"Saira Condensed",Impact,"Arial Narrow",sans-serif;
  --text:Sora,"Helvetica Neue",Arial,sans-serif;
  --mono:"Space Mono",ui-monospace,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--text);font-size:var(--fs-body);font-weight:400;line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ultra);text-decoration:none}
a:hover{color:var(--ink)}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;letter-spacing:.005em;margin:0;text-wrap:balance}
p{margin:0 0 var(--gap-para)}
ul,ol{margin:0 0 var(--gap-para);padding-left:1.25em}
table{border-collapse:collapse}
:focus-visible{outline:3px solid var(--ultra);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ─── widths ─────────────────────────────────────────────── */
.band{padding-left:var(--pad);padding-right:var(--pad)}
.band--flush{padding-left:0;padding-right:0}
.wide{max-width:var(--wide);margin-inline:auto}
.prose{max-width:var(--prose);margin-inline:auto}

/* ─── the dimension-line device ──────────────────────────── */
.dim{display:block;width:100%;height:22px;color:var(--acid)}
.dim--ink{color:var(--ink)}
.dim--rule{height:14px}
.mark{width:34px;height:20px;flex:0 0 34px;color:currentColor}
.navlist .mark{width:42px;height:25px;flex:0 0 42px}
.mark--lg{width:64px;height:38px;flex:0 0 64px}

/* ─── masthead: a title block ────────────────────────────── */
.masthead{background:var(--ultra);color:var(--paper);padding:22px var(--pad) 18px}
.masthead__top{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 40px;max-width:var(--wide);margin-inline:auto}
.wordmark{font-family:var(--display);font-weight:700;font-size:clamp(40px,6.4vw,86px);line-height:.86;letter-spacing:-.005em;color:var(--paper);display:inline-flex;flex-direction:row;align-items:baseline;gap:.2em;white-space:nowrap}
.wordmark .wm-a{color:var(--paper)}
.wordmark .wm-b{color:var(--ultra);background:var(--paper);padding:0 .1em .06em;position:relative}

.wordmark:hover .wm-a{color:var(--acid)}
.wordmark:hover .wm-b{background:var(--acid)}
.standing{font-family:var(--mono);font-size:var(--fs-credit);line-height:1.6;color:var(--blue-pale);max-width:330px;margin:0}
.masthead__nav{flex:0 0 100%;margin-top:18px}
.navlist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 44px;justify-content:flex-start}
.navlist a{font-family:var(--mono);font-weight:700;font-size:clamp(15px,1.35vw,21px);letter-spacing:.1em;text-transform:uppercase;color:var(--acid);display:flex;align-items:center;gap:11px}
.navlist a:hover,.navlist a[aria-current]{color:var(--paper)}
.navsub{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:flex-start}
.navsub li{font-family:var(--mono);font-size:13px;letter-spacing:.14em;color:var(--acid);text-transform:uppercase;opacity:.95}
.navsub a{color:var(--acid)}
.navsub a:hover{color:var(--paper)}
.masthead .dim{max-width:var(--wide);margin:14px auto 0}
.nav-toggle,.nav-toggle-label{display:none}

/* ─── bands ──────────────────────────────────────────────── */
.hero{position:relative;background:var(--ink)}
.hero__img{width:100%;height:clamp(320px,52vw,760px);object-fit:cover;filter:saturate(.95)}
.hero__plate{background:var(--paper);padding:32px var(--pad) 34px}
.hero__plate-in{max-width:var(--wide);margin-inline:auto;display:grid;gap:26px 48px}
.kicker{font-family:var(--mono);font-weight:700;font-size:clamp(14px,1.05vw,17px);letter-spacing:.18em;text-transform:uppercase;color:var(--ultra);display:inline-flex;align-items:center;gap:12px;margin:0 0 22px;padding-bottom:9px;border-bottom:2px solid currentColor}
.kicker--flag{color:var(--flag)}
.hero h1{font-size:clamp(38px,5.4vw,84px);line-height:.98}
.hero .lead{margin-top:20px}
.numeral{font-family:var(--display);font-weight:700;font-size:clamp(96px,9vw,150px);line-height:.78;color:var(--ultra);letter-spacing:.01em;white-space:nowrap;display:inline-block}
.numeral--rule{position:relative;padding-bottom:16px;display:inline-block;border-bottom:2px solid currentColor;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.numeral--rule::before,.numeral--rule::after{content:"";position:absolute;bottom:-6px;width:2px;height:14px;background:currentColor}
.numeral--rule::before{left:0}
.numeral--rule::after{right:0}
.numeral-label{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--meta);margin-top:14px}

.band-data{background:var(--teal);color:var(--paper);padding:64px var(--pad) 58px}
.band-data h2{font-size:clamp(30px,4vw,62px);line-height:1}
.barscale{display:grid;gap:30px;margin:38px 0 0}
.bar__head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 20px;margin-bottom:8px}
.bar__num{font-family:var(--display);font-weight:700;font-size:clamp(44px,5vw,74px);line-height:.8}
.bar__label{font-family:var(--mono);font-size:var(--fs-cap);letter-spacing:.1em;text-transform:uppercase;padding-bottom:8px}
.bar__rail{height:52px;background:var(--acid)}
.scale-note{font-family:var(--mono);font-size:var(--fs-cap);line-height:1.7;max-width:none;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 28px}
.scale-note a{margin-left:auto;white-space:nowrap}

.band-sections{padding:74px var(--pad) 0}
.sec-cards{display:grid;gap:40px;margin-top:34px}
.sec-card{display:block;color:inherit}
.sec-card h3{font-size:clamp(26px,2.4vw,40px);line-height:1.02;margin:16px 0 12px}
.sec-card p{font-size:var(--fs-body);margin:0 0 14px;color:#2A2F36}
.sec-card__more{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ultra)}
.sec-card:hover .sec-card__more{color:var(--ink)}

.band-rules{background:var(--ink);color:var(--paper);padding:70px var(--pad) 66px;margin-top:74px}
.band-rules h2{font-size:clamp(30px,3.6vw,56px);line-height:1;color:var(--paper)}
.band-rules .kicker{color:var(--acid)}
.band-data h2,.band-data .kicker{color:var(--paper)}
.band-data .bar__track{border-color:var(--paper)}
.band-data .bar__rail::after{background:var(--paper)}
.band-data .ruler{border-color:var(--paper)}
.band-data .ruler span::before{background:var(--paper)}
.band-data .ratio svg{color:var(--paper)}
.band-data .dim{color:var(--paper)}
.band-data a{color:var(--acid);border-bottom-color:var(--acid)!important}
.rules-grid{display:grid;gap:34px;margin-top:36px}
.rules-item{color:var(--paper)}
.rules-item .numeral{color:var(--acid)}
.rules-item h3{font-size:26px;line-height:1.06;margin:16px 0 10px}
.rules-item p{font-size:var(--fs-body);color:#CFC7C4;margin:0}
.band-rules a{color:var(--acid)}
.band-rules a:hover{color:#fff}

.band-map{padding:74px var(--pad) 0}
.band-foot{background:var(--ultra);color:var(--paper);padding:44px var(--pad) 52px;margin-top:84px}
.band-foot__in{max-width:var(--wide);margin-inline:auto;display:flex;flex-wrap:wrap;gap:26px 48px;align-items:flex-start}
.band-foot .wordmark{font-size:clamp(34px,4vw,54px)}
.footnav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 30px}
.footnav a{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--acid)}
.footnav a:hover{color:var(--paper)}
.band-foot .standing{margin-left:auto;text-align:right}

/* ─── figure system: three treatments, one drawing ───────── */
figure{margin:0}
figcaption{font-family:var(--mono);margin-top:12px}
.cap{display:flex;flex-wrap:wrap;gap:6px 28px;align-items:baseline}
.cap__text{font-size:var(--fs-cap);line-height:1.55;color:#2A2F36;flex:1 1 320px;max-width:900px;min-width:0}
.cap__credit{font-size:var(--fs-credit);letter-spacing:.06em;color:var(--meta);flex:0 1 auto}

/* 1 · full bleed, caption on the page margin */
.fig-bleed img{width:100%;height:clamp(260px,44vw,640px);object-fit:cover}
.fig-bleed figcaption{padding:0 var(--pad);max-width:var(--wide);margin-inline:auto}

/* 2 · bordered plate on bone with a 12px inner mat */
.fig-plate{border:1px solid var(--grid);background:#fff;padding:12px}
.fig-plate img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fig-plate figcaption{padding:0 2px}

/* 3 · breakout with a dimension rule across the base */
.fig-dim{position:relative}
.fig-dim img{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--grid)}
.fig-dim .dim{margin-top:-1px}
.fig-inset{max-width:420px}
.fig-inset img{aspect-ratio:4/3;object-fit:cover}

.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--grid)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.gallery img{aspect-ratio:4/3;object-fit:cover}

.map-figure{border:1px solid var(--grid);background:var(--ink);padding:12px}
.map-figure .map-slot{background:var(--ink);min-height:280px}
.map-figure svg{display:block;width:100%;height:auto}
.map-figure figcaption{padding:12px 4px 2px}
.map-figure .cap__text{color:var(--blue-pale)}
.map-figure .cap__credit{color:#9A8F8B}
.pin-dot{fill:var(--acid);stroke:var(--ink);stroke-width:4}
.pin-point{fill:var(--paper);stroke:var(--ink);stroke-width:3}
.pin-leader{stroke:var(--acid);stroke-width:4;fill:none}
.pin-label{font-family:var(--mono);font-size:32px;letter-spacing:.06em;fill:var(--paper)}
.map-key{font-family:var(--mono);font-size:var(--fs-credit);color:var(--blue-mid);display:flex;flex-wrap:wrap;gap:6px 22px;padding:10px 4px 0;margin:0;list-style:none}

/* ─── page furniture ────────────────────────────────────── */
.pagehead{padding:52px var(--pad) 0}
.pagehead h1{font-size:clamp(38px,5vw,84px);line-height:.95;margin-bottom:20px}
.lead{font-family:var(--text);font-size:clamp(20px,1.5vw,25px);line-height:1.45;color:#2A2F36;margin:0 0 var(--gap-para);max-width:1040px}
.sec-meta{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--meta);display:flex;flex-wrap:wrap;gap:8px 24px;margin:20px 0 0;padding:0;list-style:none}

/* section listing */
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:56px}
.cat-list>li{min-width:0}
.entry{display:grid;gap:22px;color:inherit;height:100%}
.entry h2,.entry h3{font-size:clamp(24px,2vw,34px);line-height:1.04}
.entry p{font-size:var(--fs-body);color:#2A2F36;margin:0}
.entry__meta{font-family:var(--mono);font-size:var(--fs-credit);letter-spacing:.1em;text-transform:uppercase;color:var(--meta);display:flex;align-items:center;gap:8px}
.entry--lead h2{font-size:clamp(30px,3.4vw,54px)}
.entry:hover h2,.entry:hover h3{color:var(--ultra)}

/* ─── article ───────────────────────────────────────────── */
.article-body{
  display:grid;
  grid-template-columns:
    [full-start] minmax(var(--pad),1fr)
    [wide-start] minmax(0,var(--wide)) [wide-end]
    minmax(var(--pad),1fr) [full-end];
  row-gap:0;
  padding-top:48px;
}
.article-body>*{grid-column:wide-start/wide-end;max-width:var(--prose);width:100%;margin-inline:auto;min-width:0}
.article-body>.breakout{max-width:none;margin:var(--gap-insert) auto}
.article-body>.fullbleed{grid-column:full-start/full-end;max-width:none;margin:var(--gap-insert) 0}
.article-body p{font-size:var(--fs-prose);line-height:1.7}
.article-body h2{font-size:clamp(27px,2.6vw,42px);line-height:1.06;margin:calc(var(--gap-insert) - 8px) 0 20px}
.article-body h3{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--ultra);margin:36px 0 14px}
.article-body>*:first-child{margin-top:0}
.article-body ul li{margin-bottom:10px}

/* inserted units — space on BOTH sides, never less than 32px */
.unit{border:1px solid var(--ink);background:#fff;padding:30px 32px}
.unit__head{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.18em;text-transform:uppercase;color:var(--ultra);display:inline-flex;align-items:center;gap:12px;margin:0 0 20px;padding-bottom:8px;border-bottom:2px solid currentColor}
.unit--flag .unit__head{color:var(--flag)}
.unit>*:last-child{margin-bottom:0}

.callout{border:none;background:var(--teal);color:var(--paper);padding:30px 32px;margin:var(--gap-insert) 0}
.callout p{font-size:var(--fs-prose);margin:0}
.callout>*:last-child{margin-bottom:0}
.note{font-family:var(--mono);font-size:var(--fs-cap);line-height:1.7;color:var(--meta);border-top:2px solid var(--ink);padding-top:14px}

.pullquote{margin:var(--gap-insert) 0;padding:0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.pullquote p{font-family:var(--display);font-weight:600;font-size:clamp(26px,2.6vw,42px);line-height:1.08;margin:22px 0}
.blockquote{margin:var(--gap-insert) 0;padding:26px 30px;background:var(--paper-2);border-left:6px solid var(--ultra)}
.blockquote p{font-size:var(--fs-prose);margin:0 0 14px}
.blockquote cite{font-family:var(--mono);font-size:var(--fs-credit);font-style:normal;letter-spacing:.06em;color:var(--meta)}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:2px;background:var(--grid);margin:var(--gap-insert) 0}
.statblock{background:#fff;padding:24px 22px 22px;display:flex;flex-direction:column;gap:10px;min-width:0}
.stat-num{font-family:var(--display);font-weight:700;font-size:clamp(40px,3.6vw,64px);line-height:.82;color:var(--ultra);overflow-wrap:anywhere}
.stat-label{font-family:var(--mono);font-size:var(--fs-credit);line-height:1.55;letter-spacing:.04em;color:#2A2F36;margin-top:auto}

.timeline{list-style:none;margin:0;padding:0;display:grid;gap:2px;background:var(--grid)}
.timeline li{background:#fff;display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr);gap:6px 26px;padding:18px 22px;align-items:start}
.t-when{font-family:var(--mono);font-weight:700;font-size:var(--fs-cap);letter-spacing:.06em;color:var(--ultra);overflow-wrap:anywhere}
.t-what{font-size:var(--fs-cap);line-height:1.6;min-width:0}

.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.datatable,.versus{width:100%;min-width:520px;font-family:var(--mono);font-size:var(--fs-cap);background:#fff}
.datatable th,.versus th{text-align:left;font-weight:700;letter-spacing:.06em;border-bottom:2px solid var(--ink);padding:13px 16px}
.datatable td,.versus td{border-bottom:1px solid var(--grid);padding:13px 16px;vertical-align:top}
.versus td:first-child{font-weight:700;background:var(--paper-2)}

.chart figcaption{font-family:var(--mono);font-size:var(--fs-cap);color:#2A2F36;margin-top:14px}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart .c-bar{fill:var(--ultra)}
.chart .c-lab,.chart .c-val{font-family:var(--mono);font-size:13px;fill:var(--ink)}
.chart .c-axis{stroke:var(--ink);stroke-width:1.5}

/* cards / references */
.profile-grid,.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin:var(--gap-insert) 0}
.profile-card{border:1px solid var(--grid);background:#fff;padding:22px}
.profile-card .p-photo{width:100%;aspect-ratio:1;object-fit:cover;margin-bottom:16px}
.profile-card h3{font-size:26px;line-height:1.05;margin-bottom:6px}
.profile-card .p-role{font-family:var(--mono);font-size:var(--fs-credit);letter-spacing:.08em;text-transform:uppercase;color:var(--ultra);margin-bottom:14px}
.profile-card p{font-size:var(--fs-cap);line-height:1.6}
.profile-card .p-links{font-family:var(--mono);font-size:var(--fs-credit);margin-bottom:0}
.profile-card .p-attr{font-family:var(--mono);font-size:var(--fs-credit);color:var(--meta);margin:10px 0 0}
.org-card{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;border:1px solid var(--grid);background:#fff;padding:18px 20px;color:inherit}
.org-card .org-logo{max-height:40px;width:auto;margin-bottom:8px}
.org-card.no-logo{border-left:6px solid var(--ultra)}
.org-name{font-family:var(--display);font-weight:600;font-size:24px;line-height:1.05}
.org-host{font-family:var(--mono);font-size:var(--fs-credit);color:var(--meta);overflow-wrap:anywhere}
.entity-ref{font-family:var(--mono);font-size:.94em;border-bottom:1px solid var(--blue-mid)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px}
.further-grid a{display:grid;gap:12px;color:inherit}
.further-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--grid)}
.further-grid span{font-family:var(--display);font-weight:600;font-size:26px;line-height:1.08}
.further-grid a:hover span{color:var(--ultra)}
.related-links{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.related-links a{font-family:var(--display);font-weight:600;font-size:26px;line-height:1.1}

.article-end{background:var(--ink);color:var(--paper);padding:46px var(--pad) 54px;margin-top:var(--gap-insert)}
.article-end__in{max-width:var(--wide);margin-inline:auto}
.article-end .kicker{color:var(--acid)}
.article-end a{color:var(--paper)}
.article-end a:hover{color:var(--acid)}

/* collapsible long lists (CSS only) */
.expander{margin:var(--gap-insert) 0}
.expander input{position:absolute;opacity:0;width:1px;height:1px}
.expander .more{display:none}
.expander input:checked~.list .more{display:list-item}
.expander input:checked~.exp-label .exp-open{display:none}
.expander .exp-label{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ultra);cursor:pointer;display:inline-block;margin-top:16px;border-bottom:2px solid var(--acid)}
.expander input:checked~.exp-label .exp-shut{display:inline}
.expander .exp-shut{display:none}

/* ─── supporters ────────────────────────────────────────── */
.band-supporters{padding:74px var(--pad) 0;margin-top:74px}
.supporters{display:flex;flex-wrap:wrap;gap:20px;margin-top:32px;justify-content:flex-start}
.sponsor{flex:0 0 460px;max-width:100%;display:grid;grid-template-columns:220px minmax(200px,1fr);gap:20px;align-items:center;border:1px solid var(--grid);background:#fff;padding:18px;color:inherit;min-height:132px}
.sponsor img{width:100%;max-width:100%;height:auto;max-height:56px;object-fit:contain;background:var(--ink-2);padding:10px 14px;grid-column:1}
.sponsor-name{font-family:var(--display);font-weight:600;font-size:26px;line-height:1.06;overflow-wrap:anywhere}
.sponsor-blurb{font-family:var(--mono);font-size:var(--fs-credit);line-height:1.6;color:#2A2F36;display:block;margin-top:8px}
.sponsor__col{grid-column:2;min-width:0}
.sponsor:hover{border-color:var(--ultra)}

/* ─── mobile nav ────────────────────────────────────────── */
@media (max-width:899px){
  .nav-toggle-label{display:inline-block;font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--acid);border:1px solid var(--acid);padding:9px 14px;cursor:pointer;margin-left:auto}
  .masthead__nav{margin-left:0;flex-basis:100%;display:none}
  .nav-toggle:checked~.masthead__nav{display:block}
  .navlist,.navsub{justify-content:flex-start;flex-direction:column;gap:12px}
  .navsub{margin-top:8px;padding-left:44px}
  .wordmark{font-size:clamp(36px,11vw,58px)}
  .standing{max-width:none;flex-basis:100%}
}
@media (max-width:640px){
  :root{--gap-insert:32px;--pad:18px;--fs-body:18px;--fs-prose:19px}
  .band-rules,.band-data{padding-top:44px;padding-bottom:42px}
  .sponsor{flex:1 1 100%;grid-template-columns:minmax(0,1fr)}
  .sponsor img{grid-column:1;max-width:260px}
  .sponsor__col{grid-column:1}
  .timeline li{grid-template-columns:minmax(0,1fr)}
  .numeral{font-size:min(96px,21vw)}
  .hero__plate-in{grid-template-columns:minmax(0,1fr)}
}

/* ─── up the scale: real rules above the laptop cap ─────── */
@media (min-width:900px){
  .sec-cards{grid-template-columns:1.35fr 1fr 1fr;gap:34px;align-items:start}
  .sec-card--lead{grid-row:span 1}
  .rules-grid{grid-template-columns:1.4fr 1fr 1fr;gap:44px}
  .band-foot__in{align-items:center}
  .cat-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-list>li.lead-entry{grid-column:1/-1}
  .entry--lead{grid-template-columns:minmax(0,1fr) 620px;gap:44px;align-items:end}
  .entry--lead .entry__body{order:-1}
}
@media (min-width:1200px){
  :root{--pad:56px}
  .hero__plate-in{grid-template-columns:minmax(0,1fr) max-content;align-items:end;gap:26px 56px}
  .pagehead{padding-top:60px}
  .band-data,.band-rules{padding-left:var(--pad);padding-right:var(--pad)}
  .cap{flex-wrap:nowrap}
  .cap__credit{text-align:right;flex:0 0 200px}
}
@media (min-width:1600px){
  :root{--side:300px;--gap-insert:76px}
  .cat-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:56px}
  .sec-cards{grid-template-columns:1.5fr 1fr 1fr;gap:44px}
  .gallery{gap:16px}
}
@media (min-width:1900px){
  :root{--wide:1660px;--side:350px;--fs-body:20px;--fs-prose:21px;--fs-cap:16px;--fs-credit:13px;--pad:72px}
  .hero__img{height:min(820px,50vw)}
  .cap__credit{flex:0 0 260px}
  .statrow{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
}
@media (min-width:2400px){
  :root{--prose:1040px;--wide:1860px;--side:410px;--fs-body:21px;--fs-prose:22px;--fs-cap:17px;--gap-insert:88px;--pad:96px}
  .cat-list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .timeline li{grid-template-columns:minmax(190px,260px) minmax(0,1fr)}
}

@media print{
  .masthead__nav,.band-supporters,.article-end{display:none}
  body{background:#fff}
}

.unit .statrow,.unit .timeline,.unit .tablewrap{margin:0}
.unit ul{margin:0;padding-left:1.15em}
.unit ul li{font-size:var(--fs-cap);line-height:1.6;margin-bottom:10px}
.unit ul li:last-child{margin-bottom:0}
.unit .datatable{min-width:420px}

.chart .c-line{stroke:var(--ultra);stroke-width:3}
.chart .c-dot{fill:var(--acid);stroke:var(--ink);stroke-width:2}
.chart .c-arc{stroke:var(--ultra)}
.chart.bar svg,.chart.line svg{color:var(--ink)}
.org-card:hover .org-name{color:var(--ultra)}
.sec-card .fig-plate figcaption{margin-top:10px}

/* brand-mark assets are shown whole, never cropped */
img[src*="royal-enfield-650-twins-volume"],img[src*="electric-collapse-energica-livewire-zero"]{object-fit:contain;background:#fff;padding:8px}
.fig-bleed img[src*="royal-enfield-650-twins-volume"],.fig-bleed img[src*="electric-collapse-energica-livewire-zero"]{height:clamp(200px,24vw,380px)}

/* ── data band: shared ruler and ratio bracket ─────────── */
.barscale{gap:26px}
.bar__track{position:relative;border-bottom:2px solid var(--ink)}
.bar__rail{position:relative}
.bar__rail::after{content:"";position:absolute;right:0;top:-8px;bottom:-8px;width:3px;background:var(--ink)}
.ratio{display:flex;align-items:center;gap:16px;padding:2px 0}
.ratio svg{width:26px;height:62px;flex:0 0 26px;color:var(--ink)}
.ratio__num{font-family:var(--display);font-weight:700;font-size:clamp(40px,4vw,64px);line-height:.8;font-variant-numeric:tabular-nums}
.ratio__label{font-family:var(--mono);font-size:var(--fs-cap);line-height:1.5;max-width:280px}
.ruler{display:flex;justify-content:space-between;border-top:2px solid var(--ink);margin-top:6px;font-family:var(--mono);font-size:var(--fs-credit);letter-spacing:.06em}
.ruler span{position:relative;padding-top:16px;font-variant-numeric:tabular-nums}
.ruler span::before{content:"";position:absolute;top:0;left:0;width:2px;height:10px;background:var(--ink)}
.ruler span:last-child::before{left:auto;right:0}
.ruler span:last-child{text-align:right}

/* ── rules band digits ─────────────────────────────────── */
.rules-item .numeral{font-size:clamp(96px,10vw,164px);letter-spacing:-.01em}
.rules-item .numeral--rule{border-color:var(--acid)}

/* ── map legend ────────────────────────────────────────── */
.pin-num{font-family:var(--display);font-weight:700;font-size:46px;fill:var(--ink)}
.legend{border-top:2px solid var(--ultra);margin-top:16px;padding-top:18px}
.legend__head{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.18em;text-transform:uppercase;color:var(--acid);display:inline-flex;align-items:center;gap:12px;margin:0 0 18px;padding-bottom:8px;border-bottom:2px solid currentColor}
.legend__list{list-style:none;margin:0;padding:0;display:grid;gap:2px;background:rgba(237,235,230,.14)}
.legend__row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;background:var(--ink);padding:14px 16px;align-items:start}
.legend__n{font-family:var(--display);font-weight:700;font-size:26px;line-height:1;color:var(--ink);background:var(--acid);text-align:center;padding:4px 0 6px;font-variant-numeric:tabular-nums}
.legend__body{display:grid;gap:4px;min-width:0}
.legend__place{font-family:var(--display);font-weight:600;font-size:24px;line-height:1.05;color:var(--paper)}
.legend__where{font-family:var(--mono);font-size:var(--fs-credit);letter-spacing:.06em;color:var(--blue-mid)}
.legend__link{font-size:var(--fs-cap);line-height:1.45;color:var(--paper);border-bottom:1px solid var(--ultra)}
.legend__link:hover{color:var(--acid);border-color:var(--acid)}
.legend__sec{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acid)}
@media (min-width:900px){.legend__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1600px){.legend__list{grid-template-columns:repeat(4,minmax(0,1fr))}.legend__row{padding:16px 18px}}

/* captions inside narrow columns stack instead of reserving a credit column */
.sec-card .cap,.gallery .cap,.further-grid .cap,.fig-inset .cap,.entry .cap{flex-wrap:wrap}
.sec-card .cap__text,.gallery .cap__text,.further-grid .cap__text,.fig-inset .cap__text,.entry .cap__text{flex:1 1 100%}
.sec-card .cap__credit,.gallery .cap__credit,.further-grid .cap__credit,.fig-inset .cap__credit,.entry .cap__credit{flex:1 1 100%;text-align:left}

/* the drawing sits beside its legend, and stops growing */
.map-figure{display:grid;gap:18px}
.map-figure svg{max-width:100%}
.map-figure>svg{max-width:820px;margin-inline:auto}
@media (min-width:1200px){
  .legend__list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .map-figure>svg{max-width:980px}
}
@media (min-width:1500px){
  .map-figure{grid-template-columns:minmax(0,1fr) minmax(340px,400px);gap:26px 30px;align-items:start}
  .map-figure>svg{grid-column:1;grid-row:1;max-width:none;margin:0}
  .map-figure>.legend{grid-column:2;grid-row:1;border-top:none;border-left:2px solid var(--ultra);margin-top:0;padding:0 0 0 24px}
  .map-figure .legend__list{grid-template-columns:minmax(0,1fr);gap:2px}
  .map-figure .legend__row{padding:12px 14px}
  .map-figure .legend__place{font-size:21px}
  .map-figure .legend__sec{display:none}
  .map-figure>figcaption{grid-column:1/-1;grid-row:2;border-top:1px solid rgba(237,235,230,.22);padding-top:16px}
}
@media (min-width:1900px){
  .map-figure{grid-template-columns:minmax(0,1fr) minmax(380px,500px)}
  .map-figure .legend__place{font-size:23px}
}
.map-figure .legend__link{font-size:14px;line-height:1.35}
.map-figure .legend__body{gap:3px}

/* red behind the chalk digits — the third colour, on the band that needed it */
.band-data .bar__num,.band-data .ratio__num{color:var(--acid);text-shadow:5px 5px 0 var(--ultra)}
.band-data .bar__rail::after{background:var(--ultra);width:5px}
.band-data .ruler span::before{background:var(--ultra);width:3px;height:13px}
.band-data h2{text-shadow:3px 3px 0 var(--ultra)}

/* flag plate */
.mapband__head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.mapband__head .kicker{margin:0}
.flagplate{display:flex;align-items:center;gap:12px;margin:0 0 0 auto;font-family:var(--mono);font-size:var(--fs-credit);letter-spacing:.1em;text-transform:uppercase;color:var(--meta)}
.flag{width:60px;height:40px;flex:0 0 60px;display:block;border:1px solid var(--grid)}

.entry__meta{font-weight:700;letter-spacing:.16em}
@media (max-width:640px){.kicker{font-size:13px;letter-spacing:.14em;gap:9px}}

/* sp-mark-align: marks sit CENTRED in their box. Placement only — Design's size,
   padding, panel and object-fit are untouched. */
.sponsor img,.sponsor-box img,.sp-logo img{object-position:center!important;margin-left:auto!important;margin-right:auto!important;display:block}
.sponsor .sp-logo,.sponsor-box{display:flex;align-items:center;justify-content:center}

/* sp-tile-uniform: a slot never grows to fill its row — every tile the same width in
   every row, whatever the count. Only flex-grow is touched. */
.sponsor{flex-grow:0!important}
.sponsor.lead-line,.sponsor.feat.lead-line{flex-grow:1!important}
.supporters{flex-wrap:wrap!important}
.sponsor:not(.lead-line){grid-column:span 1!important;grid-row:span 1!important}

/* sp-blurb-stack: a slot holding BOTH a mark and our copy stacks them —
   a fixed-height row clips the mark once the copy is un-hidden. */
.sponsor:has(> img):has(> .sponsor-blurb:not(:empty)){flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;height:auto!important;min-height:0!important;overflow:visible!important;gap:8px}
.sponsor:has(> img):has(> .sponsor-blurb:not(:empty)) > img{align-self:flex-start}

/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-tile-fit: a slot fills its track, keeps a symmetric inset, and cannot be inflated
   by one long line of our copy. */
.sponsor.sponsor{width:100%!important;box-sizing:border-box!important;align-self:stretch!important;align-items:center!important;height:auto!important;min-height:0!important;overflow:hidden}
.sponsor.sponsor{justify-content:center!important}
:has(> .sponsor.sponsor){align-items:stretch!important}
.sponsor.sponsor .sponsor-name{min-width:0!important;overflow-wrap:anywhere}
.sponsor.sponsor > img{flex:0 0 auto!important;align-self:center!important}
.sponsor.sponsor > .sponsor-txt,.sponsor.sponsor > span:not(.sponsor-name):not(.sponsor-box):not(.sp-logo):not(.sponsor__logo){flex:1 1 auto!important;min-width:0!important}
.sponsor.sponsor .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;margin:0!important}
/* the mobile un-clamp is retired: the operator asked for "2-3 rows max" on phones, which is
   what the desktop rule above already does — so mobile simply keeps it. */
@media (max-width:640px){.sponsor.sponsor .sponsor-blurb{-webkit-line-clamp:3!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;overflow:hidden!important}}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* pipeline: one brand treatment per tile — the name reads at the blurb's own size */
.sponsor .sp-brand{font:inherit!important;font-weight:700!important;letter-spacing:inherit!important;text-transform:none!important;color:inherit!important;display:inline!important;}

/* MAPKIT_BEGIN — injected real geodata; pins are links */
.map-slot{padding:0;background:none!important;border:0!important;display:flex;align-items:center;justify-content:center;min-height:0!important}
.map-slot>svg.mapkit{width:100%!important;max-width:100%;height:auto;max-height:none;margin:0 auto}
.map-slot{width:100%}
.map-slot{aspect-ratio:auto!important;height:auto!important}
.map-slot::after,.map-slot::before{content:none!important;display:none!important}
.map-figure figcaption{}
.mapkit-panels{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:16px;width:100%}
.mapkit-panels>svg.mapkit{width:100%;height:auto;display:block}
@media (max-width:700px){.mapkit-panels{grid-template-columns:minmax(0,1fr)}}
.mapkit__pin{cursor:pointer}
.mapkit__pin text{paint-order:stroke;stroke:#0F1216;stroke-width:3px;stroke-linejoin:round}
.mapkit__pin:hover circle{r:9.1}
.mapkit__pin:hover text{font-weight:700}
/* MAPKIT_END */

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.supporters .sponsor.sponsor img{height:52px!important}

/* op-fill-row: operator: the width can be increased a bit to match the container's space. The
   tile basis was a FIXED 460px, so two tiles used 940px of a 1328px band and left 388px empty.
   A computed half-row basis fills it; only flex-basis is touched, so the flex-grow:0 rule above
   (which keeps a short last row from stretching) still applies. */
@media (min-width:900px){
  .supporters .sponsor{flex-basis:calc((100% - 20px)/2)}
}

/* op-money-columns: the supporters block ran one tile per row — 8 tiles,
   1308px at 390, 14% of the whole page. Two columns bring it to
   896px (31% shorter). Checked before writing: no new overflow, smallest mark still
   130px wide, longest blurb 2 lines, tile heights 200-236px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   Only the tier(s) that were one-per-row are touched (.supporters), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .supporters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .supporters > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .supporters > * *{min-width:0!important;max-width:100%}
    .supporters img,.supporters svg{max-width:100%;height:auto}
}

/* op-article-width: the article column was capped at 960px (96 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --prose (declared in .article-body > *) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. Above 1600 the column and the prose type grow together (up to 1.2x). Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  article div.article-body{--prose:min(1024px, 100%)!important}
}
@media (min-width:1600px){
  article div.article-body{--prose:min(clamp(1024px, 71.111vw, 1229px), 100%)!important}
  article div.article-body > :is(p:not([class])){font-size:clamp(20px,1.3889vw,24.0px)!important}
}
/* op-article-width:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--display); font-weight: 700; letter-spacing: 0.005em; margin: 0px; text-wrap: balance;}
.sec-card h2:where(.rt-h3){font-size: clamp(26px, 2.4vw, 40px); line-height: 1.02; margin: 16px 0px 12px;}
/* op-heading-levels:end */

/* op-odd-tier-lead: money_slots changed a tier's size — .supporters (9 tiles) now show an ODD count on phones, so the lead tile takes the whole row (operator: "the 1st item in such rows to be 100% width, then split"). Parity-guarded: it steps aside again when the count is even. */
@media (max-width:640px){
  .supporters:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}
@media (min-width:621px) and (max-width:989px){.supporters.supporters > [data-partner]{width:100%!important;max-width:none!important;flex-basis:100%!important}}
