/* The Charger: newsroom stylesheet. Spec: research/design/DESIGN_RESEARCH.md section 5.
   Hairlines, not cards. One accent. Images never wider than their own pixels. */
:root{
  --ink:#121212;--ink2:#4a4a4a;--meta:#6b6b6b;--rule:#d9d6cf;--rule-dark:#121212;
  --paper:#fff;--paper2:#f6f5f2;--red:#b3001b;--red-d:#8c0015;--link:#1a4e8a;--opinion:#7a5c2e;--foot:#111;--foot-ink:#e8e6e1;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mast:"Playfair Display","Source Serif 4",Georgia,serif;--w:1200px;--gut:24px
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--sans);font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
a:hover .hl,a.hl:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* utility strip */
.util{background:var(--paper2);border-bottom:1px solid var(--rule);font:500 12.5px/1 var(--sans);color:var(--ink2)}
.util .wrap{display:flex;justify-content:space-between;align-items:center;height:34px;gap:16px}
.util .l,.util .r{display:flex;gap:18px;align-items:center;white-space:nowrap}
.util a:hover{color:var(--ink);text-decoration:underline}
.util select{font:600 12.5px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink2);padding:2px 18px 2px 2px;cursor:pointer}

/* masthead */
.mast .wrap{display:flex;align-items:flex-end;justify-content:space-between;padding-top:18px;padding-bottom:12px;gap:24px}
.brand{display:flex;align-items:baseline;gap:16px}
.wordmark{font:900 46px/0.95 var(--mast);letter-spacing:-0.012em;color:var(--ink)}
.wordmark .the{font-weight:700;font-style:italic;font-size:.62em;margin-right:.08em;letter-spacing:0}
.tagline{font:600 11.5px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--meta);border-left:1px solid var(--rule);padding-left:14px}
.mast .ed{font:500 13px/1.3 var(--sans);color:var(--ink2);text-align:right}
.mast .wrap.rw{display:block;padding-top:0;padding-bottom:0}
.rule2{border-top:3px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark);height:6px}

/* section nav and region strip */
.nav{border-bottom:1px solid var(--rule)}
.nav ul,.regions ul{list-style:none;margin:0;padding:0;display:flex;gap:4px 22px;overflow-x:auto;scrollbar-width:none}
.nav ul::-webkit-scrollbar,.regions ul::-webkit-scrollbar{display:none}
.nav a{display:block;font:650 15px/1 var(--sans);padding:14px 0 11px;border-bottom:3px solid transparent;white-space:nowrap}
.nav a:hover{border-bottom-color:var(--rule)}
.nav a[aria-current]{border-bottom-color:var(--red)}
.nav .latest a::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin:0 7px 1px 0}
.regions{border-bottom:1px solid var(--rule);font:500 13.5px/1 var(--sans)}
.regions .wrap{display:flex;align-items:center;gap:14px}
.regions .lab{font-weight:700;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--meta);white-space:nowrap}
.regions a{display:block;padding:10px 0;color:var(--ink2);white-space:nowrap}
.regions a:hover,.regions a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.regions a.mine{color:var(--ink);font-weight:700}

/* shared story bits */
.kick{font:700 11.5px/1.2 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--red);margin:0 0 6px}
.kick.op{color:var(--opinion)}
.kick .arch{color:var(--meta);font-weight:600}
.hl{font-family:var(--serif);font-weight:700;letter-spacing:-.005em;margin:0}
.meta{font:500 12.5px/1.4 var(--sans);color:var(--meta)}
.meta b{font-weight:600;color:var(--ink2)}
.stand{font:400 17px/1.45 var(--serif);color:var(--ink2);margin:8px 0 0}
.thumb{display:block;max-width:var(--nw,100%);background:var(--paper2);overflow:hidden;flex:none}
.thumb img{width:100%;height:100%;object-fit:cover}

/* home: three columns split by hairlines */
.top{display:grid;grid-template-columns:290px minmax(0,1fr) 260px;margin-top:24px}
.top>*{padding:0 24px}
.top>*:first-child{padding-left:0;border-right:1px solid var(--rule)}
.top>*:last-child{padding-right:0;border-left:1px solid var(--rule)}
.colhead{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--ink);padding-top:8px;margin:0 0 4px;font:800 13px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.colhead a{font:600 12.5px var(--sans);letter-spacing:0;text-transform:none;color:var(--link)}
.colhead .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);margin-right:8px;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.colhead .dot{animation:none}}

