/* Marion General — Air. Ground, ink, air, brick, mat. */
:root{
  --ground:#EDF0EF; --ink:#131C1A; --air:#0682A6; --brick:#B23A20; --mat:#E0DACE;
  --ink-soft:#2A3634; --quiet:#6B7674; --pale:#D6E9F0; --dim:#9AA6A3;
  --paper:var(--ground);
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --read:"Source Serif 4",Georgia,serif;
  --page:1240px; --measure:72ch; --gut:clamp(20px,4vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--read);font-size:19px;line-height:1.62;text-wrap:pretty}
img{max-width:100%;display:block}
a{color:var(--air);text-decoration:none}
a:hover{color:var(--brick)}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.02;margin:0}
svg{display:block}
.wrap{max-width:var(--page);margin:0 auto;padding-inline:var(--gut)}
.band{border-bottom:1px solid rgba(19,28,26,.22)}
.kicker{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brick)}
.kicker--air{color:var(--air)}
.rule-stop{display:flex;align-items:center;gap:8px;margin:14px 0}
.rule-stop::before,.rule-stop::after{content:"";width:8px;height:1px;background:var(--ink)}
.rule-stop i{flex:1;height:1px;background:var(--ink);opacity:.45}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--ground);padding:8px 12px;z-index:20}

/* ---------- masthead: the unequal index ---------- */
.mast{border-bottom:2px solid var(--ink)}
.mast-in{max-width:var(--page);margin:0 auto;padding:30px var(--gut) 26px;display:grid;grid-template-columns:minmax(320px,520px) 1fr;gap:48px}
.mast-id{display:flex;gap:20px;align-items:flex-start}
.mast-id .emblem{flex:none;color:var(--ink)}
.wordmark{font-family:var(--display);font-weight:600;letter-spacing:-.035em;line-height:.88;font-size:clamp(40px,5.4vw,62px);color:var(--ink);display:block}
.wordmark span{display:block}
.tagline{font-size:17px;line-height:1.35;color:var(--ink-soft);margin-top:2px;max-width:34ch}
.mast-index{display:grid;grid-template-columns:1.35fr 1fr;gap:22px 34px;align-content:start;font-family:var(--display)}
.mi-lead{grid-column:1;grid-row:1 / span 2}
.mi-no{font-size:11px;letter-spacing:.2em;color:var(--air)}
.mi-name{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
.mi-lead .mi-name{font-size:30px;line-height:1.02}
.mi-gloss{font-family:var(--read);font-size:15px;line-height:1.4;color:var(--ink-soft);margin-top:4px}
.mi-small{margin-bottom:14px}
.mi-small .mi-name{font-size:19px;line-height:1.06}
.mi-col2{grid-column:2;grid-row:1}
.mi-more{grid-column:2;grid-row:2;align-self:end;border-top:1px solid var(--ink);padding-top:8px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--display);font-weight:600;font-size:15px;color:var(--brick)}
.mi-more:hover{color:var(--ink)}
/* compact masthead for inner pages */
.mast--compact .mast-in{grid-template-columns:1fr auto;align-items:end;gap:24px;padding:22px var(--gut) 16px}
.mast--compact .wordmark{font-size:30px;line-height:.9}
.mast--compact .mast-id{gap:14px;align-items:center}
.mast--compact .tagline{display:none}
.navline{display:flex;gap:22px;align-items:center;flex-wrap:wrap;font-family:var(--display);font-size:15px}
.navline a{color:var(--quiet);display:flex;align-items:center;gap:7px}
.navline a:hover{color:var(--ink)}
.navline a[aria-current]{color:var(--ink);font-weight:600;border-bottom:2px solid var(--brick);padding-bottom:2px}
.navline .n{color:var(--air);font-size:11px;letter-spacing:.16em}

