/* =========================================================
   BlinkyWave · Движение: keyframes + reveal
   ========================================================= */

/* Появление при скролле */
.rv { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--e-out), transform .7s var(--e-out); transition-delay: var(--rv-delay, 0ms); }
.rv.in { opacity: 1; transform: none; }

@keyframes ping {
  0%, 100% { box-shadow: 0 0 0 0 rgba(22,199,132,.5); }
  70%      { box-shadow: 0 0 0 7px rgba(22,199,132,0); }
}
@keyframes sweep {
  from { transform: translateX(-90px); }
  to   { transform: translateX(560px); }
}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Пульсирующая точка (teal) */
@keyframes pulseDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(18,214,194,.5); }
  70%      { box-shadow: 0 0 0 7px rgba(18,214,194,0); }
}
/* Концентрические кольца ядра */
@keyframes ringPulse {
  0%   { transform: translate(-50%, -50%) scale(.35); opacity: .9; }
  80%  { opacity: 0; }
  100% { transform: translate(-50%, -50%) scale(1.6); opacity: 0; }
}
@keyframes orbGlow {
  0%, 100% { box-shadow: 0 0 28px 6px rgba(18,214,194,.45), 0 0 60px 12px rgba(59,108,255,.35); }
  50%      { box-shadow: 0 0 40px 10px rgba(18,214,194,.6), 0 0 84px 20px rgba(59,108,255,.5); }
}
/* Эквалайзер «живого сигнала» */
@keyframes eq {
  0%, 100% { transform: scaleY(.22); }
  50%      { transform: scaleY(1); }
}
/* Медленный дрейф свечения в CTA */
@keyframes ctaGlow {
  0%   { transform: translate(0,0) scale(1); }
  50%  { transform: translate(8%,-12%) scale(1.18); }
  100% { transform: translate(-6%,8%) scale(.92); }
}
/* Появление ответа FAQ */
@keyframes faqIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
@keyframes dash {
  to { stroke-dashoffset: 0; }
}
@keyframes blip {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}

/* линия осциллографа «рисуется» при загрузке */
.scope__line.draw { stroke-dasharray: 900; stroke-dashoffset: 900; animation: dash 2.2s var(--e-out) forwards; }

@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1; transform: none; }
  .scope__sweep, .locline__track { animation: none; }
  .scope__line.draw { stroke-dashoffset: 0; animation: none; }
  .orb, .core__ring, .core__orb, .core__eq span, .cta__box::before, .cta__box::after,
  .orbs::after, .sec-head__eq i, .r-ring, .r-sweep, .r-blip { animation: none !important; }
}
