

/* ── PALETTE ──────────────────────────────────────────────
   ground     --paper      warm paper, the page ground
   ink        --ink        body text
   area       --area       aubergine: mastheads, mats, map land, whole bands
   accent     --accent     chartreuse: a saturated area colour + rules on dark
   secondary  --secondary  plum: the accent that stays legible on paper at 15px
   ──────────────────────────────────────────────────────── */
:root{
  --paper:#F4F1EA;
  --paper-2:#EAE5DB;
  --ink:#1F1620;
  --area:#3B1032;
  --area-deep:#2A0C24;
  --accent:#C8D92B;
  --accent-ink:#33320D;
  --secondary:#7A2C67;
  --rule:#CFC8BC;
  --muted:#6D6470;
  --reverse:#F0EAE4;
  --dim:#B7A8B2;
  --serif:Vollkorn,Georgia,"Times New Roman",serif;
  --sans:"Public Sans",system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:19.5px;line-height:1.68;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--secondary);text-decoration:none}
a:hover{color:var(--area);text-decoration:underline;text-underline-offset:3px}
p{margin:0 0 1.15em}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.012em;margin:0}
table{border-collapse:collapse;width:100%}
figure{margin:0}
blockquote{margin:0}

.wrap{max-width:1240px;margin:0 auto;padding-inline:clamp(20px,4vw,44px)}
.measure{max-width:70ch;margin-inline:auto}
.band{padding-block:clamp(52px,7vw,88px)}
.band-tight{padding-block:clamp(34px,4vw,52px)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--accent);color:var(--area-deep);padding:10px 16px;z-index:99}

/* ── LABELS ─────────────────────────────────────────────── */
.label{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--secondary)}
.label-on-dark{color:var(--accent)}
.keytag{
  display:inline-grid;place-items:center;flex:none;
  width:20px;height:20px;background:var(--accent);color:var(--area-deep);
  font-family:var(--sans);font-size:11px;font-weight:700;line-height:1;
}
.keytag-paper{background:var(--area);color:var(--accent)}
.rule-2{height:2px;background:var(--area);border:0;margin:0}
.rule-1{height:1px;background:var(--rule);border:0;margin:0}

/* ── ICONS ──────────────────────────────────────────────── */
.ico{width:22px;height:22px;flex:none;display:block;stroke:currentColor;fill:none;
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ico-lg{width:34px;height:34px;stroke-width:1.4}

/* ── MASTHEAD + PRINTED INDEX ───────────────────────────── */
.masthead{background:var(--area);color:var(--reverse)}
.masthead a{color:var(--reverse)}
.masthead a:hover{color:var(--accent);text-decoration:none}
.mast-top{display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap;padding-block:26px 22px}
.mast-mark{color:var(--accent);flex:none}
.mast-name{font-size:clamp(30px,4.6vw,58px);line-height:.94;font-weight:700;letter-spacing:-.02em;margin:0}
.mast-name .b{color:var(--accent)}
.mast-strap{font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--dim);max-width:270px;margin-left:auto;padding-bottom:6px}
.mast-home .mast-top{padding-block:34px 26px}
.mast-home .mast-name{font-size:clamp(38px,6.4vw,84px)}

.index{border-top:2px solid var(--accent)}
.index>summary{
  list-style:none;cursor:pointer;font-family:var(--sans);font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--accent);
  padding:14px 0;display:flex;justify-content:space-between;align-items:center;
}
.index>summary::-webkit-details-marker{display:none}
.index>summary::after{content:"Index";font-size:11px;color:var(--dim);letter-spacing:.18em}
.index[open]>summary::after{content:"Close"}
.index-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  gap:22px 36px;padding-block:22px 34px;font-family:var(--sans);
}
.idx-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.idx-head .keytag,.idx-head .ico{margin-top:2px}
.idx-head a{font-size:16px;font-weight:600}
.idx-list{display:grid;gap:4px;font-size:13.5px;padding-left:30px}
.idx-list a{color:var(--dim)}
.idx-list a:hover{color:var(--accent)}
.idx-list a[aria-current]{color:var(--accent)}

