/* ── KEYFRAMES ────────────────────────────────── */
@keyframes revealUp {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes fadeUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes heroPan {
  0% { background-position: 0% 50%; transform: scale(1.05); }
  100% { background-position: 100% 50%; transform: scale(1.1); }
}

@keyframes scrollPulse {
  0% { left: -100%; opacity: 1; }
  50% { opacity: 1; }
  100% { left: 100%; opacity: 0; }
}

@keyframes pulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(232, 103, 10, 0.4); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 15px rgba(232, 103, 10, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(232, 103, 10, 0); }
}

@keyframes pulse-green {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.4); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 15px rgba(37, 211, 102, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

@keyframes slideUp {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes zoomIn {
  0% { opacity: 0; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes shimmer {
  0% { background-position: -1000px 0; }
  100% { background-position: 1000px 0; }
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

/* ── REVEAL UTILITIES ─────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.from-left { transform: translateX(-48px); }
.reveal.from-right { transform: translateX(48px); }
.reveal.scale-up { transform: scale(0.9); }

.reveal.on {
  opacity: 1;
  transform: none;
}

/* ── DELAY CLASSES ────────────────────────────── */
.d1 { transition-delay: 0.1s; }
.d2 { transition-delay: 0.2s; }
.d3 { transition-delay: 0.3s; }
.d4 { transition-delay: 0.4s; }
.d5 { transition-delay: 0.5s; }
.d6 { transition-delay: 0.6s; }

/* ── OTHER ANIMATIONS ─────────────────────────── */
.anim-float { animation: float 6s ease-in-out infinite; }
.anim-pulse { animation: pulse 2s infinite; }
