/* ============================================================
   Parastatiko — Typography tokens
   Synced from the Claude Design project. The upstream file also
   @imports the Google Fonts CDN; here the faces are self-hosted
   via /fonts/fonts.css (scripts/fetch-fonts.js).
   ============================================================ */

:root {
  /* ---- Families ---------------------------------------------- */
  --font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', 'Cascadia Code', Menlo, monospace;

  /* ---- Font sizes (rem, 16px base) --------------------------- */
  --text-2xs:  0.6875rem;  /* 11px — table micro-labels, badges */
  --text-xs:   0.75rem;    /* 12px — captions, meta */
  --text-sm:   0.8125rem;  /* 13px — secondary body, table cells */
  --text-base: 0.875rem;   /* 14px — default UI body */
  --text-md:   0.9375rem;  /* 15px — emphasized body */
  --text-lg:   1.0625rem;  /* 17px — card titles */
  --text-xl:   1.25rem;    /* 20px — section headings */
  --text-2xl:  1.5rem;     /* 24px — page titles */
  --text-3xl:  1.875rem;   /* 30px — stat figures */
  --text-4xl:  2.375rem;   /* 38px — hero metrics */

  /* ---- Weights ----------------------------------------------- */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  /* ---- Line heights ------------------------------------------ */
  --leading-tight:   1.15;
  --leading-snug:    1.3;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* ---- Letter spacing ---------------------------------------- */
  --tracking-tighter: -0.02em;
  --tracking-tight:   -0.01em;
  --tracking-normal:  0;
  --tracking-wide:    0.02em;
  --tracking-caps:    0.06em;
  --tracking-mono:    0.01em;

  /* ---- Semantic role tokens ---------------------------------- */
  --type-display:  var(--weight-semibold) var(--text-4xl)/var(--leading-tight) var(--font-sans);
  --type-stat:     var(--weight-semibold) var(--text-3xl)/var(--leading-tight) var(--font-mono);
  --type-h1:       var(--weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-sans);
  --type-h2:       var(--weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --type-h3:       var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --type-body:     var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-sans);
  --type-body-sm:  var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --type-label:    var(--weight-medium) var(--text-sm)/var(--leading-snug) var(--font-sans);
  --type-caption:  var(--weight-regular) var(--text-xs)/var(--leading-snug) var(--font-sans);
  --type-mono:     var(--weight-regular) var(--text-sm)/var(--leading-snug) var(--font-mono);

  --eyebrow-size: var(--text-2xs);
  --eyebrow-tracking: var(--tracking-caps);
}
