/* tirage-gratuit.com — Print-Room
   Palette roles: ground(paper) · ink · accent(vermilion) · secondary(teal) · flag(gilt)
   ---------------------------------------------------------------- */
:root{
  --paper:#F1EBE0;        /* ground */
  --paper-2:#E8E0D2;      /* ground, second tint */
  --ink:#16120E;          /* ink */
  --accent:#D6371C;       /* accent — vermilion: fills + headline scale only (4.00:1 on paper) */
  --accent-ink:#B3261E;   /* accent for body/label text and grounds under paper text (5.52:1) */
  --second:#0E6B62;       /* secondary — teal */
  --flag:#B08A34;         /* flag — gilt */
  --ink-70:#16120E;
  --ink-55:#16120E;
  --paper-on-ink:#F1EBE0;

  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Sofia Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --mono:"Martian Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --body:18px;
  --prose:68ch;
  --gut:clamp(16px,3.2vw,56px);
  --shell:min(2260px,95vw);
  --rule:1px solid rgba(22,18,14,.26);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 var(--body)/1.55 var(--serif);
  text-wrap:pretty;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid rgba(179,38,30,.42)}
a:hover{color:var(--second);border-bottom-color:var(--second)}
h1,h2,h3,h4{font-weight:800;letter-spacing:-.022em;line-height:1.02;margin:0}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
figure{margin:0}
hr{border:0;border-top:var(--rule);margin:0}
::selection{background:var(--flag);color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.wrap{width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
.plate{
  display:inline-flex;align-items:stretch;
  font:700 clamp(10px,.64vw,13px)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;
}
.plate span{padding:7px 10px}
.plate .a{background:var(--accent-ink);color:var(--paper)}
.plate .b{background:var(--ink);color:var(--paper)}
.plate .c{background:var(--second);color:var(--paper)}
.plate .d{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(22,18,14,.3)}
.kicker{font:700 clamp(12px,.8vw,16px)/1.2 var(--sans);letter-spacing:.15em;text-transform:uppercase}
.ico{width:1.15em;height:1.15em;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;vertical-align:-.18em}
.regmark{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.2;flex:none}

/* ---------- masthead ---------- */
.masthead{background:var(--paper);border-bottom:1px solid var(--ink)}
.mast-top{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(18px,3vw,72px);flex-wrap:wrap;padding-top:clamp(16px,2vw,40px)}
.brand{display:flex;align-items:center;gap:clamp(12px,1.4vw,26px);border:0;color:inherit;min-width:0}
.brand:hover{color:inherit}
.brand-name{
  font:700 clamp(26px,4.1vw,68px)/.86 var(--mono);
  letter-spacing:-.055em;text-transform:none;margin:0;
}
.brand-name em{font-style:normal;color:var(--accent)}
.mast-line{
  margin:0 0 .25em;max-width:32ch;font:400 clamp(15px,1vw,21px)/1.34 var(--sans);color:var(--ink-70);
}
.mast-bars{display:flex;gap:3px;margin-top:10px}
.mast-bars i{display:block;width:clamp(22px,2.4vw,44px);height:8px}
.swa{background:var(--accent)}.swb{background:var(--second)}.swc{background:var(--flag)}.swd{background:var(--ink)}

.nav{border-top:var(--rule);margin-top:clamp(12px,1.5vw,28px)}
.nav .nav-list{list-style:none;margin:0;padding:clamp(10px,1vw,16px) 0;display:grid;gap:clamp(8px,1.4vw,34px);grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.nav a{
  border:0;color:var(--ink);display:flex;align-items:center;gap:.5em;
  font:800 clamp(12.5px,.82vw,16px)/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase;
}
.nav a:hover{color:var(--accent-ink)}
.nav a[aria-current]{color:var(--accent-ink)}
/* ---------- homepage bands ---------- */
.band{padding-block:clamp(40px,4.6vw,124px)}
.band--ink{background:var(--ink);color:var(--paper-on-ink)}
.band--ink a{color:var(--paper-on-ink);border-bottom-color:rgba(241,235,224,.4)}
.band--ink a:hover{color:var(--flag);border-bottom-color:var(--flag)}
.band--teal{background:var(--second);color:var(--paper-on-ink)}
.band--tint{background:var(--paper-2)}
.band-head{display:flex;align-items:baseline;gap:clamp(10px,1.4vw,22px);flex-wrap:wrap;border-bottom:1px solid currentColor;padding-bottom:clamp(10px,1vw,18px);margin-bottom:clamp(22px,2.6vw,56px)}
.band-head h2{font-size:clamp(25px,2.7vw,62px)}
.band-head .kicker{margin-left:auto;color:var(--ink-55)}
.band--ink .band-head .kicker{color:rgba(241,235,224,.6)}

.lead-figure{position:relative;width:100%;height:clamp(300px,64vh,900px);background:var(--ink)}
.lead-figure img{width:100%;height:100%;object-fit:cover}
.lead-figure .plate{position:absolute;left:var(--gut);bottom:0;transform:translateY(50%)}
.lead-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,2.6vw,64px);padding-top:clamp(32px,3.4vw,80px)}
.lead-grid h2{font-size:clamp(31px,4.4vw,102px);line-height:.94}
.lead-dek{font:400 clamp(17px,1.08vw,25px)/1.48 var(--serif);max-width:56ch}
.lead-more{font:800 clamp(13px,.84vw,17px)/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--accent)}
@media (min-width:1100px){.lead-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end}}

