/* People's Press News — Pressroom Dusk
   PALETTE (each member has one job)
   --ground   #101116  ink ground: the site's default field
   --ink      #F4F0E6  cream: type on the ground, and the reading ground itself
   --accent   #FF5C1A  saturated orange: readings, numerals, tabs, filled bands
   --second   #2B3BF5  saturated blue: whole fields, frames, links on cream
   --quiet    #5F5A4E  subordinate type: credits, meta
   accent and second are 24 deg apart in hue family but read as orange vs blue side by side. */

:root{
  --ground:#101116; --ink:#F4F0E6; --accent:#FF5C1A; --second:#2B3BF5;
  --quiet:#5F5A4E; --pale:#C9CFF5; --mute:#A7A9B4; --line:rgba(244,240,230,.22);
  --field:#171C3D;
  --prose:780px; --breakout:1180px; --wide:1500px; --pad:22px; --body:19px;
  --gap:26px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--ground);color:var(--ink);font-family:'Spline Sans',system-ui,sans-serif;font-size:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
p,li,a,h1,h2,h3,figcaption,.cap,.credit,.mast-name{overflow-wrap:break-word}
figure,blockquote{margin:0}
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:'Familjen Grotesk',system-ui,sans-serif;font-weight:700;letter-spacing:-.03em;line-height:1.02;margin:0}
p{margin:0 0 1.15em;text-wrap:pretty}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--pad)}
.label{font-family:'Libre Franklin',system-ui,sans-serif;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.label--accent{color:var(--accent)}
.num{font-family:'Familjen Grotesk',sans-serif;font-weight:700;letter-spacing:-.05em;line-height:.8;color:var(--accent)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- masthead ---------- */
.mast{background:var(--ground);color:var(--ink);border-bottom:1px solid var(--line)}
.paper .mast a,.paper .mast .mast-name,.paper .mast .nav a{color:var(--ink)}
.paper .mast .nav a[aria-current]{color:var(--accent)}
.paper .mast .nav a svg{color:var(--accent)}
.paper .nav-toggle{color:var(--ink)}
.mast-in{max-width:var(--wide);margin:0 auto;padding:20px var(--pad);display:flex;align-items:flex-end;gap:30px;flex-wrap:wrap}
.mast-lock{display:flex;align-items:baseline;gap:13px;flex:0 0 auto;min-width:0}
.mast-emblem{color:var(--accent);flex:0 0 auto;display:flex;align-items:flex-end}
.mast-emblem svg{width:auto;height:clamp(17px,1.75vw,25px);display:block}
.mast-name{hyphens:none;font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:clamp(23px,2.4vw,34px);letter-spacing:-.035em;line-height:1;color:var(--ink);text-decoration:none;white-space:nowrap}
.mast-name:hover{color:var(--ink);text-decoration:none}
.nav{flex:1 1 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 26px;padding-bottom:4px}
.nav a{font-family:'Libre Franklin',sans-serif;font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:8px}
.nav a svg{color:var(--accent);flex:0 0 auto}
.nav a[aria-current]{color:var(--accent)}
.nav-toggle{display:none}
@media (max-width:820px){
  .mast-in{gap:14px}
  .nav-toggle{display:block;margin-left:auto;background:none;border:1px solid var(--line);color:var(--ink);font-family:'Libre Franklin',sans-serif;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:10px 14px;min-height:44px}
  .nav{display:none;flex:1 1 100%;flex-direction:column;justify-content:flex-start;gap:0}
  .nav a{padding:14px 0;min-height:44px;border-top:1px solid var(--line)}
  .mast.open .nav{display:flex}
}

/* ---------- homepage ---------- */
.hero{position:relative}
.hero-fig{position:relative;height:min(74vh,700px);min-height:420px;overflow:hidden}
.hero-fig img{width:100%;height:100%;object-fit:cover}
.hero-plate{position:absolute;left:0;bottom:0;right:0;padding:var(--pad);pointer-events:none;background:linear-gradient(transparent,rgba(16,17,22,.82) 62%)}
.hero-plate-in{max-width:var(--wide);margin:0 auto;display:flex;align-items:flex-end;gap:34px;flex-wrap:wrap}
.hero-stat{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:clamp(88px,15vw,240px);line-height:.76;letter-spacing:-.055em;color:var(--accent);text-shadow:0 2px 18px rgba(16,17,22,.6),0 1px 3px rgba(16,17,22,.55)}
.hero-kick{flex:1 1 320px;max-width:660px;color:var(--ink);text-shadow:0 1px 14px rgba(16,17,22,.7),0 1px 2px rgba(16,17,22,.6)}
.hero-kick h1{font-size:clamp(26px,2.4vw,42px);line-height:1.04}
.hero-kick p{margin:.6em 0 0;font-size:16.5px;color:var(--ink)}
.hero-cap{max-width:var(--wide);margin:0 auto;padding:14px var(--pad) 0;display:flex;gap:8px 20px;flex-wrap:wrap;align-items:baseline}
.hero-cap .cap{font-family:'Libre Franklin',sans-serif;font-size:14.5px;line-height:1.4;color:var(--mute);flex:0 1 auto;margin:0}
.hero-cap .credit{font-size:12.5px;color:var(--quiet)}
.sharebar{padding:44px var(--pad) 4px}
.sharebar-in{max-width:var(--wide);margin:0 auto}
.share-svg{width:100%;height:auto;display:block}
.share-legend{display:flex;margin-top:4px;font-family:'Libre Franklin',sans-serif;font-size:13px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--mute)}
.share-legend span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}
.share-source{margin:14px 0 0;font-family:'Libre Franklin',sans-serif;font-size:13.5px;color:var(--mute)}
.band{padding:74px 0}
.band--blue{background:var(--field);color:var(--ink)}
.band--cream{background:var(--ink);color:var(--ground)}
.band--cream .label{color:var(--quiet)}
.band--cream a{color:var(--second)}
.rule-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}
.rule-band-in{max-width:var(--wide);margin:0 auto;padding:0 var(--pad);display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.rule-band h2{flex:1 1 420px;font-size:clamp(22px,2.1vw,33px);line-height:1.1;font-weight:700}
.rule-band .mark{color:var(--accent);flex:0 0 auto}

/* flagship */
.flag{display:grid;grid-template-columns:minmax(0,1fr);gap:34px;max-width:var(--wide);margin:0 auto;padding:0 var(--pad)}
.flag h2{font-size:clamp(34px,4vw,68px);line-height:.98}
.flag-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
.flag-dek{font-family:'Literata',Georgia,serif;font-size:21px;line-height:1.5}
.pull{font-family:'Literata',Georgia,serif;font-size:clamp(24px,2.4vw,36px);line-height:1.24;border-left:5px solid var(--accent);padding-left:22px;margin:0}
.flag-fig{position:relative}
.flag-fig img{width:100%;aspect-ratio:16/10;object-fit:cover}
@media (min-width:900px){ .flag-cols{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:44px} }

/* secondaries: image-left, unequal widths */
.secs{max-width:var(--wide);margin:0 auto;padding:0 var(--pad);display:grid;gap:34px}
.sec-item{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.sec-item img{width:100%;aspect-ratio:4/3;object-fit:cover}
.sec-item h3{font-size:clamp(20px,1.6vw,27px);line-height:1.08}
.sec-item--lead h3{font-size:clamp(24px,2.2vw,36px)}
.sec-item p{margin:.5em 0 0;font-size:16.5px;color:var(--mute)}
@media (min-width:760px){
  .secs{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr) minmax(0,1fr)}
  .sec-item{grid-template-columns:minmax(0,1fr)}
  .sec-item--lead img{aspect-ratio:16/10}
}

/* section sampler */
.sampler{max-width:var(--wide);margin:0 auto;padding:0 var(--pad);display:grid;gap:22px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1100px){ .sampler{grid-template-columns:repeat(4,minmax(0,1fr))} }
.card{display:flex;flex-direction:column;background:#16181f;min-height:100%}
.card a{display:block}
.card img{width:100%;aspect-ratio:4/5;object-fit:cover}
.card-b{padding:20px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1 1 auto}
.card h3{font-size:21px;line-height:1.1}
.card .meta{margin-top:auto;font-family:'Libre Franklin',sans-serif;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);display:flex;align-items:center;gap:8px}
.card .meta svg{color:var(--accent)}

/* ---------- supporters ---------- */
.sup{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sup-in{max-width:var(--wide);margin:0 auto;padding:44px var(--pad)}
.sup-head{display:flex;gap:20px;align-items:baseline;flex-wrap:wrap;margin-bottom:26px}
.sup-head h2{font-size:26px}
.sup-head p{margin:0;font-size:15.5px;color:var(--mute);max-width:520px}
.sup-tiers{display:grid;gap:26px 30px;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){ .sup-tiers{grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,3fr)} }
.sup-group{min-width:0}
.sup-sub{font-family:'Libre Franklin',sans-serif;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet);margin-bottom:12px}
.sup-row{display:flex;flex-wrap:wrap;gap:16px}
.sponsor{flex:1 1 130px;min-width:0;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink)}
.sponsor:hover{color:var(--ink);text-decoration:none}
.sponsor .box{background:#0a0b0e;border:1px solid var(--line);height:76px;display:flex;align-items:center;justify-content:center;padding:14px 18px}
.sponsor.feat .box{border-color:var(--accent)}
.sponsor .box img{max-height:44px;max-width:100%;width:auto;height:auto;object-fit:contain}
.sponsor-name{font-family:'Libre Franklin',sans-serif;font-size:13.5px;letter-spacing:.06em;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:620px){ .sponsor{flex:1 1 44%} .sponsor .box{height:82px} }

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);margin-top:0}
.foot-in{max-width:var(--wide);margin:0 auto;padding:44px var(--pad) 56px;display:grid;gap:26px 40px;grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:860px){ .foot-in{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)} }
.foot-name{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:28px;letter-spacing:-.03em}
.foot-line{max-width:34ch;font-size:15px;color:var(--mute);margin:10px 0 0;grid-column:1}
.foot-nav{display:grid;gap:2px 30px;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}
@media (min-width:860px){ .foot-nav{grid-row:1 / span 2;grid-column:2;justify-self:end;text-align:right} }
.foot-nav a{font-family:'Libre Franklin',sans-serif;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding-block:8px;border-top:1px solid var(--line)}
.foot-nav a:hover{color:var(--accent);text-decoration:none}

