:root{
  --paper:#EDEEEA;
  --paper-2:#F6F6F3;
  --ink:#141619;
  --ink-2:#565C61;
  --red:#BE1E2D;
  --navy:#17384F;
  --rule:#CBCCC4;
  --d:"Archivo",system-ui,sans-serif;
  --t:"Newsreader",Georgia,serif;
  --measure:35rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--t);font-optical-sizing:auto;
  font-size:1.125rem;line-height:1.65;
}
@media(min-width:700px){body{font-size:1.1875rem}}
a{color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.wrap{max-width:44rem;margin:0 auto;padding:0 1.375rem}

/* ── top bar ───────────────────────────────── */
.bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:1.125rem 0;
  border-bottom:3px solid var(--ink);
  font-family:var(--d);
}
.bar-name{font-weight:800;font-size:1.0625rem;letter-spacing:-.02em;text-decoration:none}
.bar-name:hover{color:var(--red)}
.bar-link{
  font-size:.8125rem;font-weight:600;letter-spacing:.02em;
  color:var(--ink-2);text-decoration:none;
}
.bar-link:hover{color:var(--red)}

/* ── homepage ──────────────────────────────── */
.hero{padding:3.25rem 0 2.75rem}
.hero h1{
  font-family:var(--d);font-weight:900;font-stretch:88%;
  font-size:clamp(3.25rem,15vw,6.5rem);
  line-height:.86;letter-spacing:-.04em;margin:0;
}
.hero h1 span{display:block}
.hero p{
  font-size:clamp(1.125rem,4vw,1.375rem);line-height:1.45;
  font-weight:300;color:var(--ink-2);
  max-width:26rem;margin:1.5rem 0 0;text-wrap:pretty;
}
.strip{
  display:flex;gap:.5rem;margin-top:2rem;
}
.strip i{display:block;height:.5rem;flex:1}
.strip i:nth-child(1){background:var(--navy)}
.strip i:nth-child(2){background:var(--navy);opacity:.5}
.strip i:nth-child(3){background:var(--rule)}
.strip i:nth-child(4){background:var(--red);opacity:.5}
.strip i:nth-child(5){background:var(--red)}

.list-head{
  font-family:var(--d);font-size:.75rem;font-weight:700;
  letter-spacing:.12em;color:var(--ink-2);
  padding:0 0 .875rem;border-bottom:1px solid var(--ink);
}
.post-link{
  display:grid;grid-template-columns:2.75rem 1fr;
  gap:0 .75rem;text-decoration:none;
  padding:1.75rem 0;border-bottom:1px solid var(--rule);
}
.post-link:hover .p-title{color:var(--red)}
.p-no{
  font-family:var(--d);font-weight:800;font-size:.875rem;
  color:var(--red);font-variant-numeric:tabular-nums;
  padding-top:.3rem;
}
.p-meta{
  font-family:var(--d);font-size:.75rem;font-weight:600;
  letter-spacing:.05em;color:var(--ink-2);
  display:flex;flex-wrap:wrap;gap:.3rem .8rem;margin-bottom:.5rem;
}
.p-title{
  font-family:var(--d);font-weight:800;font-stretch:94%;
  font-size:clamp(1.625rem,6.5vw,2.25rem);
  line-height:1.02;letter-spacing:-.032em;
  margin:0 0 .625rem;text-wrap:balance;
}
.p-blurb{margin:0;color:var(--ink-2);font-size:1rem;line-height:1.5;text-wrap:pretty}

/* ── article ───────────────────────────────── */
.head{padding:2.5rem 0 0}
.kicker{
  font-family:var(--d);font-size:.75rem;font-weight:700;
  letter-spacing:.12em;color:var(--red);margin-bottom:1.25rem;
}
.head h1{
  font-family:var(--d);font-weight:900;font-stretch:88%;
  font-size:clamp(3rem,14vw,6rem);
  line-height:.87;letter-spacing:-.04em;margin:0;
  text-wrap:balance;
}
.dek{
  font-size:clamp(1.125rem,4vw,1.375rem);line-height:1.45;
  font-weight:300;color:var(--ink-2);
  max-width:28rem;margin:1.375rem 0 1.75rem;text-wrap:pretty;
}
.credits{
  font-family:var(--d);font-size:.75rem;font-weight:600;
  letter-spacing:.05em;color:var(--ink-2);
  display:flex;flex-wrap:wrap;gap:.35rem .9rem;
  padding:1rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}

