/* So Fash'on — Statute at Document Scale
   Palette roles: paper (ground) · ink · accent (statute red) · secondary (EU blue) · clay (materials)
   Type: Zilla Slab (display + prose) · Sora (labels, nav, credits) · ui-monospace (the § mark) */
*,*::before,*::after{box-sizing:border-box}
:root{
  --paper:#F4F1E9; --paper-2:#EFEAE0; --ink:#17181A; --ink-2:#3A3D41; --muted:#5C5F63;
  --accent:#C3182B; --secondary:#1B3FA8; --clay:#C96442; --dark:#1B1C1E;
  --rule:rgba(23,24,26,.24); --rule-soft:rgba(23,24,26,.11);
  --prose:78ch; --breakout:1360px; --gutter:clamp(18px,4vw,72px); --hang:200px;
  --fs-body:17px; --fs-prose:19px; --fs-cap:15.5px; --lh:1.62;
  --serif:'Zilla Slab',Georgia,serif; --sans:'Sora',system-ui,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (min-width:1600px){:root{--prose:82ch;--breakout:1520px;--fs-body:18px;--fs-prose:20px;--fs-cap:16.5px}}
@media (min-width:2200px){:root{--prose:86ch;--breakout:1800px;--fs-body:19px;--fs-prose:21px;--fs-cap:17px;--hang:240px}}
@media (min-width:2560px){:root{--breakout:2040px;--fs-prose:22px}}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);line-height:1.5;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-.015em;text-wrap:pretty}
p{margin:0}
svg{display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- document grid: three visibly different widths ---------- */
.doc{display:grid;grid-template-columns:
  [full-start] minmax(var(--gutter),1fr)
  [wide-start] minmax(0,calc((var(--breakout) - var(--prose))/2))
  [prose-start] min(var(--prose), 100% - 2 * var(--gutter)) [prose-end]
  minmax(0,calc((var(--breakout) - var(--prose))/2)) [wide-end]
  minmax(var(--gutter),1fr) [full-end];}
.doc>*{grid-column:prose}
.doc>.wide{grid-column:wide}
.doc>.bleed{grid-column:full}
.doc>.offset{grid-column:prose-start/wide-end}
.shell{max-width:var(--breakout);margin:0 auto;padding:0 var(--gutter)}

/* ---------- masthead ---------- */
.masthead{border-bottom:3px solid var(--ink);background:var(--paper)}
.mast-top{display:flex;align-items:flex-end;gap:clamp(18px,3vw,44px);padding:30px 0 20px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.mast-emblem{color:var(--accent);flex:none}
.wordmark{font-family:var(--serif);font-weight:700;font-size:clamp(44px,6.2vw,104px);line-height:.84;letter-spacing:-.022em}
.mast-standing{margin-top:9px;font-size:14.5px;color:var(--muted);max-width:52ch}
.mast-scope{margin-left:auto;font-family:var(--serif);font-size:clamp(15px,1.1vw,19px);line-height:1.5;color:var(--muted);max-width:34ch;text-align:right}
.mast-nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,44px);padding:13px 0;flex-wrap:wrap}
.mast-nav a{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;white-space:nowrap}
.mast-nav a svg{width:19px;height:19px;flex:none;opacity:.72}
.mast-nav a:hover svg{opacity:1}
.mast-nav a[aria-current]{color:var(--accent)}
.mast-sub{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);letter-spacing:.02em}
.mast-sub span{text-transform:uppercase;letter-spacing:.14em;font-size:11px}
.mast-compact .wordmark{font-size:clamp(34px,3.2vw,44px)}
.mast-compact .mast-top{padding:18px 0 14px}

/* ---------- the § mark: emblem, then structural device ---------- */
.hangwrap{position:relative}
.hang{font-family:var(--mono);font-size:26px;line-height:1;color:var(--accent);letter-spacing:.02em;display:block;margin-bottom:10px}
@media (min-width:1400px){
  .hangwrap>.hang{position:absolute;left:calc(-1 * var(--hang));top:.35em;width:calc(var(--hang) - 34px);text-align:right;margin:0}
  .hang small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:7px;line-height:1.4}
}
.hang small{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:inline-block;margin-left:14px}

