/* Thayer Photo — "Press Release" · voice-led, near-black ground
   Palette roles: ground (ink) · ink-on-ground (paper) · accent (red) · secondary (teal) · quiet (sand)
   Two saturated members, 180° apart in hue: red #D8232A and teal #157A72. */

:root{
  --ink:#14150F;          /* ground */
  --ink-2:#1B1C15;        /* raised ground */
  --rule:#33342C;         /* hairline on ground */
  --paper:#F4EFE6;        /* ink-on-ground, and panel ground */
  --paper-2:#E6DFCE;      /* mat */
  --sand:#C9C2B0;         /* quiet on ground */
  --quiet:#9A9382;        /* quietest legible on ground */
  --red:#D8232A;          /* accent */
  --red-lift:#F0574E;     /* accent, small type on ground */
  --red-print:#C31E24;    /* accent, on paper */
  --teal:#157A72;         /* secondary */
  --teal-lift:#5FB8AF;    /* secondary, small type on ground */

  --display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
  --prose-face:"Literata",Georgia,serif;
  --label:"Martian Mono",ui-monospace,monospace;

  --rail-w:86px;
  --pad:clamp(20px,4vw,64px);
  --measure:66ch;
  --body:18px;
  --note-w:0px;
  --gap:64px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
  margin:0;background:var(--ink);color:var(--paper);
  font-family:var(--prose-face);font-size:var(--body);line-height:1.72;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--red-lift);text-decoration:none}
a:hover{color:var(--teal-lift)}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-0.03em;line-height:1.02;margin:0}
p{margin:0 0 1.15em;text-wrap:pretty}
hr{border:0;border-top:1px solid var(--rule);margin:0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--paper);color:var(--ink);padding:10px 14px;z-index:99}
:focus-visible{outline:2px solid var(--teal-lift);outline-offset:3px}

/* ---------- labels + the drawn device ---------- */
.lbl{font-family:var(--label);font-size:11px;letter-spacing:.18em;text-transform:uppercase;line-height:1.4}
.lbl--red{color:var(--red-lift)}
.lbl--teal{color:var(--teal-lift)}
.lbl--quiet{color:var(--quiet)}
.ico{width:1.1em;height:1.1em;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.18em}
.ico--lg{width:26px;height:26px}
.bracket{display:block;width:clamp(64px,7vw,116px);height:auto;stroke:var(--red);fill:none;stroke-width:3;stroke-linecap:round}

/* ---------- the rail: navigation out of the reading path ---------- */
.rail{
  position:fixed;inset:0 auto 0 0;width:var(--rail-w);z-index:20;
  background:var(--ink);border-right:1px solid var(--rule);
  display:flex;flex-direction:column;align-items:center;gap:30px;
  padding:24px 0 30px;overflow-y:auto;scrollbar-width:none;
}
.rail::-webkit-scrollbar{display:none}
.rail__sig{color:var(--red)}
.rail__nav{writing-mode:vertical-rl;display:flex;gap:26px;align-items:center;flex:0 0 auto}
.rail__nav a{
  font-family:var(--label);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--paper);display:block;padding:4px 2px;white-space:nowrap;
}
.rail__nav a:hover{color:var(--teal-lift)}
.rail__nav a[aria-current]{color:var(--paper);border-inline-start:3px solid var(--red);padding-inline-start:7px}
.rail__nav .ico{transform:rotate(-90deg);width:14px;height:14px}
.rail__marks{margin-top:auto;writing-mode:vertical-rl;display:none;color:var(--quiet)}
.shell{margin-left:var(--rail-w);min-width:0}

/* narrow OR short: the rail lies down into a scrolling row (its five labels need ~722px) */
@media (max-width:899px), (max-height:780px){
  .rail{
    position:static;width:auto;flex-direction:row;gap:0;align-items:center;
    border-right:0;border-bottom:1px solid var(--rule);padding:10px var(--pad);
  }
  .rail__sig{flex:none;margin-right:16px}
  .rail__nav{writing-mode:horizontal-tb;gap:22px;overflow-x:auto;padding:4px 0;scrollbar-width:none}
  .rail__nav::-webkit-scrollbar{display:none}
  .rail__nav a{white-space:nowrap;font-size:11px}
  .rail__nav .ico{transform:none}
  .shell{margin-left:0}
}

