/* La Corriente — an independent Latin American current-affairs review
   Ink-navy / signal-red / newsprint. Archivo · Source Serif 4 · IBM Plex Mono. */

:root{
  --ink:#14171F; --ink2:#1B2029; --ink3:#232B3A;
  --paper:#F2EEE6; --paper2:#E9E3D4; --card:#FCFAF4;
  --red:#C42B2B; --red-deep:#9E2222;
  --amber:#C4882B; --violet:#7A6ABF;
  --mut-d:#8B93A4; --txt-d:#D4D8E0; --dim-d:#B9BFCC;
  --mut-l:#6B7180; --txt-l:#242A36;
  --line-d:rgba(242,238,230,.16); --line-d2:rgba(242,238,230,.10);
  --line-l:rgba(20,23,31,.18); --line-l2:rgba(20,23,31,.10);
  --serif:'Source Serif 4',Georgia,serif;
  --sans:'Archivo',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --gut:clamp(18px,4vw,52px);
  --measure:72ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--serif);font-size:19px;line-height:1.7;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red)}
body.light a:hover{color:var(--red)}
.wrap{max-width:1280px;margin:0 auto;padding-inline:var(--gut)}

/* ---------- labels ---------- */
.k{font:600 12.5px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.1em}
.k-red{color:var(--red)}
.chip{display:inline-block;background:var(--red);color:#fff;font:700 12.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;padding:5px 10px}
.chip.amber{background:var(--amber);color:#14171F}
.chip.violet{background:var(--violet);color:#fff}
.meta{font:500 13.5px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--mut-d)}
body.light .meta{color:var(--mut-l)}

/* ---------- site chrome ---------- */
.masthead{background:var(--red);padding:clamp(18px,3vw,28px) 0 20px}
.masthead .wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.wordmark{font:900 clamp(40px,6.5vw,68px)/0.9 var(--sans);letter-spacing:-.03em;text-transform:uppercase;color:#fff}
.wordmark:hover{color:#14171F}
.masthead .kicker{font:500 12.5px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.88);text-align:right}
.mainnav{border-bottom:1px solid var(--line-d)}
.mainnav .wrap{display:flex;gap:clamp(14px,2.6vw,30px);align-items:center;padding-block:13px;flex-wrap:wrap}
.mainnav a{font:600 12.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--paper)}
.mainnav a:hover,.mainnav a[aria-current]{color:var(--red)}
.mainnav .subscribe{margin-left:auto;background:var(--paper);color:var(--ink);padding:6px 12px}
.mainnav .subscribe:hover{background:var(--red);color:#fff}
.topbar{background:var(--ink);border-bottom:1px solid var(--line-d)}
.topbar .wrap{display:flex;gap:clamp(14px,2.4vw,26px);align-items:center;padding-block:14px;flex-wrap:wrap}
.topbar .brand{font:900 21px/1 var(--sans);text-transform:uppercase;letter-spacing:-.01em;color:var(--red)}
.topbar .brand:hover{color:var(--paper)}
.topbar nav{display:flex;gap:clamp(12px,2vw,22px);flex-wrap:wrap}
.topbar nav a{font:600 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--paper)}
.topbar nav a:hover,.topbar nav a[aria-current]{color:var(--red)}
.topbar .subscribe{margin-left:auto;background:var(--paper);color:var(--ink);padding:5px 12px;font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.topbar .subscribe:hover{background:var(--red);color:#fff}
.redrule{height:9px;background:var(--red)}

.sitefoot{background:var(--ink);border-top:1px solid var(--line-d);color:var(--mut-d)}
.sitefoot .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-block:26px;flex-wrap:wrap}
.sitefoot .brand{font:900 19px var(--sans);text-transform:uppercase;color:var(--red)}
.sitefoot .disambig{font:400 13px/1.6 var(--mono)}
.sitefoot nav{display:flex;gap:18px;flex-wrap:wrap}
.sitefoot nav a{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut-d)}
.sitefoot nav a:hover{color:var(--paper)}

/* ---------- homepage bands ---------- */
.band{border-bottom:1px solid var(--line-d)}
.hero-band .wrap{padding-block:34px 40px}
.hero-img{margin:0}
.hero-img img{width:100%;height:clamp(260px,44vw,560px);object-fit:cover;filter:saturate(.92) contrast(1.04)}
.hero-img figcaption{font:500 12.5px/1.6 var(--mono);color:var(--mut-d);padding-top:9px;text-transform:uppercase;letter-spacing:.05em}
.hero-txt{margin-top:22px;max-width:1050px}
.hero-txt .chips{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.hero-txt h1{margin:0;font:800 clamp(34px,5vw,62px)/1 var(--sans);letter-spacing:-.025em;text-wrap:balance}
.hero-txt h1 a:hover{color:var(--red)}
.hero-txt .dek{font:400 clamp(17px,1.6vw,20px)/1.55 var(--serif);color:var(--dim-d);max-width:52em;margin:16px 0 0;text-wrap:pretty}

.leads{display:grid;grid-template-columns:1fr 1fr}
.lead-item{display:flex;gap:20px;padding:30px clamp(18px,3vw,44px);border-top:1px solid var(--line-d);color:var(--paper)}
.lead-item:nth-child(odd){border-right:1px solid var(--line-d)}
.lead-item:nth-child(-n+2){border-top:0}
.lead-item .no{font:800 40px/1 var(--sans);color:var(--red)}
.lead-item h3{margin:8px 0 0;font:700 clamp(20px,2vw,25px)/1.15 var(--sans);letter-spacing:-.01em;text-wrap:pretty}
.lead-item p{margin:9px 0 0;font:400 15.5px/1.55 var(--serif);color:var(--mut-d)}

.mapa{display:grid;grid-template-columns:5fr 7fr}
.mapa-left{padding:40px clamp(18px,3vw,40px) 40px var(--gut);border-right:1px solid var(--line-d)}
.mapa-left h2{margin:12px 0 18px;font:800 clamp(24px,2.6vw,32px)/1.1 var(--sans);letter-spacing:-.02em}
.mapa-left svg{width:100%;height:auto;border:1px solid var(--line-d2)}
.mapa .mk-ring{fill:none;stroke:rgba(196,43,43,.4);stroke-width:2.5}
.mapa .mk-dot{fill:var(--red)}
.mapa .mk{cursor:pointer}
.mapa .mk:hover .mk-dot,.mapa .mk.on .mk-dot{fill:#fff}
.mapa .mk:hover .mk-ring,.mapa .mk.on .mk-ring{stroke:#fff}
.watchlist{display:flex;flex-direction:column;justify-content:center;padding:26px var(--gut) 26px clamp(18px,3vw,40px)}
.watchlist .row{display:grid;grid-template-columns:120px 1fr;gap:6px 18px;align-items:baseline;padding:13px 6px;border-bottom:1px solid var(--line-d2)}
.watchlist .row:last-of-type{border-bottom:0}
.watchlist .row.on{background:rgba(196,43,43,.12)}
.watchlist .cn{font:800 15px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--red)}
.watchlist .cl{font:400 16.5px/1.5 var(--serif);color:var(--txt-d)}

.databand{display:grid;grid-template-columns:1fr 1fr}
.databand>div{padding:40px var(--gut)}
.databand>div:first-child{border-right:1px solid var(--line-d)}
.databand h2{margin:12px 0 6px;font:800 clamp(21px,2.2vw,27px)/1.15 var(--sans);letter-spacing:-.015em}
.teaser-img img{width:100%;height:200px;object-fit:cover}
.teaser-img{margin:0 0 16px}

/* ---------- charts (inline SVG) ---------- */
.chart{margin:22px 0 0}
.chart svg{width:100%;height:auto;display:block}
.chart figcaption{font:400 12.5px/1.6 var(--mono);color:var(--mut-d);margin-top:10px}
body.light .chart figcaption{color:var(--mut-l)}
.chart .bar-track{fill:rgba(242,238,230,.1)}
body.light .chart .bar-track{fill:#E0DACA}
.chart .bar-fill{fill:var(--paper)}
body.light .chart .bar-fill{fill:var(--ink)}
.chart .bar-hot{fill:var(--red)}
.chart .bar-name{font:700 13px var(--sans);text-transform:uppercase;fill:var(--paper)}
body.light .chart .bar-name{fill:var(--ink)}
.chart .bar-val{font:600 13px var(--mono);fill:var(--paper)}
body.light .chart .bar-val{fill:var(--ink)}
.chart .axis{stroke:var(--line-d);stroke-width:1}
body.light .chart .axis{stroke:var(--line-l)}
.chart .line-path{fill:none;stroke:var(--red);stroke-width:3}
.chart .line-dot{fill:var(--red)}
.chart .donut-hole{font:800 26px var(--sans);fill:var(--paper)}
body.light .chart .donut-hole{fill:var(--ink)}

/* ---------- sponsors ---------- */
.quiosco{padding-block:36px}
.quiosco .head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.quiosco .head h2{margin:0;font:800 21px var(--sans);letter-spacing:-.01em}
.quiosco .head .note-line{font:400 13.5px/1.5 var(--mono);color:var(--mut-d)}
.sponsor-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.sponsor{display:flex;flex-direction:column;background:var(--ink2);border:1px solid var(--line-d2);padding:14px 14px 12px;min-height:96px}
.sponsor:hover{border-color:var(--red)}
.sponsor img{width:100%;height:64px;object-fit:contain;background:var(--ink2)}
.sponsor-blurb{font:400 13px/1.5 var(--serif);color:var(--mut-d);margin-top:8px;min-height:1em}
body.light .sponsor{background:var(--ink2);border-color:rgba(20,23,31,.2)}

/* ---------- feed ---------- */
.feed{padding-block:36px 44px}
.feed h2{margin:12px 0 8px;font:800 24px var(--sans);letter-spacing:-.015em}
.feed-item{display:grid;grid-template-columns:110px 1fr auto;gap:8px 20px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line-d2)}
.feed-item .k{padding-top:2px}
.feed-item h3{margin:0;font:700 clamp(17px,1.8vw,21px)/1.25 var(--sans);letter-spacing:-.01em}
.feed-item p{grid-column:2;margin:4px 0 0;font:400 15px/1.5 var(--serif);color:var(--mut-d)}
.feed-more{display:none}
#feedmore{display:none}
#feedmore:checked~.feed-more{display:block}
.feed-toggle{display:inline-block;margin-top:18px;font:600 12.5px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--paper);border:1px solid var(--line-d);padding:9px 16px;cursor:pointer}
.feed-toggle:hover{border-color:var(--red);color:var(--red)}
.feed-toggle::after{content:' ↓'}
#feedmore:checked~.feed-toggle{display:none}

/* ---------- light (article / paper) pages ---------- */
body.light{background:var(--paper);color:var(--txt-l)}
body.light .k:not(.k-red){color:var(--mut-l)}

.post-head{padding:clamp(30px,4.5vw,52px) 0 0}
.post-head .chips{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.post-head h1{margin:0;font:800 clamp(32px,4.6vw,56px)/1 var(--sans);letter-spacing:-.028em;color:var(--ink);max-width:20em;text-wrap:balance}
.post-head .lead{font:400 clamp(18px,1.8vw,22px)/1.55 var(--serif);color:#4A5160;max-width:44em;margin:18px 0 0;text-wrap:pretty}
.post-hero{margin:30px 0 0}
.post-hero img{width:100%;height:clamp(240px,40vw,500px);object-fit:cover}
.post-hero figcaption{font:500 12.5px/1.7 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--mut-l);padding:10px 2px 0}

.post-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(24px,4vw,56px);padding-block:clamp(28px,4vw,48px) 8px}
.post-grid.solo{grid-template-columns:minmax(0,1fr)}
.post-rail{border-top:2px solid var(--ink);padding-top:14px;align-self:start}
.post-rail h4{margin:0 0 10px;font:700 12px var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--red)}
.post-rail ol{list-style:none;margin:0 0 26px;padding:0}
.post-rail ol a{display:block;font:600 14.5px/1.35 var(--sans);padding:7px 0;border-bottom:1px solid var(--line-l2);color:var(--ink)}
.post-rail ol a:hover{color:var(--red)}

.post-body{max-width:var(--measure);font-size:19.5px;line-height:1.75;counter-reset:sec;padding-inline:0}
.post-body>p{margin:0 0 26px}
.post-body h2{counter-increment:sec;margin:44px 0 18px;font:800 clamp(23px,2.4vw,29px)/1.15 var(--sans);letter-spacing:-.018em;color:var(--ink)}
.post-body h2::before{content:counter(sec,decimal-leading-zero);font:800 15px var(--mono);color:var(--red);display:block;margin-bottom:6px;letter-spacing:.1em}
.post-body>.opener::first-letter{float:left;font:800 66px/0.9 var(--sans);color:var(--red);padding:5px 12px 0 0}
.post-body em{font-style:italic}
.post-body a{color:var(--red);border-bottom:1px solid rgba(196,43,43,.35)}
.post-body a:hover{color:var(--red-deep)}
.endmark{width:38px;height:9px;background:var(--red);margin-top:34px}

/* text components */
.lead{font-size:1.08em}
.pullquote{margin:38px 0;border-top:4px solid var(--red);border-bottom:1px solid var(--line-l);padding:22px 4px}
.pullquote p{margin:0;font:700 clamp(22px,2.3vw,27px)/1.35 var(--sans);letter-spacing:-.015em;color:var(--ink)}
.blockquote{margin:34px 0;padding:4px 0 4px 24px;border-left:3px solid var(--ink)}
.blockquote p{margin:0;font-style:italic;color:#3A4150}
.blockquote cite{display:block;margin-top:10px;font:600 13px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut-l);font-style:normal}
.callout{margin:34px 0;background:var(--ink);color:var(--paper);padding:22px 26px}
.callout p{margin:0;font:600 18px/1.55 var(--serif)}
.callout p::before{content:'// ';font:700 14px var(--mono);color:var(--red)}
.note{font:500 14.5px/1.65 var(--mono);color:var(--mut-l);border-top:1px dashed var(--line-l);border-bottom:1px dashed var(--line-l);padding:12px 2px;margin:28px 0}

/* keyfacts */
.keyfacts{margin:40px 0;background:var(--card);border:2px solid var(--ink);padding:24px 28px}
.keyfacts h3{margin:0 0 4px;font:800 17px var(--sans);letter-spacing:-.01em;color:var(--ink)}
.keyfacts h3::before{content:'// ';font:700 13px var(--mono);color:var(--red)}
.keyfacts dl{margin:14px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px}
.keyfacts dt{font:700 14.5px var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--red-deep)}
.keyfacts dd{margin:3px 0 0;font:400 15px/1.55 var(--serif);color:#3A4150}

/* stats */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:34px 0}
.statblock{border-top:3px solid var(--red);padding-top:10px;display:flex;flex-direction:column;gap:5px}
.stat-num{font:800 clamp(26px,2.8vw,34px)/1 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.stat-label{font:500 13px/1.45 var(--mono);color:var(--mut-l)}

/* timeline */
.timeline{list-style:none;margin:34px 0;padding:0;border-left:3px solid var(--ink)}
.timeline li{display:grid;grid-template-columns:minmax(90px,170px) 1fr;gap:6px 18px;padding:12px 0 12px 20px;border-bottom:1px solid var(--line-l2);position:relative}
.timeline li::before{content:'';position:absolute;left:-7px;top:21px;width:11px;height:11px;background:var(--red)}
.timeline .t-when{font:700 14px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--red-deep)}
.timeline .t-what{font:400 16.5px/1.55 var(--serif);color:var(--txt-l)}

/* tables */
.versus,.datatable{width:100%;border-collapse:collapse;margin:34px 0;font-size:16px}
.versus caption,.datatable caption{caption-side:top;text-align:left;font:800 16px var(--sans);color:var(--ink);padding-bottom:12px}
.versus th,.datatable th{font:700 13px var(--mono);text-transform:uppercase;letter-spacing:.07em;text-align:left;background:var(--ink);color:var(--paper);padding:10px 14px}
.versus td,.datatable td{padding:11px 14px;border-bottom:1px solid var(--line-l);font:400 15.5px/1.5 var(--serif);vertical-align:top}
.versus tbody th{background:none;color:var(--red-deep);border-bottom:1px solid var(--line-l);font:700 13.5px var(--mono);text-transform:uppercase}
.datatable tbody tr:nth-child(even) td{background:rgba(20,23,31,.035)}

/* figures / media */
.article-figure{margin:36px 0}
.article-figure img{width:100%;object-fit:cover}
.article-figure figcaption,.map-figure figcaption,.gallery figcaption{font:400 13.5px/1.6 var(--mono);color:var(--mut-l);padding-top:9px}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:36px 0}
.gallery figure{margin:0}
.gallery img{width:100%;height:220px;object-fit:cover}
.map-figure{margin:36px 0;border:2px solid var(--ink);background:var(--card);padding:14px}
.map-slot{min-height:280px;background:var(--ink);display:flex;align-items:center;justify-content:center}
.map-slot::after{content:none;font:600 12px var(--mono);letter-spacing:.1em;color:var(--mut-d);text-transform:uppercase}
.map-figure figcaption{padding:12px 4px 2px}

