/* ===========================================================================
   Klozera — Typography tokens
   ---------------------------------------------------------------------------
   Schibsted Grotesk (display) · Hanken Grotesk (UI/body) · JetBrains Mono (data)
   Type scale is a ~1.2 minor-third on display, tighter on UI.

   NOTE: this portfolio overrides the three --font-* families with Geist /
   Geist Mono in src/app.css. Everything below the families is used as-is.
   =========================================================================== */
:root {
  /* --- Families -------------------------------------------------------- */
  --font-display: "Schibsted Grotesk", "Hanken Grotesk", system-ui, sans-serif;
  --font-sans:    "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", 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-extra:    800; /* @kind font */

  /* --- Font sizes (rem, 16px base) ------------------------------------- */
  --text-2xs: 0.6875rem; /* 11 — micro labels, tabular */
  --text-xs:  0.75rem;   /* 12 — captions, meta */
  --text-sm:  0.8125rem; /* 13 — dense UI, table cells */
  --text-md:  0.875rem;  /* 14 — default UI text */
  --text-base:0.9375rem; /* 15 — body */
  --text-lg:  1.0625rem; /* 17 — lead body */
  --text-xl:  1.25rem;   /* 20 — card titles */
  --text-2xl: 1.5rem;    /* 24 — section titles */
  --text-3xl: 1.875rem;  /* 30 — page titles */
  --text-4xl: 2.375rem;  /* 38 — display */
  --text-5xl: 3rem;      /* 48 — hero */
  --text-6xl: 3.75rem;   /* 60 — marketing hero */

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

  /* --- Letter spacing -------------------------------------------------- */
  --tracking-tighter: -0.03em;
  --tracking-tight:   -0.02em;
  --tracking-snug:    -0.01em;
  --tracking-normal:  0;
  --tracking-wide:    0.02em;
  --tracking-label:   0.08em;  /* uppercase eyebrow labels */

  /* --- Semantic type roles --------------------------------------------- */
  --type-eyebrow-size:    var(--text-xs);
  --type-eyebrow-weight:  var(--fw-semibold);
  --type-eyebrow-track:   var(--tracking-label);

  --type-body-size:       var(--text-base);
  --type-body-leading:    var(--leading-relaxed);

  --type-ui-size:         var(--text-md);
  --type-ui-weight:       var(--fw-medium);
}
