:root{
  /* palette — ground, ink, accent, secondary, panel */
  --ground:#FAF8F3; --panel:#E9E5DA; --ink:#14181F; --ink-soft:#4C4F57; --ink-faint:#7C7F86;
  --slate:#37507A; --slate-pale:#A9B7D4; --clay:#C4562F; --hair:rgba(20,24,31,.14);
  --measure:68ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:400 17px/1.6 'Chivo',system-ui,sans-serif;text-wrap:pretty}
img{max-width:100%;display:block}
a{color:var(--clay);text-decoration:none}
a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:'Faustina',Georgia,serif;font-weight:700;letter-spacing:-.015em;margin:0}
.wrap{max-width:1220px;margin:0 auto;padding-inline:28px}
.wrap.mast-row,.wrap.nav-grid,.wrap.art-head,.wrap.band-tight,.wrap.band,.wrap.quiet-row,.wrap.foot-grid,.wrap.foot-base{padding-inline:28px}
.wrap-narrow{max-width:860px;margin:0 auto;padding-inline:28px}
.ico{flex:none}
.brk-t{font:500 14px 'Spline Sans Mono',ui-monospace,monospace}
.kicker{font:500 11px 'Chivo';letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.mono{font-family:'Spline Sans Mono',ui-monospace,monospace}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--ground);padding:8px 12px;z-index:9}

