/* FX — компактный набор keyframes и мелких эффектов */

/* Stat counter reveal — для .hero-stats .stat-num */
@keyframes statReveal {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.hero-stats .stat-num.animated,
.counter.animated { animation: statReveal 0.6s ease both; }

/* Icon-pop — лёгкий подскок иконки при наведении на карточку */
.pain-emoji, .sol-icon, .step-num {
  transition: transform var(--dur-base) var(--ease-out);
}

.pain:hover .pain-emoji,
.sol-card:hover .sol-icon { transform: scale(1.1) rotate(-4deg); }
.step:hover .step-num { transform: scale(1.08); }

/* Aurora-glow для акцентных текстов в заголовках */
@keyframes auroraGlowText {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(46,166,255,0.18)) drop-shadow(0 0 16px rgba(178,75,243,0.08)); }
  50%      { filter: drop-shadow(0 0 12px rgba(46,166,255,0.28)) drop-shadow(0 0 28px rgba(178,75,243,0.14)); }
}

h1 .text-shimmer, h1 .text-gradient {
  animation: auroraGlowText 7s ease-in-out infinite;
  will-change: filter;
}

/* Eyebrow tilt на hover */
.eyebrow { transition: transform var(--dur-fast), letter-spacing var(--dur-fast); }
.eyebrow:hover { transform: translateY(-1px); letter-spacing: 0.18em; }

/* Cursor-blink — для мокапа чата */
@keyframes cursorBlink {
  0%, 49%   { opacity: 1; }
  50%, 100% { opacity: 0; }
}

.cursor-blink::after {
  content: '▌';
  margin-left: 2px;
  color: var(--accent-tg);
  animation: cursorBlink 1s steps(1) infinite;
}

/* Sale-badge pulse усиленный */
@keyframes saleBeat {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,95,122,0.5); }
  50%      { box-shadow: 0 0 0 10px rgba(255,95,122,0); }
}

.hero-sale, .tariff-badge { animation: saleBeat 2.4s ease-out infinite; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
