/* =============================================================================
   BLOG — STARLINK GIYDIRME KATMANI
   site.css'ten (derlenmis Tailwind) SONRA yuklenir ve onun jetonlarini ezer.

   NEDEN KATMAN, NEDEN MARKUP DEGIL: 111 blog dosyasi ayni Tailwind utility
   sistemini kullaniyor (bg-geo-surface, border-geo-border, rounded-xl...).
   Markup'i tek tek yeniden yazmak 111 dosyada elle is demekti; jetonlari tek
   yerden ezmek ayni sonucu veriyor, geri alinabiliyor ve icerige hic
   dokunmuyor. Bir yazi ancak bu dosyayi LINKLEDIGINDE giydirilmis olur —
   yani gecis yaziyi yazi devralinabilir.

   PALET landing'in koyu bant jetonlariyla AYNI (contact.html :root):
     zemin #0A0A0A · sac teli #1C1C1C · metin #ECECEC/#B3B3B3/#999999
   Blogun eski paleti farkliydi: saf siyah #000, kutu #1A1A1A, cizgi #333,
   ve neon camgobegi #12FDEF.
   ========================================================================== */

/* ── FONT: Inter -> Barlow ─────────────────────────────────────────────────
   Dosyalar zaten depoda (30 landing sayfasi kullaniyor). Blogda hic yoktu. */
@font-face { font-family:'Barlow'; font-style:normal; font-weight:400;
  font-display:swap; src:url('/assets/fonts/barlow-400-latin.woff2') format('woff2'); }
@font-face { font-family:'Barlow'; font-style:normal; font-weight:500;
  font-display:swap; src:url('/assets/fonts/barlow-500-latin.woff2') format('woff2'); }
@font-face { font-family:'Barlow'; font-style:normal; font-weight:600;
  font-display:swap; src:url('/assets/fonts/barlow-600-latin.woff2') format('woff2'); }

:root {
  --bs-ground: #0A0A0A;
  --bs-line:   #1C1C1C;
  --bs-line-2: #2A2A2E;
  --bs-fg:     #ECECEC;
  --bs-fg-2:   #B3B3B3;
  --bs-fg-3:   #999999;
  --bs-font:   'Barlow', -apple-system, system-ui, sans-serif;
}

body.bg-geo-dark { background: var(--bs-ground); color: var(--bs-fg-2); font-family: var(--bs-font); }
.font-sans, .prose, main, article { font-family: var(--bs-font); }

/* ── KUTULAR KALKIYOR, BANTLAR GELIYOR ─────────────────────────────────────
   Starlink dilinin merkezindeki hamle: bolum bir KUTU degil, ustunde tek sac
   teli cizgi olan tam genislikte bir BANT. Dolgu, yan kenarlik ve kose
   yaricapi kalkiyor. (Ayni karar mobil istasyon ekraninda da verildi.)
   `border` utility'si zaten isaretli oldugu icin ust cizgiyi ORAYA veriyoruz;
   boylece markup'ta hicbir sinif silmeye gerek kalmiyor. */
.bg-geo-surface,
.bg-geo-surface\/50,
.bg-white\/5 { background: transparent; }

.border-geo-border,
.border-geo-border\/50 { border-color: transparent; border-top-color: var(--bs-line); }

.rounded-xl, .rounded-lg, .rounded-md, .rounded { border-radius: 4px; }
/* Hap seklindeki ogeler (rozet, nav dugmesi) hap kaliyor — onlar bant degil. */

/* ── RENK: neon ve cok renkli vurgular monokroma ────────────────────────────
   Eski blog paletinde amber/mor/turuncu/yesil/kirmizi/sari vurgu kutulari
   vardi. Ayni palet mobil ekranda elendi ("turuncu mor renklere gerek yok").
   Burada da eleniyor: bilgi rengi degil, HIYERARSI tasir. */
