@media (prefers-reduced-motion: no-preference) {
  :root { --ease-page: cubic-bezier(.33, 1, .68, 1); view-transition-name: none; }
  main { view-transition-name: page-content; }
  ::view-transition { pointer-events: none; clip-path: inset(var(--header-height) 0 0); }
  ::view-transition-group(page-content) { animation: none; }
  ::view-transition-old(page-content) { animation: page-leave 100ms var(--ease-page) both; }
  main.is-page-arriving { animation: page-arrive 200ms var(--ease-page) 80ms backwards; }
}
@keyframes page-leave {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes page-arrive {
  from { opacity: 0; }
  to { opacity: 1; }
}

[data-reveal].is-revealing {
  animation: content-arrive 300ms var(--ease-out) backwards;
}
[data-reveal-step="1"].is-revealing { animation-delay: 50ms; }
[data-reveal-step="2"].is-revealing { animation-delay: 100ms; }
[data-reveal-step="3"].is-revealing { animation-delay: 150ms; }
@keyframes content-arrive {
  from { opacity: .72; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.select-popup { transform-origin: top center; }
.select-popup[data-side="above"] { transform-origin: bottom center; }
body[data-input="pointer"] .select-popup:not([hidden]) {
  opacity: 1;
  transform: none;
  transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out);
}
@starting-style {
  body[data-input="pointer"] .select-popup:not([hidden]) {
    opacity: 0;
    transform: scale(.97);
  }
}
body[data-input="pointer"] .select-trigger::after,
body[data-input="pointer"] .menu-toggle span {
  transition: transform 160ms var(--ease-out);
}
.faq-plus::after { opacity: 1; }
details[open] .faq-plus::after { display: block; opacity: 0; transform: rotate(0); }
body[data-input="pointer"] .faq-plus::after {
  transition: opacity 160ms var(--ease-out), transform 160ms var(--ease-out);
}
body[data-input="pointer"] .text-link { transition: opacity 160ms var(--ease-out); }
body[data-input="pointer"] .text-link:active { opacity: .72; }

.copy-icon, .copy-label { display: inline-grid; }
.copy-icon { width: 20px; height: 20px; flex: 0 0 20px; }
#copy-message .copy-icon .icon, .copy-label > span { grid-area: 1 / 1; transition: none; }
#copy-message .copy-icon .icon { transform: none; }
#copy-message .copy-icon .copy-check { opacity: 0; transform: scale(.95); }
.copy-done { opacity: 0; }
#copy-message[data-copied] :is(.copy-original, .copy-idle) { opacity: 0; }
#copy-message[data-copied] :is(.copy-check, .copy-done) { opacity: 1; }
#copy-message[data-copied] .copy-icon .copy-check { transform: none; }
body[data-input="pointer"] #copy-message[data-copy-motion] .copy-icon .icon {
  transition: opacity 140ms var(--ease-out), transform 140ms var(--ease-out);
}
body[data-input="pointer"] #copy-message[data-copy-motion] .copy-label > span {
  transition: opacity 140ms var(--ease-out);
}
body[data-input="pointer"] :is(.service-link, .contact-channel, .footer-links a) {
  transition: opacity 160ms ease;
}
body[data-input="pointer"] :is(.service-link, .contact-channel, .footer-links a):active {
  opacity: .72;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body[data-input="pointer"] .service-link .icon {
    transition: transform 160ms var(--ease-out);
  }
  body[data-input="pointer"] .service-link:hover .icon { transform: translateX(3px); }
}
@media (max-width: 900px) {
  .js body[data-input="pointer"] .main-nav.is-open {
    opacity: 1;
    transform: none;
    transform-origin: top right;
    transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out);
  }
  @starting-style {
    .js body[data-input="pointer"] .main-nav.is-open {
      opacity: 0;
      transform: scale(.97);
    }
  }
}
@media (max-width: 680px) {
  [data-reveal].is-revealing { animation-delay: 0ms; }
}
@media (prefers-reduced-motion: reduce) {
  body[data-input="pointer"] .text-link,
  body[data-input="pointer"] .back-to-top.is-floating,
  body[data-input="pointer"] #copy-message[data-copy-motion] :is(.copy-icon .icon, .copy-label > span) {
    transition: opacity 100ms ease !important;
  }
  #copy-message .copy-icon .copy-check { transform: none !important; }
  .back-to-top.is-floating { transform: none !important; }
  [data-reveal].is-revealing { animation: none !important; }
  body[data-input="pointer"] :is(.select-popup, .main-nav.is-open) {
    transform: none !important;
    transition: opacity 100ms ease !important;
  }
  body[data-input="pointer"] :is(.service-link, .contact-channel, .footer-links a) {
    transition: opacity 100ms ease !important;
  }
  body[data-input="pointer"] .faq-plus::after { transition: opacity 100ms ease !important; }
}