/* ---------- homepage bands ---------- */
.lead-band{position:relative;background:var(--ink)}
.lead-band img{width:100%;height:clamp(360px,52vw,660px);object-fit:cover}
.lead-plate{position:relative;max-width:var(--page);margin:-140px auto 0;padding-inline:var(--gut)}
.lead-plate>div{background:var(--ground);padding:30px 32px 26px;max-width:680px}
.lead-title{font-size:clamp(30px,3.6vw,46px);line-height:.98;margin-top:10px}
.lead-dek{font-family:var(--read);font-size:19px;line-height:1.42;margin-top:14px;color:var(--ink-soft)}
.lead-cap{max-width:var(--page);margin:0 auto;padding:18px var(--gut) 26px;display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
.statement{padding:clamp(40px,6vw,64px) 0 clamp(36px,5vw,60px)}
.statement p{font-size:clamp(24px,3vw,38px);line-height:1.2;margin:0;max-width:26ch;font-family:var(--read)}
.statement .sig{font-family:var(--display);font-size:17px;color:var(--quiet);margin-top:20px;max-width:52ch;line-height:1.4}
.duo{display:grid;grid-template-columns:1fr 1fr}
.duo>*{padding:clamp(28px,3.4vw,44px) clamp(20px,2.6vw,40px)}
.duo>*+*{border-left:1px solid rgba(19,28,26,.22)}
.duo .mat-cell{background:var(--mat)}
.reg{background:var(--air);color:var(--ground)}
.reg .wrap{padding-block:clamp(38px,5vw,54px)}
.reg-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;border-bottom:1px solid rgba(237,240,239,.5);padding-bottom:14px;flex-wrap:wrap}
.reg-head h2{font-size:clamp(24px,2.6vw,30px);color:var(--ground)}
.reg-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px 44px;margin-top:28px}
.reg-list h3{font-size:22px;color:var(--ground)}
.reg-list h3 a{color:var(--ground)}
.reg-list h3 a:hover{color:var(--mat)}
.reg-list p{font-size:16px;line-height:1.45;margin:6px 0 0;color:var(--pale)}
.split{display:grid;grid-template-columns:1fr minmax(320px,460px)}
.split-txt{padding:clamp(34px,4.4vw,56px) clamp(28px,3vw,44px) clamp(34px,4vw,52px) var(--gut)}
.split-img{background:var(--ink);position:relative;min-height:420px}
.split-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split-img figcaption{position:absolute;left:0;right:0;bottom:0;background:rgba(19,28,26,.86);padding:14px 18px}
.split-img .cap{color:var(--ground)}
.split-img .credit{color:var(--dim)}
.mapband .wrap{padding-block:clamp(34px,4.4vw,52px);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,4vw,52px);align-items:center}
.sections-band .wrap{padding-block:clamp(34px,4vw,50px)}
.sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:26px 34px;margin-top:24px}
.sec-grid h3{font-size:21px;display:flex;align-items:center;gap:9px}
.sec-grid p{font-size:16px;line-height:1.45;color:var(--ink-soft);margin:6px 0 0}
.sec-grid .n{font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--air)}
.feedband .wrap{padding-block:clamp(34px,4vw,52px);display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:clamp(30px,4vw,56px);align-items:start}
.feed-lead{border-top:2px solid var(--ink);padding-top:16px}
.feed-lead h3{font-size:clamp(24px,2.8vw,34px);line-height:1.04}
.feed-lead p{font-size:18px;line-height:1.5;color:var(--ink-soft);margin:10px 0 0}
.feed-list{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:18px}
.feed-list li{border-top:1px solid rgba(19,28,26,.22);padding-top:14px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.feed-list h4{font-size:20px;line-height:1.1}
.feed-list p{font-size:16px;line-height:1.45;color:var(--ink-soft);margin:4px 0 0}
.feed-list .ico{color:var(--air);margin-top:3px}

/* ---------- figure system ---------- */
figure{margin:0}
figcaption .cap{display:block;font-family:var(--display);font-size:17px;line-height:1.35;font-weight:500;color:var(--ink)}
figcaption .credit{display:block;font-family:var(--display);font-size:12px;line-height:1.4;color:var(--quiet);margin-top:7px}
.article-figure{margin:0}
.fig--frame>.frame{border:1px solid var(--ink);padding:12px}
.fig--frame figcaption{border-top:1px solid var(--ink);margin-top:18px;padding-top:12px}
.fig--mat{background:var(--mat);padding:clamp(18px,2vw,24px)}
.fig--mat figcaption{margin-top:18px;display:grid;grid-template-columns:34px 1fr;gap:16px}
.fig--mat figcaption .mk{color:var(--brick)}
.fig--bleed{margin-inline:calc(50% - 50vw);width:100vw}
.fig--bleed img{width:100%;height:clamp(300px,44vw,560px);object-fit:cover}
.fig--bleed figcaption{max-width:var(--page);margin:0 auto;padding:14px var(--gut) 0;display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
.fig--bleed figcaption .cap{max-width:70ch}
.fig--bleed figcaption .credit{margin-top:0;text-align:right}
.fig--inset{float:right;width:min(300px,44%);margin:6px 0 22px 32px;background:var(--mat);padding:14px}
.fig--inset figcaption .cap{font-size:15px}
.fig--tint img{filter:saturate(.55) contrast(1.05)}
.fig--tint{background:var(--ink);padding:10px}
.fig--tint figcaption{padding:12px 4px 4px}
.fig--tint .cap{color:var(--ground)}
.fig--tint .credit{color:var(--dim)}

/* ---------- article ---------- */
.art-head{padding-block:clamp(32px,4vw,52px) clamp(20px,2.4vw,30px)}
.art-head .where{display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brick)}
.art-head h1{font-size:clamp(38px,5.6vw,68px);line-height:.94;margin-top:14px;max-width:24ch}
.art-head .lead{font-family:var(--read);font-size:clamp(20px,2.2vw,24px);line-height:1.45;color:var(--ink-soft);margin:18px 0 0;max-width:60ch}
.art-meta{font-family:var(--display);font-size:14px;color:var(--quiet);margin-top:18px;display:flex;gap:18px;flex-wrap:wrap}
.body{max-width:var(--measure);margin:0 auto;padding-inline:var(--gut)}
.body>*{margin-block:0 26px}
.body p{margin:0 0 26px}
.body h2{font-size:clamp(24px,2.6vw,32px);margin:44px 0 18px;padding-top:20px;border-top:1px solid rgba(19,28,26,.3)}
.body h3{font-size:21px;margin:32px 0 12px}
.body em{font-style:italic}
.body a{border-bottom:1px solid rgba(6,130,166,.4)}
.body a:hover{border-color:var(--brick)}
.pullquote{margin:36px 0;padding:0;border-top:2px solid var(--brick);border-bottom:1px solid var(--ink)}
.pullquote p{font-family:var(--display);font-size:clamp(22px,2.6vw,30px);line-height:1.14;font-weight:600;letter-spacing:-.02em;padding:20px 0 22px;margin:0}
.blockquote{margin:32px 0;padding-left:22px;border-left:3px solid var(--air)}
.blockquote p{font-size:21px;line-height:1.5;margin:0}
.blockquote cite{display:block;font-family:var(--display);font-size:14px;font-style:normal;color:var(--quiet);margin-top:10px}
.callout{background:var(--mat);padding:24px 26px;margin:34px 0}
.callout .kicker{margin-bottom:10px;display:block}
.callout p,.callout li{font-size:17px;line-height:1.5;margin:0}
.callout ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.note{font-family:var(--display);font-size:15px;line-height:1.5;color:var(--quiet);border-left:2px solid var(--quiet);padding-left:14px}
/* full-measure interruptions */
.strip{margin-inline:calc(50% - 50vw);width:100vw;background:var(--ink);color:var(--ground);padding-block:clamp(30px,4vw,44px)}
.strip .in{max-width:var(--page);margin:0 auto;padding-inline:var(--gut)}
.strip .kicker{color:var(--pale)}
.strip h2{color:var(--ground);font-size:clamp(22px,2.4vw,28px);margin:10px 0 22px;border:0;padding:0}
.strip--air{background:var(--air)}
.strip--mat{background:var(--mat);color:var(--ink)}
.strip--mat .kicker{color:var(--brick)}
.strip--mat h2{color:var(--ink)}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0}
.timeline li{border-top:2px solid currentColor;padding:12px 20px 0 0;display:flex;flex-direction:column;gap:6px}
.t-when{font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:.02em}
.t-what{font-family:var(--read);font-size:16px;line-height:1.4;opacity:.9}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px 34px}
.statblock{display:flex;flex-direction:column;gap:6px;border-top:2px solid currentColor;padding-top:12px}
.stat-num{font-family:var(--display);font-size:clamp(30px,4vw,46px);font-weight:600;line-height:.9;letter-spacing:-.03em}
.stat-label{font-family:var(--read);font-size:16px;line-height:1.35;opacity:.9}
.tablewrap{overflow-x:auto}
.datatable,.versus{width:100%;border-collapse:collapse;font-family:var(--display);font-size:16px}
.datatable th,.versus th{text-align:left;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet);border-bottom:2px solid var(--ink);padding:0 18px 8px 0;font-weight:600}
.datatable td,.versus td{border-bottom:1px solid rgba(19,28,26,.22);padding:14px 18px 14px 0;vertical-align:top;line-height:1.4}
.versus td+td{border-left:1px solid rgba(19,28,26,.22);padding-left:18px}
.chart figcaption{margin-top:12px}
.chart svg{width:100%;height:auto}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.related{padding-block:clamp(30px,4vw,46px)}
.related-links{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.related-links li{border-top:1px solid var(--ink);padding-top:12px}
.related-links a{font-family:var(--display);font-size:20px;line-height:1.1;font-weight:600;color:var(--ink);display:block}
.related-links a:hover{color:var(--brick)}
.related-links span{display:block;font-size:16px;line-height:1.4;color:var(--ink-soft);margin-top:6px;font-family:var(--read)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:18px}
.further-grid a{border:1px solid var(--ink);padding:16px 18px;font-family:var(--display);font-size:18px;line-height:1.15;font-weight:600;color:var(--ink)}
.further-grid a:hover{background:var(--mat);color:var(--brick)}
.entity-ref{font-family:var(--display);font-size:.95em;white-space:nowrap}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.profile-card{border-top:2px solid var(--ink);padding-top:16px;display:flex;flex-direction:column;gap:8px}
.profile-card .p-photo{width:100%;aspect-ratio:4/5;object-fit:cover}
.profile-card h3{font-size:21px}
.profile-card .p-role{font-family:var(--display);font-size:14px;color:var(--brick);margin:0}
.profile-card p{font-size:16px;line-height:1.45;margin:0}
.profile-card .p-links a{font-family:var(--display);font-size:15px}
.profile-card.no-photo{background:var(--mat);padding:18px;border-top:2px solid var(--brick)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.org-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 14px;align-items:center;border:1px solid rgba(19,28,26,.35);padding:14px 16px}
.org-card:hover{border-color:var(--ink);background:var(--mat)}
.org-logo{grid-row:1 / span 2;width:44px;height:44px;object-fit:contain;background:var(--ink)}
.org-name{font-family:var(--display);font-weight:600;font-size:17px;color:var(--ink)}
.org-host{font-family:var(--display);font-size:13px;color:var(--quiet)}
.cat-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.cat-list li{border-bottom:1px solid rgba(19,28,26,.22);padding:20px 0;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.1fr);gap:14px 28px;align-items:start}
.cat-list .ico{color:var(--air);margin-top:4px}
.cat-list h3{font-size:24px;line-height:1.05}
.cat-list p{font-size:17px;line-height:1.45;color:var(--ink-soft);margin:0}
.map-figure .map-slot{background:var(--mat)}
.map-figure svg{width:100%;height:auto;background:var(--mat)}
.map-figure figcaption{margin-top:14px}

