/* ramioul.org — Register
   Palette roles:
     --paper    ground
     --ink      text
     --oxide    accent (saturated, hue ~8°)  — numerals, rules, one full band
     --prussian secondary (saturated, hue ~210°) — table heads, layer band, panels
     --mat      pale ground for mats, panels, figure cards
*/
:root{
  --paper:#F2F0EA;
  --ink:#14181B;
  --ink-2:#262C2E;
  --ink-soft:#3D4547;
  --quiet:#666E6D;
  --oxide:#A32B1F;
  --oxide-pale:#E0A89F;
  --prussian:#16456E;
  --prussian-pale:#A8BED4;
  --mat:#D8DCDB;
  --off:#EEF0EC;
  --rule:rgba(20,24,27,.22);
  --rule-soft:rgba(20,24,27,.12);
  --display:"Libre Caslon Display",Georgia,"Times New Roman",serif;
  --text:"Literata",Georgia,serif;
  --gut:clamp(18px,4vw,56px);
  --measure:730px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--text);font-size:17px;line-height:1.6;
  font-weight:400;-webkit-font-smoothing:antialiased;text-wrap:pretty;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--prussian);text-decoration:none;border-bottom:1px solid rgba(22,69,110,.35)}
a:hover{color:var(--oxide);border-bottom-color:var(--oxide)}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;margin:0;line-height:1.06;letter-spacing:-.005em}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.05em;padding-left:1.15em}
table{border-collapse:collapse;width:100%}
svg{display:block}
.icon{width:1.15em;height:1.15em;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.icon--lg{width:34px;height:34px;stroke-width:1.4}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--gut)}
.measure{max-width:var(--measure);margin-inline:auto;padding-inline:var(--gut)}
.kicker{font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--oxide);
  display:flex;align-items:center;gap:9px;margin:0 0 14px}
.kicker--quiet{color:var(--ink-soft)}
.num{font-family:var(--display);color:var(--oxide);line-height:1}
.rule-heavy{border-bottom:3px solid var(--ink)}
.rule-thin{border-bottom:1px solid var(--rule)}

/* ---------- masthead + register header ---------- */
.masthead{padding-top:clamp(18px,2.6vw,34px);padding-bottom:0}
.mast-top{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;
  flex-wrap:wrap;padding-bottom:14px}
.mast-id{display:flex;align-items:flex-start;gap:clamp(10px,1.6vw,20px)}
.mast-mark{height:clamp(29px,5.8vw,71px);width:auto;flex:0 0 auto;color:var(--oxide);
  margin-top:clamp(3px,1.1vw,13px)}
.wordmark{font-family:"Libre Caslon Text",var(--display);font-weight:700;
  font-size:clamp(40px,8vw,98px);line-height:.86;letter-spacing:-.03em;
  color:var(--ink);display:block;border:0}
a.wordmark:hover{color:var(--oxide)}
.mast-sub{font-size:clamp(13.5px,1.15vw,15.5px);line-height:1.4;color:var(--ink-soft);
  margin-top:10px;white-space:nowrap}
@media (max-width:720px){.mast-sub{white-space:normal;max-width:30em}}
.mast-meta{font-family:var(--display);font-size:14px;letter-spacing:.2em;color:var(--oxide);
  text-align:right;padding-bottom:5px;line-height:1.5}
.mast-meta a{color:var(--oxide);border-bottom-color:rgba(163,43,31,.4)}

.index-table{border-bottom:3px solid var(--ink)}
.index-table.menu{background:var(--off);border-top:3px solid var(--ink);margin-top:0}
.index-table.menu .index-row{padding:9px 14px;align-items:center;gap:8px 20px;
  border-bottom:1px solid var(--rule-soft);transition:background .12s}
.index-table.menu .index-row:hover{background:var(--mat)}
.index-table.menu .index-row.is-current{background:var(--mat);box-shadow:inset 4px 0 0 var(--oxide)}
.index-table.menu .index-no{font-size:21px}
.index-table.menu .index-name{font-size:clamp(18px,1.7vw,21px)}
.index-table.menu .index-entries{font-size:13.5px;line-height:1.5}
.mast--inner .index-table.menu .index-row{padding:8px 14px}
.index-row{display:grid;grid-template-columns:58px minmax(180px,250px) 1fr;gap:10px 22px;
  padding:13px 0;border-bottom:1px solid var(--rule-soft);align-items:baseline}
.index-row:last-child{border-bottom:0}
.index-no{font-family:var(--display);font-size:25px;color:var(--oxide);line-height:1}
.index-name{font-family:var(--display);font-size:clamp(20px,2vw,25px);line-height:1.1;
  display:flex;align-items:baseline;gap:10px;border:0;color:var(--ink)}
.index-name .icon{align-self:center;color:var(--oxide)}
.index-name:hover{color:var(--oxide)}
.index-entries{font-size:14.5px;line-height:1.55;color:var(--ink-soft);
  display:flex;flex-wrap:wrap;gap:2px 0}
.index-entries a{color:var(--ink-soft);border-bottom:0;display:inline-block;padding:7px .42em 7px 0}
.index-entries a::after{content:" ·";color:var(--quiet)}
.index-entries a:last-child::after{content:""}
.index-entries a:hover{color:var(--oxide);text-decoration:underline;text-underline-offset:3px}

/* compact header for inner pages */
.mast--inner .mast-top{padding-bottom:13px}
.mast--inner .wordmark{font-size:clamp(32px,4.6vw,52px)}
.mast--inner .mast-mark{height:clamp(23px,3.3vw,38px);margin-top:clamp(2px,.6vw,7px)}
.mast-nav{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:flex-end;
  font-size:14.5px;text-align:right}
