/* sharpmeg.com — "Additive": every channel gets one signal colour, the ground stays dark. */

:root{
  --ground:#1b1a17;
  --ground-2:#232019;
  --plate:#12110f;
  --ink:#f2efe9;
  --ink-2:#c8c2b6;
  --ink-dim:#948d81;
  --rule:#35322b;
  --rule-2:#4a463d;
  --accent:#f2efe9;                 /* overridden per page/channel */
  --ch-panel-architecture:#ff2d2d;
  --ch-light-and-colour:#2e6bff;
  --ch-motion:#ff3dd0;
  --ch-manufacturing:#00e05a;
  --ch-reading-the-spec:#ffe24a;
  --ch-measurement-and-tools:#35e0e8;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --sans:'Archivo',system-ui,sans-serif;
  --serif:'Newsreader',Georgia,serif;
  --wrap:1220px;
  --measure:68ch;
}

*,*::before,*::after{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.7;
  font-synthesis-weight:none;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
figure{margin:0}
a{color:inherit}
a:hover{color:var(--accent)}
h1,h2,h3,h4{font-family:var(--sans);font-weight:600;line-height:1.12;letter-spacing:-.02em;margin:0}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
hr{border:0;border-top:1px solid var(--rule);margin:40px 0}

.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:28px}
.measure{max-width:var(--measure);margin-inline:auto;padding-inline:28px}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:12px;z-index:99;background:var(--ink);color:var(--ground);padding:8px 14px}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--rule);background:var(--ground)}
.masthead-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:20px 0 16px}
.brand{display:inline-flex;flex-direction:column;gap:7px;text-decoration:none}
.brand-word{
  font-family:var(--mono);font-weight:600;font-size:30px;letter-spacing:.2em;line-height:1;
  text-shadow:-2px 0 rgba(255,45,45,.85),2px 0 rgba(46,107,255,.85);
}
.brand-word .dot{color:var(--ink-dim);text-shadow:none}
.brand-tag{font-family:var(--mono);font-size:10px;letter-spacing:.19em;text-transform:uppercase;color:var(--ink-dim)}
.reg{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}
.reg-swatches{display:flex;gap:3px}
.reg-swatches i{width:9px;height:15px;display:block}

.nav{display:flex;flex-wrap:wrap;gap:2px 26px;padding:0 0 12px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.nav a{display:inline-flex;align-items:center;gap:8px;padding:7px 0;text-decoration:none;color:var(--ink-2);border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--chan,var(--ink))}
.nav a::before{content:"";width:8px;height:8px;background:var(--chan,var(--ink-dim));flex:none}
.nav a.plain::before{display:none}

/* ---------- lead feature ---------- */
.lead-feature{position:relative;border-bottom:1px solid var(--rule)}
.lead-feature img{width:100%;height:clamp(340px,52vh,560px);object-fit:cover;filter:saturate(1.05)}
.lead-tint{position:absolute;inset:0;background:
  linear-gradient(to top,rgba(18,17,15,.96) 0%,rgba(18,17,15,.55) 45%,rgba(18,17,15,.15) 100%);}
.lead-body{position:absolute;inset:auto 0 0 0;padding-bottom:34px}
.lead-body h1{font-size:clamp(34px,4.6vw,62px);max-width:20ch;margin:12px 0 14px}
.lead-body .lead-dek{font-family:var(--serif);font-size:clamp(17px,1.5vw,21px);color:var(--ink-2);max-width:56ch;margin-bottom:16px}
.lead-body a.more{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}

/* ---------- channel strips ---------- */
.band{padding-block:56px;border-bottom:1px solid var(--rule)}
.band-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.band-head h2{font-size:clamp(22px,2.4vw,30px)}

.strip{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:stretch;
  padding:16px 0 16px 22px;border-top:1px solid var(--rule);position:relative}
