/* North Texas Fisticuffs — The Number Everyone Already Knew */

:root{
  --paper:#F1F0EC;      /* ground */
  --ink:#1D222B;        /* ink */
  --indigo:#2E3C63;     /* accent — structure: numerals, links, the full band */
  --ember:#C96442;      /* secondary — figures: plate ticks, kickers, marks */
  --slate:#636975;      /* quiet ink — credits, meta */
  --body:#404752;       /* running text on paper */
  --rule:#D3D3CD;       /* hairlines */
  --mute:#E7E7E1;       /* tint panels, plate grounds */

  --prose:86ch;
  --breakout:1340px;
  --pad:clamp(20px,5vw,60px);

  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --sans:'Work Sans',system-ui,-apple-system,sans-serif;
  --label:'Karla',system-ui,sans-serif;

  --body-size:18px;
  --lead-size:22px;
  --datum:clamp(72px,15vw,240px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:var(--body-size);line-height:1.62;
  text-wrap:pretty;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--indigo);text-decoration:none}
a:hover{color:var(--ember)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.05;margin:0}
p{margin:0 0 1.15em}
hr{border:0;border-top:1px solid var(--rule);margin:48px 0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:99}

/* ---------- shell ---------- */
.wrap{width:100%;max-width:var(--breakout);margin:0 auto;padding-inline:var(--pad)}
.bleed{width:100%}
.prose{max-width:var(--prose);padding-inline:0}

.kicker{font-family:var(--label);font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--indigo);display:flex;align-items:center;gap:9px}
.kicker svg{width:17px;height:17px;flex:none}
.small-caps{font-family:var(--label);font-size:14px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--ink)}
.masthead .wrap{display:flex;flex-wrap:wrap;gap:18px 40px;align-items:baseline;justify-content:space-between;padding-top:26px;padding-bottom:18px}
.brand{font-family:var(--label);font-size:15px;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--ink);white-space:nowrap}
.brand-sub{display:block;font-family:var(--sans);font-size:15px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--body);margin-top:7px;max-width:46ch}
.nav{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center}
.nav a{display:flex;align-items:center;gap:8px;font-family:var(--label);font-size:13.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;color:var(--ink);padding:4px 0}
.nav a svg{width:16px;height:16px;flex:none;color:var(--ember)}
.nav a:hover,.nav a[aria-current]{color:var(--indigo)}
.nav a[aria-current] svg{color:var(--indigo)}
.nav-toggle{display:none}

/* the homepage menu carries a second line per label */
.nav--home a{flex-direction:column;align-items:flex-start;gap:3px}
.nav--home .n-row{display:flex;align-items:center;gap:8px}
.nav--home .n-sub{font-family:var(--sans);font-size:12.5px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--slate)}

/* ---------- the datum ---------- */
.datum{font-family:var(--serif);font-size:var(--datum);line-height:.78;letter-spacing:-.02em;display:block;color:var(--ink)}
.datum--indigo{color:var(--indigo)}
.hero{position:relative;padding-top:34px}
.hero-plate{position:absolute;right:var(--pad);top:60px;width:min(52%,860px);aspect-ratio:16/10;background:var(--mute);overflow:hidden}
.hero-plate img{width:100%;height:100%;object-fit:cover}
.hero-type{position:relative;z-index:2}
.hero-type .datum{text-shadow:0 0 42px var(--paper),0 0 22px var(--paper)}
.hero-say{display:flex;gap:26px;margin-top:14px;max-width:62ch}
.hero-say .bar{width:6px;flex:none;background:var(--indigo)}
.hero h1{font-size:clamp(30px,3.4vw,56px);margin-bottom:12px}
.hero .deck{font-size:var(--lead-size);color:var(--body);margin:0}

