/* Gems 4 Friends — "Bench Light"
   Palette (5 members, each with a job):
   --paper   ground        #F4EFE6   warm bone, the page
   --ink     ink           #14100E   text, rules, dark type
   --accent  accent        #B4122F   chromium red      (saturated, hue ~350)
   --secondary secondary   #04564A   beryl green       (saturated, hue ~168)
   --stage   stage/panel   #0A0B10   near-black plates, lit-specimen grounds
   Section accents (--sec) are drawn from the same set plus #3B1E78 / #8E8578.
*/

:root{
  --paper:#F4EFE6;
  --ink:#14100E;
  --accent:#B4122F;
  --secondary:#04564A;
  --stage:#0A0B10;
  --muted:#6C6459;
  --quiet:#8E8578;
  --mat:#E7DFD1;
  --line:rgba(20,16,14,.18);
  --line-dk:rgba(244,239,230,.20);
  --sec:var(--accent);

  --wrap:min(1780px,92vw);
  --prose:68ch;
  --break:1100px;
  --gut:clamp(18px,4vw,40px);

  --fs-body:17px;
  --fs-prose:18px;
  --lh-prose:1.68;

  --disp:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
  --text:'Spectral',Georgia,'Times New Roman',serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--text);font-size:var(--fs-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
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(--disp);font-weight:700;letter-spacing:-.03em;line-height:1.02;margin:0}
p{margin:0 0 1.15em}
ul,ol{margin:0 0 1.15em;padding-left:1.2em}
table{border-collapse:collapse;width:100%}
figure{margin:0}
svg{display:block}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

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

/* ---------- masthead ---------- */
.mast{background:var(--stage);color:var(--paper);position:relative;z-index:3}
.mast-inner{width:var(--wrap);margin-inline:auto;padding:20px 0 0}
.mast-row{display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:12px;color:var(--paper);text-decoration:none}
.brand:hover{text-decoration:none;color:var(--paper)}
.wordmark{font-family:var(--disp);font-weight:800;font-size:clamp(30px,3.1vw,54px);line-height:.86;letter-spacing:-.045em}
.wordmark i{font-style:normal;color:var(--accent)}
.colophon{width:32px;height:32px;flex:none;color:var(--accent)}
.mast-tag{margin-left:auto;font-family:var(--disp);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--quiet);display:none}

.nav{margin-top:16px;border-top:1px solid var(--line-dk);border-bottom:1px solid var(--line-dk)}
.nav ul{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.nav li{flex:0 0 auto}
.nav a{display:flex;align-items:center;gap:8px;padding:13px 16px;color:var(--paper);
  font-family:var(--disp);font-weight:700;font-size:13.5px;letter-spacing:.11em;text-transform:uppercase}
.nav a:hover{background:rgba(244,239,230,.08);text-decoration:none;color:var(--paper)}
.nav a .ico{width:18px;height:18px;flex:none;opacity:.85}
.nav a[aria-current="page"]{background:var(--sec);color:#fff}
.nav-toggle,.nav-label{display:none}

@media (max-width:900px){
  .nav-label{display:flex;align-items:center;gap:10px;margin:14px 0;padding:10px 12px;border:1px solid var(--line-dk);
    font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--paper)}
  .nav{max-height:0;overflow:hidden;border:0;margin:0;transition:max-height .2s}
  .nav ul{flex-direction:column}
  .nav a{padding:14px 4px;border-bottom:1px solid var(--line-dk)}
  .nav-toggle:checked ~ .nav{max-height:1200px;border-top:1px solid var(--line-dk);margin-bottom:14px}
}

/* ---------- homepage lead ---------- */
.lead-band{position:relative;background:var(--stage);color:var(--paper);overflow:hidden}
.lead-figure{position:relative}
.lead-figure img{width:100%;height:clamp(460px,74vh,900px);object-fit:cover;object-position:62% 42%;filter:saturate(.94) contrast(1.04)}
.lead-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,11,16,.78) 0%,rgba(10,11,16,.22) 40%,rgba(10,11,16,.90) 100%),linear-gradient(90deg,rgba(10,11,16,.88) 0%,rgba(10,11,16,.35) 52%,rgba(10,11,16,0) 100%)}
.lead-copy{position:absolute;left:0;right:0;bottom:0;padding-bottom:clamp(28px,3.2vw,64px)}
.lead-copy .wrap{display:grid;gap:clamp(18px,2vw,34px)}
.lead-kicker{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:#F0B4BE}
.lead-copy h1{font-size:clamp(30px,4.6vw,86px);line-height:.96;max-width:22ch;text-wrap:balance}
.lead-copy .lead-line{font-size:clamp(17px,1.25vw,24px);line-height:1.5;color:#DCD7CD;max-width:52ch;margin:0}
.lead-credit{font-family:var(--disp);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet);
  width:var(--wrap);margin-inline:auto;padding:10px 0}

/* ---------- bands ---------- */
.band{padding-block:clamp(46px,5vw,116px)}
.band--tight{padding-block:clamp(30px,3vw,58px)}
.band--stage{background:var(--stage);color:var(--paper)}
.band--stage a{color:#F0B4BE}
.band--stage a:hover{color:var(--paper)}
.band--mat{background:var(--mat)}
.band-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(24px,2.6vw,52px)}
.band-head h2{font-size:clamp(24px,2.5vw,44px);max-width:30ch}
.kicker{display:flex;align-items:center;gap:9px;font-family:var(--disp);font-weight:700;font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--sec);margin-bottom:14px}
.kicker .ico{width:17px;height:17px;flex:none}
.more{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  border-bottom:2px solid var(--accent);padding-bottom:4px;white-space:nowrap}
.more:hover{text-decoration:none;border-bottom-color:var(--ink)}

