/* =====================================================
   TON Coffee Roastery — HOME
   Yalnızca index.html yükler.
   İçerik: Koridor · Fiyat Panosu (podyum) · CTA Platform · homepage responsive
   Not: AI Chat Hero (.hc-*) → hero.css'e taşındı (9 Haz 2026).
   Bağımlılık: core.css
   ===================================================== */

/* ---- CTA Platform — Ambient Ember (kart-dışı: ışık=dolgu · 21st CTA-with-Glow) ----
   Kart yok; merkez içerik, arkada STATİK amber kor. Hover'da glow yükselir+güçlenir.
   Derinlik yüzeyden değil ışıktan → karanlık temada doğar, hero amber kimliğiyle bağ.
   Sürekli drift YOK (perf/not-5: idle'da repaint yok); hover transient, idle maliyeti sıfır. */
.cta-platform{
  position: relative;
  overflow: hidden;
}
.cta-platform__glow{
  position: absolute; z-index: 0; left: 50%; top: 44%;
  width: min(760px, 100%); height: 400px;
  transform: translate(-50%, -50%);
  pointer-events: none;
  background: radial-gradient(ellipse 56% 58% at 50% 50%, color-mix(in srgb, var(--act) 15%, transparent), transparent 72%);
  filter: blur(26px); opacity: 0.5;          /* kısık amber havuz (Çağkan ref) — büyük bulut değil */
  transition: opacity 0.6s var(--ease-o);
}
.cta-platform:hover .cta-platform__glow{ opacity: 0.62; }   /* hafif life; transform lift yok */
.cta-platform__inner{
  position: relative; z-index: 1;
  max-width: 680px; margin: 0 auto;
  padding: clamp(4.5rem, 9vw, 7.5rem) var(--gut);
  text-align: center;
}
.cta-platform__eyebrow{
  font-family: var(--font-m); font-size: 0.76rem; letter-spacing: 0.04em;
  text-transform: lowercase; color: var(--act); margin-bottom: 1.4rem;
}
.cta-platform__title{
  font-family: 'JetBrains Mono', var(--font-m); font-weight: 800;
  font-size: clamp(1.8rem, 3.6vw, 2.7rem); line-height: 1.15; letter-spacing: -0.03em;
  color: var(--cream); margin: 0 0 1.1rem; padding-bottom: 0.06em; text-wrap: balance;
}
.cta-platform__title em{
  font-style: normal; color: var(--cream);
  text-shadow: 0 0 26px color-mix(in srgb, var(--act) 60%, transparent), 0 0 7px color-mix(in srgb, var(--act) 42%, transparent);
}
.cta-platform__sub{
  font-family: var(--font-m);
  font-size: 0.9rem; line-height: 1.7; color: var(--cream-dim);
  max-width: 52ch; margin: 0 auto 2.2rem;
}
.cta-platform__sub::before{ content: none; }
/* buton dili: mono-UPPERCASE üniforması yerine lowercase (yalnız bu bölüm; .btn davranışı/magnetic aynı) */
.cta-platform .btn{ text-transform: lowercase; letter-spacing: 0.04em; }
/* Buton: global .btn (krem) + data-magnetic — amber ghost buton kaldırıldı (Çağkan ref).
   .btn inline-flex + inner text-align:center → ortalanır; magnetic transform .btn'de hazır. */

/* ---- Kahve Borsası — lider (sol) + iki akan sıra (sağ) ----------
   V1 Terminal lider kartı görünümü + V3 Derinlik hover hareketi.
   Yön sinyali: medyan ₺/100g (yeşil ▼ değer · kırmızı ▲ premium).
   Sadece ok + renk, yüzde yok; oklar yanıp söner. Kayan üst şerit yok. */
.pboard{
  padding: 1.25rem 0 4.5rem;
  scroll-margin-top: 5rem; /* hero scroll-cue anchor'ı fixed nav altına kaymasın */
}
/* manifesto'dan hemen sonraki koridor → üst boşluk küçük (geçiş); 02/03 koridorları 5rem kalır */
#pazar.corridor{ padding-top: 2.5rem; }

.bx2{ max-width: var(--shell); margin: 0 auto; padding-inline: var(--gut); }

