
/* Reveal Animations via JS IntersectionObserver */
.rev-up {
  opacity: 0;
  transform: translateY(50px);
  transition: all var(--t-smooth);
}

.rev-left {
  opacity: 0;
  transform: translateX(50px);
  transition: all var(--t-smooth);
}

.rev-right {
  opacity: 0;
  transform: translateX(-50px);
  transition: all var(--t-smooth);
}

.rev-blur {
  opacity: 0;
  filter: blur(15px);
  transform: scale(0.95);
  transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.is-revealed {
  opacity: 1 !important;
  transform: translate(0, 0) scale(1) !important;
  filter: blur(0) !important;
}

/* Stagger delays */
.del-1 { transition-delay: 0.1s; }
.del-2 { transition-delay: 0.2s; }
.del-3 { transition-delay: 0.3s; }
.del-4 { transition-delay: 0.4s; }

/* Continuous animations */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}
.anim-float {
  animation: float 8s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4); }
  50% { box-shadow: 0 0 0 20px rgba(212, 175, 55, 0); }
}

@keyframes bg-pan {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.gradient-motion {
  background-size: 200% 200%;
  animation: bg-pan 15s ease infinite;
}
