/* Sound Events type system R2.2
   Eight semantic sizes across desktop and mobile. Wordmarks, control glyphs,
   and decorative quotation marks remain intentionally component-sized. */

@layer typography {
  body {
    font-size: var(--se-type-body);
    font-weight: var(--se-weight-body);
    line-height: var(--se-leading-body);
    letter-spacing: var(--se-tracking-body);
  }

  h1,
  h2,
  h3 {
    font-family: var(--se-font-display);
    font-weight: var(--se-weight-display);
    letter-spacing: var(--se-tracking-display);
  }

  h1,
  .hero__title,
  .formula__headline h2,
  .process__headline h2,
  .roster-intro h2,
  .roster-hero__copy h2 {
    font-size: var(--se-type-display-xl);
    line-height: var(--se-leading-display);
    letter-spacing: var(--se-tracking-display);
  }

  h2,
  .manifest__headline h2,
  .section-heading h2,
  #contact-title,
  .roster-profile h3,
  .roster-dialog .roster-profile h3,
  .roster-experience__visual-meta strong,
  .legal-dialog__content h2,
  .project-film__story h3,
  .trust-grid strong {
    font-size: var(--se-type-display-lg);
    line-height: var(--se-leading-heading);
    letter-spacing: var(--se-tracking-heading);
  }

  .manifest-scene__copy h3,
  .formula__pull,
  .manifest__close,
  .formula__close,
  .process__subheadline,
  .process__close,
  .roster-card__identity strong,
  .testimonial--featured p,
  .site-footer p,
  .credit-crawl,
  .anatomy__closing {
    font-family: var(--se-font-display);
    font-size: var(--se-type-display-md);
    font-weight: var(--se-weight-display);
    line-height: var(--se-leading-heading);
    letter-spacing: var(--se-tracking-heading);
  }

  h3,
  .formula-decisions h3,
  .formula-context h3,
  .formula-context--brand h3,
  .process__proof h3,
  .service-card h3,
  .service-notes h3,
  .roster-studio h3,
  .testimonial p,
  .proof-stage__supporting .testimonial p,
  .legal-dialog__content h3,
  .faq-list summary,
  .principle-stack h3,
  .anatomy-card h3 {
    font-family: var(--se-font-display);
    font-size: var(--se-type-title);
    font-weight: var(--se-weight-display);
    line-height: var(--se-leading-title);
    letter-spacing: var(--se-tracking-title);
  }

  .hero__lead,
  .hero__memory,
  .formula__premise,
  .process__intro > p:last-child,
  .roster-intro__copy p,
  .roster-hero__copy > p:last-child,
  .section-heading > p:last-child,
  .contact__copy > p,
  .brief-form > p:not(.form-privacy):not(.form-status) {
    font-size: var(--se-type-lead);
    line-height: var(--se-leading-lead);
    letter-spacing: var(--se-tracking-body);
  }

  .manifest-scene__copy p,
  .manifest-scene__scope li,
  .formula-decisions p,
  .roster-profile__bio,
  .legal-dialog__content p,
  .contact-channel__copy strong,
  .field input,
  .field select,
  .field textarea {
    font-size: var(--se-type-body);
    line-height: var(--se-leading-body);
    letter-spacing: var(--se-tracking-body);
  }

  .hero__documentary,
  .proof-rail strong,
  .formula-context p,
  .formula-context--brand p,
  .process-list p,
  .process__proof p,
  .roster-profile__facts dd,
  .roster-selector__label strong,
  .roster-studio p,
  .service-card p,
  .service-notes p,
  .proof-stage__caption p,
  .brief-form .form-privacy,
  .form-status,
  .cookie-notice p,
  .site-footer__inner > div,
  .principle-stack p,
  .trust-grid p,
  .moment-frame figcaption,
  .anatomy-card p {
    font-size: var(--se-type-small);
    line-height: var(--se-leading-small);
    letter-spacing: var(--se-tracking-body);
  }

  .desktop-nav,
  .button,
  .button--call strong,
  .hero__signature,
  .proof-rail span,
  .manifest-scene__years span,
  .process-list small,
  .roster-profile__role,
  .roster-profile__tags li,
  .roster-profile__facts dt,
  .roster-selector-shell > p,
  .roster-selector-shell > p span,
  .roster-selector__label small,
  .roster-card__top,
  .roster-card__identity > span,
  .roster-intro__copy > span,
  .roster-wall__note,
  .roster-dialog__bar > p,
  .service-card > span,
  .service-card strong,
  .services__proof,
  .proof-stage__caption span,
  .testimonial footer,
  .contact-channel__index,
  .contact-channel__copy small,
  .field label,
  .field__error,
  .site-footer__legal,
  .legal-dialog__updated,
  .cookie-notice a,
  .cookie-notice button,
  .brief-pulse__copy strong,
  .brief-pulse__copy small,
  .principle-stack span,
  .trust-grid span,
  .project-film__story span,
  .project-film__story strong,
  .anatomy-card span,
  .moment-frame span {
    font-size: var(--se-type-label);
    font-weight: var(--se-weight-label);
    line-height: var(--se-leading-label);
    letter-spacing: var(--se-tracking-label);
  }

  .manifest-scene__years strong,
  .process-list > li > span,
  .roster-intro__copy strong {
    font-family: var(--se-font-display);
    font-size: var(--se-type-display-lg);
    font-weight: var(--se-weight-display);
    line-height: var(--se-leading-display);
    letter-spacing: var(--se-tracking-display);
  }

  .mobile-menu a:not(.button) {
    font-family: var(--se-font-display);
    font-size: var(--se-type-display-md);
    font-weight: var(--se-weight-display);
    line-height: var(--se-leading-title);
    letter-spacing: var(--se-tracking-heading);
  }

  .mobile-menu a span,
  .mobile-menu p {
    font-size: var(--se-type-label);
    line-height: var(--se-leading-label);
    letter-spacing: var(--se-tracking-label);
  }

  @media (max-width: 960px) {
    .roster-card__identity strong {
      font-size: var(--se-type-title);
      line-height: var(--se-leading-title);
      letter-spacing: var(--se-tracking-title);
    }
  }

  @media (max-width: 760px) {
    .formula-context p,
    .formula-context--brand p,
    .process-list p,
    .process__proof p,
    .roster-studio p,
    .service-card p,
    .service-notes p,
    .proof-stage__caption p {
      font-size: var(--se-type-body);
      line-height: var(--se-leading-body);
      letter-spacing: var(--se-tracking-body);
    }
  }
}
