/* poetadiazcastro.com — Register-led "Thirty-two"
   ground: bone · ink: slate · accent: ultramarine · secondary: rust · rule: teal-slate */
:root{
  --ground:#F4F1E8;
  --ground-2:#EFEBDE;
  --ink:#15161B;
  --ink-2:#2E2B24;
  --accent:#3B3A96;        /* ultramarine — numerals, figure tints, links */
  --secondary:#B4531B;     /* rust — masthead band, closing band, marks */
  --rule:#0F4C5C;          /* teal-slate — register rules, captions */
  --hair:#D6D0BF;
  --quiet:#5C5648;
  --dark:#22222A;          /* ground for partner marks */
  --serif:Literata,Georgia,"Times New Roman",serif;
  --sans:Chivo,"Helvetica Neue",Arial,sans-serif;
  --measure:720px;
  --pad:clamp(18px,4vw,48px);
  --bleed:min(22px,var(--pad));
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;text-wrap:pretty;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--secondary);text-decoration:none;border-bottom:1px solid rgba(180,83,27,.35)}
a:hover{color:var(--accent);border-bottom-color:var(--accent)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;letter-spacing:-.015em;line-height:1.1;margin:0}
.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--pad)}
/* article pages: one centred column, everything on the same measure */
article>.wrap{max-width:calc(var(--measure) + 2*var(--pad))}
.kicker{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--secondary)}
.num{font-family:var(--serif);font-weight:700;color:var(--accent);font-variant-numeric:lining-nums}
.icon{width:1.5em;height:1.5em;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.32em}

