/* ============================================
   SCROLL ANİMASYONLARI — reveal-on-scroll sistemi
   Kullanım: herhangi bir elemente class="reveal" ekle.
   Gecikmeli sıralama için: reveal-1, reveal-2, reveal-3, reveal-4
   (grid/kart dizilerinde art arda kartlara sırayla verilir)
   ============================================ */

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1);
  will-change:opacity, transform;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.reveal-1{ transition-delay:.08s; }
.reveal-2{ transition-delay:.16s; }
.reveal-3{ transition-delay:.24s; }
.reveal-4{ transition-delay:.32s; }

/* soldan/sağdan gelen varyantlar, gerektiğinde kullan */
.reveal-left{ transform:translateX(-32px); }
.reveal-left.is-visible{ transform:translateX(0); }
.reveal-right{ transform:translateX(32px); }
.reveal-right.is-visible{ transform:translateX(0); }

/* hafif ölçek varyantı — görsel/kart vurgusu için */
.reveal-scale{ transform:scale(.94); }
.reveal-scale.is-visible{ transform:scale(1); }

/* sayı/istatistik say-up efekti kullanan elementler için */
.count-up{ font-variant-numeric:tabular-nums; }

/* kart hover — mevcut .btn-primary/.btn-ghost dışındaki genel kart/görsel öğeleri için ince bir kaldırma efekti */
.hover-lift{
  transition:transform .4s cubic-bezier(.16,.84,.44,1), box-shadow .4s ease;
}
.hover-lift:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 40px rgba(0,0,0,.35);
}

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
}
