/* =========================================================
   Genel animasyon yardımcıları
========================================================= */
.fade-in{animation:fade-in .7s var(--ease-premium) both;}
@keyframes fade-in{from{opacity:0;}to{opacity:1;}}

@keyframes pop-in{from{opacity:0;transform:translateY(18px) scale(.96);}to{opacity:1;transform:none;}}

/* Hero kartlarının çok hafif, uyku hâlinde bir salınımı. Genlik bilerek
   küçük (4px): dikkat çekmek için değil, sayfanın "donmuş" görünmemesi
   için. Her kart farklı süre/gecikme alır, aksi halde beşi birlikte
   inip kalkar ve mekanik durur. */
@keyframes float-soft{
  0%,100%{transform:translateY(var(--lift,0)) scale(var(--scale,1));}
  50%{transform:translateY(calc(var(--lift,0px) - 6px)) scale(var(--scale,1));}
}
@media (min-width:1041px) and (prefers-reduced-motion: no-preference){
  .hero-card{animation:float-soft var(--float-dur,7s) ease-in-out var(--float-delay,0s) infinite;}
  .hero-card:nth-child(1){--float-dur:7.5s;--float-delay:0s;}
  .hero-card:nth-child(2){--float-dur:8.4s;--float-delay:.6s;}
  .hero-card:nth-child(3){--float-dur:6.8s;--float-delay:1.1s;}
  .hero-card:nth-child(4){--float-dur:8.1s;--float-delay:.3s;}
  .hero-card:nth-child(5){--float-dur:7.2s;--float-delay:.9s;}
  /* Fare üzerindeyken salınım durur; aksi halde hover'daki yükselme ile
     animasyon aynı anda transform'a yazıp titremeye yol açardı. */
  .hero-card:hover{animation-play-state:paused;}
}

/* Ekran kenarındaki dekoratif ikonların yavaş nefes alması */
@keyframes drift{
  0%,100%{opacity:var(--decor-op,.18);}
  50%{opacity:calc(var(--decor-op,.18) * 1.7);}
}
