:root {
  --form-motion-ease:cubic-bezier(.16,1,.3,1);
  --form-motion-fast:180ms;
}

/* Request + Contact share the same composed entrance as Home and Pricing. */
:where(.contact-page,.request-page) .nav .brand,
:where(.contact-page,.request-page) .nav .desktop-nav__links,
:where(.contact-page,.request-page) .nav .nav__actions {
  animation:form-nav-enter 520ms var(--form-motion-ease) both;
}
:where(.contact-page,.request-page) .nav .desktop-nav__links { animation-delay:50ms; }
:where(.contact-page,.request-page) .nav .nav__actions { animation-delay:100ms; }

.contact-page > main > header h1,
.contact-page > main > header p,
.request-page .request-intro h1,
.request-page .request-intro p,
:where(.contact-page,.request-page) [data-form-motion-item] {
  animation:form-content-enter 660ms var(--form-motion-ease) both;
  animation-delay:var(--form-motion-delay,90ms);
}

.contact-page > main > header h1,
.request-page .request-intro h1 { --form-motion-delay:90ms; }
.contact-page > main > header p,
.request-page .request-intro p { --form-motion-delay:155ms; }

@keyframes form-nav-enter {
  from { opacity:0;transform:translateY(-7px); }
  to { opacity:1;transform:none; }
}

@keyframes form-content-enter {
  from { opacity:0;transform:translateY(12px);filter:blur(2px); }
  to { opacity:1;transform:none;filter:blur(0); }
}

/* Inputs remain visually stable while gaining a crisp, premium response. */
:where(.contact-page,.request-page) :where(input,textarea) {
  transition:
    border-color 200ms ease,
    background-color 200ms ease,
    box-shadow 260ms var(--form-motion-ease),
    transform 260ms var(--form-motion-ease) !important;
}

:where(.contact-page,.request-page) form button[type="submit"] {
  position:relative;
  overflow:hidden;
  transition:
    transform var(--form-motion-fast) var(--form-motion-ease),
    background-color 200ms ease,
    border-color 200ms ease,
    opacity 200ms ease !important;
}

:where(.contact-page,.request-page) form button[type="submit"]:active {
  transform:scale(.985) !important;
  transition-duration:90ms !important;
}

@media (hover:hover) and (pointer:fine) {
  :where(.contact-page,.request-page) :where(input,textarea):focus {
    transform:translateY(-1px);
  }
  :where(.contact-page,.request-page) form button[type="submit"]:hover {
    transform:translateY(-1px) !important;
  }
}

:where(.contact-page,.request-page) form[aria-busy="true"] button[type="submit"] {
  animation:form-submit-busy 1.15s ease-in-out infinite;
}

:where(.contact-page,.request-page) .is-form-invalid {
  animation:form-invalid-nudge 300ms var(--form-motion-ease) both !important;
}

:where(.contact-page,.request-page) .form-status.is-form-status-visible {
  animation:form-status-enter 360ms var(--form-motion-ease) both;
}

:where(.contact-page,.request-page) .form-status.is-success.is-form-status-visible {
  animation:form-status-success 440ms var(--form-motion-ease) both;
}

@keyframes form-submit-busy {
  0%,100% { opacity:.72; }
  50% { opacity:.94; }
}

@keyframes form-invalid-nudge {
  0%,100% { transform:translateX(0); }
  35% { transform:translateX(-3px); }
  70% { transform:translateX(2px); }
}

@keyframes form-status-enter {
  from { opacity:0;transform:translateY(-3px); }
  to { opacity:1;transform:none; }
}

@keyframes form-status-success {
  0% { opacity:0;transform:translateY(-3px) scale(.985); }
  62% { opacity:1;transform:translateY(0) scale(1.015); }
  100% { opacity:1;transform:none; }
}

@media (max-width:680px) {
  .contact-page > main > header h1,
  .contact-page > main > header p,
  .request-page .request-intro h1,
  .request-page .request-intro p,
  :where(.contact-page,.request-page) [data-form-motion-item] {
    animation-duration:540ms;
    filter:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  :where(.contact-page,.request-page) .nav .brand,
  :where(.contact-page,.request-page) .nav .desktop-nav__links,
  :where(.contact-page,.request-page) .nav .nav__actions,
  .contact-page > main > header h1,
  .contact-page > main > header p,
  .request-page .request-intro h1,
  .request-page .request-intro p,
  :where(.contact-page,.request-page) [data-form-motion-item],
  :where(.contact-page,.request-page) form[aria-busy="true"] button[type="submit"],
  :where(.contact-page,.request-page) .is-form-invalid,
  :where(.contact-page,.request-page) .form-status.is-form-status-visible {
    animation:none !important;
    transition:none !important;
    opacity:1 !important;
    filter:none !important;
    transform:none !important;
  }
  :where(.contact-page,.request-page) :where(input,textarea,button[type="submit"]) {
    transition:none !important;
    transform:none !important;
  }
}