/* ---------- masthead + footer ---------- */
.masthead{
  display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline;justify-content:space-between;
  padding:26px var(--pad) 20px;border-bottom:1px solid var(--rule);
}
.masthead a.wordmark{font-family:var(--display);font-weight:800;font-size:clamp(22px,2vw,30px);letter-spacing:-.03em;color:var(--paper)}
.masthead .standing{font-size:14px;color:var(--quiet);max-width:52ch}
.subnav{display:flex;flex-wrap:wrap;gap:20px}
.subnav a{font-family:var(--label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sand)}
.subnav a[aria-current]{color:var(--red-lift);border-bottom:2px solid var(--red)}
.cat-group__h:target,.cat-group [id]:target{scroll-margin-top:24px}

.foot{border-top:1px solid var(--rule);margin-top:0;padding:48px var(--pad) 56px;display:flex;flex-wrap:wrap;gap:28px 60px;justify-content:space-between;align-items:flex-end}
.foot__name{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.03em}
.foot__standing{font-size:14.5px;color:var(--quiet);margin:10px 0 0;max-width:60ch}
.foot__nav{display:flex;flex-wrap:wrap;gap:14px 34px}
.foot__nav a{font-family:var(--label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper)}

/* ---------- bands ---------- */
.band{padding:74px var(--pad)}
.band--tight{padding:44px var(--pad)}
.band--paper{background:var(--paper);color:var(--ink)}
.band--paper a{color:var(--red-print)}
.band--paper a:hover{color:var(--teal)}
.band--red{background:var(--red);color:#FFF6F0}
.band--red a{color:#FFF6F0}
.band--flush{padding-left:0;padding-right:0}
.band__head{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:baseline;margin:0 0 30px}
.band__head h2{font-size:clamp(30px,3.2vw,44px)}
.rule-row{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.rule-row .line{flex:1;height:1px;background:var(--rule)}
.band--paper .rule-row .line{background:#C6BFB1}

/* ---------- opening statement ---------- */
.statement{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;border-bottom:1px solid var(--rule)}
.statement__text{padding:60px var(--pad) 56px;display:flex;flex-direction:column;justify-content:center}
.statement h1{font-size:clamp(44px,6.4vw,104px);margin:28px 0 0;text-wrap:balance}
.statement h1 em{font-style:normal;color:var(--red-lift)}
.statement__deck{font-size:clamp(17px,1.35vw,22px);line-height:1.55;color:var(--sand);margin:30px 0 0;max-width:44ch}
.statement__cta{margin-top:34px;display:flex;align-items:center;gap:12px}
.statement__cta a{font-family:var(--label);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.statement__pic{min-height:320px;background:var(--ink-2);display:flex}
.statement__pic img{width:100%;height:auto;flex:1;object-fit:cover;aspect-ratio:16/10}
@media (min-width:1100px){.statement__pic img{height:100%;aspect-ratio:auto}}
@media (min-width:1100px){
  .statement{grid-template-columns:minmax(0,1fr) 460px}
  .statement__pic{border-left:1px solid var(--rule)}
}

/* ---------- the argument: two columns, pictures inside ---------- */
.argument{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--gap);padding:70px var(--pad) 40px}
.argument p{font-size:calc(var(--body) + 1px);line-height:1.78;color:#E6DFCE}
.argument .drop::first-letter{
  font-family:var(--display);font-weight:800;font-size:4.1em;line-height:.78;
  float:left;margin:.06em .12em 0 0;color:var(--red-lift);
}
@media (min-width:1100px){.argument{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- figure system: three treatments ----------
   .fig--bleed  full-bleed, no frame — a change of subject
   .fig--cut    cut out against the ground, no frame — in the column
   .fig--mat    paper mat — the picture is evidence (and the only safe ground for a wordmark)  */
figure{margin:0}
.fig{margin:0}
.fig img{width:100%;height:auto}
.fig--bleed{margin-inline:0}
.band:not(.band--flush)>.fig--bleed{margin-inline:calc(var(--pad) * -1)}
.fig--bleed img{width:100%;max-height:76vh;object-fit:cover}
.fig--cut img{background:var(--ink-2)}
.fig--mat .mat{background:var(--paper-2);padding:14px}
.fig--mat.is-mark .mat{background:var(--paper);padding:30px 34px;display:flex;align-items:center;justify-content:center;min-height:200px}
/* a definite box: a lazy image with width:auto never reserves space, so it never loads */
.fig--mat.is-mark img{width:100%;max-width:440px;height:190px;max-height:190px;object-fit:contain}
@media (max-width:520px){.fig--mat.is-mark .mat{padding:22px 24px}.fig--mat.is-mark img{height:130px;max-height:130px}}
.fig figcaption{
  display:flex;flex-wrap:wrap;gap:6px 24px;align-items:baseline;
  padding:12px 0 0;margin-top:10px;border-top:1px solid var(--rule);
}
.band--paper .fig figcaption,.fig--mat.on-paper figcaption{border-top-color:#C6BFB1}
.fig figcaption .cap{font-size:15.5px;line-height:1.5;color:var(--sand);flex:1 1 22ch;min-width:0;max-width:78ch}
.band--paper .fig figcaption .cap{color:#3A3A32}
.fig figcaption .cred{font-family:var(--label);font-size:10px;letter-spacing:.08em;color:var(--quiet);flex:0 1 auto;margin-left:auto;text-align:right}
.band--paper .fig figcaption .cred{color:#6B6559}
.fig--bleed figcaption{padding-inline:var(--pad)}
/* the lead figure spans the shell, so its caption needs the page inset */
article > .fig > figcaption{padding-inline:var(--pad)}

/* ---------- article ---------- */
.art-head{padding:64px var(--pad) 40px;max-width:1240px}
.art-kicker{display:flex;align-items:center;gap:10px;margin-bottom:24px}
.art-head h1{font-size:clamp(38px,5.2vw,86px);text-wrap:balance}
.art-head .lead{
  font-size:clamp(19px,1.5vw,25px);line-height:1.5;color:var(--sand);
  margin:26px 0 0;max-width:46ch;font-weight:400;
}
.art-meta{display:block;margin-top:30px;padding-top:18px;border-top:1px solid var(--rule);max-width:62ch;line-height:1.9}
.art-meta a{white-space:nowrap}

.art-body{padding:56px var(--pad) 20px;display:flex;justify-content:center}
.prose{width:100%;max-width:var(--measure);min-width:0}
.prose>*{max-width:100%}
.prose p{margin:0 0 1.2em}
.prose h2{
  font-size:clamp(26px,2.5vw,38px);line-height:1.1;margin:2em 0 .7em;
  padding-top:.7em;border-top:1px solid var(--rule);
}
.prose h3{font-size:22px;font-weight:700;margin:1.8em 0 .5em}
.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.3em}
.prose li{margin:0 0 .5em}
.prose a{border-bottom:1px solid rgba(240,87,78,.45)}
.prose>.fig,.prose>.callout,.prose>.pullquote,.prose>.statrow,.prose>.timeline-wrap,.prose>.table-wrap,.prose>.blockquote{margin:52px 0}
.prose>.fig--break{margin:60px 0}

/* insertions break out of the measure at wide widths */
@media (min-width:1200px){
  .prose>.fig--break{width:calc(100% + 300px);max-width:none;margin-left:-150px}
  .prose>.table-wrap,.prose>.statrow{width:calc(100% + 160px);max-width:none;margin-left:-80px}
}

/* margin notes — real cargo on the right at large widths */
.mnote{
  border-top:2px solid var(--teal);padding-top:16px;margin:52px 0;
  font-size:15.5px;line-height:1.6;color:var(--sand);
}
.mnote h4{font-family:var(--label);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-lift);font-weight:400;margin-bottom:8px}
.mnote p{margin:0}

.related{margin:0;padding:56px var(--pad) 64px;border-top:1px solid var(--rule)}
.related__cols{display:grid;gap:28px 40px;grid-template-columns:minmax(0,1fr);margin-top:24px}
@media (min-width:1000px){.related__cols{grid-template-columns:minmax(0,1fr) minmax(200px,280px)}}
.related__aside h3{font-weight:400;margin:0 0 12px}
.related__aside p{font-size:16px;line-height:1.9;color:var(--sand);margin:0}
.further-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:0}
.further-grid a{
  display:flex;flex-direction:column;gap:10px;background:var(--ink-2);border:1px solid var(--rule);
  padding:22px 24px 24px;color:var(--paper);font-family:var(--display);font-weight:700;
  font-size:20px;line-height:1.2;letter-spacing:-.02em;min-height:132px;
}
.further-grid a:hover{border-color:var(--red);color:var(--paper)}
.further-grid a .lbl{font-weight:400}
.related-links{list-style:none;margin:0;padding:0}
.related-links li{border-top:1px solid var(--rule);padding:14px 0}
.related-links li:last-child{border-bottom:1px solid var(--rule)}

/* ---------- components (styleguide set) ---------- */
.lead{font-size:1.12em;line-height:1.55;color:var(--sand)}
.pullquote{margin:52px 0;padding:0;border:0}
.pullquote p{
  font-family:var(--display);font-weight:800;font-size:clamp(26px,2.6vw,40px);line-height:1.12;
  letter-spacing:-.025em;color:var(--paper);margin:0;text-wrap:balance;
}
.pullquote--red{background:var(--red);color:#FFF6F0;padding:44px clamp(22px,3vw,52px)}
.pullquote--red p{color:#FFF6F0}
.blockquote{margin:44px 0;padding:0 0 0 24px;border-left:3px solid var(--teal)}
.blockquote p{font-size:1.05em;line-height:1.6;margin:0 0 .6em}
.blockquote cite{font-family:var(--label);font-size:10.5px;letter-spacing:.1em;font-style:normal;color:var(--quiet)}
.callout{
  background:var(--paper);color:var(--ink);padding:30px clamp(20px,2.4vw,36px);margin:52px 0;
}
.callout h4,.notes-unit h4{
  font-family:var(--label);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--red-print);font-weight:400;margin:0 0 16px;
}
.callout p:last-child{margin-bottom:0}
.callout ul{margin:0;padding-left:1.1em}
.callout li{margin:0 0 .55em;font-size:16.5px;line-height:1.55}
.callout li:last-child{margin-bottom:0}
.note{font-size:16px;color:var(--sand);border-left:2px solid var(--quiet);padding-left:16px}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:min(520px,100%);font-size:16px}
.versus th,.versus td,.datatable th,.datatable td{text-align:left;padding:13px 18px 13px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.versus th,.datatable th{font-family:var(--label);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-lift);font-weight:400}
.datatable td:first-child,.versus td:first-child{color:var(--sand)}
.band--paper table th{color:var(--teal)}
.band--paper .versus th,.band--paper .versus td,.band--paper .datatable th,.band--paper .datatable td{border-bottom-color:#C6BFB1}
.band--paper .datatable td:first-child{color:#3A3A32}

.statrow{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));background:var(--rule);border:1px solid var(--rule)}
.statblock{background:var(--ink);padding:22px 22px 24px;display:flex;flex-direction:column;gap:8px}
.stat-num{font-family:var(--display);font-weight:800;font-size:clamp(28px,2.6vw,40px);line-height:.95;letter-spacing:-.03em;color:var(--red-lift)}
.stat-label{font-size:14.5px;line-height:1.45;color:var(--sand)}
.band--paper .statrow{background:#C6BFB1;border-color:#C6BFB1}
.band--paper .statblock{background:var(--paper)}
.band--paper .stat-num{color:var(--red-print)}
.band--paper .stat-label{color:#3A3A32}

.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 26px;padding:16px 0;border-top:1px solid var(--rule)}
.timeline li:last-child{border-bottom:1px solid var(--rule)}
.t-when{font-family:var(--label);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-lift);line-height:1.5}
.t-what{font-size:16.5px;line-height:1.55;color:var(--sand)}
@media (min-width:700px){.timeline li{grid-template-columns:minmax(12ch,22ch) minmax(0,1fr)}}
.band--paper .timeline li{border-color:#C6BFB1}
.band--paper .t-when{color:var(--teal)}
.band--paper .t-what{color:#3A3A32}

.chart{margin:44px 0}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .c-bar{fill:var(--red)}
.chart .c-bar-2{fill:var(--teal)}
.chart .c-axis{stroke:var(--rule);stroke-width:1}
.chart .c-lbl{font-family:var(--label);font-size:9.5px;letter-spacing:.06em;fill:var(--sand)}
.chart figcaption{font-size:15px;color:var(--sand);margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);max-width:70ch}

.article-figure{margin:44px 0}
.article-figure img{width:100%}
.article-figure figcaption{font-size:15.5px;color:var(--sand);margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}
.gallery{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:44px 0}
.gallery figcaption{font-size:14px;color:var(--quiet);margin-top:8px}
.map-figure .map-slot{background:var(--ink-2);border:1px dashed var(--rule);min-height:240px}
.map-figure figcaption{font-size:15px;color:var(--sand);margin-top:12px}

.profile-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:40px 0}
.profile-card{background:var(--ink-2);border:1px solid var(--rule);padding:22px;display:flex;flex-direction:column;gap:10px}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover}
.profile-card h3{font-size:21px;font-weight:700}
.profile-card .p-role{font-family:var(--label);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-lift);margin:0}
.profile-card p{font-size:15.5px;line-height:1.55;margin:0}
.profile-card .p-links,.profile-card .p-attr{margin-top:auto;font-size:14px}
.profile-card .p-attr{color:var(--quiet);font-family:var(--label);font-size:10px;letter-spacing:.08em}

.org-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:36px 0}
.org-card{display:flex;align-items:center;gap:14px;background:var(--ink-2);border:1px solid var(--rule);padding:14px 16px;color:var(--paper)}
.org-card:hover{border-color:var(--teal)}
.org-logo{width:44px;height:44px;object-fit:contain;flex:none;background:var(--paper);padding:4px}
.org-card.no-logo .org-logo{display:none}
.org-name{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.01em;display:block}
.org-host{font-family:var(--label);font-size:10px;letter-spacing:.08em;color:var(--quiet);display:block}
.entity-ref{border-bottom:1px solid rgba(95,184,175,.5);color:var(--teal-lift)}

/* ---------- supporters: two blocks of four, woven between bands ---------- */
.supporters{padding:38px var(--pad);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.supporters--roll{background:var(--ink-2);padding-top:26px;padding-bottom:26px}
.supporters__head{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;margin-bottom:20px}
.supporters__head p{font-size:14.5px;color:var(--quiet);margin:0;max-width:60ch}
.sponsor-row{display:flex;flex-wrap:wrap;gap:16px}
.supporters--roll .sponsor-row{gap:10px}
.sponsor{
  flex:0 0 250px;height:76px;background:#0C0D08;border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;padding:12px 18px;
}
.sponsor:hover{border-color:var(--teal)}
.sponsor img{max-height:44px;max-width:100%;width:auto;height:auto;object-fit:contain}
@media (max-width:520px){.sponsor{flex:0 0 100%}}

/* ---------- section cards / category listing ---------- */
.sect-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.sect-card{display:flex;flex-direction:column;background:var(--ink-2);border:1px solid var(--rule)}
.sect-card:hover{border-color:var(--red)}
.sect-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.sect-card__body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.sect-card h3{font-size:clamp(24px,2vw,32px);font-weight:800;color:var(--paper)}
.sect-card p{font-size:16px;line-height:1.55;color:var(--sand);margin:0}
.sect-card .lbl{margin-top:auto}

.cat-lead{display:grid;gap:28px;grid-template-columns:minmax(0,1fr);align-items:center;padding:0 var(--pad) 8px}
@media (min-width:1000px){.cat-lead{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px}}
.cat-lead__pic img{width:100%;aspect-ratio:16/10;object-fit:cover}
.cat-lead h2{font-size:clamp(28px,3.2vw,46px);text-wrap:balance;margin:0 0 16px}
.cat-lead p{font-size:17.5px;line-height:1.6;color:var(--sand);margin:0}

.cat-group+.cat-group{margin-top:64px}
.cat-group__h{font-family:var(--display);font-weight:700;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.02em;margin:0;white-space:nowrap}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:48px 32px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.cat-list>li{display:flex}
.cat-entry{display:flex;flex-direction:column;background:var(--ink-2);border:1px solid var(--rule);width:100%}
.cat-entry:hover{border-color:var(--red)}
.cat-entry img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--ink)}
.cat-entry.is-mark img{object-fit:contain;background:var(--paper);padding:22px;aspect-ratio:16/10;height:auto}
.cat-entry__body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.cat-entry h3{font-family:var(--display);font-weight:700;font-size:21px;line-height:1.18;letter-spacing:-.02em;color:var(--paper);margin:0}
.cat-entry p{font-size:15.5px;line-height:1.55;color:var(--sand);margin:0}
.cat-entry .lbl{margin-top:auto}

/* ---------- archive register ---------- */
.register{width:100%;font-size:16.5px}
.register caption{text-align:left;font-family:var(--label);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-lift);padding-bottom:14px}
.register th,.register td{text-align:left;padding:12px 20px 12px 0;border-bottom:1px solid var(--rule);vertical-align:baseline}
.register th{font-family:var(--label);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--quiet);font-weight:400}
.register td:first-child{font-family:var(--label);font-size:11px;color:var(--quiet);width:5ch}
.register a{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:-.015em;color:var(--paper);border-bottom:1px solid transparent}
.register a:hover{border-bottom-color:var(--red)}
.register .reg-len{font-family:var(--label);font-size:10px;letter-spacing:.08em;color:var(--quiet);white-space:nowrap}

.index-line{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;padding:14px 0;border-top:1px solid var(--rule)}
.index-line a{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--paper)}
.index-line a:hover{color:var(--red-lift)}

