/* irtsn.com — The Hand-Inked Register
   Palette roles: ground / tint / ink / accent (madder) / secondary (olive) */

:root{
  --ground:#F1E9DC;      /* ground — page */
  --tint:#E4D8C4;        /* ground, second — mats and panels */
  --tint-2:#EDE3D2;      /* ground, third — quiet bands */
  --ink:#241C15;         /* ink — body and headlines */
  --ink-2:#3A2E23;       /* ink, lighter — long prose */
  --muted:#5A4B3C;       /* ink, quiet — captions */
  --quiet:#79674F;       /* ink, quietest — credits, labels */
  --rule:#C9B99F;        /* hairlines */
  --madder:#A8321E;      /* accent — links, full bands */
  --madder-dk:#8C2716;
  --olive:#55661F;       /* secondary — strip grounds */
  --olive-dk:#41501A;
  --on-dark:#E7DCCB;

  --serif:"Literata",Georgia,"Times New Roman",serif;
  --sans:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;

  --measure:68ch;
  --gut:clamp(20px,5vw,72px);
  --maxw:1320px;
}

*,*::before,*::after{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.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--madder);text-decoration:none}
a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
::selection{background:var(--madder);color:var(--ground)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.1;margin:0;text-wrap:pretty}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
figure{margin:0}
table{border-collapse:collapse;width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--quiet)}
.label-accent{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--madder)}
.rule-hand{display:block;width:100%;height:8px;color:var(--rule)}
.mark{flex:none;color:currentColor}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--ink)}
.mast-top{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-top:30px;padding-bottom:22px}
.mast-id{display:flex;align-items:flex-end;gap:.28em;color:var(--ink);font-size:clamp(50px,7vw,98px)}
.mast-id:hover{text-decoration:none}
.mast-mark{width:.84em;height:auto;color:var(--madder);margin-bottom:.1em}
.mast-word{display:block;font-family:var(--serif);font-weight:700;font-size:1em;line-height:.82;letter-spacing:.02em}
.mast-strap{display:block;margin-top:13px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.mast-line{max-width:300px;font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.5;color:var(--muted)}
.mast-line .rule-hand{margin-bottom:12px}

/* printed index (row two) */
.index-band{border-top:1px solid var(--rule);background:var(--tint-2)}
.index-band > summary{list-style:none;cursor:pointer;padding:14px var(--gut);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}
.index-band > summary::-webkit-details-marker{display:none}
.index-band > summary::after{content:"+";font-size:18px;color:var(--madder)}
.index-band[open] > summary::after{content:"–"}
.index-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding-top:24px;padding-bottom:28px;counter-reset:entry}
.index-col{padding-inline:20px;border-left:1px solid var(--rule)}
.index-col:first-child{padding-left:0;border-left:0}
.index-col:last-child{padding-right:0}
.index-head{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink);letter-spacing:.005em;padding-bottom:9px;margin-bottom:11px;border-bottom:1px solid var(--rule)}
.index-head:hover{color:var(--madder);text-decoration:none}
.index-head .mark{width:19px;height:19px;color:var(--madder)}
.index-col ul{display:flex;flex-direction:column;gap:7px;font-size:14px}
.index-col li{counter-increment:entry}
.index-col li a{display:flex;gap:9px;color:var(--ink-2);line-height:1.35}
.index-col li a::before{content:counter(entry,decimal-leading-zero);font-family:var(--sans);font-size:10.5px;letter-spacing:.06em;color:var(--quiet);padding-top:3px;flex:none}
.index-col li a:hover{color:var(--madder);text-decoration:none}
.index-col li a:hover::before{color:var(--madder)}
.index-rail{display:none}
@media (max-width:1180px){
  .index-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 0}
  .index-col:nth-child(3n+1){padding-left:0;border-left:0}
  .index-col:nth-child(3n){padding-right:0}
}
@media (max-width:860px){
  .index-band > summary{border-top:1px solid var(--rule)}
  .index-rail{display:flex;gap:18px;overflow-x:auto;padding:12px var(--gut);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;-webkit-overflow-scrolling:touch}
  .index-rail a{white-space:nowrap}
  .index-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 0}
  .index-col{padding-inline:16px}
  .index-col:nth-child(odd){padding-left:0;border-left:0}
  .index-col:nth-child(even){padding-right:0}
}
@media (min-width:861px){
  .index-band > summary{display:none}
  .index-band .index-grid{display:grid !important}
}