.text-geo-accent { color: var(--bs-fg); }
.bg-geo-accent   { background: var(--bs-fg); color: var(--bs-ground); }
.bg-geo-accent\/5, .bg-geo-accent\/10, .bg-geo-accent\/20,
.bg-amber-500\/10, .bg-amber-500\/20,
.bg-purple-500\/10, .bg-purple-500\/20,
.bg-orange-500\/10, .bg-orange-500\/20,
.bg-green-500\/10,  .bg-green-500\/20,
.bg-red-500\/10,    .bg-red-500\/20,
.bg-yellow-500\/10, .bg-yellow-500\/20 { background: transparent; }
.border-geo-accent\/20 { border-color: transparent; border-top-color: var(--bs-line); }

.text-slate-300 { color: var(--bs-fg-2); }
.text-slate-400 { color: var(--bs-fg-2); }
.text-slate-500 { color: var(--bs-fg-3); }
.text-white     { color: var(--bs-fg); }

/* ── TIPOGRAFI ─────────────────────────────────────────────────────────────
   h2 alt cizgisi USTE tasiniyor: bolum basligi bandi ACAR, kapatmaz. */
.prose h2 {
  color: var(--bs-fg); font-weight: 600; font-size: 1.5rem;
  letter-spacing: -0.01em;
  margin-top: 3rem; margin-bottom: 1rem;
  padding-bottom: 0; padding-top: 1.75rem;
  border-bottom: 0; border-top: 1px solid var(--bs-line);
}
.prose h3 { color: var(--bs-fg); font-weight: 600; font-size: 1.0625rem; margin-top: 2rem; margin-bottom: .6rem; }
.prose p, .prose ul, .prose ol { color: var(--bs-fg-2); line-height: 1.75; }
.prose strong { color: var(--bs-fg); font-weight: 600; }
.prose li { line-height: 1.7; }

/* BAGLANTI RENKLE DEGIL ALTI CIZGIYLE ISARETLENIR — Starlink kurali.
   Eski hali neon camgobegiydi ve metnin icinde bagirıyordu. */
.prose a { color: var(--bs-fg); text-decoration: underline;
  text-decoration-color: rgba(255,255,255,0.32); text-underline-offset: 3px; }
.prose a:hover { text-decoration-color: rgba(255,255,255,0.7); }

/* Alinti: neon sol cubuk + renkli dolgu yerine sessiz sol sac teli. */
.prose blockquote {
  border-left: 1px solid var(--bs-line-2); background: transparent;
  border-radius: 0; padding: .25rem 0 .25rem 1.25rem; margin: 1.75rem 0;
}
.prose blockquote p { font-style: normal; color: var(--bs-fg-3); }

/* ── ICINDEKILER: kutu degil bant ──────────────────────────────────────────
   nav[aria-label] hedeflenir ki sitenin ust menusu (gs-nav) etkilenmesin. */
nav[aria-label="Table of contents"],
nav[aria-label="Icindekiler"],
nav[aria-label="Daftar isi"],
nav[aria-label="Tabla de contenidos"] {
  background: transparent; border: 0; border-top: 1px solid var(--bs-line);
  border-radius: 0; padding: 1.25rem 0 0; margin-bottom: 2.5rem;
}
nav[aria-label] h2 { color: var(--bs-fg-3); font-size: 12px; font-weight: 500;
  letter-spacing: 1.2px; text-transform: uppercase; }
nav[aria-label] a { color: var(--bs-fg-2); text-decoration: none; }
nav[aria-label] a:hover { color: var(--bs-fg); text-decoration: underline;
  text-decoration-color: rgba(255,255,255,0.32); text-underline-offset: 3px; }

/* ── TABLO: cizgili kutu degil, satir ayiricili veri ───────────────────────*/
.prose table { width: 100%; border-collapse: collapse; margin: 1.75rem 0; font-size: .9rem; }
.prose thead th { color: var(--bs-fg-3); font-weight: 500; font-size: 12px;
  letter-spacing: 1.2px; text-transform: uppercase; text-align: left;
  padding: 0 1.5rem .6rem 0; border-bottom: 1px solid var(--bs-line); white-space: nowrap; }
