/* ── Petal fall ── */
@keyframes petalFall {
  0%   { transform: translateY(-20px) rotate(0deg)   translateX(0px);   opacity: 0;   }
  8%   { opacity: .85; }
  45%  { transform: translateY(42vh)  rotate(190deg)  translateX(28px);  }
  55%  { transform: translateY(52vh)  rotate(210deg)  translateX(-14px); }
  92%  { opacity: .6; }
  100% { transform: translateY(105vh) rotate(380deg) translateX(10px);   opacity: 0;   }
}

/* ── Fade in up ── */
@keyframes fadeInUp {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0);    }
}

/* ── Fade in ── */
@keyframes fadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}

/* ── Float (scroll-cue) ── */
@keyframes floatY {
  0%, 100% { transform:translateY(0);   }
  50%       { transform:translateY(8px); }
}

/* ── Scroll-reveal base classes ── */
.reveal,
.reveal-left,
.reveal-right {
  will-change: opacity, transform;
  transition: opacity .7s ease, transform .7s ease;
}

.reveal       { opacity:0; transform:translateY(36px); }
.reveal-left  { opacity:0; transform:translateX(-40px); }
.reveal-right { opacity:0; transform:translateX(40px); }

.reveal.revealed,
.reveal-left.revealed,
.reveal-right.revealed {
  opacity:1;
  transform:translate(0);
}

/* Stagger delays */
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }
.reveal-delay-5 { transition-delay:.5s; }