/* press band — asymmetric entries */
.press-run{display:grid;gap:clamp(22px,2.4vw,56px);grid-template-columns:minmax(0,1fr)}
@media (min-width:820px){
  .press-run{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
  .press-run>.e1{grid-row:span 2}
}
@media (min-width:1440px){
  .press-run{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr)}
  .press-run>.e1{grid-row:span 2}
  .press-run>.e4{grid-column:2/4}
}
.entry{display:flex;flex-direction:column;min-width:0}
.entry img{width:100%;aspect-ratio:16/10;object-fit:cover}
.entry .e-img{background:var(--paper-2);padding:clamp(7px,.6vw,12px);box-shadow:inset 0 0 0 1px rgba(176,138,52,.55)}
.entry h3{margin:clamp(11px,1vw,18px) 0 .4em;font-size:clamp(19px,1.28vw,31px);line-height:1.1}
.entry.e1 img{aspect-ratio:16/11}
.entry.e1 h3{font-size:clamp(24px,2.1vw,48px)}
.entry p{font:400 clamp(15px,.9vw,19px)/1.46 var(--sans);color:var(--ink-70);margin:0;max-width:54ch}
.band--ink .entry p{color:rgba(241,235,224,.78)}
.entry .e-meta{margin-top:auto;padding-top:clamp(10px,.9vw,16px)}
.e-sec{display:inline-flex;align-items:center;gap:.45em;font:700 11.5px/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-55)}
.band--ink .e-sec{color:var(--flag)}
.entry a{border:0;color:inherit}
.entry a:hover{color:var(--accent-ink)}
.band--ink .entry a:hover{color:var(--flag)}

.quiet-line{font:400 clamp(22px,3vw,64px)/1.14 var(--serif);letter-spacing:-.02em;max-width:34ch;margin:0}
.myth-grid{display:grid;gap:clamp(22px,2.8vw,72px);grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.myth-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center}}
.myth-grid h2{font-size:clamp(27px,3.2vw,74px)}
.curated{display:grid;gap:clamp(20px,2.2vw,52px);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}

/* ---------- supporters ---------- */
.supporters{background:var(--ink);color:var(--paper-on-ink);border-top:6px solid var(--accent)}
.supporters .kicker{color:var(--flag)}
.sponsor-grid{display:grid;grid-template-columns:repeat(auto-fit,264px);gap:clamp(14px,1.4vw,26px);justify-content:start;margin-top:clamp(16px,1.6vw,30px)}
.sponsor{
  flex:0 0 264px;width:264px;border:0;display:block;
  background:#0C0A08;box-shadow:inset 0 0 0 1px rgba(241,235,224,.18);
  padding:16px;color:var(--paper-on-ink);
}
.sponsor:hover{box-shadow:inset 0 0 0 1px var(--flag);color:var(--paper-on-ink)}
.sponsor img{
  width:auto;height:auto;max-width:100%;max-height:46px;min-height:0;
  object-fit:contain;margin:0 auto;
}
.sponsor .sponsor-logo{height:46px;display:flex;align-items:center;justify-content:center}
.sponsor-name{display:block;margin-top:12px;padding-top:10px;border-top:1px solid rgba(241,235,224,.2);font:700 12.5px/1.25 var(--sans);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sponsor-blurb{display:block;margin-top:6px;font:400 14px/1.4 var(--sans);color:rgba(241,235,224,.72)}
@media (max-width:719.9px){
  .sponsor-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  .sponsor{width:auto;flex:1 1 auto}
}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:var(--paper-on-ink)}
.foot-grid{display:grid;gap:clamp(20px,2.2vw,52px);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));padding-block:clamp(28px,3.2vw,72px);align-items:start}
.site-foot a{color:var(--paper-on-ink);border:0;display:flex;align-items:center;gap:.5em}
.site-foot a:hover{color:var(--flag)}
.foot-links{font:400 clamp(14px,.86vw,18px)/2 var(--sans)}
.foot-mark{font:700 clamp(20px,1.7vw,40px)/.9 var(--mono);letter-spacing:-.05em}
.foot-mark em{font-style:normal;color:var(--accent)}
.foot-note{font:400 clamp(13.5px,.82vw,17px)/1.45 var(--sans);color:rgba(241,235,224,.7);max-width:34ch;margin:.9em 0 0}