.bx2-head{
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.8rem 1rem; flex-wrap: wrap; margin-bottom: 1.1rem;
}
/* eyebrow YEŞİL */
.bx2-eyebrow{
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-family: var(--font-m); font-size: 0.76rem; letter-spacing: 0.02em;
  text-transform: lowercase; color: var(--save);
}
.bx2-live{ width: 7px; height: 7px; border-radius: 50%; background: var(--save); flex: none; }
.bx2-all{
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--font-m); font-size: 0.74rem; letter-spacing: 0.02em;
  text-transform: lowercase; color: var(--cream-dim); text-decoration: none;
  transition: color var(--dur-2), gap var(--dur-2);
}
.bx2-all:hover{ color: var(--cream); gap: 0.65rem; }
.bx2-all svg{ width: 13px; height: 13px; }

/* ---- yön oku: SADECE ok + renk, yüzde yok, yanıp söner ---- */
.bx2-arr{ display: inline-flex; line-height: 1; flex: none; font-size: 0.82em; transform: translateY(0.5px); }
.bx2-arr--down{ color: var(--save); }            /* piyasa altı = değer = yeşil */
.bx2-arr--up{ color: var(--down); }              /* piyasa üstü = premium = kırmızı */
.bx2-arr--flat{ color: var(--muted); font-size: 0.6em; }

/* ---- ana ızgara: lider | iki sıra ---- */
.bx2-main{ display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 1rem; align-items: stretch; }
@media (max-width: 760px){ .bx2-main{ grid-template-columns: 1fr; } }

/* ---- LİDER KARTI — V1 Terminal görünümü + V3 Derinlik hareketi ---- */
.bx2-leader{
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  text-decoration: none; color: inherit;
  padding: 1.6rem 1.7rem; border-radius: var(--r);
  background:
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(255,255,255,0.012) 3px 4px),
    var(--bg-2);   /* kafdeks: yeşil yıkama gitti, düz terminal paneli (tarama çizgisi kaldı) */
  border: 1px solid var(--border-2);
  box-shadow: inset 0 1px 0 var(--highlight), 0 24px 60px -34px var(--shadow-lg);
  transition: transform var(--dur-5) var(--ease-o), box-shadow var(--dur-5) var(--ease-o), border-color var(--dur-4) var(--ease),
              opacity var(--dur-3) var(--ease-o), filter var(--dur-3) var(--ease-o);
}
.bx2-leader::before{
  content: ""; position: absolute; width: 340px; height: 340px; right: -90px; top: -130px; pointer-events: none;
  background: radial-gradient(ellipse, color-mix(in srgb, var(--save) 15%, transparent), transparent 70%);
  opacity: 0.7; transition: opacity var(--dur-5) var(--ease);
}
.bx2-leader::after{
  content: ""; position: absolute; inset: 9px; pointer-events: none; z-index: 1;
  --tl: 12px; --tc: color-mix(in srgb, var(--save) 40%, transparent);
  background-image:
    linear-gradient(var(--tc),var(--tc)), linear-gradient(var(--tc),var(--tc)),
    linear-gradient(var(--tc),var(--tc)), linear-gradient(var(--tc),var(--tc)),
    linear-gradient(var(--tc),var(--tc)), linear-gradient(var(--tc),var(--tc)),
    linear-gradient(var(--tc),var(--tc)), linear-gradient(var(--tc),var(--tc));
  background-repeat: no-repeat;
  background-size: var(--tl) 1px, 1px var(--tl), var(--tl) 1px, 1px var(--tl), var(--tl) 1px, 1px var(--tl), var(--tl) 1px, 1px var(--tl);
  background-position: left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom;
}
.bx2-leader > *{ position: relative; z-index: 2; }

