/* ─── Scroll Reveal Animations ────────────────────────────── */

/* Base Reveal Class */
.reveal {
  opacity: 0;
  transition: all 1.4s cubic-bezier(0.2, 1, 0.2, 1);
  will-change: transform, opacity;
}

/* Specific Animation Modes */
.reveal.fade-up {
  transform: translateY(30px) scale(0.98);
}

.reveal.fade-in {
  /* scale down slightly more for fade-in to feel more intentional */
  transform: scale(0.95);
}

.reveal.fade-left {
  transform: translateX(-30px) scale(0.98);
}

.reveal.fade-right {
  transform: translateX(30px) scale(0.98);
}

/* Active State - When triggered by JS */
.reveal.active {
  opacity: 1;
  transform: translate(0) scale(1);
}

/* Staggered Delay Utilities */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }
.delay-600 { transition-delay: 600ms; }
.delay-700 { transition-delay: 700ms; }
.delay-800 { transition-delay: 800ms; }
.delay-900 { transition-delay: 900ms; }
.delay-1000 { transition-delay: 1000ms; }
.delay-1100 { transition-delay: 1100ms; }
.delay-1200 { transition-delay: 1200ms; }
.delay-1300 { transition-delay: 1300ms; }

/* Custom durations for luxury feel */
.duration-long { transition-duration: 1.8s; }
.duration-short { transition-duration: 0.8s; }
