/* ═══ SCROLL REVEAL ANIMATIONS ═══ */
@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeSlideDown {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeSlideLeft {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes fadeSlideRight {
  from { opacity: 0; transform: translateX(-40px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.85); }
  to { opacity: 1; transform: scale(1); }
}

.reveal { opacity: 0; transform: translateY(35px); }
.reveal.vis { animation: fadeSlideUp 0.7s ease-out forwards; }
.reveal-left { opacity: 0; transform: translateX(-35px); }
.reveal-left.vis { animation: fadeSlideRight 0.7s ease-out forwards; }
.reveal-right { opacity: 0; transform: translateX(35px); }
.reveal-right.vis { animation: fadeSlideLeft 0.7s ease-out forwards; }
.reveal-scale { opacity: 0; transform: scale(0.85); }
.reveal-scale.vis { animation: scaleIn 0.6s ease-out forwards; }

/* stagger children */
.stagger > *:nth-child(1).vis { animation-delay: 0s; }
.stagger > *:nth-child(2).vis { animation-delay: 0.08s; }
.stagger > *:nth-child(3).vis { animation-delay: 0.16s; }
.stagger > *:nth-child(4).vis { animation-delay: 0.24s; }
.stagger > *:nth-child(5).vis { animation-delay: 0.32s; }
.stagger > *:nth-child(6).vis { animation-delay: 0.40s; }
