/* ============================================================
   theautomatedfirm — Typography tokens
   One family does everything: tight grotesque for display,
   the same family at regular weight + generous leading for body.
   Numerals-as-headlines get the heaviest weight, set huge.
   ============================================================ */

:root {
  /* Families (substitute: Hanken Grotesk -> Neue Haas Grotesk / Aktiv Grotesk) */
  --font-display: 'Hanken Grotesk', 'Neue Haas Grotesk', 'Aktiv Grotesk',
                  'Helvetica Neue', Arial, sans-serif;
  --font-body:    'Hanken Grotesk', 'Neue Haas Grotesk', 'Helvetica Neue',
                  Arial, sans-serif;
  --font-mono:    ui-monospace, 'SFMono-Regular', 'Menlo', monospace;

  /* Weights */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extra:    800;
  --weight-black:    900;

  /* Display / numeral type scale (px @ 16 base) */
  --type-mega:     clamp(4rem, 11vw, 9rem);     /* 70% hero numbers */
  --type-display:  clamp(2.75rem, 6vw, 5rem);   /* page headlines    */
  --type-h1:       clamp(2.25rem, 4.5vw, 3.5rem);
  --type-h2:       clamp(1.75rem, 3vw, 2.5rem);
  --type-h3:       1.5rem;
  --type-h4:       1.25rem;

  /* Body scale */
  --type-lead:     1.375rem;   /* subheads / lead paragraphs */
  --type-body:     1.0625rem;
  --type-small:    0.9375rem;
  --type-micro:    0.8125rem;
  --type-eyebrow:  0.8125rem;  /* uppercase label */

  /* Line heights */
  --leading-tight:   1.02;   /* display + numerals  */
  --leading-snug:    1.12;   /* headlines           */
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;   /* generous body       */

  /* Letter spacing */
  --tracking-tight:  -0.03em;  /* display             */
  --tracking-snug:   -0.015em; /* headlines           */
  --tracking-normal: 0;
  --tracking-eyebrow: 0.14em;  /* uppercase eyebrows  */

  /* Semantic aliases */
  --text-display-tracking: var(--tracking-tight);
}
