
  /* ── TİPOGRAFİ (H turu, hedef #9) ──
     ★ Düzeltilen iki şey:
     (1) Yazı tipi yığınında `Inter` vardı — "AI üretmiş" listesinin en
         bilinen maddesi (anti-ai-tells). Kaldırıldı.
     (2) HUD'un TEK tipografik katmanı vardı: her şey sans-serif, ağırlık
         ve harf aralığıyla ayrıştırılmaya çalışılıyordu. Lüks konut markası
         için üç katman tanımlandı:
           · display  → serif (kart başlığı, daire adı, anlatı başlığı)
           · body     → sistem sans (kontrol metinleri, oda adları)
           · micro etiket → sans, büyük harf, geniş harf aralığı, 800
         Serif sistem yüzüdür (Iowan/Palatino/Georgia), webfont indirmez:
         kare çekiminde ağ yok, ama macOS/Windows'ta gerçek bir display
         yüzü çıkar. */
  :root{ --ink:#1B2A33; --cream:#FAFAF7; --sand:#E8DDD0; --gold:#C4A96A; --ocean:#1B4F6B;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
    --serif:"Iowan Old Style",Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;
    --basamak:4px; }
  *{box-sizing:border-box}
  /* `hidden` özniteliği TEK BAŞINA yetmiyor: .satir{display:flex} yazar kuralı
     tarayıcının [hidden]{display:none} kuralını ezer (yazar > UA). Birim satırı
     `hidden` ile kapatılınca ekranda boş "BİRİM" rafı olarak kalıyordu — tam da
     "olmayan envanteri ima etme" hatası. Kapatma kararı yazar seviyesinde. */
  [hidden]{display:none!important}
  html,body{margin:0;height:100%;background:#0E1A22;color:var(--cream);overflow:hidden;
    font-family:var(--sans)}
  canvas{display:block}
  button{font:inherit;cursor:pointer;border:0}
  kbd{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:5px;padding:1px 6px;font-size:11px;font-family:inherit}

  #yukleniyor{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:70;
    background:linear-gradient(160deg,#12303F,#0E1A22);flex-direction:column;gap:14px;transition:opacity .6s}
  #yukleniyor .l{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
  #yukleniyor small{color:#7E97A4;font-size:12px}

  #basla{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:60;
    background:radial-gradient(120% 100% at 50% 0%,rgba(10,20,27,.78),rgba(10,20,27,.95))}
  .kart{width:min(620px,92vw);background:rgba(250,250,247,.975);color:var(--ink);border-radius:18px;
    padding:32px 34px;box-shadow:0 34px 90px rgba(0,0,0,.55);border:1px solid rgba(196,169,106,.45)}
  .kart .marka{font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;color:var(--ocean);font-weight:800}
  .kart h1{margin:11px 0 5px;font-size:29px;line-height:1.14;letter-spacing:-.01em;font-family:var(--serif);font-weight:600}
  .kart h2{margin:0 0 18px;font-size:14px;font-weight:500;color:#5A6B75}
  .kunye{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
  .kunye span{font-size:12px;background:var(--sand);border-radius:999px;padding:6px 12px;color:#3C4A52}
  .kunye span b{color:var(--ink)}
  .tus{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .birincil{background:var(--ocean);color:#fff;padding:13px 26px;border-radius:10px;font-weight:650;font-size:15px;transition:.15s}
  .birincil:hover{background:#143E55;transform:translateY(-1px)}
  .ikincil{background:#EFEAE1;color:var(--ocean);padding:12px 20px;border-radius:10px;font-size:14px;font-weight:600}
  .ikincil:hover{background:#E4DCD0}
  .ipucu{margin-top:20px;font-size:12px;color:#6B7A83;line-height:1.65;border-top:1px solid #E4DED4;padding-top:15px}
  .ipucu b{color:#44545D}

  .hud{position:fixed;z-index:20;pointer-events:none}
  #ust{top:0;left:0;right:0;padding:14px 18px;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;
    background:linear-gradient(180deg,rgba(8,18,24,.7),transparent)}
  #ust .marka{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:800}
  #ust .ad{font-size:18px;font-weight:600;margin-top:3px;font-family:var(--serif);letter-spacing:.005em}
  #ust .alt{font-size:11px;color:#A9BEC9;margin-top:3px}
  .rozet{background:rgba(14,26,34,.62);border:1px solid rgba(196,169,106,.4);border-radius:10px;padding:8px 12px;
    font-size:11px;line-height:1.55;color:#D5E2E9;text-align:right;backdrop-filter:blur(6px);pointer-events:none}
  .rozet b{color:#fff}
  #odaAdi{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:21;pointer-events:none;opacity:0;transition:opacity .5s;
    font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(27,79,107,.85);
    padding:7px 17px;border-radius:999px;backdrop-filter:blur(6px)}
  #nisangah{position:fixed;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;
    background:rgba(255,255,255,.7);box-shadow:0 0 0 1px rgba(0,0,0,.3);z-index:20;pointer-events:none}

  /* "şuraya git" çipi: yönü söyler. Yerini sahnedeki nabız halkası gösterir,
     bu çip yalnız hangi odaya gidildiğini adıyla sabitler. */
  #gidis{position:fixed;top:104px;left:50%;transform:translate(-50%,-4px);z-index:21;pointer-events:none;
    display:flex;align-items:center;gap:8px;opacity:0;transition:opacity .3s,transform .3s;
    background:rgba(250,250,247,.94);border:1px solid rgba(196,169,106,.6);border-radius:999px;
    padding:6px 15px;box-shadow:0 10px 26px rgba(0,0,0,.35)}
  #gidis.goster{opacity:1;transform:translate(-50%,0)}
  #gidis em{font-style:normal;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ocean);font-weight:800}
  #gidis b{font-size:15px;line-height:1;color:var(--gold);font-weight:800}
  #gidis span{font-size:12.5px;color:var(--ink);font-weight:600}

  /* karartma perdesi: düz çizgisi duvarla kesilen oda geçişlerinde kamerayı
     duvarın içinden geçirmemek için. HUD'un ÜSTÜNDE (z-index 40) ve
     dokunmayı yutmaz. */
  #perde{position:fixed;inset:0;z-index:40;background:#0E1A22;opacity:0;pointer-events:none;
    will-change:opacity}

  /* sanal yürüyüş çubuğu: YALNIZ kaba işaretçide (dokunmatik). Masaüstünde
     klavye var; çubuğu göstermek arayüzü gereksiz doldururdu. */
  #cubuk{display:none;position:fixed;left:26px;bottom:196px;width:132px;height:132px;z-index:26;
    border-radius:50%;background:rgba(14,26,34,.34);border:1px solid rgba(196,169,106,.5);
    backdrop-filter:blur(4px);touch-action:none}
  #cubuk i{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:50%;
    background:rgba(196,169,106,.9);box-shadow:0 6px 16px rgba(0,0,0,.4);transform:translate(-50%,-50%)}
  #cubuk.on{background:rgba(14,26,34,.5)}
  @media (pointer:coarse){ #cubuk{display:block} }
  #cubuk.zorla{display:block}

  #miniharita{position:fixed;left:16px;bottom:150px;z-index:22;width:238px;border-radius:12px;overflow:hidden;
    border:1px solid rgba(196,169,106,.45);background:rgba(250,250,247,.95);box-shadow:0 16px 40px rgba(0,0,0,.45)}
  #mhBaslik{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ocean);padding:7px 10px 3px;font-weight:800}
  #mhCanvas{display:block;width:100%;height:auto}

  #odalar{position:fixed;right:16px;top:88px;z-index:22;width:216px;max-height:calc(100vh - 300px);overflow:auto;
    background:rgba(250,250,247,.95);border-radius:12px;padding:10px;border:1px solid rgba(196,169,106,.4);
    box-shadow:0 16px 40px rgba(0,0,0,.45)}
  #odalar .b{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ocean);font-weight:800;padding:3px 4px 8px}
  /* ★ DOKUNMA HEDEFİ (H turu, hedef #9): 6px 10px dolgu + 12,5px yazı
     ≈ 32px yükseklik veriyordu; parmakla ıskalanıyordu. 44px alt sınır
     (Apple HIG / WCAG 2.5.8). Satır aralığı 4px → 6px: 14 satırlık liste
     hâlâ tek ekrana sığar (216px panel, ~14 × 50 = 700px → kaydırma var,
     kesilme yok: `max-height` + `overflow:auto`). */
  #odalar button{width:100%;text-align:left;background:#fff;color:var(--ink);border:1px solid #E7E1D7;
    border-radius:8px;padding:8px 12px;margin-bottom:6px;font-size:13px;
    min-height:44px;display:flex;flex-direction:column;justify-content:center;transition:.14s}
  #odalar button:hover{border-color:var(--gold);background:#FFFDF8}
  #odalar button.aktif{border-color:var(--ocean);background:#F1F7FA}
  #odalar button em{display:block;font-style:normal;font-size:10px;color:#8A98A2;margin-top:2px}

  #konsol{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:25;width:min(960px,calc(100vw - 300px));
    background:rgba(12,23,30,.82);border:1px solid rgba(196,169,106,.32);border-radius:16px;padding:12px 16px;
    backdrop-filter:blur(14px);box-shadow:0 20px 50px rgba(0,0,0,.5)}
  .satir{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  /* `:not([hidden])` ŞART: komşu seçicisi DOM'a bakar, yerleşime bakmaz.
     Gizli birim satırı açıkken Saat satırı ona "komşu" sayılıp fazladan
     9 px + ayırıcı çizgi alıyordu (konsol gereğinden yüksek çıkıyordu). */
  .satir:not([hidden])+.satir:not([hidden]){margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.09)}
  .alan{display:flex;align-items:center;gap:9px;font-size:11.5px;color:#B9CAD3}
  .alan label{letter-spacing:.14em;text-transform:uppercase;font-size:9.5px;color:var(--gold);font-weight:800}
  input[type=range]{-webkit-appearance:none;appearance:none;height:4px;border-radius:99px;background:rgba(255,255,255,.2);width:140px}
  input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--gold);
    border:2px solid #10202A;cursor:pointer}
  .deger{font-variant-numeric:tabular-nums;color:#fff;font-weight:650;min-width:52px;font-size:12px}
  .cipler{display:flex;gap:6px;flex-wrap:wrap}
  .cip{background:rgba(255,255,255,.09);color:#DCE7ED;border-radius:999px;padding:6px 13px;font-size:11.5px;transition:.14s;border:1px solid transparent}
  .cip:hover{background:rgba(255,255,255,.17)}
  /* seçili birim tipi — `.mini.on` ile aynı dil (altın zemin, koyu yazı) */
  .cip.on{background:var(--gold);color:#14222B;font-weight:700}
  /* çipin içindeki kat aralığı: sayı okunur kalsın, yazıyı bastırmasın */
  .cip em{font-style:normal;opacity:.62;font-variant-numeric:tabular-nums;font-size:10.5px}
  .bosluk{flex:1}
  .cta{background:#25D366;color:#08320F;font-weight:750;border-radius:10px;padding:9px 16px;font-size:12.5px;transition:.15s;text-decoration:none}
  .cta:hover{filter:brightness(1.08)}
  .mini{background:rgba(255,255,255,.1);color:#DCE7ED;border-radius:9px;padding:8px 12px;font-size:11.5px}
  .mini:hover{background:rgba(255,255,255,.18)}
  .mini.on{background:var(--gold);color:#14222B;font-weight:700}

  #anlati{position:fixed;left:50%;transform:translateX(-50%);bottom:130px;z-index:26;width:min(700px,86vw);
    background:rgba(250,250,247,.97);color:var(--ink);border-radius:14px;padding:16px 20px;display:none;
    box-shadow:0 22px 60px rgba(0,0,0,.6);border-left:4px solid var(--gold)}
  #anlati .s{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ocean);font-weight:800}
  #anlati h3{margin:5px 0 6px;font-size:19px;font-family:var(--serif);font-weight:600}
  #anlati p{margin:0;font-size:13px;line-height:1.6;color:#40515B}
  #anlati .ilerle{margin-top:10px;height:3px;background:#E4DED4;border-radius:9px;overflow:hidden}
  #anlati .ilerle i{display:block;height:100%;width:0;background:var(--gold)}

  #fotoKart{position:fixed;left:16px;bottom:352px;z-index:23;width:238px;border-radius:12px;overflow:hidden;display:none;
    border:1px solid rgba(196,169,106,.45);background:rgba(250,250,247,.96);box-shadow:0 16px 40px rgba(0,0,0,.45);cursor:zoom-in}
  #fotoKart img{display:block;width:100%;height:118px;object-fit:cover}
  #fotoKart .fb{padding:8px 10px}
  #fotoKart .fb b{display:block;font-size:11.5px;color:var(--ink)}
  #fotoKart .fb span{display:block;font-size:9.5px;color:#8A98A2;margin-top:2px;letter-spacing:.04em}
  #fotoKutu{position:fixed;inset:0;z-index:56;background:rgba(8,16,22,.93);display:none;align-items:center;justify-content:center;padding:30px}
  #fotoKutu img{max-width:100%;max-height:calc(100vh - 130px);border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
  #fotoKutu .kapat{position:absolute;top:22px;right:26px;background:rgba(255,255,255,.14);color:#fff;border-radius:9px;padding:9px 16px;font-size:13px}
  #fotoKutu .alt{position:absolute;bottom:22px;left:0;right:0;text-align:center;font-size:12px;color:#B7C8D2}
  #planKutu{position:fixed;inset:0;z-index:55;background:rgba(8,16,22,.9);display:none;align-items:center;justify-content:center;padding:34px}
  #planKutu img{max-width:100%;max-height:calc(100vh - 120px);border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.6);background:#fff}
  #planKutu .kapat{position:absolute;top:22px;right:26px;background:rgba(255,255,255,.14);color:#fff;border-radius:9px;padding:9px 16px;font-size:13px}
  #planKutu .kaynak{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:11.5px;color:#9FB4BF}
  #dipnot{position:fixed;left:16px;right:16px;bottom:0;padding:8px 0 12px;text-align:center;font-size:10px;color:#7E929D;
    z-index:19;pointer-events:none;text-shadow:0 1px 6px rgba(0,0,0,.7)}
  /* ── KABA İŞARETÇİ: dokunma hedefleri 44px ──
     Masaüstünde fare 28px'lik çipi rahat bulur; parmak bulamaz.
     Ölçüldü: `.cip` 6px 13px + 11,5px yazı ≈ 28px, `.mini` ≈ 30px,
     `.kapat` ≈ 37px. Üçü de HIG eşiğinin altındaydı. */
  @media (pointer:coarse){
    .cip{padding:11px 16px;font-size:12.5px}
    .mini{padding:12px 15px;font-size:12.5px}
    #fotoKutu .kapat,#planKutu .kapat{padding:12px 18px;font-size:13.5px}
    input[type=range]{height:6px}
    input[type=range]::-webkit-slider-thumb{width:22px;height:22px}
  }

  @media (max-width:1150px){
    #konsol{width:calc(100vw - 32px)}
    /* ★ ODA LİSTESİ MOBİLDE SİLİNMEZ (H turu, hedef #9).
       Eski kural `#odalar{display:none}` idi: 14 odalı bir dairede telefondan
       oda seçmenin HİÇBİR yolu kalmıyordu — kullanıcının "14 satırlık oda
       listesi okunur kalsın" maddesi doğrudan bunu işaret ediyor.
       Yerleşim: üstte yatay kaydırmalı şerit. Dikey yer kaplamaz (gövde
       yüksekliği ~62px), tek parmak kaydırmayla 14 odanın hepsi erişilir,
       `scroll-snap` ile satırlar yarım kalmaz.
       Karşılığında MİNİHARİTA mobilde kapanır: üstte şerit varken 120px'lik
       bir harita ya çakışır ya da kullanıcıyı yanıltır; oda adlarını ve
       atlamayı zaten şerit veriyor. Bu bilinçli bir değiş tokuş, sessiz bir
       silme değil — KARNE'ye yazıldı. */
    #odalar{left:12px;right:12px;top:80px;bottom:auto;width:auto;max-height:none;
      border-radius:12px;padding:8px;display:flex;gap:8px;flex-wrap:nowrap;
      overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;
      -webkit-overflow-scrolling:touch;scrollbar-width:none}
    #odalar::-webkit-scrollbar{display:none}
    #odalar .b{display:none}
    #odalar button{flex:0 0 auto;width:auto;min-width:140px;margin-bottom:0;
      scroll-snap-align:start}
    #miniharita{display:none}
    /* kalıcı HUD öğeleri şeridin ALTINA iner: girişte oda adı, sonra
       "şuraya gidiliyor" çipi. İkisi de geçici, çakışma kısa sürerdi ama
       şeridin üstünde okunmaz olurdu. */
    #odaAdi{top:150px}
    #gidis{top:188px}
  }

  /* İmza (M turu): self-servis turun kendi imzası. HUD'ın üstüne
     binmesin diye sağ üstte, düşük kontrast; tıklamayı yemez. */
  #imza{position:fixed;top:16px;right:18px;z-index:19;pointer-events:none;
    font-size:10px;letter-spacing:.22em;text-transform:uppercase;
    color:#C7D4DB;text-shadow:0 1px 6px rgba(0,0,0,.75);opacity:.85}
