/**
 * ============================================================================
 * [MODÜL: ANIMATIONS — Paylaşılan Animasyonlar]
 * Youthside ATS — Profile UI
 * ============================================================================
 * Amaç: Birden fazla bileşende kullanılan keyframe animasyonlarını merkezi
 *        olarak yönetir. Tekrar eden @keyframes tanımlarını önler.
 *
 * Mimar Notu (Ferhat Cengiz):
 *   prefers-reduced-motion: Erişilebilirlik için animasyon-hassas kullanıcılar
 *   düşünüldü. Animasyonları devre dışı bırakan bir media query var.
 *
 * DRY Notu: Tüm keyframe'ler tek yerde. Bileşenler sadece class kullanır.
 * ============================================================================
 */

/* ── Float — Yukarı-Aşağı Süzülme ─────────────────────────── */
@keyframes float {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0);
  }
}

.animate-float {
  animation: float 6s ease-in-out infinite;
}

/* ── Fade In Up — Aşağıdan Yukarıya Belirme ────────────────── */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in-up {
  animation: fadeInUp 0.6s ease-out forwards;
}

/* ── Fade In — Basit Belirme ───────────────────────────────── */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.animate-fade-in {
  animation: fadeIn 0.4s ease-out forwards;
}

/* ── Slide In Left — Soldan Kayma (Sidebar) ────────────────── */
@keyframes slideInLeft {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}

/* ── Erişilebilirlik: Animasyon Tercihine Saygı ────────────── */
/* Neden: Vestibüler bozuklukları olan kullanıcılar için WCAG uyumu */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
