/* solveclimate.com — "Every Doubling"
   PALETTE (5 members, named jobs)
   --ground  #0E1315  page ground
   --ink     #F6F3EC  primary text / inverted panel ground
   --accent  #E9C716  sulphur: measured quantities, data lines, links   [saturated, hue ~50]
   --second  #00A0B8  cyan: the contested, the responsive               [saturated, hue ~190]
   --rule    #2A3235  structure
*/
:root{
  --ground:#0E1315;
  --ink:#F6F3EC;
  --accent:#E9C716;
  --second:#00A0B8;
  --rule:#2A3235;
  --raised:#141B1D;
  --raised-2:#1A2326;
  --grey:#95A0A3;
  --grey-dim:#7C8689;
  --accent-dim:#8A7A22;
  --second-deep:#0C2529;
  --second-hair:#17454D;
  --second-lit:#5FD0E0;
  --display:"DM Serif Display",Georgia,serif;
  --text:Karla,"Helvetica Neue",Arial,sans-serif;
  --measure:672px;
  --gutter:clamp(18px,4vw,40px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--text);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:-0.015em;margin:0}
p{margin:0}
blockquote,figure,figcaption,table{margin:0}
ul,ol{margin:0;padding:0}
svg{display:block}
.ico{width:1.35em;height:1.35em;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ico-lg{width:34px;height:34px;stroke-width:1.5}
.wrap{max-width:1560px;margin:0 auto;padding-inline:var(--gutter)}
.measure{max-width:min(100%,1180px);padding-inline:var(--gutter);margin-inline:auto}
.measure>*{max-width:var(--measure)}
.eyebrow{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;font-weight:700;color:var(--grey-dim);margin:0}
.eyebrow--accent{color:var(--accent)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--accent);color:var(--ground);padding:8px 12px;z-index:9}

/* ── masthead: two levels, both always on screen ───────────────── */
.mast{border-bottom:1px solid var(--rule);background:var(--ground)}
.mast-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 22px;padding-block:20px 14px}
.wordmark{display:flex;align-items:baseline;gap:clamp(10px,1.2vw,16px);color:var(--ink)}
.wordmark:hover{text-decoration:none;color:var(--ink)}
.wordmark svg{width:clamp(26px,2.6vw,40px);height:clamp(26px,2.6vw,40px);stroke:var(--accent);fill:none;stroke-width:4;stroke-linecap:round;transform:translateY(6%)}
.wordmark span{font-family:var(--display);font-size:clamp(27px,3vw,44px);line-height:0.95;letter-spacing:-0.025em;white-space:nowrap}
.strap{color:var(--grey);font-size:14.5px;line-height:1.45;max-width:38ch;margin-left:auto}
.rail{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px clamp(18px,2.4vw,40px);padding-bottom:12px}
.rail a{display:flex;align-items:center;gap:7px;color:var(--grey);font-size:12.5px;letter-spacing:0.09em;text-transform:uppercase;font-weight:600;padding-bottom:9px;position:relative}
.rail a:hover{color:var(--ink);text-decoration:none}
.rail a[aria-current]{color:var(--accent)}
.rail a[aria-current]::after{content:"";position:absolute;left:calc(50% - 1px);bottom:0;width:2px;height:8px;background:var(--accent)}
.strip{display:flex;gap:clamp(16px,2vw,32px);overflow-x:auto;padding-block:11px 13px;border-top:1px solid var(--rule);scrollbar-width:thin}
.strip a{font-size:13.5px;color:var(--grey);white-space:nowrap}
.strip a[aria-current]{color:var(--ink)}
.strip-label{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;font-weight:700;color:var(--grey-dim);white-space:nowrap;padding-top:2px}

/* ── footer ────────────────────────────────────────────────────── */
.foot{margin-top:72px;border-top:2px solid var(--accent);padding-block:26px 44px}
.foot-in{display:flex;flex-wrap:wrap;gap:18px 34px;align-items:flex-end}
.foot-mark{font-family:var(--display);font-size:26px;letter-spacing:-0.02em}
.foot p{color:var(--grey);font-size:14.5px;max-width:44ch}
.foot nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:16px;font-size:14px}

