/* =====================================================
   KAVRUK · site-geneli "Kavruk modu" (K1)
   Sağ rayda pixel-çekirdek buton → ekran ortasında modal TV.
   Her sayfa yükler (kavruk.js self-inject; palette gibi). Değişkenler .kv-fab/.kvm scope'unda.
   İlke: arcade/pixel dili YALNIZ TV içinde yaşar (Çağkan kararı, K1). Buton sade pixel.
   Reduce-motion: boot steps-tabanlı hafif (memory: reduced-motion-override-homepage).
   ===================================================== */

/* ---- sağ ray butonu (back-top slot1 + kpal-hint slot2'nin ÜSTÜ = slot3) ---- */
.kv-fab { position:fixed; right:2rem; bottom:calc(2rem + 2*(40px + .7rem)); z-index:150;
  width:40px; height:40px; border-radius:50%; border:1px solid var(--border-2);
  background:var(--glass); box-shadow:0 4px 14px var(--shadow-md); cursor:pointer;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  transition: border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease); }
.kv-fab:hover { border-color:var(--pop-line-2); box-shadow:0 6px 20px var(--shadow-lg); }
.kv-fab__bean { width:24px; height:auto; image-rendering:pixelated; shape-rendering:crispEdges; }
.kv-fab__blink { animation: kvblink 5.2s steps(1) infinite; }
.kv-fab__pill { position:absolute; right:100%; margin-right:.5rem; white-space:nowrap;
  font-family:var(--font-m); font-size:.78rem; color:var(--cream); background:var(--glass);
  border:1px solid var(--border-2); border-radius:var(--r); padding:.3rem .6rem;
  opacity:0; transform:translateX(6px); pointer-events:none; transition: all var(--dur-2) var(--ease); }
.kv-fab:hover .kv-fab__pill { opacity:1; transform:translateX(0); }
/* mobilde kpal-hint gizli (slot2 boş) → buton slot2'ye iner */
@media (max-width:880px){ .kv-fab { bottom:calc(2rem + 40px + .7rem); } }

/* =====================================================
   ÜÇLÜ SAĞ RAY (?ray=1|2|3 varyant demoları)
   [⌘K ipucu] · [kavruk çekirdeği] · [yukarı] — tek cam sistem.
   Kilit değil: Çağkan seçince tek varyant kalır, param kaldırılır.
   ===================================================== */
.kv-rail{ position:fixed; right:2rem; bottom:2rem; z-index:150;
  display:flex; flex-direction:column; align-items:flex-end; gap:.7rem; }
.kv-rail__btn{ position:relative; flex:none; width:40px; height:40px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; overflow:hidden;
  border:1px solid var(--border-2); background:var(--glass); color:var(--cream-dim);
  box-shadow:0 4px 14px var(--shadow-md); cursor:pointer;
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease),
    color var(--dur-2) var(--ease), transform var(--dur-3) var(--ease-o); }
.kv-rail__btn:hover{ border-color:var(--pop-line-2); color:var(--cream); box-shadow:0 6px 20px var(--shadow-lg); }
.kv-rail__bean .kv-fab__bean{ width:24px; height:auto; image-rendering:pixelated; shape-rendering:crispEdges; }
.kv-rail__bean .kv-fab__blink{ animation:kvblink 5.2s steps(1) infinite; }

/* ⌘K ipucu → hover'da daire→kapsül aç (eski kpal-hint morph, "kavruk") */
.kv-rail__cmd{ width:auto; min-width:40px; max-width:40px; padding:0; gap:0; white-space:nowrap;
  font-family:var(--font-m); font-size:.72rem; letter-spacing:.02em;
  transition:max-width .38s var(--ease-exp), border-radius .38s var(--ease-exp),
    padding .38s var(--ease-exp), gap .3s var(--ease),
    border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease); }
