/* ═══════════════════════════════════════════════════════════════
   Nar Çiçeğim Restaurant — Hareket katmanı / başlangıç durumları
   Buradaki kurallar yalnızca JavaScript açıkken (html.nc-js)
   uygulanır; JS kapalıysa sayfa hiçbir şey gizlemeden açılır.
   ═══════════════════════════════════════════════════════════════ */

/* ── satır maskesi (başlık açılımları) ───────────────────────── */
.nc-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.04em;   /* alt çıkıntılar (g, ğ, ç, ş, y) kırpılmasın */
  margin-bottom: -0.04em;
}
.nc-line__i {
  display: block;
  will-change: transform;
}
.nc-word { display: inline-block; }

/* Bölücünün eklediği saran ögeler tipografiye karışmaz.
   (Sayfanın kendi `h1 > span` gibi kuralları bunlara uğramasın.) */
.nc-line,
.nc-line__i,
.nc-word {
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

/* ── başlangıç durumları ──────────────────────────────────────
   Yalnızca opacity kullanılır. CSS'te yüzdelik transform bırakmak
   GSAP'in hesabını bozar (matrisi piksel olarak okuyup üstüne ekler);
   bütün dönüşümleri açılışta GSAP kurar. */
.nc-js [data-nc] { opacity: 0; }
.nc-js [data-nc="stagger"] { opacity: 1; }
.nc-js [data-nc="stagger"] > * { opacity: 0; }

/* ── görsel çerçevesi: içindeki fotoğrafın ölçeklenebilmesi için ── */
.nc-frame { overflow: hidden; }
.nc-frame > img,
.nc-frame > picture > img { will-change: transform; }

/* ── kayan yazı bandı ────────────────────────────────────────── */
.nc-marquee { overflow: hidden; white-space: nowrap; }
.nc-marquee__track { display: inline-flex; will-change: transform; }
.nc-marquee__track > * { flex: none; }

/* ── sürükle-kaydır şeridi ───────────────────────────────────── */
.nc-drag { cursor: grab; }
.nc-drag.is-dragging { cursor: grabbing; user-select: none; }
.nc-drag.is-dragging a,
.nc-drag.is-dragging img { pointer-events: none; }

/* ── imleç etiketi (fotoğraf şeritleri üzerinde) ─────────────── */
.nc-cursor {
  position: fixed;
  top: 0; left: 0;
  z-index: 70;
  display: grid;
  place-items: center;
  width: 84px; height: 84px;
  border-radius: 50%;
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.25;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-50%, -50%, 0) scale(.4);
  mix-blend-mode: difference;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .55);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

/* ── sayfa üstü okuma çubuğu ─────────────────────────────────── */
.nc-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  z-index: 95;
  pointer-events: none;
}

/* ── hareket azaltma tercihi: her şey anında yerinde ─────────── */
@media (prefers-reduced-motion: reduce) {
  .nc-js [data-nc],
  .nc-js [data-nc] > *,
  .nc-js [data-nc] .nc-line__i {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }
  .nc-cursor { display: none; }
}

/* Lenis devredeyken tarayıcının kendi yumuşatması kapatılır. */
html.nc-js { scroll-behavior: auto; }