/* ---------- supporters rail ---------- */
.supporters{border-top:2px solid var(--ink);padding-top:18px}
.sup-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.sup-head h2{font-size:21px}
.sup-note{font-family:var(--display);font-size:13px;line-height:1.4;color:var(--quiet);margin:10px 0 20px;max-width:46ch}
.sup-block{display:grid;grid-template-columns:repeat(auto-fit,400px);gap:16px;justify-content:start;margin-bottom:26px}
.sup-block h3{font-family:var(--display);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--brick);grid-column:1/-1;margin-bottom:2px}
.sponsor{display:grid;grid-template-columns:200px minmax(200px,1fr);gap:14px;align-items:center;width:400px;padding:12px;border:1px solid rgba(19,28,26,.3);background:var(--ground);align-content:start}
.sponsor:hover{border-color:var(--ink)}
.sponsor img{grid-column:1;width:200px;height:56px;background:var(--ink);object-fit:contain;padding:8px;max-height:56px}
.sponsor .sponsor-name{font-family:var(--display);font-size:16px;font-weight:600;color:var(--ink);line-height:1.2}
.sponsor .sponsor-blurb{display:block;font-family:var(--display);font-size:13px;line-height:1.4;color:var(--quiet);margin-top:4px}
.sponsor--stack{grid-template-columns:1fr;gap:12px}
.sponsor--stack img{width:100%;height:72px;max-height:72px}
.sponsor--quiet{grid-template-columns:200px minmax(140px,1fr)}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:var(--dim);margin-top:0}
.foot .wrap{padding-block:30px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-family:var(--display);font-size:14px}
.foot a{color:var(--dim)}
.foot a:hover{color:var(--ground)}
.foot nav{display:flex;gap:22px;flex-wrap:wrap}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .feedband .wrap{grid-template-columns:1fr}
  .sup-block{grid-template-columns:repeat(auto-fit,minmax(280px,400px))}
  .sponsor{width:100%;max-width:400px}
}
@media (max-width:900px){
  body{font-size:18px}
  .mast-in{grid-template-columns:1fr;gap:22px}
  .mast-index{grid-template-columns:1fr;gap:0;display:flex;overflow-x:auto;gap:22px;padding-bottom:6px}
  .mi-gloss{display:none}
  .mi-lead,.mi-col2,.mi-more{grid-column:auto;grid-row:auto}
  .mi-col2{display:flex;gap:22px}
  .mi-small{margin-bottom:0}
  .mi-lead .mi-name{font-size:19px}
  .mi-more{border:0;padding:0;white-space:nowrap}
  .duo,.split,.mapband .wrap{grid-template-columns:1fr}
  .split-txt{padding:32px var(--gut)}
  .split-img{min-height:320px}
  .lead-plate{margin-top:-60px}
  .lead-plate>div{padding:22px 22px 20px}
  .cat-list li{grid-template-columns:auto 1fr}
  .cat-list p{grid-column:2}
  .fig--inset{float:none;width:auto;margin:0 0 26px}
  .body{max-width:none}
  .timeline li{padding-right:14px}
}
@media (max-width:560px){
  .sponsor{grid-template-columns:1fr}
  .sponsor img{width:100%}
  .lead-plate{margin-top:0;padding-inline:0}
  .lead-plate>div{max-width:none}
  .foot .wrap{flex-direction:column;gap:14px}
}
@media print{ .mast-index,.supporters,.foot nav{display:none} }