.bx2-tag{
  display: inline-flex; align-items: center; gap: 0.4rem; align-self: flex-start;
  font-family: var(--font-m); font-size: 0.72rem; letter-spacing: 0.03em; text-transform: lowercase; color: var(--save);
}
.bx2-brand{ font-family: var(--font-m); font-size: 0.7rem; letter-spacing: 0.05em; text-transform: lowercase; color: var(--pop-2); margin-top: 1.05rem; }
.bx2-title{
  font-family: 'JetBrains Mono', var(--font-m); font-size: clamp(1.2rem, 2.1vw, 1.62rem); font-weight: 800;
  color: var(--cream); line-height: 1.15; letter-spacing: -0.02em; margin: 0.22rem 0 0.7rem;
}
.bx2-title em{ font-style: normal; color: var(--pop-2); }
.bx2-big{ display: flex; align-items: baseline; gap: 0.5rem; flex-wrap: wrap; margin-top: auto; padding-top: 1.2rem; }
.bx2-big b{ font-family: var(--font-m); font-size: 1.95rem; font-weight: 500; color: var(--cream); font-variant-numeric: tabular-nums; line-height: 1; }
.bx2-big .bx2-arr{ font-size: 1.4rem; transform: translateY(-2px); }
.bx2-unit{ font-family: var(--font-m); font-size: 0.68rem; text-transform: lowercase; letter-spacing: 0.03em; color: var(--cream-dim); }

/* ---- Satın Al — canlıdaki amber imza ---- */
.bx2-buy{
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; gap: 0.55rem; align-self: flex-start; margin-top: 1.2rem;
  font-family: var(--font-m); font-size: 0.74rem; letter-spacing: 0.03em; text-transform: lowercase;
  color: var(--cream); text-decoration: none;
  background: color-mix(in srgb, var(--act) 8%, transparent);
  border: 1px solid var(--act-line); border-radius: var(--r);
  padding: 0.55rem 0.6rem 0.55rem 0.95rem;
  transition: background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), box-shadow var(--dur-3) var(--ease);
}
.bx2-buy::before{
  content: ""; position: absolute; top: 0; bottom: 0; left: -65%; width: 55%;
  background: linear-gradient(100deg, transparent, color-mix(in srgb, var(--act) 34%, transparent), transparent);
  transform: skewX(-18deg); opacity: 0; pointer-events: none;
}
.bx2-buy__chip{
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: var(--r);
  background: color-mix(in srgb, var(--act) 16%, transparent);
  transition: transform var(--dur-2) var(--ease-o);
}
.bx2-buy__chip svg{ width: 11px; height: 11px; }

/* ---- iki akan sıra — Terminal mono çipler ---- */
.bx2-lanes{ display: flex; flex-direction: column; gap: 0.9rem; min-width: 0; justify-content: center; }
.bx2-lane{
  position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.bx2-lane__track{ display: inline-flex; gap: 0.6rem; white-space: nowrap; will-change: transform; }

.bx2-chip{
  position: relative; display: inline-flex; align-items: center; gap: 0.85rem;
  padding: 0.85rem 1.05rem; text-decoration: none; color: inherit;
  border: 1px solid var(--border); background: var(--bg-2); border-radius: 0;
  transition: border-color var(--dur-3) var(--ease), background var(--dur-3) var(--ease),
              opacity var(--dur-3) var(--ease-o), filter var(--dur-3) var(--ease-o);
}
.bx2-chip__id{ display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.bx2-chip__name{ font-family: var(--font-m); font-size: 0.74rem; letter-spacing: 0.01em; color: var(--cream); white-space: nowrap; transition: color var(--dur-2); }
.bx2-chip__brand{ font-family: var(--font-m); font-size: 0.65rem; letter-spacing: 0.04em; text-transform: lowercase; color: var(--pop-2); display: block; }
.bx2-chip__price{ font-family: var(--font-m); font-size: 0.82rem; color: var(--cream); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bx2-chip__price i{ font-style: normal; color: var(--muted); font-size: 0.82em; }
/* satır ışığı: yeşil tarama huzmesi — TEK YÖN, çıkar, geri dönmez */
.bx2-chip::before{
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--save) 24%, transparent) 50%, transparent);
  transform: translateX(-120%);
}

.bx2-note{
  display: flex; gap: 1.6rem; flex-wrap: wrap; margin-top: 1.3rem;
  font-family: var(--font-m); font-size: 0.7rem; letter-spacing: 0.03em; text-transform: lowercase; color: var(--muted);
}
.bx2-note .bx2-arr{ margin-right: 0.35rem; }

/* ---- reveal ---- */
.bx2-rise{ opacity: 0; transform: translateY(12px); }
.is-in .bx2-rise{
  opacity: 1; transform: translateY(0);
  transition: opacity var(--dur-6) var(--ease-o), transform var(--dur-6) var(--ease-o);
  transition-delay: calc(var(--i, 0) * 70ms);
}