/* ---------- generic bands ---------- */
section{position:relative}
.band{padding-block:clamp(46px,6vw,84px)}
.band-tint{background:var(--tint-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.band-madder{background:var(--madder);color:#F5E9DC}
.band-madder a{color:#F7DCD1}
.band-olive{background:var(--olive);color:#EEEBD8}
.band-quiet{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:30px}
.band-madder .label,.band-olive .label{color:rgba(255,255,255,.62)}
.pagelabel{padding-top:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--quiet)}

/* ---------- figures ---------- */
.article-figure{margin-block:34px}
.article-figure img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:var(--tint)}
.article-figure figcaption{font-family:var(--serif);font-size:15.5px;line-height:1.5;color:var(--muted);margin-top:12px;max-width:64ch}
.fig-credit{display:block;margin-top:5px;font-family:var(--sans);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--quiet)}

/* treatment 1 — mat with hand corner marks */
.fig-mat{background:var(--tint);padding:22px;position:relative}
.fig-mat .corner{position:absolute;width:19px;height:19px;color:var(--madder)}
.fig-mat .corner-tl{top:8px;left:8px}
.fig-mat .corner-br{bottom:8px;right:8px;transform:rotate(180deg)}
.fig-mat figcaption{margin-top:15px}

/* treatment 2 — bleed with an overlapping plate */
.fig-bleed{margin-block:44px}
.fig-bleed .fig-img{width:min(100vw,1600px);margin-left:50%;transform:translateX(-50%)}
.fig-bleed .fig-img a{display:block}
.fig-bleed img{width:100%;height:auto;aspect-ratio:16/9;min-height:280px;object-fit:cover}
.fig-bleed figcaption{background:var(--ground);border-top:3px solid var(--madder);margin-top:-38px;position:relative;padding:22px 26px 18px;max-width:620px}
@media (max-width:700px){.fig-bleed figcaption{margin-top:0;max-width:none}}

/* treatment 3 — margin caption, image steps out of the measure */
.fig-margin{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(190px,1fr);gap:26px;align-items:start;margin-block:40px}
.fig-margin a{display:block}
.fig-margin figcaption{margin-top:0;border-top:1px solid var(--rule);padding-top:12px}
@media (max-width:760px){.fig-margin{grid-template-columns:1fr}}

/* treatment 4 — inset in the column */
.fig-inset{max-width:300px;float:right;margin:8px 0 22px 30px}
.fig-inset a{display:block}
.fig-inset img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.fig-inset figcaption{font-size:14px;margin-top:10px}
@media (max-width:700px){.fig-inset{float:none;max-width:none;margin:26px 0}}

/* treatment 5 — strip of three on colour */
.fig-strip{margin:0}
.fig-strip .strip-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.fig-strip .strip-row > a{display:block}
.fig-strip .strip-row img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.fig-strip figcaption{color:#DDE2C0;padding:16px var(--gut) 0;max-width:88ch;font-family:var(--serif);font-size:15.5px}
.band-olive .fig-credit,.fig-strip .fig-credit{color:#B9C48E}
.band-madder .fig-credit{color:#E8C4B7}
@media (max-width:700px){.fig-strip .strip-row{grid-template-columns:1fr}.fig-strip .strip-row img{aspect-ratio:16/10}}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-block:32px}
.gallery figure{background:var(--tint);padding:12px}
.gallery a{display:block}
.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{font-family:var(--serif);font-size:14px;color:var(--muted);margin-top:9px}

/* map */
.map-figure{margin-block:40px}
.map-figure .map-slot{background:transparent}
.map-figure svg{display:block;width:100%;height:auto}
.map-figure figcaption{font-family:var(--serif);font-size:15.5px;color:var(--muted);margin-top:12px}
.map-pin circle{fill:var(--madder)}
.map-pin text{font-family:var(--sans);font-size:15px;fill:var(--ink-2);letter-spacing:.04em}
.map-pin .pin-no{font-family:var(--serif);font-size:15px;font-weight:600;fill:#F1E9DC;letter-spacing:0}
.map-pin:hover circle{fill:var(--ink)}
.map-pin:hover text{fill:var(--madder)}
.map-pin:hover .pin-no{fill:#F1E9DC}

/* ---------- home ---------- */
.lead-split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(26px,4vw,58px);align-items:center;padding-top:36px;padding-bottom:clamp(44px,5vw,72px)}
.lead-figure{position:relative;padding:16px;background:var(--tint)}
.lead-figure::before{content:"";position:absolute;inset:16px -16px -16px 16px;border:1px solid var(--madder);pointer-events:none}
.lead-figure > .corner{position:absolute;width:20px;height:20px;color:var(--madder);z-index:2}
.lead-figure > .corner-tl{top:6px;left:6px}
.lead-figure > .corner-br{bottom:6px;right:6px;transform:rotate(180deg)}
.lead-figure a{display:block}
.lead-figure img{position:relative;width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--tint)}
.lead-figure figcaption{position:relative;margin-top:16px;padding:13px 4px 4px;border-top:1px solid var(--rule);font-family:var(--serif);font-size:15px;line-height:1.5;color:var(--muted)}
.lead-copy{border-top:3px solid var(--madder);padding-top:26px}
.lead-copy h1{font-size:clamp(31px,4.1vw,58px);font-weight:700;letter-spacing:-.015em;margin:14px 0 18px}
.lead-copy .lead{font-family:var(--serif);font-size:19px;line-height:1.58;color:var(--ink-2);max-width:52ch}
@media (max-width:760px){.lead-split{grid-template-columns:1fr;padding-top:26px}.lead-figure img{aspect-ratio:4/3}}
.lead-plate{background:var(--ground);max-width:760px;margin-top:-92px;position:relative;padding:32px 36px 30px;border-top:3px solid var(--madder)}
.lead-plate h1{font-size:clamp(31px,4vw,56px);font-weight:700;letter-spacing:-.015em;margin:14px 0 16px}
.lead-plate .lead{font-family:var(--serif);font-size:19px;line-height:1.58;color:var(--ink-2);max-width:56ch}
.lead-media{width:100%;max-width:1600px;margin-inline:auto;height:min(62vh,600px);min-height:360px;background:var(--tint)}
.lead-media a{display:block;width:100%;height:100%}
.lead-media img{width:100%;height:100%;object-fit:cover}
@media (max-width:700px){.lead-plate{margin-top:-30px;padding:26px 22px}}

.quietline{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(21px,2.6vw,35px);line-height:1.34;max-width:30ch}
.section-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:32px 40px}
.section-card h3{display:flex;align-items:center;gap:10px;font-size:24px;margin-bottom:8px}
.section-card h3 .mark{width:24px;height:24px;color:var(--madder)}
.section-card p{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-2);margin-bottom:9px}
.section-card .entries{font-size:13.5px;color:var(--muted)}
.section-card .entries a{color:var(--muted)}
.section-card .entries a:hover{color:var(--madder)}

.seconds{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px}
.seconds h3{font-size:22px;margin:14px 0 8px}
.seconds p{font-family:var(--serif);font-size:15.5px;line-height:1.55;color:var(--ink-2)}

.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:40px;align-items:center}
.statement{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.9vw,38px);line-height:1.28}