/* ---------- bands ---------- */
.band{padding-block:clamp(48px,7vw,96px)}
.band--tight{padding-block:clamp(32px,4vw,56px)}
.band--fill{background:var(--indigo);color:var(--paper)}
.band--fill .standing{font-family:var(--serif);font-size:clamp(26px,3.4vw,52px);line-height:1.18;max-width:46ch;margin:0}
.band--tint{background:var(--mute)}
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center}
@media(min-width:900px){
  .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .split--wide-left{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
  .split--flip>*:first-child{order:2}
}
.bracket-note{display:flex;gap:20px}
.bracket-note svg{width:18px;height:96px;flex:none;color:var(--ember)}
.bracket-note h2{font-size:clamp(26px,2.6vw,44px);margin:8px 0 12px;max-width:28ch}
.bracket-note p{margin:0;color:var(--body);max-width:64ch}

/* ---------- figures ---------- */
figure{margin:0}
.article-figure{margin:38px 0}
.article-figure img{width:100%;background:var(--mute)}
.article-figure figcaption,.figcap{
  display:flex;flex-wrap:wrap;gap:6px 28px;align-items:baseline;
  margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);
  font-size:16px;line-height:1.45;color:var(--body);
}
.article-figure figcaption .cap,.figcap .cap{flex:1 1 34ch;max-width:74ch;margin:0}
.article-figure figcaption .credit,.figcap .credit{flex:0 1 auto;font-size:13px;color:var(--slate);margin-left:auto}
/* treatment 2 — matted plate inside a drawn bracket */
.fig--mat{background:var(--mute);padding:18px 18px 14px;border-left:3px solid var(--ember)}
.fig--mat figcaption{border-top:1px solid var(--rule)}
/* treatment 3 — inset in the column, prose beside it */
.fig--inset{float:right;width:min(340px,42%);margin:6px 0 22px 34px}
.fig--inset figcaption{font-size:14.5px}
.fig--inset figcaption .credit{font-size:12px}
@media(max-width:700px){.fig--inset{float:none;width:100%;margin:26px 0}}
/* treatment 4 — full-bleed strip */
.fig--bleed{margin:56px 0}
.fig--bleed img{aspect-ratio:21/8;object-fit:cover}
.fig--bleed figcaption{max-width:var(--breakout);margin-inline:auto;padding-inline:var(--pad)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:38px 0}
.gallery img{aspect-ratio:16/10;object-fit:cover;background:var(--mute)}
.map-figure .map-slot{width:100%;aspect-ratio:16/9;background:var(--mute);border:1px solid var(--rule)}

/* ---------- article ---------- */
.article-head{padding-top:34px}
.article-head h1{font-size:clamp(34px,4.4vw,84px);max-width:24ch;margin:14px 0 18px}
.lead{font-size:clamp(20px,1.7vw,26px);line-height:1.42;color:var(--body);max-width:62ch;margin:0}
.article-body{font-size:clamp(18px,1.15vw,21px);line-height:1.65;color:#221E29}
.article-body h2{font-size:clamp(24px,2.2vw,38px);margin:52px 0 16px;max-width:30ch}
.article-body h3{font-size:clamp(20px,1.5vw,27px);margin:36px 0 12px}
.article-body>p,.article-body>ul,.article-body>ol{max-width:var(--prose)}
.article-body a{border-bottom:1px solid rgba(46,60,99,.4)}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
@media(min-width:1100px){.article-grid{grid-template-columns:minmax(0,var(--prose)) minmax(260px,1fr)}}
.aside-col{display:flex;flex-direction:column;gap:30px;position:sticky;top:24px}
@media(max-width:1099px){.aside-col{position:static}}

/* ---------- components ---------- */
.pullquote{margin:40px 0;padding:4px 0 4px 26px;border-left:6px solid var(--ember);max-width:56ch}
.pullquote p{font-family:var(--serif);font-size:clamp(24px,2.1vw,34px);line-height:1.25;margin:0}
.blockquote{margin:34px 0;padding:20px 24px;background:var(--mute);max-width:64ch}
.blockquote p{margin:0 0 10px;font-size:19px}
.blockquote cite{font-style:normal;font-size:14px;color:var(--slate)}
.callout{margin:34px 0;padding:24px 26px;background:var(--mute);border-top:3px solid var(--indigo);max-width:none}
.callout h3{font-family:var(--label);font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--indigo);margin:0 0 12px}
.callout ul{margin:0;padding-left:20px}
.callout li{margin-bottom:8px}
.callout li:last-child{margin-bottom:0}
.note{font-size:16px;color:var(--slate);border-left:2px solid var(--rule);padding-left:14px;max-width:60ch}

