/* ============================================================
   LUMARKEN — typography.css
   Fraunces (editorial display serif) + Inter (text/UI).
   All sizes are fluid via clamp().
   ============================================================ */

:root {
  --font-display: "Fraunces", "Georgia", "Times New Roman", serif;
  --font-text: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Helvetica Neue", Arial, sans-serif;

  /* Fluid type scale */
  --fs-display: clamp(2.5rem, 1.2rem + 5.4vw, 5.75rem);
  --fs-h1:      clamp(2.25rem, 1.3rem + 4vw, 4.5rem);
  --fs-h2:      clamp(1.85rem, 1.2rem + 2.6vw, 3.25rem);
  --fs-h3:      clamp(1.3rem, 1.05rem + 1vw, 1.85rem);
  --fs-h4:      clamp(1.1rem, 1rem + 0.5vw, 1.35rem);
  --fs-lead:    clamp(1.125rem, 1rem + 0.55vw, 1.4rem);
  --fs-body:    clamp(1rem, 0.95rem + 0.2vw, 1.0625rem);
  --fs-small:   0.875rem;
  --fs-label:   clamp(0.6875rem, 0.65rem + 0.15vw, 0.75rem);
  --fs-stat:    clamp(2.5rem, 1.6rem + 3.6vw, 4.75rem);

  --lh-tight: 1.04;
  --lh-heading: 1.12;
  --lh-body: 1.65;

  --ls-label: 0.14em;
}

/* --- Global type defaults --- */
body {
  font-family: var(--font-text);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--color-ink);
  font-feature-settings: "ss01" on;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, .display {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: var(--lh-heading);
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: balance;
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 {
  font-family: var(--font-text);
  font-size: var(--fs-h4);
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
}

p { margin: 0; }

.display {
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
}

.lead {
  font-size: var(--fs-lead);
  line-height: 1.5;
  color: var(--color-ink-soft);
  max-width: 44ch;
  text-wrap: pretty;
}

/* Kicker / eyebrow label above headings */
.label {
  font-family: var(--font-text);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--color-ink-faint);
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
}

.label::before {
  content: "";
  width: 1.75rem;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.label--inverse { color: var(--color-ink-inverse-soft); }
.label--bare::before { display: none; }

em, .italic-accent {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
}