/* register table */
.register{border-top:1.5px solid var(--ink);margin-top:22px}
.register .reg-row{display:grid;grid-template-columns:52px minmax(160px,1.4fr) minmax(90px,.7fr) minmax(0,1.8fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.register .reg-head{border-bottom:1px solid var(--ink);padding:9px 0;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.reg-no{font-family:var(--serif);color:var(--madder);font-weight:600}
.reg-title{font-family:var(--serif);font-size:18px}
.reg-brief{font-size:14.5px;color:var(--muted);line-height:1.5}
@media (max-width:700px){
  .register .reg-row{grid-template-columns:40px 1fr;gap:6px 12px}
  .register .reg-row .reg-sec{grid-column:2}
  .register .reg-row .reg-brief{grid-column:2}
  .register .reg-head{display:none}
}

/* ---------- supporters ---------- */
.supporters{padding-block:clamp(38px,4.4vw,58px)}
.supporters h2{font-size:22px;margin-bottom:6px}
.supporters .kicker{margin-bottom:20px;font-family:var(--serif);font-size:15.5px;color:var(--muted);max-width:62ch}
.sponsor-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:14px}
.sponsor{background:var(--ink);color:var(--on-dark);padding:16px 18px;display:flex;flex-direction:column;gap:8px;min-height:104px;justify-content:flex-end}
.sponsor:hover{background:var(--madder);color:#F7E7DE;text-decoration:none}
.sponsor--wide{grid-column:span 1}
.sponsor-name{font-family:var(--serif);font-size:19px;line-height:1.2}
.sponsor-blurb{font-size:13px;line-height:1.45;color:#BFAE97}
.sponsor:hover .sponsor-blurb{color:#F0D6CB}
.sponsor img{max-height:44px;max-width:100%;width:auto;height:auto;object-fit:contain}
@media (max-width:560px){.sponsor-wall{grid-template-columns:1fr}}

/* homepage register — numbered entries, two columns */
.home-reg{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:0 48px;border-top:1.5px solid var(--ink);margin-top:20px}
.home-reg a{display:grid;grid-template-columns:60px minmax(0,1fr);gap:2px 16px;padding:19px 10px;margin-inline:-10px;border-bottom:1px solid var(--rule);color:var(--ink)}
.home-reg a:hover{text-decoration:none;background:var(--tint-2)}
.home-reg .r-no{grid-row:span 3;font-family:var(--serif);font-size:33px;font-weight:600;line-height:.88;color:var(--madder)}
.home-reg .r-sec{font-size:10.5px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--quiet)}
.home-reg .r-title{font-family:var(--serif);font-size:22px;line-height:1.15;margin-top:3px}
.home-reg a:hover .r-title{color:var(--madder)}
.home-reg .r-brief{font-size:14.5px;line-height:1.5;color:var(--muted);margin-top:7px}

/* map with a keyed legend */
.map-band{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(230px,1fr);gap:36px;align-items:start}
.map-key{border-top:1.5px solid var(--ink)}
.map-key li a{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--rule);color:var(--ink);align-items:baseline}
.map-key li a:hover{text-decoration:none}
.map-key .k-no{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--madder)}
.map-key .k-place{font-family:var(--serif);font-size:17.5px;line-height:1.2}
.map-key li a:hover .k-place{color:var(--madder)}
.map-key .k-entry{display:block;font-size:13px;color:var(--muted);margin-top:3px}
@media (max-width:820px){.map-band{grid-template-columns:1fr}}

/* ---------- article ---------- */
.article-head{padding-top:44px}
.kicker{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--madder);margin-bottom:16px}
.kicker .mark{width:20px;height:20px}
.article-head h1{font-size:clamp(34px,5vw,72px);font-weight:700;letter-spacing:-.02em;max-width:20ch;margin-bottom:20px}
.lead{font-family:var(--serif);font-weight:300;font-size:clamp(19px,2vw,25px);line-height:1.45;color:var(--ink-2);max-width:46ch}
.article-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--quiet)}
.prose{max-width:var(--measure);margin-inline:auto;font-family:var(--serif);font-size:18px;line-height:1.7;color:var(--ink-2)}
.prose > p{margin-block:0 20px}
.prose h2{font-size:clamp(24px,2.4vw,31px);color:var(--ink);margin:40px 0 16px}
.prose h2 + p{margin-top:0}
.prose em{font-style:italic}
.prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--rule)}
.prose a:hover{text-decoration-color:var(--madder)}
.wide{max-width:1080px;margin-inline:auto}