/* ---------- homepage: the statute at document scale ---------- */
.opener{border-bottom:1px solid var(--rule);padding:clamp(38px,4.4vw,76px) 0 clamp(34px,3.6vw,60px)}
.opener-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(26px,3vw,56px)}
@media (min-width:1100px){.opener-grid{grid-template-columns:minmax(0,1fr) 340px}}
@media (min-width:2200px){.opener-grid{grid-template-columns:minmax(0,1fr) 420px}}
.statute-h1{font-size:clamp(38px,5.4vw,104px);line-height:1.03;font-weight:600;letter-spacing:-.022em}
.opener-dek{margin-top:clamp(20px,1.8vw,34px);font-family:var(--serif);font-size:clamp(19px,1.5vw,25px);line-height:1.5;color:var(--ink-2);max-width:64ch}
.readon{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.readon svg{width:58px;height:10px}
.quiet-band{background:var(--secondary);color:#F4F1E9}
.quiet-band .shell{display:flex;align-items:baseline;gap:clamp(20px,3vw,48px);padding-top:clamp(44px,4.6vw,74px);padding-bottom:clamp(44px,4.6vw,74px);flex-wrap:wrap}
.quiet-line{font-family:var(--serif);font-size:clamp(24px,3vw,52px);line-height:1.14;font-weight:600;max-width:34ch}
.quiet-band a{margin-left:auto;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.quiet-band a:hover{color:#fff;text-decoration:underline}
.band{padding:clamp(44px,4.6vw,84px) 0;border-bottom:1px solid var(--rule)}
.band-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.band-kicker svg{width:20px;height:20px}
.band-h2{margin-top:14px;font-size:clamp(28px,3.2vw,62px);line-height:1.06}
.run{display:grid;gap:clamp(28px,2.6vw,56px);grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.run{grid-template-columns:1.45fr minmax(0,1fr) minmax(0,1fr)}}
@media (min-width:2200px){.run{grid-template-columns:1.6fr minmax(0,1fr) minmax(0,1fr) }}
.run article h3{font-size:clamp(22px,1.9vw,32px);line-height:1.08;margin-top:11px}
.run article .lede{margin-top:12px;font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-2)}
.run article:first-child h3{font-size:clamp(28px,3vw,50px)}
.run article:first-child .lede{font-size:19px}
.emblem-band{display:grid;gap:clamp(30px,4vw,80px);grid-template-columns:minmax(0,1fr);align-items:start;padding:clamp(44px,4.6vw,84px) 0;border-bottom:1px solid var(--rule)}
@media (min-width:1000px){.emblem-band{grid-template-columns:clamp(240px,26vw,520px) minmax(0,1fr)}}
.care-emblem{width:100%;max-width:clamp(170px,40vw,520px);height:auto;color:var(--ink)}
.numbered{margin:clamp(24px,2.4vw,38px) 0 0;padding:0;list-style:none;display:flex;flex-direction:column}
.numbered li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:clamp(16px,2vw,32px);border-top:1px solid var(--rule);padding:22px 0}
@media (min-width:1600px){.numbered li{grid-template-columns:110px minmax(0,1fr)}}
.numbered .n{font-family:var(--mono);font-size:22px;color:var(--accent)}
.numbered h3{font-size:clamp(20px,1.7vw,28px);line-height:1.12}
.numbered p{margin-top:7px;font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-2)}
.doors{display:grid;gap:clamp(22px,2.2vw,40px);grid-template-columns:minmax(0,1fr);padding:clamp(40px,4vw,72px) 0}
@media (min-width:760px){.doors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){.doors{grid-template-columns:repeat(4,minmax(0,1fr))}}
.door{display:flex;flex-direction:column;gap:12px;border-top:2px solid var(--ink);padding-top:16px}
.door-top{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}
.door-top svg{width:22px;height:22px}
.door h3{font-size:clamp(21px,1.6vw,27px);line-height:1.1}
.door p{font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--ink-2)}
.door .count{margin-top:auto;font-family:var(--mono);font-size:13px;color:var(--accent)}

