/* Dreadnought — USS Texas (BB-35) · unofficial enthusiast archive
   Haze Grey: navy field, haze-grey type, rust only where it means something. */

:root{
  --ink:#1E2A33;        /* deep navy — the field */
  --ink-2:#243139;      /* panel */
  --ink-3:#2C3A43;      /* raised panel */
  --haze:#7C8A93;       /* haze grey */
  --haze-2:#98A6AC;     /* haze grey, legible */
  --body:#C7D0D3;       /* reading text */
  --paper:#EDF1F1;      /* headings / bright type */
  --rust:#B4553A;       /* corrosion, warning, a restoration figure */
  --rust-2:#C9694D;
  --line:rgba(124,138,147,.34);
  --line-2:rgba(124,138,147,.18);
  --display:"Archivo",system-ui,sans-serif;
  --prose:"Source Serif 4",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --gut:clamp(20px,4.4vw,64px);
  --measure:70ch;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--body);
  font-family:var(--prose);font-size:20px;line-height:1.62;
  text-wrap:pretty;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--rust-2);text-decoration:none}
a:hover{color:var(--paper);text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);color:var(--paper);letter-spacing:-.02em;line-height:1.02;margin:0}
p{margin:0 0 1.15em}
hr{border:0;border-top:1px solid var(--line);margin:0}
::selection{background:var(--rust);color:#fff}

.wrap{width:100%;max-width:1460px;margin:0 auto;padding-inline:var(--gut)}
.wrap-narrow{width:100%;max-width:1120px;margin:0 auto;padding-inline:var(--gut)}
.kicker{font-family:var(--mono);font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--rust-2);margin:0 0 18px}
.kicker--haze{color:var(--haze-2)}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--haze-2)}
.rule-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:36px}
.rule-head h2{font-size:clamp(24px,2.4vw,32px);text-transform:uppercase;letter-spacing:.07em}
.plate-caption{font-family:var(--mono);font-size:14px;line-height:1.6;letter-spacing:.04em;color:var(--haze-2)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--rust);color:#fff;padding:10px 14px;z-index:99}

/* ---------- rivet rule ---------- */
.rivets{height:15px;background-image:radial-gradient(circle at 7px 7px,var(--haze) 2px,transparent 2.4px);
  background-size:20px 15px;opacity:.85}

/* ---------- masthead + nav ---------- */
.masthead{border-bottom:1px solid var(--line);background:var(--ink)}
.masthead__row{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-block:26px 20px}
.brand{display:block}
.brand:hover{text-decoration:none}
.brand__word{display:block;font-family:var(--display);font-weight:800;font-size:clamp(30px,4.4vw,52px);line-height:.86;
  letter-spacing:.2em;text-transform:uppercase;color:var(--paper)}
.brand__standing{display:block;font-family:var(--mono);font-size:13px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--haze-2);margin-top:12px}
.masthead__meta{font-family:var(--mono);font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--haze-2);text-align:right;line-height:1.7}
.masthead__meta a{color:var(--haze-2)}
.masthead__meta a:hover{color:var(--paper)}

.navbar{background:#1A242C;border-bottom:1px solid var(--line)}
.navbar__inner{display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav{list-style:none;display:flex;flex-wrap:wrap;margin:0;padding:0}
.nav>li{position:relative}
.nav>li>a{display:inline-block;font-family:var(--mono);font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--body);padding:17px 16px}
.nav>li>a:hover,.nav>li:focus-within>a{color:var(--paper);text-decoration:none}
.nav>li[aria-current="true"]>a,.nav>li>a[aria-current="page"]{color:var(--rust-2)}
.nav-cb{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.nav .sub-cb{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.sub-caret{display:none}
.nav-sub{list-style:none;margin:0;padding:14px 0 16px;position:absolute;top:100%;left:0;z-index:40;
  min-width:340px;background:#141D24;border:1px solid var(--line);border-top:2px solid var(--rust);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .14s ease,transform .14s ease}
.nav-sub::before{content:attr(data-cat);display:block;font-family:var(--mono);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--haze);padding:0 20px 10px}
.nav-sub li+li{border-top:1px solid var(--line-2)}
.nav-sub a{display:block;padding:11px 20px;font-family:var(--prose);font-size:17.5px;line-height:1.35;color:var(--body)}
.nav-sub a:hover{background:rgba(180,85,58,.16);color:var(--paper);text-decoration:none}
.nav>li.has-sub::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}
.nav>li.has-sub:hover .nav-sub,.nav>li.has-sub:focus-within .nav-sub{opacity:1;visibility:visible;transform:translateY(0)}
.nav__browse{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--haze-2);border:1px solid var(--line);padding:9px 14px;white-space:nowrap}
.nav__browse:hover{color:var(--paper);border-color:var(--haze-2);text-decoration:none}
.nav-mob{display:none}

@media (max-width:1240px){
  .nav>li>a{padding:15px 11px;font-size:12px;letter-spacing:.1em}
  .nav__browse{font-size:11px;padding:8px 11px}
}
/* ---------- hero / lead ---------- */
.lead-hero{position:relative;min-height:min(76vh,720px);display:flex;align-items:flex-end;isolation:isolate}
.lead-hero__img{position:absolute;inset:0;z-index:-2;overflow:hidden}
.lead-hero__img img{width:100%;height:100%;object-fit:cover}
.lead-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(30,42,51,.8) 0%,rgba(30,42,51,.4) 32%,rgba(30,42,51,.97) 78%,rgba(30,42,51,1) 100%)}
.lead-hero__body{padding:120px 0 56px;max-width:1100px}
.lead-hero h1{font-size:clamp(40px,6.6vw,92px);font-weight:800;line-height:.92;letter-spacing:-.03em;margin:0 0 22px;text-wrap:balance}
.dek{font-family:var(--prose);font-size:clamp(20px,1.7vw,26px);line-height:1.45;color:#D2DBDD;max-width:34em;margin:0}
.lead-hero__meta{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;
  font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--haze-2)}
