
/* Contrast (WCAG 2.2 AA, verified): ink #e9eef4/bg 15.9 · dim #93a7b9/bg 7.5
   faint #7d91a5/bg 5.7 on panel 5.2 · acc #f2a65a/bg 9.2 · blue #7fb4ff/bg 8.7
   ok #8fd6a9/panel 10.0 · badge #cfdcea/panel2 11.2 — all >= 4.5:1 normal text */
:root{
  --bg:#0e141b; --bg2:#0a0f14; --panel:#151d27; --panel2:#1a2531; --line:#28394a;
  --ink:#e9eef4; --dim:#93a7b9; --faint:#7d91a5;
  --acc:#f2a65a; --blue:#7fb4ff; --ok:#8fd6a9; --warn:#e5c07b;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --wrap:1080px; --col:760px;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
/* in-content links carry a non-color cue (WCAG 1.4.1); brand + nav opt out */
.meta a, .breadcrumb a, .provenance a, .footgrid a, .how a, .card a
{text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:inherit}
::selection{background:#f2a65a44}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:.6rem;z-index:20;background:var(--acc);color:#0a0f14;
  padding:.5rem .9rem;border-radius:8px;font-weight:700;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:
  hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:
  none!important;scroll-behavior:auto!important}}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.2rem}
.col{max-width:var(--col)}
main{display:block}

/* ------------------------------------------------------------ masthead --- */
header.site{background:var(--bg2);border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 #f2a65a22}
.mast{display:flex;align-items:baseline;justify-content:space-between;
  flex-wrap:wrap;gap:.4rem 1rem;padding-top:1.1rem;padding-bottom:.7rem}
.brand{font:800 1.55rem/1 var(--sans);color:var(--ink);letter-spacing:-.02em;
  text-decoration:none!important}
.brand .bolt{color:var(--acc)}
.tagline{color:var(--dim);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
nav.sitebar{display:flex;flex-wrap:wrap;gap:.15rem;border-top:1px solid var(--line);
  margin-top:.15rem}
nav.sitebar a{color:var(--dim);font-size:.84rem;font-weight:600;padding:.55rem .8rem;
  min-height:44px;display:inline-flex;align-items:center;
  border-bottom:2px solid transparent;text-transform:uppercase;letter-spacing:.06em;
  text-decoration:none!important}
nav.sitebar a:hover{color:var(--ink);border-bottom-color:var(--acc)}
nav.sitebar a.rss{margin-left:auto;color:var(--acc)}

/* ---------------------------------------------------------------- hero --- */
.hero{padding:2.4rem 0 .6rem;max-width:var(--col)}
.kicker{color:var(--acc);font-weight:800;font-size:.78rem;letter-spacing:.18em;
  text-transform:uppercase}
.hero h1{font:700 clamp(1.7rem,4.5vw,2.5rem)/1.18 var(--serif);margin:.5rem 0 .8rem;
  letter-spacing:-.01em}
.hero h1 a{color:var(--ink)}
.hero h1 a:hover{color:var(--acc);text-decoration:none}
.lede{font-size:1.25rem;line-height:1.5;color:var(--ink);margin:0 0 1rem}
.hero .meta, .meta{color:var(--dim);font-size:.85rem;line-height:1.55}
.more{font-weight:700;font-size:.9rem;display:inline-block;padding:10px 0;min-height:44px}
.badge{background:var(--panel2);color:#cfdcea;border-radius:4px;
  padding:.05rem .4rem;font-size:.72rem;white-space:nowrap}

/* --------------------------------------------------------------- board --- */
section{padding:1.6rem 0}
.sechead{display:flex;align-items:baseline;justify-content:space-between;
  flex-wrap:wrap;gap:.2rem 1rem;border-bottom:2px solid var(--acc);
  padding-bottom:.45rem;margin-bottom:1.2rem}
.sechead h2{font:800 1.15rem/1.2 var(--sans);margin:0;text-transform:uppercase;
  letter-spacing:.1em}
.sechelp{color:var(--dim);font-size:.84rem;margin:0}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:.9rem}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.15rem}
.tname{color:var(--dim);font-size:.82rem;font-weight:600}
.val{font:800 2rem/1.15 var(--sans);color:var(--ok);letter-spacing:-.01em}
.tile .viz{min-height:58px;margin:.15rem 0 .2rem}
.chip{align-self:flex-start;background:var(--panel2);color:#cfdcea;border-radius:99px;
  padding:.1rem .65rem;font-size:.74rem}
.legend{color:var(--faint);font-size:.8rem;margin:1rem 0 0}

/* ------------------------------------------------------------- signals --- */
ol.signals{list-style:none;margin:0;padding:0}
li.sig{border-bottom:1px solid var(--line);padding:1.3rem 0}
li.sig:first-child{border-top:1px solid var(--line)}
li.sig h3{font:700 1.35rem/1.3 var(--serif);margin:.35rem 0 .4rem}
li.sig h3 a{color:var(--ink)}
li.sig h3 a:hover{color:var(--acc);text-decoration:none}
li.sig .answer{font-size:1.02rem;color:var(--ink);margin:0 0 .5rem}
li.sig .meta{font-size:.82rem}

/* ------------------------------------------------------------------ how --- */
.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.9rem}
.step{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:1rem 1.15rem}
.step b{display:block;color:var(--acc);font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:.35rem}
.step p{margin:0;font-size:.9rem;color:var(--dim)}
.step p strong{color:var(--ink)}

/* ---------------------------------------------------------------- cards ---- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:1rem 1.2rem;margin:1.2rem 0}
.card .label{color:var(--dim);font-weight:700;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:.5rem}
.answerbox{background:var(--panel);border:1px solid var(--line);
  border-left:4px solid var(--ok);border-radius:10px;padding:1rem 1.2rem;
  font:600 1.3rem/1.4 var(--sans);margin:.9rem 0 1.2rem}
figure.vizwrap{margin:0}
figure.vizwrap figcaption{color:var(--faint);font-size:.8rem;margin-top:.4rem;
  line-height:1.45}
.viz{overflow-x:auto}
.viz:focus-visible{outline:2px solid var(--acc);outline-offset:4px;border-radius:6px}
.viz .vega-embed .chart-wrapper{margin:0}
.viz .vega-embed details summary{color:var(--dim)}
code{background:var(--panel2);color:#cfdcea;padding:.1rem .35rem;border-radius:4px;
  font:.85em/1.5 var(--mono);word-break:break-all}
.provenance a{color:var(--blue)}

/* --------------------------------------------------------------- footer --- */
footer.site{border-top:1px solid var(--line);background:var(--bg2);margin-top:2.5rem;
  padding:1.8rem 0 2.2rem}
.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1.5rem}
.footgrid h2{margin:.2rem 0 .6rem;color:var(--dim);font-size:.74rem;
  letter-spacing:.16em;text-transform:uppercase}
.footgrid p{color:var(--dim);font-size:.87rem;margin:.3rem 0}
.footgrid ul{list-style:none;margin:0;padding:0}
.footgrid li{margin:.3rem 0}
.footgrid a{color:var(--dim);font-size:.87rem}
.footgrid a:hover{color:var(--ink)}
.colophon{border-top:1px solid var(--line);margin-top:1.6rem;padding-top:1rem;
  color:var(--faint);font-size:.78rem;display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:.4rem}
.breadcrumb{margin:1.4rem 0 .2rem;font-size:.82rem}
.breadcrumb a{color:var(--faint)}
@media (max-width:720px){.footgrid{grid-template-columns:1fr}
  .val{font-size:1.7rem}.hero .lede{font-size:1.1rem}}