/* cards */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:34px 0}
.profile-card{background:var(--card);border:1px solid var(--line-l);border-top:3px solid var(--ink);padding:18px 20px}
.profile-card .p-photo{width:74px;height:74px;object-fit:cover;border-radius:50%;margin-bottom:12px}
.profile-card h3{margin:0;font:800 17px var(--sans);letter-spacing:-.01em;color:var(--ink)}
.profile-card .p-role{margin:4px 0 8px;font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--red-deep)}
.profile-card p{margin:0;font:400 14.5px/1.6 var(--serif);color:#3A4150}
.profile-card .p-links{margin-top:10px}
.profile-card .p-links a{font:600 13px var(--mono);color:var(--red);margin-right:12px}
.profile-card .p-attr{margin-top:8px;font:400 12px var(--mono);color:var(--mut-l)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:30px 0}
.org-card{display:grid;grid-template-columns:44px 1fr;gap:4px 12px;align-items:center;border:1px solid var(--line-l);background:var(--card);padding:12px 14px}
.org-card:hover{border-color:var(--red)}
.org-logo{width:44px;height:44px;object-fit:contain;grid-row:span 2;background:var(--ink)}
.org-card.no-logo{grid-template-columns:1fr}
.org-name{font:700 15px var(--sans);color:var(--ink)}
.org-host{font:500 12px var(--mono);color:var(--mut-l);overflow-wrap:anywhere}
.entity-ref{font-weight:600;color:var(--red);border-bottom:1px solid rgba(196,43,43,.35)}

/* related / further */
.related{border-top:2px solid var(--ink);margin-top:44px;padding:20px 0 44px}
.related h2{margin:0 0 4px;font:800 20px var(--sans)}
.related h2::before{content:'// ';font:700 14px var(--mono);color:var(--red)}
.related-links{list-style:none;margin:12px 0 0;padding:0}
.related-links li{border-bottom:1px solid var(--line-l2)}
.related-links a{display:flex;gap:14px;align-items:baseline;padding:13px 2px;font:700 18px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.related-links a::before{content:'→';color:var(--red);font:800 16px var(--mono)}
.related-links a:hover{color:var(--red)}
.related-links .rl-k{margin-left:auto;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--mut-l);white-space:nowrap}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:30px 0}
.further-grid a{border:1px solid var(--line-l);border-top:3px solid var(--red);background:var(--card);padding:16px 18px;font:700 16.5px/1.3 var(--sans);color:var(--ink)}
.further-grid a:hover{border-color:var(--red)}

