/* Vigil — Notes
   Shared stylesheet for /notes and every post under it.
   Font paths are absolute on purpose: posts live one level deep at
   /notes/{slug}, where a relative "fonts/..." would resolve to
   /notes/fonts/... and 404. */

@font-face{font-family:"Vigil";src:url("/fonts/Vigil-wght-.woff2") format("woff2");font-weight:200 900;font-display:block}
@font-face{font-family:"Vigil";src:url("/fonts/Vigil-Italic-wght-.woff2") format("woff2");font-weight:200 900;font-style:italic;font-display:block}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#0A0A0A;scroll-behavior:smooth}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:"Vigil",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:18px;line-height:1.5;color:#000;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
a{color:inherit}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid currentColor;outline-offset:4px}
h1,h2,h3,p,ol,ul,figure,blockquote,dl,dd,dt{margin:0}
ol,ul{list-style:none;padding:0}
.small{font-size:15px;font-weight:500}
.tnum{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:10;background:#fff;color:#000;padding:12px 18px}

/* ---------- shared nav ---------- */
.nav{display:flex;justify-content:space-between;align-items:baseline;font-size:15px;font-weight:500;gap:16px}
.nav nav{display:flex;gap:24px}
.nav a{text-decoration:none}
.nav a:hover{text-decoration:underline}

/* ---------- index hero ---------- */
#top{
  background:#19D69B;min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;justify-content:space-between;gap:48px;
  padding:clamp(20px,4vw,48px) clamp(16px,4vw,56px);
}
#top h1{font-size:clamp(72px,18vw,260px);line-height:.85;letter-spacing:-.04em;font-weight:600}

/* ---------- index list ---------- */
.idx{border-top:1px solid #000}
.idx li{border-bottom:1px solid #000}
.idx a{display:grid;grid-template-columns:minmax(120px,160px) 1fr;gap:8px 32px;align-items:baseline;padding:20px 0;text-decoration:none}
.idx a:hover{text-decoration:underline}
.idx a>span:last-child{display:flex;flex-direction:column;gap:6px}
.idx .t{font-size:clamp(24px,3vw,40px);line-height:1.1;letter-spacing:-.02em;font-weight:500;text-wrap:balance}
.idx .d{font-size:18px;max-width:60ch;text-wrap:pretty}

/* ---------- post hero ---------- */
.post-hero{
  --hero:#19D69B;--hero-ink:#000;
  background:var(--hero);color:var(--hero-ink);
  padding:clamp(20px,4vw,48px) clamp(16px,4vw,56px) clamp(40px,6vw,72px);
  display:flex;flex-direction:column;gap:clamp(40px,7vw,88px);
}
.post-hero .meta{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums}
.post-hero h1{
  font-size:clamp(38px,6.4vw,92px);line-height:.98;letter-spacing:-.03em;font-weight:600;
  text-wrap:balance;max-width:20ch;
}
.post-hero .standfirst{font-size:clamp(19px,2.1vw,26px);line-height:1.32;font-weight:400;max-width:52ch;text-wrap:pretty}
.hero-body{display:flex;flex-direction:column;gap:20px}
.glyph{font-size:clamp(96px,15vw,210px);line-height:.82;letter-spacing:-.04em;font-weight:500;user-select:none}

/* ---------- article body ---------- */
.post{background:#fff;color:#000;padding:clamp(48px,8vw,112px) clamp(16px,4vw,56px)}
.prose{
  max-width:66ch;margin:0 auto;
  display:flex;flex-direction:column;gap:24px;
  font-size:18px;line-height:1.6;text-wrap:pretty;
}
.prose>h2{
  font-size:clamp(27px,3.2vw,40px);line-height:1.1;letter-spacing:-.025em;font-weight:600;
  text-wrap:balance;margin-top:24px;
}
.prose>h3{font-size:clamp(20px,2.2vw,25px);line-height:1.2;letter-spacing:-.018em;font-weight:600;text-wrap:balance;margin-top:12px}
.prose strong{font-weight:700}
.prose a{text-underline-offset:3px}
.lead{font-size:20px;line-height:1.5}
.lead strong{font-weight:700}
blockquote{
  font-size:clamp(24px,3vw,36px);line-height:1.15;letter-spacing:-.02em;font-weight:500;
  text-wrap:balance;padding:8px 0;
}
.prose ul.bullets{display:flex;flex-direction:column;gap:12px}
.prose ul.bullets li{padding-left:26px;position:relative}
.prose ul.bullets li::before{content:"";position:absolute;left:0;top:.62em;width:11px;height:2px;background:currentColor}
.prose ol.steps{display:flex;flex-direction:column;gap:14px;counter-reset:s}
.prose ol.steps li{padding-left:34px;position:relative;counter-increment:s}
.prose ol.steps li::before{
  content:counter(s);position:absolute;left:0;top:0;
  font-weight:600;font-variant-numeric:tabular-nums;font-size:15px;line-height:1.9;opacity:.55;
}

/* specimen line — shows a face rather than describing it */
.spec{
  border-top:1px solid #000;border-bottom:1px solid #000;padding:18px 0;
  display:flex;flex-direction:column;gap:6px;
}
.spec .w{font-size:clamp(34px,6vw,64px);line-height:1;letter-spacing:-.03em;font-weight:500}
.spec .c{font-size:15px;font-weight:500;opacity:.62}

/* definition table */
.deflist{border-top:1.5px solid #000;display:flex;flex-direction:column}
.deflist>div{
  display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:6px 28px;
  padding:16px 0;border-bottom:1px solid rgba(0,0,0,.18);align-items:baseline;
}
.deflist dt{font-weight:600;letter-spacing:-.01em}
.deflist dd{margin:0;font-size:17px;line-height:1.5;text-wrap:pretty}

/* ---------- end module (same on every post) ---------- */
.endnote{
  background:#0A0A0A;color:#fff;
  padding:clamp(48px,7vw,96px) clamp(16px,4vw,56px);
  display:flex;flex-direction:column;gap:clamp(24px,3vw,40px);
}
.endnote .k{font-size:15px;font-weight:500;opacity:.7}
.endnote h2{font-size:clamp(34px,6vw,80px);line-height:.98;letter-spacing:-.03em;font-weight:700;text-wrap:balance;max-width:16ch}
.endnote p.blurb{font-size:18px;line-height:1.5;max-width:58ch;text-wrap:pretty;opacity:.92}
.acts{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px}
.btn{
  display:inline-flex;align-items:center;min-height:56px;padding:0 32px;
  background:#fff;color:#1D3BFF;font-weight:600;font-size:18px;text-decoration:none;border-radius:999px;
}
.btn:hover{background:#1D3BFF;color:#fff}
.link{font-weight:500;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center}

/* ---------- related ---------- */
.related{background:#fff;color:#000;padding:clamp(40px,6vw,80px) clamp(16px,4vw,56px);border-top:1px solid #000}
.related h2{font-size:15px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}

/* ---------- footer ---------- */
footer{background:#0A0A0A;color:#fff;padding:clamp(32px,5vw,56px) clamp(16px,4vw,56px);font-size:15px;line-height:1.5}
footer>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 40px}
footer p{max-width:60ch;text-wrap:pretty}
footer .meta{display:flex;gap:24px;flex-wrap:wrap}
footer a{text-underline-offset:3px}

@media (max-width:560px){
  .idx a{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .deflist>div{grid-template-columns:1fr;gap:4px}
}
