/* joshmccoy.dev tokens. Sibling of j0sh.wtf (dark + lime), tuned to be calmer and more technical.
   Lime is a signal: status dots, focus rings, the cursor and the single primary CTA. It is never used for body copy.
   Type scale 1.25 (major third) from 16px. 8px spacing grid. Contrast ratios are WCAG 2.x, computed against each surface. */
@font-face{font-family:"Geist";src:url("fonts/geist-latin-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("fonts/geist-mono-latin-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
/* Metric-matched fallbacks keep CLS near 0 while the webfonts swap in */
@font-face{font-family:"Geist Fallback";src:local("Arial"),local("Helvetica"),local("Liberation Sans");size-adjust:104%;ascent-override:92%;descent-override:22%;line-gap-override:0%}
@font-face{font-family:"Geist Mono Fallback";src:local("Courier New"),local("Liberation Mono");size-adjust:100%;ascent-override:90%;descent-override:24%}

:root{
  color-scheme:dark;
  /* color: surfaces              text  / muted / subtle (ratio) */
  --c-bg:#0a0a0b;        /* page        16.93 / 7.72 / 5.86 */
  --c-surface:#111113;   /* cards       16.13 / 7.36 / 5.59 */
  --c-surface-2:#18181b; /* insets, code 15.15 / 6.91 / 5.25 */
  --c-line:#27272a;      /* hairlines, decorative only (1.33:1) */
  --c-line-strong:#52525b; /* hover borders, diagram strokes (2.56:1 on bg) */
  /* color: text */
  --c-text:#ededef;      /* body + headings */
  --c-muted:#a1a1aa;     /* secondary copy, >=6.9:1 everywhere */
  --c-subtle:#8b8b94;    /* meta, labels, mono captions, >=5.25:1 everywhere */
  /* color: signal */
  --c-signal:#c6ff3d;    /* 16.75:1 on bg; shared DNA with j0sh.wtf */
  --c-signal-ink:#0a0a0b;/* text on signal: 16.75:1 */
  --c-signal-wash:rgba(198,255,61,.08);
  --c-signal-line:rgba(198,255,61,.32);
  --c-focus:var(--c-signal);
  /* mockup-only: marks content Josh must confirm. Remove before launch. */

  /* type */
  --font-sans:"Geist","Geist Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Geist Mono","Geist Mono Fallback",ui-monospace,SFMono-Regular,Menlo,monospace;
  --fs--1:0.8rem;    /* 12.8 mono labels */
  --fs-0:1rem;       /* 16 body */
  --fs-1:1.25rem;    /* 20 lead, h3 */
  --fs-2:1.563rem;   /* 25 */
  --fs-3:1.953rem;   /* 31.25 h2 */
  --fs-4:2.441rem;   /* 39 h1 mobile */
  --fs-5:3.052rem;   /* 48.8 h1 tablet */
  --fs-6:3.815rem;   /* 61 h1 desktop */
  --lh-tight:1.1; --lh-snug:1.3; --lh-body:1.6;
  --tracking-tight:-0.03em; --tracking-label:0.08em;

  /* space: 8px grid */
  --s-0:4px; --s-1:8px; --s-2:16px; --s-3:24px; --s-4:32px; --s-5:40px; --s-6:48px; --s-8:64px; --s-10:80px; --s-12:96px; --s-16:128px;

  /* shape + layout */
  --r-sm:6px; --r-md:12px; --r-lg:16px;
  --tap:44px; --max:1120px; --measure:62ch; --gutter:var(--s-2);
  --dur:160ms; --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:480px){:root{--gutter:var(--s-3)}}
@media (min-width:768px){:root{--gutter:var(--s-5)}}