.lead-hero__meta .dot{color:var(--haze)}

/* ---------- band scaffolding ---------- */
.band{padding:clamp(56px,6vw,96px) 0;border-top:1px solid var(--line)}
.band--panel{background:var(--ink-2)}
.band--tight{padding-block:clamp(40px,4vw,64px)}
.band__intro{max-width:44em;margin:0 0 40px}
.band__intro p{font-size:21px;color:var(--body);margin:0}

/* ---------- THE SECTION THROUGH HER SIDE ---------- */
.section-through{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.layer-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.layer-list li{border-bottom:1px solid var(--line)}
.layer-btn{display:grid;grid-template-columns:58px minmax(0,1fr);gap:20px;width:100%;text-align:left;
  background:none;border:0;padding:20px 8px;color:inherit;font:inherit;cursor:pointer;transition:background .15s}
.layer-btn:hover,.layer-btn[aria-selected="true"]{background:rgba(180,85,58,.12)}
.layer-btn .n{font-family:var(--mono);font-size:14px;letter-spacing:.1em;color:var(--rust-2);padding-top:5px}
.layer-btn .lay{font-family:var(--display);font-weight:700;font-size:clamp(19px,1.7vw,23px);
  text-transform:uppercase;letter-spacing:.05em;color:var(--paper);display:block;margin-bottom:5px}
.layer-btn .note{font-family:var(--prose);font-size:18.5px;line-height:1.45;color:var(--haze-2)}
.layer-btn[aria-selected="true"] .note{color:var(--body)}

.hullfig{border:1px solid var(--line);background:#18222A;padding:22px}
.hullfig__stack{display:flex;flex-direction:column;gap:5px}
.hullfig__water{font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--haze);display:flex;align-items:center;gap:12px;margin-bottom:10px}
.hullfig__water::after{content:"";flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--haze) 0 6px,transparent 6px 12px)}
.hullband{position:relative;display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 16px;
  border:1px solid var(--line);background:#202C34;transition:background .18s,border-color .18s,transform .18s}
.hullband[data-active="true"]{background:rgba(180,85,58,.2);border-color:var(--rust);transform:translateX(6px)}
.hullband__n{font-family:var(--mono);font-size:13px;color:var(--haze-2);letter-spacing:.08em}
.hullband__label{font-family:var(--display);font-weight:600;font-size:15.5px;text-transform:uppercase;
  letter-spacing:.09em;color:var(--body)}
.hullband--plate{background-image:radial-gradient(circle at 7px 50%,rgba(124,138,147,.55) 2px,transparent 2.3px);
  background-size:18px 100%;background-repeat:repeat-x}
.hullband--void{background-image:repeating-linear-gradient(45deg,rgba(124,138,147,.14) 0 6px,transparent 6px 12px)}
.hullband--belt{border-left:6px solid var(--haze-2)}
.hullband--mach{background-image:repeating-linear-gradient(90deg,rgba(124,138,147,.16) 0 2px,transparent 2px 10px)}
.hullfig figcaption{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}

/* ---------- feature / cards ---------- */
.feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,3.4vw,52px);align-items:stretch}
.feature__media{position:relative;min-height:340px;overflow:hidden}
.feature__media img{width:100%;height:100%;object-fit:cover;min-height:340px}
.feature__body{display:flex;flex-direction:column;justify-content:center;padding:8px 0}
.feature__body h3{font-size:clamp(28px,3.2vw,46px);line-height:1.02;margin:0 0 16px}
.feature__body .dek{font-size:20.5px;max-width:32em}
.readon{margin-top:22px;font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--rust-2)}
.side-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.side-list li{border-bottom:1px solid var(--line)}
.side-list a{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;padding:16px 4px;color:var(--body)}
.side-list a:hover{background:rgba(124,138,147,.1);text-decoration:none;color:var(--paper)}
.side-list .n{font-family:var(--mono);font-size:13px;color:var(--haze)}
.side-list .t{font-family:var(--display);font-weight:600;font-size:19.5px;line-height:1.16;letter-spacing:-.01em}
.side-list .b{font-family:var(--prose);font-size:17px;color:var(--haze-2);line-height:1.4;display:block;margin-top:5px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(22px,2.6vw,38px);align-items:stretch}
.card{display:flex;flex-direction:column;background:var(--ink-2);border:1px solid var(--line-2);height:100%}
.card:hover{border-color:var(--haze);text-decoration:none}
.card__media{aspect-ratio:16/10;overflow:hidden;flex:none}
.card__media img{width:100%;height:100%;object-fit:cover}
.card__body{display:flex;flex-direction:column;flex:1;padding:22px 22px 24px}
.card__cat{font-family:var(--mono);font-size:11.5px;letter-spacing:.17em;text-transform:uppercase;color:var(--rust-2);margin-bottom:11px}
.card h3{font-size:26px;line-height:1.1;margin:0 0 11px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:2.2em}
.card p{font-family:var(--prose);font-size:18px;line-height:1.45;color:var(--haze-2);margin:0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card__meta{margin-top:auto;padding-top:20px;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--haze);display:flex;gap:10px;align-items:center}