.pullquote{margin:38px 0;border-top:2px solid var(--madder);border-bottom:1px solid var(--rule);padding:20px 0}
.pullquote p{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(21px,2.3vw,29px);line-height:1.32;color:var(--ink)}
.blockquote{margin:32px 0;padding-left:22px;border-left:3px solid var(--olive)}
.blockquote p{font-family:var(--serif);font-size:19px;line-height:1.55;font-style:italic}
.blockquote cite{display:block;margin-top:9px;font-family:var(--sans);font-style:normal;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--quiet)}
.callout{background:var(--tint);padding:22px 24px;margin:32px 0;border-top:3px solid var(--olive)}
.callout p{font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink)}
.note{font-family:var(--sans);font-size:14.5px;line-height:1.55;color:var(--muted);border-left:2px solid var(--rule);padding-left:14px;margin:24px 0}

/* interruptions — full-width panels that break the measure */
.interrupt{margin-block:52px;padding-block:38px}
.interrupt-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.interrupt-title h2{font-size:26px}
.terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px 34px}
.terms dt{font-family:var(--serif);font-size:19px;font-weight:600;margin-bottom:5px}
.terms dd{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2)}
.band-madder .terms dd{color:#F0D9CC}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px}
.statblock{border-top:2px solid var(--madder);padding-top:12px}
.stat-num{display:block;font-family:var(--serif);font-size:clamp(26px,3vw,40px);line-height:1.05;font-weight:600}
.stat-label{display:block;margin-top:8px;font-size:14px;line-height:1.5;color:var(--muted)}
.band-madder .statblock{border-top-color:#F1E1D3}
.band-madder .stat-label{color:#F0D9CC}
.band-olive .statblock{border-top-color:#C4CE9A}
.band-olive .stat-label{color:#DDE2C0}

.timeline{border-top:1px solid var(--rule)}
.timeline li{display:grid;grid-template-columns:minmax(150px,270px) 1fr;gap:10px 26px;padding:14px 0;border-bottom:1px solid var(--rule)}
.t-when{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--madder);line-height:1.45}
.t-what{font-family:var(--serif);font-size:16.5px;line-height:1.55;color:var(--ink-2)}
@media (max-width:640px){.timeline li{grid-template-columns:1fr}}

/* tables */
.datatable,.versus{font-size:15px;margin-block:28px}
.datatable caption,.versus caption{text-align:left;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--quiet);padding-bottom:10px}
.datatable th,.versus th{text-align:left;font-family:var(--sans);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:9px 14px 9px 0;vertical-align:bottom}
.datatable td,.versus td{font-family:var(--serif);border-bottom:1px solid var(--rule);padding:11px 14px 11px 0;vertical-align:top;line-height:1.5}
.versus tbody th{font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink);border-bottom:1px solid var(--rule);font-weight:600;width:32%}
.table-scroll{overflow-x:auto}

/* charts */
.chart{margin-block:30px}
.chart svg{width:100%;height:auto;overflow:visible}
.chart figcaption{font-family:var(--serif);font-size:15px;color:var(--muted);margin-top:10px}
.chart .c-bar{fill:var(--madder)}
.chart .c-bar-alt{fill:var(--olive)}
.chart .c-axis{stroke:var(--rule);stroke-width:1}
.chart .c-label{font-family:var(--sans);font-size:11px;fill:var(--muted)}
.chart .c-value{font-family:var(--sans);font-size:11px;fill:var(--ink);font-weight:600}
.chart .c-line{fill:none;stroke:var(--madder);stroke-width:2}
.chart .c-dot{fill:var(--ink)}

/* cards & references */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-block:28px}
.profile-card{background:var(--tint);padding:20px}
.profile-card .p-photo{width:84px;height:84px;object-fit:cover;margin-bottom:12px}
.profile-card h3{font-size:20px;margin-bottom:4px}
.profile-card .p-role{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--madder);margin-bottom:10px}
.profile-card p{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink-2)}
.profile-card .p-links{margin-top:10px;font-family:var(--sans);font-size:14px}
.profile-card.no-photo{border-top:3px solid var(--olive)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-block:26px}
.org-card{display:flex;flex-direction:column;gap:5px;background:var(--tint);padding:15px 17px;color:var(--ink)}
.org-card:hover{background:var(--tint-2);text-decoration:none}
.org-logo{max-height:34px;width:auto;object-fit:contain;margin-bottom:6px}
.org-name{font-family:var(--serif);font-size:17px}
.org-host{font-size:12px;letter-spacing:.08em;color:var(--quiet)}
.entity-ref{white-space:nowrap}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-block:26px}
.further-grid a{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:104px;background:var(--tint);padding:16px 18px;font-family:var(--serif);font-size:19px;color:var(--ink)}
.further-grid a:hover{background:var(--madder);color:#F7E7DE;text-decoration:none}

.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;border-top:1px solid var(--rule);padding-top:18px}
.related-links li .label{display:block;margin-bottom:7px}
.related-links li a{font-family:var(--serif);font-size:21px;font-weight:600}

