/*
 * Editorial typography is intentionally isolated from layout styles.
 * The stacks use local system fonts only: no third-party requests are made.
 */

body {
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3 {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

h1 {
  line-height: 1.06;
  letter-spacing: -0.026em;
}

h2,
h3 {
  line-height: 1.14;
}

.wordmark,
.site-footer__wordmark {
  font-family: var(--font-body);
  font-weight: 750;
  letter-spacing: -0.025em;
}

.primary-nav a,
.private-session,
.mobile-menu,
.landing-button {
  letter-spacing: 0.005em;
}

.landing-button,
.landing-idea__heading a,
.landing-judgment__copy a,
.landing-invitation__link,
.landing-theme-grid a,
.theme-card__action {
  font-weight: 650;
}

.landing-preview__label,
.landing-trust,
.landing-mini-dossier dd,
.landing-process__note {
  font-weight: 600;
}

.lead,
.landing-hero__lead,
.landing-thesis p,
.landing-judgment__copy p,
.landing-invitation__action > p {
  line-height: 1.68;
}

.landing-hero h1 {
  max-width: 600px;
  font-size: clamp(4.15rem, 5.8vw, 6rem);
  font-weight: 700;
  letter-spacing: -0.032em;
  line-height: 1.02;
}

.landing-thesis h2,
.landing-process > h2,
.landing-idea h2,
.landing-judgment h2,
.landing-invitation h2,
.landing-themes h2 {
  font-weight: 700;
  letter-spacing: -0.027em;
  line-height: 1.02;
}

.landing-mini-dossier h2,
.landing-mini-map h2,
.landing-lineage strong,
.landing-steps h3,
.landing-theme-grid h3,
.theme-card h3,
.theme-empty h3 {
  letter-spacing: -0.015em;
  line-height: 1.14;
}

.landing-preview__label,
.landing-mini-map__core,
.landing-lineage span,
.landing-step__number {
  font-family: var(--font-body);
}

.theme-detail__question {
  letter-spacing: -0.015em;
  line-height: 1.28;
}

@media (max-width: 560px) {
  .landing-hero h1 {
    font-size: clamp(3.15rem, 14.5vw, 4rem);
    line-height: 1.03;
  }

  .landing-thesis h2,
  .landing-process > h2,
  .landing-idea h2,
  .landing-judgment h2,
  .landing-invitation h2,
  .landing-themes h2 {
    font-size: clamp(2.6rem, 12vw, 3.7rem);
    line-height: 1.04;
  }
}