.prose tbody td { color: var(--bs-fg-2); padding: .7rem 1.5rem .7rem 0;
  border-bottom: 1px solid var(--bs-line); font-variant-numeric: tabular-nums; }
/* SON SUTUN sag bosluk ALMAZ: alsaydi tablo sagdan icerlek durur, bant
   hizasi bozulurdu. */
.prose thead th:last-child, .prose tbody td:last-child { padding-right: 0; }
.prose tbody tr:last-child td { border-bottom: 0; }
/* Ilk sutun (etiket sutunu) metin rengiyle one cikar — kutu ya da renk degil. */
.prose tbody td:first-child { color: var(--bs-fg); }
/* Dar ekranda tablo KENDI icinde kayar; sayfa yatay kaymaz. */
.prose table { display: block; overflow-x: auto; }

/* Kaydirma cubugu: neon hover kalkti. */
::-webkit-scrollbar-track { background: var(--bs-ground); }
::-webkit-scrollbar-thumb { background: var(--bs-line-2); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--bs-fg-3); }

/* ── EKSIK KALAN METIN RENKLERI (olcumle bulundu) ──────────────────────────
   Ilk turda yalniz bg-* varyantlari ezilmisti; sayfada mor/yesil/amber/kirmizi
   METIN siniflari kalmisti. DOM'dan olculdu: 9 mor, 5 yesil, 1 amber, 1 kirmizi
   ve 10 neon camgobegi. Hepsi hiyerarsiye cevriliyor — bilgi renkte degil. */
.text-purple-400, .text-purple-300, .text-purple-500,
.text-amber-400,  .text-amber-300,  .text-amber-500,
.text-orange-400, .text-orange-300, .text-orange-500,
.text-green-400,  .text-green-300,  .text-green-500,
.text-red-400,    .text-red-300,    .text-red-500,
.text-yellow-400, .text-yellow-300, .text-yellow-500,
.text-cyan-400,   .text-cyan-300,   .text-blue-400 { color: var(--bs-fg-2); }

.text-slate-200 { color: var(--bs-fg); }
.text-slate-600 { color: var(--bs-fg-3); }

/* Kategori rozetleri: renk yerine sac teli cerceve + kucuk versal. */
[class*="bg-purple-500"], [class*="bg-amber-500"], [class*="bg-orange-500"],
[class*="bg-green-500"], [class*="bg-red-500"], [class*="bg-yellow-500"],
[class*="bg-cyan-500"], [class*="bg-blue-500"] { background: transparent; }

/* ── KATEGORI ROZETLERI: hepsi ayni ─────────────────────────────────────────
   Ilk rozet (bg-geo-accent/10) hafif bir kutu tasiyor, digerleri tasimiyordu —
   ayni satirda iki farkli muamele. Uc rozet de ayni: dolgusuz, kucuk versal. */
.prose ~ * [class*="bg-geo-accent/"], header [class*="bg-geo-accent/"],
header [class*="bg-purple-500"], header [class*="bg-amber-500"] {
  background: transparent; padding-left: 0; padding-right: 0;
}
header a[class*="px-2"], header span[class*="px-2"] {
  font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
  color: var(--bs-fg-3); background: transparent; padding: 0; margin-right: 1.25rem;
}

/* ── RENKLI KENARLIKLAR (107 makale tarandiktan sonra bulundu) ─────────────
   Pilot yazida yoktu, digerlerinde var: border-purple-500/30 (8 kullanim),
   border-red-500/30 (2), border-amber-500/30 ve /20 (1'er). Ayni kural:
   renk kalkar, ust sac teline doner. */
[class*="border-purple-500"], [class*="border-red-500"],
[class*="border-amber-500"], [class*="border-green-500"],
[class*="border-orange-500"], [class*="border-yellow-500"],
[class*="border-blue-500"],   [class*="border-cyan-500"] {
  border-color: transparent; border-top-color: var(--bs-line);
}

