:root{
  --ink:#13233A; --paper:#FFFFFF; --mist:#EEF1F4; --signal:#C8102E; --caution:#F5B700; --slate:#56677C; --line:#D5DCE4;
  --head:"Libre Franklin", "Franklin Gothic Medium", "Helvetica Neue", Arial, sans-serif;
  --body:Georgia, "Times New Roman", Times, serif;
}
@media (prefers-color-scheme:dark){
  :root{--ink:#E8EDF3; --paper:#0F1A28; --mist:#182638; --slate:#9FB0C3; --line:#2A3B52; --signal:#FF5A6E;}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.65}
img{max-width:100%;height:auto}
a{color:var(--signal);text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:3px solid var(--caution);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.tape{height:8px;background:repeating-linear-gradient(-45deg,var(--caution) 0 14px,var(--ink) 14px 28px)}
.masthead{border-bottom:1px solid var(--line)}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;padding-bottom:18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand svg{width:30px;height:34px;flex:none}
.brand span{font-family:var(--head);font-weight:800;font-size:1.7rem;letter-spacing:-.02em;line-height:1}
.nav{display:flex;gap:22px;font-family:var(--head);font-size:1rem}
.nav a{color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--signal)}
.tagline{font-family:var(--head);color:var(--slate);font-size:.95rem;margin:0;padding:10px 0 0}
h1,h2,h3{font-family:var(--head);line-height:1.1;letter-spacing:-.01em}
/* home */
.front{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;padding:36px 0 28px}
.lead h2{font-size:clamp(1.9rem,4.2vw,3rem);font-weight:800;margin:.2em 0 .35em}
.lead h2 a,.side h3 a,.more h3 a{color:var(--ink);text-decoration:none}
.lead h2 a:hover,.side h3 a:hover,.more h3 a:hover{color:var(--signal)}
.lead p.deck{font-size:1.25rem;color:var(--slate);margin:0 0 14px}
.kicker{font-family:var(--head);font-weight:700;color:var(--signal);font-size:.95rem;margin:0}
.meta{font-family:var(--head);color:var(--slate);font-size:.9rem}
.side{border-left:4px solid var(--caution);padding-left:24px;display:flex;flex-direction:column;gap:26px}
.side h3{font-size:1.45rem;font-weight:800;margin:.15em 0 .3em}
.side p{margin:0;font-size:1rem;color:var(--slate)}
.report{background:var(--mist);padding:26px 0;margin:10px 0 36px}
.report .wrap{display:flex;gap:28px;align-items:baseline;flex-wrap:wrap}
.report h2{font-size:1.5rem;margin:0}
.report p{margin:0;flex:1;min-width:260px;font-size:1rem}
/* article */
.article{max-width:720px;margin:0 auto;padding:36px 20px 20px}
.article h1{font-size:clamp(2rem,4.6vw,2.8rem);font-weight:800;margin:.2em 0 .3em}
.article .deck{font-size:1.3rem;color:var(--slate);margin:0 0 18px;line-height:1.45}
.article h2{font-size:1.6rem;margin:1.6em 0 .4em}
.byline{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;margin-bottom:26px}
.facts{border-left:4px solid var(--signal);padding:4px 0 4px 20px;margin:28px 0}
.facts p{margin:.3em 0}
.todo{background:var(--mist);padding:22px 24px;margin:30px 0;border-radius:4px}
.todo h2{margin-top:0}
.todo ol{padding-left:1.2em;margin:0}
.sources{font-size:.95rem;border-top:1px solid var(--line);margin-top:36px;padding-top:12px}
.sources li{margin:.35em 0;word-break:break-word}
/* decoder */
.decoder{margin:30px 0;border:2px solid var(--ink);border-radius:6px;overflow:hidden}
.decoder header{background:var(--ink);color:var(--paper);font-family:var(--head);padding:10px 16px;font-size:1rem}
.phone{padding:22px 16px;background:var(--mist)}
.bubble{background:var(--paper);border-radius:16px;padding:14px 16px;max-width:440px;font-family:var(--head);font-size:1.02rem;line-height:1.5}
.flag{background:none;border:none;border-bottom:3px solid var(--caution);color:inherit;font:inherit;padding:0;cursor:pointer}
.flag[aria-expanded="true"]{background:var(--caution);color:#13233A}
.explain{padding:14px 16px;font-size:1rem;min-height:3.4em;border-top:1px solid var(--line)}
.more{padding:10px 0 40px}
.more h2{font-size:1.4rem}
.more ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.more h3{font-size:1.2rem;margin:.2em 0}
.page{max-width:720px;margin:0 auto;padding:36px 20px}
.page h1{font-size:2.4rem;}
footer{border-top:1px solid var(--line);margin-top:30px;padding:26px 0 40px;font-family:var(--head);font-size:.95rem;color:var(--slate)}
footer nav{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:10px}
footer a{color:var(--slate)}
@media (max-width:820px){.front{grid-template-columns:1fr}.side{border-left:none;border-top:4px solid var(--caution);padding:20px 0 0}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.hero-img{margin:0 0 22px}
.hero-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;background:var(--mist)}
.hero-img figcaption{font-family:var(--head);font-size:.8rem;color:var(--slate);margin-top:6px}
.lead .hero-img{margin-bottom:16px}