/* --- additions --- */
.cap{font-family:var(--display);font-size:17px;line-height:1.35;font-weight:500;color:var(--ink);display:block}
.credit{font-family:var(--display);font-size:12px;line-height:1.4;color:var(--quiet);display:block;margin-top:7px}
.deck{font-family:var(--display);font-weight:600;font-size:clamp(19px,2vw,23px);line-height:1.15;color:var(--brick);max-width:36ch;margin:16px 0 0}
.duo h3 a,.feed-lead h3 a,.feed-list h4 a,.cat-list h3 a,.sec-grid h3 a,.lead-title a,.sup-head h2 a{color:var(--ink)}
.duo h3 a:hover,.feed-lead h3 a:hover,.feed-list h4 a:hover,.cat-list h3 a:hover,.sec-grid h3 a:hover,.lead-title a:hover,.sup-head h2 a:hover{color:var(--brick)}
.sec-grid h3 a,.cat-list h3 a{display:flex;align-items:center;gap:9px}
.body>.fig--inset+p{clear:none}
.body h2:first-child{border-top:0;padding-top:0;margin-top:0}
.art-head .where .ico{color:var(--brick)}
.p-attr{font-family:var(--display);font-size:12px;color:var(--quiet);margin-top:4px!important}
.org-card.no-logo{grid-template-columns:1fr}
.chart{margin:0}
.chart.donut svg{max-width:260px}
.gallery figure img{aspect-ratio:3/2;object-fit:cover}
.gallery .cap{font-size:15px}
/* sponsor slot: img / name / blurb as direct children */
.sponsor{display:grid;grid-template-columns:200px minmax(200px,1fr);grid-template-rows:auto auto;gap:4px 14px;align-items:center;align-content:center;width:400px;padding:12px;border:1px solid rgba(19,28,26,.3);background:var(--ground)}
.sponsor img{grid-column:1;grid-row:1 / span 2;width:200px;height:56px;max-height:56px;background:var(--ink);object-fit:contain;padding:8px}
.sponsor .sponsor-name{grid-column:2;grid-row:1;align-self:end;font-family:var(--display);font-size:16px;font-weight:600;color:var(--ink);line-height:1.2}
.sponsor .sponsor-blurb{grid-column:2;grid-row:2;align-self:start;display:block;font-family:var(--display);font-size:13px;line-height:1.4;color:var(--quiet);margin-top:2px}
.sponsor--quiet .sponsor-name{grid-row:1 / span 2;align-self:center}
.sponsor--stack{grid-template-columns:1fr;grid-template-rows:auto auto auto}
.sponsor--stack img{grid-column:1;grid-row:1;width:100%;height:72px;max-height:72px}
.sponsor--stack .sponsor-name{grid-column:1;grid-row:2;align-self:start}
.sponsor--stack .sponsor-blurb{grid-column:1;grid-row:3}
@media (max-width:560px){
 .sponsor{grid-template-columns:1fr;grid-template-rows:auto auto auto}
 .sponsor img{grid-column:1;grid-row:1;width:100%}
 .sponsor .sponsor-name{grid-column:1;grid-row:2;align-self:start}
 .sponsor .sponsor-blurb{grid-column:1;grid-row:3}
 .sponsor--quiet .sponsor-name{grid-row:2}
}