.mast-nav a{color:var(--ink-soft);border-bottom-color:var(--rule-soft);
  display:flex;align-items:center;gap:7px}
.mast-nav a:hover{color:var(--oxide);border-bottom-color:var(--oxide)}
.mast-nav .icon{color:var(--oxide)}

/* ---------- bands ---------- */
.band{padding-block:clamp(40px,5.5vw,74px)}
.band--tight{padding-block:clamp(28px,3.6vw,46px)}
.band--prussian{background:var(--prussian);color:var(--off)}
.band--prussian h2,.band--prussian h3{color:var(--off)}
.band--prussian a{color:var(--oxide-pale);border-bottom-color:rgba(224,168,159,.4)}
.band--prussian a:hover{color:#fff;border-bottom-color:#fff}
.band--oxide{background:var(--oxide);color:#FAF2F0}
.band--mat{background:var(--mat)}
.band--ink{background:var(--ink);color:var(--off)}
.band--ink a{color:var(--oxide-pale);border-bottom-color:rgba(224,168,159,.4)}
.band--ink a:hover{color:#fff}
.band-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  flex-wrap:wrap;border-bottom:3px solid currentColor;padding-bottom:12px;margin-bottom:clamp(22px,2.6vw,34px)}
.band-head h2{font-size:clamp(28px,3.6vw,42px);display:flex;align-items:center;gap:14px}
.band-head h2 .icon--lg{color:var(--oxide);flex:0 0 auto}
.band--prussian .band-head h2 .icon--lg{color:var(--oxide-pale)}
.band-head .band-note{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.band--prussian .band-head .band-note,.band--ink .band-head .band-note{color:var(--prussian-pale)}

/* ---------- lead feature ---------- */
.lead-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(24px,3.4vw,56px);align-items:end}
.lead-feature h1{font-size:clamp(38px,6vw,72px);line-height:.99;margin-bottom:18px}
.lead-feature h1 a{color:inherit;border:0}
.lead-feature h1 a:hover{color:var(--oxide)}
.lead-standfirst{font-size:clamp(17px,1.55vw,21px);line-height:1.5;color:var(--ink-2);margin-bottom:20px}
.more{display:inline-flex;align-items:center;gap:9px;font-family:var(--text);font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  border:0;border-bottom:2px solid var(--oxide);padding-bottom:4px}
.more:hover{color:var(--oxide)}

/* ---------- figure system (3 treatments + inset) ---------- */
figure{margin:0}
.fig-cap{font-size:15.5px;line-height:1.45;color:var(--ink-2);font-family:var(--text)}
.fig-credit{display:block;font-size:11.5px;letter-spacing:.07em;color:var(--quiet);margin-top:7px}
.fig-n{font-family:var(--display);font-size:21px;color:var(--oxide);line-height:1}

/* 1 · mat card */
.fig--mat{background:var(--mat);padding:clamp(12px,1.3vw,20px)}
.fig--mat img{border:1px solid rgba(20,24,27,.32)}
.fig--mat figcaption{display:grid;grid-template-columns:44px 1fr;gap:0 4px;
  padding-top:14px;margin-top:14px;border-top:1px solid rgba(20,24,27,.3)}

/* 2 · bracketed plate */
.fig--bracket{position:relative;padding:14px}
.fig--bracket::before,.fig--bracket::after{content:"";position:absolute;width:44px;height:44px;
  border:2.4px solid var(--oxide)}
.fig--bracket::before{left:0;top:0;border-right:0;border-bottom:0}
.fig--bracket::after{right:0;bottom:0;border-left:0;border-top:0}
.fig--bracket figcaption{display:grid;grid-template-columns:44px 1fr;
  border-top:1px solid var(--ink);margin-top:10px;padding-top:12px}

/* 3 · full-bleed band, caption as a ruled row */
.fig--bleed{margin-block:clamp(28px,3.4vw,54px)}
.fig--bleed img{width:100%;max-height:min(74vh,660px);object-fit:cover}
.fig--bleed figcaption{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,240px);
  gap:0 20px;max-width:1240px;margin:0 auto;padding:13px var(--gut) 0;border-top:1px solid var(--ink)}
.fig--bleed .fig-cap{font-size:17px;max-width:40em}
.fig--bleed .fig-credit{text-align:right;margin-top:2px}

/* 4 · offset plate — wider than the measure, caption stepped into the margin */
.fig--offset{margin-block:clamp(28px,3.4vw,50px)}
.fig-offset-in{max-width:1020px;margin:0 auto;padding-inline:var(--gut)}
.fig--offset img{border-top:6px solid var(--prussian);width:100%}
.fig--offset figcaption{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);
  gap:0 30px;padding-top:13px}
.fig--offset .fig-cap{font-size:15px;line-height:1.45}

/* 5 · inset in the column, prose beside */
.fig--inset{background:var(--mat);padding:12px;margin:6px 0 18px}
.fig--inset figcaption{padding-top:10px}
.fig--inset .fig-cap{font-size:14px;line-height:1.4}
@media (min-width:900px){
  .fig--inset{float:right;width:300px;margin:6px 0 20px 32px}
  .fig--inset--left{float:left;margin:6px 32px 20px 0}
}
.fig--bar{border-top:6px solid var(--prussian);padding-top:14px}
.fig--bar figcaption{padding-top:12px}