details.more{margin-top:18px}
details.more summary{font-family:var(--label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-lift);cursor:pointer;list-style:none}
details.more summary::-webkit-details-marker{display:none}
details.more[open] summary{color:var(--quiet)}

.prose-page{padding:56px var(--pad) 64px;max-width:74ch}
.prose-page h1{font-size:clamp(34px,4.4vw,64px);margin-bottom:26px}
.prose-page p{font-size:calc(var(--body) + 1px);line-height:1.75;color:#E6DFCE}

/* ---------- widths keep responding above the desktop cap ---------- */
@media (min-width:1200px){:root{--body:19px;--measure:68ch;--gap:72px}}
@media (min-width:1440px){:root{--body:19px;--measure:70ch;--pad:72px}}

@media (min-width:1760px) and (min-height:781px){
  :root{--body:20px;--measure:72ch;--rail-w:104px;--note-w:300px;--gap:84px}
  .rail__nav{gap:32px}
  /* the marginal-note column opens in the right gutter; the measure stays centred (B7) */
  .prose{display:grid;max-width:none;width:auto;justify-content:center;align-items:start;
    grid-template-columns:minmax(0,var(--note-w)) minmax(40ch,var(--measure)) minmax(0,var(--note-w));column-gap:56px}
  .prose>*{grid-column:2}
  .prose>.mnote{grid-column:3;margin:0;align-self:start}
  .prose>.fig--break,.prose>.notes-fig{grid-column:1/-1;width:auto;margin-left:0}
  .prose>.table-wrap,.prose>.statrow{grid-column:1/-1;width:auto;margin-left:0}
  .art-head{max-width:1500px}
  .statement__pic{min-width:520px}
}
@media (min-width:1760px){
  .cat-list{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:1760px) and (min-height:1000px){
  .rail{gap:40px}
  .rail__marks{display:block;font-family:var(--label);font-size:10px;letter-spacing:.2em;text-transform:uppercase}
}
@media (min-width:2100px){
  :root{--body:21px;--measure:74ch;--note-w:340px;--pad:96px}
  .cat-list{gap:56px 40px}
  .argument{column-gap:96px}
  .fig--bleed img{max-height:80vh}
}
@media (min-width:2560px){
  :root{--body:22px;--measure:76ch;--note-w:380px}
  .statement{min-height:100vh}
  .statement h1{font-size:132px}
  .statement__deck{font-size:26px;max-width:40ch}
}

@media print{
  .rail,.supporters{display:none}
  body{background:#fff;color:#111}
  .shell{margin:0}
}

/* figure + notes composite: one inserted unit that carries both */
.notes-fig{display:grid;gap:22px;margin:52px 0}
.notes-fig>*{margin:0!important}
@media (min-width:900px){.notes-fig{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:start}}
@media (min-width:1760px){.prose>.notes-fig{grid-column:1/-1}}

/* rail row + division strip both visible: tighten the header so content starts sooner */
@media (max-width:899px), (max-height:780px){
  .masthead{padding-top:13px;padding-bottom:11px;gap:4px 20px}
  .masthead a.wordmark{font-size:21px}
  .art-head{padding-top:34px}
  .rail{padding-top:8px;padding-bottom:8px}
}

/* 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}
.supporters__head{flex-wrap:wrap!important}
.sponsor-row{flex-wrap:wrap!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-blurb-contrast: the design never coloured .sponsor-blurb because its bar was
   marks-only; our copy would inherit the page's dark ink onto a dark tile. */
.sponsor .sponsor-blurb{color:rgba(255,255,255,.82)}
.sponsor .sponsor-name{color:rgba(255,255,255,.95)}

/* 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-row .sponsor.sponsor img{height:38px!important;display:block!important;width:100%!important}

/* op-money-columns: the supporters block ran one tile per row — 8 tiles,
   590px at 390, 7% of the whole page. Two columns bring it to
   282px (52% shorter). Checked before writing: no new overflow, smallest mark still
   130px wide, longest blurb 0 lines, tile heights 64-64px.
   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-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){
  .sponsor-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:16px!important}
    .sponsor-row > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-row > * *{min-width:0!important;max-width:100%}
    .sponsor-row img,.sponsor-row svg{max-width:100%;height:auto}
}
/* op-heading-levels */
h3:where(.rt-h4){font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; line-height: 1.02; margin: 0px;}
.mnote h3:where(.rt-h4){font-family: var(--label); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--teal-lift); font-weight: 400; margin-bottom: 8px;}
.callout h3:where(.rt-h4), .notes-unit h3:where(.rt-h4){font-family: var(--label); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-print); font-weight: 400; margin: 0px 0px 16px;}
.notes-unit h3:where(.rt-h4){font-family: var(--label); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-print); font-weight: 400; margin: 0px 0px 16px;}
/* op-heading-levels:end */
@media (min-width:660px) and (max-width:1439px){.sponsor-row.sponsor-row:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(250px,calc(50% - 8px)),1fr))!important;column-gap:16px!important;row-gap:16px!important;justify-content:stretch!important;align-items:stretch!important}.sponsor-row.sponsor-row > [data-partner]{flex:none!important;width:auto!important;max-width:none!important;margin-left:0!important;margin-right:0!important}}
