/* ==========================================================================
   ALTEK UAV - TACTICAL ANIMATIONS, SCROLL REVEAL & PAGE TRANSITIONS
   ========================================================================== */

/* Page Enter Transition */
@keyframes pageEnter {
  0% {
    opacity: 0;
    transform: translateY(15px);
    filter: blur(4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0px);
  }
}

.page-enter {
  animation: pageEnter 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Page Exit Transition */
.page-exit {
  opacity: 0 !important;
  transform: translateY(-10px) !important;
  filter: blur(3px) !important;
  transition: all 0.25s ease-out !important;
}

/* Scroll Reveal Core Classes */
.tactical-reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.tactical-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

.tactical-reveal-left {
  opacity: 0;
  transform: translateX(-35px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.tactical-reveal-left.revealed {
  opacity: 1;
  transform: translateX(0);
}

.tactical-reveal-right {
  opacity: 0;
  transform: translateX(35px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.tactical-reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

.tactical-reveal-scale {
  opacity: 0;
  transform: scale(0.92) translateY(20px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.tactical-reveal-scale.revealed {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Stagger Delays for Grid Items */
.delay-100 { transition-delay: 100ms; }
.delay-150 { transition-delay: 150ms; }
.delay-200 { transition-delay: 200ms; }
.delay-250 { transition-delay: 250ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* Continuous Marquee for Partners */
@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.animate-marquee {
  display: flex;
  width: max-content;
  animation: marquee 35s linear infinite;
}

.animate-marquee:hover {
  animation-play-state: paused;
}

/* Radar Pulse Effect */
@keyframes radarPulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 138, 0, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(255, 138, 0, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 138, 0, 0);
  }
}

.radar-pulse {
  animation: radarPulse 2s infinite cubic-bezier(0.4, 0, 0.6, 1);
}

/* Scan-line animation for team cards & HUD */
@keyframes scanline {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(1000%);
    opacity: 0;
  }
}

.scan-line {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #ff8a00, transparent);
  box-shadow: 0 0 8px #ff8a00;
  opacity: 0;
  pointer-events: none;
  z-index: 10;
}

.has-scanline:hover .scan-line {
  animation: scanline 2.5s linear infinite;
}

/* HUD Blink / Telemetry Indicator */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.animate-blink {
  animation: blink 1.5s infinite ease-in-out;
}

/* Toast Notification slide in */
@keyframes toastSlideIn {
  0% {
    opacity: 0;
    transform: translate(-50%, 20px);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.animate-toast {
  animation: toastSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Subtle Floating Hover */
.hover-float {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hover-float:hover {
  transform: translateY(-4px);
}

/* Target Section Focus & Glow Pulse (for direct anchors like #talon, #altek-2026) */
@keyframes targetHighlightGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(247, 152, 15, 0.7);
    border-color: rgb(247, 152, 15);
  }
  35% {
    box-shadow: 0 0 40px 8px rgba(247, 152, 15, 0.5);
    border-color: rgb(247, 152, 15);
  }
  70% {
    box-shadow: 0 0 20px 4px rgba(247, 152, 15, 0.25);
    border-color: rgb(247, 152, 15);
  }
  100% {
    box-shadow: none;
  }
}

.target-highlight-pulse {
  animation: targetHighlightGlow 2.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
