/* Shared type system for the current portfolio. Archived design tests do not load this file. */
:root {
  --type-display: clamp(40px, 6.3vw, 102px);
  --type-heading: clamp(36px, 4.6vw, 72px);
  --type-feature: clamp(28px, 3vw, 44px);
  --type-title: clamp(24px, 2.25vw, 32px);
  --type-lead: clamp(20px, 1.8vw, 24px);
  --type-body: 16px;
  --type-ui: 14px;
  --type-meta: 12px;
  --tracking-heading: -.05em;
  --tracking-title: -.03em;
  --tracking-label: .09em;
}
.intro h1, .archive-title h1 {
  font-size: var(--type-display);
  line-height: 1.04;
  letter-spacing: var(--tracking-heading);
  font-weight: 600;
}
.studio-current h3, .contact-current h3, .project-page .detail-heading h1 {
  font-size: var(--type-heading);
  line-height: 1.08;
  letter-spacing: var(--tracking-heading);
  font-weight: 400;
  text-wrap: balance;
}
.project h3, .archive-grid .project h3, .contact-current .contact-person h4,
.studio-layout p.large-copy, .reel-heading h2, .next-project strong {
  font-size: var(--type-title);
  line-height: 1.2;
  letter-spacing: var(--tracking-title);
  font-weight: 400;
}
.featured .project-meta h3 {
  font-size: var(--type-feature);
  line-height: 1.15;
  letter-spacing: var(--tracking-title);
}
.intro-aside p, .project-page .detail-copy > p {
  font-size: var(--type-lead);
  line-height: 1.45;
  letter-spacing: -.02em;
}
.studio-layout p {
  font-size: var(--type-body);
  line-height: 1.7;
  letter-spacing: normal;
}
/* Ingress shares the title tier; ordinary studio paragraphs retain body size. */
.studio-layout p.large-copy {
  font-size: var(--type-title);
  line-height: 1.2;
  letter-spacing: var(--tracking-title);
}
.contact-current .contact-role {
  font-size: var(--type-ui);
  line-height: 1.5;
  letter-spacing: .035em;
  text-transform: uppercase;
  margin: 0 0 14px;
}
.site-header nav, .nav-reel, .reel-cta, .text-link, .work-more .text-link,
.filter, .film-tab, .close-button, .watch-button,
.contact-current .contact-email, .archive-title p, .disciplines,
.detail-facts dd, .credit-details, .credit-details p, .project-back {
  font-size: var(--type-ui);
  line-height: 1.5;
  letter-spacing: normal;
}
.credit-details p { line-height: 1.75; }
.eyebrow, .section-label, .detail-facts dt, .next-project small {
  font-size: var(--type-meta);
  line-height: 1.5;
  letter-spacing: var(--tracking-label);
  font-weight: 400;
}
.project .category, .archive-grid .project .category,
.project .index, .project-back span, .filter span,
.credit-details #credits-label, footer p, footer > a:last-child {
  font-size: var(--type-meta);
  line-height: 1.5;
}
.project .category, .archive-grid .project .category { font-size: var(--type-ui); }
.contact-current .contact-email:hover .email-arrow { transform: translate(2px,-2px); }
@media (max-width: 760px) {
  :root {
    --type-display: clamp(32px, 7.8vw, 58px);
    --type-heading: clamp(34px, 5.5vw, 42px);
    --type-feature: 28px;
    --type-title: 24px;
    --type-lead: 20px;
  }
  .contact-current .contact-role { min-height: 0; }
}
@media (max-width: 480px) {
  .archive-grid { grid-template-columns: 1fr; }
  .site-header { flex-wrap: wrap; height: auto; padding-top: 24px; padding-bottom: 22px; row-gap: 20px; }
  .site-header nav { width: 100%; justify-content: space-between; gap: 20px; }
  .intro-aside { flex-wrap: wrap; row-gap: 20px; }
  .work-more { flex-wrap: wrap; }
}