.mast-bar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-block:18px}
.mast-bar .mast-name{font-size:clamp(21px,2.6vw,30px)}
.mast-here{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-left:auto}

/* ── HOMEPAGE LEAD ──────────────────────────────────────── */
.lead-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.kicker{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.kicker .label{color:var(--secondary)}
.lead-title{font-size:clamp(32px,4.4vw,56px);line-height:1.04;font-weight:700;letter-spacing:-.022em;max-width:16ch}
.lead-title a{color:inherit}
.lead-title a:hover{color:var(--secondary);text-decoration:none}
.standfirst{font-size:clamp(19px,1.6vw,22px);line-height:1.55;color:#332A31;margin-top:20px}
.seconds{display:grid;gap:26px}
.second{display:grid;gap:10px;border-top:1px solid var(--rule);padding-top:16px}
.second h3{font-size:24px;line-height:1.15}
.second h3 a{color:var(--ink)}
.second p{font-family:var(--sans);font-size:15.5px;line-height:1.5;color:#3B3540;margin:0}

/* ── FIGURE SYSTEM — three treatments, one drawing ──────── */
.article-figure{margin:0}
.article-figure img{width:100%;height:auto}
.fig-mat{background:var(--area);padding:clamp(14px,1.6vw,20px)}
.fig-mat figcaption{display:flex;gap:16px;margin-top:14px;color:var(--reverse);font-family:var(--sans)}
.fig-mat .fig-key{flex:none;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.18em;padding-top:3px}
.fig-mat .fig-text{font-size:15.5px;line-height:1.45}
.fig-mat .credit{display:block;font-size:12px;color:#C4B7BF;margin-top:6px}

.fig-rule{border-top:3px solid var(--accent)}
.fig-rule img{margin-top:0}
.fig-rule figcaption{font-family:var(--sans);font-size:15.5px;line-height:1.45;padding-top:12px;color:#2B2029}
.fig-rule .credit{display:block;font-size:12px;color:var(--muted);margin-top:5px}

.fig-bleed{position:relative}
.fig-bleed img{width:100%;height:clamp(280px,46vw,560px);object-fit:cover}
.fig-hero img{height:clamp(280px,36vw,440px)}
.fig-bleed figcaption a{color:var(--area-deep);text-decoration:underline;text-underline-offset:3px}
.fig-bleed figcaption{
  font-family:var(--sans);background:var(--accent);color:var(--accent-ink);
  padding:15px 20px;max-width:430px;margin-left:auto;position:relative;
}
.fig-mat .fig-text a{color:var(--accent)}
.fig-bleed .fig-key{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--area-deep);display:block;margin-bottom:5px}
.fig-bleed .credit{display:block;font-size:12px;color:#4B5410;margin-top:5px}
.fig-bleed .cap-hold{max-width:1240px;margin:0 auto;padding-inline:clamp(20px,4vw,44px);display:flex}

.credit{font-family:var(--sans)}

/* ── DIAGRAM ────────────────────────────────────────────── */
.diagram{color:var(--area)}
.diagram svg{display:block;width:100%;height:auto}
.diagram-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  border-top:2px solid var(--area);padding-top:18px;font-family:var(--sans)}
.diagram-note{font-family:var(--sans);font-size:15px;line-height:1.55;color:#4A4149;max-width:72ch;margin-top:16px}

/* ── MAP ────────────────────────────────────────────────── */
.map-figure{margin:0}
.map-slot{background:#190614;aspect-ratio:7/5;position:relative;overflow:hidden}
.map-slot svg{width:100%;height:100%;display:block}
.map-land{fill:#43163A;stroke:rgba(200,217,43,.5);stroke-width:1.3}
.map-neighbour{fill:rgba(240,234,228,.055);stroke:rgba(240,234,228,.11);stroke-width:1}
.map-pin circle{fill:var(--accent)}
.map-pin text{font-family:var(--sans);font-size:20px;font-weight:600;fill:var(--reverse);paint-order:stroke;stroke:#190614;stroke-width:5px;stroke-linejoin:round}
.map-pin:hover circle{fill:var(--reverse)}
.map-pin:hover text{fill:var(--accent)}
.map-pin.is-on circle{fill:var(--reverse);stroke:var(--accent);stroke-width:4;r:10px}
.map-figure figcaption{font-family:var(--sans);font-size:14px;color:var(--muted);margin-top:10px}

.map-band-grid{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(220px,1fr);gap:clamp(28px,4vw,48px);align-items:start}
@media (max-width:900px){.map-band-grid{grid-template-columns:1fr}}

.map-slot-strait{aspect-ratio:4/3}
.map-slot-strait .map-land{stroke-width:2.6;stroke:rgba(200,217,43,.72)}
.fig-mat .map-slot{background:#190614}
.map-measure path{stroke:var(--accent);stroke-width:3;stroke-dasharray:9 7;fill:none}
.map-measure circle{fill:var(--accent)}
.map-measure-label{font-family:var(--sans);font-size:21px;font-weight:700;letter-spacing:.14em;fill:var(--accent);paint-order:stroke;stroke:#190614;stroke-width:6px;stroke-linejoin:round}
.map-side{font-family:var(--sans);font-size:19px;font-weight:600;letter-spacing:.22em;fill:rgba(240,234,228,.62)}

/* ── REGISTER TABLE ─────────────────────────────────────── */
.tablewrap{overflow-x:auto}
.datatable{font-family:var(--sans);min-width:660px}
.datatable th{
  text-align:left;padding:11px 14px 11px 0;font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;font-weight:700;border-top:2px solid var(--area);border-bottom:1px solid var(--area);
}
.datatable td{padding:14px 14px 14px 0;border-bottom:1px solid var(--rule);vertical-align:top;font-size:15.5px;color:#3B3540}
.datatable .t-place{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--ink);white-space:nowrap}
.datatable .t-key{font-size:11.5px;font-weight:700;color:var(--secondary);letter-spacing:.1em;width:52px}
.datatable tr:hover td{background:var(--paper-2)}

/* ── SECTION CARDS ──────────────────────────────────────── */
.sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:0 36px}
.sec-card{display:flex;flex-direction:column;border-top:1.5px solid var(--area);padding:16px 0 24px}
.sec-card .sec-top{display:flex;align-items:center;gap:10px;color:var(--secondary)}
.sec-card h3{font-size:23px;line-height:1.16;margin:9px 0 6px}
.sec-card h3 a{color:var(--ink)}
.sec-card p{font-family:var(--sans);font-size:15px;line-height:1.5;color:#3B3540;margin:0}
.sec-card .sec-count{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:12px}

/* section register — the eight sections as a keyed list */
.sec-register{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:0 clamp(32px,4vw,64px)}
.sec-row{display:grid;grid-template-columns:22px 24px minmax(0,1fr) auto;gap:6px 14px;align-items:start;
  padding:18px 0 20px;border-top:1px solid var(--rule);color:var(--ink)}
.sec-row:first-child,.sec-row:nth-child(2){border-top:2px solid var(--area)}
.sec-row:hover{text-decoration:none;color:var(--secondary)}
.sec-row .ico{color:var(--secondary)}
.sec-row .sec-name{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.15}
.sec-row .sec-n{font-family:var(--sans);font-size:12px;letter-spacing:.16em;color:var(--muted);white-space:nowrap;padding-top:6px}
.sec-row .sec-blurb{grid-column:3/5;font-family:var(--sans);font-size:15px;line-height:1.5;color:#3B3540}
@media (max-width:520px){.sec-register{grid-template-columns:1fr}.sec-row:nth-child(2){border-top:1px solid var(--rule)}}

/* accent band with a plate */
.accent-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(310px,.9fr);gap:clamp(30px,4vw,60px);align-items:start}
.accent-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 clamp(26px,3vw,48px);margin-top:clamp(34px,4vw,52px);border-top:2px solid rgba(42,12,36,.45)}
.accent-entry{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;padding:18px 0 22px;
  border-top:1px solid rgba(42,12,36,.28);color:var(--area-deep);align-content:start}
.accent-list .accent-entry:first-child{border-top:0}
.accent-entry:hover{text-decoration:none;color:var(--area)}
.accent-entry .ae-key{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.16em;padding-top:6px}
.accent-entry .ae-title{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.2}
.accent-entry .ae-dek{grid-column:2;font-family:var(--sans);font-size:14.5px;line-height:1.5;color:#3E3F12}
@media (max-width:820px){.accent-grid{grid-template-columns:1fr}}

/* ── CHARTREUSE BAND ────────────────────────────────────── */
.band-accent{background:var(--accent);color:var(--accent-ink)}
.band-accent .label{color:var(--area-deep)}
.band-accent a{color:var(--area-deep)}
.band-accent h2{color:var(--area-deep);font-size:clamp(25px,3.2vw,42px);line-height:1.24;max-width:24ch;letter-spacing:-.015em}
.band-area{background:var(--area);color:var(--reverse)}
.band-area .label{color:var(--accent)}
.band-area a{color:var(--accent)}
.band-area h2{color:var(--reverse)}
.moreline{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;font-weight:700;border-bottom:2px solid currentColor;padding-bottom:5px}
.moreline:hover{text-decoration:none}

/* entry opener — title and plate side by side */
.entry-opener{border-bottom:1px solid var(--rule);background:var(--paper)}
.opener-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);
  gap:clamp(28px,4vw,60px);align-items:end;padding-block:clamp(32px,4.4vw,58px) clamp(28px,3.6vw,46px)}
.opener-grid .art-title{margin-top:16px}
.opener-grid .lead{max-width:44ch}
.opener-grid .entry-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:0}
.opener-grid .entry-strip div{border-right:0;border-top:1px solid var(--rule);margin-right:0;padding:11px 20px 12px 0}
.opener-grid .entry-strip div:nth-child(-n+2){border-top:0}
@media (max-width:900px){.opener-grid{grid-template-columns:1fr;align-items:start}}

/* hanging section numbers */
.h2-n{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--secondary);
  position:absolute;left:-72px;top:22px}
@media (max-width:1150px){.h2-n{position:static;display:block;margin-bottom:2px}}

/* opening initial */
.art-first>p:first-of-type::first-letter{float:left;font-family:var(--serif);font-size:4.4em;line-height:.76;
  font-weight:700;color:var(--secondary);padding:8px 14px 0 0}

/* a notes band that runs dark, for rhythm */

/* split figure: plate left, caption in its own column */
.fig-rule.fig-split{border-top:0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(160px,1fr);
  gap:clamp(18px,2.4vw,30px);align-items:start}
.fig-rule.fig-split img{border-top:3px solid var(--accent)}
.fig-rule.fig-split figcaption{border-top:3px solid var(--accent);padding-top:12px}
@media (max-width:700px){.fig-rule.fig-split{grid-template-columns:1fr}}

/* ── ARTICLE ────────────────────────────────────────────── */
.art-head{padding-block:clamp(38px,5vw,62px) 0}
.art-title{font-size:clamp(34px,5.4vw,66px);line-height:1.02;font-weight:700;letter-spacing:-.024em;max-width:17ch}
.lead{font-size:clamp(20px,1.9vw,23px);line-height:1.5;color:#332A31;margin-top:22px;max-width:56ch}
.entry-strip{
  display:flex;flex-wrap:wrap;gap:0;font-family:var(--sans);margin-top:30px;
  border-top:2px solid var(--area);border-bottom:1px solid var(--rule);
}
.entry-strip div{padding:12px 26px 12px 0;margin-right:26px;border-right:1px solid var(--rule)}
.entry-strip div:last-child{border-right:0}
.entry-strip dt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--secondary);margin-bottom:4px}
.entry-strip dd{margin:0;font-size:15.5px;color:#2B2029}
.art-body{padding-block:clamp(30px,4vw,46px)}
.art-body h2{
  position:relative;
  font-size:clamp(25px,2.6vw,32px);line-height:1.18;margin:1.6em 0 .55em;
  padding-top:14px;border-top:1.5px solid var(--area);display:flex;gap:12px;align-items:baseline;
}
.art-body h2::before{content:"";width:11px;height:11px;background:var(--accent);flex:none;translate:0 -2px}
.art-body h2:first-child{margin-top:0}
.art-body p{font-size:19.5px;line-height:1.68}
.art-body a{border-bottom:1px solid rgba(122,44,103,.35)}
.art-body a:hover{border-bottom-color:currentColor;text-decoration:none}

.pullquote{margin:34px 0;border-top:2px solid var(--area);border-bottom:2px solid var(--area);padding:24px 0}
.pullquote p{font-size:clamp(22px,2.3vw,29px);line-height:1.34;font-weight:500;margin:0;color:var(--area)}
.blockquote{margin:30px 0;padding-left:24px;border-left:3px solid var(--accent)}
.blockquote p{font-size:21px;line-height:1.45;margin:0 0 10px}
.blockquote cite{font-family:var(--sans);font-size:14px;color:var(--muted);font-style:normal}
.callout{background:var(--area);color:var(--reverse);padding:26px 28px;margin:32px 0}
.callout p{margin:0;font-size:19px;line-height:1.55}
.note{font-family:var(--sans);font-size:15.5px;line-height:1.55;color:#4A4149;border-left:3px solid var(--rule);padding-left:16px}

/* Notes-for-Design interruptions */
.notes-band{background:var(--paper-2);border-top:2px solid var(--area);border-bottom:2px solid var(--area)}
.notes-band .label{margin-bottom:20px;display:block}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}
.timeline li{display:grid;grid-template-columns:minmax(150px,270px) 1fr;gap:8px 30px;
  padding:14px 0;border-top:1px solid var(--rule);font-family:var(--sans);align-items:baseline}
.timeline li:first-child{border-top:0}
.t-when{font-size:14px;font-weight:700;letter-spacing:.04em;color:var(--secondary);text-transform:uppercase}
.t-what{font-size:16px;line-height:1.5;color:#2B2029}
.notes-band.notes-dark{background:var(--area);border-top-color:var(--area-deep);border-bottom-color:var(--area-deep)}
.notes-band.notes-dark .label{color:var(--accent)}
.notes-band.notes-dark .timeline li{border-top-color:rgba(240,234,228,.2)}
.notes-band.notes-dark .t-when{color:var(--accent)}
.notes-band.notes-dark .t-what{color:var(--reverse)}
.notes-band.notes-dark .termgrid{background:rgba(240,234,228,.16)}
.notes-band.notes-dark .term{background:var(--area)}
.notes-band.notes-dark .term dt{color:var(--accent)}
.notes-band.notes-dark .term dd{color:var(--dim)}
.termgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:2px;background:var(--rule)}
.term{background:var(--paper);padding:18px 20px}
.term dt{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--area);margin-bottom:5px}
.term dd{margin:0;font-family:var(--sans);font-size:15px;line-height:1.5;color:#3B3540}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px;background:var(--area-deep)}
.statblock{background:var(--area);padding:22px 22px 24px;display:flex;flex-direction:column;gap:8px}
.stat-num{font-family:var(--serif);font-size:clamp(32px,3.6vw,46px);line-height:1;font-weight:700;color:var(--accent)}
.stat-label{font-family:var(--sans);font-size:14.5px;line-height:1.45;color:var(--reverse)}

.related-links,.cat-list{list-style:none;margin:0;padding:0}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:28px}
.further-grid a{display:flex;flex-direction:column;gap:7px;border-top:1.5px solid var(--area);padding-top:14px;color:var(--ink)}
.further-grid a:hover{text-decoration:none;color:var(--secondary)}
.further-grid .f-sec{font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--secondary)}
.further-grid .f-title{font-size:21px;font-weight:600;line-height:1.2}
.further-grid .f-dek{font-family:var(--sans);font-size:14.5px;line-height:1.5;color:#3B3540}
.related-links li{border-top:1px solid var(--rule);padding:12px 0}
.related-links li:first-child{border-top:1.5px solid var(--area)}
.related-links a{font-size:20px;font-weight:600}

.cat-list li{border-top:1px solid var(--rule)}
.cat-list li:first-child{border-top:2px solid var(--area)}
.cat-list a{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 18px;padding:18px 0;color:var(--ink)}
.cat-list a:hover{text-decoration:none;background:var(--paper-2)}
.cat-list .c-key{font-family:var(--sans);font-size:11.5px;font-weight:700;color:var(--secondary);letter-spacing:.1em;padding-top:6px}
.cat-list .c-title{font-size:24px;font-weight:600;line-height:1.2}
.cat-list .c-dek{grid-column:2;font-family:var(--sans);font-size:15.5px;line-height:1.5;color:#3B3540}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px}
.versus th,.versus td{font-family:var(--sans);font-size:15.5px;text-align:left;padding:12px 16px 12px 0;border-bottom:1px solid var(--rule)}
.versus th{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--area)}
.chart figcaption{font-family:var(--sans);font-size:14px;color:var(--muted);margin-top:10px}
.profile-grid,.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:24px}
.profile-card{border-top:1.5px solid var(--area);padding-top:16px}
.profile-card h3{font-size:21px;margin:10px 0 2px}
.profile-card .p-role{font-family:var(--sans);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--secondary);margin:0 0 10px}
.profile-card p{font-family:var(--sans);font-size:15px;line-height:1.5}
.org-card{display:grid;gap:4px;border:1px solid var(--rule);padding:16px;color:var(--ink)}
.org-name{font-weight:600}
.org-host{font-family:var(--sans);font-size:13px;color:var(--muted)}
.entity-ref{white-space:nowrap}

/* ── SUPPORTERS ─────────────────────────────────────────── */
.supporters{background:var(--area-deep);color:var(--dim);border-bottom:1px solid rgba(240,234,228,.12)}
.supporters .label{color:var(--accent)}
.sup-head{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:10px 40px;align-items:baseline;
  border-top:2px solid var(--accent);padding-top:18px}
.sup-note{font-family:var(--sans);font-size:14.5px;line-height:1.55;color:var(--dim);margin:0;max-width:64ch}
.sponsors{display:flex;flex-wrap:wrap;gap:0;margin-top:22px;border-top:1px solid rgba(240,234,228,.16)}
.sponsor{
  flex:0 0 190px;width:190px;min-height:64px;padding:15px 14px;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--reverse);font-family:var(--serif);font-size:14.5px;line-height:1.3;
  border-right:1px solid rgba(240,234,228,.16);border-bottom:1px solid rgba(240,234,228,.16);
  border-left:1px solid rgba(240,234,228,.16);margin-left:-1px;
}
.sponsor:hover{color:var(--area-deep);background:var(--accent);text-decoration:none}
.sponsor-name{display:block;overflow-wrap:break-word}

/* ── FOOTER ─────────────────────────────────────────────── */
.foot{background:var(--area);color:var(--dim);font-family:var(--sans);font-size:14px}
.foot a{color:var(--reverse)}
.foot a:hover{color:var(--accent);text-decoration:none}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));gap:30px 36px;padding-block:44px}
.foot h4{font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.foot-base{border-top:1px solid rgba(240,234,228,.16);padding-block:22px;display:flex;
  justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px}

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:900px){
  body{font-size:18px}
  .lead-grid{grid-template-columns:1fr}
  .entry-strip div{border-right:0;padding-right:0;margin-right:0;flex:0 0 50%}
  .fig-bleed figcaption{max-width:none;margin-left:0}
  .art-body p{font-size:18.5px}
  .map-slot{aspect-ratio:4/5}
  /* fine print gets a notch on phones */
  .label,.keytag,.fig-mat .fig-key,.fig-bleed .fig-key,.accent-entry .ae-key,
  .entry-strip dt,.further-grid .f-sec,.foot h4,.datatable th,.versus th{font-size:12px}
  .datatable .t-key,.cat-list .c-key{font-size:12.5px}
  .fig-mat .credit,.fig-bleed .credit{font-size:13px}
  /* map pins get a touch-sized hit area */
  .map-pin circle{stroke:rgba(0,0,0,0);stroke-width:34px;paint-order:stroke}
  .map-pin.is-on circle{stroke:var(--accent);stroke-width:5}
}
@media (min-width:901px){
  .index>summary{display:none}
}
@media (max-width:560px){
  .timeline li{grid-template-columns:1fr;gap:4px}
  .sponsor{flex:0 0 50%;width:50%;min-height:60px}
  .entry-strip div{flex:0 0 100%}
}
@media print{
  .masthead,.supporters,.foot{background:#fff;color:#000}
  .index{display:none}
}

/* sp-roll-normalize: a logo roll keeps object-fit and loses its geometry.
   It used to set width:auto, height:46px, max-width:172px and min-width:30px, which let
   every plate in the roll shrink-wrap its own artwork — evbb measured 62px next to 204px
   in the SAME ROW. The operator's rule is that the dark ground is unified whatever the
   logo's size, so the plate cannot be sized by the logo. Geometry belongs to Design. */
[class~="roll"] .sponsor img,[class*="roll-"] .sponsor img,[class*="-roll"] .sponsor img{object-fit:contain}

/* sp-contain-guard: sponsor logos are wordmarks — never object-fit:cover (crops).
   object-fit ONLY. This block used to also set width:auto, padding:4px 10px,
   max-width:calc(100% - 20px) and min/max-height, which overrode Design's own frame and
   let every plate shrink-wrap its logo — the recurring "inconsistent sizing" and
   "lacks padding". Geometry belongs to Design. */
.sponsor img,.sponsor-box img,.sp-logo img{object-fit:contain!important;display:block;margin-left:auto;margin-right:auto;align-self:center}

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

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

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

/* MAPKIT_BEGIN — injected real geodata; pins are links */
.map-slot{padding:0;background:none!important;border:0!important;display:flex;align-items:center;justify-content:center;min-height:0!important}
.map-slot>svg.mapkit{width:100%!important;max-width:100%;height:auto;max-height:none;margin:0 auto}
.map-slot{width:100%}
.map-slot{aspect-ratio:auto!important;height:auto!important}
.map-slot::after,.map-slot::before{content:none!important;display:none!important}
.map-figure figcaption{}
.mapkit__pin{cursor:pointer}
.mapkit__pin text{paint-order:stroke;stroke:#2A1226;stroke-width:3px;stroke-linejoin:round}
.mapkit__pin:hover circle{r:9.1}
.mapkit__pin:hover text{font-weight:700}
/* MAPKIT_END */

/* op-footer-compact: the footer printed 8 rows for 8 link(s) in
   2 list(s) — 746px at 390, 9% 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 746 -> 516px (31% 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(6px,2.5vw,36px)!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:24px}
}

/* op-article-width: the article column was capped at 838px (98 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through max-width 70ch (declared in .measure) 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){
  article div.measure.art-body{max-width:min(871px, 100%)!important}
}
@media (min-width:1600px){
  article div.measure.art-body{max-width:min(clamp(871px, 60.486vw, 1045px), 100%)!important}
  article div.measure.art-body > :is(p:not([class])){font-size:clamp(19.5px,1.3542vw,23.4px)!important}
}
/* op-article-width:end */

/* op-hover-pad */
.cat-list a{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */

/* op-hover-pad */
.datatable tr td:first-child{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article > figure.article-figure.fig-bleed > img,
  div > figure.article-figure.fig-mat > img,
  div > figure.article-figure.fig-rule > img,
  div > figure.article-figure.fig-rule.fig-split > img,
  div.opener-fig > figure.article-figure.fig-mat > img,
  main > figure.article-figure.fig-bleed > img,
  main > figure.article-figure.fig-bleed.fig-hero > img){height:auto}
/* op-img-dims:end */
@media (min-width:728px) and (max-width:1279px){.sponsors.sponsors:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(190px,calc(50% - 6px)),1fr))!important;column-gap:12px!important;row-gap:12px!important;justify-content:stretch!important;align-items:stretch!important}.sponsors.sponsors > [data-partner]{flex:none!important;width:auto!important;max-width:none!important;margin-left:0!important;margin-right:0!important}}