.cat-list{border-top:1.5px solid var(--ink)}
.cat-list li{border-bottom:1px solid var(--rule)}
.cat-list li a{display:grid;grid-template-columns:56px minmax(0,1.1fr) minmax(0,1.4fr);gap:8px 24px;padding:20px 0;color:var(--ink);align-items:baseline}
.cat-list li a:hover{text-decoration:none;background:var(--tint-2)}
.cat-list .c-no{font-family:var(--serif);color:var(--madder);font-weight:600;padding-left:2px}
.cat-list .c-title{font-family:var(--serif);font-size:23px}
.cat-list li a:hover .c-title{color:var(--madder)}
.cat-list .c-brief{font-size:15px;line-height:1.55;color:var(--muted)}
@media (max-width:700px){
  .cat-list li a{grid-template-columns:42px 1fr}
  .cat-list .c-brief{grid-column:2}
}

/* expander for long lists */
.expander{margin-top:14px}
.expander summary{cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--madder);list-style:none}
.expander summary::-webkit-details-marker{display:none}
.expander[open] summary{color:var(--muted)}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:var(--on-dark);margin-top:0}
.site-foot a{color:#DCCEB8}
.site-foot a:hover{color:#fff}
.foot-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:50px;padding-bottom:30px;font-size:42px}
.foot-mark{width:.84em;height:auto;color:#C1512F;flex:none}
.foot-word{font-family:var(--serif);font-size:1em;font-weight:700;line-height:1;letter-spacing:.02em}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:26px 30px;padding-bottom:34px;font-size:14px}
.foot-grid h4{font-size:17px;margin-bottom:9px;color:var(--on-dark)}
.foot-grid li{margin-bottom:5px}
.foot-end{border-top:1px solid #4A3D30;padding-block:20px 46px;display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;font-size:12.5px;color:#A2907A}
.foot-end nav{display:flex;gap:20px;flex-wrap:wrap}

/* ---------- misc pages ---------- */
.page-head{padding-top:48px;padding-bottom:14px}
.page-head h1{font-size:clamp(38px,5.4vw,74px);font-weight:700;letter-spacing:-.02em}
.section-no{font-family:var(--serif);font-size:clamp(52px,7vw,104px);line-height:.85;color:var(--madder);font-weight:700}
.intro{font-family:var(--serif);font-size:19px;line-height:1.6;color:var(--ink-2);max-width:58ch}
.sg-block{border-top:1px solid var(--rule);padding-block:34px}
.sg-block > h2{font-size:20px;margin-bottom:4px}
.sg-block > .label{display:block;margin-bottom:18px}
.form-row{display:grid;gap:7px;margin-bottom:16px;max-width:520px}
.form-row label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.form-row input,.form-row textarea{font-family:var(--serif);font-size:17px;padding:11px 13px;border:1px solid var(--rule);background:#fff;color:var(--ink)}
.btn{display:inline-block;background:var(--madder);color:#F7E7DE;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:13px 22px}
.btn:hover{background:var(--ink);color:var(--ground);text-decoration:none}


/* ---------- article lede lockup ---------- */
.article-lede{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);gap:clamp(28px,4vw,60px);align-items:start;padding-top:38px;padding-bottom:clamp(34px,4vw,56px)}
.lede-copy{border-top:3px solid var(--madder);padding-top:24px}
.lede-copy h1{font-size:clamp(34px,4.4vw,60px);font-weight:700;letter-spacing:-.015em;line-height:1.04;margin:14px 0 20px}
.lede-copy .lead{font-family:var(--serif);font-size:19.5px;line-height:1.58;color:var(--ink-2);max-width:50ch}
.lede-copy .article-meta{margin-top:24px}
.lede-figure{position:relative;padding:16px;background:var(--tint);margin-top:6px}
.lede-figure a{display:block}
.lede-figure img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--tint-2)}
.lede-figure .corner{position:absolute;width:20px;height:20px;color:var(--madder)}
.lede-figure .corner-tl{top:6px;left:6px}
.lede-figure .corner-br{bottom:6px;right:6px;transform:rotate(180deg)}
.lede-no{position:absolute;top:-16px;left:-12px;z-index:2;font-family:var(--serif);font-size:52px;font-weight:700;line-height:1;color:var(--madder);background:var(--ground);padding:0 12px}
.lede-figure figcaption{margin-top:14px;padding-top:11px;border-top:1px solid var(--rule)}
@media (max-width:860px){.article-lede{grid-template-columns:1fr;padding-top:26px}.lede-figure img{aspect-ratio:4/3}.lede-no{font-size:42px;top:-12px;left:-8px}}

/* numbered sections, drop cap */
body{counter-reset:sec}
.prose h2{counter-increment:sec;position:relative}
.prose h2::before{content:counter(sec,decimal-leading-zero);display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;color:var(--madder);margin-bottom:8px}
.prose p.opening::first-letter{float:left;font-family:var(--serif);font-size:70px;line-height:.78;font-weight:700;color:var(--madder);padding:6px 12px 0 0}

/* standout numbers */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px 30px}
.statblock{display:flex;flex-direction:column;gap:5px;padding-top:14px;border-top:1px solid rgba(36,28,21,.16)}
.stat-num{font-family:var(--serif);font-size:38px;font-weight:700;line-height:1.02;color:var(--madder);letter-spacing:-.01em}
.stat-num-long{font-size:26px}
.stat-num-xl{font-size:21px;line-height:1.2}
.stat-key{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}
.stat-label{font-family:var(--serif);font-size:14.5px;line-height:1.5;color:var(--ink-2)}