.kv-rail__kbd{ flex:none; display:inline-flex; align-items:baseline; gap:.06em; color:var(--cream-dim); }
.kv-rail__kbd b{ color:var(--pop); font-weight:400; font-size:1.06em; }
.kv-rail__pill{ display:none; color:var(--cream); }
.kv-rail__cmd:hover{ max-width:200px; border-radius:var(--r); padding:0 .85rem; gap:.5rem; }
.kv-rail__cmd:hover .kv-rail__kbd{ color:var(--cream); }
.kv-rail__cmd:hover .kv-rail__pill{ display:inline; }

/* back-top: aşağı inilince belir */
.kv-rail__top{ opacity:0; transform:translateY(8px); pointer-events:none;
  transition:opacity var(--dur-4) var(--ease), transform var(--dur-4) var(--ease),
    border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease); }
.kv-rail--scrolled .kv-rail__top{ opacity:1; transform:none; pointer-events:auto; }
/* mobil ana sayfa 1. durak: aynı daire, ok aşağı bakar (borsaya in) */
.kv-rail__top svg{ transition:transform .34s var(--ease-o); }
.kv-rail--down .kv-rail__top svg{ transform:rotate(180deg); }

/* --- v1 SADE: tek-eleman sakin scale (terminal-mono sadık) --- */
.kv-rail--v1 .kv-rail__btn:hover{ transform:scale(1.09); }
.kv-rail--v1 .kv-rail__cmd:hover{ transform:none; }

/* --- v2 MIKNATIS: hover'da büyüsün, komşu hafif tepki (JS scale set eder) --- */
.kv-rail--v2 .kv-rail__btn{ transition:border-color var(--dur-2) var(--ease),
  box-shadow var(--dur-2) var(--ease), color var(--dur-2) var(--ease),
  transform .13s var(--ease-o); }              /* giriş hızlı (joshwcomeau) */
.kv-rail--v2.kv-rail--rest .kv-rail__btn{ transition-duration:.4s; transition-timing-function:var(--ease); } /* çıkış yavaş */

/* --- v3 ENTEGRE: tek cam kapsül + sayfa-noktaları üstte --- */
.kv-rail--v3{ gap:0; padding:.4rem; border-radius:22px; background:var(--glass-2);
  border:1px solid var(--border-2); box-shadow:0 6px 22px var(--shadow-lg);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.kv-rail--v3 .kv-rail__btn{ background:none; border:none; box-shadow:none; backdrop-filter:none; }
.kv-rail--v3 .kv-rail__btn:hover{ background:var(--wash-2); box-shadow:none; transform:none; }
.kv-rail--v3 .kv-rail__cmd:hover{ background:none; }
.kv-rail--v3 .kv-rail__dots{ display:flex; flex-direction:column; align-items:center; gap:.5rem;
  padding:.55rem 0 .2rem; }
.kv-rail--v3:not(.kv-rail--haspaging) .kv-rail__dots,
.kv-rail--v3:not(.kv-rail--haspaging) .kv-rail__div{ display:none; }
.kv-rail__dot{ width:8px; height:8px; border-radius:50%; border:1px solid var(--muted);
  background:none; padding:0; cursor:pointer; position:relative;
  transition:border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease); }
.kv-rail__dot::after{ content:""; position:absolute; inset:1px; border-radius:50%;
  background:var(--pop); transform:scale(0); transition:transform .3s var(--ease-o); }
.kv-rail__dot:hover{ border-color:var(--pop-line-2); }
.kv-rail__dot.is-on{ border-color:var(--pop); }
.kv-rail__dot.is-on::after{ transform:scale(1); }
.kv-rail__div{ width:18px; height:1px; background:var(--border-2); margin:.15rem 0 .35rem; }

/* mobilde ⌘K ipucu anlamsız (dokunmatik) → gizle; ray 2 butona iner */
@media (max-width:880px){ .kv-rail__cmd{ display:none; } .kv-rail--v3 .kv-rail__dots, .kv-rail--v3 .kv-rail__div{ display:none; } }
@media (prefers-reduced-motion:reduce){ .kv-rail__btn{ transition:border-color var(--dur-2), color var(--dur-2); } .kv-rail__btn:hover{ transform:none; } }

