/* Turkish Spa — efekt: başlık/paragraf belirmesi + rakam sayımı (M8, K4d). Kullanım: BENIOKU.md.
   tokens.css --hareket-* okunur (yoksa PLAN §1.9 değerleri). JS yalnız sınıf + --bl-gecikme yazar (satır içi stil yok).
   Gizleme yalnız JS'in eklediği sınıfla: betiksiz/hareket azaltmada içerik hep görünür. */

.efekt-bl {
  --bl-sure: var(--hareket-sure, 700ms);
  --bl-egri: var(--hareket-egri, cubic-bezier(0.2, 0.7, 0.2, 1));
  --bl-kayma: var(--hareket-kayma, 16px);
}
.efekt-bl--hafif { --bl-kayma: calc(var(--hareket-kayma, 16px) * 0.5); }

.efekt-bl__oge {
  transition:
    opacity var(--bl-sure) var(--bl-egri) var(--bl-gecikme, 0ms),
    translate var(--bl-sure) var(--bl-egri) var(--bl-gecikme, 0ms);
}
/* Gizleme yalnız ekranda ve hareket serbestken (betik bu sınıfı başka durumda zaten koymaz; bu bir güvencedir) */
@media screen and (prefers-reduced-motion: no-preference) {
  .efekt-bl__oge--bekle { opacity: 0; translate: 0 var(--bl-kayma); }
}

/* Sayım: asıl sayı yerinde (yer tutar, ekran okuyucu okur), sayaç üstte (aria-hidden), sola yaslı: başlangıcı hiç kımıldamaz
   (CLS 0, sütun hizası korunur). Rakamlar asıl metinle aynı biçimde: son karede sayaç = asıl sayı, değişim görünmez. */
.efekt-bl__sayi { position: relative; }
.efekt-bl__sayi--sayiyor .efekt-bl__son { opacity: 0; }
.efekt-bl__sayac {
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce), print {
  .efekt-bl__sayac { display: none; }
  .efekt-bl__sayi--sayiyor .efekt-bl__son { opacity: 1; }
}
