/* Scroll reveal base */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(25px);
  transition: all 0.7s ease;
}
.reveal-on-scroll.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Tilt animation for cards */
@keyframes tiltFloat {
  0% { transform: perspective(1000px) rotateX(0deg) rotateY(0deg); }
  50% { transform: perspective(1000px) rotateX(2deg) rotateY(-2deg); }
  100% { transform: perspective(1000px) rotateX(0) rotateY(0); }
}
.card-tilt:hover {
  animation: tiltFloat 2s ease-in-out infinite;
}

/* Testimonial fade */
@keyframes fadeSlide {
  from { opacity:0; transform: translateY(10px); }
  to { opacity:1; transform: translateY(0); }
}