/* ---------- spec plate ---------- */
.spec-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(28px,4vw,64px);align-items:start}
.specplate{border:1px solid var(--haze);background:#18222A}
.specplate__head{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--haze);
  font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--haze-2)}
.specplate table{width:100%;border-collapse:collapse}
.specplate th,.specplate td{text-align:left;padding:15px 20px;border-bottom:1px solid var(--line-2);vertical-align:baseline}
.specplate tr:last-child th,.specplate tr:last-child td{border-bottom:0}
.specplate th{font-family:var(--mono);font-weight:400;font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--haze);width:46%}
.specplate td{font-family:var(--display);font-weight:600;font-size:21px;color:var(--paper);text-align:right;
  font-variant-numeric:tabular-nums}
.specplate tr:nth-child(odd){background:rgba(124,138,147,.05)}
.specnote{font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--haze-2);letter-spacing:.03em;
  border-top:1px solid var(--line);margin-top:16px;padding-top:14px}

/* ---------- restoration timeline ---------- */
.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;border-top:1px solid var(--line)}
.stage{border-left:1px solid var(--line);padding:24px 22px 26px}
.stage:first-child{border-left:2px solid var(--paper)}
.stage--hot{background:rgba(180,85,58,.11);border-left-color:var(--rust)}
.stage__n{font-family:var(--mono);font-size:13px;letter-spacing:.16em;color:var(--haze)}
.stage--hot .stage__n{color:var(--rust-2)}
.stage__name{font-family:var(--display);font-weight:700;font-size:21px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--paper);margin:10px 0 8px}
.stage--hot .stage__name{color:var(--rust-2)}
.stage__note{font-family:var(--prose);font-size:18px;line-height:1.4;color:var(--haze-2)}

/* ---------- why steel dies (circuit) ---------- */
.circuit{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.circuit__fig{border:1px solid var(--line);background:#18222A;padding:20px}
.circuit__fig svg{width:100%;height:auto;display:block}
.circuit-node{cursor:pointer}
.circuit-node rect{fill:#202C34;stroke:var(--haze);stroke-width:1}
.circuit-node text{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;fill:var(--body)}
.circuit-node[data-active="true"] rect{fill:rgba(180,85,58,.24);stroke:var(--rust)}
.circuit-node[data-active="true"] text{fill:#F2EAE6}
.circuit__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.circuit__list li{border-bottom:1px solid var(--line);padding:18px 4px;display:grid;
  grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:baseline;transition:background .15s}
.circuit__list li[data-active="true"]{background:rgba(180,85,58,.12)}
.circuit__list .part{font-family:var(--display);font-weight:700;font-size:18px;text-transform:uppercase;
  letter-spacing:.07em;color:var(--paper)}
.circuit__list .role{font-family:var(--prose);font-size:18.5px;line-height:1.45;color:var(--haze-2)}

/* ---------- register (bounded feed + CSS-only more) ---------- */
.register{border-top:1px solid var(--line)}
.reg-row{display:grid;grid-template-columns:64px minmax(0,1.6fr) minmax(0,1fr) 108px;gap:20px;
  align-items:center;padding:18px 4px;border-bottom:1px solid var(--line);color:var(--body)}
.reg-row:hover{background:rgba(124,138,147,.1);text-decoration:none}
.reg-row .n{font-family:var(--mono);font-size:13px;color:var(--haze)}
.reg-row .t{font-family:var(--display);font-weight:600;font-size:21px;line-height:1.14;color:var(--paper);letter-spacing:-.01em}
.reg-row .b{font-family:var(--prose);font-size:17.5px;color:var(--haze-2);line-height:1.4}
.reg-row .c{font-family:var(--mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--haze);text-align:right}
.more-cb{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.more-rows{display:none}
.more-cb:checked~.more-rows{display:block}
.more-cb:checked~.more-label .more-label__open{display:none}
.more-cb:checked~.more-label .more-label__shut{display:inline}
.more-label{display:inline-block;margin-top:22px;cursor:pointer;font-family:var(--mono);font-size:12.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--haze-2);border:1px solid var(--line);padding:12px 18px}
.more-label:hover{color:var(--paper);border-color:var(--haze-2)}
.more-label__shut{display:none}

/* ---------- supporters ---------- */
.sponsor-featured{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.sponsor{display:flex;flex-direction:column;gap:14px;background:#141D24;border:1px solid var(--line);
  padding:22px;color:var(--haze-2);height:100%}
.sponsor:hover{border-color:var(--haze-2);text-decoration:none}
.sponsor img{width:100%;height:52px;object-fit:contain;object-position:left center;background:#0F171D;padding:8px}
.sponsor-blurb{font-family:var(--prose);font-size:17px;line-height:1.42;color:var(--haze-2);min-height:1.42em}
.sponsor-roll{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.sponsor-roll .sponsor{padding:14px;gap:8px;background:#161F26}
.sponsor-roll .sponsor img{height:34px;padding:5px}
.sponsor-roll .sponsor-blurb{font-size:14.5px;min-height:0;color:var(--haze)}
.roll-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-top:1px solid var(--line);
  padding-top:18px;margin-bottom:22px}
.roll-head h2{font-size:20px;text-transform:uppercase;letter-spacing:.13em;color:var(--haze-2)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);background:#151E25;padding:clamp(36px,3.4vw,52px) 0 40px;margin-top:0}
.foot__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px 56px;align-items:flex-start;
  border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:22px}
.foot__brand{display:flex;flex-direction:column;gap:10px}
.foot__nav{display:grid;grid-template-columns:repeat(2,minmax(180px,auto));gap:32px 56px}
.foot__nav h3{font-family:var(--mono);font-weight:400;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--haze);margin:0 0 10px}
.foot__nav ul{list-style:none;margin:0;padding:0}
.foot__nav li{margin-bottom:7px}
.foot__nav a{font-family:var(--prose);font-size:17px;color:var(--body)}
.foot__disclaimer{font-size:17px;line-height:1.6;color:var(--haze-2);max-width:64em;margin:0}
.foot__legal{margin-top:18px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--haze)}

/* ---------- article ---------- */
.art-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(72vh,660px)}
.art-hero__img{position:absolute;inset:0;z-index:-2;overflow:hidden}
.art-hero__img img{width:100%;height:100%;object-fit:cover}
.art-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(30,42,51,.78) 0%,rgba(30,42,51,.42) 34%,rgba(30,42,51,.97) 80%,rgba(30,42,51,1) 100%)}
.art-hero__body{padding:112px 0 48px;max-width:1180px}
.art-hero h1{font-size:clamp(36px,5.6vw,80px);font-weight:800;line-height:.94;letter-spacing:-.03em;margin:0 0 20px;text-wrap:balance}
.art-meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:24px;
  font-family:var(--mono);font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--haze-2)}
