/* ============================================
   Typography
   ============================================ */

body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 400;
  color: var(--color-charcoal);
  background-color: var(--color-cream);
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 0.9;
}

h1 {
  font-size: var(--text-h1);
}

h2 {
  font-size: var(--text-h2);
}

h3 {
  font-size: var(--text-h3);
  line-height: 1.1;
}

p {
  line-height: 1.6;
  max-width: 60ch;
}

.text-hero {
  font-size: var(--text-hero);
  line-height: 0.85;
  letter-spacing: -0.02em;
}

.text-italic {
  font-style: italic;
}

.mono-label {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--color-text-muted);
}

.mono-tag {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
  font-weight: 400;
  letter-spacing: 0.2em;
  color: var(--color-text-muted);
}

.display-quote {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--text-h2);
  line-height: 1.15;
}

.section-number {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
  font-weight: 500;
  letter-spacing: 0.3em;
  color: var(--color-text-muted);
}

a:not(.btn) {
  position: relative;
}

a:not(.btn):hover {
  color: var(--color-indigo);
}

::selection {
  background-color: rgba(67, 56, 202, 0.15);
  color: var(--color-charcoal);
}