/* ---- HAREKET ----
   reduced-motion override (Çağkan 17 Haz, kilitli kural #12 bilerek ezildi): her zaman çalışır */
.bx2-lane--a .bx2-lane__track{ animation: bx2-marq 40s linear infinite; }
.bx2-lane--b .bx2-lane__track{ animation: bx2-marq 48s linear infinite reverse; }
.bx2-live{ animation: bx2-pulse 2s infinite; }
.bx2-arr--down, .bx2-arr--up{ animation: bx2-blink 1.7s ease-in-out infinite; animation-delay: calc(var(--bd, 0) * 1s); }
@keyframes bx2-marq{ to{ transform: translateX(-50%); } }
@keyframes bx2-blink{ 0%, 100%{ opacity: 1; } 50%{ opacity: 0.4; } }
@keyframes bx2-pulse{
  0%{ box-shadow: 0 0 0 0 rgba(84,201,122,0.5); }
  70%{ box-shadow: 0 0 0 6px rgba(84,201,122,0); }
  100%{ box-shadow: 0 0 0 0 rgba(84,201,122,0); }
}
@keyframes bx2-sweep{
  0%{ transform: translateX(-120%); opacity: 0; }
  12%{ opacity: 1; }
  80%{ opacity: 1; }
  100%{ transform: translateX(120%); opacity: 0; }
}
@keyframes bx2-buyshine{
  0%{ left: -65%; opacity: 0; }
  18%{ opacity: 1; }
  100%{ left: 135%; opacity: 0; }
}
@media (hover: hover) and (pointer: fine){
  .bx2-lane:hover .bx2-lane__track{ animation-play-state: paused; }
  .bx2-leader:hover{
    transform: translateY(-4px);
    box-shadow: inset 0 1px 0 var(--highlight), 0 34px 80px -34px var(--shadow-lg);
    border-color: color-mix(in srgb, var(--save) 42%, transparent);
  }
  .bx2-leader:hover::before{ opacity: 1; }
  .bx2-buy:hover{
    border-color: color-mix(in srgb, var(--act) 55%, transparent);
    background: color-mix(in srgb, var(--act) 13%, transparent);
    box-shadow: 0 8px 22px -10px var(--act-glow);
  }
  .bx2-buy:hover::before{ animation: bx2-buyshine 0.9s var(--ease-o); }
  .bx2-buy:hover .bx2-buy__chip{ transform: translate(2px, -2px); }
  .bx2-chip:hover{ border-color: var(--save); background: color-mix(in srgb, var(--save) 8%, var(--bg-2)); }
  .bx2-chip:hover::before{ animation: bx2-sweep 0.8s var(--ease-o) forwards; }
  .bx2-chip:hover .bx2-chip__name{ color: var(--save); }
}

/* ---- Hero ↔ Borsa canlı bağ (29 Haz) ----
   Hero'da arama yazınca borsa eşleşeni öne çıkarır, eşleşmeyeni söndürür, marquee durur.
   Vurgu = krem odak (parlaklık) — yeşil/kırmızı değer/premium ısı kodlamasıyla çakışmaz. */
.bx2.is-filtering .bx2-lane__track{ animation-play-state: paused; }
/* specificity .is-in .bx2-rise (lider reveal, 0,2,0) sönmeyi ezmesin → state-scoped (0,3,0) */
.bx2.is-filtering .bx2-dim{ opacity: 0.24; filter: saturate(0.5); }
.bx2-chip.bx2-hit{
  border-color: color-mix(in srgb, var(--accent) 40%, transparent);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-2));
}
.bx2-chip.bx2-hit .bx2-chip__name{ color: var(--cream); }

/* reduced-motion kill bloğu kaldırıldı (Çağkan 17 Haz override) — borsa hep canlı.
   .bx2-rise reveal görünürlüğü .is-in (home.js:380, reduce-guard'sız) + ungated transition ile garanti. */

/* ---- Roast spektrumu — LİDER kartına özel (29 Haz) ----
   Global ember-segments (.roast-scale) küçük kartlarda iyi; lider geniş olduğu için
   yayılıp ince/boş duruyordu. Tam ısı yelpazesi (sage→ember) + konum işareti: geniş
   alanı anlamlı doldurur, gerçek "kavurma skalası" okur. Yalnız .bx2-leader içinde. */