/* latest feed: time first, headline, section; a timeline line with dots */
.feed{list-style:none;margin:10px 0 0;padding:0 0 0 18px;position:relative}
.feed::before{content:"";position:absolute;left:3px;top:6px;bottom:6px;width:1px;background:var(--rule)}
.feed li{position:relative;padding:0 0 14px}
.feed li::before{content:"";position:absolute;left:-18px;top:5px;width:7px;height:7px;border-radius:50%;background:#bdb9b0;border:2px solid var(--paper)}
.feed li:first-child::before{background:var(--red)}
.feed time{display:block;font:600 12px/1.2 var(--sans);color:var(--meta);margin-bottom:3px}
.feed .hl{font-size:15.5px;line-height:1.28;font-weight:600}
.feed .sec{display:block;font:600 11px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--meta);margin-top:4px}
.more{display:inline-block;font:600 13px var(--sans);color:var(--link);margin-top:2px}
.more:hover{text-decoration:underline}

/* lead story */
.lead{padding-bottom:20px;border-bottom:1px solid var(--rule)}
.lead .hl{font-size:34px;line-height:1.1}
.lead.text .hl{font-size:40px}
.lead .grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start}
.lead figure{margin:0}
.lead figcaption{font:400 12px/1.35 var(--sans);color:var(--meta);margin-top:6px;max-width:260px}
.lead .meta{margin-top:10px}
.lead .rel{list-style:none;margin:12px 0 0;padding:0}
.lead .rel li{border-top:1px solid var(--rule);padding:8px 0 0;margin-top:8px}
.lead .rel .hl{font-size:16.5px;line-height:1.3}

/* secondary stories */
.sec2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.story{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--rule)}
.story .hl{font-size:19px;line-height:1.22}
.story .thumb{width:120px;height:90px}
.sec2 .story{flex-direction:column-reverse;justify-content:flex-end;gap:12px}
.sec2 .story .thumb{width:100%;height:auto;aspect-ratio:3/2}
.sec2 .story .hl{font-size:21px}
.story .meta{margin-top:6px}
.list .story{padding:12px 0}
.list .story .hl{font-size:17px}

/* right rail */
.rank{list-style:none;counter-reset:r;margin:10px 0 0;padding:0}
.rank li{counter-increment:r;display:grid;grid-template-columns:34px 1fr;gap:6px;padding:10px 0;border-bottom:1px solid var(--rule)}
.rank li::before{content:counter(r);font:700 26px/1 var(--serif);color:var(--red)}
.rank .hl{font-size:15.5px;line-height:1.28;font-weight:600}
.rail-note{font:400 12px/1.4 var(--sans);color:var(--meta);margin:8px 0 22px}
.mybox{margin-top:26px}
.mybox select{width:100%;font:600 14px var(--sans);padding:8px;border:1px solid var(--ink);border-radius:2px;background:#fff;margin:10px 0}
.mybox ul{list-style:none;margin:0;padding:0}
.mybox li{padding:8px 0;border-bottom:1px solid var(--rule)}
.mybox .hl{font-size:15px;line-height:1.3;font-weight:600}
.empty{font:400 14px/1.45 var(--serif);color:var(--ink2);margin:8px 0}

/* section rows */
.row{margin-top:44px}
.row h2{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--ink);padding-top:10px;margin:0 0 4px;font:800 20px/1 var(--sans);letter-spacing:.02em;text-transform:uppercase}
.row h2 a.all{font:600 13px var(--sans);letter-spacing:0;text-transform:none;color:var(--link)}
.row .cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px}
.row .cols>*{border-right:1px solid var(--rule);padding-right:24px}
.row .cols>*:last-child{border-right:0;padding-right:0}
.row .cell{padding:14px 0}
.row .cell .thumb{width:100%;height:auto;aspect-ratio:4/3;max-width:min(280px,var(--nw,280px));margin-bottom:10px}
.row .cell .hl{font-size:18px;line-height:1.24}
.row.a .cols{grid-template-columns:2fr 1fr 1fr 1fr}
.row.a .cols>:first-child .hl{font-size:24px}

/* section and region pages */
.phead{padding:26px 0 18px;border-bottom:1px solid var(--rule)}
.phead h1{font:900 44px/1 var(--mast);margin:0}
.phead p{font:400 18px/1.5 var(--serif);color:var(--ink2);max-width:760px;margin:12px 0 0}
.crumb{font:500 13px/1.3 var(--sans);color:var(--meta);margin:18px 0 0}
.crumb a{color:var(--ink2)}.crumb a:hover{text-decoration:underline}
.crumb span{margin:0 6px;color:#aaa}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 40px;margin-top:8px}
.pgrid>aside{border-left:1px solid var(--rule);padding-left:24px}
.year{font:800 13px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--meta);margin:26px 0 0;padding-bottom:6px;border-bottom:1px solid var(--ink)}

