/* Short, finite motion. Content never depends on an animation to be visible. */
@media (prefers-reduced-motion: no-preference) {
  .asas-site {
    --motion-ease: cubic-bezier(.2,.7,.25,1);
    transition: background-color .24s ease, color .2s ease;
  }

  .site-header, .primary-nav, .contact-panel, .form-panel, .feature-box,
  .mobile-actions, .asas-contact-form input, .asas-contact-form select,
  .asas-contact-form textarea {
    transition: background-color .24s ease, border-color .2s ease, color .2s ease;
  }

  .button, .asas-contact-form button[type=submit] {
    transition: transform .22s var(--motion-ease), background-color .22s ease,
      border-color .22s ease, box-shadow .25s ease;
  }
  .button .icon, .text-link .icon, .sidebar-links .icon {
    transition: transform .28s var(--motion-ease), color .2s ease;
  }
  .button:active, .asas-contact-form button[type=submit]:not(:disabled):active {
    transform: translateY(0) scale(.98);
    box-shadow: none;
  }

  .solution-card {
    transition: transform .32s var(--motion-ease), box-shadow .32s ease,
      border-color .22s ease, background-color .24s ease;
  }
  .card-cover > img {
    transition: transform .6s var(--motion-ease);
  }
  .solution-card:focus-within {
    border-color: var(--copper);
    box-shadow: var(--shadow);
  }
  .theme-toggle {
    transition: background-color .2s ease, transform .2s ease;
  }
  .theme-toggle .icon {
    transition: transform .38s var(--motion-ease);
  }
  .theme-toggle[aria-pressed=true] .icon { transform: rotate(-28deg); }
  .theme-toggle:active { transform: scale(.9); }
  .menu-toggle span {
    transition: transform .24s var(--motion-ease), opacity .16s ease,
      background-color .2s ease;
  }
  .faq-list summary { transition: color .18s ease; }
  .faq-list summary .icon { transition: transform .24s var(--motion-ease); }
  .faq-list details[open] summary { color: var(--copper-dark); }
  .wa-float, .mobile-actions a, .brand-mark {
    transition: transform .24s var(--motion-ease), background-color .2s ease,
      box-shadow .24s ease;
  }
  .mobile-actions a:active { transform: scale(.96); }
  .status-dot { animation: asas-status-pulse 1.1s ease-out .5s 1; }

  @media (hover: hover) and (pointer: fine) {
    .button:hover .icon, .sidebar-links a:hover .icon { transform: translateX(-4px); }
    .solution-card:hover { transform: translateY(-7px); border-color: var(--copper); }
    .solution-card:hover .card-cover > img { transform: scale(1.065); }
    .brand:hover .brand-mark { transform: translateY(-1px) rotate(-2deg); }
    .wa-float:hover { transform: translateY(-4px); box-shadow: 0 12px 28px #001b2940; }
    .hero-image, .shield-graphic img { transition: transform .7s var(--motion-ease); }
    .hero-visual:hover .hero-image { transform: scale(1.025); }
    .about-art:hover .shield-graphic img { transform: translateY(-5px) rotate(-2deg); }
    .cta-orbit { transition: transform .7s var(--motion-ease); }
    .cta-inner:hover .cta-orbit { transform: scale(1.04); }
    .contact-method > span { transition: transform .24s var(--motion-ease); }
    .contact-method:hover > span { transform: translateY(-2px); }
  }

  @media (hover: none), (pointer: coarse) {
    .solution-card:hover { transform: none; box-shadow: none; }
    .solution-card:hover .card-cover > img { transform: none; }
    .button:hover { transform: none; }
  }

  @media (max-width: 1050px) {
    .primary-nav.is-open { animation: asas-menu-in .22s var(--motion-ease); }
    .primary-nav.is-open > li, .primary-nav.is-open > a {
      animation: asas-menu-item .26s var(--motion-ease) both;
    }
    .primary-nav.is-open > :nth-child(2) { animation-delay: .025s; }
    .primary-nav.is-open > :nth-child(3) { animation-delay: .05s; }
    .primary-nav.is-open > :nth-child(4) { animation-delay: .075s; }
    .primary-nav.is-open > :nth-child(n+5) { animation-delay: .1s; }
    .primary-nav:focus-within, .primary-nav:focus-within > li,
    .primary-nav:focus-within > a { animation: none; }
  }
}

@keyframes asas-menu-in {
  from { opacity: .4; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes asas-menu-item {
  from { opacity: .35; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes asas-status-pulse {
  0%, 100% { box-shadow: 0 0 0 4px #6fbbb215; }
  50% { box-shadow: 0 0 0 9px #6fbbb205; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .asas-site *, .asas-site *::before, .asas-site *::after {
    animation: none !important;
    transition: none !important;
  }
}