/* ---------- category pages ---------- */
.cat-head{padding-block:clamp(34px,5vw,56px) 30px;border-bottom:4px solid var(--red)}
.cat-head h1{margin:8px 0 0;font:900 clamp(44px,10vw,108px)/0.92 var(--sans);letter-spacing:-.04em;text-transform:uppercase}
.cat-head .blurb{font:400 clamp(17px,1.7vw,20px)/1.55 var(--serif);color:var(--dim-d);max-width:40em;margin:18px 0 0}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-bottom:1px solid var(--line-d)}
.cat-list a{display:grid;grid-template-columns:64px minmax(0,1fr) 200px;gap:8px 26px;padding:30px 0;align-items:center;color:var(--paper)}
.cat-list .no{font:800 34px/1 var(--sans);color:var(--red)}
.cat-list h2{margin:0;font:800 clamp(22px,2.6vw,32px)/1.08 var(--sans);letter-spacing:-.02em;text-wrap:pretty}
.cat-list .brief{grid-column:2;margin:8px 0 0;font:400 16px/1.55 var(--serif);color:var(--mut-d);max-width:46em}
.cat-list .meta{grid-column:2;margin-top:10px}
.cat-list .thumb{grid-column:3;grid-row:1/4;width:200px;height:130px;object-fit:cover}
.cat-list a:hover h2{color:var(--red)}