/* ---- modal overlay: ekran ortasında TV, arka plan karartılır ---- */
.kvm { position:fixed; inset:0; z-index:1150; display:flex; align-items:center; justify-content:center;
  padding:clamp(.5rem, 3vw, 2rem); --phos:#a9d6b3; --phos-dim:#6fa37d; }
.kvm[hidden] { display:none; }
/* F1 "tam karartma" (18 Tem 2026, Çağkan onayı — kavruk-fon-lab): sayfa tümüyle
   yok olur, kenarlar zifire iner; TV odadaki tek ışık kaynağı. --scrim token'ına
   dokunulmaz (foto overlay'lerde kullanılıyor), burada yerel koyulaştırma. */
.kvm__scrim { position:absolute; inset:0; background:rgba(2,2,1,0.985);
  opacity:0; transition: opacity .2s var(--ease); }
.kvm__scrim::before { content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 60% 52% at 50% 48%, transparent 20%, rgba(0,0,0,.9) 78%, #000 100%); }
.kvm.is-open .kvm__scrim { opacity:1; }

/* ---- TV: modal içinde ortada ---- */
.kvm .tv { position:relative; z-index:1; width:min(96vw, 1040px); max-height:92vh;
  display:grid; grid-template-columns: 1fr 62px;
  border:1px solid var(--border-2); border-radius:var(--r); background:var(--bg-3); font-family:var(--font-m);
  box-shadow:0 24px 80px rgba(0,0,0,.6);
  opacity:0; transform:scale(.985); transition: opacity .2s var(--ease), transform .2s var(--ease-o); }
.kvm.is-open .tv { opacity:1; transform:scale(1); }
.tv { position:relative; }
.tv::after { content:""; position:absolute; inset:8px; pointer-events:none; z-index:4;
  background-image:
    linear-gradient(var(--border-2),var(--border-2)),linear-gradient(var(--border-2),var(--border-2)),
    linear-gradient(var(--border-2),var(--border-2)),linear-gradient(var(--border-2),var(--border-2)),
    linear-gradient(var(--border-2),var(--border-2)),linear-gradient(var(--border-2),var(--border-2)),
    linear-gradient(var(--border-2),var(--border-2)),linear-gradient(var(--border-2),var(--border-2));
  background-repeat:no-repeat;
  background-size:12px 1px,1px 12px,12px 1px,1px 12px,12px 1px,1px 12px,12px 1px,1px 12px;
  background-position:left top,left top,right top,right top,left bottom,left bottom,right bottom,right bottom; }
.tv__main { padding:.9rem; min-width:0; }

/* sağ bezel: diegetik kontrol şeridi (amber knob = güç, boot replay) */
.tv__panel { border-left:1px solid var(--border); display:flex; flex-direction:column; align-items:center;
  gap:1rem; padding:1.1rem 0; }
.tv__knob { width:22px; height:22px; border-radius:50%; border:1px solid var(--border-2);
  background: radial-gradient(circle at 35% 32%, #2a231a, #17110b); position:relative; }
.tv__knob::after { content:""; position:absolute; left:50%; top:2px; width:2px; height:7px;
  background:var(--muted-2); transform:translateX(-50%); }
.tv__knob--act::after { background:var(--act); }
.tv__knob--act { cursor:pointer; }
.tv__grill { width:26px; height:52px;
  background: repeating-linear-gradient(0deg, var(--border-2) 0 1px, transparent 1px 5px); }
.tv__label { writing-mode:vertical-rl; font-size:.6rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--muted-2); margin-top:auto; }
.tv__label b { color:var(--pop); font-weight:500; }

/* ---- CRT ekran: sahne | sohbet (+ kart sütunu) ---- */
.crt { position:relative; overflow:hidden; border-radius:6px;
  background: radial-gradient(circle at 42% 30%, rgba(90,144,104,.12), transparent 72%), #0b100c;
  box-shadow: inset 0 0 54px rgba(0,0,0,.6);
  display:grid; grid-template-columns: minmax(190px, 270px) 1fr; grid-template-rows:auto 1fr auto;
  gap:0 1rem; padding:.85rem 1rem .8rem; min-height:440px; }
.crt.has-card { grid-template-columns: minmax(175px, 235px) 1fr minmax(200px, 234px); }
/* scanline + aperture grille (statik, ucuz) */
.crt::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:3;
  background:
    repeating-linear-gradient(0deg, rgba(0,0,0,.16) 0 1px, transparent 1px 3px),
    linear-gradient(90deg, rgba(255,0,0,.035), rgba(0,255,70,.012), rgba(0,0,255,.035));
  background-size: auto, 3px 100%; }
/* flicker: çok hafif + yavaş (GPU freni bilinçli · memory: gpu-shader-crash-hardening dersi) */
.crt::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:3;
  background: rgba(16,20,16,.5); mix-blend-mode:overlay; opacity:.06; animation: kvflick 3.4s steps(3) infinite; }
@keyframes kvflick { 0%,100%{ opacity:.05; } 40%{ opacity:.1; } 70%{ opacity:.03; } }

/* ---- açılış sekansı (scroll'la bir kez; pixel pixel kurulan logo) ---- */
.boot { position:absolute; inset:0; z-index:2; background:#060906; display:none; place-items:center; }
.boot__line { position:absolute; left:6%; right:6%; top:50%; height:2px; background:#e8f5eb;
  box-shadow:0 0 20px var(--pop-glow), 0 0 60px var(--pop-glow); transform:scaleX(0); opacity:0; }
.boot--on .boot__line { animation: bootline .75s var(--ease-o) forwards; }
@keyframes bootline { 0%{ transform:scaleX(0) scaleY(1); opacity:1; }
  45%{ transform:scaleX(1) scaleY(1); opacity:1; } 100%{ transform:scaleX(1) scaleY(70); opacity:0; } }
.boot__brand { opacity:0; text-align:center; display:flex; flex-direction:column; align-items:center; gap:.85rem; }
.boot--brand .boot__brand { animation: bootbrand .5s steps(5) forwards; }
@keyframes bootbrand { to { opacity:1; } }
.boot__pre { font-size:.62rem; letter-spacing:.34em; text-transform:uppercase; color:var(--phos-dim); margin:0; }
.boot__logo { width:min(60%, 250px); height:auto; image-rendering:pixelated; shape-rendering:crispEdges;
  filter: drop-shadow(0 0 12px rgba(90,144,104,.3)); }
.boot__logo .kb-blink { animation: kvblinkhard 1.05s steps(1) infinite; }
.boot__sub { font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--phos-dim); margin:0; }
.boot__load { font-family:var(--font-m); font-size:.64rem; letter-spacing:.12em; color:var(--phos);
  margin:.3rem 0 0; min-height:1.1em; }
.boot--off { animation: bootoff .32s steps(3) forwards; }
@keyframes bootoff { to { opacity:0; } }
@keyframes kvblinkhard { 0%,54%{ opacity:1; } 55%,100%{ opacity:.12; } }

/* ---- ekran içi HUD ---- */
.crt__hud { grid-column:1 / -1; display:flex; justify-content:space-between; font-size:.6rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--act); text-shadow:0 0 5px var(--act-glow);
  padding-bottom:.55rem; border-bottom:1px dashed rgba(90,144,104,.22); margin-bottom:.7rem; }