.strip::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--chan)}
.strip:last-of-type{border-bottom:1px solid var(--rule)}
.strip-no{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--chan)}
.strip-main{display:flex;flex-direction:column;gap:9px;justify-content:center}
.strip-main h3{font-size:clamp(21px,2.1vw,27px)}
.strip-main h3 a{text-decoration:none}
.strip-main p{color:var(--ink-2);max-width:48ch;font-size:16px;line-height:1.55}
.strip-links{display:flex;flex-wrap:wrap;gap:6px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.strip-links a{text-decoration:none;border-bottom:1px solid var(--rule-2);padding-bottom:2px}

/* ---------- cards ---------- */
.card{display:flex;flex-direction:column;height:100%;text-decoration:none;background:var(--ground-2);
  border:1px solid var(--rule);border-top:3px solid var(--chan)}
.card:hover{background:#2a2720}
.card-img{aspect-ratio:21/9;width:100%;object-fit:cover}
.card-body{display:flex;flex-direction:column;gap:7px;padding:13px 16px 15px;flex:1}
.card h4{font-size:18px;line-height:1.2;min-height:2.4em}
.card p{font-size:15px;color:var(--ink-2);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{margin-top:auto;padding-top:6px}
.meta{font-family:var(--mono);font-size:11px;letter-spacing:.09em;color:var(--ink-dim);text-transform:uppercase}
.meta .chan{color:var(--chan)}

.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:22px}

/* ---------- flagship callout ---------- */
.flagship{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border-top:1px solid var(--rule)}
.flagship img{width:100%;height:100%;min-height:320px;object-fit:cover}
.flagship-body{padding:44px 44px 44px 40px;display:flex;flex-direction:column;justify-content:center;gap:18px;background:var(--plate)}
.flagship-body blockquote{margin:0;font-family:var(--sans);font-weight:600;font-size:clamp(23px,2.5vw,33px);line-height:1.22;letter-spacing:-.02em}
.flagship-body cite{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-style:normal;color:var(--ink-dim)}
.flagship-body cite a{color:var(--chan)}

/* ---------- from the spec sheet ---------- */
.specsheet{border:1px solid var(--rule);background:var(--plate)}
.specsheet-head{display:flex;align-items:center;gap:12px;padding:14px 22px;border-bottom:1px solid var(--rule)}
.specsheet-head .kicker{color:var(--ink)}
.specsheet-grid{display:grid;grid-template-columns:minmax(210px,290px) minmax(0,1fr);gap:0}
.specsheet-figure{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:26px 22px;border-right:1px solid var(--rule)}
.specsheet-figure .stat-num{font-family:var(--sans);font-weight:700;font-size:clamp(40px,5vw,60px);line-height:1;color:var(--chan)}
.specsheet-figure .stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}
.specsheet-body{padding:24px 26px;display:flex;flex-direction:column;gap:12px}
.specsheet-body h3{font-size:22px}
.specsheet-body p{font-size:17px;color:var(--ink-2);max-width:66ch}
.specsheet-body .cond{font-family:var(--mono);font-size:12px;color:var(--ink-dim);border-top:1px solid var(--rule);padding-top:10px}

/* ---------- article ---------- */
.article-head{border-bottom:1px solid var(--rule);padding-block:44px 34px}
.pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;color:var(--ground);background:var(--chan);padding:5px 11px}
.article-head h1{font-size:clamp(32px,4.4vw,56px);max-width:22ch;margin:16px 0 18px}
.article-head .lead{font-size:clamp(19px,1.9vw,23px);color:var(--ink-2);max-width:60ch;font-style:italic}
.article-head .meta{margin-top:18px}

.article-hero{border-bottom:1px solid var(--rule)}
.article-hero img{width:100%;height:clamp(240px,42vh,460px);object-fit:cover}
.figcap{font-family:var(--mono);font-size:12px;color:var(--ink-dim);padding:10px 0 0;line-height:1.5}

.prose{padding-block:44px 10px}
.prose h2{font-size:clamp(22px,2.3vw,29px);margin:44px 0 16px;padding-top:14px;border-top:1px solid var(--rule)}
.prose h2:first-child{margin-top:0}
.prose p{font-size:19px;line-height:1.72}
.prose a{color:var(--chan);text-decoration:none;border-bottom:1px solid var(--rule-2)}
.prose a:hover{border-bottom-color:var(--chan)}

/* full-bleed channel plate — the notes-for-design material, cut into the prose */
.plate{background:var(--plate);border-top:1px solid var(--chan);border-bottom:1px solid var(--rule);margin:44px 0;padding-block:32px 34px}
.plate-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.plate-head .regmark{color:var(--chan);flex:none}
.plate-head h3{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.ladder{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 34px}
.ladder li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:12px 0;border-top:1px solid var(--rule);font-size:16px;line-height:1.55;color:var(--ink-2)}
.ladder li b{color:var(--ink);font-family:var(--sans);font-weight:600;letter-spacing:-.01em}
.ladder .idx{font-family:var(--mono);font-size:11px;color:var(--chan);padding-top:4px}
.plate p{font-size:17px;color:var(--ink-2);max-width:70ch}

