/* ── Animations ────────────────────────────────────────────── */

@keyframes float-a {
  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-30px)
  }
}

@keyframes float-b {
  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(20px)
  }
}

@keyframes rev {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes slide-up {
  to {
    transform: translateY(0);
  }
}

@keyframes marquee {
  to {
    transform: translateX(-50%);
  }
}

@keyframes pulse-ring {
  0%,100% { opacity: .4; transform: scale(1); }
  50%      { opacity: .08; transform: scale(1.06); }
}

/* Apply animations to animated elements */
.glow-1 {
  animation: float-a 8s ease-in-out infinite;
}

.glow-2 {
  animation: float-b 10s ease-in-out infinite;
}

.hero-tag {
  animation: rev .7s var(--ease) .2s forwards;
}

.hero-headline .row span {
  animation: slide-up .95s var(--ease) forwards;
}

.hero-headline .row:nth-child(1) span {
  animation-delay: .35s
}

.hero-headline .row:nth-child(2) span {
  animation-delay: .5s
}

.hero-headline .row:nth-child(3) span {
  animation-delay: .65s
}

.hero-body {
  animation: rev .8s var(--ease) 1s forwards;
}

.hero-actions {
  animation: rev .7s var(--ease) 1.2s forwards;
}

.hero-globe-wrap {
  animation: rev 1.4s var(--ease) .6s forwards;
}

.globe-label.l1 {
  animation: float-a 4s ease-in-out infinite;
}

.globe-label.l2 {
  animation: float-b 4.5s ease-in-out infinite;
}

.globe-label.l3 {
  animation: float-a 5s ease-in-out .8s infinite;
}

.marquee-track {
  animation: marquee 30s linear infinite;
}

.sun-ring.r1 {
  animation: pulse-ring 3.2s ease-in-out infinite;
}

.sun-ring.r2 {
  animation: pulse-ring 3.2s ease-in-out 1s infinite;
}
