/* Flywheel — Typography scale
   Headings/page titles: serif (Newsreader). Body/UI: sans (Hanken Grotesk).
   Eyebrow labels, counters, technical readouts: mono (JetBrains Mono), UPPERCASE + tracked. */

:root {
  /* Font families re-exported for convenience (defined in fonts.css) */
  --font-display: var(--font-serif);
  --font-body:    var(--font-sans);
  --font-label:   var(--font-mono);

  /* Type scale (px) */
  --text-xs:   12px;
  --text-sm:   13px;
  --text-base: 15px;
  --text-md:   17px;
  --text-lg:   20px;
  --text-xl:   24px;
  --text-2xl:  30px;
  --text-3xl:  38px;
  --text-4xl:  52px;
  --text-5xl:  68px;

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

  /* Line heights */
  --leading-tight:  1.1;
  --leading-snug:   1.25;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* Tracking */
  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-label:  0.12em;  /* eyebrow / mono labels */

  /* ---- Semantic roles ---- */
  --display-font: var(--font-serif);
  --display-weight: 500;
  --display-tracking: -0.015em;

  --heading-font: var(--font-serif);
  --heading-weight: 500;

  --body-font: var(--font-sans);
  --body-size: var(--text-base);
  --body-leading: var(--leading-normal);

  --label-font: var(--font-mono);
  --label-size: var(--text-xs);
  --label-tracking: var(--tracking-label);
  --label-transform: uppercase; /* @kind other */
}
