/* Minimal, theme-aligned animations. Safe defaults and reduced-motion support */

/* View transition root support */
html { view-transition-name: root; }

/* Keyframes */
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slide-up {
  from { transform: translateY(16px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes glow-pulse {
  0% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.35); }
  70% { box-shadow: 0 0 0 12px rgba(139, 92, 246, 0); }
  100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Utilities */
.animate-fade-in { animation: fade-in 480ms ease both; }
.animate-slide-up { animation: slide-up 520ms cubic-bezier(.22,.61,.36,1) both; }
.animate-delay-1 { animation-delay: 80ms; }
.animate-delay-2 { animation-delay: 160ms; }
.animate-delay-3 { animation-delay: 240ms; }
.animate-delay-4 { animation-delay: 320ms; }

.glow-pulse { animation: glow-pulse 1600ms ease-out infinite; }

.shimmer {
  position: relative;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.35), rgba(255,255,255,0));
  background-size: 200% 100%;
  animation: shimmer 1800ms ease-in-out infinite;
}

/* Cards hover lift (subtle) */
.hover-lift { transition: transform .25s ease, box-shadow .25s ease; }
.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(31, 41, 55, .08);
}

/* Buttons ripple container helper */
.ripple-container { position: relative; overflow: hidden; }
.ripple { position: absolute; border-radius: 9999px; transform: scale(0); opacity: .35; pointer-events: none; }
.ripple.show { transform: scale(1); transition: transform 600ms ease, opacity 700ms ease; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}