/* ── masthead + wide index nav ───────────────────────── */
.mast{border-bottom:1px solid var(--hair)}
.mast-row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding-block:20px 16px}
.wordmark{font-family:'Faustina',Georgia,serif;font-weight:700;font-size:31px;line-height:1;color:var(--ink);letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.wordmark:hover{text-decoration:none;color:var(--ink)}
.wordmark .ico{color:var(--clay)}
.tagline{font-size:15px;color:var(--ink-soft);max-width:36ch;text-align:right;margin:0}
.nav{background:var(--slate);color:#EFF1F6}
.nav a{color:#EFF1F6}
.nav-grid{display:flex;flex-wrap:wrap;gap:4px 26px;padding-block:11px}
.nav-grid a{display:flex;align-items:center;gap:8px;font-size:15px;padding:5px 0;border-bottom:2px solid transparent}
.nav-grid a:hover{text-decoration:none;border-bottom-color:var(--clay)}
.nav-grid a[aria-current]{border-bottom-color:var(--clay);color:#fff}
.nav-sep{flex:1}
.nav-utility{display:flex;gap:22px;align-items:center}

/* ── homepage bands ─────────────────────────────────── */
.band{padding-block:56px}
.band-tight{padding-block:34px}
.band-panel{background:var(--panel)}
.band-slate{background:var(--slate);color:#EFF1F6}
.band-slate h2,.band-slate h3{color:#fff}
.band-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-bottom:22px;border-bottom:2px solid var(--ink);margin-bottom:26px}
.band-head h2{font-size:26px;display:flex;align-items:center;gap:12px}
.band-head .ico{color:var(--clay)}

.lead-full{position:relative;background:var(--ink)}
.lead-full .lf-img{position:relative;height:clamp(420px,74vh,760px);background:var(--panel)}
.lead-full .lf-img img{width:100%;height:100%;object-fit:cover;display:block}
.lead-full .lf-hold{position:absolute;inset:auto 0 0 0;pointer-events:none}
.lead-full .lf-hold .wrap{display:flex;pointer-events:none}
.lead-full .lf-txt{pointer-events:auto;position:relative;width:min(640px,58%);margin-bottom:-56px;background:var(--ink);color:var(--ground);padding:38px 40px 34px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px rgba(0,0,0,.34)}
.lead-full .lf-txt h1{font-size:clamp(30px,3.4vw,50px);line-height:1.03;color:#fff}
.lead-full .lf-txt h1 a{color:inherit}
.lead-full .lf-dek{font-size:18px;line-height:1.5;color:#CFD2D8;max-width:46ch;margin:0}
.lead-full .sig{color:#EFF1F6}
.lead-full .sig li span{color:var(--slate-pale)}
.lead-spacer{height:56px}
@media (max-width:1000px){
  .lead-full .lf-img{height:clamp(300px,46vh,420px)}
  .lead-full .lf-hold{position:static}
  .lead-full .lf-txt{width:auto;margin-bottom:0;box-shadow:none;padding:28px 0 32px}
  .lead-full .lf-hold .wrap{display:block}
  .lead-spacer{display:none}
}
.lead-feature{display:grid;grid-template-columns:1.15fr .85fr;gap:0;align-items:stretch}
.lead-feature .lf-img{position:relative;min-height:460px;background:var(--panel)}
.lead-feature .lf-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.lead-feature .lf-txt{background:var(--ink);color:var(--ground);padding:44px 44px 38px;display:flex;flex-direction:column;justify-content:center;gap:16px}
.lead-feature h1{font-size:46px;line-height:1.04;color:#fff}
.lead-feature .lf-dek{font-size:18px;color:#CFD2D8;max-width:44ch}
.lead-feature .sig li span{color:var(--slate-pale)}
.lf-more{color:#fff;border-bottom:2px solid var(--clay);align-self:flex-start;padding-bottom:2px;font-weight:500}

.sig{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px;font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:13px}
.sig li{display:flex;gap:7px;align-items:baseline;border:1px solid currentColor;border-radius:2px;padding:3px 9px;opacity:.95}
.sig li span{text-transform:uppercase;letter-spacing:.1em;font-size:10px;opacity:.75}

/* register table */
.register{width:100%;border-collapse:collapse;font-size:15px}
.register caption{text-align:left;padding-bottom:10px;color:var(--ink-soft);font-size:14px}
.register th{font:500 11px 'Chivo';letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding:8px 14px 8px 0;border-bottom:1px solid var(--ink)}
.register td{padding:13px 14px 13px 0;border-bottom:1px solid var(--hair);vertical-align:baseline}
.register tr td:first-child{width:62px;color:var(--clay)}
.register .r-title{font-family:'Faustina',Georgia,serif;font-weight:600;font-size:19px;color:var(--ink)}
.register .r-title:hover{color:var(--clay)}
.register .r-sec{white-space:nowrap;color:var(--ink-soft);font-size:14px}
.register td.mono{font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:13.5px;color:var(--ink-soft);white-space:nowrap}
.register .r-no{color:var(--clay)}
.reg-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:16px;font-size:14px;color:var(--ink-soft)}

/* card grid — even height */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px}
.card{display:flex;flex-direction:column;background:var(--ground);border:1px solid var(--hair)}
.card .c-img{aspect-ratio:16/10;overflow:hidden;background:var(--panel)}
.card .c-img img{width:100%;height:100%;object-fit:cover}
.card .c-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:9px;flex:1}
.card h3{font-size:21px;line-height:1.2;min-height:2.4em}
.card p{margin:0;font-size:14.5px;color:var(--ink-soft)}
.card .sig{margin-top:auto;color:var(--ink-soft);font-size:12px}
.card .c-sec{display:flex;align-items:center;gap:7px;color:var(--clay);font:500 11px 'Chivo';letter-spacing:.16em;text-transform:uppercase}

/* section index */
.sec-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px;background:var(--hair)}
.sec-index a{display:grid;grid-template-rows:74px auto;gap:14px;align-content:start;background:var(--ground);padding:26px 24px 24px;color:var(--ink);position:relative;min-height:214px}
.sec-index a:hover{background:var(--panel);text-decoration:none}
.sec-index a:hover .ico{color:var(--ink)}
.sec-index .ico{color:var(--clay);stroke-width:1.25;transition:color .15s}
.sec-index h3{font-size:22px}
.sec-index p{margin:4px 0 0;font-size:14.5px;color:var(--ink-soft);max-width:26ch}
.sec-index .s-count{position:absolute;top:22px;right:22px;font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:12.5px;color:var(--ink-soft)}
.sec-index .s-body{align-self:start}

/* quiet line */
.quiet{padding-block:46px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.quiet p{margin:0;font-family:'Faustina',Georgia,serif;font-size:30px;line-height:1.3;max-width:30ch}
.quiet-row{display:flex;align-items:center;gap:36px;justify-content:space-between}

/* ── figures: one drawing system, three treatments ──── */
figure{margin:0}
figcaption{font-size:15px;line-height:1.45;color:var(--ink)}
.credit{display:block;font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}
/* 1 · plate: full measure-breaking image, numbered bracket over the corner, rule above caption */
.fig-plate{margin:0 0 34px}
.art-body>.fig-plate{margin-top:38px}
.fig-plate .f-hold{position:relative}
.fig-plate img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fig-plate .brk{position:absolute;left:-12px;top:-12px;background:var(--ground);color:var(--clay);padding:2px 4px}
.fig-plate figcaption{border-top:2px solid var(--clay);margin-top:14px;padding-top:10px;max-width:56ch}
/* 2 · mat: image sits on a slate mat, caption in the second column */
.fig-mat{margin:42px 0;background:var(--slate);padding:16px;display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:end}
.fig-mat img{width:100%;aspect-ratio:3/2;object-fit:cover}
.fig-mat figcaption{color:#EFF1F6;padding-bottom:4px}
.fig-mat .credit{color:var(--slate-pale)}
/* 3 · inset: sits in the column, prose beside it, hairline frame + hanging caption */
.fig-inset{float:right;width:min(320px,42%);margin:6px 0 20px 30px;border:1px solid var(--hair);padding:10px;background:var(--panel)}
.fig-inset img{width:100%;aspect-ratio:1/1;object-fit:cover}
.fig-inset figcaption{font-size:13.5px;line-height:1.4;padding:10px 2px 0;color:var(--ink-soft)}
/* 4 · gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:32px 0}
.gallery figure{border:1px solid var(--hair);padding:8px;background:var(--panel)}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{font-size:13px;padding-top:8px;color:var(--ink-soft)}

/* ── article ───────────────────────────────────────── */
.art-head{padding-block:40px 26px}
.art-crumb{display:flex;align-items:center;gap:9px;font:500 11px 'Chivo';letter-spacing:.18em;text-transform:uppercase;color:var(--clay);padding-bottom:16px}
.art-head h1{font-size:52px;line-height:1.04;max-width:26ch}
.art-lead,.lead{font-size:21px;line-height:1.5;color:var(--ink-soft);max-width:52ch;margin:18px 0 0}
.art-meta{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--hair)}
.art-body{max-width:var(--measure);font-size:19px;line-height:1.72}
.art-body>p{margin:0 0 22px}
.art-body>p:last-child{margin-bottom:0}
.art-body>.fig-plate,.art-body>.fig-mat,.art-body>.mat,.art-body>.gallery,.art-body>.pullquote,.art-body>.callout,.art-body>.blockquote,.art-body>.statrow,.art-body>.timeline,.art-body>.versus,.art-body>.datatable{clear:both}
.art-body>p+.fig-inset{margin-top:2px}
.art-body h2{font-size:28px;line-height:1.2;margin:44px 0 14px;clear:both}
.art-body h3{font-size:21px;margin:28px 0 8px;clear:both}
.art-wide{max-width:1000px}
.pullquote{margin:40px 0;padding:4px 0 4px 24px;border-left:3px solid var(--clay);max-width:44ch}
.pullquote p{margin:0;font-family:'Faustina',Georgia,serif;font-size:27px;line-height:1.3}
.blockquote{margin:30px 0;padding:18px 22px;background:var(--panel)}
.blockquote p{margin:0;font-family:'Faustina',Georgia,serif;font-size:21px}
.blockquote cite{display:block;margin-top:10px;font-style:normal;font-size:14px;color:var(--ink-soft)}
.callout{margin:32px 0;border:1px solid var(--ink);border-top:6px solid var(--clay);padding:20px 22px;background:var(--ground)}
.callout p{margin:0}
.note{font-size:15.5px;color:var(--ink-soft);border-left:2px solid var(--slate);padding-left:14px}
/* notes-for-design material: a working panel, not a rail */
.mat{margin:42px 0;background:var(--panel);border-top:2px solid var(--ink)}
.mat-head{display:flex;align-items:center;gap:12px;padding:14px 22px 10px}
.mat-head h3{font-size:19px}
.mat-head .brk{color:var(--clay)}
.mat ul{list-style:none;margin:0;padding:0 22px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2px 26px}
.mat li{padding:11px 0;border-top:1px solid var(--hair);font-size:15.5px;line-height:1.5}
.mat li b{font-family:'Spline Sans Mono',ui-monospace,monospace;font-weight:500;font-size:14px;color:var(--slate);display:block}
.related-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px}
.related-links li{border-top:1px solid var(--hair)}
.related-links a{display:flex;gap:10px;align-items:baseline;padding:14px 0;color:var(--ink);font-family:'Faustina',Georgia,serif;font-weight:600;font-size:19px}
.related-links a:hover{color:var(--clay);text-decoration:none}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.further-grid a{border:1px solid var(--hair);padding:16px;color:var(--ink);font-family:'Faustina',Georgia,serif;font-weight:600}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:30px 0}
.statblock{border-top:3px solid var(--clay);padding-top:10px}
.stat-num{display:block;font-family:'Faustina',Georgia,serif;font-weight:700;font-size:38px;line-height:1}
.stat-label{font-size:14px;color:var(--ink-soft)}
.timeline{list-style:none;margin:28px 0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:20px;padding:12px 0;border-top:1px solid var(--hair);font-size:16px}
.t-when{font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:13.5px;color:var(--slate);text-transform:uppercase;letter-spacing:.06em}
.versus,.datatable{width:100%;border-collapse:collapse;font-size:15.5px;margin:28px 0}
.versus th,.datatable th{text-align:left;font:500 11px 'Chivo';letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--ink);padding:8px 12px 8px 0}
.versus td,.datatable td{padding:11px 12px 11px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.chart figcaption{margin-top:10px;font-size:14px;color:var(--ink-soft)}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-top:1px solid var(--hair)}
.cat-list li:last-child{border-bottom:1px solid var(--hair)}
.cat-list a{display:grid;grid-template-columns:62px 1fr auto;gap:18px;align-items:baseline;padding:16px 0;color:var(--ink)}
.cat-list a:hover{text-decoration:none;color:var(--clay)}
.cat-list .cl-t{font-family:'Faustina',Georgia,serif;font-weight:600;font-size:22px}
.cat-list .cl-b{display:block;font-family:'Chivo';font-weight:400;font-size:15px;color:var(--ink-soft);margin-top:3px;max-width:62ch}
.cat-list .brk{color:var(--clay)}
.profile-grid,.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:24px 0}
.profile-card{border:1px solid var(--hair);padding:18px;background:var(--ground)}
.profile-card .p-photo{width:76px;height:76px;object-fit:cover;border-radius:50%;margin-bottom:12px}
.profile-card h3{font-size:20px}
.p-role{font:500 11px 'Chivo';letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin:4px 0 8px}
.profile-card p{margin:0 0 8px;font-size:15px;color:var(--ink-soft)}
.org-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 14px;border:1px solid var(--hair);padding:14px;align-items:center}
.org-logo{grid-row:span 2;width:56px;height:56px;object-fit:contain;background:var(--ink);padding:6px}
.org-name{font-family:'Faustina',Georgia,serif;font-weight:600;font-size:17px;color:var(--ink)}
.org-host{font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:12.5px;color:var(--ink-soft)}
.entity-ref{white-space:nowrap;border-bottom:1px solid var(--clay)}
details.more{margin-top:14px}
details.more summary{cursor:pointer;font:500 14px 'Chivo';color:var(--clay);padding:8px 0}

/* ── supporters ─────────────────────────────────────── */
.sponsor-groups{display:flex;flex-direction:column;gap:30px}
.sponsor-group-label{font:500 11px 'Chivo';letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);padding-bottom:12px;border-bottom:1px solid var(--hair);margin-bottom:18px}
.sponsor-wall{display:grid;grid-template-columns:repeat(auto-fit,340px);grid-auto-rows:minmax(148px,auto);grid-auto-flow:row dense;gap:18px;justify-content:space-between;align-items:stretch}
.sponsor{display:flex;flex-direction:column;gap:12px;background:var(--ground);border:1px solid var(--hair);padding:16px;color:var(--ink)}
.sponsor.feat{grid-column:span 2;display:grid;grid-template-columns:262px minmax(200px,1fr);grid-template-rows:auto auto;column-gap:24px;row-gap:6px;align-content:center}
.sponsor.feat img{grid-row:1 / span 2;align-self:center}
.sponsor.feat .sponsor-name{grid-column:2;font-size:20px}
.sponsor.feat .sponsor-blurb{grid-column:2;font-size:15.5px}
@media (max-width:1100px){.sponsor.feat{grid-column:auto;grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:12px}.sponsor.feat img{grid-row:auto}.sponsor.feat .sponsor-name,.sponsor.feat .sponsor-blurb{grid-column:1}.sponsor.feat .sponsor-name{font-size:18px}.sponsor.feat .sponsor-blurb{font-size:14px}}
@media (max-width:760px){.sponsor-wall{grid-template-columns:1fr;grid-auto-rows:auto}}
.sponsor:hover{text-decoration:none;border-color:var(--ink)}
.sponsor img{width:262px;max-width:100%;height:74px;background:var(--ink);padding:14px 18px;object-fit:contain;object-position:center}
.sponsor-name{font-family:'Faustina',Georgia,serif;font-weight:600;font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sponsor-blurb{font-size:14px;line-height:1.45;color:var(--ink-soft);min-width:200px;margin-top:0}

/* ── footer ─────────────────────────────────────────── */
.foot{background:var(--ink);color:#DDDFE4;margin-top:64px;padding-block:44px 38px}
.foot a{color:#DDDFE4}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
.foot h4{font:500 11px 'Chivo';letter-spacing:.2em;text-transform:uppercase;color:#8E93A0;margin-bottom:12px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px}
.foot .fm{font-family:'Faustina',Georgia,serif;font-weight:700;font-size:22px;color:#fff;display:flex;gap:10px;align-items:center}
.foot .fm .ico{color:var(--clay)}
.foot p{font-size:14px;color:#9EA2AA;max-width:34ch}
.foot-base{margin-top:32px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:12px;color:#8E93A0;display:flex;flex-wrap:wrap;gap:14px 26px}

/* ── responsive ─────────────────────────────────────── */
@media (max-width:1000px){
  .lead-feature{grid-template-columns:1fr}
  .lead-feature .lf-img{min-height:300px}
  .lead-feature h1{font-size:36px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .fig-mat{grid-template-columns:1fr}
  .art-head h1{font-size:40px}
}
@media (max-width:760px){
  body{font-size:16.5px}
  .wrap,.wrap-narrow,.wrap.mast-row,.wrap.nav-grid,.wrap.art-head,.wrap.band-tight,.wrap.band,.wrap.quiet-row,.wrap.foot-grid,.wrap.foot-base{padding-inline:18px}
  .mast-row{flex-direction:column;align-items:flex-start;gap:8px}
  .tagline{text-align:left}
  .wordmark{font-size:25px}
  .nav-grid{gap:2px 18px}
  .band{padding-block:38px}
  .art-head h1{font-size:32px}
  .art-body{font-size:17.5px}
  .fig-inset{float:none;width:auto;margin:24px 0}
  .register tr td:first-child{width:46px}
  .register .r-sec,.register td.hide-sm{display:none}
  .register th.hide-sm{display:none}
  .quiet-row{flex-direction:column;align-items:flex-start;gap:20px}
  .quiet p{font-size:24px}
  .sponsor img{width:100%}
  .cat-list a{grid-template-columns:46px 1fr;gap:12px}
  .mat ul{grid-template-columns:1fr}
  .timeline li{grid-template-columns:1fr;gap:4px}
  .foot-grid{grid-template-columns:1fr}
}
@media print{.nav,.foot,.sponsor-band{display:none}}

/* figures break the measure inside the reading column */
@media (min-width:1120px){
  .art-body .fig-plate,.art-body .fig-mat,.art-body .mat,.art-body .gallery{margin-inline:-130px}
}
.art-body::after{content:"";display:block;clear:both}

/* interactive register controls (progressive enhancement — rows are in the HTML) */
.reg-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 20px}
.reg-controls .kicker{margin-right:4px}
.chipbtn{font:400 13.5px 'Chivo';font-family:'Spline Sans Mono',ui-monospace,monospace;background:var(--ground);color:var(--ink-soft);border:1px solid var(--hair);padding:6px 12px;cursor:pointer;border-radius:2px}
.chipbtn:hover{border-color:var(--ink);color:var(--ink)}
.chipbtn[aria-pressed="true"]{background:var(--slate);border-color:var(--slate);color:#fff}
.register .sortbtn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font:500 11px 'Chivo';letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.register .sortbtn:hover{color:var(--clay)}
.register .sortbtn:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.chipbtn:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
a:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
.register .sortbtn .sarr::after{content:"\2195";font-size:12px;opacity:.5}
.register .sortbtn[data-dir="asc"]{color:var(--clay)}
.register .sortbtn[data-dir="asc"] .sarr::after{content:"\2191";opacity:1}
.register .sortbtn[data-dir="desc"]{color:var(--clay)}
.register .sortbtn[data-dir="desc"] .sarr::after{content:"\2193";opacity:1}

/* homepage: spot-drawing band and the inline stat row */
.stat-inline{margin:0;min-width:min(420px,100%)}
.spot-band{display:grid;grid-template-columns:1fr 440px;gap:56px;align-items:center}
.spot-hold{color:#EFF1F6}
.spot-hold svg{max-width:100%;height:auto}
.spot-h{font-size:clamp(26px,2.6vw,38px);line-height:1.1;margin:14px 0 0;max-width:22ch}
.spot-p{font-size:18px;color:#D9DFEC;max-width:52ch}
@media (max-width:900px){
  .spot-band{grid-template-columns:1fr;gap:28px}
  .spot-hold{order:-1}
}
@media (max-width:760px){
  .stat-inline{min-width:0;width:100%;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
  .spot-p{font-size:16.5px}
}

/* sp-mark-align: marks sit CENTRED in their box. Placement only — Design's size,
   padding, panel and object-fit are untouched. */
.sponsor img,.sponsor-box img,.sp-logo img{object-position:center!important;margin-left:auto!important;margin-right:auto!important;display:block}
.sponsor .sp-logo,.sponsor-box{display:flex;align-items:center;justify-content:center}

/* sp-tile-uniform: a slot never grows to fill its row — every tile the same width in
   every row, whatever the count. Only flex-grow is touched. */
.sponsor{flex-grow:0!important}
.sponsor.lead-line,.sponsor.feat.lead-line{flex-grow:1!important}

/* sp-mark-fit: width:100% + padding must not overflow the tile — but the declared
   HEIGHT is the mark's size and border-box alone steals the vertical padding from it.
   earlychristianireland declares height:66px with 10px top/bottom padding: border-box
   left a 46px mark and the operator read it as 'logos too small'. Keep the horizontal
   inset, drop the vertical padding, so the mark occupies the full height Design set. */
.sponsor img,.sponsor-box img,.sp-logo img{box-sizing:border-box!important;padding-top:0!important;padding-bottom:0!important}

/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* 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-wall .sponsor.sponsor img{box-sizing:border-box!important;padding:12px 19px!important}


/* sp-wall-3up: the standing supporters read 3 + 3.
   Design gives .sponsor.feat grid-column:span 2, so a 752px tile sat beside a 340px one and the
   wall came out 2, 2, 1, 3, 2 — the operator's "looks empty". Every tile takes one 340px track,
   so each row holds three. The featured tile keeps its own two-row internal layout (mark beside
   the text) which is what gives it the wider text column. */
@media (min-width:901px){
  /* ⚠️ OVERRIDING THE TRACK LIST LEFT A COLLAPSED COLUMN. Design's feat is a grid of
     262px + minmax(200px,1fr) with its mark spanning both rows; replacing the columns with a
     single 1fr resolved to "0px 286px" and the mark landed in the collapsed track at 38px wide.
     The feat is given the SAME layout as its siblings instead — a flex column — so it takes one
     340px track and reads identically, three to a row. */
  .sponsor-wall .sponsor.feat{grid-column:span 1!important;display:flex!important;
    flex-direction:column!important;gap:12px!important}
  .sponsor-wall .sponsor.feat img{grid-row:auto!important;width:100%!important;
    align-self:auto!important}
}

/* op-overflow-row: a.wordmark overhung the viewport by 14px at 360
   (index.html) — measured width 356px reaching x=374, white-space:normal,
   min-width:auto, inside div.wrap.mast-row (flex/nowrap).
   Closed at the element that causes it, at phone widths only. */
@media (max-width:640px){
  .wrap.mast-row{flex-wrap:wrap}
  .wordmark{min-width:0;max-width:100%}
}

/* op-overflow-row: span overhung the viewport by 54px at 320 on
   index.html — width 50px reaching x=374, white-space:normal,
   min-width:auto, inside a.wordmark (flex/nowrap,
   tracks none). Closed at the element that causes it, phone
   widths only. */
@media (max-width:640px){
  .wordmark{flex-wrap:wrap}
  .wordmark span{min-width:0;max-width:100%}
}

/* op-overflow-wide: table.register.sortable overhung the viewport by 37px at 320 on
   index.html — width 339px reaching x=357, white-space:normal,
   min-width:0px, inside div.wrap (block/nowrap,
   tracks none). Closed at the element that causes it, phone
   widths only. */
@media (max-width:640px){
  .register.sortable{min-width:0;max-width:100%;overflow-wrap:anywhere}
}

/* op-overflow-wide: table.register overhung the viewport by 51px at 320 on
   register.html — width 353px reaching x=371, white-space:normal,
   min-width:0px, inside div.wrap (block/nowrap,
   tracks none). Closed at the element that causes it, phone
   widths only. */
@media (max-width:640px){
  .register{min-width:0;max-width:100%;overflow-wrap:anywhere}
}

/* op-footer-compact: the footer printed 4 rows for 4 link(s) in
   1 list(s) — 839px at 390, 8% of the whole page. Design's own
   good case (evbb) has no list at all: its footer links simply flow inline, 479px in total.
   Here the lists flow inline too,
   measured 839 -> 647px (23% shorter) with no new overflow. Both shapes were
   tried and the shorter one kept — two columns helps a wide group set and hurts a narrow one.
   Phone widths only; the desktop footer is untouched. */
@media (max-width:640px){
  footer ul,footer ol{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;column-gap:clamp(8px,2.5vw,36px)!important;row-gap:8px!important}
  footer ul > li,footer ol > li{width:auto!important;flex:0 0 auto;max-width:100%}
}

/* op-money-columns: the supporters block ran one tile per row — 10 tiles,
   2037px at 390, 19% of the whole page. Two columns bring it to
   1353px (34% shorter). Checked before writing: no new overflow, smallest mark still
   136px wide, longest blurb 3 lines, tile heights 184-319px.
   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.
   The blurb is held to three rows at phone width, because a nine- or eleven-line blurb in a narrow column made two columns TALLER than one. The copy stays in the markup. 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 (.sponsor-wall), 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-wall{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:18px!important}
    .sponsor-wall > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-wall > * *{min-width:0!important;max-width:100%}
    .sponsor-wall img,.sponsor-wall svg{max-width:100%;height:auto}
  .sponsor-wall .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-odd-tier-lead: .sponsor-wall (5 tiles), .sponsor-wall (5 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){
  .sponsor-wall:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
  .sponsor-wall: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 — "Family Sinners" — losing up to 29px 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-heading-levels */
h2:where(.rt-h3){font-family: Faustina, Georgia, serif; font-weight: 700; letter-spacing: -0.015em; margin: 0px;}
.sec-index h2:where(.rt-h3){font-size: 22px;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article.card > div.c-img > img,
  div > figure.fig-mat > img,
  div.art-body > figure.article-figure.fig-inset > img,
  div.art-body > figure.article-figure.fig-mat > img,
  figure.article-figure.fig-plate > div.f-hold > img,
  section.lead-full > div.lf-img > img){height:auto}
/* op-img-dims:end */
@media (min-width:700px) and (max-width:779px){.sponsor-wall:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--sp-gap,16px)!important}.sponsor-wall:has(> [data-partner]) > [data-partner]{width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important}}@media (min-width:800px) and (max-width:1119px){.sponsor-wall:has(> [data-partner]){grid-template-columns:repeat(2,minmax(0,340px))!important;justify-content:center!important;column-gap:var(--sp-gap,18px)!important}}