/* editorial one-liner band */
.what{border-top:3px solid var(--ink);border-bottom:1px solid var(--line)}
.what p{font-family:var(--disp);font-weight:500;font-size:clamp(19px,1.9vw,32px);line-height:1.24;letter-spacing:-.02em;margin:0;max-width:44ch}
.what .wrap{display:grid;grid-template-columns:1fr auto;gap:clamp(20px,3vw,60px);align-items:end}
.what .facet{width:clamp(46px,5vw,84px);color:var(--accent)}

/* featured sections, unequal weights */
.featured{display:grid;gap:clamp(22px,2.4vw,46px);grid-template-columns:1fr}
.feature{display:flex;flex-direction:column;color:inherit}
.feature:hover{text-decoration:none}
.feature img{width:100%;object-fit:cover}
.feature h3{margin:14px 0 10px;letter-spacing:-.028em}
.feature p{color:var(--muted);margin:0}
.feature .sec-rule{height:8px;background:var(--sec)}
.f-lg img{aspect-ratio:16/10}
.f-lg h3{font-size:clamp(26px,2.7vw,48px);line-height:1}
.f-lg p{font-size:clamp(17px,1.1vw,20px);max-width:56ch}
.f-md img{aspect-ratio:4/3}
.f-md h3{font-size:clamp(21px,1.7vw,30px);line-height:1.06}
.f-sm img{aspect-ratio:16/9}
.f-sm h3{font-size:19px;line-height:1.1}
.f-sm p,.f-md p{font-size:16.5px}
@media (min-width:900px){
  .featured{grid-template-columns:1.55fr 1fr .78fr;align-items:start}
}

/* flagship */
.flagship{background:var(--stage);color:var(--paper)}
.flagship .fl-img img{width:100%;height:clamp(320px,52vh,620px);object-fit:cover}
.flagship .fl-copy{width:var(--wrap);margin-inline:auto;padding-block:clamp(26px,3vw,60px);
  display:grid;gap:clamp(20px,3vw,70px);grid-template-columns:1fr}
