/* Shared design tokens + nav for the site pages.
   Palette is the validated colourblind-safe set used by the figures, so the
   web pages and the paper figures read as one system. */
:root{
  --bg:#fcfcfb; --panel:#fff; --ink:#16181c; --ink2:#454a52; --muted:#6b7280;
  --line:#e2e2de; --grid:#eeeeea;
  --blue:#0072B2; --orange:#D55E00; --green:#009E73; --amber:#E69F00;
  --pink:#CC79A7; --r:13px;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1115; --panel:#171a20; --ink:#f3f4f6; --ink2:#c9ced6; --muted:#98a0ab;
  --line:#282d36; --grid:#22262e;
  --blue:#4aa8e0; --orange:#f2884c; --green:#3fc39a; --amber:#f0b64a;
  --pink:#e59bc4;}}
:root[data-theme=dark]{
  --bg:#0f1115; --panel:#171a20; --ink:#f3f4f6; --ink2:#c9ced6; --muted:#98a0ab;
  --line:#282d36; --grid:#22262e;
  --blue:#4aa8e0; --orange:#f2884c; --green:#3fc39a; --amber:#f0b64a;
  --pink:#e59bc4;}
:root[data-theme=light]{
  --bg:#fcfcfb; --panel:#fff; --ink:#16181c; --ink2:#454a52; --muted:#6b7280;
  --line:#e2e2de; --grid:#eeeeea;
  --blue:#0072B2; --orange:#D55E00; --green:#009E73; --amber:#E69F00;
  --pink:#CC79A7;}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
a{color:var(--blue)}
p{color:var(--ink2);max-width:76ch}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;
  background:color-mix(in srgb,var(--ink) 8%,transparent);padding:2px 6px;border-radius:5px}

/* ---- nav ---- */
nav.site{border-bottom:1px solid var(--line);background:var(--panel);
  position:sticky;top:0;z-index:20;backdrop-filter:saturate(1.4) blur(6px)}
nav.site .inner{max-width:1120px;margin:0 auto;padding:0 22px;display:flex;
  align-items:center;gap:6px;flex-wrap:wrap;min-height:52px}
nav.site a{color:var(--ink2);text-decoration:none;font-size:14px;padding:7px 11px;
  border-radius:8px;transition:.13s;white-space:nowrap}
nav.site a:hover{background:var(--grid);color:var(--ink)}
nav.site a.on{background:var(--blue);color:#fff;font-weight:600}
nav.site .brand{font-weight:700;color:var(--ink);margin-right:8px;font-size:14.5px}
nav.site .sp{flex:1}
nav.site button{border:1px solid var(--line);background:transparent;color:var(--ink2);
  padding:6px 11px;border-radius:8px;font-size:13px;cursor:pointer;font-family:inherit}

/* ---- common blocks ---- */
h1{font-size:clamp(25px,3.6vw,36px);line-height:1.15;margin:0 0 12px;
  letter-spacing:-.02em;font-weight:700}
h2{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  font-weight:700;margin:34px 0 14px}
h3{font-size:18px;margin:0 0 6px}
.lede{font-size:17.5px;color:var(--ink2);max-width:72ch}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;margin:14px 0}
.row{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end}
.ctl{display:flex;flex-direction:column;gap:5px;min-width:150px}
.ctl label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);font-weight:700}
.ctl output{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--ink2)}
input[type=range]{width:100%;accent-color:var(--blue)}
button.btn{border:1px solid var(--line);background:transparent;color:var(--ink2);
  padding:8px 13px;border-radius:8px;font-size:13.5px;cursor:pointer;
  font-family:inherit;transition:.13s}
button.btn:hover{border-color:var(--blue);color:var(--ink)}
button.btn.on,button.btn.primary{background:var(--blue);border-color:var(--blue);
  color:#fff;font-weight:600}
button.btn.warn{background:var(--orange);border-color:var(--orange);color:#fff;
  font-weight:600}
canvas{display:block;width:100%;border-radius:8px}
.note{border-left:3px solid var(--amber);padding:3px 0 3px 15px;margin:16px 0;
  color:var(--ink2);font-size:15px}
.note b{color:var(--ink)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:860px){.grid2,.grid3{grid-template-columns:1fr}}
.legend{display:flex;flex-wrap:wrap;gap:15px;font-size:12.5px;color:var(--ink2);
  margin:2px 0 8px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:15px;height:3px;border-radius:2px;display:inline-block}
.kpi{display:flex;flex-wrap:wrap;gap:26px}
.kpi div{display:flex;flex-direction:column}
.kpi b{font-size:21px;font-variant-numeric:tabular-nums;font-weight:680;
  letter-spacing:-.01em}
.kpi small{font-size:10.5px;color:var(--muted);text-transform:uppercase;
  letter-spacing:.05em}
.muted{color:var(--muted);font-size:12.5px}
footer{border-top:1px solid var(--line);padding:26px 0 56px;color:var(--muted);
  font-size:13.5px;margin-top:34px}
