/* ═══════════════════════════════════════
   VENDY — Animations & Scroll Reveal
═══════════════════════════════════════ */

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .65s cubic-bezier(.22, 1, .36, 1), transform .65s cubic-bezier(.22, 1, .36, 1);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity .65s cubic-bezier(.22, 1, .36, 1), transform .65s cubic-bezier(.22, 1, .36, 1);
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .65s cubic-bezier(.22, 1, .36, 1), transform .65s cubic-bezier(.22, 1, .36, 1);
}

.reveal-scale {
  opacity: 0;
  transform: scale(.93);
  transition: opacity .55s cubic-bezier(.22, 1, .36, 1), transform .55s cubic-bezier(.22, 1, .36, 1);
}

.reveal.visible,
.reveal-left.visible,
.reveal-right.visible,
.reveal-scale.visible {
  opacity: 1;
  transform: none;
}

/* ── Stagger delays ── */
.delay-1 {
  transition-delay: .10s;
}

.delay-2 {
  transition-delay: .20s;
}

.delay-3 {
  transition-delay: .30s;
}

.delay-4 {
  transition-delay: .40s;
}

.delay-5 {
  transition-delay: .50s;
}

.delay-6 {
  transition-delay: .60s;
}

/* ── Blobs background ── */
@keyframes blobMove1 {

  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }

  50% {
    transform: translate(-60px, 40px) scale(1.1);
  }
}

@keyframes blobMove2 {

  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }

  50% {
    transform: translate(50px, -30px) scale(0.9);
  }
}

@keyframes blobMove3 {

  0%,
  100% {
    transform: translate(0, 0);
  }

  33% {
    transform: translate(30px, -40px);
  }

  66% {
    transform: translate(-20px, 30px);
  }
}

/* ── Formes flottantes hero ── */
@keyframes floatA {

  0%,
  100% {
    transform: rotate(20deg) translateY(0);
  }

  50% {
    transform: rotate(20deg) translateY(-18px);
  }
}

@keyframes floatB {

  0%,
  100% {
    transform: translateY(0) scale(1);
  }

  50% {
    transform: translateY(-14px) scale(1.08);
  }
}

/* ── Pulse gold ── */
@keyframes pulseGold {

  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(254, 197, 2, .6);
  }

  50% {
    box-shadow: 0 0 0 7px rgba(254, 197, 2, 0);
  }
}

/* ── Scrolling carriers ── */
@keyframes scrollLeft {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@keyframes scrollRight {
  0% {
    transform: translateX(-50%);
  }

  100% {
    transform: translateX(0);
  }
}

.strip-left {
  animation: scrollLeft 28s linear infinite;
}

.strip-right {
  animation: scrollRight 22s linear infinite;
}

.carriers-wrap:hover .strip-left,
.carriers-wrap:hover .strip-right {
  animation-play-state: paused;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion:reduce) {

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}