.versus,.datatable{width:100%;border-collapse:collapse;font-size:17px;margin:30px 0}
.versus th,.datatable th{text-align:left;font-family:var(--label);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--indigo);border-bottom:2px solid var(--ink);padding:10px 12px 10px 0}
.versus td,.datatable td{border-bottom:1px solid var(--rule);padding:11px 12px 11px 0;vertical-align:top}
.versus td:first-child,.datatable td:first-child{font-weight:600;width:34%}
.datatable caption,.versus caption{caption-side:bottom;text-align:left;font-size:13px;color:var(--slate);padding-top:10px}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px;background:var(--rule);margin:34px 0}
.statblock{background:var(--paper);padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px}
.stat-num{font-family:var(--serif);font-size:clamp(38px,3.6vw,62px);line-height:.9;color:var(--indigo)}
.stat-label{font-size:15px;line-height:1.4;color:var(--body)}

.timeline{list-style:none;margin:34px 0;padding:0;border-top:1px solid var(--ink)}
.timeline li{display:grid;grid-template-columns:minmax(0,1fr);gap:2px 26px;padding:14px 0;border-bottom:1px solid var(--rule)}
@media(min-width:640px){.timeline li{grid-template-columns:minmax(120px,22%) minmax(0,1fr)}}
.t-when{font-family:var(--serif);font-size:22px;line-height:1.2;color:var(--ember)}
.t-what{font-size:17px;line-height:1.5;color:var(--body)}

.chart{margin:34px 0}
.chart svg{width:100%;height:auto;overflow:visible}
.chart figcaption{font-size:14px;color:var(--slate);margin-top:10px}
.bar-label{font-family:var(--label);font-size:13px;fill:var(--ink)}
.bar-value{font-family:var(--label);font-size:13px;font-weight:700;fill:var(--slate)}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin:32px 0}
.profile-card{background:var(--mute);padding:20px;display:flex;flex-direction:column;gap:8px}
.profile-card .p-photo{aspect-ratio:1;object-fit:cover;width:88px;border-radius:0}
.profile-card h3{font-size:24px}
.p-role{font-family:var(--label);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);margin:0}
.profile-card p{font-size:16px;margin:0}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:30px 0}
.org-card{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--rule);background:var(--paper)}
.org-card:hover{border-color:var(--indigo)}
.org-logo{max-height:34px;width:auto;object-fit:contain}
.org-name{font-weight:600}
.org-host{font-size:13px;color:var(--slate)}
.entity-ref{border-bottom:1px solid rgba(46,60,99,.4)}

.further-grid,.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2px;background:var(--rule);margin:0;padding:0;list-style:none}
.further-grid a,.related-links a{display:flex;flex-direction:column;gap:6px;background:var(--paper);padding:20px 22px;font-family:var(--serif);font-size:23px;line-height:1.15;color:var(--ink);height:100%}
.related-links li{display:flex}
.further-grid a:hover,.related-links a:hover{background:var(--mute);color:var(--indigo)}