/* --- sponsor geometry: one identical tile, copy gets >=200px --- */
.sup-block{grid-template-columns:repeat(auto-fit,440px)}
.sponsor{width:440px;grid-template-columns:200px minmax(200px,1fr);gap:4px 16px;padding:14px}
.sponsor img{width:200px;height:52px;max-height:52px}
.feedband .wrap{grid-template-columns:minmax(0,1fr) 480px}
.sec-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px 26px}
@media (max-width:1180px){
 .feedband .wrap{grid-template-columns:1fr}
 .sup-block{grid-template-columns:repeat(auto-fit,minmax(300px,440px))}
 .sponsor{width:100%;max-width:440px}
}
@media (max-width:560px){.sponsor{grid-template-columns:1fr}.sponsor img{width:100%}}

.statement p{max-width:34ch}

/* --- article head shares the reading axis --- */
.art-head{max-width:1000px}
.art-head h1{max-width:22ch}
.fig--frame>.frame{display:block}
.fig--mat img{width:100%}
.body .article-figure{margin-block:34px}
.body .strip{margin-block:38px}
.timeline li{padding-bottom:14px}
@media (max-width:900px){.art-head{max-width:none}}

/* --- map gets the full band width so its drawn units read --- */
.mapband .wrap{grid-template-columns:1fr;gap:24px}
.mapband .wrap>div{max-width:74ch}
.map-figure svg{width:100%;min-height:300px}