/* ---------- article ---------- */
.art-head{padding-top:clamp(24px,2.8vw,64px)}
.art-head h1{font-size:clamp(30px,4vw,96px);line-height:.95;max-width:26ch;margin-top:clamp(14px,1.4vw,28px)}
.standfirst{font:400 clamp(18px,1.3vw,31px)/1.34 var(--serif);color:var(--accent-ink);max-width:44ch;margin:clamp(16px,1.6vw,32px) 0 0}
.art-meta{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;margin-top:clamp(16px,1.6vw,30px);padding-top:clamp(10px,1vw,16px);border-top:var(--rule);font:400 clamp(13px,.8vw,16px)/1.3 var(--sans);color:var(--ink-55)}
.art-meta .mono{font:400 11.5px/1.3 var(--mono);letter-spacing:.05em}

.art-shell{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(26px,3vw,72px);padding-block:clamp(28px,3vw,76px)}
@media (min-width:1100px){
  .art-shell{grid-template-columns:minmax(196px,.26fr) minmax(0,1fr)}
}
.rail{min-width:0;display:grid;gap:clamp(18px,1.8vw,36px);align-content:start}
@media (min-width:1100px){.rail{position:sticky;top:18px}}
.rail-block{border-top:2px solid var(--ink);padding-top:12px}
.rail-block h2,.rail-block h3{font:700 11.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-55);margin-bottom:10px}
.rail-list{list-style:none;margin:0;padding:0;display:grid;gap:7px;font:400 clamp(14px,.84vw,17px)/1.35 var(--sans)}
.rail-list a{border-bottom:1px solid rgba(22,18,14,.2);color:var(--ink)}
.rail-list a:hover{color:var(--accent-ink)}

/* prose grid: text measure centred, breakouts to the right, full-bleed */
.prose{
  display:grid;
  grid-template-columns:[full-start] minmax(0,.7fr) [text-start] min(var(--prose),100%) [text-end] minmax(0,1fr) [full-end];
}
.prose>*{grid-column:text-start/text-end;min-width:0}
.prose>.breakout{grid-column:text-start/full-end}
.prose>.full{grid-column:full-start/full-end}
.prose>p{font-size:clamp(17.5px,1.07vw,25px);line-height:1.58}
.prose>h2{
  grid-column:full-start/text-end;
  font-size:clamp(22px,1.7vw,40px);line-height:1.1;
  margin:clamp(34px,3vw,72px) 0 clamp(12px,1vw,22px);
  padding-bottom:.32em;border-bottom:1px solid rgba(22,18,14,.22);
}
.prose>h3{font-size:clamp(19px,1.2vw,28px);margin:clamp(26px,2vw,44px) 0 .5em}
.prose>.lead{font:400 clamp(19px,1.24vw,29px)/1.44 var(--serif);border-left:4px solid var(--accent);padding-left:clamp(14px,1.2vw,26px)}
.prose>ul,.prose>ol{font-size:clamp(17px,1.02vw,23px);line-height:1.5;padding-left:1.2em;margin:0 0 1.05em}
.prose>ul li,.prose>ol li{margin-bottom:.45em}
.entity-ref{white-space:normal;overflow-wrap:break-word}
a.entity-ref::after{content:" \2197";font-size:.8em;color:var(--ink-55)}

/* margin-note sub-grid: prose beside a marginal figure/note */
.mgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,1.8vw,40px)}
@media (min-width:1100px){
  .mgrid{grid-template-columns:min(var(--prose),100%) minmax(0,1fr);align-items:start}
  .mgrid>.m-prose{grid-column:1}
  .mgrid>.m-side{grid-column:2;position:relative}
}
.m-prose>p{font-size:clamp(17.5px,1.07vw,25px);line-height:1.58}