.flagship h2{font-size:clamp(28px,3.6vw,68px);line-height:.98;max-width:26ch}
.flagship .deck{font-size:clamp(17px,1.2vw,23px);line-height:1.52;color:#C9C6BF;max-width:60ch;margin:0}
@media (min-width:1000px){.flagship .fl-copy{grid-template-columns:1.4fr 1fr;align-items:end}}

/* specimen strip (The Drawer) */
.strip{display:grid;gap:clamp(18px,2vw,38px);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.spec{color:inherit;display:flex;flex-direction:column;background:var(--stage);color:var(--paper)}
.spec:hover{text-decoration:none}
.spec img{aspect-ratio:1/1;object-fit:cover;width:100%}
.spec-body{padding:16px 16px 20px;display:flex;flex-direction:column;flex:1}
.spec-no{display:flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:700;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--quiet);margin-bottom:10px}
.spec-no .facet{width:16px;height:16px;color:var(--accent)}
.spec h3{font-size:18px;line-height:1.12;min-height:2.3em}
.spec p{font-size:15.5px;line-height:1.5;color:#A8A49C;margin:10px 0 0}

/* mines band: one large leading two small */
.mines-grid{display:grid;gap:clamp(20px,2.2vw,40px);grid-template-columns:1fr}
.mine{color:inherit;display:flex;flex-direction:column}
.mine:hover{text-decoration:none}
.mine img{width:100%;object-fit:cover}
.mine-lg img{aspect-ratio:16/10}
.mine-lg h3{font-size:clamp(24px,2.4vw,42px);line-height:1.02;margin:16px 0 10px}
.mine-sm img{aspect-ratio:16/9}
.mine-sm h3{font-size:19.5px;line-height:1.1;margin:14px 0 8px}
.mine p{color:var(--muted);font-size:16.5px;margin:0}
.mine-side{display:grid;gap:clamp(20px,2.2vw,40px)}
@media (min-width:960px){.mines-grid{grid-template-columns:1.5fr 1fr}}

/* ---------- supporters ---------- */
.supporters{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.sup-tier{margin-bottom:clamp(26px,2.6vw,48px)}
.sup-tier:last-child{margin-bottom:0}
.sup-groups{display:flex;flex-wrap:wrap;gap:clamp(18px,2vw,36px)}
.sup-group{flex:0 0 auto}
.sup-sublabel{font-family:var(--disp);font-weight:700;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px}
.sponsor{display:block;width:300px;max-width:100%;background:var(--stage);color:var(--paper);
  padding:16px 18px;text-decoration:none}
.sponsor:hover{text-decoration:none;color:var(--paper);outline:2px solid var(--accent)}
.sponsor-name{display:block;font-family:var(--disp);font-weight:700;font-size:19px;line-height:1.15;letter-spacing:-.01em}
.sponsor-blurb{display:block;margin-top:8px;font-size:15px;line-height:1.45;color:#A8A49C;min-width:200px}
.sponsor.feat{border-left:5px solid var(--accent)}
.sup-roll{display:grid;grid-template-columns:repeat(auto-fit,300px);gap:clamp(14px,1.4vw,24px)}
.sup-roll .sponsor{width:300px;padding:14px 18px}
@media (max-width:700px){
  .sponsor,.sup-roll .sponsor{width:100%}
  .sup-roll{grid-template-columns:1fr}
  .sup-group{flex:1 1 100%}
}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:var(--quiet);padding-block:clamp(40px,4vw,80px)}
.foot .wrap{display:grid;gap:clamp(26px,3vw,70px);grid-template-columns:1fr}
.foot .wordmark{font-size:clamp(26px,2.4vw,44px);color:var(--paper)}
.foot p{margin:16px 0 0;font-size:16px;max-width:46ch;line-height:1.55}
.foot nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px 22px}
.foot nav a{color:var(--quiet);font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  display:flex;align-items:center;gap:8px}
.foot nav a .ico{width:16px;height:16px;flex:none}
@media (min-width:900px){.foot .wrap{grid-template-columns:1.15fr 1fr}}

/* ---------- section (category) pages ---------- */
.sec-open{background:var(--stage);color:var(--paper)}
.sec-open img{width:100%;height:clamp(280px,46vh,560px);object-fit:cover}
.sec-open-copy{width:var(--wrap);margin-inline:auto;padding-block:clamp(26px,3vw,56px);
  display:grid;gap:clamp(20px,3vw,70px);grid-template-columns:1fr;align-items:end}
.sec-open h1{font-size:clamp(38px,6vw,120px);line-height:.86;letter-spacing:-.045em}
.sec-open .blurb{font-size:clamp(17px,1.25vw,24px);line-height:1.5;color:#C9C6BF;max-width:50ch;margin:0}
.sec-facet{width:clamp(90px,11vw,190px);color:var(--sec);opacity:.9}
@media (min-width:1000px){.sec-open-copy{grid-template-columns:1fr 1fr}}

.cards{display:grid;gap:clamp(30px,3vw,64px) clamp(22px,2.4vw,44px);grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}
.card{display:flex;flex-direction:column;height:100%;color:inherit;background:var(--paper);border:1px solid var(--line);padding:14px}
.card:hover{text-decoration:none;border-color:var(--sec)}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card h3{margin:16px 0 10px;font-size:20.5px;line-height:1.14;min-height:2.3em}
.card p{font-size:16px;line-height:1.5;color:var(--muted);margin:0}
.card .card-meta{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:9px;
  font-family:var(--disp);font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--sec)}
.card .card-meta .ico{width:15px;height:15px;flex:none}
.card--lead{grid-column:1/-1;padding:0;border:0}
.card--lead .card-inner{display:grid;gap:clamp(22px,2.6vw,56px);grid-template-columns:1fr;align-items:center}
.card--lead img{aspect-ratio:16/10}
.card--lead h3{font-size:clamp(24px,2.8vw,50px);line-height:1;min-height:0}
.card--lead p{font-size:clamp(17px,1.1vw,21px);max-width:58ch}
@media (min-width:900px){.card--lead .card-inner{grid-template-columns:1.35fr 1fr}}

.cat-list{list-style:none;padding:0;margin:0;display:grid;gap:18px}
.cat-list a{font-family:var(--disp);font-weight:500;font-size:19px;letter-spacing:-.015em}
.cat-list .cl-note{display:block;font-family:var(--text);font-size:15.5px;color:var(--muted);margin-top:4px}

/* ---------- article ---------- */
.art-head{background:var(--stage);color:var(--paper);padding-block:clamp(34px,3.6vw,76px)}
.art-head .wrap{display:grid;gap:clamp(18px,2.4vw,42px)}
.art-head h1{font-size:clamp(30px,4.4vw,84px);line-height:.94;max-width:26ch;text-wrap:balance}
.art-where{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:700;font-size:12.5px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--sec)}
.art-where .ico{width:18px;height:18px;flex:none}
.art-where a{color:inherit}
.art-standfirst{font-size:clamp(18px,1.4vw,28px);line-height:1.44;color:#DCD7CD;max-width:56ch;margin:0}
.art-meta{display:flex;flex-wrap:wrap;gap:10px 26px;font-family:var(--disp);font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--quiet);border-top:1px solid var(--line-dk);padding-top:16px}

.article{padding-bottom:clamp(50px,5vw,110px)}
.article .prose{font-size:var(--fs-prose);line-height:var(--lh-prose)}
.article .prose p{text-wrap:pretty}
.article h2{max-width:34ch;margin:clamp(34px,3.4vw,64px) auto clamp(14px,1.4vw,24px);font-size:clamp(23px,2.1vw,38px);line-height:1.06}
.article h2::before{content:"";display:block;width:44px;height:3px;background:var(--sec);margin-bottom:18px}
.article .prose h2{padding-inline:var(--gut)}
.lead{font-family:var(--disp);font-weight:500;font-size:clamp(19px,1.5vw,27px);line-height:1.34;letter-spacing:-.015em}

/* figure system — three treatments, one drawing language */
.article-figure{margin-block:clamp(28px,3vw,56px)}
.article-figure img{width:100%}
.article-figure figcaption{display:flex;gap:clamp(14px,2vw,40px);align-items:baseline;flex-wrap:wrap;
  margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.article-figure .cap{font-family:var(--disp);font-size:16px;line-height:1.5;flex:1 1 320px;min-width:0;margin:0}
.article-figure .cred{font-family:var(--disp);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--quiet);flex:0 1 auto;margin:0;text-align:right}
/* 1 · matted plate, breakout width */
.fig-mat{max-width:var(--break);margin-inline:auto;padding-inline:var(--gut)}
.fig-mat .mat{background:var(--mat);border:1px solid var(--line);padding:clamp(14px,1.5vw,28px)}
.fig-mat img{aspect-ratio:16/10;object-fit:cover}
/* 2 · full-bleed band, caption in the wrap under it */
.fig-bleed{width:100%;padding:0}
.fig-bleed img{height:clamp(280px,58vh,700px);object-fit:cover}
.fig-bleed figcaption{width:var(--wrap);margin-inline:auto;border-top:0;border-bottom:1px solid var(--line)}
/* 3 · inset in the column, prose wrapping beside it */
.fig-inset{max-width:var(--prose);margin-inline:auto;padding-inline:var(--gut)}
.fig-inset .mat{border-left:5px solid var(--sec);padding-left:16px}
.fig-inset img{aspect-ratio:4/5;object-fit:cover}
@media (min-width:900px){
  .fig-inset{max-width:var(--break);display:grid;grid-template-columns:340px 1fr;gap:clamp(24px,2.6vw,56px);align-items:start}
  .fig-inset figcaption{display:block;border-top:0;padding-top:0;margin-top:0}
  .fig-inset .cap{font-size:17px}
  .fig-inset .cred{text-align:left;margin-top:10px;display:block}
}
.gallery{max-width:var(--break);margin:clamp(28px,3vw,56px) auto;padding-inline:var(--gut);
  display:grid;gap:clamp(14px,1.6vw,26px);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.gallery figure{margin:0}
.gallery img{aspect-ratio:3/2;object-fit:cover}
.gallery figcaption{font-family:var(--disp);font-size:14px;line-height:1.4;color:var(--muted);margin-top:9px}

/* notes-for-design furniture — interrupts the prose, never a standing rail */
.notes-band{background:var(--mat);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding-block:clamp(28px,3vw,56px);margin-block:clamp(32px,3.4vw,64px)}
.notes-band--dark{background:var(--stage);color:var(--paper);border-color:transparent}
.notes-band--dark .t-what,.notes-band--dark .datatable td{color:#DCD7CD}
.notes-band h3{font-size:clamp(19px,1.7vw,30px);line-height:1.08;margin-bottom:clamp(18px,2vw,32px);max-width:34ch}
.notes-band .inner{max-width:var(--break);margin-inline:auto;padding-inline:var(--gut)}

.timeline{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.timeline li{display:grid;grid-template-columns:1fr;gap:2px 22px;padding:12px 0;border-top:1px solid var(--line)}
.notes-band--dark .timeline li{border-color:var(--line-dk)}
.t-when{font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--sec)}
.t-what{font-size:16.5px;line-height:1.5}
@media (min-width:760px){.timeline li{grid-template-columns:minmax(140px,220px) 1fr}}
@media (min-width:1600px){.timeline{grid-template-columns:1fr 1fr;column-gap:clamp(30px,3vw,64px)}}

.datatable th,.datatable td{text-align:left;padding:12px 18px 12px 0;border-top:1px solid var(--line);font-size:16px;vertical-align:top}
.notes-band--dark .datatable th,.notes-band--dark .datatable td{border-color:var(--line-dk)}
.datatable th{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);width:38%}
.notes-band--dark .datatable th{color:var(--quiet)}
.datatable tr:last-child td,.datatable tr:last-child th{border-bottom:1px solid var(--line)}
.versus{margin:0}
.versus th,.versus td{text-align:left;padding:12px 16px;border:1px solid var(--line);font-size:16px}
.versus thead th{font-family:var(--disp);font-size:12px;letter-spacing:.14em;text-transform:uppercase;background:var(--mat)}

.statrow{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));background:var(--line)}
.statblock{background:var(--mat);padding:clamp(14px,1.5vw,24px)}
.notes-band--dark .statblock{background:var(--stage)}
.stat-num{display:block;font-family:var(--disp);font-weight:800;font-size:clamp(24px,2.4vw,44px);line-height:1;letter-spacing:-.03em}
.stat-label{display:block;margin-top:9px;font-family:var(--disp);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.notes-band--dark .stat-label{color:var(--quiet)}

.pullquote{max-width:var(--break);margin:clamp(30px,3.2vw,60px) auto;padding:0 var(--gut);border:0}
.pullquote p{font-family:var(--disp);font-weight:500;font-size:clamp(21px,2.2vw,40px);line-height:1.12;letter-spacing:-.025em;margin:0}
.pullquote p::before{content:"";display:block;width:64px;height:4px;background:var(--accent);margin-bottom:20px}
.blockquote{max-width:var(--prose);margin:clamp(24px,2.6vw,44px) auto;padding:0 var(--gut) 0 calc(var(--gut) + 18px);
  border-left:4px solid var(--sec)}
.blockquote p{font-size:19px;line-height:1.5;margin:0 0 .6em}
.blockquote cite{font-family:var(--disp);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-style:normal}
.callout{max-width:var(--break);margin:clamp(28px,3vw,52px) auto;padding:clamp(18px,2vw,32px);
  background:var(--stage);color:var(--paper)}
.callout p{margin:0 0 .7em;font-size:17.5px;line-height:1.55}
.callout p:last-child{margin:0}
.callout ul{margin:0;padding-left:1.1em}
.callout li{font-size:17px;line-height:1.55;margin-bottom:.4em}
.callout .co-label{display:flex;align-items:center;gap:9px;font-family:var(--disp);font-weight:700;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;color:#F0B4BE;margin-bottom:14px}
.note{max-width:var(--prose);margin-inline:auto;padding:12px var(--gut) 12px calc(var(--gut) + 14px);
  border-left:3px solid var(--quiet);font-size:16.5px;color:var(--muted)}

/* map */
.map-figure{max-width:var(--break);margin:clamp(30px,3vw,60px) auto;padding-inline:var(--gut)}
.map-figure .map-slot{background:#0E1216;border:1px solid var(--line-dk)}
.map-figure svg{width:100%;height:auto}
.map-pin-label{font-family:var(--disp);font-size:15px;letter-spacing:.02em;fill:#E8E2D6}
.map-figure figcaption{display:flex;gap:24px;align-items:baseline;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.map-figure .cap{font-family:var(--disp);font-size:16px;flex:1 1 320px;margin:0}
.map-figure .cred{font-family:var(--disp);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--quiet);margin:0}

/* cards / references */
.profile-grid,.org-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.profile-card{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;height:100%}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:14px}
.profile-card h3{font-size:20px;line-height:1.1}
.profile-card .p-role{font-family:var(--disp);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--sec);margin:8px 0 10px}
.profile-card p{font-size:16px;line-height:1.5;margin:0 0 .8em}
.profile-card .p-links{margin-top:auto;padding-top:8px;font-family:var(--disp);font-size:13.5px}
.profile-card.no-photo{border-left:5px solid var(--sec)}
.org-card{display:grid;grid-template-columns:1fr;gap:4px;border:1px solid var(--line);padding:14px 16px;color:inherit}
.org-card:hover{text-decoration:none;border-color:var(--sec)}
.org-name{font-family:var(--disp);font-weight:700;font-size:17px}
.org-host{font-family:var(--disp);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.entity-ref{font-family:var(--disp);font-weight:500;font-size:.95em;border-bottom:1px solid var(--sec)}
.entity-ref:hover{text-decoration:none}

.further,.related{border-top:3px solid var(--ink);padding-top:22px;margin-top:clamp(40px,4vw,80px)}
.further-grid,.related-links{display:grid;gap:clamp(20px,2.2vw,40px);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  list-style:none;padding:0;margin:0}
.further-grid a,.related-links a{display:block;color:inherit}
.further-grid a:hover,.related-links a:hover{text-decoration:none;color:var(--accent)}
.rl-title{display:block;font-family:var(--disp);font-weight:500;font-size:20px;line-height:1.14;letter-spacing:-.018em}
.rl-sec{display:flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:700;font-size:11.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--sec);margin-bottom:9px}
.rl-sec .ico{width:15px;height:15px;flex:none}

/* archive */
.arch-groups{display:grid;gap:clamp(34px,3.4vw,66px) clamp(24px,2.6vw,52px);
  grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:start}
.arch-group h2{display:flex;align-items:center;gap:10px;font-size:clamp(20px,1.7vw,30px);margin:14px 0 22px}
.arch-group h2 .ico{width:22px;height:22px;flex:none;color:var(--sec)}
.arch-rule{height:9px}
.arch-list{list-style:none;padding:0;margin:0;display:grid;gap:20px}
.arch-list a{display:block;color:inherit}
.arch-list a:hover{text-decoration:none;color:var(--accent)}
.arch-list .al-t{display:block;font-family:var(--disp);font-weight:500;font-size:18.5px;line-height:1.16;letter-spacing:-.015em}
.arch-list .al-d{display:block;font-size:15.5px;line-height:1.45;color:var(--muted);margin-top:5px}

/* simple pages */
.page-head{padding-block:clamp(34px,3.4vw,70px);border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(34px,4.6vw,86px);line-height:.9}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chips a{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--ink);color:var(--paper);
  font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.chips a:hover{text-decoration:none;background:var(--sec)}
.chips a .ico{width:15px;height:15px;flex:none}

/* ---------- upward breakpoints: the page gains, not the margin ---------- */
@media (min-width:1280px){
  :root{--fs-body:17.5px;--fs-prose:19px;--prose:70ch;--break:1180px}
}
@media (min-width:1600px){
  :root{--fs-body:18px;--fs-prose:19.5px;--prose:74ch;--break:1360px;--wrap:min(1780px,94vw)}
  .strip{grid-template-columns:repeat(4,1fr)}
  .cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr))}
  .fig-inset{grid-template-columns:420px 1fr}
  .article h2{max-width:38ch}
}
@media (min-width:2200px){
  :root{--fs-body:19px;--fs-prose:21px;--prose:78ch;--break:1560px;--wrap:min(2100px,94vw)}
  .gallery{grid-template-columns:repeat(3,1fr)}
  .arch-groups{grid-template-columns:repeat(4,1fr)}
  .fig-bleed img{height:min(64vh,860px)}
}

