:root{
  --ground:#E8E6DE; --card:#F6F5F0; --ink:#141A18; --pine:#141F1C;
  --accent:#B08400; --accent-lift:#D8A81C; --secondary:#0E6B5C;
  --muted:#6B7370; --ink-soft:#3E4744; --rule:rgba(20,26,24,.22);
  --mono:'Martian Mono',ui-monospace,SFMono-Regular,monospace;
  --serif:'Petrona',Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.62}
img{max-width:100%;display:block}
a{color:var(--secondary);text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;line-height:1.05;margin:0}
.wrap{max-width:1300px;margin:0 auto;padding-inline:clamp(18px,4vw,56px)}
.measure{max-width:70ch}
.band{border-bottom:1.6px solid var(--ink)}
.pine{background:var(--pine);color:var(--ground)}
.pine a{color:var(--accent-lift)}
.kick{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--secondary);display:flex;align-items:center;gap:9px;margin:0 0 16px}
.ico{flex:none}

/* masthead */
.mast{border-bottom:1.6px solid var(--ink);background:var(--ground)}
.mast-top{display:flex;align-items:flex-end;justify-content:flex-start;gap:30px;padding:30px 0 22px}
.mast-name{display:block;font-family:var(--mono);font-weight:700;font-size:clamp(27px,6.2vw,76px);letter-spacing:-.05em;line-height:.94;color:var(--ink)}
.mast-tag{font-style:italic;color:var(--muted);font-size:16px;margin:14px 0 0;max-width:46ch}
.mast-lock{display:flex;align-items:center;gap:clamp(11px,1.5vw,22px)}
.mast-mark{flex:none;width:auto;height:clamp(32px,5.4vw,62px);color:var(--accent)}
.ledger-nav{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border-top:1.6px solid var(--ink);margin-inline:-16px}
.lnav{padding:14px 16px 16px;border-right:1px solid var(--rule);color:var(--ink)}
.lnav:hover{background:var(--card);color:var(--ink)}
.lno{display:block;font-family:var(--mono);font-size:11px;color:var(--accent)}
.lname{display:flex;align-items:flex-start;gap:7px;font-family:var(--mono);font-size:12.5px;line-height:1.35;margin-top:7px;min-height:2.7em}
.lnav:last-child{border-right:none}
.lnav-ref{color:var(--secondary)}
.lnav-ref .lname{color:var(--secondary)}
.lref{display:block;font-family:var(--mono);font-size:10.5px;line-height:1.5;color:var(--muted);margin-top:2px}
/* seconds/cards */
.cards{display:grid;gap:clamp(20px,3vw,38px);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{display:flex;flex-direction:column;background:transparent}
.card h3{font-size:clamp(23px,2.5vw,29px);margin:14px 0 8px}
.card p{font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--ink-soft);margin:0 0 12px}
.card .card-foot{margin-top:auto;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--secondary);display:flex;align-items:center;gap:8px}
.card-img{position:relative}
.card-img img{width:100%;aspect-ratio:3/2;object-fit:cover}

/* figures */
.article-figure{margin:0}
.fig-holder{position:relative;display:block}
.chip{position:absolute;top:0;left:0;background:var(--accent);color:var(--ink);font-family:var(--mono);font-size:12px;font-weight:600;padding:7px 11px}
figcaption{display:block;font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--ink-soft);padding-top:12px;max-width:66ch}
.cap-rule{display:block;color:var(--accent);margin-bottom:9px;max-width:240px}
.credit{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:6px}
.pine figcaption{color:#B7BDB6}
.pine .credit{color:#7E8A85}
.fig-bleed .fig-holder img{width:100%;height:clamp(260px,40vw,520px);object-fit:cover}
.fig-bleed figcaption{padding-inline:clamp(18px,4vw,56px);max-width:74ch}
.fig-plate{background:var(--card);border:1px solid var(--rule);padding:16px}
.fig-plate img{width:100%;aspect-ratio:8/5;object-fit:cover}
.fig-plate figcaption{padding:14px 2px 2px}
.fig-inset{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(180px,.75fr);gap:24px;align-items:end}
.fig-inset img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--rule)}
.fig-inset figcaption{padding-top:0;border-top:1.6px solid var(--ink);padding-top:14px}