/* ---------- masthead ---------- */
.mast-band{background:#1E1F52;color:#F1EFE6;position:relative;z-index:21}
.mast-band .wrap{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 40px;padding-top:26px;padding-bottom:22px}
.mast-id{display:flex;flex-direction:column;gap:8px}
.mast-aside{display:flex;flex-direction:column;align-items:flex-end;gap:10px;text-align:right}
.mast-title{display:block;color:#FBF8F1;border:0;font-family:var(--serif);font-weight:700;font-size:clamp(34px,6.2vw,66px);line-height:.92;letter-spacing:-.03em}
.mast-title:hover{color:#FFF}
.mast-emblem{flex:none;width:clamp(34px,5vw,54px);height:auto;stroke:currentColor;fill:none}
.mast-line{margin:0;font-size:14.5px;line-height:1.45;max-width:34ch;color:#C6C3E0}
.mast-domain{font-family:var(--sans);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:#9E9BC8;display:block}
.mast-index{display:inline-block;font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#F6C79E;border-bottom:1px solid rgba(246,199,158,.45)}
.mast-index:hover{color:#FFF;border-bottom-color:#FFF}
@media(max-width:720px){.mast-aside{align-items:flex-start;text-align:left}}

/* header menu — five sections, each with a hover/focus submenu */
.ruled-index{border-bottom:2px solid var(--ink);background:var(--ground);position:relative;z-index:20}
.menu-bar{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;align-items:stretch;justify-content:space-between;gap:0;width:100%}
.menu-bar .mn-no{display:none}
.mi{flex:0 1 auto;min-width:0}
.mi{position:relative}
.mi::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}
.mi-top{display:flex;align-items:center;gap:.45em;font-family:var(--serif);font-size:clamp(11.5px,1.45vw,21px);font-weight:600;color:var(--ink);border:0;padding:15px clamp(5px,.75vw,16px);white-space:nowrap}
.mi-top .icon{width:1.15em;height:1.15em}
.mi-top .icon{width:1.15em;height:1.15em}
.mn-no{font-family:var(--serif);font-weight:700;font-size:13px;color:var(--accent)}
.mi:hover .mi-top,.mi:focus-within .mi-top,.mi-top[aria-current]{color:var(--secondary);background:var(--ground-2)}
.mi-panel{position:absolute;top:100%;left:0;min-width:300px;max-width:min(300px,88vw);background:var(--ground);border:1px solid var(--ink);border-top:3px solid var(--secondary);padding:8px 0 4px;box-shadow:0 14px 30px rgba(21,22,27,.13);opacity:0;visibility:hidden;transform:translateY(5px);transition:opacity .13s ease,transform .13s ease;z-index:30}
.mi:last-child .mi-panel,.mi:nth-last-child(2) .mi-panel{left:auto;right:0}
.mi:hover .mi-panel,.mi:focus-within .mi-panel{opacity:1;visibility:visible;transform:none}
.mi-panel ul{list-style:none;margin:0;padding:0}
.mi-panel li a{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:baseline;padding:9px 16px;font-family:var(--serif);font-size:16.5px;color:var(--ink);border:0}
.mi-panel li a:hover,.mi-panel li a[aria-current]{background:var(--ground-2);color:var(--secondary)}
.mi-panel .mp-no{font-family:var(--serif);font-weight:700;font-size:13px;color:var(--accent)}
.mi-all{display:block;padding:10px 16px 8px;margin-top:4px;border-top:1px solid var(--hair);font-family:var(--sans);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.rx-all{padding:0 14px 11px;font-size:13.5px;font-family:var(--sans);letter-spacing:.02em}
.rx-entries{list-style:none;display:flex;flex-wrap:wrap;gap:2px 18px;margin:0;padding:0;font-size:15px}
.rx-entries a{color:var(--ink-2);border-bottom:1px solid transparent}
.rx-entries a:hover{color:var(--secondary);border-bottom-color:var(--secondary)}
@media(max-width:760px){
  .mi{position:static}
  .menu-bar{display:block;flex-wrap:wrap}
  .mi-top{font-size:16px;padding:11px 10px}
  .mi-panel{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--hair);min-width:0;margin:0 0 6px 12px;padding:0;display:none}
  .mi:hover .mi-panel,.mi:focus-within .mi-panel{display:block}
}

/* ---------- generic bands ---------- */
section{border-bottom:1px solid var(--hair)}
.band{padding-block:clamp(32px,5vw,60px)}
.band-tint{background:var(--ground-2)}
.band-accent{background:var(--accent);color:#F4F1E8;border-bottom:0}
.band-secondary{background:var(--secondary);color:#F7EFE6;border-bottom:0}
.band-accent a,.band-secondary a{color:#FBEBD9;border-bottom-color:rgba(255,255,255,.4)}
.band-accent h2,.band-secondary h2{color:inherit}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow .kicker{color:var(--rule)}
.band-accent .eyebrow .kicker,.band-secondary .eyebrow .kicker{color:#F0BE8F}
.standing-line{font-family:var(--serif);font-size:clamp(19px,2.2vw,24px);line-height:1.5;color:var(--rule);max-width:56ch}

/* lead feature */
.lead-feature{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,3.5vw,48px);align-items:end}
.lead-feature h1{font-size:clamp(38px,5.4vw,68px)}
.lead-feature .lead{margin:18px 0 0}
.feature-meta{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--quiet);font-weight:700;margin-bottom:14px}
@media(max-width:860px){.lead-feature{grid-template-columns:1fr}}

/* stat strip */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;margin:0;border-top:2px solid var(--ink)}
.statblock{padding:16px 20px 14px;border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:4px}
.statblock:last-child{border-right:0}
.stat-num{font-family:var(--serif);font-weight:700;font-size:clamp(30px,4vw,46px);line-height:1;color:var(--accent)}
.stat-label{font-size:14px;color:var(--ink-2)}

/* register / tables */
.register{width:100%;border-collapse:collapse;font-size:15.5px}
.register caption{text-align:left;font-size:14px;color:var(--quiet);padding-bottom:10px}
.register th{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rule);text-align:left;border-bottom:2px solid var(--rule);padding:0 16px 9px 0;font-weight:700}
.register td{border-bottom:1px solid var(--hair);padding:14px 16px 14px 0;vertical-align:middle}
.register td:first-child,.register th:first-child{width:52px}
.register .r-no{font-family:var(--serif);font-weight:700;font-size:22px;color:var(--accent)}
.register .r-work{font-family:var(--serif);font-size:19px;font-weight:600}
.register .r-plate{width:150px}
.register .r-plate img{width:150px;height:104px;object-fit:cover;background:var(--accent)}
.register tr.is-subject td{background:var(--ground-2)}
.register tr.is-subject .r-no{color:var(--secondary)}
.datatable,.versus{width:100%;border-collapse:collapse;font-size:15.5px}
.datatable caption,.versus caption{text-align:left;font-size:14px;color:var(--quiet);padding-bottom:10px}
.datatable th,.versus th{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rule);text-align:left;border-bottom:2px solid var(--rule);padding:0 14px 9px 0;font-weight:700}
.datatable td,.versus td{border-bottom:1px solid var(--hair);padding:11px 14px 11px 0}
.versus td:first-child{font-weight:700;font-family:var(--serif);font-size:17px}
@media(max-width:620px){.register .r-plate,.register th.r-plate{display:none}}

/* ---------- figures: three treatments, one drawing system ---------- */
figure{margin:0}
.article-figure{margin-block:clamp(26px,4vw,40px)}
.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.article-figure figcaption{font-family:var(--serif);font-size:17px;line-height:1.5;color:var(--ink);padding-top:12px;border-top:3px solid var(--secondary);margin-top:14px;max-width:62ch}
.f-lab{display:block;font-family:var(--sans);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--quiet);margin-bottom:6px}
.f-credit{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.06em;color:var(--quiet);margin-top:7px;font-weight:400}
/* treatment 1 — plate: numbered, tinted mat, caption stepped in */
.fig-plate{background:var(--ground-2);padding:14px;border:1px solid var(--rule)}
.fig-plate figcaption{display:grid;grid-template-columns:auto 1fr;gap:14px;border-top:0;margin-top:14px;padding-top:0}
.fig-plate .f-no{font-family:var(--serif);font-weight:700;font-size:22px;color:var(--accent)}
/* treatment 2 — column figure, caption held under it with a drawn bracket */
.fig-margin{display:block}
.fig-margin figcaption{border-top:0;padding-top:0;margin-top:14px;border-left:3px solid var(--secondary);padding-left:14px;max-width:56ch}
.fig-margin .f-rule{display:block;width:34px;height:14px;margin-bottom:9px;stroke:var(--secondary);fill:none;stroke-width:1.3}
.fig-margin img{aspect-ratio:16/10}
.article-body>.fig-margin{max-width:var(--measure)}
/* treatment 3 — wide figure breaking the measure, held to the content column */
.fig-bleed{width:100%;max-width:100%;position:static;left:auto;transform:none}
.fig-bleed img{aspect-ratio:24/9;max-width:none;width:100%}
.fig-bleed figcaption{max-width:min(72ch,100%);margin:0;padding-inline:0}
/* treatment 4 — inset in the column, prose beside it */
.fig-inset{float:right;width:min(300px,45%);margin:6px 0 22px 28px}
.fig-inset img{aspect-ratio:1/1}
.fig-inset figcaption{font-size:15px;border-top-width:2px;padding-top:9px;margin-top:10px}
@media(max-width:620px){.fig-inset{float:none;width:100%;margin:24px 0}}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.gallery figure img{aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{font-family:var(--serif);font-size:15px;padding-top:9px;border-top:2px solid var(--secondary);margin-top:10px}

/* map */
.map-figure{margin-block:clamp(26px,4vw,40px)}
.map-figure .map-slot{border:1px solid var(--rule);background:var(--ground)}
.map-figure svg{display:block;width:100%;height:auto}
.map-figure figcaption{font-family:var(--serif);font-size:17px;line-height:1.5;padding-top:12px;max-width:56ch}
.map-land{fill:var(--hair);stroke:var(--ink);stroke-width:1.2;stroke-linejoin:round}
.map-pin circle{fill:var(--secondary);stroke:var(--ground);stroke-width:2}
.map-pin text{font-family:var(--sans);font-size:20px;font-weight:700;fill:var(--ink)}

/* ---------- article ---------- */
.article-head{padding-top:clamp(26px,4vw,48px)}
.article-head .kicker{display:flex;align-items:center;gap:9px}
.article-title{display:flex;align-items:baseline;gap:clamp(12px,2vw,22px);margin-top:14px}
.article-title .num{font-size:clamp(40px,6vw,72px);line-height:.9}
.article-title h1{font-size:clamp(32px,5vw,56px)}
.lead{font-family:var(--sans);font-size:clamp(18px,2vw,21px);line-height:1.6;color:var(--rule);max-width:60ch}
.prose{max-width:var(--measure);font-size:17.5px}
.prose p{margin:0 0 22px}
.prose h2{font-size:clamp(24px,3vw,32px);margin:40px 0 14px}
.prose h3{font-size:20px;margin:32px 0 10px}
.prose h2+p,.prose h3+p{margin-top:0}
.prose ul{padding-left:20px}
.article-body{display:flex;flex-direction:column;gap:0;padding-bottom:clamp(30px,5vw,56px);max-width:none;width:100%}
.article-body>*{margin-inline:0;width:100%;max-width:var(--measure)}
.article-body>.interrupt{max-width:calc(var(--measure) + 2*var(--bleed));margin-inline:calc(-1*var(--bleed));width:calc(100% + 2*var(--bleed))}
.article-body>.fig-bleed{max-width:var(--measure)}
.article-body>.fig-margin,.article-body>.article-figure.wide{max-width:var(--measure)}
.article-body>.fig-inset{float:none;display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:end;width:100%;max-width:var(--measure);margin:6px 0 28px}
.article-body>.fig-inset img{aspect-ratio:1/1}
.article-body>.fig-inset figcaption{border-top:0;border-left:3px solid var(--secondary);padding:0 0 0 14px;margin:0;font-size:16px}
@media(max-width:620px){.article-body>.fig-inset{grid-template-columns:1fr}.article-body>.fig-inset figcaption{border-left:0;border-top:3px solid var(--secondary);padding:10px 0 0}}
.pullquote{margin:8px 0 30px;padding:26px 0;border-top:2px solid var(--rule);border-bottom:2px solid var(--rule);display:grid;grid-template-columns:auto 1fr;gap:20px}
.pullquote p{font-family:var(--serif);font-size:clamp(21px,2.6vw,27px);line-height:1.35;color:var(--accent);margin:0}
.pullquote .q-bracket{width:16px;height:34px;stroke:var(--secondary);fill:none;stroke-width:1.5;margin-top:6px}
.blockquote{margin:0 0 26px;padding-left:22px;border-left:3px solid var(--secondary)}
.blockquote p{font-family:var(--serif);font-size:20px;line-height:1.45;margin:0 0 8px}
.blockquote cite{font-family:var(--sans);font-size:14px;font-style:normal;color:var(--quiet)}
.callout{background:var(--ground-2);border-top:2px solid var(--accent);padding:20px 22px;margin:0 0 26px}
.callout p{margin:0;font-family:var(--serif);font-size:18px;line-height:1.5}
.note{font-size:15px;color:var(--quiet);border-left:2px solid var(--hair);padding-left:14px;margin:0 0 26px}
.entity-ref{white-space:nowrap}

/* interruptions built from the notes material */
.interrupt{background:var(--ground-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:clamp(26px,3.5vw,40px) var(--bleed);margin-block:clamp(28px,4vw,44px)}
.interrupt-inner{max-width:none;padding-inline:0;display:grid;grid-template-columns:1fr;gap:16px}
.interrupt h2,.interrupt h3{font-family:var(--serif);font-size:22px;font-weight:600;margin:0}
.interrupt .i-head{display:flex;gap:12px;align-items:flex-start}
.i-bracket{width:14px;height:30px;stroke:var(--secondary);fill:none;stroke-width:1.4;flex:none}
@media(max-width:760px){.interrupt-inner{grid-template-columns:1fr}}
.timeline{list-style:none;margin:0;padding:0;counter-reset:t}
.timeline li{display:grid;grid-template-columns:minmax(90px,150px) 1fr;gap:8px 20px;padding:11px 0;border-top:1px solid var(--hair)}
.timeline li:first-child{border-top:0}
.t-when{font-family:var(--serif);font-weight:700;color:var(--accent);font-size:17px}
.t-what{font-size:16px;color:var(--ink-2)}
@media(max-width:520px){.timeline li{grid-template-columns:1fr;gap:2px}}
.termlist{list-style:none;margin:0;padding:0}
.termlist li{padding:11px 0;border-top:1px solid var(--hair);font-size:16px;color:var(--ink-2)}
.termlist li:first-child{border-top:0}
.termlist b{display:block;font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink)}

/* charts */
.chart{margin-block:26px}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .c-bar{fill:var(--accent)}
.chart .c-bar.alt{fill:var(--secondary)}
.chart .c-label,.chart .c-value{font-family:var(--sans);font-size:13px;fill:var(--ink-2)}
.chart .c-axis{stroke:var(--hair);stroke-width:1}
.chart .c-line{fill:none;stroke:var(--secondary);stroke-width:2}
.chart figcaption{font-family:var(--serif);font-size:16px;padding-top:10px;border-top:2px solid var(--secondary);margin-top:12px}

/* cards, profiles, orgs */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.profile-card{display:flex;flex-direction:column;background:var(--ground);border:1px solid var(--hair);border-top:3px solid var(--rule);padding:16px}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:14px}
.profile-card h3{font-size:21px;margin-bottom:4px}
.profile-card .p-role{font-family:var(--sans);font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--rule);margin:0 0 10px}
.profile-card p{font-size:15.5px;margin:0 0 12px}
.profile-card .p-links{margin-top:auto;font-size:15px}
.profile-card .p-attr{font-size:12px;color:var(--quiet);margin:0}
.profile-card.no-photo{border-top:3px solid var(--accent)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.org-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 14px;align-items:center;background:var(--ground-2);border:1px solid var(--hair);padding:12px 14px;border-bottom:1px solid var(--hair)}
.org-card:hover{border-color:var(--accent)}
.org-logo{grid-row:span 2;width:46px;height:46px;object-fit:contain;background:var(--dark)}
.org-name{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink)}
.org-host{font-size:13px;color:var(--quiet)}
.org-card.no-logo{grid-template-columns:1fr}
.org-card.no-logo .org-name{grid-row:1}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.further-grid a{display:flex;flex-direction:column;gap:6px;background:var(--ground);border:1px solid var(--hair);border-top:3px solid var(--secondary);padding:14px 16px;font-family:var(--serif);font-size:19px;color:var(--ink)}
.further-grid a:hover{background:var(--ground-2);color:var(--secondary)}
.further-grid span{font-family:var(--sans);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--rule)}
.related-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 26px}
.related-links li{border-top:1px solid var(--hair);padding:12px 0;font-family:var(--serif);font-size:18px}
.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:44px 1fr;gap:6px 16px;padding:16px 0;border:0;align-items:baseline}
.cat-list a:hover{background:var(--ground-2)}
.cat-list .num{font-size:20px;grid-column:1;grid-row:1}
.cat-list strong{font-family:var(--serif);font-size:21px;font-weight:600;color:var(--ink);display:block;grid-column:2;grid-row:1}
.cat-list a>span:not(.num){font-size:15.5px;color:var(--ink-2);grid-column:2;grid-row:2}
.cat-list a:hover strong{color:var(--secondary)}

