/* article.css — the essay surface, on the SAME system as the home.
   Newsreader (serif) + IBM Plex Mono (semi-mono), one small confident scale,
   semantic colour roles, hairline rules, strictly monochrome. No accent, no
   drop caps, no motion. Article scale mirrors Paradigm's own: body 18px
   (16 mobile), headline 25px, sub-headline 21px. Default = DARK;
   [data-theme="light"] flips to white paper. Charts read --fig-* so they
   invert with the theme. */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* ---------- DARK (default) ---------- */
:root{
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --display:var(--serif); --sans:var(--serif);

  --bg:#0b0c0f; --paper:#111318;
  --ink:#e9ecf1; --body:#c3c9d4; --mut:#8a919e; --faint:#5a616e;
  --line:rgba(255,255,255,.10); --line2:rgba(255,255,255,.06);
  --rule:rgba(255,255,255,.22); --ul:rgba(255,255,255,.22);
  --state-hover:rgba(255,255,255,.045);
  --focus:rgba(255,255,255,.4);
  --scroll:rgba(255,255,255,.3); --scroll-hover:rgba(255,255,255,.45);

  /* figure / chart palette — monochrome, light marks on a dark panel */
  --fig-bg:#0e1015; --fig-border:rgba(255,255,255,.10); --fig-ink:#e4e8ee;
  --fig-mut:#8a919e; --fig-emph:#ffffff; --fig-faint:rgba(255,255,255,.16);
  --fig-axis:#6b7280; --fig-accent:#ffffff;
}
/* ---------- LIGHT ---------- */
:root[data-theme="light"]{
  --bg:#ffffff; --paper:#f6f6f6;
  --ink:#161616; --body:#242424; --mut:#5f5f5f; --faint:#8a8a8a;
  --line:rgba(0,0,0,.09); --line2:rgba(0,0,0,.05);
  --rule:rgba(0,0,0,.28); --ul:rgba(0,0,0,.28);
  --state-hover:rgba(0,0,0,.04);
  --focus:rgba(0,0,0,.4);
  --scroll:rgba(0,0,0,.25); --scroll-hover:rgba(0,0,0,.4);

  --fig-bg:#ffffff; --fig-border:rgba(0,0,0,.09); --fig-ink:#1f1f1f;
  --fig-mut:#5f5f5f; --fig-emph:#000000; --fig-faint:rgba(0,0,0,.14);
  --fig-axis:#8a8a8a; --fig-accent:#000000;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--body);font-family:var(--serif);font-size:18px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-weight:400;
  transition:background .2s ease,color .2s ease}
::selection{background:var(--ink);color:var(--bg)}
:focus-visible{outline:1px solid var(--focus);outline-offset:3px;border-radius:2px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}

.wrap{max-width:680px;margin:0 auto;padding:0 30px}
a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ul);transition:border-color .15s,color .15s}
a:hover{border-bottom-color:var(--ink);color:var(--ink)}
sup a{font-family:var(--mono);font-size:.62em;border:0;padding:0 1px;color:var(--mut);font-weight:400}
sup a:hover{color:var(--ink)}
.mono{font-family:var(--mono)}

/* ---- nav + theme toggle (matches the home bar) ---- */
nav{border-bottom:1px solid var(--line)}
.navrow{max-width:680px;margin:0 auto;padding:22px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.back{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.05em;text-transform:lowercase;color:var(--ink);border:0}
.back:hover{color:var(--mut);border:0}
.navr{display:flex;align-items:center;gap:15px}
.brand{font-family:var(--mono);font-size:11px;letter-spacing:.02em;text-transform:lowercase;color:var(--faint);font-style:normal}
.tt{font-family:var(--mono);font-size:11px;line-height:1;color:var(--faint);background:transparent;
  border:0;padding:0;cursor:pointer;transition:color .15s}
.tt::before{content:"["}.tt::after{content:"]"}
.tt:hover{color:var(--ink)}

/* ---- title block (left, editorial) ---- */
header.post{padding:68px 0 6px;text-align:left}
.kicker{font-family:var(--mono);font-style:normal;font-weight:400;font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint)}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.2vw,42px);line-height:1.15;
  letter-spacing:-.02em;color:var(--ink);margin:16px 0 0}
.sub{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(17px,2vw,21px);
  line-height:1.45;color:var(--mut);margin:14px 0 0;max-width:40em}
.byline{font-family:var(--mono);font-size:11px;letter-spacing:.02em;text-transform:lowercase;color:var(--faint);
  margin:26px 0 0;padding-top:16px;border-top:1px solid var(--line);display:block}