/* article */
.art-head{padding-block:clamp(30px,4vw,52px) clamp(24px,3vw,36px)}
.art-title{font-size:clamp(33px,5.2vw,60px);margin:14px 0 20px;max-width:27ch}
.lead{font-size:clamp(19px,2.05vw,23px);line-height:1.5;color:#2C3431;max-width:54ch;margin:0}
.art-meta{display:flex;flex-wrap:wrap;gap:10px 26px;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--rule);margin-top:26px;padding-top:14px}
.prose{max-width:70ch;margin-inline:auto;padding:6px 0}
.prose p{margin:0 0 20px}
.prose h2{font-family:var(--mono);font-size:clamp(17px,2vw,21px);letter-spacing:-.01em;line-height:1.3;margin:6px 0 16px;padding-top:16px;border-top:1.6px solid var(--ink)}
.prose h3{font-size:24px;margin:26px 0 10px}
.art-body{padding-bottom:clamp(30px,4vw,50px);display:flex;flex-direction:column;gap:clamp(22px,3vw,34px)}

/* components */
.pullquote{margin:0;border-top:1.6px solid var(--ink);border-bottom:1.6px solid var(--ink);padding:22px 0;max-width:46ch}
.pullquote p{margin:0;font-family:var(--mono);font-size:clamp(16px,2.1vw,20px);font-weight:500;line-height:1.5;letter-spacing:-.01em}
.blockquote{margin:0;padding-left:22px;border-left:2px solid var(--secondary);max-width:60ch}
.blockquote p{margin:0;font-size:21px;line-height:1.5}
.blockquote cite{display:block;font-family:var(--mono);font-size:12px;font-style:normal;color:var(--muted);margin-top:12px}
.callout{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--accent);padding:20px 24px;margin:0;max-width:64ch}
.callout p{margin:0;font-size:18px;line-height:1.55}
.note{font-family:var(--mono);font-size:13.5px;line-height:1.7;color:var(--ink-soft);border-left:2px solid var(--accent);padding-left:14px;max-width:62ch;margin:0}
.ledger{border-top:1.6px solid var(--ink);border-bottom:1.6px solid var(--ink);padding:20px 0 6px}
.ledger h3{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--secondary);margin:0 0 14px;display:flex;align-items:center;gap:9px}
.ledger ul{list-style:none;margin:0;padding:0}
.ledger li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;border-top:1px solid var(--rule);padding:11px 0;font-family:var(--mono);font-size:13.5px;line-height:1.7}
.ledger li .n{color:var(--accent)}
.ledger--split ul{columns:2;column-gap:44px}
.ledger--split li{break-inside:avoid}
.timeline{list-style:none;margin:0;padding:0;border-top:1.6px solid var(--ink)}
.timeline li{display:grid;grid-template-columns:minmax(140px,240px) minmax(0,1fr);gap:20px;border-bottom:1px solid var(--rule);padding:13px 0;font-family:var(--mono);font-size:13.5px;line-height:1.7}
.t-when{color:var(--accent)}
.statrow{display:flex;flex-wrap:wrap;gap:14px}
.statblock{flex:1 1 190px;background:var(--pine);color:var(--ground);padding:18px 20px}
.stat-num{display:block;font-family:var(--mono);font-size:clamp(28px,3.4vw,38px);font-weight:600;color:var(--accent-lift);letter-spacing:-.03em}
.stat-label{display:block;font-family:var(--mono);font-size:11.5px;line-height:1.65;color:#B7BDB6;margin-top:9px}
.tscroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:13.5px;text-align:left}
.datatable th,.versus th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;border-bottom:1.6px solid var(--ink);padding:0 16px 10px 0}
.datatable td,.versus td{border-bottom:1px solid var(--rule);padding:12px 16px 12px 0;vertical-align:top;line-height:1.6}
.versus td:first-child{color:var(--accent)}
.chart{margin:0}
.chart svg{width:100%;height:auto;overflow:visible}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--rule)}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.profile-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);padding:18px}
.profile-card h3{font-size:22px;margin:0 0 6px}
.profile-card p{font-size:15.5px;line-height:1.55;margin:0 0 12px}
.p-photo{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:14px}
.p-role{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--secondary);margin:0 0 12px!important}
.p-links{margin:auto 0 0!important;font-family:var(--mono);font-size:12px;padding-top:10px}
.profile-card.no-photo{border-top:3px solid var(--accent)}
.org-grid{display:flex;flex-wrap:wrap;gap:12px}
.org-card{flex:0 0 250px;display:flex;flex-direction:column;gap:5px;background:var(--card);border:1px solid var(--rule);padding:14px 16px}
.org-logo{width:100%;max-height:38px;object-fit:contain;margin-bottom:8px}
.org-name{font-family:var(--mono);font-size:14px;color:var(--ink)}
.org-host{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.entity-ref{font-family:var(--mono);font-size:.86em;border-bottom:1px solid var(--secondary)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.further-grid a{display:flex;flex-direction:column;gap:9px;min-height:120px;background:var(--card);border:1px solid var(--rule);padding:16px;color:var(--ink)}
.further-grid a:hover{border-color:var(--ink)}
.fg-sec{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--secondary);display:flex;align-items:center;gap:7px}
.fg-t{font-size:21px;line-height:1.15}
.fg-d{font-family:var(--mono);font-size:12px;line-height:1.65;color:var(--ink-soft);margin-top:auto}
.related-links{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:14px}
.related-links li{border-top:1px solid var(--rule);padding:12px 0}
.hr-tick{color:var(--accent);display:block;max-width:260px}

/* register + category lists */
.reg-head,.reg-row{display:grid;grid-template-columns:56px 116px minmax(0,1.6fr) minmax(0,1fr) 150px;gap:22px;align-items:center}
.reg-head{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1.6px solid var(--ink);padding-bottom:10px}
.reg-row{border-bottom:1px solid var(--rule);padding:16px 0}
.reg-row img{width:116px;height:78px;object-fit:cover}
.reg-t{font-size:23px;line-height:1.15;color:var(--ink);display:block}
.reg-d{font-family:var(--mono);font-size:12px;line-height:1.65;color:var(--ink-soft);margin-top:7px;display:block}
.reg-s{font-family:var(--mono);font-size:12.5px;display:flex;align-items:center;gap:8px;color:var(--secondary)}
.reg-go{font-family:var(--mono);font-size:12px;color:var(--secondary);text-align:right}
.reg-no{font-family:var(--mono);font-size:14px;color:var(--accent)}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{display:grid;grid-template-columns:56px 150px minmax(0,1fr) 140px;gap:24px;align-items:center;border-bottom:1px solid var(--rule);padding:18px 0}
.cat-list li img{width:150px;height:100px;object-fit:cover}
.cat-list .reg-t{font-size:26px}
.sec-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--rule)}
.sec-cell{background:var(--ground);padding:20px 20px 22px;display:flex;flex-direction:column;gap:8px;color:var(--ink)}
.sec-cell:hover{background:var(--card)}
.sec-cell .n{font-family:var(--mono);font-size:11px;color:var(--accent)}
.sec-cell h3{font-family:var(--mono);font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}
.sec-cell p{font-family:var(--mono);font-size:11.5px;line-height:1.7;color:var(--muted);margin:0}
.sec-cell .c{font-family:var(--mono);font-size:11px;color:var(--secondary);margin-top:auto}