@media print{
  .mast,.foot,.supporters{background:#fff;color:#000}
  a{color:#000}
}

/* homepage masthead overlays the lead image */
.home .mast{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(10,11,16,.88) 0%,rgba(10,11,16,.55) 62%,rgba(10,11,16,0) 100%);z-index:5}
.home .nav{border-top-color:rgba(244,239,230,.26);border-bottom-color:rgba(244,239,230,.26)}
.home-lead{position:relative}
.home .lead-copy{padding-top:120px}
@media (max-width:900px){
  .home .mast{position:static;background:var(--stage)}
  .home .lead-copy{position:static;background:var(--stage);padding-top:26px}
  .home .lead-scrim{background:linear-gradient(180deg,rgba(10,11,16,.25),rgba(10,11,16,.6))}
  .home .lead-figure img{height:clamp(300px,52vh,460px)}
}

/* section accents lighten on dark grounds so 15-17px type stays legible */
.art-where{color:var(--sec-lt,#F0B4BE)}
.band--stage .kicker,.notes-band--dark .kicker,.flagship .kicker,.sec-open .kicker{--sec:var(--sec-lt,#F0B4BE)}
.notes-band--dark .t-when{color:var(--sec-lt,#F0B4BE)}
.spec .spec-no .facet{color:var(--sec-lt,#F0B4BE)}

/* the drawn device: default size, plus the existing large/small overrides */
svg.facet{width:17px;height:17px;flex:none}
.kicker .facet{width:17px;height:17px;flex:none}
.what .facet{width:clamp(46px,5vw,84px);height:auto}
.sec-facet{width:clamp(90px,11vw,190px);height:auto}
.colophon{width:32px;height:32px}
.spec-no .facet{width:16px;height:16px}
.chips a .facet{width:15px;height:15px}
/* mid widths: 2x2 specimen strip, and the flagship stops being a left ribbon */
.strip{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
@media (min-width:820px){.flagship .fl-copy{grid-template-columns:1.4fr 1fr;align-items:end}}

/* ============ identity restored: bone masthead, coloured mineral chip bar,
   bands that change ground as you scroll ============ */
.mast{background:var(--paper);color:var(--ink)}
.mast-inner{padding:22px 0 0}
.brand,.brand:hover{color:var(--ink)}
.wordmark{font-size:clamp(30px,3.2vw,56px)}
.home .wordmark{font-size:clamp(38px,7vw,132px)}
.colophon{color:var(--accent);width:clamp(30px,3vw,52px);height:auto}
.home .colophon{width:clamp(38px,4.6vw,84px)}
.mast .nav{margin-top:18px;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.nav li{flex:1 1 auto}
.nav a{color:var(--ink);justify-content:center;text-align:center;padding:14px 16px}
.nav a:hover{background:rgba(20,16,14,.06);color:var(--ink)}
.nav li:nth-child(1) a,.nav li:nth-child(8) a{background:#B4122F;color:#F4EFE6}
.nav li:nth-child(2) a,.nav li:nth-child(6) a{background:#04564A;color:#F4EFE6}
.nav li:nth-child(3) a,.nav li:nth-child(5) a{background:#8E8578;color:#F4EFE6}
.nav li:nth-child(4) a,.nav li:nth-child(7) a{background:#3B1E78;color:#F4EFE6}
.nav li:nth-child(9) a{color:var(--muted)}
.nav li a:hover{color:#F4EFE6;filter:brightness(1.12)}
.nav li:nth-child(9) a:hover{color:var(--ink);filter:none}
.nav a[aria-current="page"]{box-shadow:inset 0 -7px 0 rgba(20,16,14,.55)}
.nav li:nth-child(9) a[aria-current="page"]{background:var(--ink);color:var(--paper);box-shadow:none}
.home .mast{position:static;background:var(--paper)}
.home .nav{border-top-color:var(--ink);border-bottom-color:var(--ink)}
.home .lead-copy{padding-top:0}
@media (max-width:900px){
  .nav-label{color:var(--ink);border-color:var(--line)}
  .nav li{flex:1 1 100%}
  .nav a{justify-content:flex-start;text-align:left;padding:14px 16px;border-bottom:0}
  .home .mast,.home .lead-copy{background:var(--paper)}
  .home .lead-copy{position:absolute;background:none;padding-bottom:22px}
  .home .lead-figure img{height:clamp(360px,58vh,520px)}
}
/* coloured homepage bands */
.band--accent{background:var(--accent);color:var(--paper)}
.band--beryl{background:var(--secondary);color:var(--paper)}
.band--accent a,.band--beryl a,.band--accent .more,.band--beryl .more{color:var(--paper)}
.band--accent .more,.band--beryl .more{border-bottom-color:var(--paper)}
.band--accent .kicker,.band--beryl .kicker{--sec:rgba(244,239,230,.9)}
.band--accent .facet,.band--beryl .facet{color:var(--paper)}
.what.band--accent{border-top:3px solid var(--ink);border-bottom:1px solid rgba(244,239,230,.35)}
.band--beryl .mine,.band--beryl .mine h3{color:var(--paper)}
.band--beryl .mine p{color:rgba(244,239,230,.8)}
.band--beryl .band-head h2,.band--accent .band-head h2{color:var(--paper)}
/* section openers sit on their own mineral's ground where contrast allows */
.sec-open{background:var(--sec-ground,var(--stage))}
.sec-open .blurb{color:#E9E3D8}

/* homepage: masthead unified with the hero, colours kept */
.home .mast{position:absolute;top:0;left:0;right:0;z-index:5;background:none}
.home .mast::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,11,16,.80) 0%,rgba(10,11,16,.40) 72%,rgba(10,11,16,0) 100%)}
.home .mast-inner{position:relative}
.home .brand,.home .brand:hover{color:var(--paper)}
.home .colophon{color:var(--paper)}
.home .nav{border-top:3px solid var(--paper);border-bottom:3px solid var(--paper)}
.home .nav li:nth-child(9) a{color:var(--paper)}
.home .nav a:hover{background:rgba(244,239,230,.10)}
.home .lead-copy{padding-top:clamp(150px,17vw,300px)}
.home .lead-figure img{object-position:62% 46%}
@media (max-width:900px){
  .home .mast{position:static;background:var(--stage)}
  .home .mast::before{display:none}
  .home .lead-copy{position:static;background:var(--stage);padding-top:24px}
  .home .lead-figure img{height:clamp(320px,50vh,460px)}
}

/* nine chips in one row where there is room; every row fills edge to edge */
.nav a{padding:13px 12px;font-size:13px;letter-spacing:.08em;gap:7px}
.nav a .ico{width:16px;height:16px}
@media (min-width:1500px){.nav a{padding:14px 18px;font-size:14px;letter-spacing:.1em}}
.nav li:nth-child(9) a{background:var(--ink);color:var(--paper)}
.nav li:nth-child(9) a:hover{color:var(--paper);filter:brightness(1.35)}
.home .nav li:nth-child(9) a{background:var(--ink);color:var(--paper)}
.nav li:nth-child(9) a[aria-current="page"]{box-shadow:inset 0 -7px 0 rgba(244,239,230,.5)}

/* the one-sentence red plate: more presence */
.what{padding-block:clamp(40px,4.6vw,88px)}
.what p{font-weight:700;font-size:clamp(23px,2.7vw,46px);line-height:1.1;letter-spacing:-.03em;max-width:38ch}
.what .facet{width:clamp(64px,7vw,124px)}
.what.band--accent{border-bottom:3px solid var(--ink)}

/* section labels: a chip, not a caption */
.kicker{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;background:var(--sec);color:var(--paper);
  font-size:12.5px;letter-spacing:.18em;margin-bottom:16px}
.kicker .ico,.kicker .facet{width:16px;height:16px;color:currentColor}
.band--accent .kicker,.band--beryl .kicker{background:var(--paper);color:var(--ink)}
.band--stage .kicker,.notes-band--dark .kicker,.flagship .kicker,.sec-open .kicker{background:var(--sec-lt,#F0B4BE);color:var(--stage)}
.what .facet{color:var(--paper)}
/* specimen tiles: matted plate, not a flush-cut square */
.spec{padding:12px}
.spec img{aspect-ratio:4/3;border:1px solid rgba(244,239,230,.22)}
.spec-body{padding:14px 4px 6px}
.spec h3{min-height:0}
/* card and feature images get the same mat discipline */
.feature img{border:1px solid var(--line)}
.band--beryl .mine img,.mine img{border:1px solid var(--line)}
.band--beryl .mine img{border-color:rgba(244,239,230,.22)}

/* supporters: one category, full width */
.sup-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(20px,2.2vw,40px)}
.sup-head h2{font-size:clamp(20px,1.9vw,34px)}
.sup-head .kicker{margin-bottom:0}
.sup-row{display:grid;gap:1px;background:var(--line);grid-template-columns:1fr}
.sup-row .sponsor{width:auto;max-width:none;padding:clamp(18px,1.9vw,32px);display:flex;flex-direction:column;gap:10px}
.sup-row .sponsor.feat{border-left:0;border-top:5px solid var(--accent)}
.sup-row .sponsor-name{font-size:clamp(20px,1.7vw,30px);line-height:1.1}
.sup-row .sponsor-blurb{min-width:0;font-size:16px}
@media (min-width:820px){.sup-row{grid-template-columns:repeat(3,1fr)}}
.sup-also{margin:18px 0 0;font-family:var(--disp);font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.sup-also a{color:var(--ink)}
/* footer nav: compact */
.foot nav{grid-template-columns:none;display:flex;flex-wrap:wrap;gap:8px 18px}
.foot nav a{font-size:11.5px;letter-spacing:.1em;gap:6px}
.foot nav a .ico{width:13px;height:13px}

/* logo: the facet on a solid plate */
.brand{gap:14px}
.colophon{background:var(--accent);color:var(--paper);padding:7px;stroke-width:1.8}
.home .colophon{padding:9px}
.brand:hover .colophon{background:var(--ink)}
/* wordmark: the 4 as a set piece, tighter fit */
.wordmark{letter-spacing:-.05em;display:inline-flex;align-items:baseline}
.wordmark i{font-style:normal;color:var(--paper);background:var(--accent);
  padding:0 .1em .06em;margin:0 .05em;line-height:.9}
.home .brand,.home .brand:hover{color:var(--paper)}
.home .wordmark i{color:var(--stage);background:var(--paper)}
.brand:hover .wordmark i{background:var(--ink)}
.home .brand:hover .wordmark i{background:var(--accent);color:var(--paper)}
/* mines band: images as matted plates on the green ground */
.band--beryl .mine img{border:0}
.band--beryl .mine{background:rgba(244,239,230,.07);padding:clamp(12px,1.2vw,20px)}
.band--beryl .mine .mine-mat{background:var(--paper);padding:clamp(9px,.9vw,14px)}
.band--beryl .mine h3{margin-top:16px}
.band--beryl .mine:hover{background:rgba(244,239,230,.14)}

.home .colophon,.colophon{color:var(--paper)}
.colophon path{stroke-width:2}

p.kicker,.feature p.kicker,.mine p.kicker{color:var(--paper)}
.band--accent p.kicker,.band--beryl p.kicker{color:var(--ink)}
.band--stage p.kicker,.notes-band--dark p.kicker,.flagship p.kicker,.sec-open p.kicker{color:var(--stage)}

.spec-body{padding:20px 14px 18px}
.spec h3{line-height:1.14}
.spec p{margin-top:12px}

/* footer: use the width, drop the padding */
.foot{padding-block:clamp(26px,2.4vw,44px)}
.foot .wrap{gap:clamp(20px,2.4vw,56px);align-items:start}
.foot p{max-width:none;font-size:15.5px;margin-top:12px}
.foot nav{gap:6px 16px;align-content:start}
@media (min-width:900px){.foot .wrap{grid-template-columns:1.6fr 1fr}}

.foot nav{align-items:flex-start;align-content:flex-start;height:max-content;row-gap:4px}
.foot nav a{align-self:flex-start;line-height:1.2;padding:2px 0}

/* supporters: three named tiers of one category — 3 featured, 9 in the roll */
.sup-head{align-items:baseline}
.sup-count{margin:0;font-family:var(--disp);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.supporters .sup-roll{margin-top:1px;display:grid;gap:1px;background:var(--line);grid-template-columns:repeat(2,1fr)}
.supporters .sup-roll .sponsor{width:auto;max-width:none;padding:14px 18px;background:var(--stage)}
.supporters .sup-roll .sponsor-name{font-size:16.5px;line-height:1.2}
@media (min-width:620px){.supporters .sup-roll{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1100px){.supporters .sup-roll{grid-template-columns:repeat(5,1fr)}}
@media (min-width:1600px){.supporters .sup-roll{grid-template-columns:repeat(9,1fr)}}

.foot .wordmark{font-size:clamp(20px,1.5vw,28px)}

/* ---------- mobile: compact nav, real tap targets, legible map ---------- */
@media (max-width:900px){
  .nav{max-height:0;border:0;margin:0}
  .nav-toggle:checked ~ .nav{max-height:1400px}
  .nav a{padding:15px 14px;font-size:13.5px;min-height:48px}
  .nav-label{min-height:48px;margin:14px 0 0}
  .nav-toggle:checked ~ .nav{margin-bottom:14px}
  .mast-inner{padding-bottom:4px}
  .wordmark{font-size:clamp(26px,7.4vw,38px)}
  .home .wordmark{font-size:clamp(30px,9vw,46px)}
  .colophon,.home .colophon{width:38px;height:38px;padding:6px}
  /* tap targets */
  .foot nav{row-gap:0;column-gap:14px}
  .foot nav a{min-height:44px;align-items:center;padding:0;font-size:12.5px}
  .foot .wrap{gap:22px}
  .more,.sup-also a,.cat-list a,.arch-list a,.related-links a,.further-grid a{display:inline-flex;align-items:center;min-height:44px}
  .cat-list a,.arch-list a,.related-links a,.further-grid a{display:block;padding:8px 0}
  .chips a{min-height:44px}
  /* map: labels and pins scale up, frame gets height */
  .map-pin-label{font-size:34px}
  .map-figure .map-slot svg circle{stroke-width:5}
  .map-figure{padding-inline:var(--gut)}
  /* figures and bands */
  .fig-bleed img{height:clamp(240px,42vh,360px)}
  .fig-inset img{aspect-ratio:4/3}
  .notes-band .inner,.callout,.pullquote{padding-inline:var(--gut)}
  .statrow{grid-template-columns:1fr 1fr}
  .what p{font-size:clamp(21px,6.4vw,28px)}
  .sup-head{gap:10px}
  .supporters .sup-roll{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .strip,.mines-grid,.featured,.cards{grid-template-columns:1fr}
  .statrow{grid-template-columns:1fr}
  .map-pin-label{font-size:40px}
}

.t-when{font-size:clamp(17px,1.5vw,26px);font-weight:800;letter-spacing:-.01em;text-transform:none;line-height:1.15}
.timeline li{padding:14px 0;align-items:baseline}

/* third figure treatment: a narrow left-aligned plate at prose measure —
   no second column, so no dead space beside a tall portrait */
@media (min-width:900px){
  .fig-inset{max-width:var(--prose);grid-template-columns:none;display:block}
  .fig-inset figcaption{display:flex;gap:clamp(14px,2vw,40px);align-items:baseline;flex-wrap:wrap;
    margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
  .fig-inset .cred{text-align:right;margin-top:0;display:block;flex:0 1 auto}
  .fig-inset .cap{flex:1 1 320px}
}
@media (min-width:1600px){.fig-inset{grid-template-columns:none}}
.fig-inset .mat{max-width:520px}
.fig-inset img{aspect-ratio:4/3}

/* if two visual blocks ever meet, they must not touch */
.article-figure + .article-figure,.article-figure + .notes-band,
.notes-band + .article-figure,.notes-band + .notes-band,
.article-figure + .pullquote,.pullquote + .article-figure{margin-top:clamp(34px,3.6vw,72px)}

/* 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:not(.lead-line){flex-basis:var(--sp-tile,232px)!important}
.sup-groups{flex-wrap:wrap!important}
.sup-groups > .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}

/* op-odd-tier-lead: .sup-roll (9 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sup-roll:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--disp); font-weight: 700; letter-spacing: -0.03em; line-height: 1.02; margin: 0px;}
.card h2:where(.rt-h3){margin: 16px 0px 10px; font-size: 20.5px; line-height: 1.14; min-height: 2.3em;}
.card--lead h2:where(.rt-h3){font-size: clamp(24px, 2.8vw, 50px); line-height: 1; min-height: 0px;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card.card--lead > span.card-inner > img,
  a.mine.mine-lg > span.mine-mat > img,
  a.mine.mine-sm > span.mine-mat > img,
  div.cards > a.card > img,
  div.featured > a.f-lg.feature > img,
  div.featured > a.f-md.feature > img,
  div.featured > a.f-sm.feature > img,
  div.strip > a.spec > img,
  figure.article-figure.fig-inset > div.mat > img,
  figure.article-figure.fig-mat > div.mat > img,
  section.band.flagship > figure.fl-img > img){height:auto}
/* op-img-dims:end */