.roast-spec { display: flex; flex-direction: column; gap: 7px; margin: 1.15rem 0 0.15rem; }
.roast-spec__top { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.roast-spec__label { font-family: var(--font-m); font-size: 0.72rem; letter-spacing: 0.04em; text-transform: lowercase; color: var(--c); }
.roast-spec__cap { font-family: var(--font-m); font-size: 0.65rem; letter-spacing: 0.04em; text-transform: lowercase; color: var(--muted-2); }
.roast-spec__band {
  position: relative; height: 8px; border-radius: 5px;
  background: linear-gradient(90deg,
    var(--roast-light), var(--roast-med-light) 30%, var(--roast-med) 54%,
    var(--roast-espresso) 78%, var(--roast-dark));
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.5), inset 0 0 0 1px rgba(0,0,0,0.22);
}
.roast-spec__marker {
  position: absolute; top: 50%; left: var(--pos, 50%);
  width: 3px; height: 17px; border-radius: 2px; transform: translate(-50%, -50%);
  background: var(--accent-h);
  box-shadow: 0 0 0 2px rgba(10,8,6,0.6), 0 0 11px 1px var(--c);
}
.roast-spec__ends {
  display: flex; justify-content: space-between;
  font-family: var(--font-m); font-size: 0.65rem; letter-spacing: 0.04em; text-transform: lowercase; color: var(--muted-2);
}
.roast-spec[data-roast="light"]     { --c: var(--roast-light); }
.roast-spec[data-roast="med-light"] { --c: var(--roast-med-light); }
.roast-spec[data-roast="med"]       { --c: var(--roast-med); }
.roast-spec[data-roast="med-dark"]  { --c: var(--roast-med-dark); }
.roast-spec[data-roast="dark"]      { --c: var(--roast-dark); }

/* ---- Koridor başlığı — "açılmış kapı" (Pazar / Dünya / Toptan) ----
   3 zon sınırı: ziyaretçi her an "hangi dünyadayım" bilir. Kapı no/adıyla
   birebir eşleşir. --cor-accent: amber=alışveriş (01/03), yeşil=editorial (02). */
.corridor{
  max-width: var(--shell);
  margin: 0 auto;
  padding: 5rem var(--gut) 0;
  scroll-margin-top: 84px; /* sticky nav offset — çapa zıplaması nav altında kalmasın */
}
.corridor__rule{
  display: block;
  height: 1px;
  margin-bottom: 1.5rem;
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--cor-accent, var(--pop)) 55%, transparent) 0%,
    var(--border-2) 38%, transparent 72%);
}
.corridor__kicker{
  display: inline-flex; align-items: baseline; gap: 0.7rem;
  margin-bottom: 0.7rem;
}
.corridor__num{
  font-family: var(--font-m);
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  letter-spacing: 0.02em;
  color: var(--cor-accent, var(--pop));
  font-variant-numeric: tabular-nums;
}
.corridor__tag{
  font-family: var(--font-m);
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cor-accent, var(--pop));
}
/* kafdeks dili: bölüm başlığı hero H1 ile aynı gramerde (mono 800, dik yeşil vurgu) */
.corridor__name{
  font-family: 'JetBrains Mono', var(--font-m);
  font-weight: 800;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--cream);
  text-wrap: balance;
  margin-bottom: 0.7rem;
}
.corridor__name em{ font-style: normal; color: var(--pop); }
.corridor__intent{
  font-family: var(--font-m);
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--muted);
  max-width: 58ch;
}
.corridor__intent::before{ content: none; }

/* ---- Homepage Responsive -------------------------- */

@media (max-width: 680px) {
  .pboard{ padding: 1rem 0 3.5rem; }
  .corridor{ padding: 3.5rem var(--gut) 0; }
}

@media (max-width: 640px) {
  .cta-platform__glow{ height: 420px; }
}

@media (max-width: 480px) {
  .footer{ padding-left: 1.25rem; padding-right: 1.25rem; }
  
}

/* ============================================================
   MONO-GLOW TESTİ — yalnızca index.html
   home.css'i SADECE index yüklediği için bu override'lar başka
   sayfaya sızmaz. Diğer sayfalar core.css'teki sage + Space Mono'da kalır.
   Konsept: amber = IŞIK (fill değil). Primary buton zaten cream (--accent);
   --pop sadece çizgi/glow/eyebrow/nokta olarak görünür → hareket edince doğar.
   Mono: Space Mono (daktilo) → DM Mono.
   ============================================================ */