/* card grid (even height) */
.entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:24px}
.entry-card{display:flex;flex-direction:column;background:var(--ground);border-top:2px solid var(--ink);padding:14px 16px 18px}
.entry-card img{width:calc(100% + 32px);margin-left:-16px}
.entry-card img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:14px}
.entry-card .e-no{font-family:var(--serif);font-weight:700;color:var(--accent);font-size:19px}
.entry-card h3{font-size:22px;margin:4px 0 8px;min-height:2.2em}
.entry-card p{font-size:15.5px;margin:0 0 14px;color:var(--ink-2)}
.entry-card .e-go{margin-top:auto;font-size:14px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}

/* sections hub cards */
.sec-list{display:grid;gap:0}
.sec-row{display:grid;grid-template-columns:60px 1fr minmax(0,1.1fr);gap:10px 26px;align-items:start;padding:22px 0;border-top:1px solid var(--hair)}
.sec-row h2{font-size:clamp(24px,3vw,30px);display:flex;align-items:center;gap:12px}
.sec-row p{margin:6px 0 0;font-size:16px;color:var(--ink-2);max-width:40ch}
@media(max-width:760px){.sec-row{grid-template-columns:44px 1fr}.sec-row .sec-entries{grid-column:2}}

/* ---------- homepage ---------- */
.opener{position:relative;border-bottom:1px solid var(--hair);background:#2A2822}
.opener-img{height:clamp(360px,58vw,620px)}
.opener-img img{width:100%;height:100%;object-fit:cover}
.opener-plate{position:absolute;left:0;bottom:0;width:min(640px,86%);background:var(--ground);border-top:3px solid var(--secondary);padding:clamp(22px,3vw,34px) clamp(22px,3vw,38px) clamp(20px,2.6vw,30px)}
.opener-plate .kicker{display:flex;align-items:center;gap:9px;margin:0 0 12px}
.opener-plate h1{font-size:clamp(32px,4.6vw,58px);line-height:1.04}
.opener-plate h1 a{color:var(--ink);border:0}
.opener-plate h1 a:hover{color:var(--secondary)}
.opener-dek{font-family:var(--sans);font-size:clamp(16px,1.5vw,19px);line-height:1.55;color:var(--rule);margin:14px 0 0;max-width:52ch}
.opener-go{margin:14px 0 0;font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
@media(max-width:620px){.opener-plate{position:static;width:100%;border-top-width:3px}}

.counted{display:block}
.counted .standing-line{margin:0 0 26px;max-width:44ch}
.counted .statrow{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

.band-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:24px}
.band-head h2{font-size:clamp(24px,3vw,32px)}
.band-head p{margin:7px 0 0;font-size:16px;color:var(--quiet);max-width:56ch}
.r-note{color:var(--quiet)}
.register .r-work a{color:var(--ink);border:0}
.register .r-work a:hover{color:var(--secondary)}
.register .r-plate img{width:200px;height:128px}
.register .r-plate{width:200px}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:stretch;border-bottom:0}
.split-img img{width:100%;height:100%;min-height:340px;object-fit:cover}
.split-copy{padding:clamp(30px,4vw,58px) clamp(24px,4vw,56px)}
.split-copy .kicker{display:flex;align-items:center;gap:9px;color:#F0BE8F;margin:0}
.split-num{font-family:var(--serif);font-weight:700;font-size:clamp(72px,9vw,132px);line-height:.85;letter-spacing:-.04em;margin:10px 0 12px}
.split-copy h2{font-size:clamp(24px,2.9vw,34px);line-height:1.22;max-width:34ch}
.split-copy p{max-width:56ch;color:#DCDAEC;margin:16px 0 0}
.split-copy .foot-nav{margin-top:20px}
@media(max-width:860px){.split{grid-template-columns:1fr}.split-img img{min-height:220px}}

.quiet-line .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 30px;padding-block:clamp(26px,3.4vw,40px)}
.quiet-line p{margin:0;font-family:var(--serif);font-size:clamp(19px,2.2vw,24px);color:var(--rule)}
.quiet-line p+p{font-family:var(--sans);font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:700}

/* map band */
.map-band{background:var(--ground-2)}
.map-band .map-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,3vw,44px);align-items:start}
.map-band .map-figure{margin:0;background:var(--ground);border:1px solid var(--rule);padding:16px}
.map-key{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0 26px;align-content:start}
.map-key li{display:grid;grid-template-columns:26px 1fr;gap:3px 11px;padding:13px 0;border-top:1px solid var(--hair)}
.mk-no{font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--ground);background:var(--secondary);border-radius:50%;width:22px;height:22px;display:grid;place-items:center;grid-row:span 2;margin-top:3px}
.map-key a{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);border:0}
.map-key a:hover{color:var(--secondary)}
.mk-what{font-size:14.5px;line-height:1.5;color:var(--ink-2)}
@media(max-width:860px){.map-band .map-layout{grid-template-columns:1fr}}
.map-figure figcaption{max-width:none}
.map-pin .mp-num{font-family:var(--sans);font-size:17px;font-weight:700;fill:var(--ground)}
.map-pin circle{fill:var(--secondary);stroke:var(--ground);stroke-width:2.5}