/* ---------- figure system (three treatments) ---------- */
.article-figure{margin:clamp(30px,2.8vw,64px) 0}
.article-figure img{width:100%}
figcaption{
  margin-top:12px;display:flex;flex-wrap:wrap;align-items:baseline;
  gap:6px clamp(16px,2vw,44px);
}
figcaption .cap{
  flex:1 1 26ch;max-width:64ch;margin:0;
  font:400 clamp(15px,.9vw,19px)/1.45 var(--sans);color:var(--ink);
}
figcaption .credit{
  flex:0 0 auto;margin:0 0 0 auto;
  font:400 clamp(10.5px,.62vw,12.5px)/1.4 var(--mono);letter-spacing:.04em;color:var(--ink-55);
}
/* 1 · mat — photograph sits on a tinted mat with a gilt hairline */
.fig--mat>.f-in{background:var(--paper-2);padding:clamp(9px,.85vw,18px);box-shadow:inset 0 0 0 1px var(--flag)}
.fig--mat img{aspect-ratio:16/10;object-fit:cover}
.fig--mat figcaption .cap{border-top:2px solid var(--ink);padding-top:9px}
/* 2 · plate — full-bleed band, ink ground, caption under on the measure */
.fig--plate{margin-inline:0}
.fig--plate img{width:100%;height:clamp(240px,46vh,760px);object-fit:cover}
.fig--plate.hero figcaption{padding-inline:var(--gut);width:var(--shell);margin-inline:auto}
.band--ink figcaption .cap,.fig--plate.on-ink figcaption .cap{color:var(--paper-on-ink)}
/* 3 · margin plate — small, in the gutter beside the prose, accent bar on top */
.fig--margin img{aspect-ratio:4/5;object-fit:cover}
.fig--margin>.f-in{border-top:6px solid var(--accent)}
.fig--margin figcaption{display:block}
.fig--margin figcaption .cap{font-size:clamp(14px,.82vw,17px);display:block;max-width:40ch}
.fig--margin figcaption .credit{display:block;margin:6px 0 0}

.gallery{display:grid;gap:clamp(12px,1.2vw,24px);grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));margin:clamp(26px,2.4vw,54px) 0}
.gallery figure{min-width:0}
.gallery img{aspect-ratio:3/4;object-fit:cover;box-shadow:inset 0 0 0 1px rgba(22,18,14,.25)}
.gallery figcaption{margin-top:9px;display:block}
.gallery figcaption .cap{font-size:clamp(13.5px,.78vw,16px);display:block}
.gallery figcaption .credit{display:block;margin:5px 0 0}

/* ---------- inserted units ---------- */
.callout,.pullquote,.blockquote,.note,.notes-panel,.further-wrap{margin-block:clamp(32px,3vw,68px)}
.callout{background:var(--paper-2);box-shadow:inset 0 0 0 1px rgba(176,138,52,.6);padding:clamp(18px,1.8vw,38px)}
.callout>h3,.notes-panel>h3{font:700 11.5px/1.3 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 .9em}
.callout ul{list-style:none;margin:0;padding:0;display:grid;gap:.7em;font:400 clamp(16px,.98vw,21px)/1.45 var(--serif)}
.callout ul li{padding-left:1.1em;position:relative}
.callout ul li::before{content:"";position:absolute;left:0;top:.62em;width:.55em;height:2px;background:var(--accent)}
.pullquote{border:0;padding:clamp(20px,2vw,44px);background:var(--second);color:var(--paper-on-ink)}
.pullquote p{margin:0;font:400 clamp(20px,1.7vw,42px)/1.2 var(--serif);letter-spacing:-.015em}
.blockquote{border:0;padding-left:clamp(16px,1.4vw,30px);border-left:6px solid var(--flag)}
.blockquote p{margin:0;font:400 clamp(18px,1.2vw,28px)/1.4 var(--serif)}
.blockquote cite{display:block;margin-top:.7em;font:400 clamp(13.5px,.8vw,16px)/1.4 var(--sans);font-style:normal;color:var(--ink-55)}
.note{background:transparent;box-shadow:inset 0 0 0 1px rgba(22,18,14,.28);padding:clamp(14px,1.2vw,26px);font:400 clamp(15px,.9vw,19px)/1.5 var(--sans);color:var(--ink-70)}
.note strong{color:var(--ink)}