/* ---------- register tables ---------- */
.register{width:100%}
.reg-head{display:grid;gap:20px;padding:11px 12px;background:var(--prussian);color:var(--off);
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase}
.reg-row{display:grid;gap:8px 20px;padding:16px 12px;border-bottom:1px solid var(--rule);align-items:start}
.reg-row:last-child{border-bottom:3px solid var(--ink)}
.reg-caves .reg-head,.reg-caves .reg-row{grid-template-columns:52px minmax(140px,1fr) minmax(130px,1fr) minmax(150px,1fr) minmax(0,2.2fr)}
.reg-dig .reg-head,.reg-dig .reg-row{grid-template-columns:52px minmax(200px,1.2fr) minmax(150px,1fr) minmax(0,2.2fr)}
.reg-no{font-family:var(--display);font-size:23px;color:var(--oxide);line-height:1}
.reg-name{display:block;font-family:var(--display);font-size:22px;line-height:1.12;border:0;color:var(--ink)}
.reg-meta{display:block;font-size:14.5px;color:var(--ink-soft)}
.reg-what{display:block;font-size:15.5px;line-height:1.5}
.org-name{display:block}
.org-host{display:block}
.sponsor-name{display:block}
.sponsor-blurb{display:block}
.stat-num,.stat-label{display:block}
.t-when,.t-what{display:block}
.term-name{display:block}
.reg-name:hover{color:var(--oxide)}
.reg-meta{font-size:14.5px;color:var(--ink-soft)}
.reg-what{font-size:15.5px;line-height:1.5}
.reg-label{display:none;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet)}

/* ---------- layer band ---------- */
.layers{display:grid;gap:0}
.layer{display:grid;grid-template-columns:96px minmax(0,1fr);gap:26px;align-items:center;
  padding:17px 0;border-bottom:1px solid rgba(238,240,236,.28)}
.layer:last-child{border-bottom:0}
.layer-num{color:var(--oxide-pale)}
.layer h3{font-family:var(--text);font-size:19px;font-weight:600;line-height:1.25;margin-bottom:3px}
.layer p{font-size:15px;line-height:1.5;color:var(--prussian-pale);margin:0}

/* ---------- signature line ---------- */
.signature{max-width:26em;margin-inline:auto;text-align:center}
.signature p{font-family:var(--display);font-size:clamp(24px,3.4vw,40px);line-height:1.28;margin:0}
.sig-mark{margin:0 auto 22px;width:118px;color:rgba(250,242,240,.75)}

/* ---------- seconds (a short group of 3) ---------- */
.seconds{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(22px,2.6vw,36px)}
.second{display:flex;flex-direction:column}
.second .thumb{aspect-ratio:16/10;object-fit:cover;width:100%}
.second h3{font-size:clamp(22px,2.2vw,27px);margin:14px 0 0;line-height:1.1}
.second h3 a{color:inherit;border:0}
.second h3 a:hover{color:var(--oxide)}
.second .sec-of{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--oxide);
  display:flex;align-items:center;gap:7px;margin:8px 0 9px}
.second p{font-size:15.5px;line-height:1.52;color:var(--ink-2);margin:0}

/* ---------- map ---------- */
.map-figure{margin:0;min-width:0}
.map-band{display:grid;grid-template-columns:minmax(230px,310px) minmax(0,1fr);gap:clamp(26px,3vw,54px);align-items:start}
@media (max-width:860px){.map-band{grid-template-columns:1fr}}
.map-slot{width:100%;background:var(--mat);min-height:220px}
.map-figure svg{width:100%;height:auto}
.map-figure figcaption{display:grid;grid-template-columns:52px 1fr;border-top:1px solid currentColor;
  margin-top:10px;padding-top:12px}
.band--ink .map-figure .fig-cap{color:var(--prussian-pale)}
.pin-list{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.pin-list li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;
  border-bottom:1px solid rgba(238,240,236,.2);font-size:16px}
.pin-list li:last-child{border-bottom:0}
.pin-list .pin-where{font-size:13.5px;color:#A89F8E}

/* ---------- supporters ---------- */
.sponsor-groups{display:grid;gap:clamp(24px,2.8vw,40px)}
.sponsor-tier{display:grid;gap:16px}
.sponsor-tier > h3{font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  font-family:var(--text);font-weight:600;color:var(--ink-soft);
  border-bottom:1px solid var(--rule);padding-bottom:8px}
.sponsor-roll{display:grid;grid-template-columns:repeat(auto-fit,264px);gap:16px}
.sponsor{display:flex;flex-direction:column;gap:10px;width:264px;padding:14px;
  background:var(--paper);border:1px solid var(--rule);border-bottom:2px solid var(--ink);
  text-decoration:none;color:var(--ink)}
.sponsor:hover{border-bottom-color:var(--oxide)}
.sponsor img{width:100%;height:46px;max-height:46px;object-fit:contain;background:var(--ink);padding:7px 12px}
.sponsor-name{font-family:var(--display);font-size:17px;line-height:1.2}
.sponsor-blurb{font-size:13.5px;line-height:1.45;color:var(--ink-soft)}
.sponsor.feat{min-height:196px}
.sponsor.feat img{height:56px;max-height:56px}
.band--mat .sponsor{background:var(--off)}

/* ---------- article ---------- */
.art-head{padding-top:clamp(28px,4vw,54px)}
.art-head h1{font-size:clamp(34px,5.6vw,68px);line-height:1;margin-bottom:18px;max-width:22em}
.art-sub{font-family:var(--display);font-size:clamp(20px,2.4vw,29px);line-height:1.24;
  color:var(--ink-2);max-width:26em;margin:0 0 18px}
.lead{font-size:clamp(17.5px,1.6vw,21px);line-height:1.5;color:var(--ink-2);max-width:34em}
.art-body{font-size:18.5px;line-height:1.78}
.art-body p{margin:0 0 1.3em;color:var(--ink-2)}
.art-body h2{font-size:clamp(25px,3vw,34px);margin:1.7em 0 .6em;line-height:1.12}
.art-body h2:first-child{margin-top:0}
.art-body strong{font-weight:600;color:var(--ink)}
.art-body em{font-style:italic}
.art-flow > *{max-width:var(--measure);margin-inline:auto;padding-inline:var(--gut)}
.art-flow > p,.art-flow > h2,.art-flow > figure,.art-flow > div,.art-flow > ul,.art-flow > ol{margin-left:auto;margin-right:auto}
.art-flow > .full{max-width:none;padding-inline:0}
.art-flow > .fig--mat{max-width:calc(var(--measure) + 40px)}
.art-flow::after{content:"";display:table;clear:both}

/* interrupters */
.notebox{background:var(--mat);padding:clamp(20px,2.4vw,34px) 0;margin-block:clamp(28px,3vw,44px)}
.notebox.band--prussian{background:var(--prussian);color:var(--off)}
.notebox.band--prussian h3{color:var(--oxide-pale)}
.notebox-in{max-width:1240px;margin:0 auto;padding-inline:var(--gut)}
.notebox h3{font-family:var(--text);font-size:12px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--oxide);margin-bottom:16px}
.termgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 34px}
.termgrid > div{display:grid;grid-template-columns:36px 1fr;gap:0 6px;
  padding:13px 0;border-top:1px solid var(--rule)}