/* ================= MASTHEAD (single source of truth) ================= */
.mast{border-bottom:2px solid var(--ink)}
.mast-in{display:block;max-width:var(--page);margin:0 auto;padding:26px var(--gut) 18px}
.mast-id{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.mast-id .rule-stop{display:none}
.mast-id>div{display:flex;align-items:center;gap:24px;flex-wrap:wrap;flex:1 1 auto}
.wordmark{font-size:clamp(38px,4.6vw,58px);line-height:.86;letter-spacing:-.035em}
.wordmark span{display:inline}
.wordmark span+span::before{content:" "}
.tagline{margin:0;max-width:30ch;font-size:16px;line-height:1.32;color:var(--ink-soft);border-left:1px solid rgba(19,28,26,.35);padding-left:20px}
.mast-index{display:grid;grid-template-columns:1.45fr repeat(4,minmax(0,1fr)) auto;gap:0 24px;align-items:start;margin-top:20px;border-top:1px solid var(--ink);padding-top:14px}
.mi-col2{display:contents}
.mi-lead,.mi-small{display:block;max-width:none;margin:0}
.mi-no{display:block;font-size:11px;letter-spacing:.2em;color:var(--air)}
.mi-lead .mi-name{font-size:24px;line-height:1.05}
.mi-small .mi-name{font-size:18px;line-height:1.08}
.mi-gloss{display:block;font-size:14px;line-height:1.35;margin-top:4px}
.mi-more{grid-column:6;border:0;padding:0;align-self:start;display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.15;max-width:130px;margin-top:14px}
@media (max-width:1024px){
 .mast-in{padding-bottom:14px}
 .tagline{border-left:0;padding-left:0;flex-basis:100%;max-width:52ch}
 .mast-index{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:26px;align-items:baseline}
 .mi-col2{display:flex;gap:26px;align-items:baseline}
 .mi-gloss{display:none}
 .mi-lead .mi-name,.mi-small .mi-name{font-size:18px;white-space:nowrap}
 .mi-more{margin-top:0;max-width:none;white-space:nowrap}
}

/* ================= statement band: line + the figures it refers to ================= */
.statement{padding-block:clamp(36px,4.6vw,56px)}
.statement-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,4vw,60px);align-items:start}
.statement p{font-size:clamp(22px,2.5vw,30px);line-height:1.22;max-width:24ch;margin:12px 0 0}
.statement .sig{font-family:var(--display);font-size:16px;line-height:1.45;color:var(--quiet);max-width:46ch;margin-top:18px}
.statement .statrow{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:22px 30px}
.statement .statblock{border-top:2px solid var(--brick)}
.statement .stat-num{font-size:clamp(28px,3.4vw,42px)}
/* ================= map band ================= */
.mapband{background:var(--ink);color:var(--ground);border-bottom:0}
.mapband .wrap{display:block;padding-block:clamp(40px,5vw,60px)}
.mapband-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:end;margin-bottom:26px}
.mapband-head h2{color:var(--ground);font-size:clamp(26px,3.2vw,40px);margin-top:10px}
.mapband-head p{font-size:17px;line-height:1.55;color:var(--dim);margin:0;max-width:62ch}
.kicker--pale{color:var(--pale)}
.mapband .map-figure svg{background:#0C1413;border:1px solid rgba(237,240,239,.18);min-height:0;aspect-ratio:900/362}
.mapband .map-figure figcaption{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-top:14px}
.mapband .cap{color:var(--ground);max-width:70ch}
.mapband .credit{color:var(--dim);margin-top:0}
.map-legend{list-style:none;margin:30px 0 0;padding:24px 0 0;border-top:1px solid rgba(237,240,239,.3);display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px 34px}
.map-legend li{display:grid;grid-template-columns:auto 1fr;gap:12px}
.map-legend .lg-no{font-family:var(--display);font-size:12px;letter-spacing:.16em;color:var(--brick);padding-top:4px}
.map-legend h3{font-size:19px;line-height:1.1}
.map-legend h3 a{color:var(--ground)}
.map-legend h3 a:hover{color:var(--pale)}
.map-legend p{font-size:15px;line-height:1.45;color:var(--dim);margin:6px 0 0}
@media (max-width:900px){
 .statement-grid,.mapband-head{grid-template-columns:1fr}
 .statement p{max-width:none}
}

/* ================= feed full width, supporters as their own band ================= */
.feedband .wrap{display:block;padding-block:clamp(34px,4vw,52px)}
.feed-lead{max-width:62ch}
.feed-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px 44px;margin-top:28px}
.feed-list li{border-top:1px solid rgba(19,28,26,.22)}
.supporters-band{background:var(--mat)}
.supporters-band .wrap{padding-block:34px 40px}
.supporters{border-top:0;padding-top:0}
.sup-head h2{font-size:22px}
.sup-note{max-width:58ch;margin-bottom:22px}
.sup-block{display:grid;grid-template-columns:repeat(auto-fit,260px);gap:18px;justify-content:start;margin-bottom:24px}
.sup-block h3{margin-bottom:4px}
/* one constant tile, one constant logo box, mark stacked above the copy */
.sponsor,.sponsor--quiet{width:260px;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:8px;padding:12px;border:1px solid rgba(19,28,26,.35);background:var(--ground);align-content:start}
.sponsor img{grid-column:1;grid-row:1;width:230px;height:52px;max-height:52px;object-fit:contain;background:var(--ink);padding:8px}
.sponsor .sponsor-name{grid-column:1;grid-row:2;align-self:start;font-size:15px}
.sponsor .sponsor-blurb{grid-column:1;grid-row:3;margin-top:0}
.sponsor--quiet .sponsor-name{grid-row:2;align-self:start}
@media (max-width:620px){
 .sup-block{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
 .sponsor,.sponsor--quiet{width:100%}
 .sponsor img{width:100%}
}

/* register link lives in the identity row, not the index */
.mast-id .mi-more{margin-left:auto;align-self:center;border-left:1px solid rgba(19,28,26,.35);padding:2px 0 2px 20px;max-width:150px;font-size:14px;line-height:1.2;margin-top:0;display:flex;align-items:center;gap:10px}
@media (min-width:1025px){.mast-index{grid-template-columns:1.45fr repeat(4,minmax(0,1fr))}}
@media (max-width:1024px){.mast-id .mi-more{margin-left:0;border-left:0;padding-left:0;flex-basis:100%;max-width:none}}

/* reading-now band: lead left, the four seconds right — no dead column */
.feedband .wrap>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0 clamp(30px,4vw,56px);align-items:start}
.feedband .kicker{grid-column:1 / -1;margin-bottom:14px}
.feed-lead{grid-column:1;max-width:none;margin-top:0}
.feed-lead h3{font-size:clamp(26px,3vw,38px)}
.feed-lead p{font-size:19px;max-width:44ch}
.feed-list{grid-column:2;display:flex;flex-direction:column;gap:16px;margin-top:0}
.feed-list li{padding-top:12px}
@media (max-width:900px){
 .feedband .wrap>div{grid-template-columns:1fr}
 .feed-lead,.feed-list{grid-column:1}
 .feed-list{margin-top:24px}
}