.art-hero__credit{font-family:var(--mono);font-size:12px;color:var(--haze);letter-spacing:.06em;padding:10px 0 0}

.article{padding:clamp(44px,5vw,80px) 0 0}
.art-cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,4vw,72px);align-items:start}
.article-body{max-width:var(--measure);font-size:22px;line-height:1.66}
.article-body>*{margin-inline:0}
.article-body p{margin:0 0 1.2em;color:var(--body)}
.article-body .lead{font-family:var(--prose);font-size:clamp(21px,1.9vw,27px);line-height:1.45;color:#DBE3E4;margin-bottom:1.1em}
.article-body h2{font-size:clamp(26px,2.7vw,36px);line-height:1.06;margin:2em 0 .6em;padding-top:22px;
  border-top:1px solid var(--line);display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:baseline}
.article-body h2 .sec-n{font-family:var(--mono);font-size:14px;letter-spacing:.14em;color:var(--rust-2);
  font-weight:400;letter-spacing:.16em}
.article-body h3{font-size:23px;margin:1.6em 0 .5em;text-transform:uppercase;letter-spacing:.06em}
.article-body>p:first-of-type::first-letter{font-family:var(--display);font-weight:800;font-size:4.1em;
  line-height:.78;float:left;margin:.06em .11em 0 0;color:var(--rust-2)}
.article-body ul,.article-body ol{margin:0 0 1.3em;padding-left:1.3em}
.article-body li{margin-bottom:.5em}
.article-body a{border-bottom:1px solid rgba(201,105,77,.5)}
.article-body a:hover{border-bottom-color:var(--paper)}
.art-rail{position:sticky;top:24px;display:flex;flex-direction:column;gap:26px}
.art-rail__box{border-top:2px solid var(--line);padding-top:16px}
.art-rail__box h3{font-family:var(--mono);font-weight:400;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--haze);margin-bottom:12px}
.art-toc{list-style:none;margin:0;padding:0;counter-reset:toc}
.art-toc li{border-bottom:1px solid var(--line-2);padding:9px 0}
.art-toc a{font-family:var(--prose);font-size:17px;line-height:1.35;color:var(--body);display:block}
.art-rail__fig figcaption{font-family:var(--mono);font-size:12.5px;line-height:1.6;color:var(--haze);margin-top:10px}

/* ---------- palette components ---------- */
.lead{font-size:1.15em}
.pullquote{margin:2em 0;padding:0 0 0 26px;border-left:3px solid var(--rust)}
.pullquote p{font-family:var(--display);font-weight:600;font-size:clamp(24px,2.6vw,34px);line-height:1.18;
  letter-spacing:-.02em;color:var(--paper);margin:0}
.blockquote{margin:2em 0;padding:24px 28px;background:var(--ink-2);border:1px solid var(--line)}
.blockquote p{font-family:var(--prose);font-style:italic;font-size:21px;line-height:1.5;color:#D7DFE1;margin:0 0 12px}
.blockquote cite{font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--haze-2);font-style:normal}
.callout{margin:2em 0;padding:26px 28px;background:rgba(180,85,58,.11);border:1px solid rgba(180,85,58,.5)}
.callout::before{content:"Key takeaway";display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--rust-2);margin-bottom:12px}
.callout p{font-size:20.5px;line-height:1.5;color:#DDE4E5;margin:0}
.callout p+p{margin-top:.8em}
.note{font-family:var(--mono);font-size:15.5px;line-height:1.65;color:var(--haze-2);border-left:2px solid var(--haze);
  padding:6px 0 6px 20px;margin:1.8em 0}

.keyfacts{margin:2.4em 0;border:1px solid var(--haze);background:#18222A}
.keyfacts__head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:14px 22px;
  border-bottom:1px solid var(--haze)}
.keyfacts__head h3{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--haze-2)}
.keyfacts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0}
.keyfact{padding:18px 22px;border-top:1px solid var(--line-2);border-left:1px solid var(--line-2)}
.keyfact dt{font-family:var(--display);font-weight:700;font-size:16.5px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--paper);margin-bottom:6px}
.keyfact dd{margin:0;font-family:var(--prose);font-size:17.5px;line-height:1.4;color:var(--haze-2)}

