/* === Hero Section === */

/* Background signal flow lines */
.hero-signal-path {
  stroke-dasharray: 14 10;
  animation: heroSignalFlow 8s linear infinite;
}
.hero-signal-path--2 {
  animation-duration: 10s;
  animation-direction: reverse;
}
@keyframes heroSignalFlow {
  to { stroke-dashoffset: -480; }
}

/* Primary CTA sheen sweep on hover */
.hero-cta-sheen {
  background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.25) 50%, transparent 80%);
  transform: translateX(-120%);
  transition: transform 0.6s ease;
  pointer-events: none;
}
.hero-cta-primary:hover .hero-cta-sheen {
  transform: translateX(120%);
}

/* Visual column frame: fades/scales in on scroll via .is-visible from mainObserver */
.hero-visual-frame {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 0.8s ease, transform 0.8s ease, box-shadow 0.8s ease;
}
.hero-visual.is-visible .hero-visual-frame {
  opacity: 1;
  transform: scale(1);
  box-shadow:
    0 20px 40px -12px rgba(15, 23, 42, 0.12),
    0 0 0 1px rgba(8, 145, 178, 0.15);
}


@keyframes pcbFabFloat {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50%      { transform: translateY(-14px) rotate(-1deg); }
}
.pcb-fab-float {
    animation: pcbFabFloat 6s ease-in-out infinite;
}
.hero-visual:hover .pcb-fab-float {
    animation-play-state: paused;
}