/* ---------- styleguide components ---------- */
.lead{font-family:var(--serif)}
.pullquote{margin:34px 0;padding:20px 0;border-top:2px solid var(--chan);border-bottom:2px solid var(--chan)}
.pullquote p{font-family:var(--sans);font-weight:600;font-size:clamp(21px,2.2vw,27px);line-height:1.25;letter-spacing:-.015em;margin:0}
.blockquote{margin:30px 0;padding:0 0 0 22px;border-left:3px solid var(--rule-2)}
.blockquote p{font-style:italic}
.blockquote cite{display:block;font-family:var(--mono);font-size:12px;font-style:normal;color:var(--ink-dim);letter-spacing:.08em}
.callout{margin:30px 0;padding:22px 24px;background:var(--plate);border:1px solid var(--rule);border-left:4px solid var(--chan)}
.callout p{margin:0;font-size:17px}
.note{font-size:16px;color:var(--ink-dim);border-top:1px solid var(--rule);padding-top:12px}

.versus,.datatable{width:100%;border-collapse:collapse;margin:30px 0;font-family:var(--sans);font-size:15px}
.versus th,.versus td,.datatable th,.datatable td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule);vertical-align:top}
.versus thead th,.datatable thead th{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--rule-2)}
.versus tbody th{font-weight:600;color:var(--ink)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:30px 0}
.statblock{background:var(--plate);padding:20px 20px 18px;display:flex;flex-direction:column;gap:7px}
.stat-num{font-family:var(--sans);font-weight:700;font-size:36px;line-height:1;color:var(--chan)}
.stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);line-height:1.5}

.timeline{list-style:none;margin:30px 0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(0,210px) minmax(0,1fr);gap:20px;padding:13px 0;border-top:1px solid var(--rule)}
.t-when{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--chan);line-height:1.5}
.t-what{font-size:16px;color:var(--ink-2)}

.chart{margin:30px 0}
.chart svg{width:100%;height:auto;display:block}
.chart figcaption{font-family:var(--mono);font-size:12px;color:var(--ink-dim);padding-top:10px}

.article-figure{margin:34px 0}
.article-figure img{width:100%}
.article-figure figcaption{font-family:var(--mono);font-size:12px;color:var(--ink-dim);padding-top:10px;line-height:1.5}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:30px 0}
.gallery figure{margin:0}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{font-family:var(--mono);font-size:11px;color:var(--ink-dim);padding-top:7px}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:30px 0}
.profile-card{background:var(--plate);border:1px solid var(--rule);padding:18px;display:flex;flex-direction:column;gap:9px}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover}
.profile-card h3{font-size:19px}
.p-role{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--chan);margin:0}
.profile-card p{font-size:16px;color:var(--ink-2)}
.p-links{font-family:var(--mono);font-size:12px}
.p-attr{font-family:var(--mono);font-size:11px;color:var(--ink-dim)}

.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:30px 0}
.org-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:center;padding:14px;
  background:var(--plate);border:1px solid var(--rule);text-decoration:none}
.org-logo{width:64px;height:40px;object-fit:contain;background:#000}
.org-name{font-family:var(--sans);font-weight:600;font-size:16px;display:block}
.org-host{font-family:var(--mono);font-size:11px;color:var(--ink-dim);display:block}
.entity-ref{font-family:var(--sans);font-size:.95em;color:var(--chan);text-decoration:none;border-bottom:1px solid var(--rule-2)}

.further-grid,.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:0;padding:0;list-style:none}
.further-grid a,.related-links a{display:block;padding:16px 18px;background:var(--plate);border:1px solid var(--rule);
  border-left:3px solid var(--chan);text-decoration:none;font-family:var(--sans);font-weight:600;font-size:17px;line-height:1.25}
.further-grid a:hover,.related-links a:hover{background:var(--ground-2)}
.related-links li{list-style:none}
.rel-meta{display:block;font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:7px}

.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-top:1px solid var(--rule)}
.cat-list li:last-child{border-bottom:1px solid var(--rule)}
.cat-list a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:26px;align-items:baseline;padding:20px 0;text-decoration:none;overflow-wrap:anywhere}
.cat-list a:hover{background:rgba(255,255,255,.02)}
.cat-list h3{font-size:clamp(20px,2.1vw,25px)}
.cat-list p{font-size:16px;color:var(--ink-2);margin:8px 0 0;max-width:62ch}
.cat-list .meta{padding-top:4px}

