/*
 * ESOS premium motion layer.
 * No brand, typography or layout overrides live here: only motion behavior.
 */

.esos-motion-enabled .esos-motion-nav,
.esos-motion-enabled .esos-motion-hero,
.esos-motion-enabled .esos-motion-reveal {
  opacity: 0;
  translate: 0 18px;
  transition:
    opacity 520ms cubic-bezier(.22, .61, .36, 1),
    translate 620ms cubic-bezier(.22, .61, .36, 1);
  transition-delay: var(--esos-motion-delay, 0ms);
  will-change: opacity, translate;
}

.esos-motion-enabled .esos-motion-nav {
  translate: 0 -10px;
  transition-duration: 420ms, 520ms;
}

.esos-motion-enabled .esos-motion-hero {
  translate: 0 12px;
  transition-duration: 620ms, 720ms;
}

.esos-motion-enabled .is-esos-motion-visible {
  opacity: 1;
  translate: 0 0;
  will-change: auto;
}

.esos-motion-control {
  transition: translate 160ms cubic-bezier(.22, .61, .36, 1);
}

@media (hover: hover) and (pointer: fine) {
  .esos-motion-control:hover {
    translate: 0 -1px;
  }

  .esos-motion-control:active {
    translate: 0 0;
  }

  .esos-motion-card {
    transition: translate 220ms cubic-bezier(.22, .61, .36, 1);
  }

  .esos-motion-card:hover {
    translate: 0 -3px;
  }
}

.esos-evolution__ambient--one {
  animation: esos-ambient-drift-one 14s ease-in-out infinite alternate;
}

.esos-evolution__ambient--two {
  animation: esos-ambient-drift-two 18s ease-in-out infinite alternate;
}

.esos-phone-card__wave i {
  transform-origin: center;
  animation: esos-wave-pulse 1.45s ease-in-out infinite;
}

.esos-phone-card__wave i:nth-child(2n) { animation-delay: -220ms; }
.esos-phone-card__wave i:nth-child(3n) { animation-delay: -440ms; }

.esos-evolution__mission-ui article > i {
  animation: esos-status-pulse 2.8s ease-in-out infinite;
}

@keyframes esos-ambient-drift-one {
  from { translate: 0 0; }
  to { translate: 18px -12px; }
}

@keyframes esos-ambient-drift-two {
  from { translate: 0 0; }
  to { translate: -14px 16px; }
}

@keyframes esos-wave-pulse {
  0%, 100% { scale: 1 0.72; }
  50% { scale: 1 1.08; }
}

@keyframes esos-status-pulse {
  0%, 100% { scale: 1; opacity: 0.82; }
  50% { scale: 1.12; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .esos-motion-enabled .esos-motion-nav,
  .esos-motion-enabled .esos-motion-hero,
  .esos-motion-enabled .esos-motion-reveal,
  .esos-motion-control,
  .esos-motion-card,
  .esos-evolution__ambient--one,
  .esos-evolution__ambient--two,
  .esos-phone-card__wave i,
  .esos-evolution__mission-ui article > i {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    translate: none !important;
    scale: none !important;
  }
}
