/* ============================================================================
   TASARIM TOKENLARI — Next versiyondaki globals.css'in birebir portu.
   Kömür/antrasit sofistike (koyu ana tema), tek net vurgu (turuncu signal),
   arka plan düz (gradient yok). Tek kaynak: buradaki değerler PARITY.md
   madde J ile eş; sapma = hata. Magic hex başka hiçbir dosyada olamaz.
   ============================================================================ */

/* --- Koyu tema (ANA) — varsayılan ve data-theme="dark" ------------------- */
:root,
:root[data-theme="dark"] {
  --bg: #0c0e10;
  --surface: #16181b;
  --surface-2: #1c1f22;
  --line: #2a2d3080;
  --line-strong: #3a3d42;
  --text: #faf9f6;
  --text-muted: #b8b4aa;
  /* 5.26:1 — AA sınırı 4.5 (Next'teki Lighthouse düzeltmesiyle aynı). */
  --text-faint: #8a8578;
  /* Canlı turuncu — koyu zeminde 6.77:1 (AA rahat geçer). */
  --signal: #df5e02;
  --signal-soft: #ff6b001a;
  /* Sinyal zemin üstünde kömür metin: 6.77:1 (beyaz 2.71:1'de kalıyor). */
  --on-signal: #0c0e10;

  --danger: #d66054;
  --success: #7fa05f;
  --warning: #d0a34a;
}

/* --- Açık tema — nötr sıcak kağıt (toggle ile) ---------------------------- */
:root[data-theme="light"] {
  --bg: #f5f4f0;
  --surface: #ffffff;
  --surface-2: #eceae3;
  --line: #e2dfd7;
  --line-strong: #cbc7bb;
  --text: #14130f;
  --text-muted: #514e45;
  --text-faint: #6f6b60;
  --signal: #df5e02;
  --signal-soft: #c74a2214;
  /* Açık temada signal üstünde beyaz metin 4.74:1 — AA geçiyor. */
  --on-signal: #ffffff;

  --danger: #b23a30;
  --success: #4a6b3a;
  --warning: #a9741f;
}

/* --- Tipografi ölçeği + font rolleri (Warm Editorial) --------------------- */
:root {
  /* CDN'den yüklenen aile adları (Google Fonts): Fraunces / Geist / Geist Mono */
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Geist", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;

  --fs-display: clamp(2.75rem, 6vw, 4.5rem);
  --fs-h1: clamp(2.25rem, 5vw, 3.5rem);
  --fs-h2: clamp(1.75rem, 3.5vw, 2.5rem);
  --fs-h3: clamp(1.25rem, 2vw, 1.5rem);
  --fs-body-lg: clamp(1.0625rem, 1.5vw, 1.25rem);
  --fs-body: 1rem;
  --fs-sm: 0.875rem;
  --fs-label: 0.75rem;

  /* Layout sabitleri (magic number yasağının tek istisna noktası) */
  --container-max: 72rem;
  --container-pad: clamp(1.25rem, 4vw, 2.5rem);
  --measure-body: 65ch;

  /* Animasyon token'ları (PARITY madde D — vanilla JS/CSS bu değerleri okur) */
  --ease-reveal: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-reveal: 0.5s;
  --dur-reveal-fast: 0.4s;
  --dur-hero: 0.7s;
  --dur-theme: 200ms;
}

/* --- Temel eleman stilleri ------------------------------------------------ */
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Tema geçişi yumuşak; yanlış-tema flash'ı head'deki inline script önler */
body,
body * {
  transition-property: background-color, border-color, color, fill, stroke;
  transition-duration: var(--dur-theme);
  transition-timing-function: ease;
}

/* Sticky navbar altına anchor kaymasını önle */
:target {
  scroll-margin-top: 6rem;
}

html {
  scroll-behavior: smooth;
}

/* Görünür focus (erişilebilirlik) */
:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 2px;
  border-radius: 2px;
}

/* --- prefers-reduced-motion: CSS katmanı (JS katmanı reveal.js'te) -------- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