.notes-panel{background:var(--ink);color:var(--paper-on-ink);padding:clamp(20px,2.2vw,52px)}
.notes-panel>h3{color:var(--flag)}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}
.timeline li{
  display:grid;grid-template-columns:minmax(0,1fr);gap:2px clamp(16px,1.8vw,40px);
  padding:clamp(11px,1vw,18px) 0;border-top:1px solid rgba(241,235,224,.22);
}
.timeline li:first-child{border-top:0;padding-top:0}
.timeline li:last-child{padding-bottom:0}
@media (min-width:700px){.timeline li{grid-template-columns:minmax(110px,.28fr) minmax(0,1fr)}}
.t-when{font:700 clamp(12px,.72vw,15px)/1.3 var(--mono);letter-spacing:.04em;color:var(--flag);text-transform:uppercase}
.t-what{font:400 clamp(16px,.98vw,21px)/1.45 var(--serif)}
.notes-panel .t-what a{color:var(--paper-on-ink);border-bottom-color:rgba(241,235,224,.45)}

.datatable,.versus{width:100%;border-collapse:collapse;font:400 clamp(15px,.92vw,19px)/1.45 var(--sans)}
.tablewrap{overflow-x:auto;margin-block:clamp(30px,2.8vw,62px);-webkit-overflow-scrolling:touch}
.datatable caption,.versus caption{text-align:left;font:700 11.5px/1.3 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--accent-ink);padding-bottom:10px}
.datatable th,.datatable td,.versus th,.versus td{text-align:left;padding:clamp(9px,.8vw,15px) clamp(10px,1vw,22px);border-top:1px solid rgba(22,18,14,.2);vertical-align:top}
.datatable thead th,.versus thead th{border-top:0;border-bottom:2px solid var(--ink);font:700 12px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.datatable tbody th,.versus tbody th{font-weight:700;width:34%;min-width:150px}
.versus tbody td{width:33%}
.statrow{display:grid;gap:clamp(12px,1.2vw,26px);grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr));margin-block:clamp(30px,2.8vw,62px)}
.statblock{background:var(--paper-2);padding:clamp(14px,1.2vw,26px);box-shadow:inset 0 0 0 1px rgba(22,18,14,.18)}
.stat-num{display:block;font:700 clamp(28px,2.4vw,54px)/1 var(--mono);letter-spacing:-.05em;color:var(--accent)}
.stat-label{display:block;margin-top:.5em;font:400 clamp(13.5px,.82vw,17px)/1.35 var(--sans);color:var(--ink-70)}
.chart{margin-block:clamp(30px,2.8vw,62px)}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .c-bar{fill:var(--second)}
.chart .c-bar.hi{fill:var(--accent)}
.chart .c-lab{font:400 12px var(--sans);fill:var(--ink)}
.chart .c-val{font:700 11px var(--mono);fill:var(--ink-55)}

/* cards / references */
.profile-grid{display:grid;gap:clamp(14px,1.4vw,30px);grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));margin-block:clamp(30px,2.8vw,62px)}
.profile-card{display:flex;flex-direction:column;background:var(--paper-2);padding:clamp(14px,1.2vw,26px);box-shadow:inset 0 0 0 1px rgba(22,18,14,.18)}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:14px}
.profile-card h3{font-size:clamp(18px,1.1vw,25px);line-height:1.12}
.profile-card .p-role{margin:.45em 0 .8em;font:700 11.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.profile-card p{font:400 clamp(14.5px,.86vw,18px)/1.45 var(--sans);color:var(--ink-70)}
.profile-card .p-links{margin-top:auto;padding-top:12px}
.profile-card.no-photo{border-top:6px solid var(--second)}
.org-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin-block:clamp(26px,2.4vw,54px)}
.org-card{display:grid;gap:4px;border:0;background:var(--ink);color:var(--paper-on-ink);padding:14px 16px;align-content:start}
.org-card:hover{color:var(--flag)}
.org-logo{height:34px;width:auto;max-width:100%;object-fit:contain;margin-bottom:8px}
.org-name{font:700 14px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.org-host{font:400 11.5px/1.3 var(--mono);color:rgba(241,235,224,.62)}
.further-grid,.related-links{display:grid;gap:clamp(12px,1.2vw,24px);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));list-style:none;margin:0;padding:0}
.further-grid a,.related-links a{
  border:0;display:flex;flex-direction:column;gap:.45em;height:100%;
  background:var(--paper-2);padding:clamp(14px,1.2vw,24px);color:var(--ink);
  box-shadow:inset 0 0 0 1px rgba(22,18,14,.16);
}
.further-grid a:hover,.related-links a:hover{color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent-ink)}
.further-grid .f-sec,.related-links .f-sec{font:700 11px/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-55);display:flex;align-items:center;gap:.45em}
.further-grid .f-title,.related-links .f-title{font:700 clamp(16px,1vw,22px)/1.2 var(--serif);letter-spacing:-.01em}
.further-wrap h2{font-size:clamp(19px,1.2vw,28px);margin-bottom:clamp(14px,1.2vw,24px);padding-bottom:.4em;border-bottom:2px solid var(--ink)}
.artfoot{border-top:var(--rule);margin-top:clamp(34px,3.2vw,76px);padding-top:clamp(22px,2vw,44px)}
.prevnext{display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between;margin-top:clamp(22px,2vw,44px);font:400 clamp(14px,.86vw,18px)/1.4 var(--sans)}