/* ---------- utility pages ---------- */
.page-body{max-width:var(--measure);padding-block:clamp(30px,4vw,50px);font-size:19.5px;line-height:1.75}
.page-body h1{font:800 clamp(34px,4.5vw,52px)/1 var(--sans);letter-spacing:-.025em;color:var(--ink);margin:0 0 20px}
.page-body h2{font:800 23px var(--sans);color:var(--ink);margin:36px 0 14px}
.page-body a{color:var(--red);border-bottom:1px solid rgba(196,43,43,.35)}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .mapa,.databand{grid-template-columns:1fr}
  .mapa-left{border-right:0;border-bottom:1px solid var(--line-d);padding-inline:var(--gut)}
  .watchlist{padding-inline:var(--gut)}
  .databand>div:first-child{border-right:0;border-bottom:1px solid var(--line-d)}
  .post-grid{grid-template-columns:1fr}
  .post-rail{border-top:0;border-bottom:1px solid var(--line-l);padding-bottom:18px}
  .post-rail ol{margin-bottom:14px}
  .cat-list a{grid-template-columns:48px minmax(0,1fr)}
  .cat-list .thumb{grid-column:2;grid-row:auto;width:100%;height:170px;margin-top:12px}
}
@media (max-width:760px){
  .leads{grid-template-columns:1fr}
  .lead-item:nth-child(odd){border-right:0}
  .lead-item:nth-child(2){border-top:1px solid var(--line-d)}
  body{font-size:17.5px}
  .post-body{font-size:17.5px}
  .keyfacts{padding:18px 18px}
  .keyfacts dl{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .watchlist .row{grid-template-columns:1fr}
  .feed-item{grid-template-columns:1fr;gap:4px}
  .feed-item p{grid-column:1}
  .feed-item .rt{display:none}
  .timeline li{grid-template-columns:1fr}
  .masthead .kicker{text-align:left}
  .versus th,.datatable th,.versus td,.datatable td{padding:9px 8px}
  .callout{padding:16px 18px}
  .map-figure{padding:10px}
  .related-links a{flex-wrap:wrap}
}

/* sp-roll-normalize: a logo roll keeps object-fit and loses its geometry.
   It used to set width:auto, height:46px, max-width:172px and min-width:30px, which let
   every plate in the roll shrink-wrap its own artwork — evbb measured 62px next to 204px
   in the SAME ROW. The operator's rule is that the dark ground is unified whatever the
   logo's size, so the plate cannot be sized by the logo. Geometry belongs to Design. */
[class~="roll"] .sponsor img,[class*="roll-"] .sponsor img,[class*="-roll"] .sponsor img{object-fit:contain;background:transparent}

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

/* op-row-4up: operator asked for four per row, with the fifth tile dropping to the second row —
   which is what a four-column track does by itself. auto-fit at minmax(180px,1fr) was fitting
   five or six into the row. Desktop only, so the auto-fit still handles narrow screens. */
@media (min-width:900px){
  .sponsor-row{grid-template-columns:repeat(4,1fr)}
}


/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1828px at 390, 25% of the whole page. Two columns bring it to
   895px (51% shorter). Checked before writing: no new overflow, smallest mark still
   138px wide, longest blurb 3 lines, tile heights 137-147px.
   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-row), 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-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:14px!important}
    .sponsor-row > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-row > * *{min-width:0!important;max-width:100%}
    .sponsor-row img,.sponsor-row svg{max-width:100%;height:auto}
  .sponsor-row .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 705px (81 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .post-body) to ~100 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. The layout has no room to grow above 1600, so this width holds there. Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  body:has(.post-rail) div.post-body{--measure:min(90.129ch, 100%)!important}
}
/* op-article-width:end */

