/* =========================================================================
   ORTAK: Animasyon sistemi
   - .reveal: ekrana girince yumuşakça belirir (js/ui-motion.js ekler)
   - Görünüm geçişleri: ana sayfa / profil / rapor açılırken fade-in
   - prefers-reduced-motion açıksa tüm hareketler kapanır
   Görünmezlik yalnızca html.motion-ready varken uygulanır; JS çalışmazsa
   hiçbir içerik gizli kalmaz.
   ========================================================================= */

@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes viewEnter {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

html.motion-ready .reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.7s var(--ease-out) var(--reveal-delay, 0ms),
    transform 0.7s var(--ease-out) var(--reveal-delay, 0ms),
    border-color var(--dur-base) ease,
    box-shadow var(--dur-base) ease;
}

html.motion-ready .reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Görünüm geçişleri (display:none → görünür olduğunda tekrar oynar) */
#landingViewSection:not(.hidden),
#profileViewSection:not(.hidden),
#reportSection:not(.hidden) {
  animation: viewEnter 0.45s var(--ease-out) backwards;
}

/* Açılır SSS / details içerikleri */
details[open] > :not(summary) {
  animation: fadeSlideUp 0.32s var(--ease-out) both;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-behavior: auto; }
  html.motion-ready .reveal {
    opacity: 1;
    transform: none;
  }
}