/* ---------- listings ---------- */
.lead-entry{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:center;border-top:2px solid var(--ink);padding-top:36px}
@media(min-width:900px){.lead-entry{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.lead-entry h2{font-size:clamp(26px,3vw,50px);margin:14px 0 14px;max-width:24ch}
.lead-entry img{aspect-ratio:16/10;object-fit:cover;width:100%;background:var(--mute)}

.cat-list{list-style:none;margin:56px 0 0;padding:0;display:grid;gap:40px}
.cat-list li{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;border-top:1px solid var(--rule);padding-top:28px}
@media(min-width:760px){.cat-list li{grid-template-columns:110px 300px minmax(0,1fr);gap:34px;align-items:center}}
.cat-list .c-mark{font-family:var(--serif);font-size:clamp(40px,4vw,74px);line-height:.85;color:var(--indigo)}
.cat-list img{aspect-ratio:16/10;object-fit:cover;width:100%;background:var(--mute)}
.cat-list h3{font-size:clamp(22px,2vw,32px);margin:0 0 8px;max-width:36ch}
.cat-list p{font-size:16.5px;color:var(--body);margin:0;max-width:76ch}

.card-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(24px,3vw,44px);margin-top:8px}
.card{display:flex;flex-direction:column;gap:12px;height:100%}
.card img{aspect-ratio:16/10;object-fit:cover;background:var(--mute)}
.card h3{font-size:clamp(21px,1.7vw,28px);margin:0}
.card p{font-size:16px;color:var(--body);margin:0}
.card .datum-sm{font-family:var(--serif);font-size:54px;line-height:.82;color:var(--indigo)}
.card-head{display:flex;gap:16px;align-items:flex-start}

.index-table{width:100%;border-collapse:collapse;margin-top:36px;font-size:17px}
.index-table th{text-align:left;font-family:var(--label);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--indigo);border-bottom:2px solid var(--ink);padding:10px 16px 10px 0}
.index-table td{border-bottom:1px solid var(--rule);padding:13px 16px 13px 0;vertical-align:top}
.index-table td:first-child{width:26%;font-family:var(--label);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);white-space:nowrap}

/* ---------- supporters ---------- */
.supporters{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:22px;margin-block:8px}
.supporters .sup-head{font-family:var(--label);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin:0 0 14px}
.sponsor-run{display:flex;flex-wrap:wrap;gap:26px}
.sponsor{flex:0 0 320px;display:flex;flex-direction:column;gap:5px;color:var(--ink);border-left:2px solid var(--ember);padding-left:16px}
.sponsor:hover{color:var(--indigo)}
.sponsor:hover .sponsor-name{color:var(--indigo)}
.sponsor-name{font-family:var(--label);font-size:16px;letter-spacing:.02em;font-weight:700;color:var(--ink)}
.sponsor-blurb{font-size:14.5px;line-height:1.45;color:var(--body);min-width:200px}
.sponsor.feat .sponsor-name{font-family:var(--serif);font-weight:400;font-size:23px;letter-spacing:0}
@media(max-width:700px){.sponsor{flex:0 0 100%}}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--ink);margin-top:clamp(56px,8vw,110px)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:28px 60px;justify-content:space-between;padding-block:34px 52px}
.foot p{max-width:52ch;color:var(--body);margin:10px 0 0}
.foot-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,auto));gap:8px 46px}
.foot-nav a{font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}