.crt__hud .hi { color:var(--phos); text-shadow:0 0 5px var(--pop-glow); }
.crt__hud .inf { font-size:1.55em; line-height:0; vertical-align:-.12em; font-weight:500; }
.crt__rom { flex:1; text-align:center; }
/* HUD kontrolleri: temizle (yeşil) + kapat (amber, belirgin) — ikisi de net, çerçeveli buton */
.crt__ctl { display:flex; align-items:center; gap:.45rem; flex:none; }
.crt__wipe, .crt__close { font-family:var(--font-m); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase;
  background:none; border:1px solid; border-radius:var(--r); padding:.24rem .52rem; cursor:pointer; white-space:nowrap;
  transition: color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease); }
.crt__wipe { color:var(--phos-dim); border-color:rgba(90,144,104,.45); }
.crt__wipe:hover { color:var(--phos); border-color:var(--pop); background:rgba(90,144,104,.1); }
.crt__close { color:var(--act); border-color:rgba(224,121,60,.55); }
.crt__close:hover { color:#f0b48c; border-color:var(--act); background:rgba(224,121,60,.12); text-shadow:0 0 6px var(--act-glow); }

/* ---- sahne: pixel Kavruk + zemin ---- */
.crt__stage { position:relative; display:grid; place-items:end center; padding-bottom:1.1rem; }
.crt__stage::after { content:""; position:absolute; left:8%; right:8%; bottom:.95rem; height:1px;
  background:linear-gradient(90deg, transparent, rgba(90,144,104,.35), transparent); }
.bean { width:min(72%, 200px); height:auto; overflow:visible; image-rendering:pixelated; shape-rendering:crispEdges; }
.bean__body { animation: kvidle 1.5s infinite; }
@keyframes kvidle { 0%,54%{ transform:translateY(0); } 55%,100%{ transform:translateY(-4px); } }
.is-talking .bean__body { animation: kvidle .5s infinite; }
.bean__eye { animation: kvblink 5.6s steps(1) infinite; }
@keyframes kvblink { 0%,93%,100%{ opacity:1; } 94%,97%{ opacity:0; } }
/* dinleme: kullanıcı yazarken gözbebekleri input'a kayar */
.is-listening .bean__pupil { transform:translate(3px, 2px); }
.bean__pupil { transition: transform .18s var(--ease); }
/* konuşma: fissür genişler = ağız (2-frame) */
.bean__mouth--open { opacity:0; }
.is-talking .bean__mouth--open { animation: kvmouth .32s steps(1) infinite; }
@keyframes kvmouth { 0%,49%{ opacity:0; } 50%,100%{ opacity:1; } }
.bean__steam { animation: kvsteam 2.6s steps(1) infinite; }
.bean__steam--2 { animation-delay:1.3s; }
@keyframes kvsteam { 0%,44%{ opacity:.5; } 45%,100%{ opacity:0; } }
.bean__shadow { fill:#000; opacity:.35; }
.crt__tag { position:absolute; bottom:.2rem; left:0; right:0; text-align:center; font-size:.6rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--phos-dim); }
.crt__tag b { color:var(--phos); font-weight:500; }

/* ---- sohbet günlüğü ---- */
.crt__chat { display:flex; flex-direction:column; min-width:0; }
.kv-log { flex:1; overflow-y:auto; overscroll-behavior:contain; max-height:290px; padding:.2rem .35rem .2rem 0; scrollbar-width:thin;
  scrollbar-color: rgba(90,144,104,.35) transparent; display:flex; flex-direction:column; gap:.55rem; }
.kv-log::-webkit-scrollbar { width:4px; }
.kv-log::-webkit-scrollbar-thumb { background:rgba(90,144,104,.35); }
.msg { font-size:.8rem; line-height:1.6; overflow-wrap:anywhere; }
.msg--k { color:var(--phos); text-shadow:0 0 4px rgba(90,144,104,.3); }
.msg--k .who { color:var(--pop); }
.msg--u { color:var(--cream); opacity:.92; }
.msg--u .who { color:var(--act); }
.msg .who { display:block; font-size:.6rem; letter-spacing:.16em; text-transform:lowercase; margin-bottom:.1rem; }
.msg--typing { color:var(--phos-dim); animation: kvblinkhard .8s steps(1) infinite; }
/* düşünme göstergesi: dönen spinner + "düşünüyor" (blink yok, dönme JS ile) */
.msg--think { color:var(--phos-dim); display:flex; align-items:center; gap:.45rem; }
.kv-spin { display:inline-block; width:1em; color:var(--phos); text-shadow:0 0 5px var(--pop-glow); }
.kv-think { font-size:.72rem; letter-spacing:.08em; opacity:.85; }

/* ---- bağlamsal hızlı cevaplar (RPG seçenek menüsü) ---- */
.kv-opts { display:flex; flex-wrap:wrap; gap:.3rem .5rem; padding:.55rem 0 .1rem; min-height:1.7rem; }
.kv-opt { position:relative; font-family:var(--font-m); font-size:.7rem; color:var(--phos-dim); background:none;
  border:none; padding:.2rem .3rem .2rem 1rem; cursor:pointer; transition: color var(--dur-2) var(--ease); }
.kv-opt::before { content:"❯"; position:absolute; left:.2rem; color:var(--act); opacity:0; transform:translateX(-4px);
  transition: all var(--dur-2) var(--ease); }
.kv-opt:hover { color:var(--phos); }
.kv-opt:hover::before { opacity:1; transform:translateX(0); }

/* ---- ürün kartları (RPG item-kartı): öneri gelince sağ sütun ---- */
.crt__cards { display:none; flex-direction:column; gap:.65rem; overflow-y:auto; max-height:330px;
  padding-right:.15rem; scrollbar-width:thin; scrollbar-color: rgba(90,144,104,.35) transparent; }
.has-card .crt__cards { display:flex; }
.kcard { position:relative; border:1px solid var(--pop-line-2);
  box-shadow: inset 0 0 0 3px #0b100c, inset 0 0 0 4px var(--pop-line);
  padding:.75rem .8rem .7rem; animation: kcardin .22s var(--ease-o) backwards; }
@keyframes kcardin { from { opacity:0; transform:translateY(6px); } }
.kcard__tag { position:absolute; top:-.6em; left:10px; background:#0b100c; padding:0 .5em;
  font-size:.56rem; letter-spacing:.18em; text-transform:uppercase; color:var(--act);
  text-shadow:0 0 5px var(--act-glow); }
.kcard__brand { font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--phos-dim); margin:0 0 .15rem; }
.kcard__name { font-size:.82rem; color:var(--phos); text-shadow:0 0 4px rgba(90,144,104,.3);
  line-height:1.35; margin:0 0 .5rem; font-weight:500; font-family:var(--font-m); }
