/* ═══════════════════════════════════════════════════════════
   TYPOGRAPHY — Bureau Arvö
   Serif for thought, sans for instruction, mono for trace.
   ═══════════════════════════════════════════════════════════ */

:root {
  /* ── Families ───────────────────────────────────────────── */
  --font-serif: 'Cormorant Garamond', 'Times New Roman', serif;  /* ritual/sign - Latin hero, wordmark */
  --font-ruse:  'Literata', 'Georgia', serif;                     /* bureau voice - Russian intellectual headings */
  --font-sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:  'DM Mono', 'SF Mono', ui-monospace, monospace;

  /* Aliases by role - 2026 hierarchy */
  --font-display:   var(--font-serif); /* Cormorant - Latin display: Ratio. Lumen. Arvo. + wordmark */
  --font-heading:   var(--font-ruse);  /* Literata - Russian page & section titles */
  --font-body:      var(--font-sans);  /* Inter - paragraphs, UI, dense Russian body */
  --font-label:     var(--font-mono);  /* DM Mono - dossier codes, metadata, traces */

  /* ── Fluid type scale ───────────────────────────────────── */
  --fs-display: clamp(3.2rem, 8vw, 7rem);      /* @kind font */ /* Ratio. Lumen. Arvö. */
  --fs-h1:      clamp(2rem, 4vw, 3.8rem);      /* @kind font */ /* page titles */
  --fs-h2:      clamp(1.5rem, 2.6vw, 2.1rem);  /* @kind font */ /* section / card titles */
  --fs-h3:      clamp(1.15rem, 1.6vw, 1.4rem); /* @kind font */ /* sub-headings */
  --fs-lead:    clamp(1.05rem, 1.4vw, 1.25rem);/* @kind font */ /* lead paragraph */
  --fs-body:    clamp(0.95rem, 1.1vw, 1.05rem);/* @kind font */ /* body */
  --fs-small:   clamp(0.85rem, 1vw, 0.92rem);  /* @kind font */ /* captions */
  --fs-micro:   clamp(0.68rem, 0.8vw, 0.76rem);/* @kind font */ /* mono labels, codes */

  /* ── Weights ────────────────────────────────────────────── */
  --fw-light:   300; /* @kind font */
  --fw-regular: 400; /* @kind font */
  --fw-medium:  500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:    700; /* @kind font */

  /* ── Line heights ───────────────────────────────────────── */
  --lh-tight:  1.05; /* @kind font */ /* display */
  --lh-snug:   1.2;  /* @kind font */ /* headings */
  --lh-normal: 1.5;  /* @kind font */ /* captions */
  --lh-body:   1.7;  /* @kind font */ /* paragraphs */

  /* ── Letter-spacing ─────────────────────────────────────── */
  --ls-display: -0.03em; /* @kind font */
  --ls-heading: -0.015em;/* @kind font */
  --ls-body:    0;       /* @kind font */
  --ls-label:   0.12em;  /* @kind font */ /* mono labels, uppercase nav */
  --ls-code:    0.03em;  /* @kind font */ /* mono code / formulas */
  --ls-wide:    0.22em;  /* @kind font */ /* small caps section markers */
}

/* ── Specimen utility classes (used by cards & docs) ──────── */
.arvo-display {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  color: var(--text-primary);
}
.arvo-display .accent { font-style: italic; color: var(--role-decision); }

.arvo-h1 {
  font-family: var(--font-heading);
  font-weight: var(--fw-regular);
  font-size: var(--fs-h1);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-heading);
  color: var(--text-primary);
}
.arvo-h2 {
  font-family: var(--font-heading);
  font-weight: var(--fw-medium);
  font-size: var(--fs-h2);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-heading);
  color: var(--text-primary);
}
.arvo-eyebrow {
  font-family: var(--font-label);
  font-weight: var(--fw-medium);
  font-size: var(--fs-micro);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--role-decision);
}
.arvo-body {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-primary);
}
.arvo-lead {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-lead);
  line-height: var(--lh-body);
  color: var(--text-secondary);
  max-width: 52ch;
}
.arvo-mono {
  font-family: var(--font-label);
  font-weight: var(--fw-regular);
  font-size: var(--fs-small);
  letter-spacing: var(--ls-code);
  color: var(--text-secondary);
}
.arvo-label {
  font-family: var(--font-label);
  font-weight: var(--fw-medium);
  font-size: var(--fs-micro);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--text-tertiary);
}