/* CSS-only expander for long lists */
.expander{border-top:1px solid var(--rule)}
.expander summary{cursor:pointer;list-style:none;font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-dim);padding:14px 0}
.expander summary::-webkit-details-marker{display:none}
.expander summary::after{content:" +"}
.expander[open] summary::after{content:" −"}
.expander summary:hover{color:var(--ink)}

/* ---------- supporters (homepage only) ---------- */
.supporters{border-top:1px solid var(--rule);background:var(--plate);padding-block:46px 40px}
.sup-col{display:flex;flex-direction:column}
.supporters-intro{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:26px}
.supporters-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;align-items:start}
.supporters-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.supporters-head h2{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.supporters-note{font-size:16px;color:var(--ink-dim);max-width:46ch;margin:0}
.sponsor-group{margin-bottom:0}
.sponsor-group > .kicker{display:block;padding-bottom:6px}
.sponsor-list{display:flex;flex-direction:column;border-bottom:1px solid var(--rule)}
.sponsor{display:grid;grid-template-columns:260px minmax(200px,1fr);gap:26px;align-items:center;
  padding:13px 0;border-top:1px solid var(--rule);text-decoration:none}
.sponsor:hover{background:rgba(255,255,255,.025)}
.sponsor-logo{background:#000;border:1px solid var(--rule);height:58px;width:260px;
  display:flex;align-items:center;justify-content:center;padding:9px 14px}
.sponsor img{max-height:40px;max-width:100%;width:auto;height:auto;object-fit:contain}
.sponsor-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.sponsor-name{font-family:var(--sans);font-weight:600;font-size:17px;letter-spacing:-.01em;overflow-wrap:anywhere}
.sponsor.feat .sponsor-name{font-size:17px}
.sponsor-blurb{font-size:16px;color:var(--ink-2);line-height:1.5}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--rule);padding-block:40px 56px;background:var(--ground)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;margin-bottom:30px}
.footer-grid h3{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:12px}
.footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer-grid a{font-family:var(--sans);font-size:15px;text-decoration:none;color:var(--ink-2);display:inline-flex;align-items:center;gap:9px}
.footer-grid a:hover{color:var(--ink)}
.footer-grid a i{width:8px;height:8px;flex:none}
.disclaimer{border-top:1px solid var(--rule);padding-top:22px;font-size:15px;color:var(--ink-dim);max-width:78ch}

/* ---------- responsive ---------- */
@media (max-width:1140px){
  .supporters-body{grid-template-columns:minmax(0,1fr);gap:26px 0}
}
@media (max-width:900px){
  body{font-size:18px}
  .strip{grid-template-columns:minmax(0,1fr);gap:20px}
  .flagship{grid-template-columns:minmax(0,1fr)}
  .flagship img{min-height:220px;height:auto}
  .flagship-body{padding:32px 28px}
  .specsheet-grid{grid-template-columns:minmax(0,1fr)}
  .specsheet-figure{border-right:0;border-bottom:1px solid var(--rule)}
  .cat-list a{grid-template-columns:minmax(0,1fr);gap:8px}
  .sponsor{grid-template-columns:minmax(0,1fr);gap:14px}
  .sponsor-logo{width:100%;max-width:320px}
  .timeline li{grid-template-columns:minmax(0,1fr);gap:4px}
  .org-card{grid-template-columns:56px minmax(0,1fr)}
}
@media (max-width:620px){
  .wrap,.measure{padding-inline:20px}
  .prose p{font-size:18px}
  .ladder li{grid-template-columns:28px minmax(0,1fr);gap:10px}
  .nav{gap:0 18px}
  .brand-word{font-size:24px;letter-spacing:.16em}
  .lead-body h1{font-size:30px}
}
@media (prefers-reduced-motion:no-preference){
  a,.card{transition:color .15s ease,background-color .15s ease,border-color .15s ease}
}