/* homepage hero */
.hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:stretch;border-bottom:1px solid var(--hair);background:#1E1F52;color:#F1EFE6}
.hero-copy{padding:clamp(28px,4.2vw,62px) clamp(24px,3.4vw,54px)}
.hero-copy .kicker{color:#F0BE8F;margin:0 0 16px}
.hero-copy h1{font-size:clamp(32px,4.1vw,56px);line-height:1.06;max-width:24ch}
.hero-dek{font-family:var(--sans);font-size:clamp(15.5px,1.35vw,18px);line-height:1.62;color:#C6C3E0;margin:20px 0 0;max-width:52ch}
.hero-go{display:flex;flex-wrap:wrap;gap:12px 26px;margin:26px 0 0;font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
.hero-go a{color:#F4F1E8;border-bottom:2px solid var(--secondary);padding-bottom:3px}
.hero-go a:hover{color:#F6C79E}
.hero-go .hero-go-2{border-bottom-color:rgba(255,255,255,.3)}
.hero-img{position:relative}
.hero-img img{width:100%;height:100%;min-height:clamp(300px,42vw,560px);object-fit:cover}
.hero-cap{position:absolute;left:0;right:0;bottom:0;margin:0;background:rgba(21,22,27,.72);color:#F1EFE6;font-size:14.5px;line-height:1.5;padding:14px 18px}
@media(max-width:860px){.hero{grid-template-columns:1fr}.hero-img img{min-height:260px}}

/* the arithmetic band */
.arithmetic .wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(26px,4vw,60px);align-items:start}
.ar-mark svg{width:min(150px,40vw);height:auto;color:var(--accent);display:block}
.ar-mark p{font-family:var(--serif);font-size:clamp(19px,2vw,23px);line-height:1.35;color:var(--ink);margin:16px 0 0;max-width:24ch}
.ar-facts{margin:0}
.ar-facts>div{display:grid;grid-template-columns:minmax(130px,170px) 1fr;gap:8px 26px;padding:16px 0;border-top:1px solid var(--hair)}
.ar-facts>div:last-child{border-bottom:1px solid var(--hair)}
.ar-facts dt{font-family:var(--serif);font-weight:700;font-size:clamp(24px,2.6vw,32px);color:var(--accent);line-height:1}
.ar-facts dd{margin:0;font-size:16.5px;line-height:1.6;color:var(--ink-2);max-width:60ch}
@media(max-width:860px){.arithmetic .wrap{grid-template-columns:1fr}.ar-facts>div{grid-template-columns:1fr;gap:4px}}

/* homepage sections strip */
.sections-strip .wrap{padding-block:clamp(30px,4.2vw,56px)}
.ss-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px;margin-bottom:22px}
.ss-head h2{font-size:clamp(24px,3vw,34px);color:#FBF8F1}
.ss-head p{margin:0;font-size:15.5px;color:#F6DDC9}
.ss-list{list-style:none;margin:0;padding:0}
.ss-list li{border-top:1px solid rgba(255,255,255,.28)}
.ss-list li:last-child{border-bottom:1px solid rgba(255,255,255,.28)}
.ss-list a{display:grid;grid-template-columns:34px 34px minmax(0,1fr) minmax(0,1.1fr);gap:6px 18px;align-items:center;padding:16px 4px;border:0;color:#FBF8F1}
.ss-list a:hover{background:rgba(0,0,0,.13);color:#FFF}
.ss-list .icon{width:26px;height:26px}
.ss-no{font-family:var(--serif);font-weight:700;font-size:17px;color:#F6DDC9}
.ss-name{font-family:var(--serif);font-size:clamp(20px,2.3vw,27px);font-weight:600;line-height:1.15}
.ss-blurb{font-size:15px;color:#F6DDC9}
@media(max-width:660px){.ss-list a{grid-template-columns:28px 28px minmax(0,1fr);row-gap:3px}.ss-blurb{grid-column:3}}

/* homepage second lead */
.second-lead .wrap{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(24px,3.4vw,52px);align-items:start}
.sl-fig{margin:0}
.sl-fig img{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--rule)}
.sl-fig figcaption{font-family:var(--serif);font-size:16.5px;line-height:1.5;color:var(--ink);border-top:3px solid var(--secondary);margin-top:14px;padding-top:11px}
.sl-copy .kicker{margin:0 0 14px}
.sl-copy h2{font-size:clamp(26px,3.2vw,38px);line-height:1.14;max-width:26ch}
.sl-copy p{font-size:17px;line-height:1.75;color:var(--ink-2);max-width:62ch;margin:18px 0 0}
.sl-facts{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:0}
.sl-facts li{border-top:1px solid var(--hair);padding:10px 0;font-size:14.5px}
.sl-facts li:last-child{border-bottom:1px solid var(--hair)}
.sl-facts a{color:var(--ink);border-bottom:1px solid var(--hair)}
.sl-facts a:hover{color:var(--secondary);border-bottom-color:var(--secondary)}
@media(max-width:860px){.second-lead .wrap{grid-template-columns:1fr}}

/* the shelf */
.shelf{display:flex;flex-direction:column;margin-inline:calc(-1*var(--bleed))}
.shelf-row{display:grid;grid-template-columns:44px 220px minmax(0,1.15fr) minmax(0,.9fr) minmax(0,1.2fr);gap:8px 26px;align-items:center;padding:18px var(--bleed);border-top:1px solid var(--hair);border-bottom:0;color:var(--ink)}
.shelf-row:last-child{border-bottom:1px solid var(--hair)}
.shelf-row:hover{background:var(--ground-2)}
.shelf-row img{width:220px;height:132px;object-fit:cover}
.sh-no{font-family:var(--serif);font-weight:700;font-size:24px;color:var(--accent)}
.sh-work{font-family:var(--serif);font-size:clamp(20px,2.1vw,26px);font-weight:600;line-height:1.15}
.sh-year{display:block;font-family:var(--sans);font-size:12.5px;letter-spacing:.12em;color:var(--rule);margin-top:5px}
.sh-author{font-size:15.5px;color:var(--ink-2)}
.sh-note{font-size:15.5px;color:var(--quiet)}
.shelf-row.is-subject{background:var(--accent);color:#F1EFE6}
.shelf-row.is-subject .sh-no,.shelf-row.is-subject .sh-year{color:#F0BE8F}
.shelf-row.is-subject .sh-author,.shelf-row.is-subject .sh-note{color:#D5D2EA}
.shelf-row.is-subject:hover{background:#2A2A75}
@media(max-width:1040px){
  .shelf-row{grid-template-columns:38px 150px minmax(0,1fr);row-gap:3px;padding:14px var(--bleed);align-items:start}
  .shelf-row img{width:150px;height:98px}
  .sh-no{font-size:20px;padding-top:2px}
  .sh-work{font-size:21px;grid-column:3;grid-row:1}
  .sh-author{grid-column:3;grid-row:2;font-size:14.5px}
  .sh-note{grid-column:3;grid-row:3;font-size:14.5px;line-height:1.5}
  .shelf-row img{grid-row:1 / span 3}
  .sh-no{grid-row:1 / span 3}
}
@media(max-width:560px){
  .shelf-row{grid-template-columns:34px 1fr}
  .shelf-row img{grid-column:2;grid-row:1;width:100%;height:auto;aspect-ratio:16/10}
  .sh-work{grid-column:2;grid-row:2}
  .sh-author{grid-column:2;grid-row:3}
  .sh-note{grid-column:2;grid-row:4}
  .sh-no{grid-row:1}
}

/* ---------- supporters: a directory strip above the footer ---------- */
.supporters{background:var(--ground-2);border-top:2px solid var(--ink)}
.supporters .wrap{padding-block:clamp(28px,4vw,44px)}
.sup-head{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;margin-bottom:22px}
.sup-head h2{font-size:24px}
.sup-head p{margin:0;font-size:15px;color:var(--quiet);max-width:52ch}
.sup-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px 34px}
.sup-group h3{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rule);border-bottom:1px solid var(--rule);padding-bottom:8px;margin-bottom:2px}
.sponsor{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px 0;border:0;border-bottom:1px solid var(--hair);color:var(--ink)}
.sponsor:hover{color:var(--secondary)}
.sponsor img{width:100%;height:48px;max-height:48px;object-fit:contain;background:var(--dark);padding:7px 12px}
.sponsor .sponsor-name{font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.25}
.sponsor .sponsor-blurb{font-size:13.5px;line-height:1.45;color:var(--ink-2);min-width:200px}
@media(max-width:620px){
  .sup-groups{grid-template-columns:1fr}
  .sup-group{width:100%}
}

/* ---------- footer ---------- */
.site-foot{background:#1E1F52;color:#F1EFE6;border:0}
.site-foot .wrap{padding-block:clamp(30px,4vw,46px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px 48px;align-items:start}
.foot-mark{font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);font-weight:700;letter-spacing:-.02em;margin:0 0 12px}
.site-foot .standing{font-family:var(--serif);font-size:clamp(17px,1.8vw,20px);line-height:1.5;margin:0;max-width:44ch;color:#C6C3E0}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px 32px}
.foot-cols h2{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#F0BE8F;border-bottom:1px solid rgba(255,255,255,.22);padding-bottom:8px;margin:0 0 8px}
.foot-cols ul{list-style:none;margin:0;padding:0;font-size:15px;line-height:2}
.foot-cols a{color:#DAD7EE;border-bottom:1px solid transparent}
.foot-cols a:hover{color:#F6C79E;border-bottom-color:#F6C79E}
.foot-nav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:15px}
.foot-nav a{color:#DAD7EE;border-bottom-color:rgba(255,255,255,.3)}
.foot-nav a:hover{color:#F6C79E}
@media(max-width:760px){.site-foot .wrap{grid-template-columns:1fr}}

/* skip link */
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ground);padding:8px 12px;z-index:9}

/* cross-reference insertion */
.seealso{margin:10px 0 32px;border-top:2px solid var(--ink);border-bottom:1px solid var(--hair)}
.sa-link{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:center;padding:16px 0;border:0;color:var(--ink)}
.sa-link:hover{border:0}
.sa-link img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.sa-title{display:block;font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.15;color:var(--accent);margin:7px 0 6px}
.sa-link:hover .sa-title{color:var(--secondary)}
.sa-note{display:block;font-family:var(--sans);font-size:15.5px;line-height:1.5;color:var(--ink-2)}
@media(max-width:620px){.sa-link{grid-template-columns:1fr;gap:14px}}

/* 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, and an inset from the tile edge.
   Measured: the panel was 261x48 sitting flush to BOTH tile edges (inset 0/0) with `padding:0 12px`
   — so the dark panel touched the tile's left and right sides and the wordmark had no room above
   or below it.

   ⚠️ content-box, as on pays-de-faverges: padding under the default border-box would have eaten
   into the artwork (measured: art height halved, 48 -> 24). Here the declared width is also pulled
   in so the grown panel still fits, which is what buys the inset:
       before  panel 261x48  art 237x48  inset 0/0
       after   panel 233x72  art 201x48  inset 14/14
   The artwork keeps its full height; it loses some width, which is the unavoidable price of an
   inset on a panel that previously ran edge to edge. */
.sponsor[data-partner] img{
  box-sizing: content-box !important;
  padding: 12px 16px !important;
  width: calc(100% - 60px) !important;
  display: block !important;
  margin: 0 auto !important;
}


/* op-nav-collapse: this nav printed 246px of stacked links at 390 before any content
   (25 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 "centre-pill", 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,48px)) 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 "display" technique and marked with the "bars" icon — the mechanism
   is deliberately not identical across the fleet either. */
.menu-switch{display:none}
@media (max-width:860px){
  .menu-switch{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-inline:auto;justify-self:center;border:1.5px solid currentColor;border-radius:999px;padding:10px 22px;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}

  .menu-switch-bars{width:15px;height:9px;flex:none;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;box-shadow:inset 0 3.5px 0 -1px currentColor}
  .wrap > nav{display:none}
  .menu-switch-c:checked ~ .wrap > nav{display:block}
  .wrap:has(> .menu-switch){display:flow-root}
  .menu-switch:not(:has(~ .wrap > nav)){display:none}
}

/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1692px at 390, 32% of the whole page. Two columns bring it to
   1061px (37% shorter). Checked before writing: no new overflow, smallest mark still
   139px wide, longest blurb 3 lines, tile heights 89-175px.
   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 (.sup-group), 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){
  .sup-group{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .sup-group > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sup-group > * *{min-width:0!important;max-width:100%}
    .sup-group img,.sup-group svg{max-width:100%;height:auto}
  .sup-group .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-odd-tier-lead: .sup-group (3 tiles), .sup-group (3 tiles), .sup-group (3 tiles), .sup-group (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){
  .sup-group:has(> a:nth-of-type(odd):last-of-type) > [data-partner]:first-of-type{grid-column:1 / -1!important}
  .sup-group:has(> a:nth-of-type(odd):last-of-type) > [data-partner]:first-of-type{grid-column:1 / -1!important}
  .sup-group:has(> a:nth-of-type(odd):last-of-type) > [data-partner]:first-of-type{grid-column:1 / -1!important}
  .sup-group:has(> a:nth-of-type(odd):last-of-type) > [data-partner]:first-of-type{grid-column:1 / -1!important}
}

/* op-hover-pad */
.cat-list a{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--serif); font-weight: 700; letter-spacing: -0.015em; line-height: 1.1; margin: 0px;}
.entry-card h2:where(.rt-h3){font-size: 22px; margin: 4px 0px 8px; min-height: 2.2em;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(aside.seealso > a.sa-link > img,
  div.article-body.prose > figure.article-figure.fig-bleed > img,
  div.article-body.prose > figure.article-figure.fig-margin > img,
  div.entry-grid > a.entry-card > img,
  div.shelf > a.is-subject.shelf-row > img,
  div.shelf > a.shelf-row > img,
  div.wrap > figure.article-figure.fig-plate > img,
  div.wrap > figure.article-figure.fig-plate.wide > img,
  section.hero > div.hero-img > img){height:auto}
/* op-img-dims:end */

/* op-entity-wrap: long reference links wrap like the text around them (nowrap ran them off phone screens) */
.entity-ref.entity-ref{white-space:normal!important}
.sponsor.sponsor > img{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}