/* ---------- large displays: the page GAINS, it does not just gain margin ---------- */
@media(min-width:1600px){
  :root{--breakout:1500px;--prose:88ch;--body-size:19px;--lead-size:24px}
  .article-grid{grid-template-columns:minmax(0,var(--prose)) minmax(320px,1fr)}
  .card-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .article-figure figcaption{font-size:17px}
  .fig--inset{width:min(400px,40%)}
}
@media(min-width:2000px){
  :root{--breakout:1780px;--prose:92ch;--body-size:20px;--datum:clamp(200px,13vw,320px)}
  .cat-list li{grid-template-columns:150px 400px minmax(0,1fr)}
  .statrow{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
}
@media(min-width:2400px){
  :root{--breakout:2100px;--prose:96ch;--body-size:21px;--lead-size:27px}
  .article-grid{grid-template-columns:minmax(0,var(--prose)) minmax(420px,1fr)}
  .hero-plate{width:min(50%,1100px)}
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ---------- narrow ---------- */
@media(max-width:1100px){
  .hero-plate{position:static;width:100%;margin-bottom:18px}
  .hero-type .datum{text-shadow:none;font-size:clamp(64px,20vw,140px)}
  .nav{gap:8px 18px}
  .nav--home a{flex-basis:calc(50% - 12px)}
}
@media(max-width:520px){
  .masthead .wrap{padding-top:20px}
  .nav--home a{flex-basis:100%}
}

/* ---------- page furniture added at build ---------- */
.breakout{width:100%;max-width:var(--breakout)}
.band-h{font-size:clamp(26px,3vw,48px);max-width:26ch;margin:12px 0 26px}
.band-copy{font-size:clamp(18px,1.3vw,21px);color:var(--body);max-width:64ch;margin:0}
.band-more{margin:22px 0 0;font-family:var(--label);font-size:14px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--slate)}
.band-more a{border-bottom:2px solid var(--indigo);padding-bottom:2px}
.quiet-line{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline;font-family:var(--serif);font-size:clamp(21px,2vw,31px);line-height:1.25;margin:0;max-width:80ch}
.quiet-line .kicker{font-family:var(--label)}
.quiet-line a{color:var(--ink);border-bottom:1px solid var(--rule)}
.quiet-line a:hover{color:var(--indigo);border-color:var(--indigo)}
.archive-cta{display:flex;gap:24px;align-items:baseline;border-top:1px solid var(--ink);padding-top:24px}
.archive-cta p{margin:0;max-width:60ch;color:var(--body)}
.cat-h1{font-size:clamp(40px,7vw,120px);line-height:.86;margin:14px 0 22px}
.arch-h{font-size:clamp(24px,2.2vw,34px)}
.arch-h a{color:var(--ink)}
.arch-sub{display:block;font-size:15px;color:var(--slate);margin-top:5px;max-width:86ch}
.hero-fig img{aspect-ratio:21/9;object-fit:cover}
.note-unit{margin:44px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media(min-width:1000px){.note-unit{grid-template-columns:minmax(150px,20%) minmax(0,1fr);gap:34px}
 .note-unit .unit-label{margin:0}
 .note-unit>:not(.unit-label){grid-column:2}}
.unit-label{font-family:var(--label);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--indigo);border-top:2px solid var(--ink);padding-top:10px;margin:0}
.note-unit .timeline,.note-unit .statrow{margin:0}
.note-unit.callout{display:block;background:var(--mute);border-top:3px solid var(--indigo);padding:24px 26px}
.note-unit.callout h3{border:0;padding:0}
.related-wrap{margin:64px 0 0;border-top:2px solid var(--ink);padding-top:14px}
.related-wrap .unit-label{border:0;padding:0;margin-bottom:16px}
.article-body ul{padding-left:20px}
.article-body li{margin-bottom:8px}
.article-body .breakout{max-width:var(--breakout)}
.hero .figcap{margin-top:22px}

@media(min-width:1101px){
  .hero-say{padding-right:calc(min(52%,860px) + 48px);max-width:none}
  .hero-plate{top:120px}
}
@media(max-width:1100px){
  .hero-type .datum{text-shadow:none}
  .hero .figcap{margin-top:14px}
}
.nav--home a{max-width:26ch}

.card .datum-sm{max-width:38%;overflow-wrap:anywhere;font-size:clamp(34px,3vw,54px)}
.card-head>div{flex:1 1 60%;min-width:0}
@media(max-width:1200px){.card-head{flex-direction:column;gap:6px}.card .datum-sm{max-width:none}}

/* bolder menu items */
.nav a{font-weight:700;font-size:14.5px;letter-spacing:.11em}
.nav a svg{width:18px;height:18px;stroke-width:2.1}
.nav--home .n-sub{font-weight:500;color:#5b6270}

/* ---- masthead wordmark ---- */
.brand{font-size:clamp(19px,1.6vw,26px);letter-spacing:.16em;font-weight:700;line-height:1}
.masthead .wrap>div:first-child{padding-right:20px}
.brand-sub{font-size:16px;margin-top:10px}
.foot .brand{font-size:20px}

/* ---- hero: two real columns, numerals still cross the plate ---- */
.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media(min-width:1101px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,45%);column-gap:52px;align-items:start}
  .hero-type{grid-column:1;grid-row:1}
  .hero-plate{position:static;grid-column:2;grid-row:1;width:100%;margin-top:104px}
  .hero-type .datum{position:relative;z-index:3;width:max-content;max-width:none;white-space:nowrap}
  .hero-say{padding-right:0;max-width:none}
  .hero .figcap{grid-column:1/-1}
}
.hero .figcap{gap:10px 40px}
.figcap .cap,.article-figure figcaption .cap{padding-right:28px}
.figcap .credit,.article-figure figcaption .credit{padding-left:8px}