/* NOT: tema token'ları (--pop forest, --act amber, DM Mono),
   buton dili, nav CTA, logo em, overflow-x:clip artık core.css'te (tüm site).
   Aşağıdakiler index'e özgü: eyebrow/emblem yeşil yayılımı, prow, doors scrim,
   stats glow, hero görünürlük, globe mobil. */

/* --- CTA eyebrow: amber (Ambient Ember varyantı — ışık ekseni, sage değil) --- */
.cta-platform__eyebrow{
  color: var(--act);
}


/* ============================================================
   KAFDEKS DİLİ — footer (yalnız index; home.css başka sayfada yok)
   Kolon başlıkları mono-UPPERCASE üniformasından lowercase log'a.
   ============================================================ */
.footer__col h5{
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  text-transform: lowercase;
}

/* (21 Tem) Eski 4-duraklı snap bloğu (hero→borsa→CTA→footer, html scroller) silindi:
   CTA ve footer durakları tek-ekran kilidiyle birlikte index'ten kalkmıştı, scroller da
   artık html değil body → blok fiilen etkisizdi. Yerine aşağıdaki 2-duraklı mobil sistem. */

/* =====================================================
   TEK-EKRAN KİLİDİ + MİNİ-FOOTER (16 Tem 2026 · DİL A "OCAK")
   Ana sayfa kaydırılmaz: nav (fixed) + hero-stage (flex) + minifoot.
   Mobilde (<900px) kilit açılır, tek akış minimum kaydırmayla kalır.
   ===================================================== */