/* ================= article: one centred axis ================= */
:root{--acol:720px}
.art-head,.body,.related{max-width:calc(var(--acol) + 2*var(--gut));margin-inline:auto;padding-inline:var(--gut);box-sizing:content-box}
.art-head{max-width:calc(var(--acol) + 2*var(--gut));padding-block:clamp(30px,4vw,50px) clamp(18px,2.2vw,26px)}
.art-head h1{max-width:20ch;font-size:clamp(36px,4.6vw,58px)}
.art-head .lead{max-width:52ch}
.body{max-width:calc(var(--acol) + 2*var(--gut));padding-top:38px}
.related{padding-block:clamp(30px,4vw,44px)}
.fig--hero{margin-bottom:0}
.figpair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.figpair .cap{font-size:15px;line-height:1.3}
.figpair figcaption{margin-top:12px;padding-top:10px}
.body>.figpair{margin-block:34px}
@media (max-width:760px){
 .figpair{grid-template-columns:1fr;gap:26px}
 .art-head h1{max-width:none}
}

/* narrow reading axis applies to article pages only */
.wrap.art-head,.wrap.related{max-width:var(--page)}
.wrap.art-head h1{max-width:24ch}

/* --- header: even index items, legible marks, tighter band --- */
.ico{stroke-width:2}
.mi-lead .ico,.emblem{stroke-width:1.9}
.mast-in{padding-top:22px;padding-bottom:14px}
.mast-id .emblem{width:72px;height:72px}
.mast-index{align-items:stretch;padding-top:12px;margin-top:16px}
.mi-lead,.mi-small{display:flex;flex-direction:column}
.mi-gloss{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em;margin-top:5px}
@media (max-width:1024px){.mi-gloss{min-height:0}}

/* ================= mobile: fine print up, tap targets out ================= */
@media (max-width:760px){
 .credit,.sponsor .sponsor-blurb,.sup-note,.figpair .cap{font-size:14px}
 .art-meta,.foot .wrap,.mi-gloss{font-size:15px}
 .kicker{font-size:13px}
 .note,.profile-card .p-links a,.org-host{font-size:15px}
 .navline{gap:10px 18px}
 .navline a{min-height:44px;padding-block:10px}
 .foot nav{gap:4px 20px}
 .foot nav a{display:inline-block;padding-block:9px}
 .cat-list h3 a,.related-links a,.feed-list h4 a,.sec-grid h3 a,.map-legend h3 a,.reg-list h3 a,.further-grid a,.mi-lead,.mi-small,.mi-more{padding-block:6px}
 .further-grid a{padding:14px 16px}
 .datatable td,.versus td{padding-block:12px}
}

@media (max-width:760px){
 figcaption .credit,.mapband .credit,.figpair .credit,.lead-cap .credit,.split-img .credit,.profile-card .p-attr{font-size:14px;line-height:1.45}
}

@media (max-width:1024px){.mast-id .mi-more{justify-content:flex-start;flex-basis:auto;width:auto}}

