/* Shared headline wrapping rules. Keeps Chinese display type from ending in 1–2 character orphan lines. */
:where(h1, h2, h3) {
  line-break: strict;
  text-wrap: balance;
}

:where(p, li, figcaption) {
  text-wrap: pretty;
}

@supports (word-break: auto-phrase) {
  :where(h1, h2, h3) {
    word-break: auto-phrase;
  }
}

/* The headquarters hero had a 104px title constrained to 820px, creating “达。” on its own line. */
body[data-project-id="qf-headquarters"] .hero-copy h1 {
  max-width: 1100px;
  font-size: clamp(50px, 5.5vw, 88px);
  line-height: 1.04;
  letter-spacing: -.055em;
}

@media (max-width: 900px) {
  body[data-project-id="qf-headquarters"] .hero-copy h1 {
    max-width: 760px;
    font-size: clamp(46px, 8vw, 68px);
  }
}

@media (max-width: 560px) {
  body[data-project-id="qf-headquarters"] .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(37px, 10vw, 42px);
    line-height: 1.08;
  }
}

/* Project-level optical corrections. These only tune type, never image geometry. */
body[data-case-id="changchun-warmth"] .application-head h2 {
  font-size: clamp(36px, 3.8vw, 56px);
}

body[data-project-id="kongkong"] .origin-card h3,
body[data-project-id="kongkong"] .archive-intro h3,
body[data-project-id="kongkong"] .collaboration-intro h3 {
  font-size: clamp(24px, 2.25vw, 34px);
}

body[data-project-id="kongkong"] .space .chapter-head h2,
body[data-project-id="kongkong"] .future .chapter-head h2,
body[data-project-id="kongkong"] .closing h2 {
  font-size: clamp(38px, 3.85vw, 56px);
}

body[data-project-id="petmeet"] .nearby-copy h2,
body[data-project-id="petmeet"] .project-footer h2 {
  font-size: clamp(44px, 4.7vw, 68px);
}

body[data-project-id="qf-headquarters"] .system .section-head h2,
body[data-project-id="qf-headquarters"] .result .section-head h2,
body[data-project-id="qf-headquarters"] .outcome h2 {
  font-size: clamp(38px, 3.8vw, 58px);
}

body[data-project-id="qf-summit"] .heroCopy {
  width: min(820px, 62vw);
}

body[data-project-id="qf-summit"] .heroCopy h1 {
  font-size: clamp(50px, 4.8vw, 80px);
}

body[data-project-id="qf-summit"] .story h2,
body[data-project-id="qf-summit"] .sectionHead h2,
body[data-project-id="qf-summit"] .conceptTitle h2,
body[data-project-id="qf-summit"] .digitalCopy h2,
body[data-project-id="qf-summit"] .spaceIntro h2,
body[data-project-id="qf-summit"] .onsiteCaption h2 {
  font-size: clamp(38px, 3.9vw, 62px);
}

body[data-project-id="shanting"] .statementGrid h2,
body[data-project-id="shanting"] .sectionHead h2 {
  font-size: clamp(44px, 5.3vw, 76px);
}

body[data-project-id="yexu"] .hero-content {
  max-width: 700px;
}

body[data-project-id="yexu"] .hero h1 {
  font-size: clamp(46px, 4.25vw, 68px);
}

@media (max-width: 900px) {
  body[data-project-id="kongkong"] .brand-hero-copy h1 {
    font-size: clamp(44px, 6.4vw, 54px);
  }

  body[data-project-id="petmeet"] .chapter-head h2 {
    font-size: 42px;
  }

  body[data-project-id="petmeet"] .nearby-copy h2,
  body[data-project-id="petmeet"] .project-footer h2 {
    font-size: 44px;
  }
}

@media (max-width: 560px) {
  body[data-project-id="kongkong"] .chapter-head h2,
  body[data-project-id="kongkong"] .manifesto-grid h2,
  body[data-project-id="kongkong"] .closing h2 {
    font-size: 32px;
  }

  body[data-project-id="kongkong"] .origin-card h3,
  body[data-project-id="kongkong"] .archive-intro h3,
  body[data-project-id="kongkong"] .collaboration-intro h3 {
    font-size: 27px;
  }

  body[data-project-id="petmeet"] .chapter-head h2 {
    font-size: 32px;
  }

  body[data-project-id="petmeet"] .nearby-copy h2,
  body[data-project-id="petmeet"] .project-footer h2 {
    font-size: 36px;
  }

  body[data-project-id="qf-headquarters"] .system .section-head h2,
  body[data-project-id="qf-headquarters"] .result .section-head h2,
  body[data-project-id="qf-headquarters"] .outcome h2 {
    font-size: 35px;
  }

  body[data-project-id="qf-summit"] .heroCopy h1 {
    font-size: 36px;
  }

  body[data-project-id="qf-summit"] .story h2,
  body[data-project-id="qf-summit"] .sectionHead h2,
  body[data-project-id="qf-summit"] .conceptTitle h2,
  body[data-project-id="qf-summit"] .digitalCopy h2,
  body[data-project-id="qf-summit"] .spaceIntro h2,
  body[data-project-id="qf-summit"] .onsiteCaption h2 {
    font-size: 35px;
  }

  body[data-project-id="xiaonanzhuang"] .case-intro h2 {
    font-size: 34px;
  }

  body[data-project-id="yexu"] .section-head h2 {
    font-size: 33px;
  }
}

@media (max-width: 340px) {
  body[data-project-id="qf-headquarters"] .system-card,
  body[data-project-id="qf-headquarters"] .token {
    min-width: 0;
  }

  body[data-project-id="qf-headquarters"] .system-card {
    padding-inline: 24px;
  }
}