.byline a{color:var(--mut);border:0}
.byline a:hover{color:var(--ink)}

/* ---- abstract ---- */
.abstract{background:transparent;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  border-radius:0;padding:22px 0;margin:34px 0 6px;max-width:none;font-size:16px;line-height:1.6;color:var(--mut)}
.abstract b{display:block;text-align:left;font-family:var(--mono);font-weight:400;font-size:9px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}

/* ---- body / structure ---- */
article{padding:14px 0 10px}
article p{margin:0 0 18px;text-align:left;hyphens:none}
.lede{font-family:var(--serif);font-size:20px;line-height:1.5;color:var(--ink);font-weight:400}
h2{font-family:var(--serif);font-weight:500;font-size:25px;line-height:1.25;letter-spacing:-.015em;
  color:var(--ink);margin:52px 0 12px}
h2 .n{font-family:var(--mono);font-weight:400;font-size:.52em;color:var(--faint);margin-right:12px;
  letter-spacing:.06em;vertical-align:.16em}
h3{font-family:var(--serif);font-weight:500;font-style:normal;font-size:21px;letter-spacing:-.01em;
  text-transform:none;color:var(--ink);margin:32px 0 8px}
em{font-style:italic;background:none;padding:0}
strong{font-weight:500;color:var(--ink)}
hr{border:0;border-top:1px solid var(--line);margin:34px 0}

/* ---- equation ---- */
.eq{font-family:var(--mono);background:transparent;border:0;border-radius:0;padding:12px 0;margin:6px 0 20px;
  font-size:14px;overflow-x:auto;text-align:center;color:var(--ink)}

/* ---- stat callouts (hairline grid) ---- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:14px 0 28px;
  background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}
@media(max-width:560px){.stats{grid-template-columns:1fr}}
.stat{background:var(--bg);padding:18px}
.stat b{font-family:var(--serif);font-weight:400;font-size:25px;color:var(--ink);display:block;
  letter-spacing:-.02em;line-height:1.1}
.stat span{font-family:var(--mono);font-size:9px;color:var(--faint);display:block;margin-top:9px;
  line-height:1.5;text-transform:uppercase;letter-spacing:.1em}

/* ---- tables ---- */
table{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:15px;margin:14px 0 6px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
th,td{text-align:right;padding:9px 10px;border:0}
th:first-child,td:first-child{text-align:left}
thead th{font-family:var(--mono);font-weight:400;font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);border-bottom:1px solid var(--line)}
td.mono,td .mono{font-family:var(--mono);font-size:13px}
td .warn{color:var(--mut);font-family:var(--mono);font-style:normal;font-size:12px}
.cap{font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.01em;color:var(--faint);
  margin:10px 0 28px;line-height:1.65}

/* ---- figures / charts ---- */
figure{margin:18px 0 8px;text-align:center}
.chart{width:100%;height:auto;border:1px solid var(--fig-border);border-radius:4px;background:var(--fig-bg);
  display:block;padding:8px}

/* ---- pull quote ---- */
.pull{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(19px,2.4vw,23px);
  line-height:1.45;color:var(--ink);letter-spacing:0;border:0;padding:0;margin:34px 0;text-align:left;max-width:34em}

/* ---- note ---- */
.note{font-family:var(--serif);font-size:15px;font-style:italic;color:var(--mut);background:transparent;
  border:0;border-left:1px solid var(--line);border-radius:0;padding:2px 0 2px 18px;line-height:1.6}

/* ---- references ---- */
.refs{border-top:1px solid var(--line);margin-top:34px;padding-top:22px;font-family:var(--mono);
  font-size:11px;color:var(--mut);line-height:1.6}
.refs h4{font-family:var(--mono);font-weight:400;font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  margin:0 0 12px;color:var(--faint)}
.refs ol{margin:0;padding-left:18px}
.refs li{margin:8px 0;line-height:1.6}
.refs a{border-bottom:1px solid var(--line)}
.flag{font-style:normal;font-weight:500;color:var(--ink)}

footer{border-top:1px solid var(--line);margin-top:44px;padding:20px 0 60px;font-family:var(--mono);
  font-size:9px;letter-spacing:.02em;text-transform:lowercase;color:var(--faint)}
footer a{color:var(--faint);border:0}
footer a:hover{color:var(--ink)}

@media(max-width:620px){
  header.post{padding:46px 0 6px}
  body{font-size:16px}
  .wrap,.navrow{padding-left:20px;padding-right:20px}
}
