/* ── FADE IN ON SCROLL ── */
.fade-in {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.25,0.1,0.25,1),
              transform 0.7s cubic-bezier(0.25,0.1,0.25,1);
}
.fade-in.visible { opacity: 1; transform: translateY(0); }

.fade-in-left  { transform: translateX(-48px); }
.fade-in-right { transform: translateX(48px); }
.fade-in-left.visible,
.fade-in-right.visible { transform: translateX(0); }

/* ── DELAY UTILITIES ── */
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }
.delay-5 { transition-delay: 0.5s; }

/* ── HERO IMAGE FLOAT ── */
@keyframes float {
  0%   { transform: translateY(0px); }
  50%  { transform: translateY(-12px); }
  100% { transform: translateY(0px); }
}
.hero-image-wrap.visible {
  animation: float 5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .hero-image-wrap.visible { animation: none; }
}