/* --- reading-now: the lead column carries a figure, so the columns end together --- */
.feed-lead-fig{margin-top:22px}
.feed-lead-fig .cap{font-size:16px}
/* --- five sections, one row --- */
@media (min-width:900px){.sec-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* --- narrow screens: glosses drop, index is one scrolling line of labels --- */
@media (max-width:1024px){
 .mi-gloss{display:none!important}
 .mast-index{align-items:baseline}
 .mi-lead,.mi-small{flex-direction:row;align-items:baseline;gap:8px}
}

.feedband .wrap>div{align-items:stretch}
.feed-lead-fig img{width:100%;aspect-ratio:16/10;object-fit:cover}
.feed-list{justify-content:space-between}
@media (max-width:900px){.feed-list{justify-content:flex-start}}

/* index: five items at one size */
@media (min-width:1025px){
 .mast-index{grid-template-columns:repeat(5,minmax(0,1fr)) auto}
 .mi-lead .mi-name{font-size:18px;line-height:1.08}
 .mi-lead .ico{width:20px;height:15px}
 .mi-lead,.mi-small{max-width:none}
}

/* index: large marks, no gloss lines */
.mi-gloss{display:none!important}
.mast-index .ico,.mi-lead .ico{width:36px;height:27px;stroke-width:1.8}
.mi-name{gap:12px}
@media (min-width:1025px){
 .mast-index{align-items:center;padding-top:14px}
 .mi-lead,.mi-small{flex-direction:column;gap:6px}
 .mi-lead .mi-name,.mi-small .mi-name{font-size:19px}
}

/* 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}

/* 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-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}

/* sp-text-contrast: sponsor copy measured against its OWN ground as a WCAG contrast RATIO, not as a
   luminance subtraction. The subtraction passed capitanalatriste's blurbs at a 75-point gap
   while they sat at 2.8:1 and could not be read. Bar is 4.5:1 for body copy, 3:1 for large or
   bold; opacity is folded in, because it compounds down the tree and computed colour ignores
   it. The lift keeps Design's hue and saturation and moves lightness only, by the smallest
   step that clears the bar, so a warm blurb on near-black stays warm. Colour only — size,
   weight, family and spacing are exactly as delivered. */
.sponsor-blurb.sponsor-blurb{color:rgb(99,110,108)!important;opacity:1!important}

/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1724px at 390, 17% of the whole page. Two columns bring it to
   972px (44% shorter). Checked before writing: no new overflow, smallest mark still
   140px wide, longest blurb 4 lines, tile heights 92-175px.
   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 (.sup-block), 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){
  .sup-block{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:18px!important}
    .sup-block > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sup-block > * *{min-width:0!important;max-width:100%}
    .sup-block img,.sup-block svg{max-width:100%;height:auto}
}

/* op-blurb-rows: money blurbs ran to 4 rows at 390, 586px of tier across
   6 tiles. Operator: blurbs should show "2-3 rows max" on mobile —
   a blurb that long eats the screen and, in a two-column grid, rewraps into more height than
   the columns save. Held to three rows at phone width; the copy stays in the markup and
   desktop is untouched. Only the tier(s) measured past three rows are clamped. */
@media (max-width:640px){
  .sup-block .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;max-height:63px!important;min-height:0!important;overflow:hidden!important}
}
/* op-heading-levels */
.cat-list h2:where(.rt-h3) a{color: var(--ink);}
h2:where(.rt-h3){font-family: var(--display); font-weight: 600; letter-spacing: -0.02em; line-height: 1.02; margin: 0px;}
.reg-list h2:where(.rt-h3){font-size: 22px; color: var(--ground);}
.reg-list h2:where(.rt-h3) a{color: var(--ground);}
.reg-list h2:where(.rt-h3) a:hover{color: var(--mat);}
.sec-grid h2:where(.rt-h3){font-size: 21px; display: flex; align-items: center; gap: 9px;}
.feed-lead h2:where(.rt-h3){font-size: clamp(24px, 2.8vw, 34px); line-height: 1.04;}
.cat-list h2:where(.rt-h3){font-size: 24px; line-height: 1.05;}
.sup-block h2:where(.rt-h3){font-family: var(--display); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brick); grid-column: 1 / -1; margin-bottom: 2px;}
.duo h2:where(.rt-h3) a, .feed-lead h2:where(.rt-h3) a, .sec-grid h2:where(.rt-h3) a{color: var(--ink);}
.cat-list h2:where(.rt-h3) a:hover{color: var(--brick);}
.duo h2:where(.rt-h3) a:hover, .feed-lead h2:where(.rt-h3) a:hover, .sec-grid h2:where(.rt-h3) a:hover{color: var(--brick);}
.cat-list h2:where(.rt-h3) a{display: flex; align-items: center; gap: 9px;}
.sec-grid h2:where(.rt-h3) a{display: flex; align-items: center; gap: 9px;}
.map-legend h2:where(.rt-h3){font-size: 19px; line-height: 1.1;}
.map-legend h2:where(.rt-h3) a{color: var(--ground);}
.map-legend h2:where(.rt-h3) a:hover{color: var(--pale);}
.sup-block h2:where(.rt-h3){margin-bottom: 4px;}
.feed-lead h2:where(.rt-h3){font-size: clamp(26px, 3vw, 38px);}
@media (max-width: 760px){.cat-list h2:where(.rt-h3) a{padding-block: 6px;}}
@media (max-width: 760px){.sec-grid h2:where(.rt-h3) a, .map-legend h2:where(.rt-h3) a, .reg-list h2:where(.rt-h3) a{padding-block: 6px;}}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article.body > figure.article-figure.fig--bleed > img,
  div.mat-cell > figure.article-figure.fig--mat > img,
  div.wrap > figure.article-figure.fig--mat > img,
  figure.article-figure.feed-lead-fig.fig--frame > span.frame > img,
  figure.article-figure.fig--frame > span.frame > img,
  main > figure.article-figure.fig--bleed.fig--hero > img,
  main > section.lead-band > img,
  section.band.split > figure.split-img > img){height:auto}
/* op-img-dims:end */
@media (min-width:660px) and (max-width:1199px){.sup-block.sup-block:has(> [data-partner]){grid-template-columns:repeat(auto-fill,minmax(min(260px,calc(50% - 9px)),1fr))!important;justify-content:stretch!important}.sup-block.sup-block > [data-partner]{width:auto!important;max-width:none!important}}