.termgrid .num{font-size:17px}
.term-name{font-weight:600;display:block;color:var(--ink)}
.term-body{font-size:15.5px;line-height:1.5;color:var(--ink-2)}

.timeline{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0}
.timeline li{padding:16px 22px 18px 0;border-top:3px solid currentColor;
  display:flex;flex-direction:column;gap:7px}
.t-when{font-family:var(--display);font-size:20px;line-height:1.15;color:var(--oxide-pale)}
.t-what{font-size:15px;line-height:1.5;color:var(--prussian-pale)}
.band--mat .t-when,.notebox:not(.band--prussian) .t-when{color:var(--oxide)}
.band--mat .t-what,.notebox:not(.band--prussian) .t-what{color:var(--ink-2)}

.pullquote{margin:clamp(26px,3vw,40px) 0;padding:20px 0;
  border-top:2px solid var(--oxide);border-bottom:2px solid var(--oxide)}
.pullquote p{font-family:var(--display);font-size:clamp(21px,2.5vw,28px);line-height:1.3;
  margin:0;color:var(--ink)}
.blockquote{margin:clamp(24px,2.6vw,36px) 0;padding-left:22px;border-left:3px solid var(--prussian)}
.blockquote p{font-family:var(--display);font-size:21px;line-height:1.36;margin:0 0 10px}
.blockquote cite{font-style:normal;font-size:13.5px;letter-spacing:.06em;color:var(--quiet)}
.callout{background:var(--prussian);color:var(--off);padding:22px 24px;margin:clamp(24px,2.6vw,36px) 0}
.callout p{margin:0;color:var(--off);font-size:17px;line-height:1.55}
.note{font-size:15.5px;line-height:1.55;color:var(--ink-soft);
  border-left:3px solid var(--oxide);padding-left:16px}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0}
.statblock{padding:16px 20px 18px 0;border-top:3px solid var(--oxide)}
.stat-num{display:block;font-family:var(--display);font-size:clamp(30px,4vw,46px);line-height:1;color:var(--ink)}
.stat-label{display:block;font-size:14px;line-height:1.45;color:var(--ink-soft);margin-top:8px}

.datatable,.versus{font-size:15.5px}
.datatable th,.versus th{background:var(--prussian);color:var(--off);text-align:left;
  font-family:var(--text);font-weight:600;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;padding:10px 12px}
.datatable td,.versus td{padding:13px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.versus td:first-child{font-weight:600}
.tablewrap{overflow-x:auto}

.chart figcaption{font-size:14.5px;color:var(--ink-soft);margin-top:10px}
.chart svg{width:100%;height:auto}
.chart .ax{stroke:var(--rule);stroke-width:1}
.chart text{font-family:var(--text);font-size:11px;fill:var(--ink-soft)}
.chart .val{font-family:var(--display);font-size:13px;fill:var(--oxide)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.gallery figure{background:var(--mat);padding:10px}
.gallery figcaption{font-size:13.5px;line-height:1.4;color:var(--ink-2);padding-top:9px}
.profile-card.no-photo{border-top:3px solid var(--oxide);background:var(--off)}
.org-card.no-logo{grid-template-columns:1fr}
.sg-block{padding-block:clamp(26px,3vw,44px);border-top:1px solid var(--rule)}
.sg-block > h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:6px}
.sg-note{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet);margin-bottom:22px}
.sg-icons{display:flex;flex-wrap:wrap;gap:22px}
.sg-icons span{display:flex;align-items:center;gap:9px;font-size:14px}
.sg-icons .icon{color:var(--oxide);width:26px;height:26px}

/* cards / refs */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.profile-card{display:flex;flex-direction:column;background:var(--mat);padding:16px}
.profile-card .p-photo{aspect-ratio:4/3;object-fit:cover;width:100%;margin-bottom:14px}
.profile-card h3{font-size:24px;line-height:1.1}
.profile-card .p-role{font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--oxide);margin:8px 0 10px}
.profile-card p{font-size:15px;line-height:1.5;margin:0 0 .8em}
.profile-card .p-links{margin-top:auto;padding-top:8px;font-size:14.5px}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.org-card{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:center;
  padding:14px;background:var(--off);border:1px solid var(--rule);border-bottom:2px solid var(--ink)}
