/* ==========================================================================
   animations.css — کی‌فریم‌ها، ریویل اسکرول و احترام به prefers-reduced-motion
   ========================================================================== */

/* — حرکت آرام هاله‌های نورانی پس‌زمینه — */
@keyframes drift-a {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(-7vw, 5vh, 0) scale(1.18); }
}
@keyframes drift-b {
  from { transform: translate3d(0, 0, 0) scale(1.1); }
  to   { transform: translate3d(6vw, -6vh, 0) scale(0.95); }
}

/* — نبض نقطه‌ی وضعیت آنلاین — */
@keyframes pulse-dot {
  0%   { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.5); }
  70%  { box-shadow: 0 0 0 9px rgba(52, 211, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}

/* — چشمک کرسر ترمینال — */
@keyframes blink { 50% { opacity: 0; } }

/* — ورود نرم پنل‌ها — */
@keyframes fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

/* — ریویل هنگام اسکرول (با IntersectionObserver فعال می‌شود) — */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  transition-delay: calc(var(--i, 0) * 70ms); /* پلکانی */
}
.reveal.is-visible { opacity: 1; transform: none; }

/* — احترام به کاربران با reduced motion — */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}
