/* World Map Animations */

/* The entire SVG map drifts very slowly */
@keyframes map-drift {
  0%   { transform: translate(0px, 0px); }
  50%  { transform: translate(-8px, 4px); }
  100% { transform: translate(0px, 0px); }
}

.hero-map {
  animation: map-drift 25s ease-in-out infinite;
}

/* Port node pulse animation */
@keyframes port-pulse {
  0%   { transform: scale(0.6); opacity: 1; }
  70%  { transform: scale(2.4); opacity: 0; }
  100% { transform: scale(0.6); opacity: 0; }
}

.port-ring {
  transform-origin: center;
  animation: port-pulse 3s var(--ease-drift) infinite;
}

/* Stagger each port ring's delay */
.port-ring--1 { animation-delay: 0.0s; }
.port-ring--2 { animation-delay: 0.4s; }
.port-ring--3 { animation-delay: 0.8s; }
.port-ring--4 { animation-delay: 1.2s; }
.port-ring--5 { animation-delay: 1.6s; }
.port-ring--6 { animation-delay: 2.0s; }
.port-ring--7 { animation-delay: 2.4s; }

/* Scroll-Triggered Reveals */

.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 800ms var(--ease-out-expo),
              transform 800ms var(--ease-out-expo);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children delays */
.reveal-group > * {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 800ms var(--ease-out-expo),
              transform 800ms var(--ease-out-expo);
}

.reveal-group.is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

.reveal-group.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-group.is-visible > *:nth-child(2) { transition-delay: 100ms; }
.reveal-group.is-visible > *:nth-child(3) { transition-delay: 200ms; }
.reveal-group.is-visible > *:nth-child(4) { transition-delay: 300ms; }
.reveal-group.is-visible > *:nth-child(5) { transition-delay: 400ms; }
.reveal-group.is-visible > *:nth-child(6) { transition-delay: 500ms; }

/* Scroll Indicator Bobbing */
@keyframes scroll-bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(8px); }
}

.scroll-indicator__dot {
  animation: scroll-bob 2s var(--ease-drift) infinite;
}

/* Page Load Initial Entry Sequence */

.nav-fade-in {
  opacity: 0;
  animation: fadeIn 600ms ease forwards;
}

.hero-eyebrow-reveal {
  opacity: 0;
  transform: translateY(16px);
  animation: fadeUp 800ms var(--ease-out-expo) forwards 200ms;
}

.hero-title-reveal-1 {
  opacity: 0;
  transform: translateY(24px);
  animation: fadeUp 800ms var(--ease-out-expo) forwards 400ms;
}

.hero-title-reveal-2 {
  opacity: 0;
  transform: translateY(24px);
  animation: fadeUp 800ms var(--ease-out-expo) forwards 600ms;
}

.hero-tagline-reveal {
  opacity: 0;
  animation: fadeIn 1000ms ease forwards 800ms;
}

.hero-cta-reveal {
  opacity: 0;
  transform: translateY(16px);
  animation: fadeUp 800ms var(--ease-out-expo) forwards 1000ms;
}

@keyframes fadeIn {
  to { opacity: 1; }
}

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .hero-map,
  .port-ring,
  .scroll-indicator__dot {
    animation: none !important;
  }
  
  .reveal,
  .reveal-group > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
