/* Motion inspired by https://syntera.ai/ — smooth fade-up reveals, subtle hover lifts */

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--transition-reveal), transform var(--transition-reveal);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

.hero__mock {
  opacity: 0;
  transform: translateY(40px) scale(0.98);
  transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s,
              transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}

.hero.is-loaded .hero__mock {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.modal {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal.is-open {
  opacity: 1;
  visibility: visible;
}

.modal__panel {
  transform: translateY(16px) scale(0.97);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.modal.is-open .modal__panel {
  transform: translateY(0) scale(1);
}

.capability-card,
.solution-row {
  transition: border-color var(--transition-base),
              transform var(--transition-base),
              box-shadow var(--transition-base),
              background var(--transition-base);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }

  .hero__mock {
    opacity: 1;
    transform: none;
  }
}
