/* Global motion — admin + marketing */

/* Sem transform aqui: transform no .container cria containing block
   e parte position:fixed dos modais (aparecem no meio do documento). */
.ui-page-enter {
  animation: uiFadeIn var(--duration-slow, 450ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1)) both;
}

.ui-reveal {
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity var(--duration-slow, 450ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1)),
    transform var(--duration-slow, 450ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}

.ui-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ui-reveal-delay-1 { transition-delay: 60ms; }
.ui-reveal-delay-2 { transition-delay: 120ms; }
.ui-reveal-delay-3 { transition-delay: 180ms; }
.ui-reveal-delay-4 { transition-delay: 240ms; }

.ui-hover-lift {
  transition:
    transform var(--duration, 280ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1)),
    box-shadow var(--duration, 280ms) var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}

.ui-hover-lift:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md, 0 8px 24px rgba(11, 31, 58, 0.08));
}

@keyframes uiFadeUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes uiFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@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;
  }

  .ui-reveal {
    opacity: 1;
    transform: none;
  }
}
