/* Responsive corrections after the shared desktop presentation layers. */
/* Short, low-travel mobile entrances; native scrolling remains untouched. */
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  body [data-reveal] { --motion-ease: cubic-bezier(.22, .61, .36, 1); --reveal-travel: .875rem; --motion-reveal: 650ms; }
  body :is(.stats article, .why-grid article, .work-item, .client-marquee, .quote-track, .philosophy).reveal-pending:not(.is-visible) { transform: translateY(1rem); }
  body :is(.stats article, .why-grid article, .work-item, .client-marquee, .quote-track, .philosophy)[data-reveal] { transition-duration: 650ms; }
  body [data-reveal-step].is-visible { transition-delay: 0ms; }
  body .why-grid article .why-art { transition: opacity 550ms ease, translate 650ms cubic-bezier(.22, .61, .36, 1); transition-delay: 0ms; }
  body .why-grid article .why-copy { transition: opacity 550ms ease, translate 650ms cubic-bezier(.22, .61, .36, 1); transition-delay: 60ms; }
  body .why-grid article.reveal-pending:not(.is-visible) :is(.why-copy, .why-art) { translate: 0 .5rem; }
  body .services-section .service-row.reveal-pending:not(.is-visible) :is(h3, p, .service-number, .service-capabilities, .service-icon-frame) { transform: translateY(.625rem); }
  body .services-section .service-row :is(h3, p, .service-number, .service-capabilities, .service-icon-frame) { transition-duration: 650ms; transition-delay: 0ms; }
  body .motion-line > span { transition-duration: 650ms; transition-timing-function: cubic-bezier(.22, .61, .36, 1); }
  body .reveal-pending:not(.is-visible) .motion-line > span { transform: translateY(65%); }
  body .button, body .quote-controls button { transition: scale 240ms cubic-bezier(.22, .61, .36, 1), background-color 300ms ease; }
  body .button:active, body .quote-controls button:active:not(:disabled) { scale: .97; transition-duration: 110ms; }
}
/* Hide real elements too: mobile hero wrappers use display: contents. */
html.intro-pending .site-header,
html.intro-pending main > :not(.hero-scroll),
html.intro-pending .hero-copy,
html.intro-pending .hero-copy *,
html.intro-pending .scroll-cue { visibility: hidden !important; pointer-events: none !important; }
@media (max-width: 760px) {
  body .hero h1 > span { inset: auto !important; position: relative; width: max-content; max-width: 100%; transform: none !important; }
  body .hero {
    --mobile-hero-unit: min(1vw, .25125rem);
    padding-top: calc(21.890547 * var(--mobile-hero-unit));
    grid-template-rows: calc(78.606965 * var(--mobile-hero-unit)) repeat(2, calc(22.38806 * var(--mobile-hero-unit))) auto auto auto;
  }
  body .hero .hero-model { grid-row: 1; margin-top: 0; width: calc(74.626866 * var(--mobile-hero-unit)); height: calc(74.626866 * var(--mobile-hero-unit)); }
  body .hero h1 > span { line-height: 1; }
  body .hero h1 > span:first-child { grid-row: 2; justify-self: start; }
  body .hero h1 > span:last-child { grid-row: 3; justify-self: start; }
  body .hero .hero-eyebrow { margin-top: calc(11.940299 * var(--mobile-hero-unit)); }
  body .hero .hero-intro { font-weight: 400; }
  body .page-section :is(.center-heading, .clients-heading) { text-align: left; margin-inline: 0; }
  body :is(.page-section, .philosophy, .contact-panel) h2 { text-align: left; }
  body .stats article { padding: 1.125rem; min-height: 7rem; gap: .875rem; }
  body .why-grid article { grid-template-rows: auto auto auto; }
  body .why-grid article .why-art { grid-column: 1; grid-row: 1; justify-self: start; margin: 0 0 1.25rem; position: relative; inset: auto; }
  body .why-grid article > .eyebrow { grid-column: 1; grid-row: 2; margin: 0 0 1rem; }
  body .why-grid article .why-copy { grid-column: 1; grid-row: 3; }
  body .page-section:not(.founder) { width: auto; }
  body .stats strong { font-size: clamp(2.5rem, 10vw, 3.5rem); }
  body .stats span { font-size: 1rem; line-height: 1.5; }
  body .work-showcase .work-caption { font-size: clamp(1.125rem, 4.5vw, 1.5rem); }
  body .why-grid h3 { font-size: clamp(1.5rem, 6.4vw, 2rem); white-space: normal; }
  body .why-grid p:not(.eyebrow) { font-size: 1rem; line-height: 1.5; }
  body .testimonials .quote-controls { margin: 1.75rem auto 1.75rem 0; width: 6rem; height: 3rem; }
  body .testimonials .quote-controls button { width: 3rem; height: 3rem; }
  body .testimonials .quote-controls button img { position: static; width: 1.25rem; height: 1.25rem; }
  body .testimonials .quote-card { padding-top: 2.25rem; padding-bottom: 3rem; }
  body .testimonials .quote-card blockquote { max-width: 100%; font-size: clamp(1.375rem, 6vw, 1.875rem); line-height: 1.35; }
  body .testimonials .quote-card figcaption span { font-size: 1rem; }
  body .testimonials .quote-card figcaption small { font-size: .8125rem; }
  body .founder .founder-copy { padding-block: 0; }
  body .founder .founder-copy .line-link { min-height: 2.75rem; padding-block: .75rem .5rem; align-items: end; }
  body .founder .founder-photo { width: 82%; max-width: 18.5rem; justify-self: center; }
  body .founder .founder-photo figcaption { width: 68%; right: 0; }
  body .founder .founder-signature { width: 7.5rem; height: 4.5rem; margin-bottom: .375rem; }
  body .founder .founder-signature img { width: 6.25rem; height: 3.646625rem; left: -.46875rem; top: .533rem; }
  body .founder .founder-photo figcaption > span { font-size: .9375rem; line-height: 1.4; letter-spacing: 0; }
  body .founder .founder-photo figcaption > small { font-size: .6875rem; line-height: 1.45; margin-top: .25rem; }
  body .clients .client-row > li { width: clamp(8.8rem, 48vw, 13.6rem); }
  body .founder .founder-copy h2 { font-size: clamp(2rem, 8.5vw, 3.5rem); }
  body .founder .founder-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.5; }
  body .contact-panel .contact-top { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  body .contact-panel .contact-top > div { min-width: 0; }
  body .contact-panel .contact-top p { max-width: 100%; font-size: 1rem; }
  body .contact-panel .footer-bottom { grid-template-columns: minmax(0, 1fr) auto; }
  body .contact-panel { padding: 2rem 1.25rem 1rem; border-radius: 1.5rem; }
  body .contact-panel .contact-mark { width: 3rem; height: 3rem; }
  body .contact-panel .contact-top { gap: 1.75rem; }
  body .contact-panel .contact-top h2 { font-size: clamp(1.875rem, 8.5vw, 3rem); line-height: 1.12; }
  body .contact-panel .contact-top p { margin: 1.25rem 0 1.5rem; line-height: 1.5; }
  body .contact-panel .button { width: 100%; justify-content: space-between; padding: 1rem 1.25rem; min-height: 3.5rem; }
  body .contact-panel .footer-wordmark { margin: 2.5rem 0 1.5rem; }
  body .contact-panel .footer-bottom { padding-block: .75rem 0; gap: .5rem; font-size: clamp(.625rem, 2.65vw, .8125rem); }
  .hero .hero-intro { max-width: 100%; }
  .mobile-menu-primary, .mobile-menu-social { padding-inline: clamp(1.875rem, 9vw, 3.75rem); }
}
@media (max-width: 360px) {
  body .stats article { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  body .services-section .service-row { grid-template-columns: 1.5rem minmax(0, 1fr) 3.5rem; padding-inline: .5rem; column-gap: .5rem; }
  body .services-section .service-row .service-capabilities { padding-right: 0; font-size: .8125rem; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  /* Give wrapping service descriptions their own intrinsic-height row. */
  body .services-section .service-row {
    grid-template-columns: 3rem minmax(0, 1fr) 5rem;
    grid-template-rows: auto auto auto;
    gap: 1rem;
    padding: 2rem 1rem;
  }
  body .services-section .service-row h3 { grid-column: 2; font-size: clamp(1.75rem, 3.4vw, 2.5rem); }
  body .services-section .service-row .service-summary { grid-column: 2; grid-row: 2; padding: 0; }
  body .services-section .service-row .service-capabilities { grid-column: 2; grid-row: 3; columns: 2; font-size: .9375rem; }
  body .services-section .service-row .service-icon-frame { grid-column: 3; grid-row: 1 / 3; width: 5rem; height: 5rem; }
  body .services-section .service-row .service-number { margin-top: .5rem; }
  body .studio-section #studio-title { text-indent: 0; }
  body .studio-section #studio-title .studio-line { white-space: normal; }
  body .studio-section #studio-title .studio-break { display: none; }
  body .founder.page-section { width: 88%; gap: 4vw; }
  body .founder.page-section .founder-copy h2 { white-space: normal; }
}
@media (max-height: 650px) and (max-width: 760px) {
  .mobile-menu-primary { padding-top: 2rem; gap: 1rem; }
  .mobile-menu-social { padding-top: 2rem; }
}