/* article */
.art{display:grid;grid-template-columns:minmax(0,680px) 300px;gap:0 56px;justify-content:space-between;margin-top:10px}
.art header{padding:14px 0 18px;border-bottom:1px solid var(--rule)}
.art h1.hl{font-size:42px;line-height:1.1;margin-top:4px}
.art .stand{font-size:20px;line-height:1.45;margin-top:12px}
.byline{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:baseline;margin-top:16px;font:500 13.5px/1.4 var(--sans);color:var(--meta)}
.byline .by{color:var(--ink);font-weight:700}
.byline .by a{border-bottom:1px solid var(--rule)}
.byline .by a:hover{border-color:var(--ink)}
.share{display:flex;gap:16px;margin-top:10px;font:600 13px var(--sans)}
.share a,.share button{color:var(--link);background:none;border:0;padding:0;font:inherit;cursor:pointer}
.archive-flag{display:block;background:var(--paper2);border-left:3px solid var(--meta);padding:10px 14px;margin:18px 0 0;font:400 13.5px/1.45 var(--sans);color:var(--ink2)}
.body{font:400 19px/1.62 var(--serif);color:#1d1d1d;padding-top:6px;overflow-wrap:break-word}
.body a{overflow-wrap:anywhere}
.body p{margin:0 0 20px}
.body h2,.body h3,.body h4{font-family:var(--serif);font-weight:700;line-height:1.25;margin:30px 0 12px}
.body h2{font-size:25px}.body h3{font-size:22px}.body h4{font-size:19px}
.body a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.body blockquote{margin:24px 0;padding:2px 0 2px 20px;border-left:3px solid var(--ink);font-style:italic;color:var(--ink2)}
.body ul,.body ol{margin:0 0 20px;padding-left:26px}
.body li{margin:0 0 8px}
.body table{border-collapse:collapse;width:100%;font:400 15px/1.4 var(--sans);margin:0 0 20px}
.body td,.body th{border-bottom:1px solid var(--rule);padding:8px;text-align:left;vertical-align:top}
.body figure{margin:4px 0 20px 28px;float:right;width:min(300px,45%)}
.body figure.inline{float:none;margin:0 0 20px;width:auto}
.body figcaption,.art figcaption{font:400 12.5px/1.4 var(--sans);color:var(--meta);margin-top:6px}
.body .fix{background:#fff7d6;box-shadow:0 0 0 2px #fff7d6}
.endnote{clear:both;border-top:1px solid var(--rule);margin-top:28px;padding-top:16px;font:400 14px/1.5 var(--sans);color:var(--ink2)}
.endnote p{margin:0 0 10px}
.endnote .corr{border-left:3px solid var(--red);padding:2px 0 2px 12px;color:var(--ink)}
.endnote .corr b{color:var(--red)}
.authorbox{display:grid;grid-template-columns:64px 1fr;gap:14px;border-top:2px solid var(--ink);margin-top:28px;padding-top:14px}
.authorbox .av{width:64px;height:64px;background:var(--paper2);display:grid;place-items:center;font:700 22px var(--serif);color:var(--meta)}
.authorbox .av img{width:64px;height:64px;object-fit:cover;filter:grayscale(1)}
.authorbox h2.abn{font:700 16px/1.3 var(--sans);margin:0}
.authorbox p{font:400 14px/1.45 var(--sans);color:var(--ink2);margin:4px 0 0}
.tip{font:400 14px/1.5 var(--sans);color:var(--ink2);margin-top:18px}
.tip a{color:var(--link);text-decoration:underline}
.art aside .colhead{margin-top:14px}

/* static pages */
.page{max-width:720px;padding-bottom:30px}
.page .body{font-size:18px}
.page .body h2{font-size:24px}
.page .body h3{font-size:19px;font-family:var(--sans)}
.page .eff{font:500 13.5px var(--sans);color:var(--meta)}

/* footer */
footer.site{background:var(--foot);color:var(--foot-ink);margin-top:64px;padding:36px 0 22px;font:400 14px/1.5 var(--sans)}
footer.site .fm{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #333;padding-bottom:18px}
footer.site .wordmark{color:#fff;font-size:34px}
footer.site .fm p{margin:0;color:#b8b5ae;max-width:420px;text-align:right}
footer.site .cols{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;padding:22px 0}
footer.site h2.fh{font:700 11.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#9b978f;margin:0 0 12px}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin:0 0 7px}
footer.site a:hover{color:#fff;text-decoration:underline}
footer.site .legal{border-top:1px solid #333;padding-top:16px;font-size:12.5px;color:#9b978f;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}

/* bottom bar (mobile only) */
.bbar{display:none}

/* ---------- tablet ---------- */
@media (max-width:1080px){
  .top{grid-template-columns:minmax(0,1fr) 260px}
  .top>.latest-col{grid-column:1/-1;grid-row:2;border-right:0;padding:0;margin-top:30px}
  .top>.lead-col{padding-left:0}
  .art{grid-template-columns:minmax(0,1fr);}
  .art aside{border-top:2px solid var(--ink);margin-top:30px}
  .row .cols,.row.a .cols{grid-template-columns:1fr 1fr}
  .row .cols>*{border-right:0;padding-right:0}
  footer.site .cols{grid-template-columns:repeat(3,1fr)}
}
/* ---------- mobile ---------- */
@media (max-width:720px){
  :root{--gut:16px}
  body{padding-bottom:58px}
  .util .r .hide-m,.util .l .hide-m{display:none}
  .util .wd{display:none}
  .util .wrap{gap:10px}.util .l,.util .r{gap:12px}
  .mast .wrap{padding-top:12px;padding-bottom:8px}
  .wordmark{font-size:33px}
  .tagline,.mast .ed{display:none}
  .nav a{font-size:14.5px;padding:12px 0 9px}
  .regions .lab{display:none}
  .top{display:flex;flex-direction:column;margin-top:16px}
  .top>.lead-col{order:1}.top>.latest-col{order:2}.top>.rail{order:3}
  .top>*{padding:0!important;border:0!important}
  .top>.latest-col{margin-top:26px}
  .top>.rail{margin-top:30px}
  .lead .hl{font-size:28px}.lead.text .hl{font-size:30px}
  .lead .rel .hl{font-size:16.5px}
  .lead .grid{grid-template-columns:1fr}
  .lead figure{order:-1}
  .sec2{grid-template-columns:1fr}
  .story .hl{font-size:18px}
  .story .thumb{width:96px;height:72px}
  .sec2 .story{flex-direction:row;justify-content:space-between}
  .sec2 .story .thumb{width:96px;height:72px;aspect-ratio:auto}
  .sec2 .story .hl{font-size:18px}
  .row .cols,.row.a .cols{grid-template-columns:1fr}
  .row .cell{display:flex;gap:14px;flex-direction:row-reverse;justify-content:flex-end;border-bottom:1px solid var(--rule)}
  .row .cell .thumb{width:96px;height:72px;aspect-ratio:auto;margin:0}
  .row .cell>div{min-width:0;flex:1}
  .row .cell .hl,.row.a .cols>:first-child .hl{font-size:18px}
  .phead h1{font-size:34px}
  .pgrid{grid-template-columns:1fr}
  .pgrid>aside{border-left:0;padding-left:0;border-top:2px solid var(--ink);margin-top:26px}
  .art h1.hl{font-size:30px}
  .art .stand{font-size:18px}
  .body{font-size:18px}
  .body figure{float:none;width:auto;margin:0 0 20px}
  footer.site .cols{grid-template-columns:1fr 1fr}
  footer.site .fm{display:block}footer.site .fm p{text-align:left;margin-top:10px}
  .bbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;height:56px;background:#fff;border-top:1px solid var(--ink);z-index:20}
  .bbar a{display:grid;place-items:center;font:700 12px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}
  .bbar a[aria-current]{color:var(--red);box-shadow:inset 0 3px 0 var(--red)}
}

/* staff pages (2026-11-11) */
.desk{font:500 14.5px/1.4 var(--sans)!important;color:var(--ink2);margin-top:10px!important}
.desk a,.photo-note a,.facts a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.photo-note{font:400 13.5px/1.5 var(--sans);color:var(--meta);border-top:1px solid var(--rule);padding-top:12px;margin-top:22px;max-width:680px}
.facts{margin:14px 0 0;font:400 14px/1.45 var(--sans)}
.facts dt{font:700 11.5px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--meta);margin-top:14px}
.facts dd{margin:5px 0 0;color:var(--ink)}
.team{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.team .story{display:block;border-bottom:0;border-top:2px solid var(--ink);padding-top:14px}
.team .hl{font-size:26px;line-height:1.15}
.team .stand{font-size:16px}
.archive-flag a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
@media (max-width:720px){.team{grid-template-columns:1fr}.team .story{margin-top:18px}}
.steward{font:500 13.5px/1.4 var(--sans);color:var(--ink2);margin:8px 0 0;padding-left:10px;border-left:2px solid var(--red)}
.steward a{color:var(--ink);font-weight:700;border-bottom:1px solid var(--rule)}

.phead p.kick{font:700 11.5px/1.2 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--red);margin:0 0 8px}