/* scorecard hero */
.score{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);margin:2.5rem 0 .75rem}
.score-h{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:.9rem 0 .7rem;border-bottom:2px solid var(--ink)}
.score-h span{font-family:var(--d);font-size:.6875rem;font-weight:800;letter-spacing:.11em;color:var(--ink-2)}
.score-r{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--rule)}
.score-r:last-child{border-bottom:none}
.score-r b{font-family:var(--d);font-weight:700;font-size:.9375rem;line-height:1.3;color:var(--navy)}
.score-r i{font-family:var(--d);font-style:normal;font-weight:500;font-size:.9375rem;line-height:1.3;color:var(--ink)}
.score-r i u{text-decoration:none;color:var(--red);font-weight:800}
@media(max-width:560px){
  .score-h{grid-template-columns:1fr}
  .score-h span:last-child{display:none}
  .score-r{grid-template-columns:1fr;gap:.35rem;padding:.95rem 0}
}

/* balance hero */
.bal{margin:2.5rem 0 .75rem;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.bal-row{display:grid;grid-template-columns:1fr 1fr;gap:0}
.pan{padding:1.375rem 0 1.5rem}
.pan+.pan{border-left:1px solid var(--rule);padding-left:1.125rem}
.pan:first-child{padding-right:1.125rem}
.pan-who{font-family:var(--d);font-size:.75rem;font-weight:800;letter-spacing:.09em;margin-bottom:.75rem}
.pan.us .pan-who{color:var(--navy)}
.pan.ca .pan-who{color:var(--red)}
.pan-rate{
  font-family:var(--d);font-weight:900;font-stretch:85%;
  font-size:clamp(3.25rem,17vw,5rem);line-height:.8;
  letter-spacing:-.045em;font-variant-numeric:tabular-nums;display:block;
}
.pan.us .pan-rate{color:var(--navy)}
.pan.ca .pan-rate{color:var(--red)}
.pan-sum{
  font-family:var(--d);font-weight:700;
  font-size:clamp(1.25rem,5.5vw,1.625rem);letter-spacing:-.025em;
  font-variant-numeric:tabular-nums;margin-top:.7rem;
}
.pan-note{font-family:var(--d);font-size:.8125rem;line-height:1.4;color:var(--ink-2);margin-top:.4rem}
.cap{font-family:var(--d);font-size:.8125rem;line-height:1.5;color:var(--ink-2);margin:0 0 3rem;max-width:30rem}
@media(prefers-reduced-motion:no-preference){
  .pan.us{animation:sl .65s cubic-bezier(.22,1,.36,1) both}
  .pan.ca{animation:sr .65s cubic-bezier(.22,1,.36,1) .1s both}
  @keyframes sl{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
  @keyframes sr{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}

section.part{margin-top:3.25rem;padding-top:1.5rem;border-top:3px solid var(--ink)}
.head+section.part{border-top:none;margin-top:2rem}
.part-no{
  font-family:var(--d);font-weight:800;font-size:.75rem;
  letter-spacing:.12em;color:var(--red);margin-bottom:.875rem;
}
.body{max-width:var(--measure)}
.body h2{
  font-family:var(--d);font-weight:800;font-stretch:94%;
  font-size:clamp(1.875rem,7vw,2.5rem);line-height:1.02;
  letter-spacing:-.032em;margin:0 0 1.25rem;text-wrap:balance;
}
.body h3{
  font-family:var(--d);font-weight:700;font-size:1.125rem;
  letter-spacing:-.012em;margin:2.5rem 0 .75rem;
  padding-top:.875rem;border-top:1px solid var(--rule);
}
.body p{margin:0 0 1.2rem;text-wrap:pretty}
.body strong{font-weight:600}
.lede{font-size:1.15em;line-height:1.55}
.body ul{margin:0 0 1.2rem;padding:0;list-style:none}
.body li{position:relative;padding-left:1.25rem;margin-bottom:.75rem}
.body li::before{
  content:"";position:absolute;left:0;top:.68em;
  width:.5rem;height:2px;background:var(--red);
}

table{
  width:100%;border-collapse:collapse;margin:1.75rem 0 2rem;
  font-family:var(--d);font-size:.9375rem;font-variant-numeric:tabular-nums;
}
th{
  text-align:left;font-weight:700;font-size:.6875rem;letter-spacing:.1em;
  color:var(--ink-2);padding:0 0 .625rem;border-bottom:2px solid var(--ink);
}
th:last-child{text-align:right}
td{padding:.7rem 0;border-bottom:1px solid var(--rule);vertical-align:baseline;line-height:1.3}
td:last-child{text-align:right;font-weight:700;white-space:nowrap;padding-left:.75rem}
tr:last-child td{border-bottom:2px solid var(--ink)}

.beat{padding:0 0 .25rem 1.125rem;margin:0 0 1.625rem;border-left:3px solid var(--rule)}
.beat.us{border-left-color:var(--navy)}
.beat.ca{border-left-color:var(--red)}
.beat-d{font-family:var(--d);font-weight:800;font-size:.8125rem;letter-spacing:.05em;margin-bottom:.5rem}
.beat.us .beat-d{color:var(--navy)}
.beat.ca .beat-d{color:var(--red)}
.beat p:last-child{margin-bottom:0}

blockquote{
  margin:2.25rem 0;padding:1.25rem 0;
  border-top:2px solid var(--red);border-bottom:2px solid var(--red);
  font-size:1.45em;line-height:1.28;font-weight:300;letter-spacing:-.022em;
}
blockquote p{margin:0}
blockquote cite{
  display:block;font-family:var(--d);font-size:.75rem;font-weight:700;
  font-style:normal;letter-spacing:.06em;color:var(--ink-2);margin-top:.875rem;
}

/* citations */
.c{
  font-family:var(--d);font-size:.6875em;font-weight:800;
  font-variant-numeric:tabular-nums;color:var(--red);
  text-decoration:none;vertical-align:.35em;
  padding:.12em .12em;border-radius:2px;white-space:nowrap;
}
.c:hover,.c:focus-visible{background:var(--red);color:var(--paper-2)}

#note{
  position:fixed;left:0;right:0;bottom:0;
  background:var(--ink);color:var(--paper-2);
  padding:1rem 1.375rem 1.125rem;
  transform:translateY(102%);transition:transform .26s cubic-bezier(.22,1,.36,1);
  z-index:50;
}
#note.on{transform:none}
@media(prefers-reduced-motion:reduce){#note{transition:none}}
#note>div{max-width:44rem;margin:0 auto;display:flex;gap:.875rem;align-items:flex-start}
#nn{font-family:var(--d);font-weight:900;font-size:1rem;color:#F2848C;flex:0 0 auto;padding-top:.05rem}
#nt{font-family:var(--d);font-size:.875rem;line-height:1.45;flex:1 1 auto}
#nt em{font-style:italic;color:#fff}
#nt a{color:#F2848C}
#nx{
  flex:0 0 auto;background:none;border:1px solid rgba(255,255,255,.35);
  color:var(--paper-2);font-family:var(--d);font-size:.75rem;font-weight:700;
  padding:.35rem .65rem;border-radius:2px;cursor:pointer;
}

.sources{margin-top:3.25rem;padding-top:1.5rem;border-top:3px solid var(--ink)}
.sources h2{font-family:var(--d);font-weight:800;font-size:1.5rem;letter-spacing:-.025em;margin:0 0 1.25rem}
.sources ol{margin:0;padding:0;list-style:none;font-family:var(--d);font-size:.875rem;line-height:1.45}
.sources li{
  position:relative;padding:.55rem 0 .55rem 2.5rem;
  border-bottom:1px solid var(--rule);color:var(--ink-2);
}
.sources .n{position:absolute;left:0;top:.55rem;font-weight:800;color:var(--red);font-variant-numeric:tabular-nums}
.sources li em{font-style:italic;color:var(--ink)}
.sources li a{color:var(--ink);text-decoration-color:var(--rule);text-underline-offset:2px}
.sources li a:hover{color:var(--red)}
.sources li:target{background:var(--paper-2);box-shadow:-.6rem 0 0 var(--paper-2),.6rem 0 0 var(--paper-2)}

.foot{
  margin-top:3rem;padding:1.375rem 0 5.5rem;border-top:1px solid var(--rule);
  font-family:var(--d);font-size:.8125rem;line-height:1.5;color:var(--ink-2);
}
.hidden{display:none}

@media(max-width:520px){
  .score-h{grid-template-columns:1fr;gap:0}
  .score-h span:last-child{display:none}
  .score-r{grid-template-columns:1fr;gap:0;padding:1rem 0}
  .score-r b{display:block;margin-bottom:.55rem}
  .score-r i{display:block;padding-left:.9rem;border-left:2px solid var(--red)}
  .bal-row{grid-template-columns:1fr}
  .pan:first-child{padding-right:0;border-bottom:1px solid var(--rule)}
  .pan+.pan{border-left:none;padding-left:0}
  .post-link{grid-template-columns:1fr}
  .p-no{padding:0 0 .4rem}
}
