/* Siluet katmanlı yazı bileşeni (ANA-SAYFA-KURGU.md bölüm 6; js/katman.js ile). Sahibi WP1.
   Katmanlar: gök plakası (z0) < yazı (z1) < ön katman (z2, bina + zemin tek parça). Ön katmana burada hiçbir dönüşüm yazılmaz (Kurallar 25).
   Konum ve boy değişkenleri JS'ten gelir: --kt-fs --kt-x --kt-y (px) --kt-giz (çatının arkasına iniş, px) --kt-y0 (dolly başlangıç kayması) --kt-lh --kt-renk.
   İlerleme değişkenleri tween'lenir: --kt-p yükseliş (0 gizli, 1 dinlenme), --kt-n netlik (1 bulanık, 0 net), --kt-q dolly (1 başlangıç, 0 dinlenme),
   --kt-r sayaç (0 sıfır, 1 hedef rakam), --kt-m bozulmuş maske (1 gizli, 0 görünür). Hepsi inherits: false (tween edilen öğe kendisi okur). */
@property --kt-p { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --kt-n { syntax: '<number>'; inherits: false; initial-value: 0; }
@property --kt-q { syntax: '<number>'; inherits: false; initial-value: 0; }
@property --kt-r { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --kt-m { syntax: '<number>'; inherits: false; initial-value: 0; }

.kt { position: relative; overflow: hidden; isolation: isolate; background: var(--kt-zemin, transparent); }
.kt__ol, .kt__alan { position: absolute; display: block; visibility: hidden; pointer-events: none; margin: 0; padding: 0; border: 0; width: 0; height: 0; left: 0; top: 0; }
.kt__alan { left: var(--kt-l, 0px); top: var(--kt-t, 0px); width: var(--kt-w, 100%); height: var(--kt-h, 100%); }

/* ---------- görsel katmanlar ---------- */
.kt__gok, .kt__on { position: absolute; left: var(--kt-l, 0px); top: var(--kt-t, 0px); width: var(--kt-w, 100%); height: var(--kt-h, 100%); max-width: none; object-fit: cover; object-position: var(--kt-op, 50% 50%); user-select: none; -webkit-user-drag: none; }
.kt__gok { z-index: 0; transform-origin: 50% var(--kt-ufuk, 50%);
  translate: calc(var(--kt-gx, 0px) - var(--kt-ix, 0) * var(--kt-ig, 0px)) calc(0px - var(--kt-iy, 0) * var(--kt-ig, 0px)); scale: calc(var(--kt-gs, 1) * var(--kt-dz, 1)); }
.kt__gok--bulanik { opacity: 0; }
.kt__gok--css { filter: blur(12px); }                                /* bulanık dosya yoksa gök plakasının kendisi */
.kt__on { z-index: 2; }
.kt:not(.kt--hazir) .kt__gok, .kt:not(.kt--hazir) .kt__on { visibility: hidden; }     /* iki katman birlikte belirir (js/katman.js, decode) */
/* erime: gökün üst kenarı sayfa tonuna erir, çatıya hiç değmez (R72); file:// altında yalnız gradyan maske */
.kt--erime .kt__gok { -webkit-mask-image: linear-gradient(to bottom, transparent, #000 var(--kt-erime, 0px)); mask-image: linear-gradient(to bottom, transparent, #000 var(--kt-erime, 0px)); }

/* ---------- yazı katmanı ---------- */
.kt__yazi { position: absolute; inset: 0; z-index: 1; pointer-events: none;
  translate: calc(var(--kt-tx, 0px) - var(--kt-ix, 0) * var(--kt-it, 0px)) calc(0px - var(--kt-iy, 0) * var(--kt-it, 0px)); }
/* flex sütunu: satır kaplarının negatif kenar boşlukları birbirine çökmez (satır aralığı tam --kt-lh) */
.kt__metin { position: absolute; left: 0; top: 0; margin: 0; padding: 0; width: max-content; white-space: nowrap; font-kerning: normal; font-synthesis: none;
  display: flex; flex-direction: column; align-items: flex-start;
  font-family: var(--sans, "Aeonik", -apple-system, "Helvetica Neue", Arial, sans-serif);
  font-size: var(--kt-fs, clamp(40px, 8vw, 140px)); line-height: var(--kt-lh, .8); letter-spacing: var(--kt-ls, -.02em); color: var(--kt-renk, #1D1D1F);
  translate: var(--kt-x, 0px) var(--kt-y, 0px); visibility: hidden; }
.kt__metin[data-kt-hazir="1"] { visibility: visible; }
.kt__metin--hafif { font-weight: 300; }
.kt__metin--orta { font-weight: 500; }
.kt__metin--kalin { font-weight: 700; }
.kt__metin[data-kt-fiil="yuksel"].kt__metin--kalin, .kt__metin[data-kt-fiil="bat"].kt__metin--kalin { --kt-ls: -.05em; }
.kt__metin[data-kt-fiil="netles"] { --kt-ls: -.03em; }
.kt__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* satır kabı: Türkçe işaretler (İ noktası, ğ yayı) için pay; padding ve negatif kenar boşluğu birbirini sıfırlar (taban çizgisi değişmez) */
.kt__metin .s { display: block; flex: none; width: max-content; padding: .3em .1em .3em; margin: -.3em -.1em -.3em; transform: translateY(calc((1 - var(--kt-p, 1)) * var(--kt-giz, 0px))); }
.kt__metin .s-i { display: inline-block; }
.kt__metin .k { display: inline-block; position: relative; transform: translateY(calc((1 - var(--kt-p, 1)) * var(--kt-giz, 0px))); }
.kt__tab { display: inline-block; width: 0; height: 0; vertical-align: baseline; }

/* sayaç sütunu (odometre): pencere tam 1 em, içinde 0-9 şeridi; harfin kendisi görünmez ama genişliği ve tabanı verir */
.kt__metin .k--d { clip-path: inset(calc((var(--kt-lh, .8) - 1) / 2 * 1em) -.04em); }
.kt__metin .k--d .k-i { visibility: hidden; }
.kt__metin .k-r { position: absolute; left: 0; right: 0; top: calc((var(--kt-lh, .8) - 1) / 2 * 1em); text-align: center;
  transform: translateY(calc(var(--kt-r, 1) * var(--kt-d, 0) * -1em)); }
.kt__metin .k-r b { display: block; height: 1em; line-height: 1em; font-weight: inherit; }

/* dolly zoom: gök ölçeği JS'ten (kök --kt-ufuk), yazı ölçeği ve kayması burada; ön katman değişmez */
.kt__metin[data-kt-fiil="dolly"] { transform: translateY(calc(var(--kt-q, 0) * var(--kt-y0, 0px))) scale(calc(1 + var(--kt-q, 0) * .6)); }

/* netles: satırlar sağdan gelir, canlı bulanıklık yalnız yazıda (telefonda 10 px) */
.kt__metin[data-kt-fiil="netles"] .s-i { translate: calc(var(--kt-n, 0) * var(--kt-nx, 12vw)) 0; opacity: calc(1 - var(--kt-n, 0) * .5);
  letter-spacing: calc(var(--kt-ls, -.03em) + var(--kt-n, 0) * .09em); filter: blur(calc(var(--kt-n, 0) * 14px)); }
@media (max-width: 899px) { .kt__metin[data-kt-fiil="netles"] .s-i { filter: blur(calc(var(--kt-n, 0) * 10px)); } }

/* ---------- bozulma: kt--duz, yazı ön katmanın önünde, fiil yerine satır maskesi ---------- */
.kt--duz .kt__yazi { z-index: 3; }
.kt--duz .kt__gok--bulanik { display: none; }
.kt--duz .kt__metin .s { overflow: hidden; transform: none; }
.kt--duz .kt__metin .k, .kt--duz .kt__metin .s-i { transform: translateY(calc(var(--kt-m, 0) * 112%)); }
.kt--duz .kt__metin .s-i { translate: none; opacity: 1; filter: none; letter-spacing: var(--kt-ls, -.02em); }
.kt--duz .kt__metin[data-kt-fiil="dolly"] { transform: none; }
.kt--duz .kt__metin .k-r { transform: translateY(calc(var(--kt-d, 0) * -1em)); }

/* hareket azaltma: son hâl, filtre ve kayma yok */
html.az-hareket .kt__metin, html.az-hareket .kt__metin * { filter: none !important; }
@media (prefers-reduced-motion: reduce) { .kt__metin, .kt__metin * { filter: none !important; } .kt__gok { translate: none; scale: 1; } .kt__yazi { translate: none; } }