/* ---------- category / section pages ---------- */
.sec-head{padding-block:clamp(26px,3vw,72px) clamp(20px,2vw,44px)}
.sec-head h1{font-size:clamp(30px,4.2vw,100px);line-height:.92;max-width:24ch}
.sec-intro{font:400 clamp(17px,1.16vw,27px)/1.42 var(--serif);max-width:52ch;margin-top:clamp(14px,1.4vw,28px)}
.sec-count{font:700 clamp(11px,.66vw,13px)/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-55)}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(24px,2.4vw,56px)}
.cat-list li{min-width:0}
.cat-row{
  display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(14px,1.6vw,40px);align-items:start;
  padding:clamp(16px,1.4vw,30px) 0;border-top:1px solid rgba(22,18,14,.22);
}
.cat-list li:first-child .cat-row{border-top:0}
@media (min-width:760px){
  .cat-row{grid-template-columns:minmax(220px,.36fr) minmax(0,1fr)}
  .cat-row.flip>.c-img{order:2}
}
@media (min-width:1600px){.cat-row{grid-template-columns:minmax(300px,.34fr) minmax(0,1fr) minmax(0,.42fr)}}
.c-img{background:var(--paper-2);padding:clamp(7px,.6vw,12px);box-shadow:inset 0 0 0 1px rgba(176,138,52,.55)}
.c-img img{aspect-ratio:4/3;object-fit:cover}
.cat-row h2{font-size:clamp(21px,1.6vw,38px);line-height:1.08}
.cat-row h2 a{border:0;color:inherit}
.cat-row h2 a:hover{color:var(--accent-ink)}
.cat-row p{margin:.6em 0 0;font:400 clamp(15.5px,.94vw,20px)/1.5 var(--sans);color:var(--ink-70);max-width:62ch}
.cat-lead .cat-row{grid-template-columns:minmax(0,1fr);gap:clamp(16px,1.8vw,44px)}
@media (min-width:760px){.cat-lead .cat-row{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end}}
.cat-lead img{aspect-ratio:16/10}
.cat-lead h2{font-size:clamp(26px,2.6vw,62px)}
.c-more{margin-top:clamp(10px,1vw,18px);font:700 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);display:inline-block}

/* archive register */
.register{width:100%;border-collapse:collapse;font:400 clamp(15px,.92vw,19px)/1.4 var(--sans)}
.register th,.register td{text-align:left;padding:clamp(9px,.8vw,16px) clamp(8px,.8vw,18px);border-top:1px solid rgba(22,18,14,.2);vertical-align:baseline}
.register thead th{border-top:0;border-bottom:2px solid var(--ink);font:700 11.5px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.register td.r-title{font:400 clamp(16px,1vw,22px)/1.3 var(--serif)}
.register td.r-sec{white-space:nowrap;font:700 11.5px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-55)}
.register tbody tr:hover{background:var(--paper-2)}

/* simple pages */
.page-head{padding-block:clamp(26px,3vw,70px) clamp(14px,1.4vw,30px)}
.page-head h1{font-size:clamp(28px,3.4vw,78px);max-width:26ch}
.page-body{padding-bottom:clamp(40px,4vw,110px)}
.page-body p{font-size:clamp(17px,1.04vw,23px);line-height:1.56;max-width:68ch}
.err-wrap{padding-block:clamp(60px,8vw,200px)}
.err-wrap h1{font-size:clamp(34px,5vw,120px)}