/* ── TABLO ARKAPLANLARI (107 makale taranirken bulundu) ────────────────────
   Bazi yazilar KENDI stil blogunda tabloya zebra/baslik dolgusu veriyor
   (th ve tr'de #1A1A1A) — Tailwind sinifi degil, o yuzden ilk turda
   gozden kacti. Bant dilinde dolgu yok: ayrim SATIR CIZGISIYLE yapilir. */
.prose table, .prose thead, .prose tbody,
.prose tr, .prose th, .prose td { background: transparent; }

/* ── ZEBRA SATIR: sayfanin kendi kurali BENDEN SPESIFIK ────────────────────
   Yazilar `.prose tr:nth-child(even) { background: rgba(26,26,26,.5) }`
   tanimliyor — (0,2,1). Benim `.prose tr` (0,1,1) idi ve kaybediyordu.
   Ayni spesifiklikte ve SONRA geldigi icin bu kazanir. Zebra kalkiyor:
   satirlar dolguyla degil CIZGIYLE ayriliyor. */
.prose tr:nth-child(even), .prose tr:nth-child(odd) { background: transparent; }

/* Ayirici cubuklar: bg-geo-border'i ARKAPLAN olarak kullanan ince div'ler.
   (border-geo-border ezilmisti, bg- olani atlanmis.) */
.bg-geo-border { background: var(--bs-line); }

/* ── KUPON CTA (.gsc-*, dort makalede) ─────────────────────────────────────
   Kendi stil blogunda yasiyor: neon eyebrow, kesikli neon cerceve, neon
   buton. Ust menudeki "Buy" dugmesi zaten beyaz-uzerine-koyu; CTA da ona
   uyuyor, boylece sayfada iki farkli birincil dugme dili kalmiyor. */
/* ── KUPON CTA (.gs-coupon, dort makalede: raspberry-shake karsilastirmasi) ─
   SECICI TAM YAZILMALI: gercek kurallar `.gs-coupon .gsc-eyebrow` biciminde
   (0,2,0). Once `.gsc-eyebrow` sandim — grep'im secicinin yalniz KUYRUGUNU
   yakalamisti; `body .gsc-eyebrow` (0,1,1) kaybetti. Ders: seciciyi kaynaktan
   TAM oku, regex kuyruguna guvenme.
   Stiller GOVDE ICINDE tanimli, yani bu dosyadan sonra geliyor; asagidaki
   seciciler `body` onekiyle (0,2,1) yaziliyor: govde ici blok bu dosyadan
   SONRA geldigi icin esit spesifiklikte O kazanirdi — olculdu.
   Buton dili ust menudeki "Buy" ile ayni: beyaz uzerine koyu. */
body .gs-coupon { background: transparent; border-color: var(--bs-line); border-radius: 4px; }
body .gs-coupon h3 { color: var(--bs-fg); font-family: var(--bs-font); }
body .gs-coupon .gsc-eyebrow { font: 500 12px/1 var(--bs-font); letter-spacing: 1.2px;
  text-transform: uppercase; color: var(--bs-fg-3); }
body .gs-coupon .gsc-sub  { color: var(--bs-fg-2); font-family: var(--bs-font); }
body .gs-coupon .gsc-fine { color: var(--bs-fg-3); }
body .gs-coupon .gsc-code { border: 1px solid var(--bs-line-2); border-radius: 4px;
  background: transparent; }