/* ---- the digits band ---- */
.statrow--lead{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.statrow--lead .statblock{padding:26px 26px 28px;gap:12px}
.statrow--lead .stat-num{font-size:clamp(52px,6.4vw,104px);line-height:.84;letter-spacing:-.02em}
.statrow--lead .stat-label{font-size:15.5px;line-height:1.42;color:var(--body);max-width:28ch;border-top:1px solid var(--rule);padding-top:10px}

/* ---- owner cards ---- */
.card-plate{display:block;background:var(--mute);padding:10px;border-left:3px solid var(--ember)}
.card-plate img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card-datum{font-family:var(--serif);font-size:clamp(34px,3vw,52px);line-height:.9;color:var(--indigo);display:block;margin-top:14px}
.card h3{margin-top:2px}

/* section headers stand out */
.kicker{font-size:14.5px;letter-spacing:.19em;font-weight:700;gap:10px;padding-top:12px;border-top:3px solid var(--indigo);align-self:start;width:max-content;max-width:100%}
.kicker svg{width:19px;height:19px;stroke-width:2;color:var(--ember)}
.band-h,.bracket-note h2{margin-top:16px}
.article-head .kicker,.hero .kicker{border-top-color:var(--ember)}
.cat-h1+.lead{margin-top:0}

@media(max-width:1100px){
  .hero-type{order:1}
  .hero-plate{order:2;margin-bottom:0}
  .hero .figcap{order:3}
}

/* stat rows: rules on the blocks, not a filled grid (no empty grey cells) */
.statrow{background:none;gap:26px 34px}
.statblock{background:none;padding:16px 0 0;border-top:2px solid var(--ink)}
.statrow--lead .statblock{padding:16px 0 0}
.statrow--lead .stat-label{border-top:0;padding-top:0}

/* hero plate: give the photograph a dark mat so it holds against the paper */
.hero-plate{background:var(--ink);padding:12px 12px 12px 12px;border-left:5px solid var(--ember);aspect-ratio:auto}
.hero-plate img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto}
@media(min-width:1101px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,50%)}
  .hero-plate{margin-top:88px}
}

.hero .figcap{padding-bottom:34px}

.band-h--one{max-width:none}
@media(min-width:1000px){.band-h--one{white-space:nowrap;font-size:min(3.35vw,46px)}}

/* standing sentence: sans, not the display serif */
.band--fill .standing{font-family:var(--sans);font-weight:500;font-size:clamp(23px,2.9vw,42px);line-height:1.3;letter-spacing:-.005em;max-width:34ch}
/* the digits carry the band */
.statrow--lead .statblock{border-top:3px solid var(--ember);padding-top:18px}
.statrow--lead .stat-num{font-size:clamp(60px,7.6vw,132px);color:var(--indigo)}
.statrow--lead .stat-label{font-size:16px;color:var(--body)}

/* ===== article recheck: centred measure, reserved seams, scrollable wides ===== */
.article-head{max-width:var(--breakout);margin-inline:auto}
.article-head .kicker,.article-head h1,.article-head .lead{max-width:var(--prose);margin-inline:auto}
.article-body{max-width:var(--breakout);margin-inline:auto}
.article-body>p,.article-body>ul,.article-body>ol,.article-body>h2,.article-body>h3{max-width:var(--prose);margin-inline:auto}
.article-body>.breakout{max-width:var(--breakout);margin-inline:auto}

/* A2 — every insertion has room on both sides, and clears any float */
.article-body .note-unit,.article-body .article-figure{clear:both;margin-block:56px}
.article-body .fig--inset{clear:none;margin:8px 0 24px 36px}
.related-wrap{clear:both;margin-block:72px 0}
@media(max-width:700px){
  .article-body .note-unit,.article-body .article-figure{margin-block:32px}
  .related-wrap{margin-block:40px 0}
}
/* end-of-article unit */
.note-unit--end{border-top:3px solid var(--ember);padding-top:18px}
.note-unit--end .note-part+.note-part{margin-top:30px}
.note-unit--end h4{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--slate);margin:0 0 12px}
.note-body .note-list{margin:0;padding-left:20px}
.note-body .note-list li{margin-bottom:9px}
.note-unit .note-body{min-width:0}
@media(min-width:1000px){.note-unit>.note-body{grid-column:2}}