/* homepage bands */
.lead-band{display:grid;grid-template-columns:1.05fr 1fr;border-bottom:1.6px solid var(--ink)}
.lead-img{position:relative;min-height:420px}
.lead-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lead-txt{padding:clamp(28px,3.4vw,48px) clamp(18px,4vw,56px) clamp(26px,3vw,40px) clamp(24px,3vw,44px);border-left:1.6px solid var(--ink)}
.lead-txt h2{font-size:clamp(30px,4.2vw,54px);margin:0 0 18px;max-width:22ch}
.lead-txt .dek{font-size:clamp(17px,1.9vw,20px);line-height:1.55;color:#2C3431;margin:0 0 20px;max-width:50ch}
.quiet{padding:clamp(42px,6vw,80px) 0}
.quiet p{margin:0;font-size:clamp(23px,3.1vw,35px);line-height:1.3;letter-spacing:-.012em;max-width:34ch;text-wrap:pretty}
.quiet p.wide{max-width:none;width:min(100%,60ch)}
.band-pad{padding-block:clamp(36px,4.6vw,62px)}
.band-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:clamp(20px,2.6vw,32px)}
.band-head h2{font-family:var(--mono);font-size:clamp(20px,2.6vw,30px);font-weight:600}
.band-head .more{font-family:var(--mono);font-size:12px}
.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(26px,4vw,56px);align-items:center}
.cut{background:var(--card);border:1.6px solid var(--ink);padding:clamp(20px,2.6vw,34px)}
.cut svg{width:100%;height:auto;color:var(--ink)}
.cut-key{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px;font-family:var(--mono);font-size:11.5px;line-height:1.7;color:var(--ink-soft);margin-top:18px}
.cut-key b{color:var(--accent);font-weight:500}
.witness-list{font-family:var(--mono);font-size:13px;line-height:1.75}
.witness-list > a{display:grid;grid-template-columns:34px minmax(0,1fr);gap:16px;border-top:1px solid rgba(232,230,222,.3);padding:13px 0;color:var(--ground)}
.witness-list a:last-child{border-bottom:1px solid rgba(232,230,222,.3)}
.witness-list .n{color:var(--accent-lift)}
.witness-list a:hover .t{color:var(--accent-lift)}