body.home-lock{
  height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
body.home-lock .hero-stage{
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
body.home-lock .hc{
  flex: 1;
  min-height: 0;
  padding: calc(var(--nav-h) + 1.25rem) var(--gut, 2rem) 1.25rem;
  display: flex;
  align-items: center;
}
body.home-lock .hc-grid{
  width: 100%;
  max-height: 100%;
}
body.home-lock .hc-pane{
  max-height: calc(100dvh - var(--nav-h) - 6rem);
  overflow: hidden;
  display: flex;
  min-height: 0;
}
/* Kısa ekran fit (17 Tem · uygulama-notlari): sağ pano içeriği (lider kart + bar +
   sabit 200px tape = ~609px) ~810px'ten kısa viewport'ta panele sığmıyordu → tape'in
   altı satır ortasından kırpılıyordu. Çözüm: terminal penceresini flex-kolon yap,
   tape'i esnet → tüm .hcw__win panele tam sığar, kısa ekranda tape küçülür (sonsuz
   akış zaten var → daha az satır), alt fade hep görünür, satır-ortası kesme biter. */
body.home-lock .bx2Mount,
body.home-lock .hc-pane .bx2,
body.home-lock .hcw__win{
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
  width: 100%;
}
body.home-lock .tp{
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  max-height: none;   /* lider fişi tek satıra indi → tape kalan alanı doldurur (çok satır) */
}
/* scroll-snap tek ekranda anlamsız — kapat */
body.home-lock{ scroll-snap-type: none; }

/* 3 kolon (21 Tem) — .footer__bottom ile aynı gerekçe: "İstanbul, Türkiye" kaldırılınca
   space-between iki elemanla kaldı, durum sağ kenara yapışıyordu. 1fr·auto·1fr = durum ortada. */
.minifoot{
  flex: none;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  padding: .8rem var(--gut, 2rem);
  border-top: 1px solid var(--border);
  font-size: .82rem;
  color: var(--muted-2);
  background: var(--bg);
  position: relative;
  z-index: 3;
}
/* Geliştirme durumu — tek-ekran kilidinde tek satır (yükseklik büyütmez); dar ekranda gizlenir
   (mesaj nav rozetinde + iç sayfa footer'larında da var). ❯ = terminal prompt (kilitli kimlik). */
/* © sol · konum sağ — iç sayfa .footer__copy register'ı (mono, uppercase). */
.minifoot__copy{
  font-family: var(--font-m);
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.4;     /* mono register — body'nin 1.75'i miras kalmasın (tek ritim) */
  color: var(--muted);
}
/* Durum — ortada tek satır, dar mono inline (❯ = terminal kimliği). */
.minifoot__dev{
  font-family: var(--font-m);
  font-size: .6rem;
  letter-spacing: .03em;
  line-height: 1.4;     /* copy ile aynı ritim */
  color: var(--muted-2);
  white-space: nowrap;
  text-align: center;
}
.minifoot__dev .live{ color: var(--pop); }

/* =====================================================
   MOBİL İKİ-SAYFA (21 Tem 2026)
   Tek akış yerine iki tam ekran durak:
     1) arama  2) borsa + minifoot (aynı durağın dibinde — üçüncü durak YOK).
   Scroller = body (html değil): dvh kilidi korunur, iOS'ta adres çubuğu
   yüksekliği oynamaz → mandatory snap zıplamaz. Toplam yükseklik tam 200dvh,
   durak sınırları içerik uzunluğundan bağımsız → sayfalar birbirine taşmaz.
   Klavye açılınca dvh değişir → home.js body.snap-off ile snap'i geçici kapatır.

   min-height:600px kapısı yalnız yatay telefonu (≈390px) dışarıda bırakır. Kısa ekranda
   MODU KAPATMAK yanlıştı (21 Tem: kapı 700'e çıkarılınca 629px'lik pencere tek-akışa
   düşüp iki-sayfa konseptinden çıktı — Çağkan) → doğrusu içeriği SIĞDIRMAK: aşağıda
   3 kademeli sıkıştırma (820 / 760 / 690) boşlukları kısar, en dar kademede eyebrow
   gizlenir (aynı sayıları alttaki readout zaten basıyor).
   ===================================================== */

/* Kısa ekran / landscape fallback — eski tek-akış davranışı (snap yok). */
@media (max-width: 900px){
  body.home-lock{ height: auto; overflow: auto; display: block; }
  body.home-lock .hc{ display: block; padding: calc(var(--nav-h) + 1.5rem) 1.25rem 2rem; }
  body.home-lock .hc-pane{ max-height: none; }
  body.home-lock .tp{ max-height: 320px; }
  .hc-scrollcue{ display: none; }
}

@media (max-width: 900px) and (min-height: 600px){
  body.home-lock{
    height: 100dvh;
    overflow-y: auto;
    overflow-x: clip;
    display: block;
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-y: contain;   /* yaylanma sayfa içinde kalsın */
    -webkit-overflow-scrolling: touch;
  }
  body.home-lock.snap-off{ scroll-snap-type: none; }

  body.home-lock .hero-stage{ display: block; }
  body.home-lock .hc{ display: block; padding: 0; min-height: 0; }
  body.home-lock .hc-grid{ display: block; max-height: none; }

  /* --- 1. sayfa: arama ---
     space-between (center DEĞİL, 21 Tem — 3 turluk döngünün kök nedeni): center ile artan
     yer KENARLARA havuzlanıyordu (ölçüm 424px: kenar 146-258px vs bloklar arası 88-163px,
     yani 1.6-2.7 katı) → "ortaya basık, üstte/altta boşluk". İç boşluğu kısan her kademe
     kısılan pikseli doğrudan o havuza aktardığı için şikâyeti BÜYÜTÜYORDU.
     space-between: kenarda yalnız padding kalır, artan yer blokların arasına dağılır ve
     ekran yüksekliğiyle birlikte büyür. Kaydır ipucu da doğal olarak sayfanın dibine oturur
     (absolute konumlandırmaya gerek yok — o yol readout'la 92px kopukluk yapıyordu).
     Aşağıdaki marjlar KISITLAMA değil ZEMİN: space-between üstüne ekler.

     ÜST SINIR (760px): sınırsız dağıtımda çok uzun telefonda (932) boşluklar ~70px'e çıkıp
     bloklar birbirinden kopuyordu — seyrek/dağınık. Sınır AYRI BİR KADEME DEĞİL, aynı
     mekanizmanın içinde: 760px'i aşan yükseklik simetrik olarak padding'e gider, dağıtıma
     giren yükseklik sabitlenir → boşluk tavanı ~40px. Kısa ekranda max() sıfırlanır,
     davranış değişmez. Tek kural, sürekli, kırılım noktası yok. */
  body.home-lock .hc-wrap{
    position: relative;
    min-height: 100dvh;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding:
      calc(var(--nav-h) + .25rem + max(0px, (100dvh - 760px) / 2))
      1.25rem
      calc(1.25rem + max(0px, (100dvh - 760px) / 2));
  }
  body.home-lock .hc-eyebrow{ margin-bottom: .75rem; }
  body.home-lock .hc-sub    { margin: .7rem 0 1.35rem; }
  body.home-lock .hc-chips  { margin-top: .75rem; }
  body.home-lock .hc-readout{ margin-top: 1rem; }

  /* --- 2. sayfa: borsa (kalan yükseklik minifoot'a ayrılır) --- */
  /* height (min-height DEĞİL): panelin iç flex zinciri (.bx2Mount/.bx2/.hcw__win → max-height:100%)
     ancak kesin yükseklikli ebeveynde çözülür; min-height ile tape taşıp durağı 3 ekrana çıkarıyordu. */
  body.home-lock .hc-pane{
    height: calc(100dvh - var(--mf-h, 6.2rem));
    max-height: none;
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    flex-direction: column;
    padding: calc(var(--nav-h) + .75rem) 1.25rem .75rem;
  }
  /* tape ekranı doldursun — eski 320px sınırı kalktı (Çağkan kararı 21 Tem) */
  body.home-lock .tp{ max-height: none; }

  /* Sağ ray (kavruk + ok) 1. sayfada readout satırının üstünden geçiyordu → metne pay.
     Ray: right 2rem + 40px daire = 72px; 4.75rem güvenli sınır. */
  body.home-lock .hc-readout{ padding-right: 4.75rem; }

  /* --- kaydır ipucu: yalnız mobilde ---
     Akışta (absolute DEĞİL, 21 Tem revizyon): dibe çivilenince okuma bloğuyla arası
     92px'e çıkıyordu, kopuk duruyordu (Çağkan). Şimdi readout'un devamı gibi okunur,
     mesafe sabit; aşağı-kaydır işini ray'deki yuvarlak ok da üstleniyor. */
  .hc-scrollcue{
    display: inline-flex;
    align-self: center;
    margin-top: .9rem;
  }
  @keyframes hcCueUp { to { opacity: 1; transform: none; } }
  .hc-scrollcue{ opacity: 0; transform: translateY(12px); animation: hcCueUp .8s .84s var(--ease-o) forwards; }
}

/* (21 Tem) K1/K2/K3 sıkıştırma kademeleri SİLİNDİ. Sığdırma amacıyla iç boşluğu kısıyorlardı
   ama `justify-content:center` yüzünden kısılan her piksel kenar havuzuna gidiyordu → şikâyeti
   ("ortaya basık") büyütüyorlardı. Yerine: space-between + iki-sayfa bloğundaki tek zemin ritmi
   (yukarı bak). Kademeye geri dönme — ölçüm defteri uygulama-notlari.md'de. */

/* Mini-footer mobil ritmi — ekran yüksekliğinden bağımsız (iki-sayfa kapısının dışında). */
@media (max-width: 900px){
  /* Sağ ray (kavruk + yukarı-ok) mobilde mini-footer metninin üstüne biniyordu →
     footer yüksekliği kadar yukarı al. --mf-h home.js'te ölçülür. */
  body.home-lock .kv-rail{ bottom: calc(var(--mf-h, 6.2rem) + 1rem); }
  /* Dikey ritim (21 Tem): tek birim .5rem — copy ↔ durum ↔ contribute eşit aralıklı.
     Öncesinde copy 1.75 (miras) · durum 1.55 · buton inline margin-left ile sola kaçık,
     üç farklı ritim yan yanaydı. */
  .minifoot{ grid-template-columns: 1fr; justify-items: center; gap: .5rem; text-align: center; padding: 1rem 1.25rem; }
  /* durum satırı mobilde tek satıra sığmıyordu (taşıp soldan kırpılıyordu) → sarsın */
  .minifoot__dev{ white-space: normal; line-height: 1.4; max-width: 100%; overflow-wrap: anywhere; }
  /* contribute butonu kendi satırına düşer → contrib.js'in inline margin-left'i sola kaydırıyordu.
     Spesifiklik (0,3,0) gerekli: contrib.js style'ı head'e sonradan enjekte oluyor. */
  .minifoot .minifoot__dev .kf-contrib-link{
    display: inline-flex; align-items: center;
    margin: .5rem 0 0;
  }
}
