:root {
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-mono: 'DM Mono', 'SF Mono', Menlo, Consolas, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1.0625rem;
  --text-lg: 1.1875rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.625rem;
  --text-3xl: 2.125rem;
  --text-4xl: 2.875rem;
  --text-5xl: 3.75rem;

  --leading-tight: 1.15;
  --leading-snug: 1.35;
  --leading-body: 1.7;
  --leading-relaxed: 1.85;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: var(--leading-tight);
  color: var(--color-primary);
  margin-block: 0;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2rem, 4vw + 1rem, var(--text-5xl)); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.5rem, 2vw + 1rem, var(--text-3xl)); }
h3 { font-size: clamp(1.25rem, 1vw + 1rem, var(--text-2xl)); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); text-transform: uppercase; letter-spacing: 0.05em; font-family: var(--font-mono); }

p, li {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--color-text);
}

p { margin-block: 0; }
p + p { margin-top: var(--space-sm); }

strong, b { font-weight: 700; color: var(--color-primary); }
em, i { font-style: italic; }

small { font-size: var(--text-sm); color: var(--color-text-muted); }

::selection { background: var(--color-accent); color: #fff; }
