/* ============================================================
   AWAREAIATLAS — MOTION & ANIMATION SYSTEM
   ============================================================ */

/* Scroll-triggered reveal */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 600ms cubic-bezier(0.16, 1, 0.3, 1), transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered Child Delays */
.stagger-1 { transition-delay: 80ms; }
.stagger-2 { transition-delay: 160ms; }
.stagger-3 { transition-delay: 240ms; }
.stagger-4 { transition-delay: 320ms; }
.stagger-5 { transition-delay: 400ms; }
.stagger-6 { transition-delay: 480ms; }

/* Operational Pulse Animations */
@keyframes pulse-glow {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.4);
    opacity: 0.4;
  }
}

@keyframes pulse-beacon {
  0% {
    r: 4;
    opacity: 0.8;
  }
  100% {
    r: 16;
    opacity: 0;
  }
}

@keyframes data-stream {
  0% {
    stroke-dashoffset: 40;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

.stream-active {
  stroke-dasharray: 6 6;
  animation: data-stream 1.4s linear infinite;
}

/* Floating Ambient Movement for Atlas Core Nodes */
@keyframes float-subtle-1 {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-3px, -5px); }
}

@keyframes float-subtle-2 {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(4px, -3px); }
}

.ambient-float-1 { animation: float-subtle-1 5s ease-in-out infinite; }
.ambient-float-2 { animation: float-subtle-2 6s ease-in-out infinite; }

/* Shimmer / Scanline effect for Live AI */
@keyframes scan-line {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(1000%); }
}

.scan-line-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.4), transparent);
  animation: scan-line 6s linear infinite;
  pointer-events: none;
}

/* Typing cursor simulation */
@keyframes blink-cursor {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

.typing-cursor::after {
  content: '▋';
  display: inline-block;
  color: var(--accent-indigo);
  margin-left: 3px;
  animation: blink-cursor 1s steps(1) infinite;
}

/* Accessibility: Respect Reduced Motion Preference */
@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;
  }
  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
  }
}