.org-card .org-logo{width:44px;height:44px;object-fit:contain;grid-row:span 2}
.org-name{font-family:var(--display);font-size:18px;line-height:1.15}
.org-host{font-size:13px;color:var(--quiet)}
.entity-ref{white-space:normal;overflow-wrap:anywhere}
.further-grid,.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:0 26px;list-style:none;margin:0;padding:0}
.further-grid a,.related-links a{display:block;padding:15px 0;border-top:3px solid var(--ink);
  border-bottom:0;font-family:var(--display);font-size:21px;line-height:1.18;color:var(--ink)}
.further-grid a:hover,.related-links a:hover{color:var(--oxide);border-top-color:var(--oxide)}
.related-links .rl-of{display:block;font-family:var(--text);font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--oxide);margin-bottom:7px}

/* category / archive */
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-bottom:1px solid var(--rule)}
.cat-list li:last-child{border-bottom:3px solid var(--ink)}
.cat-item{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,240px);gap:8px 22px;
  padding:20px 0;border:0;align-items:start;color:var(--ink)}
.cat-item:hover{color:var(--oxide)}
.cat-item .ci-title{display:block;font-family:var(--display);font-size:clamp(24px,2.6vw,32px);line-height:1.08}
.cat-item .ci-brief{display:block;font-size:15.5px;line-height:1.5;color:var(--ink-2);margin-top:8px;max-width:52em}
.cat-item .ci-thumb{aspect-ratio:16/10;object-fit:cover;width:100%}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(22px,2.6vw,38px)}
.hub-card{border-top:3px solid var(--ink);padding-top:16px}
.hub-card h2{font-size:clamp(24px,2.4vw,30px);display:flex;align-items:baseline;gap:10px}
.hub-card h2 .icon{align-self:center;color:var(--oxide)}
.hub-card h2 a{color:inherit;border:0}
.hub-card h2 a:hover{color:var(--oxide)}
.hub-card .hub-blurb{font-size:15.5px;color:var(--ink-2);margin:10px 0 12px}
.hub-card ul{list-style:none;margin:0;padding:0;font-size:15.5px}
.hub-card li{padding:7px 0;border-top:1px solid var(--rule-soft)}

/* collapsible long list */
details.expander{margin-top:6px}
details.expander summary{cursor:pointer;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--oxide);list-style:none;padding:10px 0;border-top:1px solid var(--rule)}
details.expander summary::-webkit-details-marker{display:none}
details.expander summary::after{content:" +"}
details.expander[open] summary::after{content:" –"}

/* footer */
.site-foot{background:var(--ink);color:#C3C8C4;padding-block:clamp(34px,4vw,52px)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(auto-fit,minmax(160px,1fr));
  gap:clamp(22px,3vw,44px)}
.site-foot .wordmark{font-size:clamp(34px,4vw,44px);color:var(--off)}
.site-foot p{font-size:14px;line-height:1.5;margin:14px 0 0;max-width:18em}
.foot-col h3{font-family:var(--text);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--oxide-pale);margin-bottom:12px;font-weight:600}
.foot-col ul{list-style:none;margin:0;padding:0;font-size:15px}
.foot-col li{padding:5px 0}
.site-foot a{color:#C3C8C4;border-bottom-color:rgba(195,200,196,.3)}
.site-foot a:hover{color:#fff;border-bottom-color:#fff}

/* 404 */
.page-narrow{padding-block:clamp(48px,7vw,110px)}
.page-narrow h1{font-size:clamp(38px,6vw,68px);margin-bottom:20px}

@media (max-width:860px){
  .lead-feature{grid-template-columns:1fr}
  .index-row{grid-template-columns:44px 1fr}
  .index-entries{grid-column:1/-1}
  .reg-caves .reg-head,.reg-dig .reg-head{display:none}
  .reg-caves .reg-row,.reg-dig .reg-row{grid-template-columns:44px 1fr;padding:16px 0}
  .reg-row > *{grid-column:2}
  .reg-row > .reg-no{grid-column:1;grid-row:1}
  .reg-label{display:block;margin-bottom:2px}
  .fig--bleed figcaption{grid-template-columns:40px 1fr}
  .fig--bleed .fig-credit{text-align:left;grid-column:2}
  .layer{grid-template-columns:64px 1fr;gap:16px}
  .cat-item{grid-template-columns:40px 1fr}
  .cat-item .ci-thumb{grid-column:2}
  .mast-meta{text-align:left}
  .art-flow > .notebox-lite{padding-inline:var(--gut)}
}
@media (max-width:560px){
  body{font-size:16.5px}
  .art-body{font-size:17px}
  .sponsor,.sponsor-roll{width:100%}
  .sponsor-roll{grid-template-columns:1fr}
  .fig--inset{float:none;width:auto;margin-inline:0}
}
@media print{
  .mast-nav,.index-table{display:none}
  body{background:#fff}
}


/* ================= HERO ================= */
.hero{padding-top:clamp(26px,3.4vw,46px);padding-bottom:clamp(34px,4vw,60px)}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);
  gap:clamp(26px,3.4vw,58px);align-items:center}
.hero-title{font-family:"Libre Caslon Text",var(--display);font-weight:700;
  font-size:clamp(44px,7.6vw,96px);line-height:.94;letter-spacing:-.03em;margin-bottom:20px}
.hero-title a{color:inherit;border:0}
.hero-title a:hover{color:var(--oxide)}
.hero-standfirst{font-size:clamp(18px,1.9vw,25px);line-height:1.4;color:var(--ink);
  max-width:24em;margin-bottom:16px}
.hero-body{font-size:16.5px;line-height:1.62;color:var(--ink-soft);max-width:32em;margin-bottom:26px}
.more--lg{font-size:14px;letter-spacing:.18em;border-bottom-width:3px;padding-bottom:6px}
.hero-fig{position:relative;padding:16px 0 0 16px}
.hero-fig::before{content:"";position:absolute;left:0;top:0;width:64px;height:64px;
  border-left:4px solid var(--oxide);border-top:4px solid var(--oxide)}
.hero-fig img{width:100%;aspect-ratio:4/3.1;object-fit:cover}
.hero-fig figcaption{display:grid;grid-template-columns:46px 1fr;border-top:1px solid var(--ink);
  margin-top:12px;padding-top:12px}
@media (max-width:820px){
  .hero-in{grid-template-columns:1fr}
  .hero-fig{padding-left:12px}
}

/* ================= SIGNATURE BAND ================= */
.sig-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(20px,3vw,46px);
  align-items:center}
