@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes rise {
  from { transform: translateY(16px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes glow {
  0%, 100% { box-shadow: 0 10px 30px rgba(15, 45, 92, 0.18); }
  50% { box-shadow: 0 16px 40px rgba(6, 182, 212, 0.24); }
}

@keyframes pulse-soft {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.03); opacity: 0.96; }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.animate-fade-in {
  animation: fade-in 0.6s ease-out both;
}

.animate-rise {
  animation: rise 0.8s ease-out both;
}

.animate-glow {
  animation: glow 2.4s ease-in-out infinite;
}

.animate-pulse-soft {
  animation: pulse-soft 2.2s ease-in-out infinite;
}

.animate-shimmer {
  background: linear-gradient(90deg, rgba(15,45,92,0.08), rgba(6,182,212,0.18), rgba(15,45,92,0.08));
  background-size: 200% 100%;
  animation: shimmer 2.8s linear infinite;
}