/* op-blurb-two-rows: money blurbs ran FIVE rows or more (desk: .sponsor-row 5 rows at 900). Operator: "we should probably limit that to display only 2" — held to two rows in that width band only; the copy stays in the markup. */
@media (min-width:641px){
  .sponsor-row .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;max-height:2lh!important;min-height:0!important;overflow:hidden!important}
}
/* op-blurb-two-rows:end */
/* op-heading-levels */
.lead-item h2:where(.rt-h3){margin: 8px 0px 0px; font: 700 clamp(20px,2vw,25px)/1.15 var(--sans); letter-spacing: -0.01em; text-wrap: pretty;}
.feed-item h2:where(.rt-h3){margin: 0px; font: 700 clamp(17px,1.8vw,21px)/1.25 var(--sans); letter-spacing: -0.01em;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(div > figure.teaser-img > img,
  div.wrap > figure.hero-img > img,
  li > a > img.thumb,
  main.wrap > figure.article-figure.post-hero > img){height:auto}
/* op-img-dims:end */

/* op-locator-map — real-geodata locators (Natural Earth 10m · US Census 500k · OSM); the svg is meet-scaled into Design's own box,
   pins and labels are HTML at a fixed px size placed with container-query units, so they stay legible on phones */
.map-slot.is-mapped{position:relative;container-type:size;overflow:hidden;padding:0!important;background:#161a22!important;background-image:none!important;border:0!important;color:#14171f;height:280px!important}
.map-slot.is-mapped::before,.map-slot.is-mapped::after{content:none!important;display:none!important}
.map-slot.is-mapped>svg.mk{position:absolute;inset:0;width:100%;height:100%;display:block}
.map-slot.is-mapped>span{--s:min(100cqw / var(--vw), 100cqh / var(--vh));position:absolute;left:calc(50% + (var(--x) - var(--vw) / 2) * var(--s));top:calc(50% + (var(--y) - var(--vh) / 2) * var(--s));width:0;height:0;pointer-events:none;white-space:nowrap;font-family:var(--sans);line-height:1;letter-spacing:0;text-transform:none;font-style:normal}
.map-slot.is-mapped>.mk-p i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:#c42b2b;box-shadow:0 0 0 2px #e8e4da}
.map-slot.is-mapped>.mk-p b{position:absolute;font-size:12px;font-weight:700;line-height:15px;color:#14171f;text-shadow:0 0 2px #e8e4da,0 0 2px #e8e4da,0 0 3px #e8e4da,0 0 4px #e8e4da}
.map-slot.is-mapped>.mk-p.r b{left:10px;top:-7.5px}.map-slot.is-mapped>.mk-p.l b{right:10px;top:-7.5px}.map-slot.is-mapped>.mk-p.t b{left:0;transform:translateX(-50%);bottom:8px}.map-slot.is-mapped>.mk-p.b b{left:0;transform:translateX(-50%);top:8px}.map-slot.is-mapped>.mk-p.tr b{left:5px;bottom:4px}.map-slot.is-mapped>.mk-p.br b{left:5px;top:4px}.map-slot.is-mapped>.mk-p.tl b{right:5px;bottom:4px}.map-slot.is-mapped>.mk-p.bl b{right:5px;top:4px}.map-slot.is-mapped>.mk-p.ru b{left:10px;top:-15.5px}.map-slot.is-mapped>.mk-p.rd b{left:10px;top:.5px}.map-slot.is-mapped>.mk-p.lu b{right:10px;top:-15.5px}.map-slot.is-mapped>.mk-p.ld b{right:10px;top:.5px}.map-slot.is-mapped>.mk-p.tt b{left:0;transform:translateX(-50%);bottom:13px}.map-slot.is-mapped>.mk-p.bb b{left:0;transform:translateX(-50%);top:13px}
.map-slot.is-mapped>.mk-a{font-size:11px;font-style:italic;letter-spacing:.04em;color:#14171f;opacity:.62;display:flex;justify-content:center;align-items:center}
.map-slot.is-mapped>.mk-a.mk-ref{font-style:normal;opacity:.7;justify-content:flex-start;padding-left:6px;align-items:center}
.map-slot.is-mapped>.mk-a.mk-sea{color:#b9bfcc;opacity:.85}
.map-slot.is-mapped>.mk-a.mk-line{font-style:normal;font-weight:700;opacity:.9;color:#c42b2b;text-shadow:0 0 2px #e8e4da,0 0 3px #e8e4da}
.map-slot.is-mapped>.mk-r::before{content:'';position:absolute;left:-2.5px;top:-2.5px;width:5px;height:5px;border-radius:50%;background:#14171f;opacity:.55}
/* op-locator-map:end */