.sig-label{font-family:var(--text);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  line-height:1.9;margin:0;opacity:.85}
.sig-line{font-family:"Libre Caslon Text",var(--display);font-weight:700;
  font-size:clamp(23px,3.2vw,40px);line-height:1.16;letter-spacing:-.02em;margin:0}
.sig-strata{width:clamp(70px,7vw,120px);height:auto;color:#FAF2F0;opacity:.9}
@media (max-width:720px){
  .sig-band{grid-template-columns:1fr}
  .sig-strata{display:none}
}

/* ============ REGISTER: more format ============ */
.reg-caves .reg-head,.reg-caves .reg-row{grid-template-columns:52px minmax(120px,.9fr) minmax(120px,.9fr) minmax(140px,1fr) minmax(0,2fr) 30px}
.register .reg-row{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--rule)}
.register .reg-row:nth-child(odd){background:rgba(20,24,27,.028)}
.register .reg-row:hover{background:var(--mat);color:var(--ink)}
.register .reg-row:hover .reg-name{color:var(--oxide)}
.register .reg-row:hover .reg-go{color:var(--oxide);transform:translateX(4px)}
.reg-name{font-family:"Libre Caslon Text",var(--display);font-weight:700;font-size:21px;letter-spacing:-.01em}
.reg-caves .reg-label{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--quiet);margin-bottom:3px}
.reg-caves .reg-what .reg-label{display:none}
.reg-go{align-self:center;color:var(--quiet);font-size:19px;transition:transform .14s,color .14s}
@media (max-width:860px){
  .reg-caves .reg-row{grid-template-columns:44px 1fr}
  .reg-caves .reg-what .reg-label{display:block}
  .reg-go{display:none}
}

/* ============ STRATIGRAPHY: the cut face ============ */
.cutface{display:grid;grid-template-columns:44px minmax(0,1.25fr) minmax(240px,1fr);
  gap:0 clamp(20px,2.6vw,40px);align-items:stretch}
.cutface-scale{display:flex;flex-direction:column;justify-content:space-between;
  border-left:2px solid rgba(238,240,236,.5);padding:2px 0 2px 8px;
  font-size:11.5px;letter-spacing:.14em;color:var(--prussian-pale)}
.cutface-stack{display:flex;flex-direction:column;min-height:clamp(470px,48vw,640px);
  border:2px solid rgba(238,240,236,.5)}
.strat{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:16px;
  padding:8px 18px;border-bottom:1px solid rgba(238,240,236,.45);text-decoration:none;color:var(--off);
  transition:background .14s;min-height:0;overflow:hidden}
.strat:last-child{border-bottom:0}
.strat:hover{background:rgba(224,168,159,.22);color:var(--off)}
.strat-no{font-family:var(--display);font-size:clamp(24px,2.6vw,34px);color:var(--oxide-pale);line-height:1}
.strat-name{display:block;font-family:var(--text);font-weight:600;font-size:clamp(16px,1.6vw,19px);line-height:1.2}
.strat-note{display:block;font-size:14px;line-height:1.45;color:var(--prussian-pale);margin-top:4px}
.cutface-side{align-self:center}
.cutface-side p{font-size:16px;line-height:1.6;color:var(--prussian-pale);max-width:30em}
@media (max-width:860px){
  .cutface{grid-template-columns:34px minmax(0,1fr)}
  .cutface-side{grid-column:1/-1;margin-top:24px}
}

/* ============ SUPPORTERS ============ */
.sponsor-roll{display:flex;flex-wrap:wrap;gap:20px}
.sponsor-cols{display:flex;flex-wrap:wrap;gap:20px 20px;margin-top:clamp(26px,3vw,42px);justify-content:flex-start}
.sponsor-col{flex:0 0 auto;width:clamp(240px, calc(30.6vw - 14px), 360px)}
.sponsor-stack{display:flex;flex-direction:column;gap:12px}
.sponsor{width:clamp(240px, calc(30.6vw - 14px), 360px);flex:0 0 auto}
.sponsor-stack .sponsor{width:100%}
.sponsor.feat{min-height:0}
.sponsor.feat img{height:56px;max-height:56px}
.sponsor-tier + .sponsor-tier{margin-top:0}
@media (max-width:640px){
  .sponsor,.sponsor-col{width:100%}
}

/* ============ MAP BAND ============ */
.map-band{align-items:stretch}
.map-side{display:flex;flex-direction:column}
.pin-list{flex:1 1 auto}
.pin-row{display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:4px 12px;
  padding:13px 10px 13px 12px;border:0;color:var(--off);text-decoration:none;
  border-left:3px solid transparent;transition:background .14s,border-color .14s}
.pin-row:hover,.pin-row.is-on{background:rgba(238,240,236,.08);border-left-color:var(--oxide);color:var(--off)}
.pin-name{display:block;font-family:"Libre Caslon Text",var(--display);font-weight:700;font-size:19px;line-height:1.15}
.pin-list li{display:block;padding:0;border-bottom:1px solid rgba(238,240,236,.2);font-size:inherit}
.pin-where{display:block;font-size:13px;color:#A89F8E;margin-top:3px}
.pin-note{grid-column:1/-1;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--prussian-pale);margin-top:4px}
.pin-go{color:var(--oxide-pale);font-size:17px;transition:transform .14s}
.pin-row:hover .pin-go{transform:translateX(4px)}
.pin-row--plain{cursor:default}
.map-orient{font-size:14px;line-height:1.55;color:var(--prussian-pale);margin:18px 0 0;max-width:34em}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:14px;
  font-size:12.5px;color:var(--prussian-pale)}
