/* ============================================================
   TYPOGRAPHY — Podlevskikh Design System
   Display: Source Serif 4  (scholarly serif, full Cyrillic)
   Text/UI: Golos Text      (Russian-designed grotesque, bilingual)
   Mono:    IBM Plex Mono   (scores, formulas, data)
   ============================================================ */
:root {
  /* --- Families --- */
  --font-display: 'Source Serif 4', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --font-sans:    'Golos Text', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-mono:    'IBM Plex Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace;

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

  /* --- Type scale (rem, 1rem = 16px) --- */
  --fs-display-xl: 4.5rem;   /* 72 — hero */
  --fs-display-l:  3.5rem;   /* 56 */
  --fs-display-m:  2.75rem;  /* 44 — section title */
  --fs-h1:         2.25rem;  /* 36 */
  --fs-h2:         1.75rem;  /* 28 */
  --fs-h3:         1.375rem; /* 22 */
  --fs-h4:         1.125rem; /* 18 */
  --fs-lead:       1.25rem;  /* 20 — intro paragraphs */
  --fs-body:       1rem;     /* 16 */
  --fs-sm:         0.875rem; /* 14 */
  --fs-xs:         0.75rem;  /* 12 — labels, eyebrows */

  /* --- Line heights --- */
  --lh-tight:   1.08;    /* @kind font */
  --lh-snug:    1.22;    /* @kind font */
  --lh-heading: 1.18;    /* @kind font */
  --lh-body:    1.62;    /* @kind font */
  --lh-relaxed: 1.75;    /* @kind font */

  /* --- Letter spacing --- */
  --ls-tightest: -0.03em;  /* @kind font */
  --ls-tight:    -0.015em; /* @kind font */
  --ls-normal:   0;        /* @kind font */
  --ls-wide:     0.04em;   /* @kind font */
  --ls-eyebrow:  0.16em;   /* @kind font */  /* uppercase eyebrows / labels */

  /* --- Semantic roles --- */
  --text-eyebrow-size:   var(--fs-xs);
  --text-eyebrow-spacing: var(--ls-eyebrow);
}

/* Optional base reset helpers (consumers may use or ignore) */
.ds-display { font-family: var(--font-display); font-weight: var(--w-semibold); line-height: var(--lh-heading); letter-spacing: var(--ls-tight); color: var(--text-strong); }
.ds-eyebrow { font-family: var(--font-sans); font-weight: var(--w-semibold); font-size: var(--fs-xs); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--accent); }
.ds-body    { font-family: var(--font-sans); font-weight: var(--w-regular); font-size: var(--fs-body); line-height: var(--lh-body); color: var(--text-body); }
.ds-mono    { font-family: var(--font-mono); font-weight: var(--w-medium); font-feature-settings: 'tnum' 1; }
