/* ============================================================
   ATÖLYE HAREKET SİSTEMİ — yapısal CSS
   hareket.js ile birlikte kullanılır. Tek başına hiçbir görsel
   karar vermez; sadece ScrollSmoother'ın ihtiyaç duyduğu iskeleti
   ve hareketin bozulmaması için gereken kuralları kurar.
   ============================================================ */

/* ScrollSmoother #smooth-content'i transform eder.
   Bu yüzden:
     · position:fixed öğeler #smooth-wrapper DIŞINDA olmalı
     · içeride position:sticky güvenilmez → ScrollTrigger pin kullan
   Kural ihlal edilirse hareket sessizce bozulur, hata vermez. */

#smooth-wrapper { overflow: hidden; }
#smooth-content { will-change: transform; }

/* ScrollSmoother yokken (CDN düştü / hareket kapalı) sayfa
   normal akışta kalsın — hiçbir şey gizlenmez, hiçbir şey kırılmaz. */
html:not(.hareket-acik) #smooth-wrapper,
html:not(.hareket-acik) #smooth-content { overflow: visible; will-change: auto; }

/* ---------- yatay taşma emniyeti ----------
   data-speed ile kayan katmanlar viewport dışına çıkabilir. */
body { overflow-x: clip; }

/* ---------- görsel çerçevesi ----------
   data-zoom kullanan her görsel bir çerçeve içinde olmalı,
   yoksa ölçeklenirken komşularının üstüne taşar. */
[data-cerceve] { overflow: hidden; position: relative; }
[data-cerceve] > img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- SplitText ----------
   maskeli satır açılışı: satır kendi kutusunun arkasından yükselir */
.satir-maske { overflow: hidden; display: block; }

/* ---------- yığın ----------
   data-yigin çocuklarının üst üste binebilmesi için */
[data-yigin] > * { will-change: transform; }

/* ---------- erişilebilirlik ----------
   Hareket kapalıysa her şey anında ve tam görünür. */
@media (prefers-reduced-motion: reduce) {
  #smooth-wrapper, #smooth-content { overflow: visible; will-change: auto; transform: none !important; }
  [data-reveal], [data-split], [data-sayac] { opacity: 1 !important; transform: none !important; }
}