/* B4 — wide things scroll inside themselves */
.datatable,.versus,.index-table{display:block;overflow-x:auto;white-space:normal}
.datatable tbody,.versus tbody,.index-table tbody{display:table;width:100%}
.datatable thead,.versus thead,.index-table thead{display:table;width:100%}

.article-head .kicker{
  width:min(100%,var(--prose));margin-inline:auto;justify-content:flex-start;
  border-top:0;padding-top:14px;
  background-image:linear-gradient(var(--ember),var(--ember));
  background-size:56px 3px;background-repeat:no-repeat;background-position:left top;
}
.article-head h1,.article-head .lead{width:min(100%,var(--prose))}

@media(max-width:700px){
  .article-body .fig--inset{float:none;width:100%;margin:32px 0}
}
html,body{max-width:100%}

/* the inset float is a sibling of the prose (a <figure> cannot live inside a <p>) */
.article-body>.fig--inset{
  float:right;width:min(320px,38%);
  margin:6px 0 26px 36px;
  margin-right:max(0px,calc((100% - min(100%, var(--prose)))/2));
}
@media(max-width:700px){.article-body>.fig--inset{float:none;width:100%;margin:32px 0}}

/* C3 — entry spacing at least twice the paragraph gap */
.cat-list{gap:56px}
.cat-list li{padding-top:34px}
@media(max-width:700px){.cat-list{gap:40px}.cat-list li{padding-top:26px}}

/* every kit image reserves its box before it loads (all frames ship 1600x1000) */
.article-figure img,.card img,.cat-list img,.lead-entry img,.gallery img,.split .article-figure img{
  aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;background:var(--mute)
}
.hero-fig img{aspect-ratio:21/9}
.card-plate img{aspect-ratio:4/3}
.hero-plate img{aspect-ratio:16/10}

/* timeline dates: set as labels, not display serif */
.timeline li{padding:16px 0;align-items:baseline}
.t-when{
  font-family:var(--label);font-size:14px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink);line-height:1.35;
  display:flex;gap:10px;align-items:baseline;
}
.t-when::before{content:"";flex:none;width:14px;height:3px;background:var(--ember);transform:translateY(-4px)}
.t-what{font-size:17px;color:var(--body)}
@media(min-width:640px){.timeline li{grid-template-columns:minmax(150px,26%) minmax(0,1fr);gap:2px 32px}}

/* related block */
.related-wrap{border-top:0;padding-top:0}
.related-wrap .unit-label{border-top:3px solid var(--ink);padding-top:12px;margin-bottom:22px}
.related-links{background:none;gap:28px 34px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));counter-reset:rel}
.related-links li{counter-increment:rel;display:block}
.related-links a{
  background:none;padding:14px 0 0;border-top:3px solid var(--indigo);
  font-size:clamp(20px,1.6vw,25px);line-height:1.14;display:block;height:auto
}
.related-links a::before{
  content:counter(rel,decimal-leading-zero);display:block;margin-bottom:10px;
  font-family:var(--label);font-size:12.5px;letter-spacing:.16em;font-weight:700;color:var(--ember)
}
.related-links a:hover{background:none;color:var(--indigo);border-top-color:var(--ember)}

.related-links a{border-bottom:0}
@media(min-width:900px){.related-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.related-links{grid-template-columns:minmax(0,1fr)}}

.related-links a{font-family:var(--sans);font-weight:600;font-size:clamp(17px,1.25vw,20px);line-height:1.3;letter-spacing:-.005em}

.hero-say{margin-top:30px}
.hero .kicker{margin-top:4px;padding-top:16px;margin-bottom:6px}
.hero h1{margin-top:6px}

