/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHY — New API Scale
   Public Sans for all text · Clean tracking · Comfortable line-height
   ═══════════════════════════════════════════════════════════════ */

h1, .h1 {
  font-size: var(--font-size-h1);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 0.4em;
}
h2, .h2 {
  font-size: var(--font-size-h2);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  letter-spacing: -0.015em;
  margin: 0 0 0.45em;
}
h3, .h3 {
  font-size: var(--font-size-h3);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  letter-spacing: -0.01em;
  margin: 0 0 0.5em;
}
h4, .h4 {
  font-size: var(--font-size-h4);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  margin: 0 0 0.5em;
}
h5, .h5 { font-size: var(--font-size-base); font-weight: var(--fw-semibold); margin: 0 0 0.5em; }
h6, .h6 { font-size: var(--font-size-sm); font-weight: var(--fw-semibold); margin: 0 0 0.5em; }

p {
  margin: 0 0 1em;
  line-height: var(--lh-relaxed, 1.625);
}

.text-muted {
  color: var(--muted-foreground) !important;
  font-size: var(--font-size-sm);
  line-height: var(--lh-normal);
}
.text-sm  { font-size: var(--font-size-sm); }
.text-xs  { font-size: var(--font-size-xs); }
.text-lg  { font-size: var(--font-size-lg); }
.text-xl  { font-size: var(--font-size-xl); }

.fw-normal   { font-weight: var(--fw-normal); }
.fw-medium   { font-weight: var(--fw-medium); }
.fw-semibold { font-weight: var(--fw-semibold); }
.fw-bold     { font-weight: var(--fw-bold); }

/* ── Prose content (editorial) ── */
.prose {
  font-size: var(--font-size-base);
  line-height: 1.75;
  color: var(--foreground);
  max-width: 68ch;
}
.prose p { margin-block: 1.2em; }
.prose h2 {
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.5em;
  margin-top: 2em;
  letter-spacing: -0.015em;
}
.prose a { color: var(--color-primary); text-decoration: none; font-weight: var(--fw-medium); }
.prose a:hover { text-decoration: underline; text-underline-offset: 3px; }
.prose code {
  font-size: 0.875em;
  font-family: var(--font-mono);
  padding: 0.15em 0.4em;
  background: var(--muted);
  border-radius: var(--radius-sm);
  color: var(--foreground);
}
.prose pre {
  padding: var(--space-4) var(--space-5);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow-x: auto;
}
.prose blockquote {
  margin-block: 1.5em;
  padding: 0.75rem 1rem;
  border-left: 3px solid var(--border);
  color: var(--muted-foreground);
  font-style: italic;
}
.prose table { width: 100%; border-collapse: collapse; }
.prose table th,
.prose table td { padding: 0.5rem 0.75rem; border: 1px solid var(--border); }
.prose table th { background: var(--muted); font-weight: var(--fw-semibold); }