/* ---------- article ---------- */
.paper{background:var(--ink);color:var(--ground)}
.paper a{color:var(--second)}
.paper a:hover{color:var(--ground)}
.paper .label{color:var(--quiet)}
.art-head{display:grid;grid-template-columns:minmax(var(--pad),1fr) minmax(0,var(--breakout)) minmax(var(--pad),1fr);padding:44px 0 0}
.art-head > *{grid-column:2}
.art-kick{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.art-kick svg{color:var(--accent)}
.paper .art-kick svg{color:var(--second)}
.art-kick .label{color:var(--quiet)}
.art-head h1{font-size:clamp(34px,5vw,74px);line-height:.98;max-width:20ch}
.art-dek{font-family:'Literata',Georgia,serif;font-size:clamp(19px,1.6vw,25px);line-height:1.42;margin:20px 0 0;max-width:46ch}
.art-figure-lead{margin:34px 0 0}
.art-body{display:grid;grid-template-columns:minmax(var(--pad),1fr) minmax(0,var(--prose)) minmax(var(--pad),1fr);padding:38px 0 48px;font-size:var(--body)}
.art-body > *{grid-column:2}
.art-body h2{font-size:clamp(24px,2.2vw,34px);line-height:1.08;margin:1.7em 0 .6em}
.art-body p{margin:0 0 1.2em;line-height:1.65}
.art-body p + h2{margin-top:1.9em}
.bleed{grid-column:1 / -1}
.breakout{grid-column:1 / -1;width:min(var(--breakout),100% - (var(--pad) * 2));margin-inline:auto}
.breakout--right{margin-right:max(var(--pad),calc(50% - var(--breakout) / 2 - 40px));margin-left:auto}

/* figure system: plate · frame · bleed · inset (one drawing system: square corners, 12px mat unit) */
.fig{margin:0}
.fig figcaption{display:flex;gap:14px 20px;flex-wrap:wrap;align-items:baseline;padding-top:10px}
.cap{font-family:'Literata',Georgia,serif;font-size:17px;line-height:1.4;flex:1 1 320px;min-width:0;margin:0}
.credit{font-family:'Libre Franklin',sans-serif;font-size:13px;letter-spacing:.02em;color:var(--quiet);flex:0 1 auto;margin:0}
.paper .credit{color:#6b665a}
.fig--plate{background:#0d0e12;padding:12px}
.paper .fig--plate{background:#e6e1d3}
.fig--plate figcaption{padding:12px 6px 2px}
.fig--frame img{border:11px solid var(--second)}
.fig--bleed img{width:100%;height:min(74vh,560px);object-fit:cover}
.fig--bleed figcaption{max-width:var(--breakout);margin-inline:auto;padding:10px var(--pad) 0}
.fig--inset{border-top:3px solid var(--accent);padding-top:14px;display:grid;gap:14px 26px;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){ .fig--inset{grid-template-columns:minmax(0,1.7fr) minmax(min(190px,100%),1fr);align-items:start} }
.fig--inset figcaption{padding-top:0;flex-direction:column;align-items:flex-start;gap:10px}
.fig--inset .cap{flex:0 1 auto}
.fig--inset .credit{margin-left:0}
.fig img{width:100%;height:auto}

/* inserted units */
.unit{margin-block:46px;min-width:0}
.chron{background:var(--ground);color:var(--ink);padding:30px 28px;min-width:0}
.paper .chron a{color:var(--accent)}
.chron h3{font-size:23px;margin-bottom:6px}
.chron .scroll{overflow-x:auto;max-width:100%}
.chron ol{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:14px}
.chron li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:baseline;border-top:1px solid var(--line);padding-top:12px}
.chron .yr{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:26px;letter-spacing:-.03em;color:var(--accent);line-height:1}
.chron li p{margin:0;font-size:16.5px;color:var(--ink)}
.panel{min-width:0;border:1px solid rgba(16,17,22,.22);border-left:6px solid var(--second);padding:26px 26px 22px;background:rgba(43,59,245,.05)}
.panel h3{font-size:21px;margin-bottom:10px}
.panel ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.panel li{font-size:16.5px;line-height:1.5;padding-left:18px;position:relative}
.panel li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--second)}
.pull-unit{border-top:2px solid var(--ground);border-bottom:2px solid var(--ground);padding:26px 0}
.paper .pull{border-left-color:var(--second)}

/* related furniture */
.related-wrap{border-top:2px solid var(--ground);margin-top:56px;padding-top:26px}
.related-links{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))}
.related-links li{display:flex;flex-direction:column;gap:10px}
.related-links img{width:100%;aspect-ratio:3/2;object-fit:cover}
.related-links a{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:19px;line-height:1.1;letter-spacing:-.02em}
.art-body .art-foot{margin-top:36px;padding-bottom:70px}
@media (max-width:820px){.art-body .art-foot{margin-top:24px}}