/* sponsors */
.sponsors{background:var(--pine);color:var(--ground);padding:clamp(30px,4vw,52px) 0}
.sponsors .band-head h2{color:var(--ground);font-size:clamp(16px,2vw,20px);letter-spacing:.04em}
.sponsors .band-head .more{color:#8E9993}
.sponsor-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.sponsor{width:100%;min-width:0;display:flex;flex-direction:column;gap:10px;background:#1B2724;border:1px solid rgba(232,230,222,.16);padding:14px;color:var(--ground)}
.sponsor:hover{border-color:var(--accent-lift)}
.sponsor-box{display:flex;align-items:center;height:56px;background:#0B1211;padding:0 12px}
.sponsor img{max-height:40px;max-width:100%;width:auto;height:auto;object-fit:contain}
.sponsor-name{font-family:var(--mono);font-size:12.5px;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.sponsor-blurb{font-family:var(--mono);font-size:11.5px;line-height:1.7;color:#B7BDB6}

/* footer */
.foot{background:var(--ink);color:#8E9993;padding:clamp(38px,5vw,64px) 0 clamp(30px,4vw,48px);border-top:5px solid var(--accent)}
.foot a{color:#B7BDB6}
.foot a:hover{color:var(--accent-lift)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:clamp(20px,3vw,40px);font-family:var(--mono);font-size:12.5px;line-height:2}
.foot-lock{display:flex;align-items:center;gap:13px}
.foot-mark{flex:none;width:auto;height:clamp(26px,3vw,34px);color:var(--accent)}
.foot-name{font-family:var(--mono);font-size:clamp(20px,2.4vw,26px);font-weight:700;color:var(--ground);letter-spacing:-.04em}
.foot-sig{font-family:var(--mono);font-size:12px;line-height:1.8;margin:12px 0 0;max-width:40ch}
.foot-h{display:inline-block;color:var(--ground);font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid rgba(232,230,222,.28);padding-bottom:6px;margin-bottom:6px}

/* responsive */
@media (max-width:1020px){
  .ledger-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lnav{border-bottom:1px solid var(--rule)}
  .lead-band{grid-template-columns:1fr}
  .lead-txt{border-left:none;border-top:1.6px solid var(--ink);padding-inline:clamp(18px,4vw,56px)}
  .two-col{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .reg-head,.reg-row{grid-template-columns:44px 92px minmax(0,1.5fr) minmax(0,1fr)}
  .reg-go{display:none}
  .reg-row img{width:92px;height:64px}
  .cat-list li{grid-template-columns:44px 120px minmax(0,1fr)}
  .cat-list li img{width:120px;height:82px}
  .cat-list .reg-go{display:none}
}
@media (max-width:700px){
  body{font-size:18px}
  .ledger-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fig-inset{grid-template-columns:1fr}
  .fig-inset figcaption{max-width:none}
  .ledger--split ul{columns:1}
  .timeline li{grid-template-columns:1fr;gap:4px}
  .reg-head{display:none}
  .reg-row,.cat-list li{grid-template-columns:1fr;gap:12px;padding:22px 0}
  .reg-row img,.cat-list li img{width:100%;height:auto;aspect-ratio:3/2}
  .cut-key{grid-template-columns:1fr}
  .sponsor-wall{grid-template-columns:minmax(0,1fr)}
  .foot-grid{grid-template-columns:1fr}
  .prose,.measure{max-width:none}
}
@media (max-width:430px){ .ledger-nav{grid-template-columns:1fr} .lnav{border-right:none} .lname{min-height:0} }

/* active section in the ledger head */
body[data-sec="location"] .lnav[data-nav="location"]{background:var(--ink);color:var(--ground)}
body[data-sec="location"] .lnav[data-nav="location"] .lno{color:var(--accent-lift)}
body[data-sec="location"] .lnav[data-nav="location"] .lname,body[data-sec="location"] .lnav[data-nav="location"] .lref{color:var(--ground)}
body[data-sec="materials"] .lnav[data-nav="materials"]{background:var(--ink);color:var(--ground)}
body[data-sec="materials"] .lnav[data-nav="materials"] .lno{color:var(--accent-lift)}
body[data-sec="materials"] .lnav[data-nav="materials"] .lname,body[data-sec="materials"] .lnav[data-nav="materials"] .lref{color:var(--ground)}
body[data-sec="looking"] .lnav[data-nav="looking"]{background:var(--ink);color:var(--ground)}
body[data-sec="looking"] .lnav[data-nav="looking"] .lno{color:var(--accent-lift)}
body[data-sec="looking"] .lnav[data-nav="looking"] .lname,body[data-sec="looking"] .lnav[data-nav="looking"] .lref{color:var(--ground)}
body[data-sec="books"] .lnav[data-nav="books"]{background:var(--ink);color:var(--ground)}
body[data-sec="books"] .lnav[data-nav="books"] .lno{color:var(--accent-lift)}
body[data-sec="books"] .lnav[data-nav="books"] .lname,body[data-sec="books"] .lnav[data-nav="books"] .lref{color:var(--ground)}
body[data-sec="witness"] .lnav[data-nav="witness"]{background:var(--ink);color:var(--ground)}
body[data-sec="witness"] .lnav[data-nav="witness"] .lno{color:var(--accent-lift)}
body[data-sec="witness"] .lnav[data-nav="witness"] .lname,body[data-sec="witness"] .lnav[data-nav="witness"] .lref{color:var(--ground)}
body[data-sec="page"] .lnav[data-nav="page"]{background:var(--ink);color:var(--ground)}
body[data-sec="page"] .lnav[data-nav="page"] .lno{color:var(--accent-lift)}
body[data-sec="page"] .lnav[data-nav="page"] .lname,body[data-sec="page"] .lnav[data-nav="page"] .lref{color:var(--ground)}
body[data-sec="collections"] .lnav[data-nav="collections"]{background:var(--ink);color:var(--ground)}
body[data-sec="collections"] .lnav[data-nav="collections"] .lno{color:var(--accent-lift)}
body[data-sec="collections"] .lnav[data-nav="collections"] .lname,body[data-sec="collections"] .lnav[data-nav="collections"] .lref{color:var(--ground)}
body[data-sec="register"] .lnav[data-nav="register"]{background:var(--ink);color:var(--ground)}
body[data-sec="register"] .lnav[data-nav="register"] .lno{color:var(--accent-lift)}
body[data-sec="register"] .lnav[data-nav="register"] .lname,body[data-sec="register"] .lnav[data-nav="register"] .lref{color:var(--ground)}

/* icons a notch larger and firmer */
.ico{stroke-width:1.8}
.lname .ico{width:20px;height:20px;margin-top:-1px}
.reg-s .ico,.sec-cell h3 .ico,.kick .ico{width:17px;height:17px}
.band-head h2 .ico{width:20px;height:20px}

/* homepage register — richer ledger */
.hreg-head,.hreg-row{display:grid;grid-template-columns:66px 132px minmax(0,1.7fr) minmax(0,.95fr) 118px 92px;gap:22px;align-items:center}
.hreg-head{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1.6px solid var(--ink);padding-bottom:10px}
.hreg-row{border-bottom:1px solid var(--rule);padding:16px 0;position:relative}
.hreg-row:hover{background:var(--card)}
.hreg-row:hover .reg-t{color:var(--secondary)}
.hreg-plate{display:block;background:var(--card);border:1px solid var(--rule);padding:6px}
.hreg-plate img{width:100%;height:76px;object-fit:cover}
.hreg-src{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:5px}
.hreg-len{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11.5px;color:var(--ink-soft)}
.hreg-len svg{flex:none}
.hreg-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;font-family:var(--mono);font-size:12px;color:var(--muted);padding-top:16px}
@media (max-width:1020px){
  .hreg-head,.hreg-row{grid-template-columns:56px 104px minmax(0,1.6fr) minmax(0,1fr)}
  .hreg-head div:nth-child(5),.hreg-head div:nth-child(6),.hreg-row .hreg-len,.hreg-row .reg-go{display:none}
  .hreg-plate img{height:64px}
}
@media (max-width:700px){
  .hreg-head{display:none}
  .hreg-row{grid-template-columns:1fr;gap:12px;padding:22px 0}
  .hreg-plate img{width:100%;height:auto;aspect-ratio:3/2}
}

/* witness list — the trailing link is not a ledger row */
.witness-list > a:last-of-type{border-bottom:1px solid rgba(232,230,222,.3)}
.witness-list p a{display:inline;padding:0;border:none;text-transform:none;letter-spacing:0}
.witness-list p{font-family:var(--mono);font-size:12.5px;margin:20px 0 0!important}
.witness-list p a{color:var(--accent-lift)}

/* unified hero */
.hero{background:var(--card);border-bottom:1.6px solid var(--ink)}
.hero-say{padding-block:clamp(34px,4.6vw,66px) clamp(26px,3.2vw,42px)}
.hero-say p{margin:0;font-size:clamp(24px,3.4vw,40px);line-height:1.26;letter-spacing:-.015em;max-width:44ch;text-wrap:pretty}
.hero-sig{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:clamp(18px,2.2vw,28px)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;border-top:1.6px solid var(--ink)}
.hero-img{position:relative;min-height:clamp(300px,34vw,470px)}
.hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-txt{padding:clamp(26px,3.2vw,44px) clamp(18px,4vw,56px) clamp(26px,3vw,40px) clamp(22px,3vw,44px);border-left:1.6px solid var(--ink);background:var(--ground)}
.hero-txt h2{font-size:clamp(29px,4vw,50px);margin:0 0 18px;max-width:22ch}
.hero-txt .dek{font-size:clamp(17px,1.9vw,20px);line-height:1.55;color:#2C3431;margin:0 0 20px;max-width:50ch}
@media (max-width:1020px){
  .hero-grid{grid-template-columns:1fr}
  .hero-txt{border-left:none;border-top:1.6px solid var(--ink);padding-inline:clamp(18px,4vw,56px)}
  .sponsor-wall{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:820px){ .sponsor-wall{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* centred article spine */
.art-w{max-width:1080px;margin-inline:auto}
.art-body .ledger{max-width:96ch;margin-inline:auto}
.art-body .callout{max-width:74ch;margin-inline:auto}
.art-body .pullquote{max-width:56ch;margin-inline:auto}
.art-body .fig-plate{max-width:820px;margin-inline:auto}
.art-body .fig-inset{max-width:1000px;margin-inline:auto}
.fig-bleed figcaption{margin-inline:auto;max-width:1080px}
.art-tail{padding-top:clamp(26px,3.4vw,44px)}
.art-tail:last-child{padding-bottom:clamp(30px,4vw,52px)}
.tail-h{font-family:var(--mono);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);margin:0 0 16px}
@media (max-width:700px){
  .art-body{gap:26px}
  .art-body .ledger,.art-body .callout,.art-body .pullquote,.art-body .fig-plate,.art-body .fig-inset{max-width:none}
  .fig-plate{padding:10px}
  .art-meta{gap:8px 18px;font-size:11px}
}

/* fourth figure treatment — in the column, prose wrapping beside it */
.fig-inline{float:right;width:min(48%,330px);margin:6px 0 18px 28px;background:var(--card);border:1px solid var(--rule);padding:10px}
.fig-inline img{width:100%;aspect-ratio:4/3;object-fit:cover}
.fig-inline figcaption{padding:11px 2px 2px;font-size:12px;max-width:none}
.prose::after{content:"";display:block;clear:both}
@media (max-width:700px){ .fig-inline{float:none;width:100%;margin:16px 0 22px} }

.ledger .related-links li{display:block;grid-template-columns:none;gap:0;padding:12px 0;font-family:var(--mono);font-size:14px;line-height:1.65}

/* phones: one supporter tile per row so a 14:1 wordmark still has ≥160px */
@media (max-width:640px){ .sponsor-wall{grid-template-columns:minmax(0,1fr)} }

/* icon-led nav: the drawing carries the cell, the name stays as a small label */
.lname{flex-direction:column;align-items:flex-start;gap:9px;min-height:0;font-size:11.5px;letter-spacing:.02em;color:var(--ink)}
.lname .ico{width:34px;height:34px;margin-top:2px;color:var(--ink)}
.lnav-ref .lname .ico{color:var(--secondary)}
.lnav{padding:14px 16px 18px}
@media (max-width:430px){
  .lname{flex-direction:row;align-items:center;gap:12px}
  .lname .ico{width:26px;height:26px;margin-top:0}
}

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

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

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

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

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

/* op-nav-collapse: this nav printed 672px of stacked links at 390 before any content
   (8 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 "rule-flank", bold, seeded from the domain so 175 builds do not all ship the
   same hairline box in the same place; it inherits this build's font and colour, and where the
   nav's own parent has no inline padding (18px measured) the button carries the build's
   gutter (clamp(18px,4vw,56px)) so it cannot sit against the glass. The links are hidden,
   not removed: they stay in the markup. Desktop is untouched — every rule below is inside the
   phone breakpoint (940px here), where the button appears and the nav starts closed.
   Folded with the "max-height" technique and marked with the "plus" icon — the mechanism
   is deliberately not identical across the fleet either. */
.nav-fold{display:none}
@media (max-width:940px){
  .nav-fold{align-items:center;justify-content:center;gap:9px;font:inherit;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:inherit;cursor:pointer;min-height:44px;box-sizing:border-box;display:flex;width:auto;border:0;padding:10px 0;letter-spacing:.18em;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}
  .nav-fold::before,.nav-fold::after{content:"";flex:1 1 auto;height:1px;background:currentColor;opacity:.4}
  .nav-fold-bars{width:11px;height:11px;flex:none;position:relative;border-top:1.5px solid currentColor;margin-top:-1px;box-shadow:inset 5px 0 0 -3.75px currentColor}
  .ledger-nav{max-height:0;overflow:hidden;padding-block:0;border-top-width:0;border-bottom-width:0;transition:max-height .28s ease}
  .nav-fold-c:checked ~ .ledger-nav{max-height:220vh;padding-block:revert;border-top-width:revert;border-bottom-width:revert}
  .nav-fold:not(:has(~ .ledger-nav)){display:none}
}

/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1709px at 390, 14% of the whole page. Two columns bring it to
   1048px (39% shorter). Checked before writing: no new overflow, smallest mark still
   113px wide, longest blurb 3 lines, tile heights 143-178px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   The blurb is held to three rows at phone width, because a nine- or eleven-line blurb in a narrow column made two columns TALLER than one. The copy stays in the markup. An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.sponsor-wall), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .sponsor-wall{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap: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-odd-tier-lead: .sponsor-wall (11 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sponsor-wall:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-hover-pad */
.hreg-row{padding-left:clamp(12px,3.5vw,22px)!important;padding-right:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h1:where(.rt-h2){font-family: var(--serif); font-weight: 600; letter-spacing: -0.02em; line-height: 1.05; margin: 0px;}
.hero-txt h1:where(.rt-h2){font-size: clamp(29px, 4vw, 50px); margin: 0px 0px 18px; max-width: 22ch;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card > span.card-img > img,
  a.hreg-row > span.hreg-plate > img,
  div.hero-grid > div.hero-img > img,
  div.wrap > a.reg-row > img,
  figure.article-figure.fig-bleed > span.fig-holder > img,
  figure.article-figure.fig-inline > span.fig-holder > img,
  figure.article-figure.fig-inset > span.fig-holder > img,
  figure.article-figure.fig-plate > span.fig-holder > img,
  ul.cat-list > li > img){height:auto}
/* op-img-dims:end */
[data-partner] .sponsor-box{background:transparent!important}
