/* Animation keyframes and classes */

.reveal-up { opacity: 0; transform: translateY(60px); transition: all 0.4s cubic-bezier(0.5, 0, 0, 1); }
.reveal-left { opacity: 0; transform: translateX(-60px); transition: all 0.4s cubic-bezier(0.5, 0, 0, 1); }
.reveal-right { opacity: 0; transform: translateX(60px); transition: all 0.4s cubic-bezier(0.5, 0, 0, 1); }
.reveal-zoom { opacity: 0; transform: scale(0.85); transition: all 0.4s cubic-bezier(0.5, 0, 0, 1); }
.reveal-active { opacity: 1; transform: translateY(0) translateX(0) scale(1); }

@keyframes blobAnim {
  0% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(40px, -60px) scale(1.1); }
  66% { transform: translate(-30px, 30px) scale(0.9); }
  100% { transform: translate(0, 0) scale(1); }
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-25px); }
  100% { transform: translateY(0px); }
}
.floating { animation: float 7s ease-in-out infinite; }

.hover-glow { transition: all 0.4s ease; }
.hover-glow:hover { box-shadow: 0 0 25px rgba(6, 182, 212, 0.6); }

.img-zoom-container { overflow: hidden; border-radius: var(--border-radius); }
.img-zoom-container img { transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); width: 100%; height: 100%; object-fit: cover;}
.img-zoom-container:hover img { transform: scale(1.15); }

@keyframes pulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 15px rgba(34, 197, 94, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}
.pulse-anim { animation: pulse 2.5s infinite; }

/* Parallax effect for cards */
.parallax-card { transition: transform 0.1s ease-out; }