/* ── homepage bands ────────────────────────────────────────────── */
.band{padding-block:clamp(38px,5vw,64px)}
.band--tight{padding-block:clamp(26px,3vw,38px)}
.band--raised{background:var(--raised);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sig-head{display:flex;flex-wrap:wrap;gap:20px 44px;align-items:flex-end;margin-bottom:26px}
.sig-head h1{font-size:clamp(38px,5.4vw,86px);line-height:0.94;max-width:20ch}
.sig-head p{color:var(--grey);font-size:clamp(17px,1.4vw,20px);max-width:34ch;flex:1 1 300px}
.plot{width:100%;height:auto}
.plot-note{color:var(--grey);font-size:14px;margin-top:12px;max-width:56ch}
.lead-link{display:flex;flex-wrap:wrap;gap:18px 34px;align-items:flex-end;margin-top:34px;border-top:1px solid var(--rule);padding-top:22px}
.lead-link h2{font-size:clamp(26px,2.6vw,40px);line-height:1.08;max-width:24ch;flex:1 1 min(420px,100%)}
.lead-link p{color:var(--grey);font-size:16.5px;max-width:40ch;flex:1 1 280px}

.quiet{background:var(--accent);color:var(--ground)}
.quiet .wrap{padding-block:clamp(34px,4.6vw,58px)}
.quiet p{font-family:var(--display);font-size:clamp(24px,3.2vw,50px);line-height:1.12;max-width:26ch}
.quiet cite{display:block;font-family:var(--text);font-style:normal;font-size:14px;letter-spacing:0.09em;text-transform:uppercase;font-weight:700;margin-top:18px;color:#4A3F05}

.edit{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(24px,3vw,46px)}
.edit-side{display:flex;flex-direction:column;gap:26px}
.card{display:flex;flex-direction:column;height:100%;color:var(--ink)}
.card:hover{text-decoration:none;color:var(--ink)}
.card:hover h3{color:var(--accent)}
.card-img{aspect-ratio:16/10;overflow:hidden;background:var(--raised)}
.card-img img{width:100%;height:100%;object-fit:cover}
.card h3{font-size:23px;line-height:1.14;margin-top:13px}
.card--big h3{font-size:clamp(28px,2.8vw,42px);line-height:1.05;margin-top:16px}
.card p{color:var(--grey);font-size:15.5px;line-height:1.5;margin-top:8px}
.card--big p{font-size:17px;max-width:46ch}
.card-meta{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:14px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;color:var(--grey-dim)}

.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(24px,3vw,44px);align-items:start}
.cyan{background:var(--second-deep);border:1px solid var(--second-hair);padding:clamp(22px,2.4vw,32px)}
.cyan h3{color:var(--second-lit);font-size:clamp(24px,2.4vw,34px);line-height:1.1}
.cyan p{color:#A7C3C8;font-size:16.5px;margin-top:12px}
.cyan .card-meta{color:#5C8A91}

.index-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:2px;background:var(--rule);border:1px solid var(--rule)}
.index-cell{background:var(--ground);padding:22px 20px 20px;display:flex;flex-direction:column;height:100%}
.index-cell h3{display:flex;align-items:center;gap:10px;font-size:21px;line-height:1.1}
.index-cell p{color:var(--grey);font-size:14.5px;line-height:1.5;margin-top:9px}
.index-cell .count{margin-top:auto;padding-top:16px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;color:var(--accent)}

/* ── supporters: a directory, not a gallery ────────────────────── */
.supporters{border-top:1px solid var(--rule);padding-top:18px}
.supporters .eyebrow{margin-bottom:4px}
.supporters-note{color:var(--grey-dim);font-size:13.5px;max-width:52ch;margin-bottom:6px}
.sponsor-list{list-style:none;display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:clamp(24px,3vw,44px)}
.sponsor-list li{flex:1 1 264px}
.sponsor-list li.span{flex-basis:100%}
.sponsor-list li{border-bottom:1px solid var(--rule)}
.sponsor{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px;padding-block:13px;color:var(--ink)}
.sponsor:hover{text-decoration:none;color:var(--accent)}
.sponsor-name{font-family:var(--display);font-size:20px;line-height:1.2;flex:0 0 auto;max-width:100%}
.sponsor.feat .sponsor-name{font-size:25px}
.sponsor-blurb{color:var(--grey);font-size:15px;line-height:1.5;flex:1 1 260px;min-width:200px}

/* ── the reading page ──────────────────────────────────────────── */
.post{padding-top:clamp(30px,4vw,52px)}
.post-head{max-width:min(100%,1180px);padding-inline:var(--gutter);margin-inline:auto}
.kicker{display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:16px}
.kicker a{color:inherit}
.post h1{font-size:clamp(34px,4.6vw,72px);line-height:0.98;max-width:26ch}
.lead{font-size:clamp(18px,1.55vw,22px);line-height:1.5;color:var(--grey);margin-top:20px;max-width:44ch}
.prose{max-width:min(100%,1180px);padding-inline:var(--gutter);margin:0 auto}
.prose>p,.prose>ul,.prose>h2,.prose>.note,.prose>.blockquote{max-width:var(--measure)}
.prose>p{font-size:19px;line-height:1.68;margin-top:1.45em;text-wrap:pretty}
.prose>p:first-child{font-size:21px;line-height:1.6;color:#FBF9F4;margin-top:0}
.prose>h2:first-child+p{font-size:21px;line-height:1.6;color:#FBF9F4}
.prose>h2+p{margin-top:0.85em}
.prose>h2{font-size:clamp(25px,2.3vw,34px);line-height:1.12;margin-top:2.5em;padding-top:22px;position:relative}
.prose>h2::before{content:"";position:absolute;top:0;left:0;width:44px;height:2px;background:var(--accent)}
.prose>ul{margin-top:1.2em;padding-left:0;list-style:none}
.prose>ul li{position:relative;padding-left:20px;font-size:18px;line-height:1.6;margin-top:0.5em}
.prose>ul li::before{content:"";position:absolute;left:0;top:0.62em;width:9px;height:1px;background:var(--accent)}
.prose a{border-bottom:1px solid var(--accent-dim)}
.prose a:hover{border-bottom-color:var(--ink)}

/* ── figure system: three treatments, one drawing system ───────── */
.fig{margin:0}
.fig figcaption,figure figcaption{font-size:14.5px;line-height:1.5;color:var(--grey)}
.cap-kicker{display:block;font-family:var(--text);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:6px}
.credit{display:block;font-size:11.5px;letter-spacing:0.06em;color:var(--grey-dim);margin-top:7px}
/* 1 — full-bleed plate, caption hangs off a sulphur rule */
.fig-bleed{margin-block:clamp(28px,3.4vw,46px)}
.fig-bleed img{width:100%;aspect-ratio:16/10;max-height:76vh;object-fit:cover}
.fig-bleed figcaption{max-width:min(100%,672px);border-top:2px solid var(--accent);padding:14px 0 0;
  margin-inline:max(var(--gutter),calc((100% - 1180px) / 2 + var(--gutter))) var(--gutter)}
/* 2 — mat: the photograph sits on a raised card with a hairline */
.fig-mat{margin-block:clamp(26px,3vw,40px);background:var(--raised);padding:12px;border:1px solid var(--rule)}
.fig-mat img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fig-mat figcaption{padding:12px 4px 2px}
/* 3 — inset: narrow, in the column, stepped off a cyan bar */
.fig-inset{margin-block:clamp(24px,3vw,36px);max-width:400px;display:grid;grid-template-columns:3px 1fr;gap:0 16px;align-items:start}
.fig-inset::before{content:"";display:block;background:var(--second);height:100%}
.fig-inset img{width:100%;aspect-ratio:4/3;object-fit:cover}
.fig-inset figcaption{padding-top:11px}
.prose .fig-bleed,.prose .fig-mat,.prose .fig-inset{margin-inline:0}
.prose>figure:not(.fig-wide):not(.fig-inset){max-width:900px}
.prose>.fig-inset{max-width:400px}
.prose>.pullquote{max-width:640px}
.prose>.callout{max-width:760px}


/* ── instruments that break the prose ─────────────────────────── */
.instrument{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--raised);
  padding-block:clamp(24px,3vw,38px);margin-block:clamp(34px,4vw,56px)}
.instrument>.wrap>.eyebrow{margin-bottom:20px}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(198px,100%),1fr));background:transparent;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.statblock{background:var(--raised);padding:18px 18px 20px;display:flex;flex-direction:column;min-height:132px;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.statblock--text{grid-column:1/-1;justify-content:center}
.statblock--text .stat-label{font-size:16px;line-height:1.5;color:var(--ink);margin-top:0}
.stat-num{font-family:var(--display);font-size:clamp(28px,3vw,42px);line-height:1;color:var(--accent);letter-spacing:-0.02em}
.stat-label{font-size:14px;line-height:1.45;color:var(--grey);margin-top:10px}
.timeline{list-style:none;border-top:1px solid var(--rule)}
.timeline li{display:grid;grid-template-columns:minmax(min(120px,100%),200px) 1fr;gap:8px 24px;padding:13px 0;border-bottom:1px solid var(--rule)}
.t-when{font-family:var(--display);font-size:20px;line-height:1.2;color:var(--accent)}
.t-what{font-size:16px;line-height:1.55;color:var(--ink)}
.callout{background:var(--second-deep);border:1px solid var(--second-hair);padding:22px 24px;margin:clamp(28px,3vw,40px) 0}
.callout>.eyebrow{color:var(--second-lit);margin-bottom:12px}
.callout p{font-size:17px;line-height:1.6;color:#B9D2D6}
.callout ul{list-style:none}
.callout li{position:relative;padding-left:20px;font-size:16.5px;line-height:1.55;color:#B9D2D6;margin-top:9px}
.callout li:first-child{margin-top:0}
.callout li::before{content:"";position:absolute;left:0;top:0.66em;width:9px;height:1px;background:var(--second)}
.pullquote{margin-block:clamp(30px,3.6vw,48px);background:var(--ink);color:var(--ground);padding:clamp(22px,2.6vw,34px)}
.pullquote p{font-family:var(--display);font-size:clamp(21px,2.2vw,31px);line-height:1.18;margin:0}
.blockquote{margin-block:clamp(26px,3vw,38px);border-left:3px solid var(--accent);padding:4px 0 4px 22px}
.blockquote p{font-family:var(--display);font-size:clamp(20px,2vw,27px);line-height:1.24}
.blockquote cite{display:block;font-family:var(--text);font-style:normal;font-size:14px;color:var(--grey);margin-top:12px}
.note{font-size:15.5px;line-height:1.55;color:var(--grey);border-top:1px solid var(--rule);padding-top:12px;margin:26px 0}
.note strong{color:var(--ink)}

/* ── tables, cards, refs ───────────────────────────────────────── */
.versus,.datatable{width:100%;border-collapse:collapse;font-size:16px;margin-block:26px;display:block;overflow-x:auto;white-space:normal}
.versus th,.versus td,.datatable th,.datatable td{border-bottom:1px solid var(--rule);padding:11px 14px 11px 0;text-align:left;vertical-align:top}
.versus th,.datatable th{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;color:var(--grey-dim)}
.versus caption,.datatable caption{text-align:left;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;color:var(--accent);padding-bottom:10px}
.versus td:first-child{font-family:var(--display);font-size:18px}
.chart{margin-block:34px;border-top:1px solid var(--rule);padding-top:22px}
.chart svg{width:100%;height:auto;overflow:visible}
.chart figcaption{margin-top:12px}
.article-figure{margin-block:clamp(26px,3vw,40px)}
.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.article-figure figcaption{padding-top:11px;border-top:1px solid var(--rule);margin-top:11px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:3px;margin-block:30px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:16/10;object-fit:cover}
.gallery figcaption{padding-top:9px;font-size:13.5px}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:2px;background:var(--rule);margin-block:28px}
.profile-card{background:var(--raised);padding:20px;display:flex;flex-direction:column;height:100%}
.profile-card .p-photo{width:76px;height:76px;object-fit:cover;margin-bottom:14px}
.profile-card h3{font-size:21px;line-height:1.15}
.profile-card .p-role{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-top:7px}
.profile-card p{font-size:15.5px;line-height:1.55;color:var(--grey);margin-top:10px}
.profile-card .p-links{margin-top:auto;padding-top:14px;font-size:14.5px;color:var(--ink)}
.profile-card .p-attr{font-size:12px;color:var(--grey-dim)}
.profile-card.no-photo{border-left:3px solid var(--accent)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:2px;background:var(--rule);margin-block:26px}
.org-card{background:var(--raised);padding:16px 18px;display:flex;flex-direction:column;gap:4px;color:var(--ink)}
.org-card:hover{text-decoration:none;background:var(--raised-2)}
.org-logo{max-height:34px;width:auto;max-width:100%;object-fit:contain;margin-bottom:8px}
.org-name{font-family:var(--display);font-size:19px;line-height:1.2}
.org-host{font-size:12.5px;letter-spacing:0.08em;color:var(--grey-dim)}
.entity-ref{overflow-wrap:anywhere;border-bottom:1px solid var(--accent-dim)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:2px;background:var(--rule);margin-block:26px}
.further-grid a{background:var(--raised);padding:18px;font-family:var(--display);font-size:19px;line-height:1.18;color:var(--ink);min-height:96px;display:flex;align-items:flex-end}
.further-grid a:hover{text-decoration:none;background:var(--raised-2);color:var(--accent)}

/* ── related + rosters ────────────────────────────────────────── */
.related{margin-top:clamp(40px,5vw,64px)}
.related-links{list-style:none;border-top:2px solid var(--accent)}
.related-links li{border-bottom:1px solid var(--rule)}
.related-links a{display:flex;flex-wrap:wrap;gap:4px 20px;align-items:baseline;padding:16px 0;color:var(--ink)}
.related-links a:hover{text-decoration:none;color:var(--accent)}
.related-links .r-title{font-family:var(--display);font-size:clamp(20px,2vw,26px);line-height:1.15;flex:0 1 auto}
.related-links .r-dek{color:var(--grey);font-size:15px;line-height:1.5;flex:1 1 240px;min-width:220px}
.cat-list{list-style:none;border-top:1px solid var(--rule)}
.cat-list li{border-bottom:1px solid var(--rule)}
.cat-list a{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 0;color:var(--ink)}
.cat-list a:hover{text-decoration:none;color:var(--accent)}
.cat-list .c-title{font-family:var(--display);font-size:clamp(21px,2.2vw,28px);line-height:1.12}
.cat-list .c-dek{color:var(--grey);font-size:15.5px;line-height:1.55;max-width:80ch}
.cat-head{display:flex;flex-wrap:wrap;gap:18px 44px;align-items:flex-end;padding-top:clamp(30px,4vw,50px)}
.cat-head h1{font-size:clamp(34px,4.8vw,76px);line-height:0.96;max-width:22ch}
.cat-head p{color:var(--grey);font-size:clamp(16.5px,1.4vw,19px);max-width:38ch;flex:1 1 280px}
.hub-sec{margin-top:clamp(34px,4vw,54px)}
.hub-sec>h2{display:flex;align-items:center;gap:12px;font-size:clamp(24px,2.4vw,34px);border-bottom:1px solid var(--rule);padding-bottom:12px}
.expander{margin-top:14px}
.expander summary{cursor:pointer;font-size:12.5px;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;color:var(--accent);list-style:none}
.expander summary::-webkit-details-marker{display:none}
.expander summary::after{content:" +"}
.expander[open] summary::after{content:" \2212"}

@media (max-width:900px){
  .edit{grid-template-columns:minmax(0,1fr)}
  .strap{margin-left:0;flex-basis:100%}
  .timeline li{grid-template-columns:minmax(0,1fr)}
  .t-when{font-size:18px}
}
@media (max-width:600px){
  body{font-size:16.5px}
  .prose>p{font-size:18px}
  .lead{font-size:18px}
  .sponsor{padding:13px 0}
  .sponsor-blurb{min-width:0;flex-basis:100%}
  .fig-bleed img{max-height:58vh}
  .statblock{min-height:0}
}
@media print{
  body{background:#fff;color:#111}
  .mast,.foot,.supporters{display:none}
}

/* breakout: wide instruments inside a reading column. Declared last so no
   shorthand margin above can reset the inline values. */
.fig-wide{width:min(1400px,94vw);margin-inline:calc(50% - min(700px,47vw))}
@media print{.fig-wide{width:100%;margin-inline:0}}

/* homepage: the unsolved pair sits on raised ground with a heading; the
   contested panel takes the band below on base ground, so the ground change
   marks the section boundary instead of a third column doing it. */
.band-head{display:flex;flex-wrap:wrap;gap:14px 44px;align-items:flex-end;border-bottom:1px solid var(--rule);padding-bottom:18px}
.band-head h2{display:flex;align-items:center;gap:13px;font-size:clamp(26px,2.8vw,42px);line-height:1.04;max-width:22ch}
.band-head h2 .ico{width:clamp(24px,2.2vw,32px);height:clamp(24px,2.2vw,32px);color:var(--accent);stroke-width:1.5}
.band-head p{color:var(--grey);font-size:clamp(16px,1.35vw,18.5px);line-height:1.55;max-width:40ch;flex:1 1 300px}
.band--raised .card-img{background:var(--raised-2)}
/* the contested section: cyan as ink and hairline, never as a box */
.band-head--cyan{border-bottom-color:var(--second-hair)}
.band-head--cyan h2 .ico{color:var(--second)}
.band-head--cyan h2 a{color:var(--second-lit)}
.band-head--cyan h2 a:hover{color:var(--ink);text-decoration:none}
.fig-plate{margin-top:clamp(22px,2.6vw,34px)}
.fig-plate img{width:100%;aspect-ratio:21/9;object-fit:cover}
.fig-plate figcaption{border-top:2px solid var(--second);margin-top:16px;padding-top:13px;max-width:64ch;
  color:var(--grey);font-size:16px;line-height:1.55}
.fig-plate figcaption a{color:var(--second-lit)}
@media (max-width:700px){.fig-plate img{aspect-ratio:16/10}}

/* supporters read as a directory in columns: a single-name slot does not need
   a 1560px row to itself. The one slot with a blurb spans. */
.sponsor-list li.span .sponsor-name{flex:0 0 auto}
@media (max-width:560px){.sponsor-list li{flex-basis:100%}}

/* wrapped flex, not grid: the final row's names stretch to fill the width,
   so a part-filled row ends the list instead of stranding one cell. */

/* the rail spreads across the masthead; below ~700px it packs left again so
   the labels do not drift apart on two or three wrapped lines */
@media (max-width:1050px){.rail{justify-content:flex-start;gap:6px clamp(18px,2.2vw,26px)}}

@media (max-width:520px){
  .pair,.index-grid,.gallery,.profile-grid,.org-grid,.further-grid,.statrow{grid-template-columns:minmax(0,1fr)}
  .band-head h2{font-size:clamp(23px,7vw,30px)}
  .fig-inset{grid-template-columns:3px 1fr}
  .timeline li{grid-template-columns:minmax(0,1fr)}
  .wordmark span{font-size:26px}
  .rail a{font-size:12px}
}

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

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

/* op-article-width: the article column was capped at 672px (78 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .prose > p, .prose > ul, .prose > h2, .prose > .note, .prose > .blockquote) 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.post div.prose{--measure:min(881px, 100%)!important}
}
@media (min-width:1600px){
  article.post div.prose{--measure:min(clamp(881px, 61.181vw, 1057px), 100%)!important}
  article.post div.prose > :is(p:not([class])){font-size:clamp(19px,1.3194vw,22.8px)!important}
}
/* op-article-width:end */

/* op-article-head: the article header followed the text column (672px) and was left behind when the text went to 881px. Operator: "article header page with title + meta info that are super shrinked". Its containers now follow the text again by the text's own factor. */
@media (min-width:1024px){
  article.post h1{max-width:min(881px, 100%)!important}
  article.post p.lead{max-width:min(753px, 100%)!important}
}
@media (min-width:1600px){
  article.post h1{max-width:min(calc(clamp(881px, 61.181vw, 1057px) + 0px), 100%)!important}
  article.post p.lead{max-width:min(calc(clamp(753px, 52.292vw, 904px) + 0px), 100%)!important}
}
/* op-article-head:end */

/* op-grow-same-size: this tier grows by STRETCHING (flex rows, flex-grow) — one added tile would wrap onto a new row alone and stretch across the grid. Same minimum (264px), same columns at every width, but a short row keeps its siblings' size. Also straightens today's stretched short row — operator: "Same-size fix now" (2026-09-23, /pipeline/_money_grow_review.html). Phones keep their own rules. */
@media (min-width:641px){
  section.wrap.band.band--tight:nth-of-type(7) > div.supporters:nth-of-type(1) > ul.sponsor-list{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(264px,1fr))!important}
}
/* op-grow-same-size:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card > span.card-img > img,
  a.card.card--big > span.card-img > img,
  article.post > figure.fig.fig-bleed > img,
  div.band.band--tight.wrap > figure.fig.fig-mat > img,
  div.prose > figure.fig.fig-mat > img,
  div.wrap > figure.fig.fig-plate > img,
  figure.fig.fig-inset > div > img,
  main > figure.fig.fig-bleed > img){height:auto}
/* op-img-dims:end */