.versus,.datatable{width:100%;border-collapse:collapse;margin:2em 0;font-family:var(--mono);font-size:16px}
.versus caption,.datatable caption{caption-side:top;text-align:left;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--haze);padding-bottom:12px}
.versus th,.datatable th{text-align:left;padding:13px 14px;border-bottom:1px solid var(--haze);font-weight:500;
  font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--haze-2)}
.versus td,.datatable td{padding:14px;border-bottom:1px solid var(--line-2);color:var(--body);
  font-family:var(--prose);font-size:18.5px;line-height:1.4;vertical-align:top}
.versus tbody th{font-family:var(--mono);font-size:12.5px;color:var(--haze-2);width:23%;border-bottom:1px solid var(--line-2)}
.datatable tr:nth-child(even) td{background:rgba(124,138,147,.05)}
.datatable td:last-child,.versus td:last-child{color:var(--haze-2)}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:2.2em 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.statblock{padding:20px 20px 22px;border-left:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}
.statblock:first-child{border-left:0}
.stat-num{font-family:var(--display);font-weight:800;font-size:clamp(28px,3vw,40px);line-height:1;color:var(--rust-2);
  font-variant-numeric:tabular-nums}
.stat-label{font-family:var(--mono);font-size:12.5px;line-height:1.5;letter-spacing:.06em;color:var(--haze-2)}

.timeline{list-style:none;margin:2.2em 0;padding:0;border-top:1px solid var(--line)}
.timeline li{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:22px;padding:16px 0;
  border-bottom:1px solid var(--line-2);align-items:baseline}
.t-when{font-family:var(--mono);font-size:13.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--rust-2);line-height:1.45}
.t-what{font-family:var(--prose);font-size:19px;line-height:1.45;color:var(--body)}

.chart{margin:2.2em 0;border:1px solid var(--line);background:#18222A;padding:22px}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart figcaption{font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--haze-2);margin-top:16px;
  border-top:1px solid var(--line);padding-top:12px}
.chart .c-bar{fill:var(--haze)}
.chart .c-bar--hot{fill:var(--rust)}
.chart .c-lab{font-family:var(--mono);font-size:11px;letter-spacing:.08em;fill:var(--haze-2)}
.chart .c-val{font-family:var(--mono);font-size:12px;fill:var(--paper)}
.chart .c-axis{stroke:var(--line);stroke-width:1}
.chart .c-line{fill:none;stroke:var(--rust);stroke-width:2.5}
.chart .c-dot{fill:var(--paper)}

.article-figure{margin:2.4em 0}
.article-figure img{width:100%;height:auto}
.article-figure figcaption,.gallery figcaption{font-family:var(--mono);font-size:13.5px;line-height:1.6;
  color:var(--haze-2);margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.article-figure--bleed{margin-inline:0;max-width:none}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:2.4em 0}
.gallery figure{margin:0}
.map-figure{margin:2.4em 0;border:1px solid var(--line);background:#18222A;padding:16px}
.map-figure .map-slot{aspect-ratio:16/9;background:#131C22;border:1px solid var(--haze);display:block;width:100%}
.map-figure .leaflet-container{background:#131C22;font-family:var(--mono);font-size:12px}
.map-figure .leaflet-tile-pane{filter:grayscale(1) brightness(1.05) contrast(1.05)}
.map-figure .leaflet-tile{opacity:1 !important}
.map-figure .leaflet-control-attribution{background:rgba(19,28,34,.86);color:var(--haze-2);font-family:var(--mono);font-size:10.5px}
.map-figure .leaflet-control-attribution a{color:var(--haze-2)}
.map-figure .leaflet-bar a{background:#1E2A33;color:var(--body);border-bottom-color:var(--line)}
.map-figure .leaflet-bar a:hover{background:#2C3A43;color:var(--paper)}
.map-figure .leaflet-tooltip{background:#141D24;border:1px solid var(--haze);color:var(--paper);
  font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;box-shadow:none}
.map-figure .leaflet-tooltip-top::before{border-top-color:var(--haze)}
@media (max-width:560px){.map-figure .map-slot{aspect-ratio:4/5}}
.map-figure figcaption{font-family:var(--mono);font-size:13px;color:var(--haze-2);margin-top:14px}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:2.2em 0}
.profile-card{background:var(--ink-2);border:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:8px}
.profile-card .p-photo{width:72px;height:72px;object-fit:cover;border:1px solid var(--line)}
.profile-card h3{font-size:20px;letter-spacing:-.01em}
.profile-card .p-role{font-family:var(--mono);font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--rust-2);margin:0}
.profile-card p{font-family:var(--prose);font-size:17.5px;line-height:1.45;color:var(--haze-2);margin:0}
.profile-card .p-links{font-family:var(--mono);font-size:12.5px;letter-spacing:.08em}
.profile-card .p-attr{font-family:var(--mono);font-size:11.5px;color:var(--haze);letter-spacing:.06em}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:2em 0}
.org-card{display:flex;flex-direction:column;gap:7px;background:#141D24;border:1px solid var(--line);padding:16px}
.org-card:hover{border-color:var(--haze-2);text-decoration:none}
.org-logo{width:100%;height:38px;object-fit:contain;object-position:left center}
.org-name{font-family:var(--display);font-weight:600;font-size:17px;color:var(--paper)}
.org-host{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;color:var(--haze)}
.entity-ref{font-family:var(--mono);font-size:.92em;letter-spacing:.04em;white-space:nowrap}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:1.6em 0}
.further-grid a{display:block;background:var(--ink-2);border:1px solid var(--line);padding:18px;
  font-family:var(--display);font-weight:600;font-size:19px;line-height:1.16;color:var(--paper)}
.further-grid a:hover{border-color:var(--rust);text-decoration:none}
.related{border-top:1px solid var(--line);margin-top:56px;padding-top:32px}
.related h2{font-size:22px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:20px}
.related-links{list-style:none;margin:0;padding:0;display:grid;gap:0}
.related-links li{border-bottom:1px solid var(--line-2)}
.related-links a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:baseline;padding:16px 2px;
  font-family:var(--display);font-weight:600;font-size:21px;line-height:1.15;color:var(--paper)}
.related-links a:hover{color:var(--rust-2);text-decoration:none}
.related-links .rl-cat{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--haze)}