/* next entry */
.next-entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:26px;align-items:center;padding:26px 26px 26px 24px;background:var(--tint);border-top:2px solid var(--madder);color:var(--ink);margin-bottom:16px}
.next-entry:hover{text-decoration:none;background:var(--ink);color:var(--on-dark)}
.next-entry .ne-side{display:flex;flex-direction:column;gap:6px}
.next-entry .label{color:var(--muted)}
.next-entry:hover .label{color:#C0AC93}
.ne-no{font-family:var(--serif);font-size:34px;font-weight:700;line-height:1;color:var(--madder)}
.next-entry:hover .ne-no{color:#E08B6C}
.ne-title{display:block;font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.15}
.ne-brief{display:block;margin-top:6px;font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--muted);max-width:62ch}
.next-entry:hover .ne-brief{color:#C8B9A5}
.ne-arrow{width:44px;height:16px;color:var(--madder);flex:none}
.next-entry:hover .ne-arrow{color:#E08B6C}
@media (max-width:640px){.next-entry{grid-template-columns:1fr;gap:14px;padding:22px}.ne-arrow{justify-self:start}}

/* related as cards */
.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;list-style:none;padding:0;margin:0}
.related-links li{display:flex;flex-direction:column;gap:7px;padding:16px 18px;background:var(--tint-2);border:1px solid var(--rule)}
.related-links li:hover{background:var(--tint);border-color:var(--madder)}
.related-links li a{font-family:var(--serif);font-size:20px;line-height:1.2;color:var(--ink)}
.related-links li:hover a{color:var(--madder)}


/* on-dark panel colours */
.band-madder .terms dt{color:#FBEDE5}
.band-olive .terms dt{color:#F2F5E4}
.band-olive .terms dd{color:#DDE2C0}
.band-madder .timeline,.band-madder .timeline li,.band-madder .statblock{border-color:rgba(255,255,255,.24)}
.band-olive .timeline,.band-olive .timeline li,.band-olive .statblock{border-color:rgba(255,255,255,.24)}
.band-madder .t-when{color:#F3C6B2}
.band-madder .t-what{color:#F6E6DC}
.band-olive .t-when{color:#D9E3A6}
.band-olive .t-what{color:#EDF0DA}
.band-madder .stat-num{color:#F6C9B5}
.band-madder .stat-key{color:#E6BBA9}
.band-madder .stat-label{color:#F0D9CC}
.band-olive .stat-num{color:#DDE9AC}
.band-olive .stat-key{color:#C3CE96}
.band-madder .interrupt-title .label,.band-olive .interrupt-title .label{color:rgba(255,255,255,.72)}
.band-madder .callout,.band-olive .callout{border-color:rgba(255,255,255,.28)}


/* ---------- small screens ---------- */
@media (max-width:560px){
  .index-grid{grid-template-columns:1fr;gap:20px 0}
  .index-col{padding-inline:0;border-left:0}
  .index-col ul{gap:0}
  .index-col li a{padding-block:7px;border-bottom:1px solid var(--rule)}
  .index-col li:last-child a{border-bottom:0}
  .index-rail{padding-block:14px}
  .index-rail a{padding-block:6px}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid li a{display:block;padding-block:6px}
  .foot-end nav{display:flex;flex-wrap:wrap;gap:10px 20px}
  .foot-end nav a{padding-block:6px}
  .related-links li{padding:14px 16px}
  .statrow{gap:20px}
  .stat-num{font-size:32px}
  .prose p.opening::first-letter{font-size:58px}
}

/* 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:#241C15;stroke-width:3px;stroke-linejoin:round}
.mapkit__pin:hover circle{r:9.1}
.mapkit__pin:hover text{font-weight:700}
/* MAPKIT_END */

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.sponsor-wall .sponsor.sponsor img{height:44px!important;display:block!important;width:100%!important}

/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1908px at 390, 15% of the whole page. Two columns bring it to
   1210px (37% shorter). Checked before writing: no new overflow, smallest mark still
   131px wide, longest blurb 3 lines, tile heights 173-196px.
   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. Only the tier(s) that were one-per-row are touched (.sponsor-wall), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .sponsor-wall{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:14px!important}
    .sponsor-wall > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-wall > * *{min-width:0!important;max-width:100%}
    .sponsor-wall img,.sponsor-wall svg{max-width:100%;height:auto}
  .sponsor-wall .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-page-overflow: the page scrolled sideways at 320 — a reached
   360px in a 320px screen (+40px), inside
   div.home-reg. Remedy: unpin the grid track. Structural only, no spacing value of mine;
   tried in order and this is the first that held, with the page's visible copy unchanged.
   Phone widths only — desktop is re-measured after writing and must not move. */
@media (max-width:360px){
  div.home-reg{grid-template-columns:minmax(0,1fr)!important}
  a{min-width:0!important;max-width:100%!important}
}

/* op-article-width: the article column was capped at 710px (86 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .prose) 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.prose{--measure:min(80.841ch, 100%)!important}
}
@media (min-width:1600px){
  article div.prose{--measure:min(clamp(80.841ch, 58.611vw, calc(80.841ch * 1.2)), 100%)!important}
  article div.prose > :is(p:not([class])){font-size:clamp(18px,1.2500vw,21.6px)!important}
}
/* op-article-width:end */

/* op-hover-pad */
.cat-list li a{padding-left:clamp(12px,3.5vw,22px)!important;padding-right:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--serif); font-weight: 600; line-height: 1.1; margin: 0px; text-wrap: pretty;}
.section-card h2:where(.rt-h3){display: flex; align-items: center; gap: 10px; font-size: 24px; margin-bottom: 8px;}
.section-card h2:where(.rt-h3) .mark{width: 24px; height: 24px; color: var(--madder);}
.seconds h2:where(.rt-h3){font-size: 22px; margin: 14px 0px 8px;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(div.article-lede.wrap > figure.lede-figure > img,
  div.gallery > figure > img,
  div.prose > figure.article-figure.fig-mat > img,
  div.strip-row > a > img,
  figure.article-figure.fig-margin > div > img,
  section.lead-split.wrap > figure.lead-figure > img){height:auto}
/* op-img-dims:end */