/* ---------- figures: three treatments, one drawing system ---------- */
figure{margin:0}
.fig-plate{background:var(--paper-2);padding:clamp(14px,1.5vw,26px)}
.fig-plate .frame{position:relative;outline:1px solid var(--rule);outline-offset:-1px}
.fig-plate .tab{position:absolute;top:-1px;left:-1px;background:var(--accent);color:var(--paper);font-family:var(--mono);font-size:13px;padding:4px 11px;letter-spacing:.04em}
.fig-plate img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}
.fig-bleed img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;max-height:min(74vh,900px)}
.fig-inset{border:1px solid var(--rule);padding:11px;background:var(--paper)}
.fig-inset img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.cap{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 30px;margin-top:12px;border-top:1px solid var(--rule);padding-top:10px}
.cap .cap-text{flex:1 1 min(56ch,100%);margin:0;font-family:var(--serif);font-size:var(--fs-cap);line-height:1.5;color:var(--ink-2)}
.cap .credit{flex:0 1 auto;min-width:0;max-width:100%;margin-left:auto;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.fig-bleed .cap{max-width:var(--breakout);margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.article-figure img{width:100%;height:auto}
.gallery{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

/* ---------- article ---------- */
.art-head{padding:clamp(34px,3.6vw,68px) 0 clamp(22px,2vw,36px)}
.art-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.art-kicker svg{width:20px;height:20px}
.art-h1{margin-top:16px;font-size:clamp(33px,4.6vw,86px);line-height:1.04}
.lead{margin-top:clamp(18px,1.7vw,30px);font-family:var(--serif);font-size:clamp(19px,1.45vw,26px);line-height:1.44;color:var(--ink-2)}
.prose>p{margin:0 0 1.05em;font-family:var(--serif);font-size:var(--fs-prose);line-height:var(--lh);color:#26282B}
.prose>p:last-child{margin-bottom:0}
.prose h2{margin:clamp(34px,3vw,58px) 0 16px;font-size:clamp(25px,2.2vw,40px);line-height:1.12}
.prose h3{margin:30px 0 12px;font-size:clamp(20px,1.5vw,26px)}
.prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose a:hover{background:rgba(195,24,43,.09)}
.prose ul,.prose ol{font-family:var(--serif);font-size:var(--fs-prose);line-height:var(--lh);color:#26282B;padding-left:1.25em;margin:0 0 1.05em}
.prose li{margin-bottom:.4em}
.doc>.unit{margin:clamp(40px,3.4vw,64px) 0}
.doc>figure{margin:clamp(40px,3.4vw,64px) 0}
.doc>.endunit{margin:clamp(48px,4vw,76px) 0 clamp(48px,4vw,76px)}

/* ---------- components ---------- */
.panel{border-top:3px solid var(--ink);border-bottom:1px solid var(--rule);padding:clamp(20px,1.8vw,30px) 0}
.panel-label{display:flex;align-items:baseline;gap:12px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.panel-label .pn{font-family:var(--mono);color:var(--accent);letter-spacing:0}
.panel h3{margin-top:10px;font-size:clamp(22px,1.8vw,32px);line-height:1.1}
.panel-list{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:14px}
@media (min-width:1000px){.panel-list.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px clamp(24px,3vw,56px)}}
.panel-list li{font-family:var(--serif);font-size:17.5px;line-height:1.5;color:var(--ink-2);padding-left:20px;position:relative}
.panel-list li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:1px;background:var(--accent)}
.panel-list li b{color:var(--ink);font-weight:600}
.endunit .panel{border-bottom:3px solid var(--ink)}
.endunit-grid{display:grid;gap:clamp(20px,2.4vw,40px);grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.endunit-grid{grid-template-columns:minmax(0,1fr) minmax(240px,340px)}}
.callout{background:var(--paper-2);border-left:3px solid var(--accent);padding:clamp(18px,1.6vw,26px) clamp(20px,1.8vw,30px)}
.callout p{font-family:var(--serif);font-size:18.5px;line-height:1.5}
.note{font-family:var(--serif);font-size:16.5px;line-height:1.55;color:var(--muted);border-top:1px solid var(--rule);padding-top:10px}
.pullquote{margin:0;border-top:3px solid var(--accent);border-bottom:1px solid var(--rule);padding:20px 0}
.pullquote p{font-family:var(--serif);font-size:clamp(24px,2.4vw,42px);line-height:1.14;font-weight:600}
.blockquote{margin:0;padding-left:clamp(18px,2vw,32px);border-left:1px solid var(--rule)}
.blockquote p{font-family:var(--serif);font-size:20px;line-height:1.5}
.blockquote cite{display:block;margin-top:12px;font-family:var(--sans);font-style:normal;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.datatable,table.versus{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:17.5px;min-width:520px}
.datatable th,.versus th{text-align:left;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:0 22px 11px 0}
.datatable td,.versus td{border-top:1px solid var(--rule);padding:15px 22px 15px 0;vertical-align:top;line-height:1.45}
.datatable td:first-child,.versus td:first-child{font-weight:600}
.versus td+td{color:var(--ink-2)}
.statrow{display:grid;gap:1px;grid-template-columns:minmax(0,1fr);background:var(--rule)}
@media (min-width:760px){.statrow{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}}
.statblock{background:var(--paper);padding:clamp(16px,1.5vw,24px) clamp(16px,1.6vw,26px)}
.stat-num{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(28px,2.6vw,44px);line-height:1;color:var(--accent);letter-spacing:-.02em}
.stat-label{display:block;margin-top:10px;font-family:var(--serif);font-size:16.5px;line-height:1.45;color:var(--ink-2)}
.timeline{margin:0;padding:0;list-style:none}
.timeline li{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 26px;border-top:1px solid var(--rule);padding:15px 0}
@media (min-width:700px){.timeline li{grid-template-columns:minmax(140px,220px) minmax(0,1fr)}}
@media (min-width:1600px){.timeline li{grid-template-columns:minmax(180px,280px) minmax(0,1fr)}}
.t-when{font-family:var(--mono);font-size:14px;line-height:1.45;color:var(--accent);text-transform:none}
.t-what{font-family:var(--serif);font-size:17.5px;line-height:1.5;color:var(--ink-2)}
.chart figcaption,.article-figure figcaption{font-family:var(--serif);font-size:var(--fs-cap);color:var(--ink-2);margin-top:10px;border-top:1px solid var(--rule);padding-top:9px}
.chart svg{width:100%;height:auto;overflow:visible}
.profile-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.profile-card{border-top:2px solid var(--ink);padding-top:14px}
.profile-card .p-photo{width:100%;aspect-ratio:1;object-fit:cover;margin-bottom:12px}
.profile-card h3{font-size:21px}
.profile-card .p-role{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:5px}
.profile-card p{font-family:var(--serif);font-size:16.5px;line-height:1.5;color:var(--ink-2);margin-top:9px}
.profile-card .p-links a{color:var(--accent);text-decoration:underline}
.org-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.org-card{display:flex;align-items:center;gap:14px;border:1px solid var(--rule);padding:13px 16px}
.org-card:hover{border-color:var(--accent)}
.org-logo{width:44px;height:44px;object-fit:contain;flex:none}
.org-card.no-logo::before{content:"§";font-family:var(--mono);font-size:22px;color:var(--accent);flex:none;width:44px;text-align:center}
.org-name{font-family:var(--serif);font-size:18px;font-weight:600}
.org-host{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block}
.entity-ref{color:var(--accent);text-decoration:underline;white-space:nowrap}
.further-grid{display:grid;gap:1px;grid-template-columns:minmax(0,1fr);background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
@media (min-width:760px){.further-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
.further-grid a{background:var(--paper);padding:clamp(16px,1.5vw,24px);display:flex;flex-direction:column;gap:9px}
.further-grid a:hover{background:var(--paper-2)}
.further-grid .fk{font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.further-grid .ft{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.16}
.related-links{list-style:none;margin:0;padding:0}

/* ---------- supporters: a directory, not a gallery ---------- */
.supporters{padding:clamp(40px,3.6vw,68px) 0;border-bottom:1px solid var(--rule)}
.sup-head{max-width:60ch}
.sup-group{margin-top:clamp(24px,2.2vw,38px)}
.sup-label{font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--ink)}
.sup-list{list-style:none;margin:0;padding:0}
.sup-list li{border-bottom:1px solid var(--rule-soft)}
.sponsor{display:flex;flex-direction:column;gap:11px;align-items:flex-start;padding:18px 0}
.sponsor img{flex:0 0 auto;width:300px;height:56px;max-width:100%;object-fit:contain;background:var(--dark);padding:8px 14px}
@media (min-width:1600px){.sponsor img{width:340px;height:60px}}
.sponsor-name{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.2}
.sponsor:hover .sponsor-name{color:var(--accent)}
.sponsor-blurb{font-family:var(--serif);font-size:16.5px;line-height:1.5;color:var(--ink-2);max-width:46ch;min-width:200px}

/* ---------- category + archive ---------- */
.cat-head{padding:clamp(34px,3.4vw,64px) 0 clamp(26px,2.4vw,44px);border-bottom:1px solid var(--rule)}
.cat-grid{display:grid;gap:clamp(20px,2vw,36px);grid-template-columns:minmax(0,1fr);align-items:end}
@media (min-width:1100px){.cat-grid{grid-template-columns:minmax(0,1fr) minmax(280px,520px)}}
.cat-h1{font-size:clamp(34px,4.2vw,80px);line-height:1.04}
.cat-meta{margin-top:20px;display:flex;gap:26px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;color:var(--accent)}
.cat-jump{margin-top:18px;display:flex;gap:20px;flex-wrap:wrap;font-size:12px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--secondary)}
.lead-entry{display:grid;gap:clamp(22px,2.6vw,52px);grid-template-columns:minmax(0,1fr);align-items:center;padding:clamp(34px,3.4vw,64px) 0;border-bottom:1px solid var(--rule)}
@media (min-width:1000px){.lead-entry{grid-template-columns:1.15fr minmax(0,1fr)}}
.lead-entry h2{font-size:clamp(28px,3.4vw,64px);line-height:1.05}
.lead-entry .lede{margin-top:16px;font-family:var(--serif);font-size:clamp(18px,1.3vw,22px);line-height:1.5;color:var(--ink-2)}
.cat-list{list-style:none;margin:0;padding:clamp(34px,3.4vw,60px) 0;display:grid;gap:clamp(28px,2.6vw,48px);grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){.cat-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1500px){.cat-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:2200px){.cat-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cat-card{display:flex;flex-direction:column;height:100%;border-top:2px solid var(--ink);padding-top:15px;gap:13px}
.cat-card .ci{position:relative;outline:1px solid var(--rule);outline-offset:-1px}
.cat-card img{width:100%;aspect-ratio:8/5;object-fit:cover}
.cat-card .cn{position:absolute;top:0;left:0;background:var(--accent);color:var(--paper);font-family:var(--mono);font-size:12px;padding:3px 9px}
.cat-card h3{font-size:clamp(20px,1.5vw,25px);line-height:1.14;min-height:2.28em}
.cat-card p{font-family:var(--serif);font-size:16.5px;line-height:1.5;color:var(--ink-2)}
.cat-card .go{margin-top:auto;font-size:11.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.cat-card:hover .ci{outline-color:var(--accent)}
.reg{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:17.5px;min-width:640px}
.reg th{text-align:left;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:0 24px 11px 0}
.reg td{border-top:1px solid var(--rule);padding:14px 24px 14px 0;vertical-align:top;line-height:1.45}
.reg td.n{font-family:var(--mono);font-size:13px;color:var(--accent);white-space:nowrap}
.reg td.t{font-weight:600}
.reg tr:hover td{background:var(--paper-2)}

/* ---------- footer ---------- */
.site-foot{border-top:3px solid var(--ink);padding:clamp(30px,3vw,52px) 0 clamp(40px,4vw,64px)}
.foot-grid{display:flex;align-items:flex-end;gap:clamp(20px,3vw,56px);flex-wrap:wrap}
.foot-word{font-family:var(--serif);font-size:clamp(30px,2.6vw,46px);font-weight:700;line-height:.92}
.foot-standing{font-family:var(--serif);font-size:16.5px;color:var(--ink-2);max-width:44ch}
.foot-nav{margin-left:auto;display:flex;gap:clamp(14px,1.6vw,28px);flex-wrap:wrap;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.notfound{padding:clamp(60px,8vw,160px) 0}
.notfound h1{font-size:clamp(40px,6vw,110px);line-height:1}
.notfound p{margin-top:22px;font-family:var(--serif);font-size:22px;color:var(--ink-2)}
.sg-sec{padding:clamp(30px,3vw,54px) 0;border-bottom:1px solid var(--rule)}
.sg-sec>h2{font-size:28px;margin-bottom:22px;color:var(--accent)}
.sg-note{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:14px}

/* additions */
.stat-num.long{font-size:clamp(19px,1.5vw,26px);line-height:1.16}
.door .ci{position:relative;outline:1px solid var(--rule);outline-offset:-1px}
.door .ci img{width:100%;aspect-ratio:8/5;object-fit:cover}
.door:hover .ci{outline-color:var(--accent)}
.reg tbody th{text-align:left;font-family:var(--serif);font-size:20px;font-weight:600;color:var(--ink);padding:34px 0 12px;border-bottom:2px solid var(--ink)}
.reg tbody:first-of-type th{padding-top:0}
.sup-list li:last-child{border-bottom:none}
.opener .cap{margin-top:12px}
.emblem-band .numbered li:first-child{border-top-width:2px}
.sg-swatches{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:var(--rule)}
.sg-sw{padding:18px 16px;min-height:112px;display:flex;flex-direction:column;justify-content:flex-end;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.sg-sw b{display:block;font-family:var(--mono);font-size:12px;letter-spacing:0;margin-top:5px;text-transform:none}

/* full-bleed lead photograph — the homepage's opening image */
.lead-photo{position:relative;isolation:isolate;background:#141517}
.lead-photo>img{width:100%;height:min(86vh,960px);min-height:430px;object-fit:cover;object-position:center 42%}
.lead-photo::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
 background:linear-gradient(to top,rgba(18,19,21,.95) 0%,rgba(18,19,21,.88) 24%,rgba(18,19,21,.42) 56%,rgba(18,19,21,.10) 86%,rgba(18,19,21,.22) 100%)}
.lead-copy{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(26px,3.2vw,62px)}
.lead-copy .hang{color:#F4F1E9;margin-bottom:14px}
.lead-copy .hang small{color:rgba(244,241,233,.84)}
.lead-copy .statute-h1{color:#F4F1E9;max-width:31ch;font-size:clamp(31px,4.5vw,88px)}
.lead-cap{padding-top:12px;padding-bottom:4px}
.lead-cap .cap{border-top:none;padding-top:0}
@media (min-width:1100px){.lead-copy .statute-h1{max-width:27ch}}

/* --- band headers stand out --- */
.band-head{border-top:3px solid var(--ink);padding-top:clamp(14px,1.4vw,22px);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(12px,1.2vw,18px);margin-bottom:clamp(26px,2.6vw,46px)}
.band-kicker.major{background:var(--accent);color:var(--paper);padding:7px 13px 7px 11px;letter-spacing:.19em}
.band-kicker.major svg{opacity:1;width:19px;height:19px}
.band-head .band-h2{margin-top:0;font-size:clamp(32px,4.3vw,80px);line-height:1.01;letter-spacing:-.024em;max-width:24ch}

/* --- the dated rules: year, status, exact date --- */
.numbered li{grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.numbered li{grid-template-columns:152px minmax(0,1fr)}}
@media (min-width:1600px){.numbered li{grid-template-columns:210px minmax(0,1fr)}}
.numbered .when{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.numbered .n{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3.1vw,52px);line-height:.86;color:var(--accent);letter-spacing:-.022em}
.numbered .status{font-size:10.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:3px 8px}
.numbered .status.pending{background:var(--secondary)}
.numbered .status.agreed{background:var(--clay);color:var(--ink)}
.numbered .date{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted)}

/* --- supporters: three groups across, not one long stack --- */
.sup-groups{display:grid;gap:clamp(22px,2.2vw,44px);grid-template-columns:minmax(0,1fr);margin-top:clamp(22px,2.2vw,36px)}
@media (min-width:900px){.sup-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sup-group{margin-top:0}
.sponsor img{width:min(300px,100%)}
@media (min-width:1600px){.sponsor img{width:min(340px,100%)}}

/* --- header nav rebuilt: full-width bar, second level compacted --- */
.masthead{border-bottom:none}
.mast-top{border-bottom:none;padding-bottom:clamp(15px,1.5vw,24px)}
.mast-bar{background:var(--ink);border-top:1px solid var(--rule)}
.mast-nav{display:flex;align-items:stretch;flex-wrap:wrap;gap:0;padding:0}
.mast-nav .nav-link{display:inline-flex;align-items:center;gap:9px;color:#F4F1E9;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;padding:16px 20px;white-space:nowrap}
.mast-nav .nav-link svg{width:19px;height:19px;flex:none;opacity:.7}
.mast-nav .nav-link:hover,.mast-nav .nav-link:focus-visible{background:var(--accent);color:#fff}
.mast-nav .nav-link:hover svg{opacity:1}
.mast-nav .nav-link[aria-current]{background:var(--accent);color:#fff}
.mast-nav .nav-link[aria-current] svg{opacity:1}
.mast-nav .nav-link .chev{width:11px;height:11px;opacity:.65;margin-left:-2px}
.mast-nav .nav-item{position:relative;display:flex}
.mast-nav .nav-sub{position:absolute;top:100%;left:0;min-width:256px;background:var(--ink);border-top:2px solid var(--accent);padding:6px 0 10px;opacity:0;pointer-events:none;transform:translateY(-5px);transition:opacity .14s ease,transform .14s ease;z-index:40}
.mast-nav .nav-item:hover>.nav-sub,.mast-nav .nav-item:focus-within>.nav-sub{opacity:1;pointer-events:auto;transform:none}
.mast-nav .nav-sub-label{display:block;padding:9px 20px 7px;font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,241,233,.56)}
.mast-nav .nav-sub a{display:block;padding:9px 20px;color:#F4F1E9;font-family:var(--serif);font-size:17px;font-weight:400;letter-spacing:0;text-transform:none}
.mast-nav .nav-sub a:hover{background:var(--accent);color:#fff}
@media (min-width:1600px){.mast-nav .nav-link{font-size:15px;padding:18px 24px}}
@media (max-width:899px){
  .mast-nav .nav-link{padding:13px 13px;font-size:12px;letter-spacing:.12em}
  .mast-nav .nav-link svg{width:17px;height:17px}
  .mast-nav .nav-item{flex-direction:column;flex:1 1 100%;order:9;border-top:1px solid rgba(244,241,233,.16)}
  .mast-nav .nav-sub{position:static;opacity:1;pointer-events:auto;transform:none;min-width:0;border-top:none;padding:0 0 8px;display:flex;flex-wrap:wrap}
  .mast-nav .nav-sub-label{flex:1 1 100%;padding:8px 13px 2px}
  .mast-nav .nav-sub a{padding:6px 13px;font-size:15px}
}

/* --- emblem scaled to the wordmark --- */
.mast-emblem svg{width:clamp(46px,6.6vw,108px);height:auto}

/* --- opener band reformatted: hanging label, standfirst, evidence --- */
.opener{border-top:1px solid var(--rule)}
.opener-side{display:flex;flex-direction:column;gap:11px;align-items:flex-start;border-top:3px solid var(--ink);padding-top:14px}
.opener-side .hang{margin-bottom:0}
.opener-tag{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.6}
.opener-dek{margin-top:0;font-size:clamp(20px,1.75vw,30px);line-height:1.42;max-width:46ch;color:var(--ink-2)}
.opener-dek strong{font-weight:600;color:var(--ink)}
@media (min-width:1100px){.opener-grid{grid-template-columns:154px minmax(0,1fr) 320px;gap:clamp(28px,3vw,58px)}}
@media (min-width:2200px){.opener-grid{grid-template-columns:210px minmax(0,1fr) 430px}}

/* --- a date inside a line gets its own mark --- */
.date-mark{display:inline-block;background:var(--paper);color:var(--secondary);font-family:var(--mono);font-size:.66em;letter-spacing:-.01em;padding:.1em .4em .14em;vertical-align:.14em;white-space:nowrap}

/* --- section doors: full width, framed images --- */
.doors-band{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.doors{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--rule);padding:0}
@media (min-width:700px){.doors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.doors{grid-template-columns:repeat(4,minmax(0,1fr))}}
.door{display:flex;flex-direction:column;background:var(--paper);border-top:none;padding-top:0;gap:0}
.door:hover{background:var(--paper-2)}
.door .ci{position:relative;display:block;outline:none}
.door .ci img{width:100%;aspect-ratio:5/4;object-fit:cover;filter:saturate(.9) contrast(1.02)}
.door .ci::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,19,21,.34),rgba(18,19,21,0) 52%)}
.door .cn{position:absolute;left:0;top:0;z-index:2;background:var(--accent);color:var(--paper);font-family:var(--mono);font-size:13px;padding:4px 12px}
.door:hover .ci img{filter:none}
.door-body{display:flex;flex-direction:column;gap:11px;padding:clamp(18px,1.7vw,30px);flex:1}
.door-body .count{margin-top:auto;padding-top:6px}

/* --- footer: its own ground --- */
.site-foot{background:var(--ink);color:var(--paper);border-top:none;box-shadow:inset 0 5px 0 var(--accent)}
.site-foot .foot-word{color:var(--paper)}
.site-foot .foot-standing{color:rgba(244,241,233,.74)}
.site-foot .foot-nav{color:rgba(244,241,233,.68)}
.site-foot .foot-nav a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}

/* --- masthead lockup: emblem optically centred on the wordmark --- */
.mast-id{display:flex;flex-direction:column;gap:clamp(7px,.7vw,11px);min-width:0}
.mast-lockup{display:flex;align-items:center;gap:clamp(13px,1.5vw,26px)}
.mast-emblem{flex:none;display:block;line-height:0}
.mast-emblem svg{display:block;width:clamp(46px,6.6vw,108px);height:auto}
.mast-standing{margin-top:0}
.mast-compact .mast-emblem svg{width:clamp(40px,3.4vw,48px)}

@media (min-width:900px) and (max-width:1240px){
  .mast-nav .nav-link{padding:14px 13px;font-size:12.5px;letter-spacing:.1em;gap:7px}
  .mast-nav .nav-link svg{width:17px;height:17px}
}

.opener-grid>figure{max-width:clamp(250px,44vw,420px)}
@media (min-width:1100px){.opener-grid>figure{max-width:none}}
.mast-nav .nav-sub a:focus-visible{background:var(--accent);color:#fff;outline:2px solid #fff;outline-offset:-4px}

/* --- mobile: submenu taps reach 44px --- */
@media (max-width:899px){
  .mast-nav .nav-sub a{padding:12px 13px;font-size:15px;min-height:44px;display:flex;align-items:center}
  .mast-nav .nav-link{min-height:44px}
}
/* --- mobile: the archive register stacks instead of scrolling sideways --- */
@media (max-width:699px){
  .reg{min-width:0;display:block;font-size:17px}
  .reg thead{display:none}
  .reg tbody{display:block}
  .reg tbody th{display:block;padding:30px 0 10px;font-size:19px}
  .reg tbody:first-of-type th{padding-top:0}
  .reg tr{display:block;border-top:1px solid var(--rule);padding:14px 0}
  .reg tbody tr:first-child{border-top:none;padding-top:0}
  .reg td{display:block;border-top:none;padding:0}
  .reg td.n{font-size:12px;margin-bottom:3px}
  .reg td.t{font-size:19px;line-height:1.22;margin-bottom:5px}
  .reg tr:hover td{background:transparent}
}

/* 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}
.sponsor:not(.lead-line){flex-basis:var(--sp-tile,232px)!important}
.sponsor:not(.lead-line){grid-column:span 1!important;grid-row:span 1!important}

/* sp-grid-fill: fixed px columns leave a dead strip at wide widths — the tiles
   must stretch, and a tile with its own fixed width has to give that up too */
.opener-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;justify-content:stretch!important}
.opener-grid>[data-partner],.opener-grid>*>[data-partner]{width:auto!important}

/* sp-blurb-stack: a slot holding BOTH a mark and our copy stacks them —
   a fixed-height row clips the mark once the copy is un-hidden. */
.sponsor:has(> img):has(> .sponsor-blurb:not(:empty)){flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;height:auto!important;min-height:0!important;overflow:visible!important;gap:8px}
.sponsor:has(> img):has(> .sponsor-blurb:not(:empty)) > img{align-self:flex-start}

/* 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-tile-fit: a slot fills its track, keeps a symmetric inset, and cannot be inflated
   by one long line of our copy. */
.sponsor.sponsor{width:100%!important;box-sizing:border-box!important;align-self:stretch!important;align-items:center!important;height:auto!important;min-height:0!important;overflow:hidden}
.sponsor.sponsor{justify-content:center!important}
:has(> .sponsor.sponsor){align-items:stretch!important}
.sponsor.sponsor .sponsor-name{min-width:0!important;overflow-wrap:anywhere}
.sponsor{padding:18px 18px!important}
.sponsor.sponsor > img{flex:0 0 auto!important;align-self:center!important}
.sponsor.sponsor > .sponsor-txt,.sponsor.sponsor > span:not(.sponsor-name):not(.sponsor-box):not(.sp-logo):not(.sponsor__logo){flex:1 1 auto!important;min-width:0!important}
.sponsor.sponsor .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;margin:0!important}
/* the mobile un-clamp is retired: the operator asked for "2-3 rows max" on phones, which is
   what the desktop rule above already does — so mobile simply keeps it. */
@media (max-width:640px){.sponsor.sponsor .sponsor-blurb{-webkit-line-clamp:3!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;overflow:hidden!important}}

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


/* op-nav-collapse: this nav printed 260px of stacked links at 390 before any content
   (9 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", 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,72px)) 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 (900px here), where the button appears and the nav starts closed.
   Folded with the "height-clip" technique and marked with the "plus" icon — the mechanism
   is deliberately not identical across the fleet either. */
.index-toggle{display:none}
@media (max-width:900px){
  .index-toggle{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:auto;border:0;padding:10px 0;letter-spacing:.18em;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}
  .index-toggle::before,.index-toggle::after{content:"";flex:1 1 auto;height:1px;background:currentColor;opacity:.4}
  .index-toggle-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}
  .mast-nav{height:0;overflow:hidden;visibility:hidden;padding-block:0;margin-block:0;border-top-width:0;border-bottom-width:0}
  .index-toggle-c:checked ~ .mast-nav{height:auto;overflow:visible;visibility:visible;padding-block:revert;margin-block:revert;border-top-width:revert;border-bottom-width:revert}
  .shell:has(> .index-toggle){display:flow-root}
  .index-toggle:not(:has(~ .mast-nav)){display:none}
}

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

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.cat-card > span.ci > img,
  a.door > span.ci > img,
  article > figure.fig-inset > img,
  div.cat-grid > figure.fig-inset > img,
  div.endunit-grid > figure.fig-inset > img,
  div.opener-grid > figure.fig-inset > img,
  figure.fig-plate > div.frame > img,
  figure.fig-plate.wide > div.frame > img,
  main > figure.fig-bleed > img,
  main > section.lead-photo > img,
  main.doc > figure.bleed.fig-bleed.unit > img,
  main.doc > figure.fig-inset.offset.unit > img){height:auto}
/* op-img-dims:end */