/* ---------- category / hub / simple pages ---------- */
.page-head{padding:clamp(48px,6vw,104px) 0 clamp(28px,3vw,44px);border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(38px,6vw,84px);font-weight:800;line-height:.94;margin:0 0 20px;letter-spacing:-.03em}
.page-head .dek{font-size:clamp(19px,1.7vw,25px)}
.cat-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cat-list li{border-bottom:1px solid var(--line)}
.cat-list>li>a{display:grid;grid-template-columns:110px minmax(0,1.5fr) minmax(0,1.1fr);gap:26px;
  padding:26px 4px;align-items:start;color:var(--body)}
.cat-list>li>a:hover{background:rgba(124,138,147,.09);text-decoration:none}
.cat-list img{width:110px;height:74px;object-fit:cover}
.cat-list .t{font-family:var(--display);font-weight:700;font-size:clamp(21px,2.2vw,29px);line-height:1.08;
  color:var(--paper);letter-spacing:-.015em;display:block;margin-bottom:8px}
.cat-list .b{font-family:var(--prose);font-size:18.5px;line-height:1.45;color:var(--haze-2)}
.cat-list .m{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--haze);
  padding-top:4px}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(20px,2.4vw,32px)}
.hub-card{background:var(--ink-2);border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;height:100%}
.hub-card h2{font-size:26px;margin:0 0 10px}
.hub-card .n{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--rust-2);margin-bottom:14px}
.hub-card p{font-family:var(--prose);font-size:18px;color:var(--haze-2);margin:0 0 16px}
.hub-card ul{list-style:none;margin:0 0 18px;padding:0}
.hub-card li{border-top:1px solid var(--line-2);padding:9px 0}
.hub-card a.more{margin-top:auto;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.prose-page{padding:clamp(40px,5vw,72px) 0 0}
.prose-page .article-body{font-size:21px}
.form-grid{display:grid;gap:18px;max-width:620px;margin:2em 0}
.form-grid label{font-family:var(--mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--haze-2);
  display:block;margin-bottom:8px}
.form-grid input,.form-grid textarea{width:100%;background:#141D24;border:1px solid var(--line);color:var(--body);
  font-family:var(--prose);font-size:19px;padding:13px 14px}
.form-grid input:focus,.form-grid textarea:focus{outline:2px solid var(--rust);border-color:var(--rust)}
.btn{display:inline-block;font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  background:var(--rust);color:#fff;border:0;padding:15px 24px;cursor:pointer}
.btn:hover{background:var(--rust-2);color:#fff;text-decoration:none}
.err-code{font-family:var(--mono);font-size:clamp(60px,12vw,150px);line-height:.9;color:var(--rust);letter-spacing:-.02em}

/* ---------- styleguide ---------- */
.sg-block{border-top:1px solid var(--line);padding:36px 0}
.sg-block>h2{font-size:24px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}
.sg-block>.eyebrow{display:block;margin-bottom:24px}
.sg-swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.sg-swatch{border:1px solid var(--line);padding:14px;font-family:var(--mono);font-size:12px;color:var(--haze-2)}
.sg-swatch span{display:block;height:64px;margin-bottom:10px;border:1px solid var(--line-2)}
.sg-narrow{max-width:var(--measure)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .section-through,.spec-grid,.circuit,.feature,.art-cols{grid-template-columns:minmax(0,1fr)}
  .art-rail{position:static;flex-direction:row;flex-wrap:wrap;gap:24px}
  .art-rail__box{flex:1 1 260px}
  .reg-row{grid-template-columns:44px minmax(0,1fr) 100px}
  .reg-row .b{display:none}
  .cat-list>li>a{grid-template-columns:96px minmax(0,1fr)}
  .cat-list .m{grid-column:2}
}
@media (max-width:900px){
  body{font-size:19px}
  .navbar__inner{align-items:stretch;flex-direction:column;padding-bottom:12px}
  .nav-mob{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
  .nav-mob__label{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--haze-2);border:1px solid var(--line);padding:10px 14px;cursor:pointer}
  .nav-cb{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
  .nav{display:none;flex-direction:column;width:100%;border-top:1px solid var(--line)}
  .nav-cb:checked~.nav{display:flex}
  .nav>li{border-bottom:1px solid var(--line-2)}
  .nav>li>a{padding:15px 0;display:block}
  .nav>li.has-sub{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center}
  .sub-caret{display:flex;align-items:center;justify-content:center;height:44px;cursor:pointer;color:var(--haze-2)}
  .nav-sub{position:static;opacity:1;visibility:hidden;transform:none;display:none;min-width:0;grid-column:1/-1;
    border:0;border-top:1px solid var(--line-2);padding:4px 0 12px;background:transparent}
  .nav-sub::before{padding-left:0}
  .sub-cb:checked~.nav-sub{display:block;visibility:visible}
  .nav>li.has-sub:hover .nav-sub,.nav>li.has-sub:focus-within .nav-sub{opacity:1}
  .nav-sub a{padding:10px 0 10px 16px;border-left:1px solid var(--line)}
  .nav__browse{align-self:flex-start;margin-top:10px}
  .masthead__row{flex-direction:column;align-items:flex-start;gap:14px}
  .masthead__meta{text-align:left}
  .article-body{font-size:20px;max-width:none}
  .stages{grid-template-columns:minmax(0,1fr)}
  .stage{border-left:0;border-top:1px solid var(--line);padding-inline:0}
  .stage:first-child{border-left:0;border-top:2px solid var(--paper)}
  .stage--hot{border-left:3px solid var(--rust);padding-left:16px}
  .statblock{border-left:0;border-top:1px solid var(--line-2)}
  .statblock:first-child{border-top:0}
  .circuit__list li{grid-template-columns:minmax(0,1fr);gap:6px}
  .timeline li{grid-template-columns:minmax(0,1fr);gap:6px}
  .keyfact{border-left:0}
  .foot__nav{grid-template-columns:minmax(0,1fr)}
  .lead-hero__body,.art-hero__body{padding-top:64px}
  .versus,.datatable{font-size:15px}
  .versus td,.datatable td{font-size:17px;padding:12px 10px}
  .versus th,.datatable th{padding:11px 10px}
}
@media (max-width:560px){
  .reg-row{grid-template-columns:38px minmax(0,1fr);row-gap:6px}
  .reg-row .c{grid-column:2;text-align:left}
  .cat-list>li>a{grid-template-columns:minmax(0,1fr)}
  .cat-list img{width:100%;height:170px}
  .sponsor-featured,.sponsor-roll{grid-template-columns:minmax(0,1fr)}
  .article-body>p:first-of-type::first-letter{font-size:3.4em}
  .gallery{grid-template-columns:minmax(0,1fr)}
}
@media print{
  body{background:#fff;color:#000}
  .navbar,.lead-hero__img,.art-hero__img{display:none}
}

/* ---------- article composition (offset column + full-bleed breakouts) ---------- */
.art-index{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  margin:0 0 clamp(36px,4vw,60px)}
.art-index a{display:flex;gap:12px;align-items:baseline;padding:15px 22px 15px 0;margin-right:22px;
  font-family:var(--mono);font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--haze-2)}
.art-index a:hover{color:var(--rust-2);text-decoration:none}
.art-index a .i{color:var(--rust-2)}
.art-index__label{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--haze);padding:15px 26px 15px 0;border-right:1px solid var(--line);margin-right:26px}
.art-col{max-width:74ch;font-size:22px;line-height:1.66}
.art-col--lede>p:first-of-type::first-letter{font-family:var(--display);font-weight:800;font-size:4.1em;
  line-height:.78;float:left;margin:.06em .11em 0 0;color:var(--rust-2)}
.art-block{padding-block:clamp(10px,1.4vw,20px)}
.art-block--wide{max-width:1100px}
.figbleed{margin:clamp(36px,4vw,56px) 0}
.figbleed img{width:100%;height:auto;max-height:70vh;object-fit:cover}
.figbleed figcaption{font-family:var(--mono);font-size:13.5px;line-height:1.6;color:var(--haze-2);
  margin-top:12px;border-top:1px solid var(--line);padding-top:10px;max-width:80ch}
.art-foot{border-top:1px solid var(--line);margin-top:clamp(40px,4vw,64px);padding-top:28px}
@media (max-width:900px){
  .art-col{max-width:none;font-size:20px}
  .art-index__label{border-right:0;width:100%;padding-bottom:4px}
  .art-index a{padding:12px 16px 12px 0;margin-right:14px;font-size:11.5px}
}

.dropcap::first-letter{font-family:var(--display);font-weight:800;font-size:4.1em;line-height:.78;float:left;
  margin:.06em .11em 0 0;color:var(--rust-2)}
@media (max-width:560px){.dropcap::first-letter{font-size:3.3em}}
.article-body h2 span:last-child{display:block}
.keyfacts__head h3{margin:0}

.lead-hero h1,.art-hero h1{text-shadow:0 2px 26px rgba(15,23,29,.55)}
.lead-hero .dek,.art-hero .dek,.lead-hero .kicker,.art-hero .kicker,.art-meta,.lead-hero__meta{text-shadow:0 1px 14px rgba(15,23,29,.75)}

.chart.donut .d-track{fill:none;stroke:rgba(124,138,147,.3);stroke-width:22}
.chart.donut .d-val{fill:none;stroke:var(--rust);stroke-width:22;stroke-linecap:butt}
.chart.donut .d-mid{font-family:var(--display);font-weight:800;font-size:26px;fill:var(--paper)}
.chart .c-grid{stroke:rgba(124,138,147,.18);stroke-width:1}
.sg-list{columns:2;column-gap:36px;padding-left:1.2em;font-size:19px}
@media (max-width:560px){.sg-list{columns:1}}

.chart.donut svg{width:240px;max-width:100%;margin:0 auto}

/* table safety: never overflow a narrow viewport */
.versus,.datatable{table-layout:fixed}
.versus td,.datatable td,.versus th,.datatable th{overflow-wrap:break-word}
@media (max-width:640px){
  .versus,.datatable{font-size:13px}
  .versus td,.datatable td{font-size:15.5px;padding:9px 7px;hyphens:auto}
  .versus th,.datatable th{padding:9px 7px;font-size:11px}
  .versus tbody th{width:24%;font-size:11px}
  .specplate th,.specplate td{padding:12px 12px}
  .specplate td{font-size:18px}
}
/* tighten the gap between the standfirst and section 01 */
.art-block:first-of-type{padding-bottom:0}
.article-body .lead{margin-bottom:.4em}

/* keep the palette .note treatment out of the homepage layer list */
.layer-btn .note{border-left:0;padding:0;margin:0;font-family:var(--prose);font-size:18.5px;line-height:1.45}

/* hero kickers sit on photography — paper/haze reads, rust does not */
.lead-hero .kicker,.art-hero .kicker{color:var(--paper)}
.lead-hero .kicker a,.art-hero .kicker a{color:var(--paper)}
.lead-hero::after{background:linear-gradient(180deg,rgba(30,42,51,.86) 0%,rgba(30,42,51,.62) 26%,rgba(30,42,51,.8) 52%,rgba(30,42,51,.97) 82%,rgba(30,42,51,1) 100%)}
.art-hero::after{background:linear-gradient(180deg,rgba(30,42,51,.84) 0%,rgba(30,42,51,.6) 24%,rgba(30,42,51,.82) 54%,rgba(30,42,51,.97) 84%,rgba(30,42,51,1) 100%)}

@media (max-width:560px){
  .brand__word{font-size:27px;letter-spacing:.13em}
  .brand__standing{font-size:11.5px;letter-spacing:.1em;margin-top:9px}
  .masthead__meta{font-size:11.5px}
}

@media (max-width:640px){
  .rule-head,.roll-head{flex-direction:column;align-items:flex-start;gap:8px}
  .rule-head .eyebrow,.roll-head .eyebrow{text-align:left}
}
@media (max-width:420px){
  .lead-hero h1{font-size:34px}
  .art-hero h1{font-size:32px}
  .page-head h1{font-size:34px}
}


/* 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-roll .sponsor.sponsor img{box-sizing:border-box!important;padding:8px 12px!important}

/* op-centre-plate-4up: operator: centre the logos, ditch the extra background, limit the bottom
   insertions to four per row. The artwork was pinned left by object-position (0% 50%) and the mark
   carried a #0F171D plate against its own tile; the roll's auto-fit at minmax(190px,1fr) was
   fitting six across. */
.sponsor img,.sponsor-box img,.sp-logo img{object-position:center center!important;background:transparent!important}
.sponsor > *:not(.sponsor-blurb) + .sponsor-blurb{margin-left:0}
@media (min-width:900px){
  .sponsor-roll{grid-template-columns:repeat(4,1fr)}
}
/* op-roll-marks-bigger: operator: the bottom rows' logos are small. The roll plate stood 34px
   against the featured tier's 52px in tiles that are just as wide; 52px there too. */
.sponsor-roll .sponsor.sponsor img{height:52px!important;max-height:none!important}

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

/* op-article-width: the article column was capped at 812px (84 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through max-width 74ch (declared in .art-col) 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){
  div.article div.article-body.art-col.art-block{max-width:min(985px, 100%)!important}
}
@media (min-width:1600px){
  div.article div.article-body.art-col.art-block{max-width:min(clamp(985px, 68.403vw, 1182px), 100%)!important}
  div.article div.article-body.art-col.art-block > :is(p:not([class])){font-size:clamp(22px,1.5278vw,26.4px)!important}
}
/* op-article-width:end */

/* op-article-head: the article header followed the text column (812px) and was left behind when the text went to 985px. Operator: "article header page with title + meta info that are super shrinked". Its containers now follow the text again by the text's own factor. */
@media (min-width:1024px){
  div.art-hero__body p.dek{max-width:min(985px, 100%)!important}
}
@media (min-width:1600px){
  div.art-hero__body p.dek{max-width:min(calc(clamp(985px, 68.403vw, 1182px) + 0px), 100%)!important}
}
/* op-article-head:end */

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

/* op-hover-pad */
.reg-row{padding-left:clamp(12px,3.5vw,22px)!important;padding-right: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.card > div.card__media > img,
  div.feature > a.feature__media > img,
  div.gallery > figure > img,
  div.wrap > figure.figbleed > img,
  header.art-hero > div.art-hero__img > img,
  li > a > img,
  section.lead-hero > div.lead-hero__img > img){height:auto}
/* op-img-dims:end */
