/* ==========================================================================
   ANIMATIONS — вход при загрузке, scroll-reveal, лёгкое движение
   ========================================================================== */

@keyframes fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Оркестрованный вход hero */
.hero [data-enter] { animation: fade-up 0.7s var(--ease-out) backwards; }
.hero [data-enter="1"] { animation-delay: 0.05s; }
.hero [data-enter="2"] { animation-delay: 0.15s; }
.hero [data-enter="3"] { animation-delay: 0.28s; }
.hero [data-enter="4"] { animation-delay: 0.40s; }
.hero [data-enter="5"] { animation-delay: 0.52s; }

/* Scroll-reveal (включается через IntersectionObserver в main.js) */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal[data-d="1"] { transition-delay: 0.06s; }
.reveal[data-d="2"] { transition-delay: 0.12s; }
.reveal[data-d="3"] { transition-delay: 0.18s; }
.reveal[data-d="4"] { transition-delay: 0.24s; }

/* Пульс «живого» индикатора */
@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 var(--glow); }
  50%      { box-shadow: 0 0 0 7px rgba(109,94,252,0); }
}
.live-dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--iris);
  animation: pulse-dot 2.4s var(--ease-in-out) infinite;
}

/* Мягкое «парение» живой карточки продукта — ровно, без наклона */
@keyframes card-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

@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 { opacity: 1 !important; transform: none !important; }
  .seam-word::after { transform: scaleX(1) !important; }
  /* градиентные тексты остаются читаемыми при отключённом движении */
  .grad-text, .seam-word, .hero-stat .n, .work-screen .big-word { animation: none !important; }
}
