/* ============================================================
   Hoffer Flow Controls — Typography Tokens
   ------------------------------------------------------------
   Display : Archivo Expanded (wide, heavy industrial grotesque)
   UI/Body : Archivo (neutral, engineered sans)
   Spec    : JetBrains Mono (measurements, part #s, data)

   Display & eyebrow labels are set UPPERCASE with positive
   tracking — the engineered, stamped-metal voice of the brand.
   ============================================================ */

:root {
  /* ---- Families ---------------------------------------------- */
  --font-display: 'Archivo Expanded', 'Archivo', system-ui, sans-serif;
  --font-sans:    'Archivo', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* ---- Weights ----------------------------------------------- */
  --fw-regular:   400;  /* @kind font */
  --fw-medium:    500;  /* @kind font */
  --fw-semibold:  600;  /* @kind font */
  --fw-bold:      700;  /* @kind font */
  --fw-extrabold: 800;  /* @kind font */
  --fw-black:     900;  /* @kind font */

  /* ---- Type scale (1.250 major-third-ish, tuned) ------------- */
  --text-2xs:  0.6875rem;  /* 11px — micro labels, mono captions */
  --text-xs:   0.75rem;    /* 12px */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px — body */
  --text-md:   1.125rem;   /* 18px — lead body */
  --text-lg:   1.375rem;   /* 22px */
  --text-xl:   1.75rem;    /* 28px */
  --text-2xl:  2.25rem;    /* 36px */
  --text-3xl:  3rem;       /* 48px */
  --text-4xl:  3.75rem;    /* 60px */
  --text-5xl:  4.75rem;    /* 76px — hero display */
  --text-6xl:  6rem;       /* 96px */

  /* ---- Line heights ------------------------------------------ */
  --leading-tight:   1.04;
  --leading-snug:    1.18;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* ---- Tracking ---------------------------------------------- */
  --tracking-display: -0.02em;  /* tighten big display */
  --tracking-tight:   -0.01em;
  --tracking-normal:  0em;
  --tracking-wide:    0.04em;
  --tracking-label:   0.14em;   /* uppercase eyebrows */
  --tracking-mono:    0.01em;

  /* ---- Semantic roles ---------------------------------------- */
  --role-eyebrow-size:    var(--text-xs);
  --role-eyebrow-weight:  var(--fw-bold);
  --role-eyebrow-spacing: var(--tracking-label);

  --role-display-family:  var(--font-display);
  --role-display-weight:  var(--fw-extrabold);
  --role-display-spacing: var(--tracking-display);

  --role-body-family:     var(--font-sans);
  --role-body-size:       var(--text-base);
  --role-body-leading:    var(--leading-relaxed);

  --role-spec-family:     var(--font-mono);
  --role-spec-size:       var(--text-sm);
  --role-spec-spacing:    var(--tracking-mono);
}