/* ---------- above the desktop cap ---------- */
@media (min-width:1440px){
  :root{--body:19px;--prose:70ch}
  .lead-figure{height:clamp(520px,72vh,1020px)}
  .band{padding-block:clamp(64px,5.2vw,140px)}
}
@media (min-width:1920px){
  :root{--body:21px;--prose:74ch;--shell:min(2600px,94vw)}
  .prose{grid-template-columns:[full-start] minmax(0,.8fr) [text-start] min(var(--prose),100%) [text-end] minmax(0,1fr) [full-end]}
  .art-shell{grid-template-columns:minmax(260px,.24fr) minmax(0,1fr);gap:clamp(48px,3.4vw,110px)}
  .fig--plate img{height:clamp(520px,54vh,940px)}
}
@media (min-width:2400px){
  :root{--body:22px;--prose:78ch}
  .curated{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media print{
  .nav,.supporters,.prevnext{display:none}
  body{background:#fff}
}

/* ---------- patches ---------- */
.entry .e-img,.c-img,.entry .e-meta,.cat-row .c-img a{display:block}
.entry>a{border:0}
.prose>.fig--plate.inprose figcaption{padding-inline:0;width:auto;margin-inline:0}
.prose>.fig--plate.inprose img{height:clamp(240px,42vh,620px)}
.chart.line .c-line{fill:none;stroke:var(--accent);stroke-width:2.5}
.chart.line .c-dot{fill:var(--ink)}
.chart .c-axis{stroke:rgba(22,18,14,.28);stroke-width:1}
.chart.donut .c-seg{fill:none;stroke-width:22}
.chart.donut .s1{stroke:var(--accent)}.chart.donut .s2{stroke:var(--second)}
.chart figcaption{display:block;margin-top:12px}
.chart figcaption .cap{display:block;max-width:68ch}
.chart figcaption .credit{display:block;margin:6px 0 0}
.profile-card .p-attr{margin:.6em 0 0;font:400 11.5px/1.4 var(--mono);color:var(--ink-55)}
.org-card.no-logo{border-top:6px solid var(--flag)}
.cat-row>.credit{align-self:end}
@media (max-width:1599.9px){.cat-row>.credit{display:none}}
.sec-head .e-sec{color:var(--accent-ink)}

/* fixes: credit line wrapping (mobile overflow) + margin-note block spacing */
figcaption .credit{flex:0 1 auto;min-width:0;overflow-wrap:anywhere}
@media (max-width:719.9px){
  figcaption .credit{flex:1 1 100%;margin-left:0}
  figcaption .cap{flex:1 1 100%}
}
.mgrid{margin-block:clamp(26px,2.6vw,56px)}
.prose>.mgrid:first-child{margin-top:0}

.timeline li,.t-when,.t-what,.callout li,.rail-list li,.register td{min-width:0;overflow-wrap:break-word}
.prose>p,.m-prose>p,.prose>li,.standfirst,.entry p,.cat-row p{overflow-wrap:break-word}
.plate{flex-wrap:wrap}

.entity-ref{white-space:normal !important;overflow-wrap:break-word}

/* A2 — inserted-unit separation floors, verified at 375/768/1280/1600/2560 */
.article-figure,.mgrid,.callout,.notes-panel,.pullquote,.blockquote,.note,.gallery,
.statrow,.tablewrap,.profile-grid,.org-grid,.chart{margin-block:24px}
@media (min-width:720px){
  .article-figure,.mgrid,.callout,.notes-panel,.pullquote,.blockquote,.note,.gallery,
  .statrow,.tablewrap,.profile-grid,.org-grid,.chart{margin-block:max(36px,2.9vw)}
}
@media (min-width:2000px){
  .article-figure,.mgrid,.callout,.notes-panel,.pullquote,.blockquote,.note,.gallery,
  .statrow,.tablewrap,.profile-grid,.org-grid,.chart{margin-block:min(3vw,96px)}
}
.prose>.mgrid:first-child{margin-top:0}
.notes-panel h4{font:700 clamp(12px,.74vw,15px)/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--flag);margin:clamp(20px,1.8vw,36px) 0 .8em}
.notes-panel h4:first-of-type{margin-top:0}
.gallery.pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.gallery.pair img{aspect-ratio:4/3}

/* very short pieces: the note block sits in the rail, not the prose */
.rail-notes .timeline li{grid-template-columns:minmax(0,1fr);border-top-color:rgba(22,18,14,.2);padding:9px 0}
.rail-notes .t-when{color:var(--accent-ink)}
.rail-notes .t-what{font-size:clamp(14px,.84vw,17px);line-height:1.4}
.rail-notes .n-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;font:400 clamp(14px,.84vw,17px)/1.4 var(--sans)}
.notes-panel .n-list{list-style:none;margin:0;padding:0;display:grid;gap:.7em;font:400 clamp(16px,.98vw,21px)/1.45 var(--serif)}
.notes-panel .n-list li{padding-left:1.1em;position:relative}
.notes-panel .n-list li::before{content:"";position:absolute;left:0;top:.62em;width:.55em;height:2px;background:var(--flag)}

/* secondary copy: separated by face and scale, not by a sub-4.5:1 grey */
.entry p,.cat-row p,.profile-card p,.note,.foot-note,.mast-line{opacity:1}
.credit,.sec-count,.art-meta,.rail-block h2,.rail-block h3,.e-sec,.f-sec,.stat-label,.register td.r-sec,.blockquote cite{color:var(--ink)}
.band-head .kicker{color:var(--ink)}
.band--ink .band-head .kicker{color:var(--flag)}
.chart .c-val{fill:var(--ink)}

/* accent at text scale carries the darker PICK_SPEC red; vermilion stays on fills and display sizes */
.prose>.lead{border-left-color:var(--accent-ink)}
.fig--margin>.f-in{border-top-color:var(--accent-ink)}
.callout ul li::before{background:var(--accent-ink)}
::selection{background:var(--flag);color:var(--ink)}

/* on the ink bands the caption/credit pair inverts — ink-on-ink measured 1:1 */
.band--ink figcaption .cap,.fig--plate.on-ink figcaption .cap{color:var(--paper-on-ink)}
.band--ink figcaption .credit,.fig--plate.on-ink figcaption .credit{color:rgba(241,235,224,.72)}
.band--ink .stat-label,.band--ink .sec-count,.band--ink .art-meta{color:rgba(241,235,224,.78)}

/* 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){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):not(.sponsor-box):not(.sp-logo):not(.sponsor__logo){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. */
.sponsor-grid .sponsor .sponsor-logo.sponsor-logo{display:block!important;width:100%!important}
.sponsor-grid .sponsor.sponsor img{height:46px!important;display:block!important;width:100%!important}

/* op-money-columns: the supporters block ran one tile per row — 6 tiles,
   770px at 390, 10% of the whole page. Two columns bring it to
   378px (51% shorter). Checked before writing: no new overflow, smallest mark still
   128px wide, longest blurb 2 lines, tile heights 117-117px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   Only the tier(s) that were one-per-row are touched (.sponsor-grid), 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){
  .sponsor-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .sponsor-grid > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-grid > * *{min-width:0!important;max-width:100%}
    .sponsor-grid img,.sponsor-grid svg{max-width:100%;height:auto}
}

/* op-name-wrap: at 320 — and still at 390 on this build — the money tile truncated its brand name — "Evil Angel Transexuals" — losing up to 79px 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:400px){
  .sponsor-name{white-space:normal!important;overflow-wrap:anywhere;text-overflow:clip}
}
/* op-heading-levels */
h1:where(.rt-h2){font-weight: 800; letter-spacing: -0.022em; line-height: 1.02; margin: 0px;}
.lead-grid h1:where(.rt-h2){font-size: clamp(31px, 4.4vw, 102px); line-height: 0.94;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a > span.e-img > img,
  div.breakout.gallery.pair > figure > img,
  figure.article-figure.breakout.fig--mat > div.f-in > img,
  figure.article-figure.fig--margin > div.f-in > img,
  figure.article-figure.fig--mat > div.f-in > img,
  main > figure.article-figure.fig--plate.hero > img,
  section.band > figure.article-figure.fig--plate.hero > img,
  section.band.band--ink > figure.lead-figure > img,
  span.c-img > a > img){height:auto}
/* op-img-dims:end */
@media (min-width:728px) and (max-width:1439px){.sponsor-grid.sponsor-grid:has(> [data-partner]){grid-template-columns:repeat(auto-fill,minmax(min(264px,calc(50% - 7px)),1fr))!important;justify-content:stretch!important}.sponsor-grid.sponsor-grid > [data-partner]{width:auto!important;max-width:none!important}}