body .gs-coupon .gsc-code b { color: var(--bs-fg); font-family: var(--bs-font); letter-spacing: 1.2px; }
body .gs-coupon .gsc-btn { background: #F5F5F7; color: #0A0A0A; border-radius: 4px; font-weight: 600; }
body .gs-coupon .gsc-btn:hover { opacity: .88; }

/* ── KURAL YAZILMAMIS OGELER (dort sayfa taranarak bulundu) ────────────────
   Bu ogeler icin hic kural yoktu, o yuzden sayfalarin kendi renkleri gecerli
   kaliyordu: <em> civit (#a5b4fc, 15 kullanim), <code> neon camgobegi,
   <sub>/<th> slate-200, <figcaption> slate-400. Hepsi hiyerarsiye ceviriliyor.
   `body` oneki SART: bu tanimlarin bir kismi govde ici stil bloklarinda ve
   bu dosyadan sonra geliyor. */
body .prose em, body main em { color: var(--bs-fg); font-style: italic; }
body .prose sub, body .prose sup { color: var(--bs-fg-2); }
body figcaption { color: var(--bs-fg-3); }
body main th, body article th { color: var(--bs-fg-3); background: transparent; }

/* Satir ici kod: neon yerine sessiz. Ayirt edicilik renkle degil ZEMINLE —
   #1C1C1C zaten paletin sac teli tonu, bu yuzden yeni bir renk katmiyor. */
body code, body .prose code {
  color: var(--bs-fg); background: var(--bs-line); border-radius: 4px;
  padding: .12em .38em; font-size: .92em;
}
body pre, body pre code { background: transparent; border-radius: 4px; }

/* Denklem/olcum kutucuklari (.gs-eq): yari saydam beyaz dolgu -> sac teli. */
body .gs-eq { background: transparent; border: 1px solid var(--bs-line); border-radius: 4px; color: var(--bs-fg); }

/* ── SON TUR: 107 makalenin TUM stil bloklari tarandi ──────────────────────
   Yontem: her <style> blogundaki renk/arkaplan belirleyen secici cikarildi
   (46 tane). Ilk turlarda yalniz GOVDE ICI bloklara bakmistim, oysa bu
   tanimlarin cogu HEAD'de. Asagisi o taramanin kalanini kapatiyor.
   `body` oneki her yerde SART: bazi bloklar bu dosyadan sonra geliyor. */

/* Ortak .prose iskeleti — 97-107 dosyada */
body .prose hr   { border-color: var(--bs-line); }
body .prose pre  { background: transparent; border: 1px solid var(--bs-line); border-radius: 4px; }
body .prose th   { color: var(--bs-fg-3); background: transparent; }
body .prose em   { color: var(--bs-fg); }

/* Ozel bilesenler — 1-2 sayfada, ama bir kez yazilinca nerede cikarsa dogru
   goruntulenir. Ortak kural: dolgu ve renk kalkar, ayrim CIZGIYLE yapilir. */
body .gs-note, body .gs-refs, body .gs-cap,
body .gs-fig figcaption, body .gs-tw .gs-sub { color: var(--bs-fg-3); }
body .gs-note { background: transparent; border-color: var(--bs-line); border-radius: 4px; }

body .gs-callout, body .gs-callout.gs-warn {
  background: transparent; border: 0; border-top: 1px solid var(--bs-line);
  border-radius: 0; color: var(--bs-fg-2);
}

/* Karsilastirma tablosu: yesil "olumlu" / amber "uyari" renkleri kalkiyor —
   bilgi zaten METINDE, renk tekrar ediyordu. Vurgulu satirin mor dolgusu da
   gidiyor; vurgu artik metin renginin kendisi. */
body .gs-tw th { background: transparent; color: var(--bs-fg-3); }
body .gs-tw td { border-bottom-color: var(--bs-line); color: var(--bs-fg-2); }
body .gs-tw tr.gs-hl td { background: transparent; color: var(--bs-fg); }
body .gs-tw .gs-ok, body .gs-tw .gs-warn2 { color: var(--bs-fg); }

body .sig-table th, body .sig-table td { border-color: var(--bs-line); }
body .sig-table thead th, body .sig-table tbody th { color: var(--bs-fg-3); background: transparent; }
body .sig-table code { color: var(--bs-fg); background: var(--bs-line); }

body .gs-imgph { background: transparent; border: 1px solid var(--bs-line); border-radius: 4px; }
body .gs-imgph-meta, body .gs-imgph-prompt { color: var(--bs-fg-3); }