/* ---------- channel register (homepage) ---------- */
.register{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.chan-col{background:var(--ground);display:flex;flex-direction:column;gap:9px;padding:15px 15px 16px;border-top:3px solid var(--chan)}
.chan-no{font-family:var(--mono);font-size:10px;letter-spacing:.15em;color:var(--chan)}
.chan-col h3{font-size:19px;line-height:1.15}
.chan-col h3 a{text-decoration:none}
.chan-col .blurb{font-size:14px;line-height:1.45;color:var(--ink-dim);margin:0}
.chan-more{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.chan-more a{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;line-height:1.45;display:block}
.chan-more a:hover{color:var(--chan)}
.chan-recent{margin-top:auto;padding-top:11px;border-top:1px solid var(--rule);text-decoration:none;display:block}
.chan-recent .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--chan)}
.chan-recent h4{font-family:var(--sans);font-size:15px;line-height:1.25;margin:6px 0 6px}
.chan-recent:hover h4{color:var(--chan)}
@media (max-width:1140px){.register{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.register{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:430px){.register{grid-template-columns:minmax(0,1fr)}}

/* 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-list .sponsor.sponsor img{height:40px!important}

/* op-nav-collapse: this nav printed 158px of stacked links at 390 before any content
   (7 links), and the build shipped no control to close it. A disclosure cannot be
   built from CSS alone — :hover and :focus-within are unreachable on touch until a link has
   already been tapped — so a hidden checkbox and its label were injected immediately before
   the nav, and the nav collapses against the checked state. Exactly the mechanism the builds
   that DO have a burger already use.
   Treatment "centre-rule", 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 (20px measured) the button carries the build's
   gutter (28px) 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. */
.index-toggle{display:none}
@media (max-width:940px){
  .index-toggle{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:fit-content;margin-inline:auto;justify-self:center;border:0;border-bottom:2px solid currentColor;border-radius:0;padding:8px 6px;letter-spacing:.16em;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}

  .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}
  .nav{max-height:0;overflow:hidden;padding-block:0;border-top-width:0;border-bottom-width:0;transition:max-height .28s ease}
  .index-toggle-c:checked ~ .nav{max-height:220vh;padding-block:revert;border-top-width:revert;border-bottom-width:revert}
  .wrap:has(> .index-toggle){display:flow-root}
  .index-toggle:not(:has(~ .nav)){display:none}
}

/* op-footer-compact: the footer printed 6 rows for 6 link(s) in
   1 list(s) — 794px at 390, 10% of the whole page. Design's own
   good case (evbb) has no list at all: its footer links simply flow inline, 479px in total.
   Here the lists flow inline too,
   measured 794 -> 593px (25% shorter) with no new overflow. Both shapes were
   tried and the shorter one kept — two columns helps a wide group set and hurts a narrow one.
   Phone widths only; the desktop footer is untouched. */
@media (max-width:640px){
  footer ul,footer ol{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;column-gap:clamp(8px,1.94vw,28px)!important;row-gap:4px!important}
  footer ul > li,footer ol > li{width:auto!important;flex:0 0 auto;max-width:100%}
}

/* op-article-width: the article column was capped at 656px (87 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .measure) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. Above 1600 the column and the prose type grow together (up to 1.2x). Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  article div.measure.prose{--measure:min(78.624ch, 100%)!important}
}
@media (min-width:1600px){
  article div.measure.prose{--measure:min(clamp(78.624ch, 57.153vw, calc(78.624ch * 1.2)), 100%)!important}
  article div.measure.prose > :is(p:not([class])){font-size:clamp(19px,1.3194vw,22.8px)!important}
}
/* op-article-width:end */

/* op-hover-pad */
.cat-list a{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h3:where(.rt-h4){font-family: var(--sans); font-weight: 600; line-height: 1.12; letter-spacing: -0.02em; margin: 0px;}
.card h3:where(.rt-h4){font-size: 18px; line-height: 1.2; min-height: 2.4em;}
.chan-recent h3:where(.rt-h4){font-family: var(--sans); font-size: 15px; line-height: 1.25; margin: 6px 0px;}
.chan-recent:hover h3:where(.rt-h4){color: var(--chan);}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article > figure.article-figure.wrap > img,
  article > figure.article-hero > img,
  div > a.card > img.card-img,
  main > figure.article-hero > img,
  main > section.flagship > img,
  main > section.lead-feature > img){height:auto}
/* op-img-dims:end */
@media (min-width:920px) and (max-width:1159px){.sponsor-list:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,490px),1fr))!important;gap:var(--sp-gap,14px)!important;justify-content:start!important}.sponsor-list:has(> [data-partner]) > [data-partner]{width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important}}@media (min-width:700px) and (max-width:919px){.sponsor-list:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--sp-gap,16px)!important}.sponsor-list:has(> [data-partner]) > [data-partner]{width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important}}.sponsor-list > [data-partner] .sponsor-logo{background:transparent!important}