/* one row per figure */
.statrow--lead .stat-num{white-space:nowrap;font-size:clamp(42px,4.6vw,84px)}
@media(min-width:1100px){.statrow--lead{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* cards use the kit's native frame, like every other figure */
.card-plate img{aspect-ratio:16/10}

/* ---- mobile menu: CSS-only disclosure, no script ---- */
.nav-toggle{position:absolute;opacity:0;width:0;height:0}
.nav-btn{display:none}
@media(max-width:760px){
  .masthead .wrap{align-items:center}
  .nav-btn{
    display:inline-flex;align-items:center;gap:10px;cursor:pointer;
    font-family:var(--label);font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
    color:var(--ink);border:2px solid var(--ink);padding:9px 14px;min-height:44px;box-sizing:border-box
  }
  .nav-bars{width:18px;height:12px;border-top:2px solid var(--ember);border-bottom:2px solid var(--ember);position:relative}
  .nav-bars::after{content:"";position:absolute;left:0;top:4px;width:18px;height:2px;background:var(--ember)}
  .nav{display:none;width:100%;flex-direction:column;gap:0;border-top:1px solid var(--rule);margin-top:14px}
  .nav-toggle:checked ~ .nav{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid var(--rule);min-height:44px;align-items:center}
  .nav--home a{flex-direction:row;gap:10px;max-width:none}
  .nav--home .n-sub{margin-left:auto;text-align:right}
}
/* legibility floor on small text */
.n-sub,.credit,.article-figure figcaption .credit,.figcap .credit,.fig--inset figcaption .credit,
.unit-label,.p-role,.arch-sub,.sup-head,.org-host,.chart figcaption{font-size:13px}
.sup-head{letter-spacing:.18em}

.nav--home .n-sub{font-size:13px}
.supporters .sup-head{font-size:13px}
@media(max-width:900px){
  .nav a{min-height:44px;padding-block:10px}
  .foot-nav a{min-height:44px;display:flex;align-items:center}
}

/* sp-roll-normalize: a logo roll keeps object-fit and loses its geometry.
   It used to set width:auto, height:46px, max-width:172px and min-width:30px, which let
   every plate in the roll shrink-wrap its own artwork — evbb measured 62px next to 204px
   in the SAME ROW. The operator's rule is that the dark ground is unified whatever the
   logo's size, so the plate cannot be sized by the logo. Geometry belongs to Design. */
[class~="roll"] .sponsor img,[class*="roll-"] .sponsor img,[class*="-roll"] .sponsor img{object-fit:contain}

/* sp-contain-guard: sponsor logos are wordmarks — never object-fit:cover (crops).
   object-fit ONLY. This block used to also set width:auto, padding:4px 10px,
   max-width:calc(100% - 20px) and min/max-height, which overrode Design's own frame and
   let every plate shrink-wrap its logo — the recurring "inconsistent sizing" and
   "lacks padding". Geometry belongs to Design. */
.sponsor img,.sponsor-box img,.sp-logo img{object-fit:contain!important;display:block;margin-left:auto;margin-right:auto;align-self:center}

/* 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}
.sponsor-run{flex-wrap:wrap!important}
.sponsor-run > .sponsor{flex:1 1 var(--sp-min,220px)!important;min-width:min(220px,100%)!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){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;}

/* op-hover-pad */
.related-links a{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--serif); font-weight: 400; line-height: 1.05; margin: 0px;}
.article-body h2:where(.rt-h3){font-size: clamp(20px, 1.5vw, 27px); margin: 36px 0px 12px;}
.article-body > h2:where(.rt-h3){max-width: var(--prose); margin-inline: auto;}
/* op-heading-levels:end */

/* op-grow-same-size: an added partner would have wrapped onto a new row ALONE and stretched across the grid (flex rows that grow). Same minimum (basis 220px, min-width min(220px, 100%)), same columns at every width, a short row keeps its siblings' size — applied at the moment of adding, as the operator chose (2026-09-23). Phones keep their own rules. */
@media (min-width:641px){
  section.wrap.supporters:nth-of-type(9) > div.sponsor-run{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important}
}
/* op-grow-same-size:end */