/* ---------- category ---------- */
.cat-head{max-width:var(--wide);margin:0 auto;padding:52px var(--pad) 0}
.cat-head h1{font-size:clamp(32px,4.4vw,66px);line-height:.98;max-width:24ch}
.cat-head .blurb{font-family:'Literata',Georgia,serif;font-size:20px;line-height:1.48;max-width:60ch;margin:20px 0 0}
.cat-meta{display:flex;gap:24px;flex-wrap:wrap;margin-top:22px;align-items:center}
.cat-hero{margin:34px 0 0}
.cat-hero img{width:100%;height:min(52vh,520px);object-fit:cover}
.cat-list{list-style:none;max-width:var(--wide);margin:0 auto;padding:0 var(--pad);display:grid;gap:34px;grid-template-columns:minmax(0,1fr)}
.cat-list li{display:flex;flex-direction:column;gap:14px;background:#16181f;padding:0 0 22px}
.cat-list li img{width:100%;aspect-ratio:3/2;object-fit:cover}
.cat-list .t{font-size:24px;line-height:1.08;padding:0 20px;font-family:'Familjen Grotesk',sans-serif;font-weight:700;letter-spacing:-.025em}
.cat-list .b{margin:0;padding:0 20px;font-size:16.5px;color:var(--mute)}
.cat-list li.lead .t{font-size:clamp(26px,2.6vw,40px)}
.cat-list li.lead img{aspect-ratio:16/9}
@media (min-width:900px){
  .cat-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
  .cat-list li.lead{grid-row:span 2;grid-column:1}
  .cat-list li.lead img{aspect-ratio:4/3}
}
@media (min-width:1400px){ .cat-list{grid-template-columns:repeat(3,minmax(0,1fr))} .cat-list li.lead{grid-column:1;grid-row:span 2} }

/* ---------- register / browse ---------- */
.reg{max-width:var(--wide);margin:0 auto;padding:0 var(--pad)}
.reg-sec{border-top:1px solid var(--line);padding:30px 0}
.reg-sec h2{font-size:clamp(21px,2vw,30px);max-width:34ch}
.reg ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.reg li{border-top:1px solid var(--line);padding-top:12px}
.reg li a{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:18px;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}
.reg li a:hover{color:var(--accent)}

/* ---------- static pages ---------- */
.page{display:grid;grid-template-columns:minmax(var(--pad),1fr) minmax(0,var(--prose)) minmax(var(--pad),1fr);padding:56px 0 80px}
.page > *{grid-column:2}
.page h1{font-size:clamp(32px,4vw,58px);margin-bottom:20px}
.page p{font-size:var(--body)}

/* ---------- above the desktop cap: the page gains measure, not margin ---------- */
@media (min-width:1600px){
  :root{--body:21px;--prose:860px;--breakout:1400px;--wide:1820px;--pad:40px;--gap:34px}
  .hero-fig{height:min(78vh,860px)}
  .cat-hero img{height:min(58vh,660px)}
  .fig--inset{max-width:520px}
  .sampler{gap:28px}
  .cap{font-size:18px}
}
@media (min-width:2200px){
  :root{--body:22px;--prose:920px;--breakout:1680px;--wide:2160px;--pad:56px}
  .hero-fig{height:min(80vh,1000px)}
  .art-head h1{font-size:82px}
  .fig--inset{max-width:600px}
  .chron li{grid-template-columns:130px minmax(0,1fr)}
}

/* 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}
.sup-head{flex-wrap:wrap!important}
.sup-head > .sponsor{flex:1 1 var(--sp-min,220px)!important;min-width:min(220px,100%)!important}
.sup-row{flex-wrap:wrap!important}
.sup-row > .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-blurb-size: the design never sized .sponsor-blurb, so it inherited body copy.
   Relative, so it still follows the design's scale. */
.sponsor .sponsor-blurb{font-size:.8em;line-height:1.45}
.sponsor .sp-brand{font-weight:700}

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

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

/* op-plate-fill: operator: logos wrongly sized. Our own sp-mark-frame block pins the plate to
   width:266px, one number for a band whose tiles measure 278, 382 and 572px — so the same plate
   filled one tile and floated inside another. Each plate takes its own tile now; the height and
   object-fit are unchanged, so the artwork keeps its treatment. */
.sup-row .sponsor.sponsor img{width:100%!important}
/* the mark sits in a <span class="box"> whose width is content-based, so the image's 100%
   resolved against the wrapper rather than the tile — tile 5 measured a 159px plate in a 279px
   tile. Give the wrapper the tile's width too. */
.sup-row .sponsor .box{display:block;width:100%}
.sup-row .sponsor .box img{max-width:100%!important}

/* op-money-columns: the supporters block ran one tile per row — 7 tiles,
   859px at 390, 14% of the whole page. Two columns bring it to
   730px (15% shorter). Checked before writing: no new overflow, smallest mark still
   126px wide, longest blurb 1 lines, tile heights 114-114px.
   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.
   An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.sup-row), 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-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:16px!important}
    .sup-row > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sup-row > * *{min-width:0!important;max-width:100%}
    .sup-row img,.sup-row svg{max-width:100%;height:auto}

}

/* op-odd-tier-lead: .sup-row (3 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-row:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-name-wrap: at 320 the money tile truncated its brand name — "Evil Angel Transexuals" — losing up to 27px to an
   ellipsis. The name is allowed to wrap instead of being cut: a brand that reads as half a word
   is worse than a brand on two lines. Structural only, phone widths only, desktop untouched. */
@media (max-width:360px){
  .sponsor-name{white-space:normal!important;overflow-wrap:anywhere;text-overflow:clip}
}

/* 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 (220px), 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){
  div.sup-group:nth-of-type(3) > div.sup-row{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important}
}
/* op-grow-same-size:end */
/* op-heading-levels */
h2.rt-h3{overflow-wrap: break-word;}
h2.rt-h3{font-family: "Familjen Grotesk", system-ui, sans-serif; font-weight: 700; letter-spacing: -0.03em; line-height: 1.02; margin: 0px;}
.chron h2.rt-h3{font-size: 23px; margin-bottom: 6px;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article.card > a > img,
  article.sec-item > a > img,
  article.sec-item.sec-item--lead > a > img,
  div.flag > figure.fig.flag-fig > img,
  li > a > img,
  li.lead > a > img,
  main > figure.cat-hero.fig > img){height:auto}
/* op-img-dims:end */
[data-partner] .box{background:transparent!important}
