/* cyrillic-free Latin cuts, split the way Google ships them. */
@font-face{
  font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("/assets/fonts/inter-latin-ext.cf3eb50f.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("/assets/fonts/inter-latin.f11d729b.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Roboto Mono";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("/assets/fonts/roboto-mono-latin-ext.af08bbde.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Roboto Mono";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("/assets/fonts/roboto-mono-latin.ede7afbe.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{
  color-scheme:light dark;
  /* Paper, tinted warm. The world is the exam desk, not a dashboard. */
  --canvas:#F7F4EE;
  --surface:#FDFBF7;
  --surface-2:#EFE9DF;
  --surface-3:#E4DCCD;
  --ink:#1F1B16;
  --ink-2:#5E554A;
  --rule:rgba(31,27,22,.09);
  --rule-strong:rgba(31,27,22,.18);
  --grid:rgba(31,27,22,.16);
  --accent:#0B62C4;
  --accent-hover:#0A4FA0;
  --on-accent:#FFFFFF;
  --accent-soft:#E4EDF8;
  --growth:#2E6B4A;
  --growth-soft:#E3EFE7;
  --alert:#A3352A;
  --alert-soft:#F5E2DF;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --han:"Noto Serif SC","Songti SC","SimSun",serif;
  --mono:"Roboto Mono",ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,monospace;
  --shadow:0 1px 2px rgba(31,27,22,.05),0 8px 24px rgba(31,27,22,.06);
  --r:12px;
  --r-lg:20px;
}
@media (prefers-color-scheme:dark){
  :root{
    --canvas:#161513;
    --surface:#1C1A18;
    --surface-2:#262421;
    --surface-3:#332F2A;
    --ink:#EFE9DE;
    --ink-2:#AAA398;
    --rule:rgba(239,233,222,.10);
    --rule-strong:rgba(239,233,222,.19);
    --grid:rgba(239,233,222,.18);
    --accent:#7CB6FF;
    --accent-hover:#9CC8FF;
    --on-accent:#0A1420;
    --accent-soft:#1B2836;
    --growth:#7FC9A2;
    --growth-soft:#1B2E23;
    --alert:#F0A099;
    --alert-soft:#2C1A18;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 36px rgba(0,0,0,.45);
  }
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;min-height:100vh;
  background:var(--canvas);color:var(--ink);
  font-family:var(--font);font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;
}
.wrap{width:100%;max-width:1040px;margin:0 auto;padding:0 24px;}
main{flex:1;}
.eyebrow{
  margin:0 0 12px;font-family:var(--mono);font-size:12px;font-weight:400;
  letter-spacing:.02em;color:var(--ink-2);
}
.lede{margin:0;max-width:56ch;font-size:18px;line-height:1.5;color:var(--ink-2);}
a{color:var(--accent);}
.zh{font-family:var(--han);}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}
/* Author display rules would otherwise beat the UA rule for [hidden]. */
[hidden]{display:none!important;}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:16px;top:12px;z-index:20;background:var(--surface);color:var(--ink);
  padding:10px 14px;border-radius:8px;border:1px solid var(--rule-strong);}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px;}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
}

/* ── Masthead ─────────────────────────────────────────────── */
/* Left-aligned with everything else. The level links are the whole masthead. */
.masthead{display:flex;align-items:center;justify-content:flex-start;gap:16px;padding:20px 24px 8px;}
.nav{display:flex;align-items:center;gap:2px;margin-left:-10px;}
.nav a{
  min-height:44px;display:inline-flex;align-items:center;padding:0 10px;
  color:var(--ink-2);text-decoration:none;font-size:15px;font-weight:450;border-radius:8px;
  white-space:nowrap;
}
.nav a:hover{color:var(--ink);background:var(--surface-2);}

/* ── Buttons ──────────────────────────────────────────────── */
/* Radius tracks the height; nothing is a pill. */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 18px;border-radius:10px;
  font-family:var(--font);font-size:15px;font-weight:500;line-height:1;
  text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.btn-primary{background:var(--accent);color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-hover);}
.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--rule-strong);}
.btn-ghost:hover{background:var(--surface-2);}
.btn:active{transform:scale(.99);}
.btn .arrow{display:inline-flex;align-items:center;}

@media (max-width:400px){
  /* One row of chrome at the narrowest phone width. */
  .masthead{padding:12px 12px 4px;gap:6px;}
  .nav{gap:0;margin-left:-6px;}
  .nav a{font-size:14px;padding:0 6px;}
}

/* ── Footer ───────────────────────────────────────────────── */
.site-footer{padding:48px 24px 40px;border-top:1px solid var(--rule);margin-top:64px;}
.site-footer p{margin:0 auto;max-width:1040px;color:var(--ink-2);font-size:14px;line-height:1.6;}
.site-footer a{color:var(--ink-2);text-decoration:none;}
.site-footer a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}
.site-links{display:flex;gap:20px;flex-wrap:wrap;}