.map-legend .lg{display:flex;align-items:center;gap:8px}
.map-legend svg{width:18px;height:18px;flex:0 0 auto}
.map-legend .lg--scale{letter-spacing:.1em;text-transform:uppercase;font-size:11.5px;color:var(--prussian-pale)}
.map-figure .pin text{transition:fill .14s}
.map-figure .pin.is-on circle:first-child{stroke:#fff;stroke-width:4}
.map-figure .pin.is-on text{fill:#fff}

/* ============ EXCAVATORS TIMELINE ============ */
.digline{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0}
.dig{display:block;padding:0 22px 4px 0;border:0;color:var(--ink);text-decoration:none}
.dig-when{display:block;font-family:var(--display);font-size:clamp(21px,2.3vw,28px);
  color:var(--oxide);line-height:1;margin-bottom:14px}
.dig-dot{display:block;height:14px;border-top:3px solid var(--ink);position:relative}
.dig-dot::before{content:"";position:absolute;left:0;top:-8px;width:13px;height:13px;
  border-radius:50%;background:var(--oxide)}
.dig-who{display:block;font-family:"Libre Caslon Text",var(--display);font-weight:700;
  font-size:clamp(18px,1.9vw,23px);line-height:1.14;margin:8px 0 8px}
.dig-what{display:block;font-size:15px;line-height:1.5;color:var(--ink-2)}
.dig:hover .dig-who{color:var(--oxide)}
.dig:hover .dig-dot::before{background:var(--prussian)}
@media (max-width:560px){.digline{grid-template-columns:1fr}.dig{padding-bottom:22px}}


/* ============ ARTICLE RHYTHM ============ */
.art-h2{display:block;border-top:2px solid var(--ink);padding-top:15px;margin:2.1em auto .7em}
.art-h2 .h2-no{display:block;font-family:var(--text);font-weight:600;font-size:.34em;
  letter-spacing:.24em;color:var(--oxide);margin-bottom:10px}
.art-body .art-open{font-size:1.11em;line-height:1.6;color:var(--ink)}

.art-next{padding-top:clamp(30px,4vw,56px);padding-bottom:clamp(34px,5vw,70px)}
.art-flow > .pullquote{max-width:calc(var(--measure) + 40px)}

/* ============ MOBILE ============ */
@media (max-width:900px){
  .map-band{grid-template-columns:1fr}
  .map-side{order:2}
  .map-figure{order:1}
}
@media (max-width:700px){
  .map-figure svg text.lbl{display:none}
  .index-table.menu .index-row{grid-template-columns:40px 1fr;padding:11px 10px}
  .index-table.menu .index-entries{grid-column:1/-1;margin-top:2px}
  .art-h2{padding-top:13px}
  .hero-fig figcaption{grid-template-columns:38px 1fr}
  .fig--offset figcaption{grid-template-columns:1fr}
  .sig-band{gap:14px}
  .cutface-stack{min-height:0}
  .strat{min-height:auto;overflow:visible;flex-basis:auto !important}
  .strat{grid-template-columns:40px minmax(0,1fr);gap:12px;padding:12px 14px}
  .cutface-scale{display:none}
  .cutface{grid-template-columns:1fr}
  .digline{grid-template-columns:1fr}
  .dig{padding:0 0 24px}
  .termgrid{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr}
  .timeline li{padding-right:0}
  .related-links,.further-grid{grid-template-columns:1fr;gap:0}
  .seconds{grid-template-columns:1fr}
  .mast-meta{text-align:left;padding-bottom:0}
  .mast-nav{justify-content:flex-start;text-align:left}
  .pin-row{padding:14px 8px 14px 10px}
  .pin-name{font-size:18px}
}
@media (max-width:420px){
  .wordmark{font-size:38px}
  .mast-mark{height:27px}
  .hero-title{font-size:38px}
  .sig-line{font-size:21px}
  .art-body{font-size:16.5px}
  .band-head h2{font-size:24px}
  .band-head .icon--lg{width:26px;height:26px}
}

@media (max-width:700px){
  .foot-grid{grid-template-columns:1fr}
  .index-entries a{padding:9px .5em 9px 0}
  .site-foot p{max-width:none}
}

.reg-dig .reg-name{display:inline-block;padding:6px 0}
@media (max-width:700px){
  .index-entries a{padding:10px .5em 10px 0}
  .reg-dig .reg-name{padding:8px 0}
  .cat-item{padding:22px 0}
}

.pbreak{display:flex;justify-content:center;margin:clamp(24px,3vw,38px) 0}
.pbreak svg{width:96px;height:auto;color:var(--oxide);opacity:.85}

/* keep every flow child on the same centred measure */
.art-body.art-flow > p,.art-body.art-flow > h2,.art-body.art-flow > blockquote,
.art-body.art-flow > aside,.art-body.art-flow > ul,.art-body.art-flow > ol,
.art-body.art-flow > figure,.art-body.art-flow > div{margin-left:auto;margin-right:auto}
.art-body.art-flow > .full{margin-left:0;margin-right:0}

/* 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-domain-override: per-domain, from work/css_override.css */
/* Breathing space inside the supporter logo panel.
   Measured: the dark panel was already there (#14181b) but carried `padding: 0px 12px`, so the
   wordmark sat hard against its top and bottom edge.
   ⚠️ Three approaches were tested live before this one was written:
     border-box padding        -> panel height stayed 56px and the ARTWORK halved (56 -> 32)
     content-box alone         -> panel grew past the tile, 17px OVERFLOW on the right
     content-box + width pull  -> correct
   max-height:none is needed because the build caps the image height elsewhere, which is what
   defeated the first attempt. Measured before/after:
       before  panel 330x56  art 306x56  inset 15/15
       after   panel 300x80  art 268x56  inset 30/30   (full artwork HEIGHT kept, no overflow) */
.sponsor[data-partner] img{
  box-sizing: content-box !important;
  max-height: none !important;
  padding: 12px 16px !important;
  width: calc(100% - 62px) !important;
}

/* op-bold-names: operator: bold brands. The names are already their own .sponsor-name elements
   here — Design set the display face and a size but no weight, so they inherited normal and read
   at the same weight as the sentence under them. No markup needed, unlike libbraille and
   miss-lili where the name was loose text inside the sentence. */
.sponsor .sponsor-name{font-weight:700}

/* op-nav-collapse: this nav printed 783px of stacked links at 390 before any content
   (26 links), and the build shipped no control to close it. A disclosure cannot be
   built from CSS alone — :hover and :focus-within are unreachable on touch until a link has
   already been tapped — so a hidden checkbox and its label were injected immediately before
   the nav, and the nav collapses against the checked state. Exactly the mechanism the builds
   that DO have a burger already use.
   Treatment "right-tab", seeded from the domain so 175 builds do not all ship the
   same hairline box in the same place; it inherits this build's font and colour, and where the
   nav's own parent has no inline padding (18px measured) the button carries the build's
   gutter (clamp(18px,4vw,56px)) so it cannot sit against the glass. The links are hidden,
   not removed: they stay in the markup. Desktop is untouched — every rule below is inside the
   phone breakpoint (860px here), where the button appears and the nav starts closed.
   Folded with the "height-clip" technique and marked with the "chevron" icon — the mechanism
   is deliberately not identical across the fleet either. */
.menu-open{display:none}
@media (max-width:860px){
  .menu-open{align-items:center;justify-content:center;gap:9px;font:inherit;font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:inherit;cursor:pointer;min-height:44px;box-sizing:border-box;display:flex;width:fit-content;margin-left:auto;border:1px solid currentColor;border-radius:2px;padding:10px 16px;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}

  .menu-open-bars{width:8px;height:8px;flex:none;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
  .index-table.menu{height:0;overflow:hidden;visibility:hidden;padding-block:0;margin-block:0;border-top-width:0;border-bottom-width:0}
  .menu-open-c:checked ~ .index-table.menu{height:auto;overflow:visible;visibility:visible;padding-block:revert;margin-block:revert;border-top-width:revert;border-bottom-width:revert}
  .menu-open:not(:has(~ .index-table.menu)){display:none}
}

/* op-footer-compact: the footer printed 4 rows for 4 link(s) in
   1 list(s) — 564px at 390, 5% 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, and the group holder takes two columns,
   measured 564 -> 366px (35% 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:min(2.99vw,43px)!important;row-gap:6px!important}
  footer ul > li,footer ol > li{width:auto!important;flex:0 0 auto;max-width:100%}
  footer [class*=grid],footer [class*=index],footer [class*=cols]{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:22px}
}

/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1809px at 390, 17% of the whole page. Two columns bring it to
   1155px (36% shorter). Checked before writing: no new overflow, smallest mark still
   109px wide, longest blurb 3 lines, tile heights 100-192px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.sponsor-roll, .sponsor-stack), 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-roll{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .sponsor-roll > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-roll > * *{min-width:0!important;max-width:100%}
    .sponsor-roll img,.sponsor-roll svg{max-width:100%;height:auto}
  .sponsor-stack{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .sponsor-stack > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-stack > * *{min-width:0!important;max-width:100%}
    .sponsor-stack img,.sponsor-stack svg{max-width:100%;height:auto}

}

/* op-odd-tier-lead: .sponsor-roll (3 tiles), .sponsor-stack (3 tiles), .sponsor-stack (3 tiles), .sponsor-stack (3 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sponsor-roll:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
  .sponsor-stack:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
  .sponsor-stack:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
  .sponsor-stack:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-article-width: the article column was capped at 730px (83 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .art-flow > *) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. Above 1600 the column and the prose type grow together (up to 1.2x). Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  div.art-body.art-flow{--measure:min(900px, 100%)!important}
}
@media (min-width:1600px){
  div.art-body.art-flow{--measure:min(clamp(900px, 62.500vw, 1080px), 100%)!important}
  div.art-body.art-flow > :is(p:not([class])){font-size:clamp(18.5px,1.2847vw,22.2px)!important}
}
/* op-article-width:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article > figure.article-figure.fig--bleed.full > img,
  div.art-body.art-flow > figure.article-figure.fig--mat > img,
  div.hero-in.wrap > figure.hero-fig > img,
  div.seconds > article.second > img.thumb,
  figure.article-figure.fig--offset.full > div.fig-offset-in > img,
  li > a.cat-item > img.ci-thumb,
  section > figure.article-figure.fig--bleed > img){height:auto}
/* op-img-dims:end */
@media (min-width:660px) and (max-width:899px){.sponsor-roll.sponsor-roll:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(240px,calc(50% - 10px)),1fr))!important;column-gap:20px!important;row-gap:20px!important;justify-content:stretch!important;align-items:stretch!important}.sponsor-roll.sponsor-roll > [data-partner]{flex:none!important;width:auto!important;max-width:none!important;margin-left:0!important;margin-right:0!important}}