.kcard__rows { font-size:.66rem; line-height:1.8; color:var(--phos-dim); margin:0 0 .55rem; }
.kcard__rows b { color:var(--phos); font-weight:400; }
.kcard__price { display:flex; align-items:baseline; gap:.5rem; margin-bottom:.6rem; }
.kcard__per { font-size:1.15rem; color:var(--act); text-shadow:0 0 6px var(--act-glow); }
.kcard__per span { font-size:.62rem; }
.kcard__pack { font-size:.62rem; color:var(--phos-dim); }
.kcard__go { display:block; width:100%; font-family:var(--font-m); font-size:.68rem; letter-spacing:.1em;
  color:var(--phos); background:none; border:1px solid rgba(90,144,104,.4); border-radius:var(--r);
  padding:.35rem .6rem; cursor:pointer; transition: all var(--dur-2) var(--ease);
  text-align:left; text-decoration:none; box-sizing:border-box; }
.kcard__go:hover { border-color:var(--pop); color:#d6ecdc; }

/* ---- TV-içi arama eşleşme satırı (yazarken kart yerine tek satır) ---- */
.crt__seek[hidden] { display:none; }
.crt__seek { grid-column:1 / -1; display:block; width:100%; text-align:left; background:none; border:0;
  font-family:var(--font-m); font-size:.62rem; letter-spacing:.08em; color:var(--phos-dim);
  padding:.4rem .1rem 0; cursor:pointer; animation: kcardin .22s var(--ease-o) backwards; }
.crt__seek b { color:var(--phos); font-weight:500; }
.crt__seek u { color:var(--act); text-decoration-color: rgba(224,121,60,.5); text-underline-offset:3px; }
.crt__seek:hover { color:var(--phos); }
.crt__seek:hover u { text-shadow:0 0 5px var(--act-glow); }

/* ---- ekran-içi giriş satırı ---- */
.crt__input { grid-column:1 / -1; display:flex; align-items:center; gap:.55rem; margin-top:.65rem;
  padding-top:.6rem; border-top:1px dashed rgba(90,144,104,.22); }
.crt__input .pmt { color:var(--act); font-size:.8rem; flex:none; text-shadow:0 0 5px var(--act-glow); }
.crt__input input { flex:1; background:none; border:none; outline:none; color:var(--phos);
  font-family:var(--font-m); font-size:.85rem; caret-color:var(--act); text-shadow:0 0 4px rgba(90,144,104,.3); }
.crt__input input::placeholder { color:rgba(111,163,125,.5); }
.crt__input .go { flex:none; font-family:var(--font-m); font-size:.7rem; letter-spacing:.1em; color:var(--phos);
  background:none; border:1px solid rgba(90,144,104,.4); border-radius:var(--r); padding:.3rem .6rem;
  cursor:pointer; transition: all var(--dur-2) var(--ease); }
.crt__input .go:hover { border-color:var(--pop); color:#d6ecdc; }

/* ---- hero → kavruk köprüsü (hero register'ında, arcade dili YOK) ---- */
.kv-bridge { display:none; margin-top:.55rem; font-family:var(--font-m); font-size:.78rem;
  color:var(--cream-dim); background:none; border:none; cursor:pointer; padding:0;
  transition: color var(--dur-2) var(--ease); }
.kv-bridge.is-on { display:inline-block; }
.kv-bridge b { color:var(--pop); font-weight:500; }
.kv-bridge:hover { color:var(--cream); }

@media (max-width:900px){
  /* MOBİL = APP: kenar boşluğu yok, TV tam ekranı kaplar, arka plan tümüyle kararır (scrim + TV örtüsü) */
  .kvm { padding:0; }
  .kvm .tv { grid-template-columns:1fr; grid-template-rows:1fr auto;
    width:100vw; height:100vh; height:100dvh; max-height:100dvh;
    border:none; border-radius:0; overflow:hidden; box-shadow:none; }
  .tv__main { padding:.75rem; padding-top:calc(.55rem + env(safe-area-inset-top)); min-height:0; height:100%; display:flex; }
  .tv__panel { flex-direction:row; border-left:none; border-top:1px solid var(--border);
    padding:.5rem 1rem; padding-bottom:calc(.5rem + env(safe-area-inset-bottom)); order:2; }
  .tv__grill { width:52px; height:22px; background:repeating-linear-gradient(90deg, var(--border-2) 0 1px, transparent 1px 5px); }
  .tv__label { writing-mode:horizontal-tb; margin-top:0; margin-left:auto; }
  /* CRT: dikey flex, ekranı doldurur; kv-log TEK scroll bölgesi (iç-içe scroll yok → dip-takip net) */
  .crt, .crt.has-card { display:flex; flex-direction:column; grid-template-columns:1fr; flex:1; height:100%; min-height:0; }
  .crt__hud { order:0; flex:none; }
  .crt__rom { display:none; }                 /* mobilde HUD'da butonlara yer aç */
  .crt__wipe, .crt__close { font-size:.64rem; padding:.36rem .58rem; } /* dokunmatik hedef */
  .crt__stage { order:1; flex:none; padding:0 0 .7rem; }
  .bean { width:min(30%, 92px); }
  .crt__chat { order:2; flex:1 1 auto; min-height:0; }
  .kv-log { flex:1; max-height:none; min-height:0; }
  /* iOS <16px input'ta odakta otomatik zoom yapıp viewport'u kaydırır → 16px sabit */
  .crt__input input { font-size:16px; }
  /* Sohbet + giriş üstte; kartlar EN ALTA yatay swipe şeridi (sohbeti ezmesin) */
  .crt__seek { order:3; flex:none; }
  .crt__input { order:4; flex:none; }
  .crt__cards { order:5; flex:none; flex-direction:row; overflow-x:auto; overflow-y:hidden; max-height:none;
    margin-top:.6rem; gap:.55rem; scroll-snap-type:x mandatory; padding-bottom:.35rem; -webkit-overflow-scrolling:touch; }
  .kcard { animation:none; flex:0 0 82%; scroll-snap-align:start; }
}
