/* ==== fonts.css ==== */
/* Invoran İpli — fontlar (sahibi: varlik ajanı; SOZLESME §5). Otomatik üretildi: qa/varlik-fontcss.mjs
   Kaynak: Google Fonts CSS2 API (Inter v20, Barlow Condensed v13, Caveat v23) — SIL Open Font License 1.1.

   Düzen (aile başına 3 yüz, unicode-range'ler ÇAKIŞMAZ → yalnız gereken dosya iner):
     1) *-tr.woff2      Google "text=" alt kümesi: ASCII + Türkçe (ç ğ ı İ ö ş ü â î û) + tipografik işaretler + oklar.
                        Sayfadaki metnin tamamı bu dosyayla çizilir; ilk yüklemede aile başına TEK istek.
     2) *-latin.woff2   Google latin alt kümesi EKSİ (1)'in kapsamı.
     3) *-latin-ext.woff2 Google latin-ext alt kümesi EKSİ (1)'in kapsamı.
   (2) ve (3) yalnız sayfaya alt kümede olmayan bir Latin karakteri girerse (ör. WordPress'ten ñ, ø, ł) iner → Türkçe/Latin eksiksiz.

   Ağırlıklar (ölçüm, legacy build, qa/varlik-olcum.mjs): Inter 400/500/600/650/700/750 istenir; orijinal sitede
   yalnız 400/500/600 yüzleri vardı, 650–750 isteyen 111 düğüm 600 ile çiziliyordu. Görünüm aynı kalsın diye Inter
   "400 600" aralığıyla tanımlı (değişken font; 650+ → 600, yapay kalınlaştırma yok). Gerçek 700 istenirse yalnız
   aşağıdaki iki "font-weight: 400 600" değerini "400 700" yapmak yeter (dosyalar değişmez, ek bayt yok).
   Barlow Condensed yalnız 700 (orijinalde 400 isteyen 6 düğüm de 700 çiziliyordu). Caveat yalnız 400.

   Yedek (fallback) yüzler: CLS'yi azaltmak için metrik uyumlu. Değerler tarayıcıda ölçüldü (qa/varlik-font-metrik.mjs,
   Türkçe örnek metin; size-adjust = genişlik oranı, override'lar size-adjust'a bölünmüş). Kullanım:
     --sans:    Inter, "Inter Fallback", Arial, sans-serif
     --display: 'Barlow Condensed', "Barlow Condensed Fallback", Impact, sans-serif
     --hand:    Caveat, "Caveat Fallback", cursive
*/

/* ==== Inter ==== */
/* Türkçe alt küme (varsayılan olarak inen tek dosya) */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-var-tr.woff2) format("woff2");unicode-range:U+0020-007E, U+00A0, U+00A7, U+00A9, U+00AB, U+00B0, U+00B2-00B3, U+00B5, U+00B7, U+00BB, U+00BD, U+00C1-00C2, U+00C4, U+00C7, U+00C9-00CB, U+00CD-00CF, U+00D3-00D4, U+00D6-00D7, U+00DA-00DD, U+00E1-00E2, U+00E4, U+00E7, U+00E9-00EB, U+00ED-00EF, U+00F3-00F4, U+00F6, U+00FA-00FD, U+00FF, U+0102-0103, U+0106-010B, U+0114-0117, U+011C-0125, U+012C-012D, U+0130-0131, U+0134-0137, U+0139-013C, U+0143-0146, U+014E-014F, U+0154-0157, U+015A-015F, U+0162-0163, U+016C-016D, U+0174-017C, U+01D7-01D8, U+01F4-01F5, U+0226-0229, U+022E-022F, U+0301-0302, U+0306-0308, U+0327, U+03C0, U+1E02-1E03, U+1E08-1E0B, U+1E10-1E11, U+1E1C-1E1F, U+1E22-1E23, U+1E26-1E29, U+1E2E-1E31, U+1E3E-1E41, U+1E44-1E45, U+1E54-1E59, U+1E60-1E61, U+1E64-1E65, U+1E6A-1E6B, U+1E82-1E87, U+1E8A-1E91, U+1E97, U+1EA4-1EA5, U+1EAE-1EAF, U+1EBE-1EBF, U+1ED0-1ED1, U+2013-2014, U+2018-2019, U+201C-201E, U+2022, U+2026, U+2032-2033, U+20AC, U+20BA, U+2122, U+2161, U+2190-2194, U+2197-2198, U+21BB, U+2212, U+2248, U+2264-2265, U+25B6, U+25CF}
/* latin − alt küme (yalnız gerekirse iner) */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-var-latin.woff2) format("woff2");unicode-range:U+00A1-00A6, U+00A8, U+00AA, U+00AC-00AF, U+00B1, U+00B4, U+00B6, U+00B8-00BA, U+00BC, U+00BE-00C0, U+00C3, U+00C5-00C6, U+00C8, U+00CC, U+00D0-00D2, U+00D5, U+00D8-00D9, U+00DE-00E0, U+00E3, U+00E5-00E6, U+00E8, U+00EC, U+00F0-00F2, U+00F5, U+00F7-00F9, U+00FE, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0329, U+2000-2012, U+2015-2017, U+201A-201B, U+201F-2021, U+2023-2025, U+2027-2031, U+2034-206F, U+2215, U+FEFF, U+FFFD}
/* latin-ext − alt küme (yalnız gerekirse iner) */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-var-latin-ext.woff2) format("woff2");unicode-range:U+0100-0101, U+0104-0105, U+010C-0113, U+0118-011B, U+0126-012B, U+012E-012F, U+0132-0133, U+0138, U+013D-0142, U+0147-014D, U+0150-0153, U+0158-0159, U+0160-0161, U+0164-016B, U+016E-0173, U+017D-01D6, U+01D9-01F3, U+01F6-0225, U+022A-022D, U+0230-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0329, U+1D00-1DBF, U+1E00-1E01, U+1E04-1E07, U+1E0C-1E0F, U+1E12-1E1B, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2D, U+1E32-1E3D, U+1E42-1E43, U+1E46-1E53, U+1E5A-1E5F, U+1E62-1E63, U+1E66-1E69, U+1E6C-1E81, U+1E88-1E89, U+1E92-1E96, U+1E98-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20B9, U+20BB-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

/* ==== Barlow Condensed ==== */
/* Türkçe alt küme (varsayılan olarak inen tek dosya) */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700-tr.woff2) format("woff2");unicode-range:U+0020-007E, U+00A0, U+00A7, U+00A9, U+00AB, U+00B0, U+00B2-00B3, U+00B5, U+00B7, U+00BB, U+00BD, U+00C1-00C2, U+00C4, U+00C7, U+00C9-00CB, U+00CD-00CF, U+00D3-00D4, U+00D6-00D7, U+00DA-00DD, U+00E1-00E2, U+00E4, U+00E7, U+00E9-00EB, U+00ED-00EF, U+00F3-00F4, U+00F6, U+00FA-00FD, U+00FF, U+0102-0103, U+0106-010B, U+0114-0117, U+011C-0125, U+012C-012D, U+0130-0131, U+0134-0137, U+0139-013C, U+0143-0146, U+014E-014F, U+0154-0157, U+015A-015F, U+0162-0163, U+016C-016D, U+0174-017C, U+01D7-01D8, U+01F4-01F5, U+0226-0229, U+022E-022F, U+0301-0302, U+0306-0308, U+0327, U+03C0, U+1E02-1E03, U+1E08-1E0B, U+1E10-1E11, U+1E1C-1E1F, U+1E22-1E23, U+1E26-1E29, U+1E2E-1E31, U+1E3E-1E41, U+1E44-1E45, U+1E54-1E59, U+1E60-1E61, U+1E64-1E65, U+1E6A-1E6B, U+1E82-1E87, U+1E8A-1E91, U+1E97, U+1EA4-1EA5, U+1EAE-1EAF, U+1EBE-1EBF, U+1ED0-1ED1, U+2013-2014, U+2018-2019, U+201C-201E, U+2022, U+2026, U+2032-2033, U+20AC, U+20BA, U+2122, U+2161, U+2190-2194, U+2197-2198, U+21BB, U+2212, U+2248, U+2264-2265, U+25B6, U+25CF}
/* latin − alt küme (yalnız gerekirse iner) */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700-latin.woff2) format("woff2");unicode-range:U+00A1-00A6, U+00A8, U+00AA, U+00AC-00AF, U+00B1, U+00B4, U+00B6, U+00B8-00BA, U+00BC, U+00BE-00C0, U+00C3, U+00C5-00C6, U+00C8, U+00CC, U+00D0-00D2, U+00D5, U+00D8-00D9, U+00DE-00E0, U+00E3, U+00E5-00E6, U+00E8, U+00EC, U+00F0-00F2, U+00F5, U+00F7-00F9, U+00FE, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0329, U+2000-2012, U+2015-2017, U+201A-201B, U+201F-2021, U+2023-2025, U+2027-2031, U+2034-206F, U+2215, U+FEFF, U+FFFD}
/* latin-ext − alt küme (yalnız gerekirse iner) */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-0101, U+0104-0105, U+010C-0113, U+0118-011B, U+0126-012B, U+012E-012F, U+0132-0133, U+0138, U+013D-0142, U+0147-014D, U+0150-0153, U+0158-0159, U+0160-0161, U+0164-016B, U+016E-0173, U+017D-01D6, U+01D9-01F3, U+01F6-0225, U+022A-022D, U+0230-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0329, U+1D00-1DBF, U+1E00-1E01, U+1E04-1E07, U+1E0C-1E0F, U+1E12-1E1B, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2D, U+1E32-1E3D, U+1E42-1E43, U+1E46-1E53, U+1E5A-1E5F, U+1E62-1E63, U+1E66-1E69, U+1E6C-1E81, U+1E88-1E89, U+1E92-1E96, U+1E98-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20B9, U+20BB-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

/* ==== Caveat ==== */
/* Türkçe alt küme (varsayılan olarak inen tek dosya) */
@font-face{font-family:"Caveat";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/caveat-400-tr.woff2) format("woff2");unicode-range:U+0020-007E, U+00A0, U+00A7, U+00A9, U+00AB, U+00B0, U+00B2-00B3, U+00B5, U+00B7, U+00BB, U+00BD, U+00C1-00C2, U+00C4, U+00C7, U+00C9-00CB, U+00CD-00CF, U+00D3-00D4, U+00D6-00D7, U+00DA-00DD, U+00E1-00E2, U+00E4, U+00E7, U+00E9-00EB, U+00ED-00EF, U+00F3-00F4, U+00F6, U+00FA-00FD, U+00FF, U+0102-0103, U+0106-010B, U+0114-0117, U+011C-0125, U+012C-012D, U+0130-0131, U+0134-0137, U+0139-013C, U+0143-0146, U+014E-014F, U+0154-0157, U+015A-015F, U+0162-0163, U+016C-016D, U+0174-017C, U+01D7-01D8, U+01F4-01F5, U+0226-0229, U+022E-022F, U+0301-0302, U+0306-0308, U+0327, U+03C0, U+1E02-1E03, U+1E08-1E0B, U+1E10-1E11, U+1E1C-1E1F, U+1E22-1E23, U+1E26-1E29, U+1E2E-1E31, U+1E3E-1E41, U+1E44-1E45, U+1E54-1E59, U+1E60-1E61, U+1E64-1E65, U+1E6A-1E6B, U+1E82-1E87, U+1E8A-1E91, U+1E97, U+1EA4-1EA5, U+1EAE-1EAF, U+1EBE-1EBF, U+1ED0-1ED1, U+2013-2014, U+2018-2019, U+201C-201E, U+2022, U+2026, U+2032-2033, U+20AC, U+20BA, U+2122, U+2161, U+2190-2194, U+2197-2198, U+21BB, U+2212, U+2248, U+2264-2265, U+25B6, U+25CF}
/* latin − alt küme (yalnız gerekirse iner) */
@font-face{font-family:"Caveat";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/caveat-400-latin.woff2) format("woff2");unicode-range:U+00A1-00A6, U+00A8, U+00AA, U+00AC-00AF, U+00B1, U+00B4, U+00B6, U+00B8-00BA, U+00BC, U+00BE-00C0, U+00C3, U+00C5-00C6, U+00C8, U+00CC, U+00D0-00D2, U+00D5, U+00D8-00D9, U+00DE-00E0, U+00E3, U+00E5-00E6, U+00E8, U+00EC, U+00F0-00F2, U+00F5, U+00F7-00F9, U+00FE, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0329, U+2000-2012, U+2015-2017, U+201A-201B, U+201F-2021, U+2023-2025, U+2027-2031, U+2034-206F, U+2215, U+FEFF, U+FFFD}
/* latin-ext − alt küme (yalnız gerekirse iner) */
@font-face{font-family:"Caveat";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/caveat-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-0101, U+0104-0105, U+010C-0113, U+0118-011B, U+0126-012B, U+012E-012F, U+0132-0133, U+0138, U+013D-0142, U+0147-014D, U+0150-0153, U+0158-0159, U+0160-0161, U+0164-016B, U+016E-0173, U+017D-01D6, U+01D9-01F3, U+01F6-0225, U+022A-022D, U+0230-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0329, U+1D00-1DBF, U+1E00-1E01, U+1E04-1E07, U+1E0C-1E0F, U+1E12-1E1B, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2D, U+1E32-1E3D, U+1E42-1E43, U+1E46-1E53, U+1E5A-1E5F, U+1E62-1E63, U+1E66-1E69, U+1E6C-1E81, U+1E88-1E89, U+1E92-1E96, U+1E98-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20B9, U+20BB-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

/* ==== Metrik uyumlu yedek yüzler (yerel sistem fontu; indirme yok) ==== */
/* Inter → Arial (normal) ve Arial Bold (600+) */
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("ArialMT");font-weight:100 500;size-adjust:105.89%;ascent-override:91.51%;descent-override:22.76%;line-gap-override:0%}
@font-face{font-family:"Inter Fallback";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:600 900;size-adjust:101.15%;ascent-override:95.80%;descent-override:23.83%;line-gap-override:0%}
/* Barlow Condensed 700 → Arial Narrow Bold varsa o (sonra tanımlanan önce denenir), yoksa Arial Bold.
   Bulunamayan local() yüzünün atlanıp aynı ailedeki önceki yüze geçildiği Edge/Chromium'da ölçüldü. */
@font-face{font-family:"Barlow Condensed Fallback";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:100 900;size-adjust:68.85%;ascent-override:145.25%;descent-override:29.05%;line-gap-override:0%}
@font-face{font-family:"Barlow Condensed Fallback";src:local("Arial Narrow Bold"),local("ArialNarrow-Bold");font-weight:100 900;size-adjust:83.97%;ascent-override:119.09%;descent-override:23.82%;line-gap-override:0%}
/* Caveat → Comic Sans MS (Windows/macOS'ta "cursive" zaten budur; burada yalnız ölçüsü Caveat'e uyduruldu) */
@font-face{font-family:"Caveat Fallback";src:local("Comic Sans MS"),local("ComicSansMS");font-weight:100 900;size-adjust:71.78%;ascent-override:133.75%;descent-override:41.80%;line-gap-override:0%}

/* ==== tokens.css ==== */
/* ==========================================================================
   Invoran İpli — tasarım token'ları (tek :root)
   Değerler orijinal ipli CSS'in hesaplanmış (geçerli) değerlerinden alındı.
   Yalnız bu dosya :root'ta özel özellik tanımlar; bölümler token'ı EZMEZ
   (eski .distribution kapsamındaki --blue/--paper/--ink/--muted ezmesi kaldırıldı).
   ========================================================================== */
:root {
  /* --- Palet --- */
  --blue: #2052eb;          /* birincil marka mavisi (bağlantı, buton, vurgu) */
  --blue-deep: #173fab;     /* buton hover */
  --electric: #2044ff;      /* elektrik mavisi: "Tek içerik. Tüm kanallar." zemini, ip vurgusu */
  --navy: #101f42;          /* lacivert bölüm zemini (video vitrini, #emre) */
  --ink: #102143;           /* gövde metni / koyu başlık */
  --ink-deep: #111a2d;      /* "FARKI AÇIN." dev başlık */
  --ice: #edf2ff;           /* buz mavisi bölüm zemini */
  --pale: #e9efff;          /* açık mavi yüzey (monogram, avatar) */
  --paper: #f7f9fe;         /* sayfa zemini */
  --paper-warm: #fffef9;    /* kanal kartları (mavi bölüm) */
  --white: #fff;
  --muted: #57647a;         /* ikincil metin (beyaz/açık zeminde ≥ 5.6:1) */
  --muted-strong: #4a5568;  /* küçük gri etiketler (≥ 7:1) */
  --line: #dce3ed;          /* kenarlık tonu */
  --line-blue: #c9d8f3;     /* mavi tonlu kart kenarlığı */
  --on-dark: #f1f5ff;       /* lacivert zeminde metin */
  --on-dark-muted: #b2c3e2; /* lacivert zeminde ikincil metin (≥ 8:1) */
  --on-dark-accent: #92b3ff;/* lacivert zeminde vurgulu başlık satırı */
  --on-blue: #fff;          /* elektrik mavisi zeminde metin */
  --on-blue-soft: #e7edff;  /* elektrik mavisi zeminde gövde metni (≥ 5.3:1) */
  --focus: var(--blue);
  --focus-on-dark: #fff;

  /* --- Tipografi --- */
  --sans: Inter, "Inter Fallback", Arial, sans-serif;
  --display: 'Barlow Condensed', "Barlow Condensed Fallback", Impact, sans-serif;
  --hand: Caveat, "Caveat Fallback", cursive;
  /* 8 adımlı ölçek (12/14/16/20/28/40/72/96) + bölüm kapısı */
  --fs-1: .75rem;      /* 12px — en küçük etiket (min) */
  --fs-2: .875rem;     /* 14px */
  --fs-3: 1rem;        /* 16px */
  --fs-4: 1.25rem;     /* 20px */
  --fs-5: 1.75rem;     /* 28px */
  --fs-6: 2.5rem;      /* 40px */
  --fs-7: 4.5rem;      /* 72px */
  --fs-8: 6rem;        /* 96px */
  --fs-h2: clamp(3.1rem, 6.5vw, 6.8rem);      /* bölüm başlığı (orijinal ölçek) */
  --fs-h2-mobile: clamp(2.8rem, 11.5vw, 4.6rem);
  --fs-gate: clamp(5rem, 15.2vw, 13.7rem);    /* bölüm kapısı: FARKI AÇIN. */
  /* Barlow başlıklar: Ş/Ç çengeli ile alt satır İ/Ü/Ö noktası arası ≥ 3px (ölçüm: qa/css-gates.mjs).
     Orijinal .97 idi (−12,2px çakışma). Satır yüksekliği + iki satırlı kalıpta ikinci satıra ek boşluk. */
  --lh-display: .99;
  --display-line-gap: .05em;
  --tracking-display: -.015em;
  --tracking-label: .14em;

  /* --- Boşluk (8pt) --- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 88px;     /* bölüm dikey boşluğu (masaüstü) */
  --section-pad: 88px;
  --section-pad-m: 58px;

  /* --- Köşe, kenarlık, gölge --- */
  --radius: 14px;      /* kart */
  --radius-lg: 20px;   /* büyük kart / bölüm kabı */
  --radius-sm: 9px;    /* buton */
  --radius-xs: 7px;    /* input, küçük düğme */
  --radius-pill: 100px;
  --shadow-1: 0 8px 18px rgb(16 33 67 / .06);                 /* küçük öğe, buton */
  --shadow-2: 0 25px 60px -22px rgb(16 33 67 / .22);          /* kart */
  --shadow-3: 0 35px 130px rgb(16 32 68 / .27);               /* pencere */
  --shadow-blue: 0 10px 25px rgb(32 82 235 / .17);            /* mavi buton / öne çıkan kart */

  /* --- Hareket --- */
  --ease: cubic-bezier(.2, .7, .2, 1);   /* tek easing eğrisi */
  --dur-1: .2s;
  --dur-2: .35s;
  --dur-3: .65s;

  /* --- Izgara, konteyner, ip --- */
  --container: 1180px;
  --container-wide: 1240px;             /* ≥ 1600px */
  --gutter: 120px;                      /* .wrap yan boşluk toplamı (masaüstü) */
  --wrap: min(var(--container), calc(100% - var(--gutter)));
  /* İp şeridi: içeriğin solundan ipin eksenine uzaklık. JS ipi .wrap kutusundan − thread-offset ile çizer. */
  --thread-offset: 32px;
  --thread-gap: 24px;                   /* ip ile içerik arası en az (masaüstü) */
  --thread-gap-m: 14px;                 /* mobil */
  --thread-lane: calc((100vw - min(var(--container), 100vw - var(--gutter))) / 2 - var(--thread-offset));
  --thread-cross: 57px;                 /* bölüm başındaki yatay ip geçişinin yüksekliği */

  /* --- Header --- */
  --header-h: 76px;
  --header-h-scrolled: 64px;
  --header-h-m: 64px;
  --mobile-bar-h: 64px;
  --z-thread: 1;
  --z-content: 2;
  --z-header: 50;
  --z-mobile-bar: 60;
  --z-progress: 100;
}

@media (min-width: 1600px) {
  :root { --container: var(--container-wide); }
}
@media (max-width: 1100px) {
  :root { --gutter: 90px; }
}
@media (max-width: 800px) {
  /* Entegrasyon (26 Eylül): 64 → 72. 9 px çizgiyle 32 px yan boşlukta ip–içerik ≥ 24 px (§8) fiziksel olarak mümkün değildi. */
  :root { --gutter: 72px; }
}
@media (max-width: 580px) {
  /* Entegrasyon: --thread-offset 17 → 18 (hero başlangıç kıvrımında ip–içerik ≥ 14 px; sağda ip görünüm kenarının 4,5 px içinde kalır) */
  :root { --gutter: 46px; --thread-offset: 18px; --lh-display: 1.02; }
}

/* ==== base.css ==== */
/* ==========================================================================
   Temel öğe stilleri (sıfırlama, tipografi, odak)
   ========================================================================== */

:root {
  color-scheme: light;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* sabit header (kaydırılmış hâli 64px) + nefes payı */
  scroll-padding-top: calc(var(--header-h-scrolled) + 24px);
}

body {
  position: relative;
  margin: 0;
  overflow-x: clip;
}

button,
a,
input,
textarea,
select {
  -webkit-tap-highlight-color: transparent;
}

button,
input,
textarea,
select {
  font: inherit;
}

button,
a {
  touch-action: manipulation;
}

button {
  color: inherit;
  cursor: pointer;
}

button:disabled {
  cursor: default;
}

a {
  color: inherit;
  text-decoration: none;
}

img,
video {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

button img {
  width: 100%;
}

figure,
blockquote,
p,
h1,
h2,
h3,
h4 {
  margin: 0;
}

p {
  font-size: 1rem;
  line-height: 1.65;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

summary {
  list-style: none;
  cursor: pointer;
}

summary::-webkit-details-marker {
  display: none;
}

/* --- Başlıklar ---
   Barlow Condensed büyük harf başlıklarda üst satırdaki Ş/Ç çengeli ile alt satırdaki İ/Ü/Ö noktası
   çakışmasın diye (denetim: −12,2px) satır yüksekliği .97 → var(--lh-display) ve iki satırlı kalıpta
   (ÜST <br><span>ALT</span>) ikinci satır bloğuna ek üst boşluk. Ölçüm: qa/css-gates.mjs (≥ 3px). */
h1,
h2 {
  font-family: var(--display);
  font-weight: 700;
  letter-spacing: var(--tracking-display);
  line-height: var(--lh-display);
}

h2 {
  font-size: var(--fs-h2);
}

h1 span,
h2 span {
  color: var(--blue);
}

h2 > br + span {
  display: inline-block;
  margin-top: var(--display-line-gap);
}

h3 {
  font-size: clamp(1.5rem, 2.3vw, 2.1rem);
  font-weight: 650;
  line-height: 1.12;
  letter-spacing: -.035em;
}

/* --- Odak --- */
button:focus-visible,
a:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 5px;
}

/* koyu / mavi zeminli bölümlerde beyaz halka (≥ 3:1) */
.video-section :focus-visible,
.distribution :focus-visible,
.about :focus-visible,
.price-card--service :focus-visible {
  outline-color: var(--focus-on-dark);
}

@media (max-width: 580px) {
  html {
    scroll-padding-top: calc(var(--header-h-m) + 12px);
  }

  h2 {
    font-size: var(--fs-h2-mobile);
  }

  h3 {
    font-size: 1.6rem;
  }
}

/* ---- Başlık satırları (ui/reveal.js → inv-line/inv-li; yalnız hareket açıkken) ----
   Taşma gizli ama Türkçe aksanlar (İ Â Ü) ve çengeller (Ş Ç) kırpılmasın diye iç boşluk + eşit negatif kenar. */
inv-line {
  display: block;
  overflow: hidden;
  padding: .2em .1em .22em;
  margin: -.2em -.1em -.22em;
}
inv-line + inv-line {
  margin-top: calc(var(--display-line-gap, 0px) - .2em);
}
inv-li {
  display: block;
  transform-origin: 0 100%;
}

/* ==== layout.css ==== */
/* ==========================================================================
   Yerleşim: konteyner, bölüm ritmi, bölüm girişi, taşma güvenliği
   Konteyner token'ları tokens.css'te (--container, --gutter, --wrap). İp şeridi JS'te .wrap
   kutusundan hesaplanır; tüm bölümler (paylaşım dahil) aynı .wrap'ı kullanır.
   ========================================================================== */

.wrap {
  position: relative;
  width: var(--wrap);
  margin-inline: auto;
}

.scene-section {
  position: relative;
}

.scene-section:not(.hero) {
  padding-block: var(--section-pad);
}

.scene-section > .wrap {
  z-index: var(--z-content);
}

.section-intro {
  max-width: 880px;
  margin-bottom: 44px;
}

.section-intro h2 {
  letter-spacing: -.01em;
}

.section-intro > p:not(.eyebrow) {
  max-width: 550px;
  margin-top: 24px;
  font-size: 1.02rem;
  color: var(--muted);
}

.section-intro .text-link {
  margin-top: 22px;
}

/* Izgara öğeleri görünüm alanıyla ve büyütülmüş yazıyla küçülebilsin */
main *,
dialog *,
.site-footer * {
  min-width: 0;
}

main :is(h1, h2, h3, p, li, a, button, span, strong),
dialog :is(h2, h3, p, a, button),
.site-footer :is(p, a, span) {
  overflow-wrap: anywhere;
}

@media (max-width: 800px) {
  .section-intro {
    margin-bottom: 34px;
  }
}

@media (max-width: 580px) {
  /* Entegrasyon (26 Eylül): 29/17 yerine iki yanda 23 px. Sağdaki ip ekseni görünüm kenarına kırpıldığı için
     ip–içerik mesafesi 10 px kalıyordu (§8: mobil ≥ 14). İçerik genişliği aynı (100% − 46px). */
  .wrap {
    width: calc(100% - 46px);
    margin-left: 23px;
    margin-right: 23px;
  }

  .scene-section:not(.hero) {
    padding-block: var(--section-pad-m);
  }

  .section-intro {
    margin-bottom: 30px;
  }

  .section-intro > p:not(.eyebrow) {
    margin-top: 18px;
  }
}

/* ==== components.css ==== */
/* ==========================================================================
   Ortak bileşenler: eyebrow, buton, metin bağlantısı, yuvarlak düğme, küçük notlar, monogram
   ========================================================================== */

.eyebrow {
  margin-bottom: 16px;
  font-size: .77rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: var(--tracking-label);
  color: var(--muted);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  min-height: 44px;
  padding: 7px 0;
  background: none;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  font-size: .9rem;
  font-weight: 600;
  color: var(--blue);
  text-align: left;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  min-height: 52px;
  padding: 16px 24px;
  border: 1px solid var(--blue);
  border-radius: var(--radius-sm);
  background: var(--blue);
  color: #fff;
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.3;
  box-shadow: 0 6px 18px rgb(35 85 214 / .1);
  transition: transform var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease);
}

.button:hover {
  background: var(--blue-deep);
  transform: translateY(-2px);
}

.button:active {
  transform: translateY(1px);
}

.button.compact {
  min-height: 44px;
  padding: 12px 20px;
  font-size: .86rem;
}

/* ikincil (çerçeveli) buton — eğitim fiyat kartı vb. */
.button--ghost {
  background: #fff;
  color: var(--blue);
  box-shadow: none;
}

.button--ghost:hover {
  background: var(--ice);
}

.circle-button {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 8px 15px rgb(23 57 130 / .03);
  font-size: 1.6rem;
}

.circle-button:hover {
  border-color: var(--blue);
  color: var(--blue);
}

.full-note,
.fine-print,
.detail-note {
  font-size: .8rem;
  line-height: 1.6;
  color: var(--muted);
}

.tool-monogram {
  display: grid;
  place-items: center;
  width: 47px;
  height: 47px;
  border-radius: 12px;
  background: var(--pale);
  color: var(--blue);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -.06em;
}

/* dipnot işareti (hero kimlik satırı → #kimlik-dipnot): görünür işaret küçük, dokunma alanı 44px
   (dolgu + negatif kenar boşluğu satırı büyütmez) */
.footnote-ref {
  display: inline-block;
  min-width: 44px;
  min-height: 44px;
  margin: -14px -14px -14px -12px;
  padding: 10px 14px 10px 12px;
  color: var(--blue);
  font-size: max(.75rem, .8em);
  font-weight: 700;
  line-height: 24px;
  text-align: left;
  vertical-align: top;
}

@media (max-width: 580px) {
  .eyebrow {
    margin-bottom: 12px;
    font-size: .75rem;
  }

  .tool-monogram {
    width: 43px;
    height: 43px;
  }
}

/* ==== header-footer.css ==== */
/* ==========================================================================
   Header (sabit), okuma çubuğu, atlama bağlantısı, footer, mobil alt bar
   SOZLESME §6.1: .site-header sabit; html.is-scrolled'da 64px, buz mavisi yarı saydam + blur.
   §6.2: nav.mobile-bar yalnız < 700px, JS .is-visible ekler; safe-area.
   ========================================================================== */

.skip {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 999;
  padding: 15px;
  background: #fff;
  transform: translateY(-150%);
}

.skip:focus {
  transform: none;
}

.read-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: var(--z-progress);
  height: 3px;
  background: linear-gradient(90deg, var(--blue), #90b2ff);
  transform: scaleX(0);
  transform-origin: left;
}

/* Header kutusu akıştan çıktığı için yeri body'de ayrılır: sayfanın üst düzeni orijinalle aynı kalır. */
body {
  padding-top: var(--header-h);
}

.site-header {
  --header-pad: max(40px, calc((100% - 1320px) / 2));
  position: fixed;
  inset: 0 0 auto;
  z-index: var(--z-header);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: var(--header-h);
  padding-inline: var(--header-pad);
  /* üstte sayfa zeminiyle aynı ton (görünmez); JS olmasa da içerik üstünde okunur kalır */
  background: rgb(247 249 254 / .9);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  backdrop-filter: blur(14px) saturate(1.4);
  transition: height var(--dur-2) var(--ease), background-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);
}

/* alt çizgi: içerik genişliğinde (orijinaldeki 1320px'lik kutunun kenarlığı) */
.site-header::after {
  content: "";
  position: absolute;
  inset: auto var(--header-pad) 0;
  height: 1px;
  background: var(--line);
  transition: opacity var(--dur-2) var(--ease);
}

html.is-scrolled .site-header {
  height: var(--header-h-scrolled);
  background: rgb(237 242 255 / .84);
  box-shadow: 0 1px 0 rgb(16 33 67 / .06), 0 10px 30px -18px rgb(16 33 67 / .25);
}

html.is-scrolled .site-header::after {
  opacity: 0;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header {
    background: rgb(247 249 254 / .98);
  }

  html.is-scrolled .site-header {
    background: rgb(237 242 255 / .98);
  }
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 1.65rem;
  font-weight: 750;
  letter-spacing: -.055em;
}

.brand svg {
  width: 35px;
  height: 35px;
  color: var(--blue);
}

.site-header .brand {
  min-height: 44px;
}

.site-header nav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.site-header nav a {
  position: relative;
  padding-block: 14px;
  font-size: .94rem;
  color: var(--muted);
}

.site-header nav a:hover,
.site-header nav a[aria-current="true"] {
  color: var(--blue);
}

/* aktif bölüm: ince ip çizgisi */
.site-header nav a::after {
  content: "";
  position: absolute;
  inset: auto 0 6px;
  height: 2px;
  border-radius: 2px;
  background: var(--electric);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-2) var(--ease);
}

.site-header nav a[aria-current="true"]::after {
  transform: scaleX(1);
}

.menu-toggle {
  display: none;
}

/* Header CTA: geniş ekranda uzun, dar ekranda kısa metin */
.site-header .cta-short {
  display: none;
}

/* --- Footer --- */
.site-footer {
  z-index: 2;
  padding: 35px 0 28px;
}

.site-footer .brand {
  align-self: start;
  min-height: 44px;
  font-size: 2rem;
}

/* 27 Eylül: header'daki iki köşeli işaret, footer yazı boyuna oranlı */
.site-footer .brand svg {
  flex: none;
  width: 40px;
  height: 40px;
}

.footer-top {
  display: grid;
  grid-template-columns: .8fr 1fr 1.5fr;
  gap: 35px;
  padding-bottom: 35px;
  border-bottom: 1px solid var(--line);
}

.footer-top p {
  font-size: .94rem;
  color: var(--muted);
}

.footer-top nav {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: flex-end;
  gap: 0 23px;
  font-size: .85rem;
}

/* dokunma hedefi ≥ 44px (görsel tipografi aynı) */
.footer-top nav a,
.footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.footer-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 24px;
  padding-block: 10px;
  border-bottom: 1px solid var(--line);
  font-size: .85rem;
}

.footer-place {
  font-size: .85rem;
  color: var(--muted);
}

.footer-links,
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0 23px;
  list-style: none;
}

.footer-links a:hover,
.footer-top nav a:hover {
  color: var(--blue);
}

.footer-links {
  align-items: center;
  gap: 8px 10px;
}

/* 27 Eylül: iletişim hapları (telefon + WhatsApp) — simge + metin, 44 px dokunma alanı */
.footer-links a.footer-pill {
  gap: 8px;
  padding: 0 17px 0 14px;
  border: 1px solid var(--line-blue);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.footer-pill .ic {
  flex: none;
  width: 17px;
  height: 17px;
  color: var(--blue);
}

.footer-links a.footer-pill:hover,
.footer-links a.footer-pill:focus-visible {
  border-color: var(--blue);
  background: rgb(32 82 235 / .06);
  color: var(--blue);
}

.footer-social {
  align-items: center;
  gap: 0 4px;
}

/* 27 Eylül: sosyal ikonlar — 44 px dokunma alanı; adres yoksa soluk yer tutucu (tıklanmaz) */
.footer-social__item {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--ink);
  transition: color .2s ease, background-color .2s ease;
}

a.footer-social__item:hover,
a.footer-social__item:focus-visible {
  color: var(--blue);
  background: rgb(32 82 235 / .07);
}

.footer-social__item.is-placeholder {
  color: var(--muted);
  opacity: .55;
  cursor: default;
}

.footer-social .ic {
  width: 20px;
  height: 20px;
}

/* Geniş ekranda iletişim bağlantıları + sosyal ikonlar sağda bir arada (yer bilgisi solda) */
@media (min-width: 701px) {
  .footer-contact {
    justify-content: flex-start;
  }

  .footer-links {
    margin-left: auto;
  }
}

/* 27 Eylül: © solda; bağlantılar sağda, aralarında eşit boşluk */
.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 28px;
  padding-top: 10px;
}

.footer-bottom > span {
  margin-right: auto;
  font-size: .75rem;
  color: var(--muted);
}

.footer-bottom .text-link {
  min-height: 44px;
  border: 0;
  font-size: .75rem;
  color: var(--muted);
}

.footer-bottom .text-link:hover {
  color: var(--blue);
}

/* 27 Eylül: slogan (content/site.json → slogan). Dev INVORAN'ın üstünde, ayrı öğe:
   .footer-giant kutusuna dokunmaz; negatif alt boşluk .footer-giant'ın üst boşluğuyla birleşir (kardeş margin çöküşü). */
.site-footer .footer-slogan {
  margin: 34px 0 calc(16px - clamp(26px, 4vw, 60px));
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.5vw, 1.4rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
  color: var(--blue);
}

.noscript-help {
  padding: 20px;
  background: #fff;
  color: var(--ink);
  text-align: center;
}

.noscript-help a {
  color: var(--blue);
  text-decoration: underline;
}

/* --- Mobil alt bar (§6.2) --- */
.mobile-bar {
  display: none;
}

@media (max-width: 1100px) {
  .site-header {
    --header-pad: 30px;
  }

  .site-header nav {
    gap: 17px;
  }

  .site-header .cta-long {
    display: none;
  }

  .site-header .cta-short {
    display: inline;
  }
}

@media (max-width: 800px) {
  .site-header {
    --header-pad: 20px;
  }

  .site-header nav {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: calc(var(--header-pad) - 5px);
    right: calc(var(--header-pad) - 5px);
    padding: 15px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 10px 30px rgb(20 35 61 / .08);
  }

  .site-header nav.open {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .site-header nav a {
    padding: 13px 15px;
  }

  .site-header nav a::after {
    inset: 8px auto 8px 0;
    width: 3px;
    height: auto;
    transform: scaleY(0);
    transform-origin: top;
  }

  .site-header nav a[aria-current="true"]::after {
    transform: scaleY(1);
  }

  .menu-toggle {
    display: block;
    min-width: 44px;
    min-height: 44px;
    margin-left: auto;
    padding: 10px;
    background: none;
    border: 0;
    font-size: .85rem;
  }

  .site-header > .compact {
    padding: 10px 13px;
    font-size: .8rem;
  }

  .brand {
    font-size: 1.5rem;
  }

  .brand svg {
    width: 29px;
    height: 29px;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .footer-top nav {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .footer-bottom {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0 22px;
  }

  .footer-bottom .text-link {
    min-height: 44px;
  }
}

@media (max-width: 699px) {
  .mobile-bar {
    position: fixed;
    inset: auto 0 0;
    z-index: var(--z-mobile-bar);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    background: rgb(247 249 254 / .9);
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    backdrop-filter: blur(14px) saturate(1.4);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 30px -18px rgb(16 33 67 / .3);
    transform: translateY(calc(100% + 2px));
    visibility: hidden;
    transition: transform var(--dur-2) var(--ease), visibility 0s linear var(--dur-2);
  }

  .mobile-bar.is-visible {
    transform: none;
    visibility: visible;
    transition: transform var(--dur-2) var(--ease), visibility 0s;
  }

  .mobile-bar__primary {
    flex: 1 1 auto;
    min-height: 48px;
    padding: 12px 16px;
    font-size: .9rem;
  }

  .mobile-bar__call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 72px;
    min-height: 48px;
    padding: 12px 16px;
    border: 1px solid var(--blue);
    border-radius: var(--radius-sm);
    background: #fff;
    color: var(--blue);
    font-size: .9rem;
    font-weight: 600;
  }

  /* bar görünürken sayfa sonu (footer) barın altında kalmasın */
  body {
    padding-bottom: calc(var(--mobile-bar-h) + env(safe-area-inset-bottom));
  }
}

@media (max-width: 580px) {
  body {
    padding-top: var(--header-h-m);
  }

  .site-header {
    --header-pad: 17px;
    gap: 8px;
    height: var(--header-h-m);
  }

  html.is-scrolled .site-header {
    height: var(--header-h-m);
  }

  .brand {
    font-size: 1.4rem;
  }

  .site-header .brand {
    flex: 0 1 auto;
    min-width: 0;
  }

  .site-header > .compact {
    margin-left: 0;
    padding: 10px 12px;
    font-size: .81rem;
    white-space: nowrap;
  }

  .site-footer {
    padding-top: 25px;
    /* Entegrasyon: ipin son kıvrımı footer'ın alt satırına ≥ 14 px uzak kalsın (§8) */
    padding-bottom: 76px;
  }

  .site-footer .brand {
    font-size: 1.5rem;
    flex-wrap: wrap;
  }

  .footer-top {
    gap: 20px;
  }

  .footer-top p {
    font-size: .84rem;
  }

  .footer-top nav {
    gap: 0 22px;
    font-size: .82rem;
  }

  .footer-bottom {
    gap: 0 16px;
  }

  .footer-bottom .text-link {
    font-size: .75rem;
  }
}

/* 320–360: tek satır header (logo + Menü + Görüşelim) */
@media (max-width: 360px) {
  .site-header {
    --header-pad: 12px;
    gap: 4px;
  }

  .brand {
    gap: 5px;
    font-size: 1.25rem;
  }

  .brand svg {
    width: 26px;
    height: 26px;
  }

  .menu-toggle {
    padding: 8px 6px;
  }

  .site-header > .compact {
    padding: 10px;
    gap: 0;
  }
}

/* --- 27 Eylül: footer mobil düzeni (≤ 700 px) --- */
@media (max-width: 700px) {
  /* menü: iki sütunlu ızgara (her bağlantı sütun genişliğinde, 44 px yüksek) */
  .footer-top nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
  }

  /* alt satır iki satır: üstte yasal bağlantılar, altta © + Başa dön (odak sırası = görsel sıra) */
  .footer-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "privacy motion"
      "copy totop";
    align-items: center;
    gap: 0 16px;
  }

  .footer-bottom > span {
    grid-area: copy;
    margin-right: 0;
  }

  .footer-bottom #privacy-open {
    grid-area: privacy;
    justify-self: start;
    text-align: left;
  }

  .footer-bottom #motion-toggle {
    grid-area: motion;
    justify-self: end;
  }

  .footer-bottom .footer-totop {
    grid-area: totop;
    justify-self: end;
  }

  .site-footer .footer-slogan {
    margin-top: 26px;
  }
}

@media (max-width: 580px) {
  .site-footer .brand svg {
    width: 30px;
    height: 30px;
  }
}

/* Dev INVORAN'ın altındaki boşluk (mobil) = düğüm payı (.footer-giant 24 px + footer 76 px; düğüm 72 px, thread.js footerKnot)
   + body'deki alt bar payı (64 px). Bar sayfa sonunda çoğu telefonda gizli (#gorusme hâlâ görünür) → pay boş kalıyordu.
   Pay yalnız bar görünürken durur; pencere açıkken korunur (kapanınca kaydırma sıçramasın). :has() yoksa pay hep durur. */
@media (max-width: 699px) {
  body:has(.mobile-bar:not(.is-visible)):not(:has(dialog[open])) {
    padding-bottom: env(safe-area-inset-bottom);
  }
}

/* ==== forms.css ==== */
/* ==========================================================================
   Formlar: genel alanlar, iletişim formu (§6.6), eğitim örneği alanları
   Radyo grubu segment kontrol olarak çizilir (girdi görünmez ama odaklanabilir ve zorunluluk
   doğrulaması çalışır); ad / dönüş alanları, onay satırı.
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
  width: 100%;
  min-width: 0;
  padding: 12px;
  border: 1px solid #c8d3e1;
  border-radius: var(--radius-xs);
  background: #f8fafd;
  color: var(--ink);
  font-size: 1rem;
}

input::placeholder,
textarea::placeholder {
  color: #6b7789;
  opacity: 1;
}

textarea {
  resize: vertical;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #aac1ff;
  outline-offset: 2px;
}

.full-fields label,
.need-label {
  display: grid;
  gap: 7px;
  font-size: .88rem;
  font-weight: 600;
}

/* iletişim formunda etiket alanı sarmaz (for= ile bağlı): tek satır metin + isteğe bağlı notu */
#contact-form .need-label {
  display: block;
}

.need-label span {
  font-weight: 400;
  color: var(--muted);
}

/* --- İletişim formu --- */
#contact-form fieldset {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 25px 0 20px;
  padding: 0;
  border: 0;
}

#contact-form legend {
  margin-bottom: 12px;
  padding: 0;
  font-size: .94rem;
  font-weight: 600;
}

/* segment kontrol */
#contact-form fieldset label {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-left: -1px;
  padding: 8px 10px;
  border: 1px solid #c8d3e1;
  background: #fff;
  font-size: .91rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}

#contact-form fieldset label:first-of-type {
  margin-left: 0;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
}

#contact-form fieldset label:last-of-type {
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

#contact-form fieldset label:hover {
  z-index: 1;
  border-color: var(--blue);
  color: var(--blue);
}

#contact-form fieldset label:has(input:checked) {
  z-index: 1;
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

#contact-form fieldset label:has(input:focus-visible) {
  z-index: 2;
  outline: 3px solid #aac1ff;
  outline-offset: 2px;
}

#contact-form input[type="radio"] {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}

#contact-name,
#contact-reply {
  margin: 8px 0 18px;
}

#contact-need {
  margin: 8px 0 19px;
}

.form-consent {
  margin: 4px 0 18px;
  font-size: .8rem;
  line-height: 1.6;
  color: var(--muted);
}

/* satır içi bağlantı: tipografi satırı bozmaz, tıklama alanı dikeyde büyür */
.form-consent .text-link {
  display: inline;
  min-height: 0;
  padding: 12px 0;
  border: 0;
  font-size: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#contact-hint {
  margin-top: 15px;
}

@media (max-width: 580px) {
  #contact-form fieldset label {
    padding-inline: 6px;
    font-size: .85rem;
  }

  #contact-form .button {
    width: 100%;
  }
}

/* ==== dialogs.css ==== */
/* ==========================================================================
   Pencereler (native <dialog>): proje, iletişim, gizlilik/KVKK
   ========================================================================== */

dialog {
  max-width: min(900px, calc(100vw - 28px));
  max-height: 90dvh;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  color: var(--ink);
  box-shadow: var(--shadow-3);
}

dialog::backdrop {
  background: rgb(16 33 58 / .67);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}

dialog h2 {
  font-family: var(--sans);
  font-size: 2rem;
  line-height: 1.12;
  letter-spacing: -.05em;
}

dialog > p {
  margin: 18px 0;
  color: var(--muted);
}

.dialog-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin-bottom: 14px;
}

.dialog-top .eyebrow {
  margin: 0;
}

.close-button {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  font-size: 1.8rem;
}

.close-button:hover {
  border-color: var(--blue);
  color: var(--blue);
}

.dialog-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 23px;
}

.media-options {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 22px 0;
}

.media-options button {
  min-height: 44px;
  padding: 10px 15px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xs);
  background: #fff;
  font-size: .88rem;
}

.media-options button[aria-pressed="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

#detail-media {
  overflow: hidden;
  border-radius: 10px;
  background: var(--paper);
}

#detail-media img {
  width: 100%;
  max-height: 58vh;
  object-fit: contain;
}

#detail-media video {
  width: 100%;
  height: min(56vh, 600px);
  background: #101b2c;
}

#contact-dialog {
  width: 600px;
}

/* Sayfa kaydırmasını pencere açıkken kilitle */
.dialog-open {
  overflow: hidden;
}

.message-preview {
  margin: 18px 0;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #f5f8ff;
}

.message-preview summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
}

.message-preview pre {
  margin: 12px 0 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 400 .875rem/1.6 var(--sans);
}

.contact-fallback {
  display: block;
  min-height: 44px;
  margin-top: 12px;
  font-size: .875rem;
  line-height: 1.5;
  color: var(--blue);
  text-decoration: underline;
}

.contact-fallback[hidden] {
  display: none;
}

/* --- Gizlilik ve KVKK aydınlatma metni (uzun metin tipografisi) --- */
#privacy-dialog {
  width: min(680px, calc(100vw - 28px));
  max-width: min(680px, calc(100vw - 28px));
  padding-top: 0;
}

#privacy-dialog .dialog-top {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0 -32px 8px;
  padding: 24px 32px 16px;
  background: #fff;
  border-bottom: 1px solid var(--line);
}

#privacy-dialog h2 {
  font-size: 1.55rem;
  line-height: 1.2;
  letter-spacing: -.035em;
}

.privacy-body {
  max-width: 64ch;
  padding-top: 8px;
}

.privacy-body p {
  margin: 0 0 16px;
  font-size: .94rem;
  line-height: 1.7;
  color: var(--ink);
}

.privacy-body strong {
  display: block;
  margin-bottom: 2px;
  font-weight: 600;
  color: var(--ink);
}

.privacy-body a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.privacy-body .privacy-updated {
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-size: .8rem;
  color: var(--muted);
}

@media (max-width: 580px) {
  dialog {
    padding: 22px 18px;
    border-radius: 13px;
  }

  dialog h2 {
    font-size: 1.65rem;
  }

  dialog > p {
    font-size: .92rem;
  }

  .dialog-top .eyebrow {
    font-size: .75rem;
  }

  .dialog-actions .button {
    padding: 13px 16px;
    font-size: .85rem;
  }

  .media-options button {
    padding: 9px 11px;
    font-size: .78rem;
  }

  #detail-media video {
    height: 53vh;
  }

  #privacy-dialog {
    padding-top: 0;
  }

  #privacy-dialog .dialog-top {
    margin-inline: -18px;
    padding: 18px 18px 12px;
  }

  #privacy-dialog h2 {
    font-size: 1.3rem;
  }

  .privacy-body p {
    font-size: .9rem;
  }
}

/* ==== thread.css ==== */
/* ==========================================================================
   İp (thread) — sayfa boyu SVG (#thread-stage, JS çizer)
   Performans (denetim): .cord-light'ın sonsuz akışı varsayılan DURAKLATILMIŞ; yalnız
   html.is-scrolling varken oynar (JS bu sınıfı kaydırma sırasında + 1,5 sn koyar).
   Boştayken sayfa boyu SVG yeniden boyanmaz.
   İp şeridi konumu için token'lar: --thread-offset, --thread-gap(-m), --thread-lane (tokens.css).
   ========================================================================== */

#thread-stage {
  position: absolute;
  inset: 0 auto auto 0;
  z-index: var(--z-thread);
  width: 100%;
  overflow: hidden;
  pointer-events: none;
}

#thread-stage svg {
  display: block;
  overflow: visible;
}

#thread-stage path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cord-shadow {
  stroke: #234480;
  stroke-width: 12;
  opacity: .075;
  transform: translate(3px, 5px);
}

.cord-base {
  stroke: url(#cord-blue);
  stroke-width: 9;
  opacity: .24;
}

.cord-live {
  stroke: url(#cord-blue);
  stroke-width: 9;
  /* transition kaldırıldı (denetim g1): boncuk ile çizim ucu aynı karede */
}

.cord-light {
  stroke: #a9c9ff;
  stroke-width: 2;
  stroke-dasharray: 26 235;
  opacity: .85;
  animation: cord-flow 6s linear infinite;
  animation-play-state: paused;
}

html.is-scrolling .cord-light {
  animation-play-state: running;
}

@keyframes cord-flow {
  to { stroke-dashoffset: -522; }
}

@media (max-width: 580px) {
  .cord-base,
  .cord-live {
    stroke-width: 5;
  }

  .cord-shadow {
    stroke-width: 7;
  }

  .cord-light {
    stroke-width: 1.4;
  }
}

/* ==== sections/baslangic.css ==== */
/* ==========================================================================
   #baslangic — hero: h1, kimlik satırı, CTA, 3D düğüm + portre
   Mobil (≤ 580px, denetim düzeltmesi): dikey sıra — eyebrow, tam genişlik h1, lead, kimlik,
   CTA, ardından düğüm + portre (genişliğin ~%80'i, yüz ≥ 90px). Yüzen etiketler gizli.
   Düğüm portrenin kabında kalır; başlığın üstüne BİNMEZ.
   ========================================================================== */

.hero {
  padding: 25px 0 10px;
  overflow: clip;
  background: radial-gradient(ellipse at 81% 38%, rgb(219 229 255 / .5), transparent 44%);
}

.hero-inner {
  display: grid;
  grid-template-columns: 1.4fr .9fr;
  align-items: center;
  gap: 32px;
  min-height: 367px;
}

.hero .eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 11px;
}

.hero .eyebrow::before {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 0 5px rgb(32 82 235 / .05);
}

/* h1: iki blok satır; maske animasyonu için satır kutusu kırpılır. Kırpma kutusu aksanlar (Â, İ, Ü)
   için yukarı/aşağı genişletildi (düzen değişmeden: padding + negatif margin). */
.hero h1 {
  font-size: clamp(4rem, 6.6vw, 6.65rem);
  line-height: .98;
  letter-spacing: -.015em;
}

.hero h1 .hero-line {
  display: block;
  overflow: hidden;
  padding-block: .14em .06em;
  margin-block: -.14em -.06em;
  color: var(--ink);
}

.hero h1 .hero-line + .hero-line {
  margin-top: calc(var(--display-line-gap) - .14em);
}

.hero h1 .hero-line > span {
  display: block;
  /* Açılış (sinematik hero): satırlar maskenin altından sırayla yükselir; ikinci satır .89 sn'de biter (≤ 900 ms) */
  animation: hero-enter .72s cubic-bezier(.16, 1, .3, 1) .06s both;
}

.hero h1 .hero-line:first-child > span {
  color: var(--ink);
}

.hero h1 .hero-line:nth-child(2) > span {
  color: var(--blue);
  animation-delay: .17s;
}

.hero .lead {
  margin-top: 22px;
  font-size: 1.08rem;
  line-height: 1.5;
  color: var(--muted);
}

/* §6.5 kimlik satırı + konum */
.hero-identity {
  margin-top: 14px;
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--ink);
}

.hero-place {
  margin-top: 4px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.5;
  color: var(--muted);
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-top: 22px;
}

.hero-risk {
  margin-top: 10px;
  font-size: .85rem;
  line-height: 1.5;
  color: var(--muted);
}

.hero-motion {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin-top: 14px;
  padding: 8px 0;
  border: 0;
  background: none;
  font-size: .875rem;
  color: var(--muted);
}

.hero-motion::before {
  content: "Ⅱ";
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid #cdd8ed;
  border-radius: 50%;
  font-size: .65rem;
}

.hero-motion[aria-pressed="true"]::before {
  content: "▶";
}

/* --- Portre + 3D düğüm --- */
.hero-portrait {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 350px;
  isolation: isolate;
}

.hero-portrait > img {
  position: relative;
  z-index: 2;
  width: auto;
  height: 285px;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 14px 12px rgb(20 57 130 / .07));
  transform: translateX(30px);
  pointer-events: none;
}

.portrait-disc {
  display: none;
}

.hero-portrait figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  padding: 11px 16px;
  border: 1px solid #e7ecf3;
  border-radius: 12px;
  background: rgb(255 255 255 / .93);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 15px 45px rgb(31 64 140 / .09);
}

.hero-portrait figcaption strong {
  display: block;
  font-size: .94rem;
  font-weight: 650;
}

.hero-portrait figcaption span {
  display: block;
  margin-top: 4px;
  font-size: .81rem;
  color: var(--muted);
}

#hero-sculpture {
  position: absolute;
  inset: -30px -55px calc(-20px - var(--knot-extend, 0px)) -65px;
  z-index: 0;
  pointer-events: none;
}

#hero-sculpture canvas {
  display: block;
  width: 100%;
  height: 100%;
}

#hero-sculpture[data-renderer="fallback"] canvas {
  display: none;
}

.sculpture-fallback {
  position: absolute;
  inset: 10% 17%;
  border: 24px solid #2b5aef;
  border-radius: 42% 58% 52% 48%;
  box-shadow: inset 10px 8px 15px #98baff, 10px 15px 20px rgb(23 56 121 / .13);
  transform-style: preserve-3d;
  animation: sculpture-turn 12s linear infinite;
}

.sculpture-fallback::before,
.sculpture-fallback::after {
  content: "";
  position: absolute;
  inset: -16%;
  border: 15px solid #7395ee;
  border-radius: 50%;
  transform: rotateY(70deg) rotateZ(45deg);
}

.sculpture-fallback::after {
  border-color: #173ba0;
  transform: rotateX(65deg) rotateZ(-35deg);
}

#hero-sculpture[data-renderer="webgl"] .sculpture-fallback {
  display: none;
}

.orbit-tag {
  position: absolute;
  z-index: 4;
  padding: 10px 15px;
  border: 1px solid #d2def4;
  border-radius: var(--radius-pill);
  background: rgb(255 255 255 / .95);
  box-shadow: 0 8px 25px rgb(27 62 124 / .07);
  font-size: .75rem;
  font-weight: 650;
  letter-spacing: .09em;
  color: #355082;
  animation: tag-float 5s ease-in-out infinite;
  pointer-events: none;
}

.orbit-tag.one {
  left: -20px;
  top: 32px;
}

.orbit-tag.two {
  right: -28px;
  top: 135px;
  animation-delay: -2s;
}

.orbit-tag.three {
  left: -36px;
  bottom: 57px;
  animation-delay: -3.3s;
}

@keyframes hero-enter {
  from { transform: translateY(125%); opacity: .2; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes tag-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-13px); }
}

@keyframes sculpture-turn {
  from { transform: rotateY(0) rotateZ(-20deg); }
  to { transform: rotateY(360deg) rotateZ(-20deg); }
}

@media (min-width: 1800px) {
  .hero-inner {
    min-height: 435px;
  }

  .hero-portrait {
    height: 410px;
  }
}

@media (max-width: 1100px) {
  .hero-inner {
    gap: 16px;
  }

  .hero h1 {
    font-size: 6.6vw;
  }

  .hero-portrait {
    height: 320px;
  }

  .hero-portrait > img {
    height: 270px;
  }

  .orbit-tag.one {
    left: -5px;
  }

  .orbit-tag.two {
    right: -8px;
  }

  .orbit-tag.three {
    left: -10px;
  }
}

@media (max-width: 800px) {
  .hero.scene-section {
    padding: 22px 0 12px;
  }

  .hero-inner {
    grid-template-columns: 1.2fr .8fr;
    min-height: 320px;
  }

  .hero h1 {
    font-size: 7.1vw;
  }

  .hero-actions {
    gap: 18px;
  }

  .hero-actions .button {
    min-height: 46px;
    padding: 13px 18px;
    font-size: .85rem;
  }

  .hero-actions .text-link {
    font-size: .77rem;
  }

  .hero-portrait {
    height: 290px;
  }

  .hero-portrait > img {
    height: 240px;
    transform: translateX(15px);
  }

  .hero-portrait figcaption {
    right: -7px;
  }

  #hero-sculpture {
    inset: -20px -40px -10px -35px;
  }

  .orbit-tag {
    padding: 8px 10px;
  }

  .orbit-tag.one {
    left: 0;
    top: 20px;
  }

  .orbit-tag.two {
    right: -10px;
    top: 118px;
  }

  .orbit-tag.three {
    left: -10px;
    bottom: 38px;
  }
}

/* Mobil: tek sütun, portre metnin ALTINDA */
@media (max-width: 580px) {
  .hero.scene-section {
    padding: 10px 0 22px;
  }

  .hero-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-height: 0;
  }

  .hero-copy {
    padding-top: 10px;
  }

  .hero .eyebrow {
    margin: 0 0 14px;
    font-size: .75rem;
  }

  .hero h1 {
    position: relative;
    z-index: 3;
    font-size: clamp(2.5rem, 10.7vw, 3.9rem);
    line-height: 1;
  }

  .hero .lead {
    margin-top: 15px;
    font-size: .94rem;
  }

  .hero-identity {
    font-size: .88rem;
  }

  .hero-actions {
    position: relative;
    z-index: 3;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 16px;
  }

  .hero-actions .button {
    min-height: 46px;
    padding: 13px 18px;
    font-size: .83rem;
  }

  .hero-actions .text-link {
    font-size: .78rem;
  }

  .hero-motion {
    margin-top: 6px;
  }

  /* düğüm + portre: genişliğin ~%80'i (320'de en az 250px → yüz ≥ 90px) */
  .hero-portrait {
    align-self: center;
    width: min(100%, max(80%, 250px));
    height: auto;
    margin-top: 12px;
    padding-top: 12%;
  }

  .hero-portrait > img {
    width: 100%;
    height: auto;
    max-height: none;
    transform: none;
  }

  #hero-sculpture {
    inset: 0 -9% 6% -9%;
  }

  .orbit-tag {
    display: none;
  }

  .hero-portrait figcaption {
    right: -4px;
    bottom: 10px;
    padding: 8px 10px;
    border-radius: 9px;
  }

  .hero-portrait figcaption strong {
    font-size: .8rem;
  }

  .hero-portrait figcaption span {
    font-size: .75rem;
  }
}

/* Entegrasyon: 320–340 px'te düğüm kutusu .wrap'tan ~22 px taşıp ip şeridine giriyordu (şeffaf kenar).
   Düğümün kendisi kutuya sığar (dikey ölçek sabit); yalnız yatay taşma %9 → %4. */
@media (max-width: 340px) {
  #hero-sculpture {
    inset: 0 -4% 6% -4%;
  }
}

/* ---- Sinematik hero (wow, 26 Eylül) — masaüstü (≥ 801 px) ----
   Hero ilk ekranı doldurur: en az 100svh − başlık çubuğu (en az 680 px); #referanslar doğal olarak
   ilk ekranın altına iner. h1 büyür (≈ clamp(4.5rem, 8.5vw, 9.5rem)); satır hiçbir zaman sütundan
   taşmasın diye metin sütununa bağlı üst sınır (cqi) de var. Düğüm + portre kompozisyonu büyür;
   #hero-sculpture inset kuralı (var(--knot-extend)) yukarıda olduğu gibi kalır. */
@media (min-width: 801px) {
  .hero.scene-section {
    display: grid;
    align-content: center;
    min-height: max(680px, calc(100svh - var(--header-h)));
    padding: 24px 0 40px;
  }

  .hero-inner {
    grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr);
    gap: 20px;
    min-height: 0;
  }

  .hero-copy {
    container-type: inline-size;
  }

  .hero h1 {
    font-size: clamp(4.5rem, min(8.5vw, 16.2cqi), 9.5rem);
    line-height: .96;
  }

  .hero .lead {
    margin-top: 26px;
    max-width: 36em;
    font-size: 1.14rem;
  }

  .hero-portrait {
    height: clamp(420px, 60svh, 580px);
  }

  .hero-portrait > img {
    height: 82%;
    transform: translateX(22px);
  }

  .orbit-tag.one {
    left: -8px;
    top: 9%;
  }
}

/* ---- Çözülen Düğüm (knot.js --untie: 0 → 1 kaydırmayla) ---- */
/* Çözülen ip tuvalin altından sayfaya akarken kenarda yumuşakça kaybolur; düğüm halindeyken maske etkisiz. */
#hero-sculpture canvas {
  --fade-b: calc(100% - var(--untie, 0) * 22%);
  --fade-r: calc(100% - var(--untie, 0) * 14%);
  -webkit-mask-image: linear-gradient(to bottom, #000 var(--fade-b), transparent 100%), linear-gradient(to right, #000 var(--fade-r), transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to bottom, #000 var(--fade-b), transparent 100%), linear-gradient(to right, #000 var(--fade-r), transparent 100%);
  mask-composite: intersect;
}
.hero-portrait .orbit-tag {
  opacity: clamp(0, calc(1 - var(--untie, 0) * 2.2), 1);
  transition: opacity .2s linear;
}

/* ---- Düğüm ↔ başlık çakışması (denetim g2) — masaüstü (≥ 801 px) ----
   Tuval artık metin sütununa taşmaz: sol kenar portre sütununun 6 px içinde (h1 sağından ≥ 26 px).
   Düğümün ekran boyu tuval yüksekliğine bağlı (knot.js: sabit dikey fov) → üst taşma 30 → −24 px ile
   düğüm ≈ %8 küçülür; en kötü dönüş açısında bile tuvalin içinde kalır. h1 yine de üstte. */
@media (min-width: 801px) {
  #hero-sculpture {
    inset: 24px -62px calc(-20px - var(--knot-extend, 0px)) 6px;
  }

  .hero h1 {
    position: relative;
    z-index: 2;
  }
}

/* 27 Eylül: Mobilde GÖRSEL ÜSTTE (Emre kararı). Düğüm + portre ilk ekranda, altında başlık ve yazılar;
   ilk kaydırmada düğüm görünürken çözülür. Portre ilk ekrana başlıkla birlikte sığacak kadar kompakt. */
@media (max-width: 580px) {
  .hero-portrait {
    order: -1;
    width: min(100%, max(62%, 214px));
    margin: 4px auto 14px;
    padding-top: 7%;
  }

  /* çözülen ip için tuval aşağı uzar (knot.js --knot-extend, mobilde 70 px); yazılar üstte katmanda kalır */
  #hero-sculpture {
    inset: 0 -12% calc(6% - var(--knot-extend, 0px)) -12%;
  }

  .hero-copy {
    position: relative;
    z-index: 3;
    padding-top: 0;
  }
}

@media (max-width: 340px) {
  #hero-sculpture {
    inset: 0 -4% calc(6% - var(--knot-extend, 0px)) -4%;
  }
}

/* ---- 27 Eylül: TEK İP, SABİT HERO (Emre onayı) ----
   Sayfa açıldığı andan itibaren tek ip: düğümden (knot.js sabit kuyruk) çıkan ip .hero-cord SVG'sinde
   CTA'ların altından sol şeride geçer; sayfa ipi (thread.js) hero bölümünün altından devam eder.
   Kaydırınca hero kısa süre sabit (masaüstü ~0,8 ekran, mobil ~0,55), düğüm kaydırmayla orantılı çözülür.
   Tuval ve .hero-cord aynı sticky kapta → sabitlenme boyunca bağlantı kopmaz. Hareket azaltmada sabitlenme yok. */
.hero .hero-inner {
  position: relative;
}

.hero-cord {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.hero-cord path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (prefers-reduced-motion: no-preference) {
  body:not([data-reduced="true"]) .hero.scene-section {
    display: block;
    align-content: start; /* şart: yoksa blok hizalama iç sahneyi aşağı itiyor */
    height: calc(100svh + 80vh);
    min-height: 0;
    padding: 0;
  }

  body:not([data-reduced="true"]) .hero .hero-inner {
    position: sticky;
    top: var(--header-h-scrolled, 64px);
    align-content: center;
    align-items: center;
    min-height: calc(100svh - var(--header-h-scrolled, 64px));
  }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 580px) {
  body:not([data-reduced="true"]) .hero.scene-section {
    height: calc(100svh + 55vh);
  }

  body:not([data-reduced="true"]) .hero .hero-inner {
    top: 58px;
    min-height: calc(100svh - 58px);
    padding-top: 6px;
  }
}

/* ==== sections/referanslar.css ==== */
/* ==========================================================================
   #referanslar — marka şeridi, ilişki beyanı (§6.8), iki yorum (+ §6.9 dipnot)
   ========================================================================== */

.proof {
  position: relative;
  z-index: 2;
  padding: 10px 0 8px;
}

.proof-brands .section-wrap {
  width: 100%;
  margin: 0;
  padding: 0;
}

.references-title {
  margin: 5px 0 12px;
  font-size: .8rem;
  letter-spacing: .15em;
  text-align: center;
  text-transform: uppercase;
  color: var(--muted);
}

.reference-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: center;
  gap: 20px;
  padding: 14px 18px;
  border-radius: var(--radius);
  background: rgb(255 255 255 / .6);
}

.reference-grid a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 44px;
  font-size: .8rem;
}

.reference-grid img {
  width: 100%;
  max-width: 110px;
  height: 29px;
  object-fit: contain;
}

.reference-grid .reference-icon {
  width: 22px;
  height: 22px;
}

.reference-wordmark {
  font-family: Georgia, serif;
  font-size: 1rem;
  white-space: normal;
  text-align: center;
}

/* §6.8 ilişki beyanı */
.references-note {
  max-width: 760px;
  margin: 10px auto 0;
  font-size: .8rem;
  line-height: 1.55;
  text-align: center;
  color: var(--muted);
}

.testimonials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-top: 17px;
}

.testimonials blockquote {
  position: relative;
  padding: 22px 24px 18px 46px;
  border: 1px solid #d8e2f5;
  border-radius: var(--radius);
  background: linear-gradient(130deg, #fff, #f0f4ff);
  box-shadow: 0 10px 35px rgb(16 37 83 / .02);
}

.quote-mark {
  position: absolute;
  top: 15px;
  left: 15px;
  font-family: Georgia, serif;
  font-size: 3rem;
  line-height: 1;
  color: var(--blue);
}

.testimonials p {
  min-height: 66px;
  font-size: .94rem;
  line-height: 1.65;
}

.testimonials footer {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.testimonials footer strong {
  display: block;
  font-size: .82rem;
}

.testimonials footer div > span {
  display: block;
  margin-top: 3px;
  font-size: .75rem;
  color: var(--muted);
}

.initial {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--pale);
  color: var(--blue);
  font-size: .75rem;
  font-weight: 700;
}

/* §6.9 yorum dipnotu (Fatih Çinan) */
.testimonials .quote-note {
  min-height: 0;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #d8e2f5;
  font-size: .75rem;
  line-height: 1.55;
  color: var(--muted);
}

@media (max-width: 1100px) {
  .reference-grid img {
    height: 24px;
  }

  .reference-wordmark {
    font-size: .85rem;
  }

  .quote-mark {
    left: 10px;
  }
}

@media (max-width: 800px) {
  .reference-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .testimonials p {
    min-height: 104px;
  }
}

@media (max-width: 580px) {
  .proof {
    padding-top: 2px;
  }

  .references-title {
    margin-bottom: 10px;
  }

  .reference-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 10px 8px;
  }

  .reference-grid a {
    gap: 3px;
    font-size: .75rem;
  }

  .reference-grid img {
    max-width: 78px;
    height: 20px;
  }

  .reference-grid .reference-icon {
    width: 16px;
    height: 16px;
  }

  .reference-wordmark {
    font-size: .75rem;
  }

  .references-note {
    font-size: .75rem;
    text-align: left;
  }

  .testimonials {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-top: 12px;
  }

  .testimonials blockquote {
    padding: 19px 17px 17px 38px;
  }

  .testimonials p {
    min-height: 0;
  }

  .testimonials footer {
    margin-top: 11px;
  }

  .testimonials footer strong {
    font-size: .78rem;
  }
}

/* ==== sections/farki-acin.css ==== */
/* ==========================================================================
   #farki-acin — "FARKI AÇIN." bölüm kapısı + 3D köşe logo
   ========================================================================== */

.logo-chapter {
  background: #f6f7fc;
  overflow: clip;
  text-align: center;
}

.logo-chapter .wrap {
  max-width: 1220px;
}

.logo-chapter h2 {
  font-size: clamp(5rem,15.2vw,13.7rem);
  line-height: 1;
  letter-spacing: -.035em;
  color: var(--ink-deep);
}

.logo-chapter .eyebrow {
  color: #304cc7;
  font-size: .8rem;
  margin-bottom: 14px;
}

.logo-stage {
  position: relative;
  width: min(100%,730px);
  height: 420px;
  margin: 0 auto;
  isolation: isolate;
}

.logo-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 1;
}

.logo-fallback {
  position: absolute;
  inset: 8% 22%;
  width: 56%;
  height: 84%;
  filter: drop-shadow(0 18px 15px rgb(23 42 82 / .13));
}

.logo-stage[data-renderer=webgl] .logo-fallback {
  visibility: hidden;
}

.logo-chapter .logo-caption {
  font-size: 1.14rem;
  max-width: 610px;
  margin: 0 auto;
  color: var(--muted);
}

.logo-chapter .text-link {
  margin-top: 18px;
}

.logo-chapter .hand-note {
  position: absolute;
  right: 0;
  top: 55%;
  font: 2rem/1.1 var(--hand);
  transform: rotate(-9deg);
  color: #243764;
}

.logo-stage:after {
  content: '';
  position: absolute;
  width: 140px;
  height: 24px;
  border-radius: 50%;
  filter: blur(14px);
  background: rgb(25 53 91 / .11);
  bottom: 6%;
  left: calc(50% - 70px);
}

@media (max-width: 900px) {
  .logo-stage {
    height: 365px;
  }

  .logo-chapter .hand-note {
    right: 1%;
    font-size: 1.7rem;
  }
}

@media (max-width: 580px) {
  .logo-chapter h2 {
    font-size: clamp(4rem,16.5vw,6rem);
    letter-spacing: -.025em;
  }

  .logo-chapter .eyebrow {
    font-size: .75rem;
    letter-spacing: .08em;
  }

  .logo-stage {
    height: 300px;
  }

  .logo-chapter .logo-caption {
    font-size: 1rem;
    line-height: 1.6;
  }

  .logo-chapter .hand-note {
    display: none;
  }
}

/* ==== sections/calismalar.css ==== */
/* ==========================================================================
   #calismalar — iki tarayıcı çerçeveli proje kartı
   Hover (yalnız hover destekleyen cihazlarda): görsel %3 büyür, kenar elektrik mavisi ip çizgisine döner.
   ========================================================================== */

.featured {
  background: radial-gradient(ellipse at 10% 80%, #dfe8ff, transparent 65%);
}

.featured .section-intro {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  align-items: end;
  gap: 0 50px;
  max-width: none;
}

.featured .section-intro .eyebrow {
  grid-column: 1 / -1;
}

.featured .section-intro > p:last-child {
  margin: 0 0 5px;
}

.featured-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: start;
  gap: 50px;
  padding: 10px 0;
  perspective: 1700px;
}

.project-feature {
  transform: translateY(var(--drift, 0px)) rotate(var(--scroll-angle, 0deg));
  will-change: transform;
}

.project-feature:nth-child(2) {
  margin-top: 95px;
}

.project-cover {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  padding: 30px 28px 0;
  border: 0;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #244bbd, #658cf0);
  box-shadow: 0 0 0 0 transparent, 0 35px 60px -20px rgb(26 59 150 / .44), 0 1px 0 rgb(255 255 255 / .5) inset;
  transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .22s var(--ease), box-shadow var(--dur-2) var(--ease);
}

.project-cover.aura {
  background: linear-gradient(125deg, #adabc8, #e6dae9);
}

.project-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at var(--spot-x, 50%) var(--spot-y, 0%), rgb(255 255 255 / .2), transparent 60%);
  pointer-events: none;
}

.browser-label {
  display: flex;
  justify-content: space-between;
  padding: 11px 14px;
  border-radius: 7px 7px 0 0;
  background: #fff;
  font-size: .75rem;
  letter-spacing: .01em;
  color: var(--muted);
}

.browser-label span:first-child::before {
  content: "● ● ●";
  margin-right: 13px;
  font-size: .4rem;
  letter-spacing: .15em;
  color: #adbad2;
}

.project-cover img {
  max-height: 380px;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  object-position: left top;
  border: 1px solid #fff;
  transform-origin: 50% 0;
  transition: transform var(--dur-3) var(--ease);
}

@media (hover: hover) and (pointer: fine) {
  .project-cover:hover {
    box-shadow: 0 0 0 2px var(--electric), 0 35px 60px -20px rgb(26 59 150 / .44), 0 1px 0 rgb(255 255 255 / .5) inset;
  }

  .project-cover:hover img {
    transform: scale(1.03);
  }
}

.project-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 4px;
}

.project-feature:nth-child(2) .project-info {
  padding-right: 0;
}

/* küçük etiketler: ≥ 12px, koyu gri (≥ 7:1) — denetim: 10,4px ve 4,16–4,45:1 idi */
.project-info p {
  margin-bottom: 8px;
  font-size: .75rem;
  letter-spacing: .12em;
  color: var(--muted-strong);
}

.project-info h3 {
  font-size: 2.15rem;
}

@media (max-width: 1100px) {
  .featured-grid {
    gap: 30px;
  }
}

@media (max-width: 800px) {
  .featured .section-intro {
    display: block;
  }

  .featured .section-intro > p:last-child {
    margin-top: 20px;
  }
}

@media (max-width: 580px) {
  .featured-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .project-feature:nth-child(2) {
    margin-top: 15px;
  }

  .project-cover {
    padding: 22px 20px 0;
  }

  .project-info h3 {
    font-size: 1.8rem;
  }
}

/* ==== sections/web-siteleri.css ==== */
/* ==========================================================================
   #web-siteleri — web vitrini + iki geliştirme kartı
   ========================================================================== */

.web-showcase {
  display: grid;
  grid-template-columns: .6fr 1.4fr;
  gap: 50px;
  align-items: center;
}

.web-copy h3 {
  font-size: 2.5rem;
}

.web-copy p {
  color: var(--muted);
  margin: 20px 0;
}

.web-copy .text-link {
  margin: 6px 0;
}

.web-screen {
  border: 0;
  background: #dce6f8;
  border-radius: 14px;
  padding: 20px;
  box-shadow: 15px 35px 65px rgb(31 68 140 / .16);
  transform: perspective(1300px) rotateX(var(--tilt-x,0deg)) rotateY(calc(-5deg + var(--tilt-y,0deg)));
  transition: transform .25s var(--ease);
}

.web-screen img {
  border-radius: 5px;
}

.development-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 70px;
  gap: 25px;
}

.development-grid h3 {
  margin-bottom: 20px;
  font-size: 2rem;
}

.development-grid .eyebrow {
  margin-bottom: 12px;
}

.development-grid p:not(.eyebrow) {
  color: var(--muted);
  margin-bottom: 18px;
  max-width: 450px;
}

.web-projects {
  background: linear-gradient(140deg,#edf3ff,#dfe9ff);
}

.development-grid article {
  padding: 30px;
  background: rgb(255 255 255 / .56);
  border: 1px solid #c9d8f3;
  border-radius: var(--radius);
}

@media (max-width: 800px) {
  .web-showcase {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .web-copy {
    max-width: 550px;
  }

  .web-copy .text-link {
    margin-right: 25px;
  }

  .development-grid article {
    padding: 25px;
  }

  .web-screen {
    transform: perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
  }
}

@media (max-width: 580px) {
  .web-copy h3 {
    font-size: 2rem;
  }

  .development-grid {
    grid-template-columns: 1fr;
    margin-top: 45px;
    gap: 20px;
  }

  .development-grid h3 {
    font-size: 1.6rem;
  }
}

/* ==== sections/videolar.css ==== */
/* ==========================================================================
   #videolar — lacivert video vitrini (basamaklı üç kart)
   Koyu zeminde odak halkası beyaz (base.css).
   ========================================================================== */

.video-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: start;
  gap: 36px;
}

.video-grid article:nth-child(2) {
  margin-top: 50px;
}

.video-grid article:nth-child(3) {
  margin-top: 100px;
}

.video-cover {
  position: relative;
  display: block;
  width: 100%;
  border: 0;
  background: #dae1ed;
  padding: 0;
  border-radius: var(--radius);
  overflow: hidden;
}

.video-cover>img {
  width: 100%;
  aspect-ratio: 9/13;
  object-fit: cover;
  transition: transform var(--dur-3) var(--ease), filter .4s var(--ease);
}

.play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgb(255 255 255 / .93);
  color: var(--blue);
  font-size: 1.35rem;
  box-shadow: 0 3px 25px rgb(0 0 0 / .13);
  padding-left: 4px;
  transition: transform .3s var(--ease), background-color .3s var(--ease);
}

.video-grid h3 {
  font-size: 1.7rem;
  margin-top: 20px;
}

.video-grid p {
  color: var(--muted);
  font-size: .9rem;
  margin-top: 6px;
}

.video-section {
  background: var(--navy);
  color: var(--on-dark);
}

.video-section h2 span {
  color: var(--on-dark-accent);
}

.video-section .section-intro>p,
.video-section .eyebrow,
.video-section .video-grid p {
  color: var(--on-dark-muted);
}

.video-section .video-cover {
  border: 1px solid rgb(69 98 151 / .33);
  box-shadow: 0 25px 50px rgb(0 0 0 / .33);
}

.video-cover:hover>img {
  transform: scale(1.07);
  filter: saturate(1.12);
}

.video-cover:hover .play {
  transform: translate(-50%,-50%) scale(1.18);
  background: #fff;
}

.video-section .section-intro>p {
  color: #c3d0ef;
}

.video-section .video-grid {
  margin-bottom: 45px;
}

@media (max-width: 800px) {
  .video-grid {
    gap: 20px;
  }
}

@media (max-width: 580px) {
  .video-grid {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  .video-grid article:nth-child(2) {
    margin-top: 45px;
  }

  .video-grid article:nth-child(3) {
    margin-top: 0;
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 18px;
    align-items: end;
  }

  .video-grid article:nth-child(3) .video-cover {
    grid-row: 1/3;
  }

  .video-grid article:nth-child(3) h3 {
    align-self: end;
  }

  .video-grid article:nth-child(3)>p {
    align-self: start;
  }

  .video-grid h3 {
    font-size: 1.22rem;
    margin-top: 14px;
  }

  .video-grid p {
    font-size: .82rem;
  }

  .play {
    width: 45px;
    height: 45px;
    font-size: 1rem;
  }

  .video-cover {
    border-radius: 11px;
  }
}

/* ==== sections/paylasim.css ==== */
/* ==========================================================================
   #paylasim — "Tek içerik. Tüm kanallar." (elektrik mavisi bölüm + akış şeması + Instagram serisi)
   Orijinaldeki üç katman (taban, Android dağıtım bloğu, birleştirme) tek dosyada, geçerli (kazanan)
   değerlerle birleştirildi. JS, bölüme .distribution-flow ekler; şema o sınıfla akış düzenine geçer.
   Ortak sisteme alınanlar: kapsayıcı (.wrap), eyebrow, h2 ölçeği, renk token'ları (bölüm kapsamında
   token ezmesi YOK), odak halkası beyaz.
   ========================================================================== */

.distribution.scene-section {
  padding: 0 0 78px;
  background: var(--electric);
  color: var(--on-blue);
  border-top: 1px solid rgb(204 212 255);
  border-bottom: 1px solid rgb(204 212 255);
  overflow: hidden;
}

.distribution.distribution-flow {
  isolation: isolate;
}

.distribution :focus-visible {
  outline-color: var(--focus-on-dark);
}

/* --- Metin sütunu --- */
.distribution .distribution-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 48px;
  padding-top: 82px;
  padding-bottom: 52px;
}

.distribution-flow .distribution-copy {
  position: relative;
  z-index: 3;
}

.distribution .eyebrow {
  color: var(--on-blue);
}

.distribution h2 em,
.distribution h2 span {
  font: inherit;
  color: #dce6ff;
}

.distribution-copy > p:not(.eyebrow) {
  margin-top: 24px;
  font-size: 1rem;
  line-height: 1.65;
  max-width: 36ch;
  color: var(--on-blue-soft);
}

.distribution .handwritten {
  display: block;
  margin-top: 26px;
  transform: rotate(-5deg);
  transform-origin: left center;
  font: 2rem/1.05 var(--hand);
  color: var(--on-blue);
}

/* --- Kanal şeması --- */
.distribution .channel-display {
  position: relative;
  min-width: 0;
  margin: 0 auto;
  padding-block: 35px;
}

.distribution-flow .channel-display {
  padding: 62px 0 35px;
  max-width: 650px;
  width: 100%;
  overflow: visible;
  isolation: isolate;
}

.distribution .content-origin {
  position: relative;
  width: 220px;
  min-height: 232px;
  margin: 0 auto 25px;
  padding: 20px;
  font-family: var(--sans);
  background: var(--electric);
  color: var(--on-blue);
  transform: rotate(-6deg);
  box-shadow: rgb(186 198 255) 10px 10px 0;
  border-radius: 3px;
}

.distribution-flow .content-origin {
  z-index: 4;
  margin-bottom: 168px;
  transform: perspective(700px) rotateY(calc((1 - var(--distribution-progress, 0)) * -11deg)) rotate(var(--source-turn, -6deg));
  transform-origin: 50% 85%;
  border: 1px solid rgb(255 255 255 / .22);
  background: var(--paper-warm);
  color: var(--electric);
  box-shadow: rgb(165 182 255) 7px 9px 0, rgb(12 36 153 / .19) 0 22px 40px;
}

.distribution-flow .content-origin::before,
.distribution-flow .content-origin::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgb(255 255 255 / .333);
  border-radius: 3px;
  pointer-events: none;
  z-index: -1;
}

.distribution-flow .content-origin::before {
  transform: translate(5px, 6px);
  background: rgb(222 230 255);
  border-color: #fff;
}

.distribution-flow .content-origin::after {
  inset: auto 19px 13px;
  height: 2px;
  background: rgb(255 255 255 / .267);
  transform: scaleX(var(--distribution-progress, 0));
  transform-origin: left center;
}

.content-origin > span {
  font-weight: 600;
  letter-spacing: -.06em;
  font-size: 1.15rem;
}

.distribution .content-origin strong {
  display: block;
  margin-top: 20px;
  font-family: var(--display);
  font-size: 3.4rem;
  line-height: .94;
}

.content-origin i {
  display: block;
  margin-top: 18px;
  font-style: normal;
  font-size: .75rem;
}

.distribution-flow .content-origin i {
  color: rgb(64 93 200);
}

.distribution .channels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  position: relative;
  z-index: 2;
}

.distribution-flow .channels {
  margin: 0 31px;
  gap: 112px 18px;
  z-index: 3;
}

.distribution .channel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 120px;
  background: var(--paper-warm);
  color: var(--ink);
  border: 1px solid rgb(213 220 244);
  border-radius: 5px;
  transition: transform var(--dur-3) var(--ease), box-shadow var(--dur-3) var(--ease), border-color var(--dur-3) var(--ease);
}

.distribution-flow .channel {
  position: relative;
  min-height: 128px;
  gap: 12px;
  transform: translateY(var(--channel-lift, 0px));
  box-shadow: rgb(30 67 255 / .02) 0 8px 22px;
  border-color: rgb(212 221 255);
  transition: border-color .5s var(--ease), box-shadow .5s var(--ease), background .5s var(--ease);
  isolation: isolate;
}

.distribution-flow .channel::before {
  content: "";
  position: absolute;
  inset: -1px;
  border: 1px solid transparent;
  border-radius: inherit;
  pointer-events: none;
  transition: border-color .6s var(--ease), box-shadow .6s var(--ease);
}

.distribution-flow .channel::after {
  content: "";
  position: absolute;
  top: -15px;
  width: 6px;
  height: 6px;
  background: var(--electric);
  border-radius: 50%;
  box-shadow: rgb(30 67 255 / .043) 0 0 0 4px;
  opacity: .18;
  transition: opacity .5s var(--ease), box-shadow .5s var(--ease);
}

.distribution-flow .channel.flow-arrived {
  background: var(--paper-warm);
  border-color: rgb(145 162 255);
  box-shadow: rgb(30 67 255 / .07) 0 10px 26px;
}

.distribution-flow .channel.flow-arrived::before {
  border-color: rgb(120 143 255 / .333);
  box-shadow: rgb(30 67 255 / .047) 0 0 22px;
}

.distribution-flow .channel.flow-arrived::after {
  opacity: 1;
  box-shadow: rgb(30 67 255 / .047) 0 0 0 5px, rgb(30 67 255 / .25) 0 0 15px;
}

.distribution .channel svg {
  width: 30px;
  height: 30px;
}

.distribution .channel > span {
  font-size: .875rem;
}

.distribution-flow .channel > span {
  font-weight: 500;
}

.distribution .channel-format {
  margin-top: -5px;
  font: 400 .75rem/1.2 var(--sans);
  letter-spacing: 0;
  color: var(--muted);
}

/* --- Akış telleri (SVG, JS çizer) --- */
.distribution-wires {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  z-index: 2;
  pointer-events: none;
}

.distribution-wires path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.flow-entry,
.flow-route-base {
  stroke-width: 1.1;
  stroke: rgb(186 203 255);
  opacity: .55;
}

.flow-entry-live,
.flow-route-live {
  stroke: url("#distribution-flow-gradient");
  stroke-width: 1.8;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.flow-route-aura {
  stroke-width: 9;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  stroke: rgb(225 234 255);
  opacity: .12;
}

.flow-junction,
.flow-end {
  fill: #fff;
  stroke: rgb(30 67 255);
}

.flow-junction {
  stroke-width: 4;
}

.flow-end {
  stroke-width: 3;
}

.flow-head {
  fill: rgb(247 251 255);
  stroke: rgb(213 228 255);
  stroke-width: 2;
}

.distribution-wires .flow-packet-body {
  fill: rgb(255 254 251);
  stroke: rgb(110 134 255);
  stroke-width: 1;
  filter: drop-shadow(rgb(25 60 230 / .13) 0 3px 5px);
}

.flow-packet-title {
  fill: var(--electric);
}

.flow-packet-line {
  fill: rgb(137 150 195);
}

.distribution-wires .flow-packet-play {
  fill: var(--electric);
  stroke: none;
}

.flow-code {
  fill: rgb(49 85 255);
  opacity: .58;
  font: 8px/1 monospace;
  letter-spacing: 2px;
}

.flow-source-halo {
  position: absolute;
  z-index: 1;
  width: 290px;
  height: 290px;
  transform: translate(-50%, -50%);
  border: 1px solid rgb(182 200 255 / .267);
  border-radius: 50%;
  background: radial-gradient(circle, rgb(167 183 255 / .19), transparent 68%);
  pointer-events: none;
}

.flow-source-halo::before {
  content: "";
  position: absolute;
  inset: 19px;
  border: 1px dashed rgb(195 208 255 / .4);
  border-radius: 50%;
  transform: rotate(calc(var(--distribution-progress, 0) * 90deg));
}

.flow-source-halo > span {
  position: absolute;
  top: 50%;
  padding: 4px;
  transform: translateY(-50%);
  font: 500 .625rem/1 var(--sans);
  letter-spacing: .12em;
  background: rgb(30 67 255);
  color: rgb(215 225 255);
}

.flow-source-halo > span:first-child {
  left: -12px;
}

.flow-source-halo > span:last-child {
  right: -12px;
}

.flow-source-halo > i {
  position: absolute;
  bottom: -4px;
  left: calc(50% - 4px);
  width: 8px;
  height: 8px;
  background: rgb(106 133 255);
  border: 2px solid rgb(232 236 255);
  border-radius: 50%;
}

.distribution-flow.flow-static .content-origin {
  transform: rotate(-3deg);
}

.distribution-flow.flow-static .channel {
  transform: none;
}

.distribution-flow.flow-static .flow-packets,
.distribution-flow.flow-static .flow-head {
  display: none;
}

/* --- Instagram serisi --- */
.distribution .series-proof {
  padding-top: 30px;
  padding-bottom: 0;
}

.series-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.series-heading .eyebrow {
  margin-bottom: 16px;
}

.distribution .series-heading h3 {
  margin: 12px 0 0;
  font: 500 clamp(2rem, 3.8vw, 3.5rem)/1.08 var(--sans);
  letter-spacing: -.04em;
  color: var(--on-blue);
}

.distribution .series-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  min-height: 44px;
  border-bottom: 1px solid rgb(195 208 255);
  font-size: .875rem;
  color: var(--on-blue);
}

.series-link svg {
  width: 18px;
  height: 18px;
}

.series-gallery-scroller {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  border: 1px solid rgb(185 201 255);
  border-radius: 12px;
  background: rgb(247 245 237);
  scrollbar-width: thin;
  scrollbar-color: rgb(220 229 255) rgb(36 72 240);
}

.series-gallery-crop {
  position: relative;
  width: 100%;
  min-width: 780px;
  aspect-ratio: 1874 / 1087;
  overflow: hidden;
}

.series-gallery-crop img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

/* Kırpılmamış 2560×1440 kaynak (manifest yokken media/*.png ya da WP'de özgün yükleme) gelirse
   eski gizlilik kırpması uygulanır. Varlık ajanının kırpık webp'leri (1874×1087) yukarıdaki
   basit object-fit ile tam oturur. */
.series-gallery-crop img[src$=".png"] {
  inset: auto;
  width: 136.606%;
  height: auto;
  left: -17.556%;
  top: -16.0074%;
  object-fit: fill;
}

.distribution .series-caption {
  max-width: none;
  margin-top: 14px;
  font-size: .81rem;
  line-height: 1.7;
  color: #e1e7ff;
}

.series-hint {
  display: none;
  margin-bottom: 12px;
  font-size: .8125rem;
  color: rgb(220 229 255);
}

@media (max-width: 1100px) {
  .distribution-flow .content-origin {
    margin-bottom: 150px;
  }

  .distribution-flow .channels {
    margin-inline: 22px;
    gap: 105px 13px;
  }

  .distribution-flow .channel {
    min-height: 120px;
  }

  .flow-source-halo {
    width: 260px;
    height: 260px;
  }
}

@media (max-width: 900px) {
  .distribution .distribution-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .distribution-copy {
    max-width: 650px;
  }

  .distribution .channel-display {
    max-width: 600px;
  }
}

@media (max-width: 800px) {
  .distribution .channel-display {
    width: 100%;
    padding-top: 30px;
  }

  .distribution-flow .channel-display {
    padding-top: 36px;
    padding-bottom: 15px;
  }

  .distribution-flow .distribution-copy {
    max-width: 600px;
  }

  .distribution-flow .content-origin {
    margin-bottom: 92px;
  }

  .distribution .channels {
    gap: 12px;
  }

  .distribution-flow .channels {
    gap: 54px 14px;
    margin-inline: 20px;
  }

  .distribution .channel {
    min-height: 108px;
  }

  .distribution-flow .channel {
    padding: 16px 6px;
    min-height: 124px;
    gap: 10px;
  }

  .distribution-flow .channel > span {
    line-height: 1.4;
  }

  .distribution-flow .channel-format {
    line-height: 1.4;
    margin-top: 0;
  }

  .flow-source-halo {
    width: 220px;
    height: 220px;
  }
}

@media (max-width: 600px) {
  .distribution-flow .channels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px 18px;
    margin-inline: 20px;
  }

  .distribution-flow .channel {
    min-height: 122px;
  }

  .series-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .series-hint {
    display: block;
  }

  .series-gallery-scroller {
    border-radius: 7px;
  }
}

@media (max-width: 580px) {
  .distribution.scene-section {
    padding-top: 58px;
    padding-bottom: 48px;
  }

  .distribution .distribution-inner {
    padding-block: 60px 24px;
    gap: 22px;
  }

  .distribution .channels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px 18px;
    margin-inline: 18px;
  }

  .distribution .channel {
    min-height: 122px;
  }

  .distribution .content-origin {
    width: 160px;
    min-height: 176px;
    margin-bottom: 88px;
  }

  .distribution .content-origin strong {
    font-size: 2.3rem;
  }

  .distribution .series-proof {
    padding-top: 20px;
  }

  .distribution .series-heading {
    display: block;
  }

  .distribution .series-heading h3 {
    font-size: 2rem;
  }

  .distribution .series-link {
    margin-top: 18px;
  }

  .series-hint {
    font-size: .8rem;
  }

  .distribution .series-caption {
    font-size: .78rem;
  }
}

@media (max-width: 480px) {
  .distribution .channel-display {
    padding-top: 20px;
  }

  .content-origin > span {
    font-size: 1rem;
  }

  .flow-route-aura {
    stroke-width: 6;
  }

  .flow-code {
    font-size: 7px;
    letter-spacing: 1.3px;
  }

  /* JS yokken (akış düzeni kurulmadan) orijinal küçük ekran ölçüleri */
  .distribution:not(.distribution-flow) .channel {
    gap: 13px;
  }

  .distribution:not(.distribution-flow) .channel svg {
    width: 27px;
    height: 27px;
  }
}

/* ==========================================================================
   WOW — yapışkan kanal anlatımı ("Tek içerik. Tüm kanallar.")
   JS (ui/distribution.js) yalnız ≥1024 px + hareket serbestken bölüme .story-on ve
   data-story-step="1|2|3" koyar. Sınıf yokken sarmalayıcılar düz bloktur → bugünkü durağan düzen.
   #paylasim::before kullanılmaz; sahne position:relative/sticky + z-index:1 (arkadaki .wow-flood için).
   Yalnız opacity / transform (scale, translate) / clip-path geçişleri.
   ========================================================================== */
.distribution-stage {
  position: relative;
  z-index: 1;
}

.story-counter {
  display: none;
}

.distribution.story-on.scene-section {
  overflow: clip;
  padding-bottom: 0;
}

.story-on .distribution-story {
  position: relative;
  height: 215vh;
}

.story-on .distribution-stage {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 100vh;
  display: grid;
  grid-template: minmax(0, 1fr) / minmax(0, 1fr);
  align-items: center;
  overflow: clip;
}

.story-on .distribution-stage > .distribution-inner,
.story-on .distribution-stage > .series-proof {
  grid-area: 1 / 1;
}

.story-on .distribution-inner {
  padding-top: calc(var(--header-h-scrolled) + 8px);
  padding-bottom: 40px;
  transition: opacity .55s var(--ease);
}

/* Sol metin: 01 paragraf → 02 el yazısı → 03 seri başlığı (mevcut metinler, yeni iddia yok). */
.story-on .distribution-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
}

.story-on .distribution-copy > * {
  grid-column: 1;
}

.story-on .distribution-copy > p:not(.eyebrow),
.story-on .distribution-copy > .handwritten {
  grid-row: 3;
  align-self: start;
  transition: opacity .45s var(--ease), translate .55s var(--ease);
}

.story-on .distribution-copy > .handwritten {
  justify-self: start;
}

.story-on:not([data-story-step="1"]) .distribution-copy > p:not(.eyebrow) {
  opacity: 0;
  translate: 0 -16px;
}

.story-on:not([data-story-step="2"]) .distribution-copy > .handwritten {
  opacity: 0;
  translate: 0 16px;
}

.story-on[data-story-step="3"] .distribution-copy > .handwritten {
  translate: 0 -16px;
}

/* 1) Kart üretilir: ölçek + opaklık JS'ten (scale/opacity bağımsız özellikleri; transform'a dokunmaz). */
.story-on .content-origin {
  will-change: scale, opacity;
}

/* 3) Şema çekilir, seri gelir. */
.story-on .channel-display {
  transition: opacity .6s var(--ease), scale .7s var(--ease);
  /* JS (distribution.js) ölçer: şema yapışkan kareye sığar, üst kenar başlık çubuğunun altında kalır */
  transform: translateY(var(--story-ty, 0px)) scale(var(--story-scale, 1));
  transform-origin: 50% 0;
}

.story-on[data-story-step="3"] .channel-display {
  opacity: 0;
  scale: .94;
}

.story-on[data-story-step="3"] .distribution-copy {
  pointer-events: none;
}

.story-on[data-story-step="3"] .distribution-copy > .eyebrow,
.story-on[data-story-step="3"] .distribution-copy > h2 {
  opacity: 0;
  translate: 0 -18px;
}

.story-on .distribution-copy > .eyebrow,
.story-on .distribution-copy > h2 {
  transition: opacity .45s var(--ease), translate .55s var(--ease);
}

.story-on .series-proof {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.25fr);
  column-gap: 48px;
  align-content: center;
  align-items: center;
  padding-top: calc(var(--header-h-scrolled) + 8px);
  padding-bottom: 40px;
  pointer-events: none;
}

.story-on .series-heading {
  grid-column: 1;
  grid-row: 1 / span 3;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin: 0;
}

/* 3. adım başlığı sahnenin dev başlık ritmini sürdürür (metin aynı) */
.story-on .series-heading h3 {
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(56px, 5.4vw, 92px);
  line-height: .92;
  letter-spacing: 0;
}

.story-on .series-proof > .series-hint,
.story-on .series-proof > .series-gallery-scroller,
.story-on .series-proof > .series-caption {
  grid-column: 2;
}

/* Galeri kahramanı dikeyde ortalar: üst/alt 1fr, başlık üç satırı kaplar */
.story-on .series-proof {
  grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
}

.story-on .series-proof > .series-hint {
  grid-row: 1;
  align-self: end;
}

.story-on .series-proof > .series-gallery-scroller {
  grid-row: 2;
}

.story-on .series-proof > .series-caption {
  grid-row: 3;
  align-self: start;
}

.story-on .series-gallery-crop {
  min-width: 0;
}

.story-on .series-proof > * {
  opacity: 0;
  translate: 0 22px;
  transition: opacity .5s var(--ease), translate .6s var(--ease), clip-path .8s var(--ease);
}

.story-on .series-proof > .series-gallery-scroller {
  translate: none;
  clip-path: inset(0 0 100% 0 round 12px);
  transition-delay: .08s;
}

.story-on .series-proof > .series-caption {
  transition-delay: .2s;
}

.story-on[data-story-step="3"] .series-proof {
  pointer-events: auto;
}

.story-on[data-story-step="3"] .series-proof > * {
  opacity: 1;
  translate: none;
}

.story-on[data-story-step="3"] .series-proof > .series-gallery-scroller {
  clip-path: inset(0 0 0 0 round 12px);
}

/* Klavye: odak seriye girerse (adım 3'e kaydırılmamış olsa da) seri görünür. */
.story-on .series-proof:focus-within {
  pointer-events: auto;
}

.story-on .series-proof:focus-within > * {
  opacity: 1;
  translate: none;
}

.story-on .series-proof:focus-within > .series-gallery-scroller {
  clip-path: inset(0 0 0 0 round 12px);
}

/* Adım sayacı: 01 / 03 */
.story-on .story-counter {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 26px;
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: none;
  font: 600 1rem/1 var(--display);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--on-blue);
}

.story-counter .story-total {
  color: var(--on-blue-soft);
}

.story-counter .story-bar {
  position: relative;
  width: 120px;
  height: 2px;
  overflow: hidden;
  background: rgb(255 255 255 / .28);
}

.story-counter .story-bar > i {
  position: absolute;
  inset: 0;
  background: var(--on-blue);
  transform: scaleX(0);
  transform-origin: left center;
}

/* ==== sections/yollar.css ==== */
/* ==========================================================================
   #yollar — iki yol kartı (hizmet: mavi, eğitim: beyaz)
   ========================================================================== */

.choices {
  background: var(--ice);
}

.audience-note {
  max-width: 680px;
  margin: -16px 0 30px;
  color: var(--muted);
}

.choice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.choice {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 350px;
  padding: 42px;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: radial-gradient(circle at var(--spot-x, 90%) var(--spot-y, 20%), #3a67f0, #1946d5 65%);
  box-shadow: 0 20px 45px -28px rgb(18 50 123 / .44);
  color: #fff;
  transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .3s var(--ease);
}

.choice::after {
  content: "↗";
  position: absolute;
  top: 55px;
  right: 25px;
  font-family: Arial, sans-serif;
  font-size: 9rem;
  font-weight: 200;
  line-height: 1;
  opacity: .09;
  transform: rotate(-8deg);
}

.choice-education {
  border: 1px solid #d6e0f6;
  background: radial-gradient(circle at var(--spot-x, 0%) var(--spot-y, 0%), #fff, #e7edff);
  color: var(--ink);
}

/* küçük etiket: mavi zeminde tam beyaz (denetim: %80 opaklıkta 4,28:1 idi) */
.choice-type {
  font-size: .75rem;
  letter-spacing: .1em;
}

.choice-education .choice-type {
  color: var(--muted);
}

.choice h3 {
  position: relative;
  z-index: 1;
  margin-top: 28px;
  font-size: 3.5rem;
  letter-spacing: -.05em;
}

.choice p {
  max-width: 370px;
  margin: 24px 0;
}

.choice-education p {
  opacity: .88;
}

.choice-link {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid rgb(255 255 255 / .33);
  font-size: .9rem;
}

.choice-education .choice-link {
  border-color: var(--line);
  color: var(--blue);
}

.choice b {
  font-size: 1.3rem;
  transition: transform var(--dur-1) var(--ease);
}

.choice:hover b {
  transform: translate(3px, -3px);
}

@media (max-width: 1100px) {
  .choice {
    padding: 32px;
  }

  .choice h3 {
    font-size: 3rem;
  }
}

@media (max-width: 800px) {
  .choice-grid {
    gap: 20px;
  }

  .choice h3 {
    font-size: 2.6rem;
  }
}

@media (max-width: 580px) {
  .audience-note {
    font-size: .92rem;
  }

  .choice-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .choice {
    min-height: 320px;
    padding: 30px 27px;
  }

  .choice h3 {
    font-size: 2.8rem;
  }

  .choice p {
    font-size: .95rem;
  }

  .choice-link {
    font-size: .87rem;
  }
}

/* ==== sections/hizmet.css ==== */
/* ==========================================================================
   #hizmet — hizmet akordiyonu (details/summary)
   Düzeltme (denetim): açık satırda metin artık kaymıyor. Orijinalde [open] durumu padding-inline:24px
   ekleyip numara/başlığı 23–29px sağa itiyordu. Şimdi açık durum yalnız ayrı bir arka plan katmanı
   (::before, içeriğin dışına taşan) ve solda 3px elektrik mavisi "ip" çizgisi (::after) çiziyor.
   ========================================================================== */

.services {
  background: #fff;
}

.service-list {
  border-top: 1px solid var(--line);
}

.service-list details {
  --open-bleed: 16px;
  position: relative;
  isolation: isolate;
  border-bottom: 1px solid var(--line);
}

/* açık durum katmanı: metnin konumunu değiştirmez */
.service-list details::before,
.service-list details::after {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: calc(-1 * var(--open-bleed));
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--dur-2) var(--ease);
}

/* Entegrasyon (26 Eylül): sağa taşma 0. Gradyan sağda beyaz zeminde #fff'e vardığı için görünüm aynı; taşan uç
   ipin sağ şeridine 7–12 px yaklaşıyordu (§8: ip–içerik ≥ 24 / 14 px). Soldaki taşma ve mavi çizgi korunur. */
.service-list details::before {
  inset-inline-end: 0;
  z-index: -1;
  background: linear-gradient(90deg, #f0f4ff, #fff);
  border-radius: var(--radius);
}

.service-list details::after {
  width: 3px;
  border-radius: 3px;
  background: var(--electric);
}

.service-list details[open]::before,
.service-list details[open]::after {
  opacity: 1;
}

.service-list summary {
  display: grid;
  grid-template-columns: 55px 1fr 30px;
  gap: 22px;
  align-items: center;
  padding: 25px 0;
}

.service-list summary > span {
  font-size: .8rem;
  color: var(--blue);
}

.service-list summary h3 {
  font-size: clamp(1.5rem, 2.5vw, 2.3rem);
  transition: color var(--dur-1) var(--ease);
}

.service-list summary:hover h3,
.service-list details[open] summary h3 {
  color: var(--blue);
}

.service-list summary > b {
  font-size: 1.7rem;
  font-weight: 400;
  color: var(--blue);
  transition: transform var(--dur-1) var(--ease);
}

.service-list details[open] summary > b {
  transform: rotate(45deg);
}

.service-content {
  max-width: 850px;
  padding: 0 50px 30px 77px;
}

.service-content p {
  margin-bottom: 14px;
  color: var(--muted);
}

/* §6.10 — satır içi CTA: "<Hizmet>'i konuşalım ↗" (+ varsa ikinci bağlantı) */
.service-content .text-link {
  margin: 2px 22px 0 0;
}

/* Yumuşak yükseklik geçişi (destekleyen tarayıcılarda; desteklemeyen anında açar) */
@supports selector(::details-content) {
  .service-list details {
    interpolate-size: allow-keywords;
  }

  .service-list details::details-content {
    block-size: 0;
    overflow: clip;
    transition: block-size var(--dur-2) var(--ease), content-visibility var(--dur-2) allow-discrete;
  }

  .service-list details[open]::details-content {
    block-size: auto;
  }
}

@media (max-width: 580px) {
  .service-list details {
    --open-bleed: 8px;
  }

  .service-list summary {
    grid-template-columns: 2em minmax(0, 1fr) 2em;
    gap: 12px;
    padding: 22px 0;
  }

  .service-list summary h3 {
    font-size: 1.4rem;
  }

  .service-list summary > span {
    font-size: .75rem;
  }

  .service-list summary > b {
    justify-self: center;
    text-align: center;
  }

  .service-content {
    padding: 0 12px 30px 40px;
  }

  .service-content p {
    font-size: .9rem;
  }

  .service-content .text-link {
    font-size: .82rem;
  }
}

/* ---- 27 Eylül akşamı: hizmet satırlarında özgün araç logoları (başlık ile düğüm arasında) ---- */
.service-list > details > summary:has(> .service-logos),
.service-list.has-sss-dugum > details > summary:has(> .service-logos) {
  grid-template-columns: 55px minmax(0, 1fr) auto 48px;
}

.service-logos {
  display: flex;
  align-items: center;
  gap: 12px;
}

.service-logo {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  opacity: .88;
  transition: opacity var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
}

.service-logo svg,
.service-logo img {
  display: block;
  width: 22px;
  height: 22px;
}

.service-list summary:hover .service-logo,
.service-list details[open] summary .service-logo {
  opacity: 1;
}

@media (max-width: 580px) {
  .service-list > details > summary:has(> .service-logos),
  .service-list.has-sss-dugum > details > summary:has(> .service-logos) {
    grid-template-columns: 2em minmax(0, 1fr) 42px;
    row-gap: 8px;
  }

  .service-list summary > .service-logos {
    grid-row: 2;
    grid-column: 2;
    gap: 10px;
  }

  .service-logo,
  .service-logo svg,
  .service-logo img {
    width: 18px;
    height: 18px;
  }
}

/* ==== sections/egitim.css ==== */
/* ==========================================================================
   #egitim — eğitim başlığı, müfredat, teslimler, uygulamalı örnek (details)
   ========================================================================== */

.education-head {
  display: grid;
  align-items: center;
  grid-template-columns: .85fr 1.15fr;
  gap: 45px;
}

.studio-visual {
  background: white;
  transform: translateY(var(--drift,0px)) rotate(var(--scroll-angle,0deg));
  border-radius: var(--radius-lg);
  border: 7px solid white;
  box-shadow: 0 30px 70px rgb(22 64 135 / .13);
  position: relative;
  overflow: hidden;
}

.curriculum {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 28px;
  margin-top: 45px;
}

.curriculum article>span {
  font-size: .8rem;
  color: var(--blue);
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: white;
}

.curriculum h3 {
  margin: 15px 0;
  font-size: 1.28rem;
}

.curriculum p {
  font-size: .91rem;
  color: var(--muted);
}

.deliverables {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 55px;
  border-block: 1px solid #cbd8ef;
  padding: 40px 0;
  margin: 38px 0;
}

.deliverables h3 {
  font-size: 2rem;
}

.deliverables ul {
  padding-left: 20px;
  color: var(--muted);
  line-height: 1.7;
}

.deliverables li+li {
  margin-top: 7px;
}

.workshop-toggle {
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.workshop-toggle>summary {
  display: flex;
  justify-content: space-between;
  padding: 25px 28px;
  font-size: 1.08rem;
  font-weight: 600;
}

.workshop-toggle>summary span {
  color: var(--blue);
  font-size: 1.5rem;
}

.full-workshop {
  padding: 20px 28px 35px;
}

.full-tag,
.example-label {
  font-size: .75rem;
  letter-spacing: .05em;
  color: var(--muted);
  display: block;
  margin-bottom: 10px;
}

.full-step-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 25px 0;
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
  font-size: .85rem;
  color: var(--blue);
}

.full-step-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.full-workshop-step {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 35px;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}

.full-step-number {
  color: var(--blue);
  font-size: .8rem;
}

.full-step-copy h3 {
  margin: 12px 0 15px;
}

.full-step-copy p+p {
  margin-top: 12px;
}

.full-fields {
  display: grid;
  gap: 16px;
}

.full-field-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.full-prompt {
  white-space: pre-wrap;
  font-size: .95rem;
}

.full-prompt-panel,
.full-output-panel {
  background: var(--paper);
  padding: 24px;
  border-radius: 10px;
}

.full-workshop-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin: 18px 0;
}

.full-checklist {
  padding-left: 20px;
  line-height: 1.7;
}

.full-output-preview {
  margin-top: 23px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.full-output-preview h4 {
  font-size: 1.2rem;
  margin-bottom: 10px;
}

.full-preview-action {
  margin-top: 15px;
  color: var(--blue);
}

.full-live-note {
  margin-top: 12px;
  color: var(--blue);
  font-size: .88rem;
}

.full-copy-fallback {
  width: 100%;
  min-height: 100px;
}

.education {
  background: linear-gradient(160deg,#ecf2ff,#fafcff 50%,#e5edff);
}

.studio-visual img,
.studio-visual video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1.5;
  object-fit: cover;
}

.studio-visual video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.studio-visual figcaption {
  position: absolute;
  bottom: 15px;
  left: 16px;
  border: 1px solid rgb(255 255 255 / .5);
  background: rgb(255 255 255 / .72);
  backdrop-filter: blur(12px);
  padding: 9px 12px;
  border-radius: 30px;
  font-size: .75rem;
  letter-spacing: .1em;
  color: var(--blue);
  z-index: 2;
}

.curriculum article {
  padding: 27px 20px 20px;
  border: 1px solid #cbd9f1;
  border-radius: var(--radius);
  background: rgb(255 255 255 / .56);
}


@media (max-width: 1100px) {
  .curriculum {
    gap: 20px;
  }
}

@media (max-width: 800px) {
  .studio-visual {
    width: 100%;
    max-width: 100%;
    margin: 0 0 25px;
  }

  .curriculum {
    grid-template-columns: 1fr 1fr;
    gap: 18px 32px;
    margin-top: 20px;
  }

  .deliverables {
    gap: 30px;
  }

  .deliverables h3 {
    font-size: 1.7rem;
  }

  .education-head {
    grid-template-columns: 1fr;
  }

  .studio-visual img,
  .studio-visual video {
    aspect-ratio: 16/9;
  }
}

@media (max-width: 580px) {
  .deliverables {
    grid-template-columns: 1fr;
    gap: 25px;
    margin: 25px 0;
    padding: 30px 0;
  }

  .deliverables h3 {
    font-size: 1.7rem;
  }

  .deliverables ul {
    font-size: .91rem;
  }

  .workshop-toggle>summary {
    padding: 20px;
    font-size: .97rem;
    gap: 15px;
  }

  .full-workshop {
    padding: 10px 17px 25px;
  }

  .full-step-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.full-workshop-step {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .full-step-nav {
    gap: 10px;
    font-size: .78rem;
  }

  .full-field-pair {
    grid-template-columns: 1fr;
  }

  .full-prompt-panel,
  .full-output-panel {
    padding: 17px;
  }

  .full-workshop-actions .button {
    padding: 12px 15px;
    font-size: .85rem;
  }

  .curriculum {
    gap: 12px;
  }

  .curriculum article {
    padding: 20px 16px;
  }

  .curriculum h3 {
    font-size: 1.12rem;
  }

  .curriculum p {
    font-size: .84rem;
  }

  .studio-visual {
    border-width: 4px;
    border-radius: var(--radius);
  }

  .studio-visual figcaption {
    font-size: .75rem;
    bottom: 10px;
    left: 10px;
    padding: 7px 10px;
  }
}

/* ==== sections/fiyatlar.css ==== */
/* ==========================================================================
   #fiyatlar — iki fiyat kartı (§6.3) + saatlik satır
   Hizmet kartı: elektrik mavisi zemin, beyaz metin, "Önerilen" rozeti, büyük "/ay".
   Eğitim kartı: beyaz. Masaüstünde yan yana, dar ekranda alt alta. Saatlik satır ince.
   ========================================================================== */

.price-layout {
  display: block;
}

.price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 28px;
}

.price-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 38px;
  border: 1px solid #aec4ff;
  border-radius: var(--radius-lg);
  background: linear-gradient(150deg, #fff, #edf3ff);
  box-shadow: 0 30px 70px -25px rgb(40 84 182 / .26);
  transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .25s var(--ease);
}

.price-card--training::before {
  content: "";
  position: absolute;
  inset: -1px;
  border: 1px solid transparent;
  border-radius: inherit;
  background: linear-gradient(120deg, rgb(32 82 235 / .33), transparent, rgb(131 170 255 / .53)) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.price-card--service {
  border-color: var(--electric);
  background: radial-gradient(circle at 85% 0%, #3a5cff, var(--electric) 60%);
  box-shadow: 0 34px 70px -28px rgb(32 68 255 / .7);
  color: var(--on-blue);
}

.price-badge {
  position: absolute;
  top: 26px;
  right: 26px;
  padding: 7px 13px;
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--electric);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.2;
  text-transform: uppercase;
  box-shadow: 0 8px 20px rgb(8 25 110 / .25);
}

.price-kicker {
  display: block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.4;
  color: var(--muted);
}

.price-card--service .price-kicker {
  padding-right: 120px;
  color: var(--on-blue);
}

.price-name {
  margin-top: 12px;
  font-size: clamp(1.4rem, 2vw, 1.75rem);
}

.price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 12px;
  margin-top: 20px;
}

.price strong {
  font-family: var(--display);
  font-size: 6.6rem;
  line-height: 1;
  color: var(--blue);
}

.price-card--service .price strong {
  color: #fff;
}

.price .price-unit {
  font-size: 1.05rem;
  font-weight: 600;
}

/* büyük "/ay" */
.price .price-period {
  margin-left: -4px;
  font-family: var(--display);
  font-size: 3.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.01em;
  color: #dce6ff;
}

.price-tax {
  margin-top: 8px;
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--muted);
}

.price-card--service .price-tax {
  color: var(--on-blue);
}

.price-duration {
  margin-top: 14px;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.45;
}

.price-calendar {
  margin-top: 6px;
  font-size: .9rem;
  line-height: 1.55;
  color: var(--muted);
}

.price-list {
  width: 100%;
  margin: 24px 0 22px;
  padding: 22px 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.price-card--service .price-list {
  border-top-color: rgb(255 255 255 / .3);
}

.price-list li {
  position: relative;
  padding-left: 26px;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.5;
}

.price-list li + li {
  margin-top: 12px;
}

.price-list li::before {
  content: "";
  position: absolute;
  top: .45em;
  left: 2px;
  width: 12px;
  height: 7px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  color: var(--blue);
  transform: rotate(-45deg);
}

.price-card--service .price-list li::before {
  color: #fff;
}

.price-list small {
  display: block;
  margin-top: 2px;
  font-size: .8rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--muted);
}

.price-card--service .price-list small {
  color: var(--on-blue);
}

.price-card .button {
  width: 100%;
  margin: auto 0 16px;
  box-shadow: 0 10px 25px rgb(32 82 235 / .17);
}

.price-card--service .button {
  border-color: #fff;
  background: #fff;
  color: var(--electric);
  box-shadow: 0 12px 28px rgb(8 25 110 / .3);
}

.price-card--service .button:hover {
  background: var(--ice);
}

.price-card .fine-print {
  width: 100%;
}

.price-card--service .fine-print {
  color: var(--on-blue);
}

/* kartlardan sonra: ince saatlik satır */
.price-hourly {
  margin-top: 26px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: .94rem;
  line-height: 1.6;
  color: var(--muted);
}

.price-hourly strong {
  font-weight: 600;
  color: var(--ink);
}

@media (max-width: 1100px) {
  .price-card {
    padding: 30px;
  }

  .price strong {
    font-size: 5.4rem;
  }

  .price .price-period {
    font-size: 2.8rem;
  }
}

@media (max-width: 800px) {
  .pricing h2 {
    font-size: 3.5rem;
  }

  .price-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .price-card {
    padding: 28px;
  }

  .price strong {
    font-size: 4.6rem;
  }

  .price .price-period {
    font-size: 2.6rem;
  }
}

@media (max-width: 580px) {
  #fiyatlar h2 {
    font-size: clamp(2.6rem, 13vw, 3.5rem);
  }

  .price-card {
    padding: 26px 22px;
  }

  .price-badge {
    top: 20px;
    right: 18px;
  }

  .price-card--service .price-kicker {
    padding-right: 104px;
  }

  .price strong {
    font-size: min(5.8rem, 21vw);
  }

  .price .price-period {
    font-size: min(2.8rem, 11vw);
  }

  .price-duration {
    font-size: 1.02rem;
  }
}

/* ---- 27 Eylül gecesi: üst paket "Her gün yayında" — iki kartın altında tam genişlik, lacivert ---- */
.price-card--premium {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 20px 56px;
  border-color: #2a4bb8;
  background: radial-gradient(circle at 12% 0%, #24438f, var(--navy) 62%);
  box-shadow: 0 34px 70px -30px rgb(16 31 66 / .75);
  color: #fff;
}

.price-card--premium .price-kicker {
  color: #9fb8ff;
}

.price-card--premium .price-name,
.price-card--premium .price strong,
.price-card--premium .price .price-unit {
  color: #fff;
}

.price-card--premium .price .price-period {
  color: #b9cbff;
}

.price-card--premium .price-tax {
  color: #d6e1ff;
}

.premium-lead,
.premium-reach {
  font-size: .98rem;
  line-height: 1.6;
  color: #e2e9ff;
}

.premium-reach {
  margin-top: 12px;
  padding-left: 14px;
  border-left: 3px solid #5b82ff;
  color: #fff;
}

.price-card--premium .button {
  margin-top: 22px;
  border-color: #fff;
  background: #fff;
  color: var(--electric);
}

.price-card--premium .button:hover {
  background: #e8eeff;
}

.price-card--premium .fine-print {
  color: #b9c8ee;
}

@media (max-width: 800px) {
  .price-card--premium {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

/* ==== sections/otomasyon.css ==== */
/* ==========================================================================
   #otomasyon — kişiselleştirilmiş e-posta akışı, örnek e-posta, tarihli vaka
   Denetim: tıklanmayan adım kartlarındaki yanıltıcı ↗ oku kaldırıldı.
   ========================================================================== */

.automation-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 35px;
}

.automation-art {
  border-radius: var(--radius);
  width: 100%;
  aspect-ratio: 1.55;
  object-fit: cover;
  transform: translateY(var(--drift,0px)) rotate(var(--scroll-angle,0deg));
  box-shadow: 0 25px 65px rgb(20 57 130 / .07);
}

.outreach-flow {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  list-style: none;
  margin: 30px 0 55px;
  gap: 28px;
}

.outreach-flow span {
  font-size: .8rem;
  color: var(--blue);
}

.outreach-flow h3 {
  font-size: 1.3rem;
  margin: 18px 0 13px;
}

.outreach-flow p {
  font-size: .88rem;
  color: var(--muted);
}

.email-example {
  background: white;
  border: 1px solid var(--line);
  padding: 35px;
  max-width: 750px;
  margin-left: auto;
  border-radius: var(--radius-lg);
  box-shadow: 0 25px 65px -20px rgb(23 56 122 / .15);
}

.email-example h3 {
  font-size: 1.55rem;
  padding: 15px 0 22px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 22px;
}

.email-example .fine-print {
  margin-top: 20px;
}

.outreach-evidence {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 24px;
  align-items: center;
}

.outreach-evidence>strong {
  font-family: var(--display);
  color: var(--blue);
  font-size: 6rem;
  line-height: 1;
}

.outreach-evidence>strong>span {
  display: block;
  font-family: var(--sans);
  font-size: .78rem;
  font-weight: 600;
  margin-top: 12px;
  line-height: 1.5;
}

.evidence-steps {
  margin-top: 25px;
  padding-left: 20px;
  font-size: .9rem;
  line-height: 1.9;
  color: var(--muted);
}

.automation {
  background: radial-gradient(ellipse at 85% 20%,#dce7ff,transparent 65%),#f5f8ff;
}

.outreach-flow li {
  position: relative;
  padding: 25px 18px 20px;
  border: 1px solid #cad9f3;
  border-radius: 14px;
  background: rgb(255 255 255 / .5);
}


@media (max-width: 1100px) {
  .outreach-flow {
    gap: 20px;
  }

  .outreach-flow h3 {
    font-size: 1.13rem;
  }
}

@media (max-width: 800px) {
  .automation-head {
    grid-template-columns: 1fr;
  }

  .automation-art {
    max-height: 300px;
    object-fit: cover;
  }

  .outreach-flow {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .outreach-flow h3 {
    font-size: 1.35rem;
  }
}

@media (max-width: 580px) {
  .email-example {
    padding: 25px 22px;
  }

  .email-example h3 {
    font-size: 1.35rem;
  }

  .email-example>p {
    font-size: .92rem;
  }

  .outreach-evidence {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .outreach-evidence>strong {
    font-size: 5rem;
  }

  .outreach-flow {
    gap: 15px;
  }

  .outreach-flow li {
    padding: 22px 14px 16px;
  }

  .outreach-flow h3 {
    font-size: 1.12rem;
  }

  .outreach-flow p {
    font-size: .83rem;
  }
}

/* ==== sections/olcum.css ==== */
/* ==========================================================================
   #olcum — ölçüm kartları + tarihli analiz vakası
   ========================================================================== */

.measurement-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}

.measurement-grid article {
  border-top: 1px solid var(--line);
  padding: 34px 0;
}

.measurement-grid h3 {
  margin: 25px 0 20px;
}

.measurement-grid p {
  color: var(--muted);
  max-width: 480px;
}

.measurement-grid ul {
  padding: 20px 0 22px 20px;
  line-height: 1.8;
  font-size: .93rem;
}

.measurement-case {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  border: 1px solid #c7d6f1;
  border-radius: var(--radius);
  padding: 38px;
  margin-bottom: 35px;
  background: linear-gradient(115deg,#e8efff,#f8faff);
  box-shadow: 0 22px 55px rgb(36 70 109 / .03);
}

.measurement-case h3 {
  font-size: 2.4rem;
  margin-bottom: 22px;
}

.measurement-case p:not(.eyebrow) {
  color: var(--muted);
  font-size: .93rem;
}

.analysis-facts {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 20px;
  margin: 0;
}

.analysis-facts>div {
  display: flex;
  flex-direction: column;
}

.analysis-facts dt {
  font-size: .75rem;
  line-height: 1.5;
  color: var(--muted);
  order: 2;
  margin-top: 12px;
}

.analysis-facts dd {
  font-family: var(--display);
  color: var(--blue);
  line-height: 1;
  margin: 0;
  font-size: 5.1rem;
}

.analysis-facts dd span {
  font-family: var(--sans);
  display: block;
  font-size: .8rem;
  margin-top: 7px;
}

.analysis-sources {
  margin-top: 30px;
  border-top: 1px solid #c7d6f1;
  padding-top: 20px;
}

.analysis-sources summary {
  font-size: .85rem;
  color: var(--blue);
  line-height: 1.5;
  display: flex;
  gap: 15px;
  align-items: center;
  min-height: 44px;
}

.analysis-sources summary:after {
  content: '+';
  margin-left: auto;
  font-size: 1.4rem;
}

.analysis-sources[open] summary:after {
  content: '−';
}

.measurement-case .analysis-sources p:not(.eyebrow) {
  margin-top: 16px;
  font-size: .83rem;
}

.analysis-facts :is(dt,dd) {
  overflow-wrap: anywhere;
}


@media (max-width: 800px) {
  .measurement-grid {
    gap: 35px;
  }

  .measurement-case {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 28px;
  }

  .analysis-facts {
    gap: 18px;
  }
}

@media (max-width: 580px) {
  .measurement-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .measurement-grid article {
    padding: 28px 0;
  }

  .measurement-grid h3 {
    font-size: 1.65rem;
  }

  .measurement-case {
    padding: 25px 22px;
  }

  .measurement-case h3 {
    font-size: 2rem;
  }

  .analysis-facts dd {
    font-size: 4.2rem;
  }

  .analysis-facts {
    grid-template-columns: repeat(auto-fit,minmax(min(100%,5rem),1fr));
  }
}

/* ==== sections/araclar.css ==== */
/* ==========================================================================
   #araclar — araç kartları
   ========================================================================== */

.tool-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 20px;
}

.tool-grid article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  border: 1px solid #d4def0;
  border-radius: var(--radius);
  padding: 25px;
  background: rgb(255 255 255 / .67);
  transition: background-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}

.tool-grid h3 {
  font-size: 1.22rem;
  line-height: 1.2;
  margin: 20px 0 13px;
  letter-spacing: -.035em;
}

.tool-grid p {
  color: var(--muted);
  margin-bottom: 22px;
  font-size: .9rem;
}

.tool-grid .text-link {
  margin-top: auto;
  min-height: 44px;
  font-size: .8rem;
}

.tools {
  background: #eef3ff;
}

.tool-grid article:hover {
  background: #fff;
  box-shadow: 0 12px 30px rgb(27 61 140 / .09);
  transform: translateY(-6px);
}

.tool-grid .tool-monogram {
  background: var(--blue);
  color: white;
  box-shadow: 0 8px 18px rgb(32 82 235 / .14);
}

@media (max-width: 1100px) {
  .tool-grid {
    grid-template-columns: repeat(3,1fr);
    gap: 15px;
  }

  .tool-grid article {
    padding: 21px;
  }
}

@media (max-width: 800px) {
  .tool-grid {
    grid-template-columns: 1fr 1fr;
  }

  .tool-grid article {
    padding: 24px;
  }
}

@media (max-width: 580px) {
  .tool-grid .text-link {
    line-height: 1.45;
    font-size: .75rem;
  }

  .tool-grid {
    gap: 12px;
  }

  .tool-grid article {
    padding: 20px 16px;
  }

  .tool-grid h3 {
    font-size: 1.1rem;
  }

  .tool-grid p {
    font-size: .85rem;
  }
}

/* ==== sections/surec.css ==== */
/* ==========================================================================
   #surec — üç adım
   ========================================================================== */

.process-list {
  list-style: none;
}

.process-list li {
  display: grid;
  grid-template-columns: 55px 1fr 1fr;
  gap: 30px;
  border-top: 1px solid var(--line);
  padding: 35px 0;
}

.process-list li>span {
  color: var(--blue);
  font-family: var(--display);
  font-size: 2.4rem;
  padding-top: 0;
  line-height: 1;
}

.process-list h3 {
  font-size: 1.7rem;
}

.process-list p {
  color: var(--muted);
}

@media (max-width: 800px) {
  .process-list li {
    grid-template-columns: 35px 1fr;
    gap: 15px;
  }

  .process-list p {
    grid-column: 2;
  }
}

@media (max-width: 580px) {
  .process-list h3 {
    font-size: 1.45rem;
  }

  .process-list p {
    font-size: .92rem;
  }
}

/* ==== sections/sss.css ==== */
/* ==========================================================================
   #sss — sık sorulan sorular
   ========================================================================== */

.faq {
  background: #f0f3f9;
}

.faq-layout {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 50px;
}

.faq-list details {
  border-top: 1px solid #cbd6e6;
}

.faq-list details:last-child {
  border-bottom: 1px solid #cbd6e6;
}

.faq-list summary {
  position: relative;
  font-weight: 600;
  font-size: 1.04rem;
  line-height: 1.4;
  padding: 23px 30px 23px 0;
}

.faq-list summary:after {
  content: '+';
  position: absolute;
  right: 0;
  top: 21px;
  color: var(--blue);
  font-size: 1.4rem;
}

.faq-list details[open] summary:after {
  content: '−';
}

.faq-list p {
  padding: 0 20px 24px 0;
  color: var(--muted);
  font-size: .94rem;
}

@media (max-width: 800px) {
  .faq-layout {
    grid-template-columns: 1fr;
    gap: 15px;
  }
}

@media (max-width: 580px) {
  .faq-list summary {
    font-size: .98rem;
  }

  .faq-list p {
    font-size: .91rem;
  }
}

/* ==== sections/emre.css ==== */
/* ==========================================================================
   #emre — "Kiminle çalışacaksınız" (§6.4): lacivert bölüm, büyük portre, dev Barlow rakamlar, dipnot
   ========================================================================== */

.about {
  overflow: clip;
  background: var(--navy);
  color: var(--on-dark);
}

.about-layout {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: end;
  gap: 64px;
}

.about-portrait {
  position: relative;
  align-self: end;
  isolation: isolate;
}

.about-portrait::before {
  content: "";
  position: absolute;
  inset: 14% 2% 0;
  z-index: -1;
  border-radius: 50% 50% 0 0 / 38% 38% 0 0;
  background: radial-gradient(circle at 50% 38%, rgb(32 68 255 / .55), rgb(32 68 255 / .12) 62%, transparent 72%);
}

.about-portrait img {
  width: 100%;
  max-width: 500px;
  height: auto;
  margin-inline: auto;
  filter: drop-shadow(0 30px 40px rgb(0 0 0 / .35));
}

.about-portrait figcaption {
  position: absolute;
  left: 0;
  bottom: 28px;
  padding: 10px 14px;
  border: 1px solid rgb(146 179 255 / .3);
  border-radius: 12px;
  background: rgb(16 31 66 / .82);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.about-portrait figcaption strong {
  display: block;
  font-size: .94rem;
  font-weight: 650;
  color: #fff;
}

.about-portrait figcaption span {
  display: block;
  margin-top: 3px;
  font-size: .81rem;
  color: var(--on-dark-muted);
}

.about .eyebrow {
  color: var(--on-dark-muted);
}

.about h2 {
  color: #fff;
}

.about h2 span {
  color: var(--on-dark-accent);
}

.about-lead {
  max-width: 580px;
  margin-top: 24px;
  font-size: 1.05rem;
  color: #c3d0ef;
}

.identity-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px 40px;
  margin: 40px 0 0;
}

/* değer üstte, etiket altta (dt/dd kaynak sırası korunur) */
.identity-stat {
  display: flex;
  flex-direction: column-reverse;
  justify-content: flex-end;
  gap: 6px;
  padding-top: 18px;
  border-top: 1px solid rgb(146 179 255 / .28);
}

.identity-value {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.6rem, 4.2vw, 4rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.01em;
  color: #fff;
}

.identity-label {
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--on-dark-muted);
}

.identity-note {
  max-width: 640px;
  margin-top: 28px;
  font-size: .8rem;
  line-height: 1.65;
  color: var(--on-dark-muted);
}

.identity-note strong {
  font-weight: 600;
  color: #dfe7fb;
}

@media (max-width: 900px) {
  .about-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .about-portrait {
    justify-self: center;
    width: min(100%, 420px);
  }
}

@media (max-width: 580px) {
  .about-portrait {
    width: min(100%, max(80%, 250px));
  }

  .about-portrait figcaption {
    bottom: 14px;
    padding: 8px 10px;
  }

  .about-lead {
    font-size: .98rem;
  }

  .identity-stats {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 30px;
  }

  .identity-value {
    font-size: clamp(2.4rem, 12vw, 3rem);
  }
}

/* ==== sections/gorusme.css ==== */
/* ==========================================================================
   #gorusme — kapanış CTA'sı (tüp görselli kart)
   ========================================================================== */

.contact-section {
  background: #fff;
}

.contact-section>.wrap {
  min-height: 590px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid #dae4f7;
  box-shadow: 0 25px 70px rgb(37 65 124 / .04);
}

.contact-art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.contact-content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 65px 25px;
  max-width: 100%;
}

.contact-content h2 {
  font-size: clamp(4rem,8vw,7rem);
}

.contact-content p:not(.eyebrow) {
  margin: 25px 0;
  color: var(--muted);
}

.contact-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 44px;
  margin: 6px auto 0;
  font-size: .86rem;
  color: var(--muted);
}

.contact-content .button {
  padding: 18px 30px;
}

@media (max-width: 800px) {
  .contact-section>.wrap {
    min-height: 510px;
  }

  .contact-art {
    opacity: .7;
  }

  .contact-content {
    background: rgb(248 250 252 / .6);
    border-radius: 100%;
    padding: 50px 15px;
  }

  .contact-content h2 {
    font-size: 5rem;
  }
}

@media (max-width: 580px) {
  .contact-content p:not(.eyebrow) {
    font-size: .91rem;
  }

  .contact-art {
    object-fit: cover;
    opacity: .45;
  }

  .contact-content {
    background: rgb(248 250 252 / .67);
    padding: 40px 0;
  }

  .contact-section>.wrap {
    min-height: 420px;
  }

  .contact-content h2 {
    font-size: clamp(2.8rem,14vw,5rem);
  }
}

/* ==== sections/v12-calismalar.css ==== */
/* ==========================================================================
   v12 · #calismalar — kısa sürümün birleşik çalışmalar vitrini (SOZLESME §7)
   Sahibi: v12 ajanı. Kapsam .v12-works: yalnız v12'deki bu bölüm; v18 bölümleri etkilenmez.
   Ortak bileşenler (.featured-grid, .project-cover, .video-grid, .email-example, .measurement-case,
   .outreach-flow, .tool-monogram, .eyebrow, .text-link) kendi dosyalarındaki stilleri taşır; burada yalnız
   yoğun (kısa sürüm) düzen ezilir. Yeni :root / token yok (tokens.css).
   Hedef: masaüstünde bölüm ≤ ~2.000px.
   ========================================================================== */

/* --- Bölüm içi Barlow alt başlığı (h3): h2 ile aynı aksan kuralı (satırlar arası ≥ 3px) --- */
.v12-display {
  font-family: var(--display);
  font-size: clamp(2.3rem, 3.3vw, 3.2rem);
  font-weight: 700;
  line-height: var(--lh-display);
  letter-spacing: var(--tracking-display);
}

.v12-display span {
  color: var(--blue);
}

.v12-display > br + span {
  display: inline-block;
  margin-top: var(--display-line-gap);
}

/* --- 1. Web siteleri: iki proje kartı (2/3) + yan sütun (1/3) --- */
.v12-web {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  align-items: start;
  gap: 28px;
}

.v12-works .featured-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  padding: 0;
}

/* Kayma efekti kısa düzende hafif: kartlar alttaki bloklara taşmasın */
.v12-works .project-feature {
  transform: translateY(calc(var(--drift, 0px) * .3));
}

.v12-works .project-feature:nth-child(2) {
  margin-top: 0;
}

.v12-works .project-cover {
  padding: 22px 20px 0;
}

/* 16:10 kutu: sağ sütunla aynı yükseklik; ekranın sol üstü (logo, başlık) görünür, sağ kenar kırpılır */
.v12-works .project-cover img {
  max-height: none;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: left top;
}

.v12-works .project-info {
  padding: 18px 4px 0;
}

.v12-works .project-info p {
  margin-bottom: 6px;
}

.v12-works .project-info h3 {
  font-size: 1.75rem;
}

/* Yan sütun: Pratik10 araç notu + web geliştirme, tek kart (arada ince çizgi) */
.v12-web-side {
  display: grid;
  border: 1px solid var(--line-blue);
  border-radius: var(--radius);
  background: rgb(255 255 255 / .6);
}

/* Pratik10 hesaplama araçları: ekran görüntüsü proje penceresinde açılır ("Hesaplama araçlarını inceleyin"),
   kısa sürümde üçüncü bir ekran görüntüsü yerine metin kartı */
.v12-works .web-showcase {
  display: block;
}

.v12-works .web-screen {
  display: none;
}

.v12-works .web-copy,
.v12-works .development-grid article {
  padding: 22px 24px 12px;
  border: 0;
  border-radius: 0;
  background: none;
}

.v12-works .development-grid article {
  border-top: 1px solid var(--line-blue);
}

.v12-works .web-copy h3 {
  font-size: 1.4rem;
}

.v12-works .web-copy p {
  margin: 10px 0 6px;
  font-size: .94rem;
}

.v12-works .web-copy .text-link {
  margin: 0 22px 0 0;
  font-size: .86rem;
}

.v12-works .development-grid {
  display: block;
  margin-top: 0;
}

.v12-works .development-grid .eyebrow {
  margin-bottom: 10px;
}

.v12-works .development-grid h3 {
  margin-bottom: 8px;
  font-size: 1.4rem;
}

.v12-works .development-grid p:not(.eyebrow) {
  margin-bottom: 4px;
  font-size: .94rem;
}

.v12-works .development-grid .text-link {
  font-size: .86rem;
}

/* --- 2. Lacivert video alt bloğu (v18 #videolar kimliği) --- */
.v12-video {
  margin-top: 56px;
  padding-block: 56px 64px;
}

.v12-video > .wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 3fr);
  align-items: start;
  gap: 36px;
  z-index: var(--z-content);
}

.v12-video .v12-display {
  color: var(--on-dark);
}

.v12-video .v12-display span {
  color: var(--on-dark-accent);
}

.v12-video-intro > p:not(.eyebrow) {
  margin-top: 18px;
  font-size: .96rem;
  color: #c3d0ef;
}

.v12-works .video-section .video-grid {
  gap: 24px;
  margin-bottom: 0;
}

.v12-works .video-grid article:nth-child(2) {
  margin-top: 24px;
}

.v12-works .video-grid article:nth-child(3) {
  margin-top: 48px;
}

.v12-works .video-cover > img {
  aspect-ratio: 3 / 4;
}

.v12-works .video-grid h3 {
  margin-top: 14px;
  font-size: 1.4rem;
}

/* --- 3. İki tarihli vaka yan yana --- */
.v12-cases {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 28px;
  margin-top: 56px;
}

.v12-case-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: 0 25px 65px -20px rgb(23 56 122 / .15);
}

.v12-works .email-example {
  max-width: none;
  margin: 0;
  padding: 28px 30px 22px;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.v12-works .email-example h3 {
  margin-bottom: 18px;
  padding: 12px 0 16px;
  font-size: 1.4rem;
}

.v12-works .email-example {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  column-gap: 18px;
}

.v12-works .email-example > :is(.example-label, h3, .fine-print) {
  grid-column: 1 / -1;
}

.v12-works .outreach-evidence {
  display: contents;
}

.v12-works .outreach-evidence > strong {
  grid-row: span 2;
  align-self: start;
}

.v12-works .outreach-evidence > p {
  grid-column: 2;
}

.v12-works .outreach-evidence > strong {
  font-size: 4.6rem;
}

.v12-works .outreach-evidence > strong > span {
  margin-top: 8px;
}

.v12-works .evidence-steps {
  grid-column: 2;
  margin-top: 10px;
  line-height: 1.75;
}

.v12-works .email-example .fine-print {
  margin-top: 14px;
}

/* İletişim akışı: dört adım tek satır (açıklamalar ekran okuyucuda kalır, görsel olarak başlıklar) */
.v12-flow {
  padding: 18px 30px 24px;
  border-top: 1px solid var(--line);
  background: var(--ice);
}

.v12-flow-title {
  font-size: .95rem;
  font-weight: 650;
  letter-spacing: -.01em;
}

.v12-works .outreach-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0 0;
}

.v12-works .outreach-flow li {
  padding: 12px 12px 14px;
  border-color: var(--line-blue);
  border-radius: 10px;
  background: #fff;
}

.v12-works .outreach-flow span {
  font-size: .75rem;
  font-weight: 700;
}

.v12-works .outreach-flow h3 {
  margin: 6px 0 0;
  font-size: .92rem;
  line-height: 1.3;
  letter-spacing: -.01em;
}

.v12-works .outreach-flow p {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Ölçüm vakası: yarım sütunda tek sütun */
.v12-works .measurement-case {
  grid-template-columns: 1fr;
  gap: 22px;
  margin-bottom: 14px;
  padding: 28px 30px 20px;
  border-radius: var(--radius-lg);
}

.v12-works .measurement-case h3 {
  margin-bottom: 14px;
  font-size: 1.75rem;
}

.v12-works .measurement-case .fine-print {
  margin-top: 10px;
}

.v12-works .analysis-facts dd {
  font-size: 3.6rem;
}

/* "30 gün": birim sayının yanında → üç etiket aynı hizada (denetim: "gün" etiketi 20px aşağıdaydı) */
.v12-works .analysis-facts dd span {
  display: inline;
  margin: 0 0 0 6px;
  font-size: .8rem;
  font-weight: 600;
}

.v12-works .analysis-facts dt {
  margin-top: 8px;
}

.v12-works .analysis-sources {
  margin-top: 16px;
  padding-top: 8px;
}

/* GA / Search Console kartları açılır kutuda (çapalar #google-analytics / #search-console kutuyu açar) */
.v12-more {
  border-top: 1px solid var(--line-blue);
  border-bottom: 1px solid var(--line-blue);
}

.v12-more > summary {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 52px;
  padding: 8px 0;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--blue);
}

.v12-more > summary::after {
  content: "+";
  margin-left: auto;
  font-size: 1.4rem;
}

.v12-more[open] > summary::after {
  content: "−";
}

.v12-works .v12-more .measurement-grid {
  gap: 24px;
}

.v12-works .v12-more .measurement-grid article {
  padding: 18px 0 8px;
}

.v12-works .v12-more .measurement-grid h3 {
  margin: 14px 0 10px;
  font-size: 1.3rem;
}

.v12-works .v12-more .measurement-grid p {
  font-size: .9rem;
}

.v12-works .v12-more .measurement-grid ul {
  padding: 12px 0 12px 20px;
  font-size: .88rem;
}

/* --- 4. Tek satırlık araç şeridi (yatay kaydırma; her araç kendi kanıtına bağlanır) --- */
.v12-tools {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  margin-top: 48px;
}

.v12-tools-title {
  margin: 0;
}

.v12-tool-list {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding: 9px 40px 12px 6px;
  list-style: none;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 6px;
  scrollbar-width: thin;
  scrollbar-color: var(--line-blue) transparent;
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
}

.v12-tool-list:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.v12-tool-list > li {
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.v12-tool {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 8px 16px 8px 8px;
  border: 1px solid #d4def0;
  border-radius: var(--radius);
  background: rgb(255 255 255 / .7);
  color: var(--ink);
  white-space: nowrap;
  transition: background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
}

a.v12-tool:hover {
  border-color: var(--blue);
  background: #fff;
  box-shadow: 0 10px 24px rgb(27 61 140 / .09);
}

a.v12-tool:focus-visible {
  outline-offset: 2px;
}

.v12-tool .tool-monogram {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--blue);
  color: #fff;
  font-size: .82rem;
}

span.v12-tool .tool-monogram {
  background: var(--pale);
  color: var(--blue);
}

/* 27 Eylül: araçların özgün logoları (doğrulanmış olanlar); logo yoksa monogram kalır */
.v12-tool .tool-logo {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #e1e8f5;
  border-radius: 10px;
  background: #fff;
}

.v12-tool .tool-logo__svg,
.v12-tool .tool-logo__img {
  display: block;
  width: 22px;
  height: 22px;
}

/* Yalnız PNG olan resmi simgeler (Suno, Ubersuggest) satır içi data URI <img> */
.v12-tool .tool-logo__img {
  object-fit: contain;
}

.v12-tool-text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.v12-tool-text strong {
  font-size: .92rem;
  font-weight: 650;
  letter-spacing: -.01em;
}

.v12-tool-text small {
  font-size: .75rem;
  font-weight: 600;
  color: var(--blue);
}

/* --- Kırılımlar --- */
@media (max-width: 1100px) {
  .v12-web {
    grid-template-columns: 1fr;
  }

  .v12-web-side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .v12-works .development-grid article {
    height: 100%;
    border-top: 0;
    border-left: 1px solid var(--line-blue);
  }

  .v12-video > .wrap {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .v12-video-intro {
    max-width: 560px;
  }

  .v12-cases {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .v12-web-side {
    grid-template-columns: 1fr;
  }

  .v12-works .development-grid article {
    border-top: 1px solid var(--line-blue);
    border-left: 0;
  }

  .v12-tools {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

@media (max-width: 580px) {
  /* proje kartları: yatay kaydırılan tek sıra (ikinci kart kenarda görünür) */
  .v12-works .featured-grid {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: 4px 0 14px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--line-blue) transparent;
  }

  .v12-works .project-feature {
    flex: 0 0 86%;
    scroll-snap-align: start;
  }

  .v12-works .project-feature:nth-child(2) {
    margin-top: 0;
  }

  .v12-works .project-cover {
    padding: 16px 14px 0;
  }

  .v12-works .project-info {
    padding: 14px 2px 0;
  }

  .v12-works .project-info h3 {
    font-size: 1.5rem;
  }

  .v12-works .web-copy,
  .v12-works .development-grid article {
    padding: 20px 18px 14px;
  }

  .v12-works .web-copy h3,
  .v12-works .development-grid h3 {
    font-size: 1.3rem;
  }

  .v12-video {
    margin-top: 44px;
    padding-block: 48px 52px;
  }

  .v12-works .video-grid article:nth-child(2) {
    margin-top: 36px;
  }

  .v12-works .video-grid article:nth-child(3) {
    margin-top: 0;
  }

  .v12-works .video-cover > img {
    aspect-ratio: 9 / 13;
  }

  .v12-works .video-grid h3 {
    font-size: 1.22rem;
  }

  .v12-cases {
    gap: 36px;
    margin-top: 44px;
  }

  .v12-works .email-example {
    padding: 22px 20px 18px;
  }

  .v12-works .email-example {
    grid-template-columns: 1fr;
  }

  .v12-works .outreach-evidence > strong {
    grid-row: auto;
  }

  .v12-works :is(.outreach-evidence > p, .evidence-steps) {
    grid-column: 1;
  }

  .v12-works .outreach-evidence > p {
    margin-top: 10px;
  }

  .v12-flow {
    padding: 16px 20px 20px;
  }

  .v12-works .outreach-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .v12-works .measurement-case {
    padding: 22px 20px 16px;
  }

  .v12-works .measurement-case h3 {
    font-size: 1.5rem;
  }

  .v12-works .analysis-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .v12-works .analysis-facts dd {
    font-size: 2.9rem;
  }

  .v12-works .v12-more .measurement-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .v12-tools {
    margin-top: 36px;
  }
}

/* ==== sections/v12-surec-sss.css ==== */
/* ==========================================================================
   v12 · #surec + #sss — süreç (3 adım) solda, SSS sağda; ≤ 900px alt alta (SOZLESME §7)
   Sahibi: v12 ajanı. Kapsam .v12-steps-faq. .process-list / .faq-list stilleri surec.css / sss.css'ten gelir;
   burada yalnız yan yana düzen ve yarım sütuna uyan ölçü ezilir. Zemin .faq'tan (#f0f3f9).
   ========================================================================== */

.v12-steps-faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  align-items: start;
  gap: 64px;
}

/* İki eşit h2: yarım sütuna sığan ölçek (tam ölçekte "NASIL İLERLERİZ?" kırılıyordu) */
.v12-steps-faq h2 {
  font-size: clamp(2.8rem, 4.2vw, 4.4rem);
}

.v12-steps .section-intro {
  margin-bottom: 26px;
}

.v12-faq-title {
  margin-bottom: 26px;
}

.v12-steps-faq .process-list li {
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 8px 18px;
  padding: 24px 0;
}

.v12-steps-faq .process-list li > span {
  grid-row: span 2;
  font-size: 2.1rem;
}

.v12-steps-faq .process-list h3 {
  font-size: 1.4rem;
}

.v12-steps-faq .process-list p {
  grid-column: 2;
  font-size: .95rem;
}

.v12-steps-faq .faq-list summary {
  padding: 19px 36px 19px 0;
  font-size: 1rem;
}

.v12-steps-faq .faq-list summary::after {
  top: 17px;
}

@media (max-width: 900px) {
  .v12-steps-faq-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }
}

@media (max-width: 580px) {
  .v12-steps-faq h2 {
    font-size: var(--fs-h2-mobile);
  }

  .v12-steps-faq .process-list li {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 6px 12px;
    padding: 20px 0;
  }

  .v12-steps-faq .process-list li > span {
    font-size: 1.7rem;
  }

  .v12-steps-faq .process-list h3 {
    font-size: 1.25rem;
  }

  .v12-steps-faq .process-list p {
    font-size: .92rem;
  }

  .v12-steps-faq .faq-list summary {
    font-size: .98rem;
  }
}

/* ==== sections/v12-egitim.css ==== */
/* ==========================================================================
   v12 · #egitim — eğitim uygulaması pencerede (SOZLESME §7)
   Sahibi: v12 ajanı. Bölümün kendisi egitim.css'le aynı; burada yalnız açma düğmesi ve pencere.
   Uygulamanın iç düzeni (.full-workshop, .full-workshop-step …) egitim.css'ten gelir.
   ========================================================================== */

/* Açma düğmesi: v18'deki kapalı details satırıyla aynı görünüm (beyaz kart, mavi işaret) */
.v12-demo-open {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  min-height: 64px;
  padding: 22px 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 600;
  text-align: left;
  transition: border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
}

.v12-demo-open:hover {
  border-color: var(--blue);
  box-shadow: var(--shadow-1);
}

.v12-demo-icon {
  color: var(--blue);
  font-size: 1.3rem;
}

/* Pencere: geniş, kendi içinde kayar */
.v12-demo-dialog {
  width: min(1080px, calc(100vw - 28px));
  max-width: none;
  overflow: auto;
  overscroll-behavior: contain;
}

.v12-demo-dialog > h2 {
  margin-bottom: 6px;
}

.v12-demo-dialog .full-workshop {
  padding: 8px 0 4px;
}

@media (max-width: 580px) {
  .v12-demo-open {
    padding: 18px 20px;
    font-size: .97rem;
  }

  .v12-demo-dialog {
    width: calc(100vw - 20px);
    padding: 20px 16px;
  }

  .v12-demo-dialog > h2 {
    font-size: 1.55rem;
  }
}

/* ==== wow/bead.css ==== */
/* wow: bead — ipin çizim ucunda ışık boncuğu (scripts/wow/bead.js konumlar).
   Beyaz çekirdek + elektrik mavisi hale. Nabız yalnız html.is-scrolling varken.
   Hareket azaltmada gizli. Yalnız transform/opacity. */

.wow-bead {
  --bead-size: 18px;
  position: absolute;
  top: 0;
  left: 0;
  width: var(--bead-size);
  height: var(--bead-size);
  margin: calc(var(--bead-size) / -2) 0 0 calc(var(--bead-size) / -2);
  opacity: 0;
  pointer-events: none;
  will-change: transform, opacity;
  contain: layout style;
}

.wow-bead__core,
.wow-bead__glow {
  position: absolute;
  inset: 0;
  border-radius: 50%;
}

.wow-bead__core {
  /* denetim g1: kaydırıcı düğmesi değil, ipin ucunda yanan ışık */
  background: radial-gradient(circle, #fff 0 35%, var(--electric, #2044ff) 70%);
  box-shadow:
    0 0 6px 2px rgba(255, 255, 255, .7),
    0 0 18px 6px rgba(32, 68, 255, .45),
    0 0 34px 12px rgba(32, 68, 255, .18);
}

.wow-bead__glow {
  inset: -90%;
  background: radial-gradient(circle, rgba(127, 168, 255, .7) 0, rgba(32, 68, 255, .3) 36%, rgba(32, 68, 255, 0) 70%);
  opacity: .75;
  transform: scale(.9);
}

/* Yavaş nabız: yalnız boncuk görünürken (JS .is-live: ekran içinde + hareket açık) */
.wow-bead.is-live .wow-bead__glow {
  animation: wow-bead-pulse 2.4s ease-in-out infinite;
}

html.is-scrolling .wow-bead.is-live .wow-bead__glow {
  animation-duration: 1.1s;
}

@keyframes wow-bead-pulse {
  0%, 100% { opacity: .75; transform: scale(.75); }
  50% { opacity: 1; transform: scale(1); }
}

@media (max-width: 699px) {
  .wow-bead { --bead-size: 12px; }
  .wow-bead__core {
    box-shadow:
      0 0 4px 1px rgba(255, 255, 255, .7),
      0 0 10px 3px rgba(32, 68, 255, .45),
      0 0 18px 6px rgba(32, 68, 255, .16);
  }
  .wow-bead__glow { inset: -60%; }
}

body[data-reduced="true"] .wow-bead {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .wow-bead { display: none; }
}

@media print {
  .wow-bead { display: none; }
}

/* ==== wow/footer-knot.css ==== */
/* wow: footer-knot — SON SAHNE (26 Eylül 2026)
   · .footer-giant: footer'ın en altında tam genişlikte dev INVORAN (gerçek metin, aria-hidden)
   · .footer-knot: ipin bittiği yerde hero düğümünün kapanış eşi; buton → sayfanın başına
   Animasyon yalnız transform/opacity; döngü yok (yalnız bir kez geçiş). Hareket azaltmada durağan. */

.footer-giant {
  display: flex;
  justify-content: center;
  margin-top: clamp(26px, 4vw, 60px);
  /* dikeyde maske (yükselme; kaydırılabilir alanı da büyütmesin), yatayda taşmaya izin */
  overflow-x: visible;
  overflow-y: clip;
  clip-path: inset(0 -100vw 0 -100vw);
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

.site-footer .footer-giant__word {
  display: block;
  flex: 0 0 auto;
  font-family: var(--display);
  font-weight: 700;
  font-size: 19.5vw;
  line-height: .8;
  letter-spacing: -.012em;
  white-space: nowrap;
  overflow-wrap: normal;
  padding-top: .05em;
  color: var(--navy);
  background: linear-gradient(98deg, var(--navy) 0%, var(--ink) 22%, var(--blue) 62%, var(--electric) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

@media (max-width: 699px) {
  .site-footer .footer-giant__word {
    font-size: 28.4vw; /* denetim g1: 29vw'de kutusundan 2 px taşıyordu */
    letter-spacing: -.01em;
  }

  /* ipin ucu ve düğüm (80 px) dev yazının altında kalsın */
  .footer-giant {
    margin-bottom: 24px;
  }
}

/* Açılış: yazı alttan yükselir (JS .fk-armed ekler; JS yoksa yazı hep görünür) */
.footer-giant.fk-armed .footer-giant__word {
  transform: translate3d(0, 105%, 0);
  transition: transform 1.1s cubic-bezier(.16, 1, .3, 1);
}

.footer-giant.fk-armed.is-in .footer-giant__word {
  transform: none;
}

/* --- Düğüm butonu --- */
.footer-knot {
  --fk-size: 120px;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 4;
  width: var(--fk-size);
  height: var(--fk-size);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transform: translate3d(var(--fk-x, -999px), var(--fk-y, 0), 0);
  -webkit-tap-highlight-color: transparent;
}

.footer-knot:not(.is-placed) {
  visibility: hidden;
}

.footer-knot:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}

.footer-knot__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  transform-origin: 50% 50%;
}

.footer-knot.fk-armed .footer-knot__img {
  opacity: 0;
  transform: rotate(-220deg) scale(.18);
  transition: opacity .5s ease .35s, transform 1.25s cubic-bezier(.2, 1.25, .35, 1) .35s;
}

.footer-knot.fk-armed.is-in .footer-knot__img {
  opacity: 1;
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  .footer-knot.is-in:hover .footer-knot__img,
  .footer-knot.is-in:focus-visible .footer-knot__img {
    transform: rotate(-90deg) scale(1.08);
    transition: transform .6s cubic-bezier(.2, 1.2, .35, 1);
  }
}

@media (max-width: 699px) {
  .footer-knot {
    --fk-size: 80px;
  }
}

/* Hareket azaltma: her şey durağan ve görünür */
body[data-reduced="true"] .footer-giant.fk-armed .footer-giant__word,
body[data-reduced="true"] .footer-knot.fk-armed .footer-knot__img,
body[data-reduced="true"] .footer-knot.is-in:hover .footer-knot__img {
  opacity: 1;
  transform: none;
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .footer-giant.fk-armed .footer-giant__word,
  .footer-knot.fk-armed .footer-knot__img,
  .footer-knot.is-in:hover .footer-knot__img {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* 21:27 düzeltme: yazı açılış tetikleyicisini beklerken gizli kalabiliyordu → her zaman görünür */
.footer-giant.fk-armed .footer-giant__word {
  transform: none;
}

/* --- 27 Eylül: "Düğüm başa götürsün" (JS .is-untying → sonra .fk-armed; hareket azaltmada JS bu yolu açmaz) ---
   Görsel kısa bir dönüşle gevşeyip küçülür ve söner (açılışın tersi: saat yönünün tersine); yerinde ip dilinde
   (thread.css .cord-shadow + .cord-live) kısa bir uç belirir ve ipin geldiği yöne çekilir. ≈ 0,7 sn, sonra sayfa kayar.
   Yalnız transform/opacity/stroke-dashoffset; animasyonlar biter (döngü yok). */
.footer-knot.fk-still .footer-knot__img {
  transition: none !important;
}

.footer-knot.is-untying .footer-knot__img,
.footer-knot.is-untying:hover .footer-knot__img,
.footer-knot.is-untying:focus-visible .footer-knot__img {
  transition: none;
  animation: fk-untie .44s cubic-bezier(.5, 0, .75, .35) forwards;
}

@keyframes fk-untie {
  45% { opacity: 1; }
  100% { opacity: 0; transform: rotate(-200deg) scale(.2); }
}

.footer-knot__tip {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.footer-knot__tip path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* pathLength=100: 120 ms'de ilmek uçtan dışa çizilir (≈ 190 ms), çekilirken serbest uçtan geri sarılır */
.footer-knot__tip-line {
  stroke-dasharray: 100 100;
  stroke-dashoffset: 100;
  animation: fk-tip-line .56s cubic-bezier(.3, .6, .4, 1) .12s both;
}

@keyframes fk-tip-line {
  0% { stroke-dashoffset: 100; }
  34% { stroke-dashoffset: 0; animation-timing-function: cubic-bezier(.55, 0, .8, .45); }
  100% { stroke-dashoffset: 100; }
}

/* çekiş: ipin geldiği yöne (yerel −y, JS döndürür) hızlanarak kayar, sonda söner */
.footer-knot__tip-move {
  animation: fk-tip-pull .34s cubic-bezier(.55, 0, .8, .4) .34s both;
}

@keyframes fk-tip-pull {
  0% { transform: translate(0, 0); opacity: 1; }
  65% { opacity: 1; }
  100% { transform: translate(0, var(--fk-pull, -80px)); opacity: 0; }
}

body[data-reduced="true"] .footer-knot__tip {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .footer-knot__tip {
    display: none;
  }

  .footer-knot.is-untying .footer-knot__img {
    animation: none;
  }
}

/* ==== wow/hero-intro.css ==== */
/* ==========================================================================
   wow: hero-intro — sinematik açılış (26 Eylül)
   Sayfa yüklenince hemen başlar (yükleme ekranı YOK; CSS paketinde olduğu için JS beklenmez):
   eyebrow belirir → h1 satırları maskenin altından sırayla yükselir (baslangic.css, ≤ 900 ms)
   → lead, kimlik, CTA'lar yumuşakça gelir. Yalnız opacity + transform.
   Hareket azaltmada motion.css tüm animasyonları kapatır (animation: none) → öğeler son hallerinde durur.
   Kaydırmada başlık satırlarının hafif ayrışması: scripts/wow/hero-intro.js (.hero-line transform).
   ========================================================================== */

@keyframes hero-intro-rise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}

@keyframes hero-intro-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes hero-intro-dot {
  from { transform: scale(0); }
  to { transform: scale(1); }
}

.hero .eyebrow {
  animation: hero-intro-fade .5s ease-out both;
}

.hero .eyebrow::before {
  animation: hero-intro-dot .5s cubic-bezier(.34, 1.56, .64, 1) .1s both;
}

.hero .lead,
.hero-identity,
.hero-place,
.hero-actions,
.hero-risk,
.hero-motion {
  animation: hero-intro-rise .7s cubic-bezier(.16, 1, .3, 1) both;
}

.hero .lead { animation-delay: .36s; }
.hero-identity { animation-delay: .44s; }
.hero-place { animation-delay: .48s; }
.hero-actions { animation-delay: .54s; }
.hero-risk { animation-delay: .62s; }
.hero-motion { animation-delay: .66s; }

.hero-portrait figcaption {
  animation: hero-intro-rise .7s cubic-bezier(.16, 1, .3, 1) .5s both;
}

/* ==== wow/color-flood.css ==== */
/* wow: color-flood — "Renk ipten taşar". Katmanlar JS ile bölümün ilk çocukları olarak eklenir (::before kullanılmaz).
   Geçişte bölüm (host) clip-path ile kırpılır; içerik tam opak, yalnız dolan rengin içinde görünür.
   Hareket azaltmada JS hiçbir sınıf/katman eklemez → bölüm kendi tam rengiyle durur. */
.wow-flood-pos {
  position: relative;
}

.wow-flood,
.wow-flood-rim {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.wow-flood {
  clip-path: circle(0px at 0px 0px);
}

/* Dolum kenarındaki ip izi: host kırpması r+iz, renk katmanı r → arada elektrik mavisi halka. */
.wow-flood-rim {
  background: var(--electric);
  opacity: 0;
}

.wow-flood-host > .wow-flood-lift {
  position: relative;
  z-index: 1;
}

@media screen {
  .wow-flood-host.wow-flood-live.wow-flood-live {
    background-color: var(--paper);
  }
}

@media print {
  .wow-flood,
  .wow-flood-rim {
    display: none;
  }
}

/* ==== wow/farki.css ==== */
/* wow: farki — "FARKI AÇIN." kaydırmaya bağlı aralanma (JS: scripts/wow/farki.js; yalnız transform) */

.logo-chapter h2.fk-title .fk-w {
  display: inline-block;
  white-space: nowrap;
}

.logo-chapter h2.fk-title .fk-w-a,
.logo-chapter h2.fk-title .fk-ch {
  display: inline-block;
  will-change: transform;
  backface-visibility: hidden;
}

/* 3D yüklenmezse (yedek SVG) köşeler yine kaydırmaya bağlı aralanır. --fk-p: 0..1 (azaltılmışta .5) */
.logo-chapter .logo-fallback path {
  transform-box: view-box;
  transform: translate3d(0, 0, 0);
}

.logo-chapter .logo-fallback path:first-child {
  transform: translate(calc(var(--fk-p, 0) * -16px), calc(var(--fk-p, 0) * -16px));
}

.logo-chapter .logo-fallback path:last-child {
  transform: translate(calc(var(--fk-p, 0) * 16px), calc(var(--fk-p, 0) * 16px));
}

@media (prefers-reduced-motion: reduce) {
  .logo-chapter h2.fk-title .fk-w-a,
  .logo-chapter h2.fk-title .fk-ch {
    will-change: auto;
  }
}

body[data-reduced="true"] .logo-chapter h2.fk-title .fk-w-a,
body[data-reduced="true"] .logo-chapter h2.fk-title .fk-ch {
  transform: none !important;
  will-change: auto;
}

/* ==== wow/video-preview.css ==== */
/* wow: video-preview — VİDEOLAR BAKINCA CANLANIR (scripts/wow/video-preview.js)
   · .vp-video: kapak üstünde sessiz önizleme; yalnız .vp-playing iken görünür (opacity).
   · <700 px: .video-grid.vp-on yatay scroll-snap şeridi (kart ~78vw, sıradaki kenardan görünür).
   Yalnız transform/opacity animasyonu. */

.video-cover > .vp-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity .35s var(--ease, ease), transform var(--dur-3, .6s) var(--ease, ease);
  background: transparent;
}

.video-cover.vp-playing > .vp-video {
  opacity: 1;
  transform: scale(1);
}

.video-cover.vp-playing .play {
  opacity: .0;
  transform: translate(-50%, -50%) scale(.8);
  transition: opacity .3s var(--ease, ease), transform .3s var(--ease, ease);
}

/* Oynarken ortadaki ▶ çekilir (yüzü/kareyi örtmez); sağ üstte küçük ▶ + 4 sn döngü ilerleme halkası (ip dili). */
.video-cover > .vp-ring {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 36px;
  height: 36px;
  pointer-events: none;
  opacity: 0;
  transform: scale(.7);
  transform-origin: 100% 0;
  transition: opacity .3s var(--ease, ease), transform .3s var(--ease, ease);
}

.video-cover.vp-playing > .vp-ring {
  opacity: 1;
  transform: none;
}

.vp-ring .vp-ring-track {
  fill: rgb(16 31 66 / .55);
  stroke: rgb(237 242 255 / .35);
  stroke-width: 2;
}

.vp-ring .vp-ring-fill {
  fill: none;
  stroke: var(--ice);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transform: rotate(-90deg);
  transform-origin: 18px 18px;
  transition: stroke-dashoffset .26s linear;
}

.vp-ring .vp-ring-fill.vp-ring-snap {
  transition: none;
}

.vp-ring .vp-ring-play {
  fill: #fff;
}

/* Mobil şerit ilerleme ipi: yalnız <700 px */
.vp-track {
  display: none;
}

@media (max-width: 699.98px) {
  .video-section .vp-track {
    display: block;
    position: relative;
    height: 2px;
    margin: 14px auto 45px;
    width: min(78vw, 100%);
    overflow: hidden;
    border-radius: 2px;
    background: rgb(237 242 255 / .32);
  }

  .video-section .vp-track > i {
    position: absolute;
    inset: 0;
    background: var(--electric);
    transform: scaleX(0);
    transform-origin: left center;
  }
}

/* --- Mobil şerit --- */
@media (max-width: 699.98px) {
  .video-section .video-grid.vp-on {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    margin-inline: calc(50% - 50vw);
    padding-inline: calc(11vw - 7px);
    scroll-padding-inline: calc(11vw - 7px);
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
  }

  .video-section .video-grid.vp-on:has(+ .vp-track) {
    margin-bottom: 0;
  }

  .video-section .video-grid.vp-on::-webkit-scrollbar {
    display: none;
  }

  .video-section .video-grid.vp-on > article,
  .video-section .video-grid.vp-on > article:nth-child(2),
  .video-section .video-grid.vp-on > article:nth-child(3) {
    flex: 0 0 78vw;
    width: 78vw;
    margin-top: 0;
    display: block;
    grid-column: auto;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  .video-section .video-grid.vp-on > article .video-cover {
    grid-row: auto;
  }

  .video-section .video-grid.vp-on > article .video-cover > img {
    aspect-ratio: 4 / 5;
  }
}

/* Hareket azaltma: önizleme görünmez, kapak durağan. */
body[data-reduced="true"] .video-cover > .vp-video {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .video-cover > .vp-video,
  .video-cover.vp-playing .play {
    transition: none;
  }
}

/* Şerit tam genişliğe taşar; sayfada yatay kaydırma doğurmasın. */
@media (max-width: 699.98px) {
  .video-section:has(.video-grid.vp-on) {
    overflow-x: clip;
  }
}

/* ==== wow/card-hover.css ==== */
/* wow: card-hover — proje kartı hover'ı (scripts/wow/card-hover.js ekler: .wow-card, .wow-card-ring, .wow-card-tag)
   Tilt, kartın kendi transform'unu kullanır; burada yalnız iç görsel ölçeklenir, ip ve etiket enjekte öğelerdir. */
.wow-card {
  position: relative;
}

.wow-card-ring,
.wow-card-tag {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  /* İp kartın 6 px dışında (kartın offsetParent'ında; JS translate ile konumlanır) → kâğıt zeminde nesneyi saran ip */
  .wow-card-ring {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    overflow: visible;
    pointer-events: none;
    z-index: 3;
  }

  .wow-card-ring rect {
    fill: none;
    stroke: var(--electric);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: 0;
    transition: stroke-dashoffset .6s var(--ease), opacity .25s var(--ease);
  }

  .wow-card-ring.is-on rect {
    stroke-dashoffset: 0;
    opacity: 1;
  }

  /* Video kartında etiket yok; yalnız ip (aynı vitrinde tek hover dili) */
  .wow-card--video .wow-card-tag {
    display: none;
  }

  /* Statik 2px kenar halkası yerine çizilen ip (gölgenin geri kalanı aynı) */
  .project-cover.wow-card:hover {
    box-shadow: 0 0 0 0 transparent, 0 35px 60px -20px rgb(26 59 150 / .44), 0 1px 0 rgb(255 255 255 / .5) inset;
  }

  /* Web ekranı: görsel yumuşakça %3 (kartın tilt transform'una dokunmadan) */
  .web-screen.wow-card img {
    transform-origin: 50% 50%;
    transition: transform var(--dur-3, .6s) var(--ease);
  }

  .web-screen.wow-card:hover img {
    transform: scale(1.03);
  }

  /* İmleci izleyen "İncele ↗" etiketi: dış kutu konum (JS translate), iç kutu belirme */
  .wow-card-tag {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 4;
    pointer-events: none;
    will-change: transform;
  }

  .wow-card-tag > span {
    display: block;
    padding: 7px 12px;
    border-radius: var(--radius-pill, 100px);
    background: rgb(16 31 66 / .82);
    border: 1px solid var(--ice);
    color: #fff;
    font: 600 .75rem/1 Inter, system-ui, sans-serif;
    letter-spacing: .01em;
    white-space: nowrap;
    box-shadow: 0 8px 20px -8px rgb(16 31 66 / .55);
    opacity: 0;
    transform: scale(.82);
    transform-origin: 0 100%;
    transition: opacity .2s var(--ease), transform .3s var(--ease);
  }

  .wow-card.is-wow-tag .wow-card-tag > span {
    opacity: 1;
    transform: none;
  }
}

/* Hareket azaltma: yalnız kenar rengi — ip anında tam, ölçek ve etiket yok */
body[data-reduced="true"] .wow-card-ring rect {
  transition: none;
}

body[data-reduced="true"] .wow-card-tag,
body[data-reduced="true"] .wow-card-tag > span {
  display: none;
}

body[data-reduced="true"] .web-screen.wow-card:hover img {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .wow-card-ring rect {
    transition: none;
  }

  .wow-card-tag {
    display: none !important;
  }

  .web-screen.wow-card:hover img {
    transform: none;
  }
}

/* ==== wow/price-wrap.css ==== */
/* wow: price-wrap — "Paketi bağla" (ajan: fiyat, 26 Eylül 2026; düzeltme: duzelt-g4).
   scripts/wow/price-wrap.js her .price-card içine span.pw > svg.pw-svg enjekte eder:
   path.pw-shadow + path.pw-path (gradyan gövde) + path.pw-shine (parlak çizgi) + g.pw-knot (ilmik + kuyruk).
   Katmanlar thread.css'teki sayfa ipi (.cord-shadow / .cord-live / .cord-light) diliyle aynı.
   Kart .is-wrapped alınca ip kenarı bir kez sarar (700 ms), ardından düğüm belirir; kartın kendi kenarı gizlenir.
   Mavi zeminli hizmet kartında ip buz mavisi, lacivert gölgeli. .pw-still = hareket azaltma (geçiş yok). */
.price-card > .pw {
  position: absolute;
  inset: -1px;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
}

.pw-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.pw-rope,
.pw-knot path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Kartın kendi kenarı (1 px çizgi + ::before gradyan halkası) sarılınca ipin altında kalmasın. */
.price-card.is-wrapped {
  border-color: transparent;
}

.price-card.is-wrapped::before {
  opacity: 0;
}

/* Gövde + gölge: pathLength=1 ile tek seferlik sarma. */
.pw-path,
.pw-shadow {
  stroke-dasharray: 1 2;
  stroke-dashoffset: 1;
  opacity: 0;
  transition: opacity .35s ease, stroke-dashoffset 0s linear .4s;
}

.pw-path {
  stroke-width: 6px;
}

.pw-shadow {
  stroke: #234480;
  stroke-width: 9px;
  transform: translate(2px, 3px);
}

.price-card.is-wrapped .pw-path {
  stroke-dashoffset: 0;
  opacity: 1;
  transition: opacity .12s ease, stroke-dashoffset .7s cubic-bezier(.65, 0, .35, 1);
}

.price-card.is-wrapped .pw-shadow {
  stroke-dashoffset: 0;
  opacity: .1;
  transition: opacity .12s ease, stroke-dashoffset .7s cubic-bezier(.65, 0, .35, 1);
}

/* Parlak çizgi: sarma bitince belirir (döngü yok). */
.pw-shine {
  stroke: #a9c9ff;
  stroke-width: 1.6px;
  stroke-dasharray: 26 235;
  opacity: 0;
  transition: opacity .2s ease;
}

.price-card.is-wrapped .pw-shine {
  opacity: .85;
  transition: opacity .4s ease .62s;
}

/* Düğüm: ipin kendisinden ilmik + sarkan kuyruk. */
.pw-knot-in {
  opacity: 0;
  transform: scale(.3) rotate(-90deg);
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .25s ease, opacity .2s ease;
}

.pw-knot-body {
  stroke-width: 4.5px;
}

.pw-knot-shadow {
  stroke: #234480;
  stroke-width: 6.5px;
  opacity: .12;
  transform: translate(1.5px, 2px);
}

.pw-knot-shine {
  stroke: #a9c9ff;
  stroke-width: 1.4px;
  opacity: .9;
}

.price-card.is-wrapped .pw-knot-in {
  opacity: 1;
  transform: none;
  transition: transform .5s cubic-bezier(.34, 1.56, .64, 1) .6s, opacity .18s ease .6s;
}

/* Mavi zeminli (önerilen) hizmet kartı: buz mavisi ip, lacivert gölge ile zeminden ayrışır. */
.price-card--service .pw-path,
.price-card--service .pw-knot-body {
  stroke: var(--ice);
}

.price-card--service .pw-shadow,
.price-card--service .pw-knot-shadow {
  stroke: var(--navy);
}

.price-card--service.is-wrapped .pw-shadow {
  opacity: .38;
}

.price-card--service .pw-knot-shadow {
  opacity: .38;
}

.price-card--service .pw-shine,
.price-card--service .pw-knot-shine {
  stroke: #fff;
}

/* Hareket azaltma: geçiş yok; bağlı kart durağan görünür. */
.price-card.pw-still .pw-path,
.price-card.pw-still .pw-shadow,
.price-card.pw-still .pw-shine,
.price-card.pw-still .pw-knot-in,
body[data-reduced="true"] .price-card .pw-path,
body[data-reduced="true"] .price-card .pw-shadow,
body[data-reduced="true"] .price-card .pw-shine,
body[data-reduced="true"] .price-card .pw-knot-in {
  transition: none !important;
}

.price-card.pw-still .pw-knot-in,
body[data-reduced="true"] .price-card .pw-knot-in {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .price-card .pw-path,
  .price-card .pw-shadow,
  .price-card .pw-shine,
  .price-card .pw-knot-in {
    transition: none !important;
  }

  .price-card .pw-knot-in {
    transform: none;
  }
}

@media (max-width: 580px) {
  .pw-path {
    stroke-width: 5px;
  }

  .pw-shadow {
    stroke-width: 7px;
  }

  .pw-shine {
    stroke-width: 1.3px;
  }

  .pw-knot-body {
    stroke-width: 4px;
  }
}

/* ==== wow/magnetic.css ==== */
/* wow: magnetic — mıknatıs düğmeler (ajan: miknatis).
   JS yalnız ince imleçli cihazda ve hareket açıkken .is-magnetic ekler; kayma CSS `translate` ile (transform'la üst üste biner). */
.is-magnetic > .mag-label {
  display: inline-flex;
  align-items: inherit;
  justify-content: inherit;
  gap: inherit;
  pointer-events: none;
}

body[data-reduced="true"] .is-magnetic,
body[data-reduced="true"] .is-magnetic > .mag-label {
  translate: none !important;
}

@media (hover: none), (pointer: coarse) {
  .is-magnetic,
  .is-magnetic > .mag-label {
    translate: none !important;
  }
}

/* ==== wow/counter.css ==== */
/* wow: counter — kimlik sayaçları (ajan: miknatis).
   JS görünmeden hemen önce değeri 0'a hazırlar (.is-primed), görünümde sayar (.is-counting), bitişte orijinal metni geri yazar. */
.identity-value.is-primed {
  opacity: .35;
  transition: opacity .5s var(--ease, ease-out);
}

.identity-value.is-primed.is-counting {
  opacity: 1;
}

body[data-reduced="true"] .identity-value.is-primed {
  opacity: 1;
  transition: none;
}

/* Sayarken genişlik titremesin (duzelt-g4). */
.identity-value {
  font-variant-numeric: tabular-nums;
}

/* ==== wow/process-stitch.css ==== */
/* wow: process-stitch — Süreç dikişi (ajan: surec, 26 Eylül 2026)
   scripts/wow/process-stitch.js ol.process-list'e .ps-on ekler, SVG ipi (.ps-svg) listenin içine koyar.
   Yalnız stroke-dashoffset (JS) + transform/opacity/clip-path geçişleri. v18 ve v12 (.v12-steps-faq) aynı sözleşme. */

.process-list.ps-on {
  position: relative;
}

.ps-svg {
  position: absolute;
  left: 0;
  top: 0;
  overflow: visible;
  pointer-events: none;
  z-index: 1;
}

.ps-guide {
  fill: none;
  stroke: var(--blue);
  stroke-width: 1.2;
  stroke-dasharray: 2 6;
  stroke-linecap: round;
  opacity: .28;
}

.ps-glow,
.ps-thread {
  fill: none;
  stroke: var(--electric);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ps-glow {
  stroke-width: 7;
  opacity: .12;
}

.ps-thread {
  stroke-width: 2;
}

.ps-needle {
  opacity: 0;
  transition: opacity .25s ease;
}

.ps-svg.is-drawing .ps-needle {
  opacity: 1;
}

.ps-needle-dot {
  fill: var(--electric);
}

.ps-needle-halo {
  fill: var(--electric);
  opacity: .18;
}

.ps-knot {
  fill: var(--electric);
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(.2);
  transition: opacity .3s ease, transform .45s cubic-bezier(.3, 1.6, .5, 1);
}

.ps-svg.is-done .ps-knot {
  opacity: 1;
  transform: scale(1);
}

/* Giriş iğne deliği (duzelt-g4): dikişin tutturulduğu nokta, hep görünür. */
.ps-pin-ring {
  fill: var(--paper, #fff);
  stroke: var(--electric);
  stroke-width: 2;
}

.ps-pin-hole {
  fill: var(--navy);
}

/* Mobil: halkalar ekran kenarına yapışmasın (en az 18 px içeride). */
@media (max-width: 480px) {
  .process-list.ps-on > li {
    padding-left: 8px;
  }
}

/* Boya katmanı: numara ve başlık ip ulaşınca soldan sağa elektrik mavisine boyanır */
.ps-host {
  position: relative;
}

.ps-ink {
  position: absolute;
  inset: 0;
  color: var(--electric);
  clip-path: inset(0 100% 0 0);
  transition: clip-path .7s cubic-bezier(.2, .7, .2, 1);
  pointer-events: none;
  user-select: none;
}

/* İp gelmeden numara soluk bekler; ip ulaşınca elektrik mavisine boyanır */
.process-list.ps-on li > span {
  color: var(--muted);
}

.process-list li.is-stitched .ps-ink {
  clip-path: inset(0 0 0 0);
}

.process-list li.is-stitched h3 > .ps-ink {
  transition-delay: .12s;
}

/* Hareket azaltma: tam çizili, durağan */
.ps-reduced .ps-ink,
.ps-reduced .ps-knot,
.ps-reduced .ps-needle {
  transition: none;
}

.ps-reduced .ps-needle {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .ps-ink,
  .ps-knot,
  .ps-needle {
    transition: none;
  }
}

@media print {
  .ps-svg {
    display: none;
  }
}

/* ==== wow/iki-yol.css ==== */
/* wow/iki-yol.css — "İki yol, tek ip" (#yollar; WOW2, 27 Eylül 2026).
   scripts/wow/iki-yol.js #thread-stage içine svg.iy-svg ekler (sayfa koordinatı, yalnız bölüm yüksekliği kadar):
   g.iy-arm--b = B kolu (gölge + gövde + parlak akış; sayfa ipiyle aynı katmanlar, thread.css .cord-* değerleri)
   g.iy-arm--a = A kolunun (sayfa ipinin bölümdeki parçası) üstüne yalnız vurgu katmanları.
   .iy-rev yolları pathLength=1; --iy-off (1 → 0) sayfa ipinin ucuyla senkron açar.
   [data-on="a|b"] = kartın kolu kalınlaşıp parlar, öbürü söner (A için sayfa SVG'sine mask#iy-dim bağlanır).
   .iy-still = hareket azaltma: durağan, geçiş/etkileşim yok. */
#thread-stage > .iy-svg {
  position: absolute;
  top: 0;
  left: 0;
  overflow: visible;
  pointer-events: none;
}

.iy-svg path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.iy-rev {
  stroke-dasharray: 1 2;
  stroke-dashoffset: var(--iy-off, 1);
}

/* B kolu: sayfa ipiyle aynı dil */
.iy-shadow {
  stroke: #234480;
  stroke-width: 12px;
  opacity: .075;
  transform: translate(3px, 5px);
}

.iy-live {
  stroke: url(#iy-grad);
  stroke-width: 9px;
}

.iy-light {
  stroke: #a9c9ff;
  stroke-width: 2px;
  stroke-dasharray: 26 235;
  opacity: .85;
  animation: cord-flow 6s linear infinite;
  animation-play-state: paused;
}

html.is-scrolling .iy-light {
  animation-play-state: running;
}

/* Vurgu katmanları (varsayılan görünmez) */
.iy-halo {
  stroke: #7fa8ff;
  stroke-width: 22px;
  opacity: 0;
}

.iy-thick {
  stroke: url(#iy-grad);
  stroke-width: 12px;
  opacity: 0;
}

.iy-shine {
  stroke: #a9c9ff;
  stroke-width: 1.6px;
  opacity: 0;
}

.iy-pulse {
  stroke: #fff;
  stroke-width: 3.5px;
  stroke-dasharray: .1 1.3;
  stroke-dashoffset: .1;
  opacity: 0;
}

.iy-arm,
.iy-halo,
.iy-thick,
.iy-shine {
  transition: opacity .28s ease;
}

.iy-dim-path {
  stroke-width: 34px;
  stroke-linecap: butt;
  stroke-linejoin: round;
  opacity: 0;
  transition: opacity .28s ease;
}

/* Etkin kol: gerilir (kalın + parlak), öbürü söner */
.iy-svg[data-on="a"] .iy-arm--a .iy-halo,
.iy-svg[data-on="b"] .iy-arm--b .iy-halo {
  opacity: .2;
}

.iy-svg[data-on="a"] .iy-arm--a .iy-thick,
.iy-svg[data-on="b"] .iy-arm--b .iy-thick {
  opacity: 1;
}

.iy-svg[data-on="a"] .iy-arm--a .iy-shine,
.iy-svg[data-on="b"] .iy-arm--b .iy-shine {
  opacity: .45;
}

.iy-svg[data-on="a"] .iy-arm--b {
  opacity: .5;
}

.iy-svg[data-on="b"] .iy-dim-path {
  opacity: .5;
}

/* Hareket azaltma: durağan (geçiş yok, akış yok, vurgu yok) */
.iy-still .iy-arm,
.iy-still .iy-halo,
.iy-still .iy-thick,
.iy-still .iy-shine,
.iy-still .iy-dim-path,
body[data-reduced="true"] .iy-arm,
body[data-reduced="true"] .iy-halo,
body[data-reduced="true"] .iy-thick,
body[data-reduced="true"] .iy-shine,
body[data-reduced="true"] .iy-dim-path {
  transition: none !important;
}

.iy-still .iy-light,
body[data-reduced="true"] .iy-light {
  animation-play-state: paused !important;
}

.iy-still .iy-pulse,
body[data-reduced="true"] .iy-pulse {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .iy-arm,
  .iy-halo,
  .iy-thick,
  .iy-shine,
  .iy-dim-path {
    transition: none !important;
  }

  .iy-light {
    animation-play-state: paused !important;
  }

  .iy-pulse {
    display: none;
  }
}

@media (max-width: 580px) {
  .iy-live {
    stroke-width: 5px;
  }

  .iy-shadow {
    stroke-width: 7px;
  }

  .iy-light {
    stroke-width: 1.4px;
  }

  .iy-thick {
    stroke-width: 7px;
  }

  .iy-halo {
    stroke-width: 14px;
  }

  .iy-dim-path {
    stroke-width: 22px;
  }
}

/* ==== wow/kisiye-bol.css ==== */
/* wow/kisiye-bol.css — "Kişiye böl" (WOW2, 27 Eylül 2026, ajan: kisiye-bol).
   scripts/wow/kisiye-bol.js eğitim kartında .price-duration'dan sonra div.kb ekler:
   .kb-row (span.kb-label "Kaç kişi?" + div.kb-options[role=radiogroup] > label.kb-opt > input.kb-input + .kb-face + .kb-sr)
   + span.kb-cord (kısa ip parçası: gölge + gradyan gövde + parlak çizgi; thread.css .cord-* dili)
   + p.kb-out[aria-live] "Kişi başı X TL + KDV" + p.kb-inst "3 taksit: Y TL + KDV".
   İp parçası yalnız transform ile kayar; .kb-still / body[data-reduced] / prefers-reduced-motion = geçiş yok.
   price-wrap'ın kart kenarı ipi (span.pw, z-index 2) ile üst üste binmez: .kb kartın iç dolgusunda kalır. */
.kb {
  align-self: stretch;
  width: 100%;
  margin: 16px 0 6px;
  padding: 14px 18px 14px;
  border: 1px solid var(--line-blue, #c9d8f3);
  border-radius: var(--radius, 14px);
  background: rgb(255 255 255 / .74);
}

.kb-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
}

.kb-label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--muted-strong, #4a5568);
}

.kb-options {
  position: relative;
  display: flex;
  gap: 8px;
  padding-bottom: 14px;
}

.kb-opt {
  position: relative;
  display: grid;
  flex: none;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-blue, #c9d8f3);
  border-radius: 50%;
  background: #fff;
  color: var(--ink, #102143);
  font-family: var(--display);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.kb-opt:hover {
  border-color: #9db7f4;
}

.kb-opt.is-on {
  border-color: var(--blue, #2052eb);
  color: var(--blue, #2052eb);
  box-shadow: 0 8px 18px -10px rgb(32 82 235 / .6);
}

/* Yerel radyo düğmesi görünmez ama tüm düğmeyi kaplar (dokunma, ekran okuyucu, klavye). */
.kb-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 50%;
  opacity: 0;
  cursor: pointer;
}

.kb-face {
  pointer-events: none;
}

.kb-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Odak halkası: klavye odağında görünür (fare tıklaması odağı taşımaz; :has destekleyen tarayıcıda yalnız :focus-visible). */
.kb-opt:focus-within {
  outline: 2px solid var(--focus, #2052eb);
  outline-offset: 2px;
}

.kb-opt:has(.kb-input:focus):not(:has(.kb-input:focus-visible)) {
  outline: none;
}

/* Kısa ip parçası: seçili düğmenin altında. JS translate3d(x) yazar; geçiş yalnız transform. */
.kb-cord {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 36px;
  height: 9px;
  pointer-events: none;
  transition: transform .5s cubic-bezier(.34, 1.28, .64, 1);
}

.kb-cord-in {
  display: block;
  width: 100%;
  height: 100%;
  transform-origin: 50% 50%;
}

.kb-cord-svg {
  display: block;
  overflow: visible;
}

.kb-cord path {
  fill: none;
  stroke-linecap: round;
}

.kb-cord-shadow {
  stroke: #234480;
  stroke-width: 4.6;
  opacity: .12;
  transform: translate(1px, 1.5px);
}

.kb-cord-body {
  stroke-width: 3.2;
}

.kb-cord-shine {
  stroke: #a9c9ff;
  stroke-width: 1;
  stroke-dasharray: 9 40;
  stroke-dashoffset: -7;
  opacity: .9;
}

/* Sonuç satırları */
.kb-out {
  margin-top: 8px;
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink, #102143);
}

.kb-num {
  font-family: var(--display);
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.005em;
  color: var(--blue, #2052eb);
  font-variant-numeric: tabular-nums;
}

.kb-inst {
  margin-top: 4px;
  font-size: .88rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--muted, #57647a);
}

.kb-inst strong {
  font-weight: 700;
  color: var(--ink, #102143);
}

/* Hareket azaltma / ilk yerleşim: geçiş yok. */
.kb-cord--jump,
.kb.kb-still .kb-cord,
body[data-reduced="true"] .kb-cord {
  transition: none !important;
}

.kb.kb-still .kb-opt,
body[data-reduced="true"] .kb-opt {
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .kb-cord,
  .kb-opt {
    transition: none !important;
  }
}

@media (max-width: 580px) {
  .kb {
    padding: 12px 14px 12px;
  }

  .kb-row {
    gap: 8px 14px;
  }

  .kb-num {
    font-size: 1.9rem;
  }
}

@media print {
  .kb-cord {
    display: none;
  }
}

/* ==== wow/dikisli-form.css ==== */
/* wow/dikisli-form.css — "Dikişli form" (WOW2, 27 Eylül 2026, ajan: dikisli-form).
   scripts/wow/dikisli-form.js #contact-form'a div.df-layer ekler: her zorunlu alan için svg.df-stitch
   (g.df-st × n: path.df-halo + .df-shadow + .df-body gradyan + .df-shine — sayfa ipinin katmanları).
   .is-sewn = alan geçerli: ilmekler yukarıdan aşağı sırayla dikilir (~450–550 ms); kalkınca söner.
   Gönderimde #contact-submit içine span.df-knot (ilmek + iki uç) eklenir; .is-tied = düğüm atıldı.
   #contact-fallback.df-from-knot = panel düğümden açılır (transform-origin JS'ten, ölçek + opaklık).
   .df-still = hareket azaltma: geçiş/animasyon yok, son hâl durağan. */

#contact-form.df-on {
  position: relative;
}

.df-layer {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

.df-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.df-stitch {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  overflow: visible;
  opacity: 0;
  transition: opacity .24s ease;
}

.df-stitch.is-sewn {
  opacity: 1;
  transition: opacity .08s ease;
}

.df-stitch path,
.df-knot path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1 2;
  stroke-dashoffset: 1;
}

/* söner: önce opaklık, sonra (görünmezken) çizim sıfırlanır */
.df-stitch path {
  transition: stroke-dashoffset 0s linear .26s;
}

.df-stitch.is-sewn path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset .17s cubic-bezier(.45, 0, .25, 1) calc(var(--i, 0) * 95ms);
}

/* ip katmanları (thread.css .cord-* dili, küçük ölçek) */
.df-halo {
  stroke: #fff;
  stroke-width: 6.4px;
}

.df-shadow {
  stroke: #234480;
  stroke-width: 4.4px;
  opacity: .14;
  transform: translate(.8px, 1.3px);
}

.df-body {
  stroke-width: 3.2px;
}

.df-shine {
  stroke: #a9c9ff;
  stroke-width: .9px;
  opacity: .85;
}

/* --- Düğüm (gönder düğmesinin sol kenarında; dar ekranda düğmenin iç kenarında) --- */
#contact-submit.df-host {
  position: relative;
}

.df-knot {
  position: absolute;
  top: 50%;
  left: -18px;
  width: 36px;
  height: 36px;
  margin-top: -18px;
  pointer-events: none;
  opacity: 0;
}

.df-knot.is-tied {
  opacity: 1;
}

.df-knot-svg {
  display: block;
  width: 36px;
  height: 36px;
  overflow: visible;
}

.df-knot-g {
  transform-box: view-box;
  transform-origin: 15px 15px;
}

.df-k-in {
  --d: .16s;
  --w: 0s;
}

.df-k-loop {
  --d: .26s;
  --w: .12s;
}

.df-k-out {
  --d: .15s;
  --w: .34s;
}

.df-knot.is-tied path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset var(--d) cubic-bezier(.45, 0, .25, 1) var(--w);
}

/* ilmek sıkılır */
.df-knot.is-tied .df-knot-g {
  animation: df-tighten .34s cubic-bezier(.34, 1.56, .64, 1) .36s both;
}

@keyframes df-tighten {
  from {
    transform: scale(1.24) rotate(-24deg);
  }

  to {
    transform: none;
  }
}

/* panel düğümden açılır */
.contact-fallback.df-from-knot {
  animation: df-bloom .46s cubic-bezier(.2, .7, .2, 1) .42s both;
}

@keyframes df-bloom {
  from {
    opacity: 0;
    transform: scale(.2);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 580px) {
  .df-knot {
    left: 2px;
  }
}

/* --- Hareket azaltma: dikiş anında, düğüm ve panel durağan --- */
#contact-form.df-still .df-stitch,
#contact-form.df-still .df-stitch path,
#contact-form.df-still .df-knot path,
body[data-reduced="true"] .df-stitch,
body[data-reduced="true"] .df-stitch path,
body[data-reduced="true"] .df-knot path {
  transition: none !important;
}

#contact-form.df-still .df-knot-g,
#contact-form.df-still .contact-fallback.df-from-knot,
body[data-reduced="true"] .df-knot-g,
body[data-reduced="true"] .contact-fallback.df-from-knot {
  animation: none !important;
}

@media (forced-colors: active) {
  .df-layer,
  .df-knot {
    display: none;
  }
}

@media print {
  .df-layer,
  .df-knot {
    display: none;
  }
}

/* ==== wow/dipnot-etiketi.css ==== */
/* wow: dipnot-etiketi — "Dipnot etiketi" (27 Eylül 2026, WOW2).
   scripts/wow/dipnot-etiketi.js her dipnotlu .identity-stat içine (dt'nin altına, akışta) span.dt-tag[aria-hidden] ekler:
   span.dt-card (dipnot metni; ilk " · " parçası başlık) + svg.dt-cord (ip: gölge + gradyan gövde + parlak çizgi,
   rakamın sağ üstündeki ilmik(ler) g.dt-knot). Sayım BAŞLARKEN .dt-tag.is-shown + .dt-knot.is-on: ilmik belirir,
   ip bir kez çizilir, kart halkasından sallanarak iner; toplam ~1,4 sn = sayım süresi (counter.js DUR) → sayım bitince
   etiket tam yerinde. Yer baştan ayrılır: iniş anında sayfa kaymaz.
   .is-merged = aynı dipnotu paylaşan alt alta rakamlarda (mobil) ortak etiket sonuncuda. .is-static = geçişsiz. */
.dt-tag {
  order: -1;
  position: relative;
  display: block;
  margin-top: 10px;
  pointer-events: none;
}

.dt-tag.is-merged {
  display: none;
}

.dt-card {
  position: relative;
  display: block;
  width: fit-content;
  max-width: 100%;
  padding: 9px 12px 10px;
  border: 1px solid rgb(146 179 255 / .34);
  border-radius: 10px;
  background: rgb(26 48 101 / .94);
  box-shadow: 0 12px 24px rgb(3 8 24 / .34);
  color: var(--on-dark-muted);
  font-size: .75rem;
  line-height: 1.45;
  transform-origin: var(--dt-hx, 16px) 0;
  opacity: 0;
  transform: translateY(-14px) rotate(calc(var(--dt-rest, 0deg) + 9deg));
  transition: opacity .2s ease, transform 0s linear .2s;
}

/* Halka: ip kartın üst kenarındaki bu kuşgözüne bağlanır. */
.dt-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: var(--dt-hx, 16px);
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border-radius: 50%;
  background: var(--navy);
  box-shadow: 0 0 0 1.6px #7fa8ff;
}

.dt-head {
  display: block;
  margin-bottom: 2px;
  font-family: var(--display);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #fff;
}

.dt-star {
  color: var(--on-dark-accent);
}

.dt-line {
  display: block;
}

.dt-cord {
  position: absolute;
  top: 0;
  left: 0;
  overflow: visible;
}

.dt-rope,
.dt-knot path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dt-rope {
  stroke-dasharray: 1 2;
  stroke-dashoffset: 1;
}

.dt-body {
  stroke-width: 2.6px;
}

.dt-shadow {
  stroke: #030817;
  stroke-width: 4px;
  opacity: .42;
  transform: translate(1.2px, 1.8px);
}

.dt-shine {
  stroke: #cfe0ff;
  stroke-width: .9px;
  opacity: .75;
  transform: translate(-.6px, -.3px);
}

/* İlmik: rakamın sağ üstünde (dipnot işaretinin yeri). */
.dt-knot {
  opacity: 0;
  transform: scale(.2);
  transform-box: fill-box;
  transform-origin: center;
}

.dt-knot circle {
  fill: none;
}

.dt-knot-body {
  stroke-width: 2.4px;
}

.dt-knot-shadow {
  stroke: #030817;
  stroke-width: 3.6px;
  opacity: .42;
  transform: translate(1px, 1.4px);
}

.dt-knot-shine {
  stroke: #cfe0ff;
  stroke-width: .9px;
  opacity: .85;
}

.dt-knot.is-on {
  opacity: 1;
  transform: none;
  transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), opacity .15s ease;
}

/* İniş sayımla birlikte: ilmik 0–0,45 sn, ip 0,15–0,75 sn, kart 0,4–1,4 sn (sayım 1,4 sn). Döngü yok. */
.dt-tag.is-shown .dt-rope {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset .6s cubic-bezier(.65, 0, .35, 1) .15s;
}

.dt-tag.is-shown .dt-card {
  opacity: 1;
  transform: rotate(var(--dt-rest, 0deg));
  transition: opacity .3s ease .4s, transform 1s cubic-bezier(.3, 1.5, .45, 1) .4s;
}

/* Durağan (hareket azaltma / yeniden yerleşim): geçiş yok. */
.dt-tag.is-static .dt-card,
.dt-tag.is-static .dt-rope,
.dt-tag.is-static .dt-knot,
body[data-reduced="true"] .dt-tag .dt-card,
body[data-reduced="true"] .dt-tag .dt-rope,
body[data-reduced="true"] .dt-tag .dt-knot {
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .dt-tag .dt-card,
  .dt-tag .dt-rope,
  .dt-tag .dt-knot {
    transition: none !important;
  }
}

@media (max-width: 580px) {
  .dt-tag {
    margin-top: 8px;
  }

  .dt-card {
    font-size: .74rem;
  }

  .dt-body {
    stroke-width: 2.3px;
  }
}

/* ==== wow/dugum-cek.css ==== */
/* wow/dugum-cek.css — "Düğümü elle çöz" tutma alanı (27 Eylül 2026, WOW2). JS: scripts/wow/dugum-cek.js.
   .hero-portrait içinde, E noktasında (3D ip → SVG ip) şeffaf 36 px daire; konumu JS verir (transform).
   Görünür tek şey: üzerine gelince ince halka; ilk gelişte bir kez nabız + "İpi çekin". Yalnız masaüstü ince imleç,
   hareket açıkken; aksi halde [hidden] (display: none). */
.dugum-cek {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 5;
  width: 36px;
  height: 36px;
  margin: -18px 0 0 -18px;
  border-radius: 50%;
  cursor: grab;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.dugum-cek[hidden] {
  display: none !important;
}

.dugum-cek.is-dragging,
html.is-dugum-cek,
html.is-dugum-cek * {
  cursor: grabbing !important;
}

html.is-dugum-cek {
  -webkit-user-select: none;
  user-select: none;
}

.dugum-cek__ring {
  position: absolute;
  inset: 6px;
  border: 1.5px solid rgb(56 111 252 / .9);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgb(255 255 255 / .6), 0 4px 14px rgb(23 74 222 / .18);
  opacity: 0;
  transform: scale(.7);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}

.dugum-cek:hover .dugum-cek__ring {
  opacity: .9;
  transform: scale(1);
}

.dugum-cek.is-dragging .dugum-cek__ring {
  opacity: 1;
  transform: scale(.78);
}

.dugum-cek.is-hint .dugum-cek__ring {
  animation: dugum-cek-pulse 1.1s ease-out 2;
}

.dugum-cek__label {
  position: absolute;
  left: calc(100% + 2px);
  top: 50%;
  padding: 6px 11px;
  border: 1px solid #d2def4;
  border-radius: var(--radius-pill, 999px);
  background: rgb(255 255 255 / .95);
  box-shadow: 0 8px 25px rgb(27 62 124 / .07);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .06em;
  line-height: 1.2;
  white-space: nowrap;
  color: #355082;
  opacity: 0;
  transform: translate(-4px, -50%);
  pointer-events: none;
}

.dugum-cek.is-hint .dugum-cek__label {
  animation: dugum-cek-label 2.6s ease both;
}

@keyframes dugum-cek-pulse {
  0% {
    opacity: 0;
    transform: scale(.55);
  }
  25% {
    opacity: .95;
  }
  100% {
    opacity: 0;
    transform: scale(1.7);
  }
}

@keyframes dugum-cek-label {
  0% {
    opacity: 0;
    transform: translate(-4px, -50%);
  }
  15%,
  80% {
    opacity: 1;
    transform: translate(0, -50%);
  }
  100% {
    opacity: 0;
    transform: translate(0, -50%);
  }
}

/* Güvence: JS açsa bile dokunmatik / dar ekran / hareket azaltma / baskıda yok. */
@media (hover: none), (pointer: coarse), (max-width: 800px), (prefers-reduced-motion: reduce), print {
  .dugum-cek {
    display: none !important;
  }
}

body[data-reduced="true"] .dugum-cek {
  display: none !important;
}

/* ==== wow/boncuk-dizisi.css ==== */
/* wow: boncuk-dizisi — "Boncuk dizisi" (#referanslar logo şeridi) · 27 Eylül 2026.
   scripts/wow/boncuk-dizisi.js şeride .bd sınıfı + svg.bd-svg (dizi ipi: path.bd-seg, düğümler circle.bd-tie /
   circle.bd-knot) ve her logoya span.bd-tag (ilişki etiketi) ekler.
   Durumlar: .bd-armed (ip ucu gelmeden: logolar soluk, ip yönünde geride) → .bd-play (bir kez: ip çizilir,
   logolar kademeli oturur; gecikmeler JS'ten --bd-delay/--bd-dur) → .bd-done (durağan, geçiş yok).
   Hareket azaltmada doğrudan .bd-done; CSS de ayrıca güvence verir. Yalnız transform/opacity/stroke-dashoffset.
   Mobilde (< 700 px) dizi ipi gizli: yalnız kademeli oturma + etiket (odakta). */

.reference-grid.bd {
  position: relative;
}

.reference-grid.bd > a {
  position: relative;
  z-index: 1;
}

/* ---- Dizi ipi ---- */
.bd-svg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  overflow: visible;
  pointer-events: none;
}

.bd-seg {
  fill: none;
  stroke-width: 1.8px;
  stroke-linecap: round;
  stroke-dasharray: 1 2;
  stroke-dashoffset: 1;
}

.bd-tie,
.bd-knot {
  fill: #2355d6;
  transform: scale(0);
  transform-box: fill-box;
  transform-origin: center;
}

.bd-tie {
  fill: #1d44c4;
}

/* ---- Hazır (ip ucu gelmeden): logolar soluk ve ip yönünde geride ---- */
.reference-grid.bd-armed > a {
  opacity: .28;
  transform: translateX(calc(var(--bd-dir, 1) * -18px));
}

.reference-grid.bd-armed > a:focus-visible {
  opacity: 1;
  transform: none;
}

/* ---- Oynat (bir kez) ---- */
.reference-grid.bd-play > a {
  opacity: 1;
  transform: none;
  transition:
    opacity .3s ease var(--bd-delay, 0ms),
    transform .56s cubic-bezier(.3, 1.5, .55, 1) var(--bd-delay, 0ms);
}

.reference-grid.bd-play .bd-seg {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset var(--bd-dur, 200ms) linear var(--bd-delay, 0ms);
}

.reference-grid.bd-play .bd-tie,
.reference-grid.bd-play .bd-knot {
  transform: none;
  transition: transform .36s cubic-bezier(.34, 1.56, .64, 1) var(--bd-delay, 0ms);
}

/* ---- Bitti / durağan ---- */
.reference-grid.bd-done .bd-seg {
  stroke-dashoffset: 0;
}

.reference-grid.bd-done .bd-tie,
.reference-grid.bd-done .bd-knot {
  transform: none;
}

/* ---- İlişki etiketi ---- */
.bd-tag {
  position: absolute;
  bottom: calc(100% - 3px);
  left: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 8px;
  border: 1px solid #d8e2f5;
  border-radius: var(--radius-pill, 100px);
  background: #fff;
  box-shadow: 0 8px 22px rgb(16 37 83 / .12);
  color: var(--ink, #102143);
  font-family: inherit;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .01em;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 4px);
  transition: opacity .16s ease, transform .2s ease, visibility 0s linear .2s;
}

/* Boncuk: ipin ucundaki ışığın küçük eşi */
.bd-tag::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 36%, #fff 0 20%, #386ffc 58%, #102e91 100%);
}

.bd-tag[data-align="start"] {
  left: 0;
  transform: translate(0, 4px);
}

.bd-tag[data-align="end"] {
  right: 0;
  left: auto;
  transform: translate(0, 4px);
}

.reference-grid.bd > a:focus-visible {
  z-index: 3;
}

.reference-grid.bd > a:focus-visible .bd-tag {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  transition: opacity .16s ease, transform .2s ease, visibility 0s;
}

.reference-grid.bd > a:focus-visible .bd-tag[data-align="start"],
.reference-grid.bd > a:focus-visible .bd-tag[data-align="end"] {
  transform: none;
}

/* Üstüne gelince yalnız ince imleçli cihazda (dokunmatikte etiket yok; klavye odağında var) */
@media (hover: hover) and (pointer: fine) {
  .reference-grid.bd > a:hover {
    z-index: 3;
  }

  .reference-grid.bd > a:hover .bd-tag {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition: opacity .16s ease, transform .2s ease, visibility 0s;
  }

  .reference-grid.bd > a:hover .bd-tag[data-align="start"],
  .reference-grid.bd > a:hover .bd-tag[data-align="end"] {
    transform: none;
  }
}

/* Mobil (< 700 px): logolar sık → ip aralarda tire gibi görünüyordu. Dizi ipi ve düğümler gizli;
   yalnız logoların kademeli oturması kalır (zamanlama JS'ten aynı). */
@media (max-width: 699px) {
  .bd-svg {
    display: none;
  }
}

@media (max-width: 580px) {
  .bd-tag {
    padding: 3px 8px 3px 6px;
    font-size: .68rem;
  }
}

/* ---- Hareket azaltma: logolar yerinde, ip çizili, geçiş yok (etiket yine görünür) ---- */
body[data-reduced="true"] .reference-grid.bd > a {
  opacity: 1;
  transform: none;
  transition: none;
}

body[data-reduced="true"] .reference-grid.bd .bd-seg {
  stroke-dashoffset: 0;
  transition: none;
}

body[data-reduced="true"] .reference-grid.bd .bd-tie,
body[data-reduced="true"] .reference-grid.bd .bd-knot {
  transform: none;
  transition: none;
}

body[data-reduced="true"] .bd-tag,
body[data-reduced="true"] .reference-grid.bd > a .bd-tag {
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .reference-grid.bd > a {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .reference-grid.bd .bd-seg {
    stroke-dashoffset: 0;
    transition: none;
  }

  .reference-grid.bd .bd-tie,
  .reference-grid.bd .bd-knot {
    transform: none;
    transition: none;
  }

  .bd-tag,
  .reference-grid.bd > a .bd-tag {
    transition: none;
  }
}

@media print {
  .bd-svg,
  .bd-tag {
    display: none;
  }

  .reference-grid.bd > a {
    opacity: 1;
    transform: none;
  }
}

/* ==== wow/boncuk-rehber.css ==== */
/* wow: boncuk-rehber — menüden bölüme geçişte ip boyunca önden giden rehber boncuk
   (scripts/wow/boncuk-rehber.js konumlar). Görünüm wow/bead.css'in kopyası: beyaz çekirdek + elektrik mavisi hale.
   Yolculukta ana boncuk html.wow-rehber-on ile gizli; devirde (.wow-rehber-devir) .22 sn'de geri gelir.
   Yalnız transform/opacity. Hareket azaltmada hiç görünmez. */

.wow-rehber,
.wow-rehber-iz,
.wow-rehber-halka {
  --bead-size: 18px;
  position: absolute;
  top: 0;
  left: 0;
  width: var(--bead-size);
  height: var(--bead-size);
  margin: calc(var(--bead-size) / -2) 0 0 calc(var(--bead-size) / -2);
  border-radius: 50%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  contain: layout style;
}

.wow-rehber.is-on,
.wow-rehber-iz.is-on,
.wow-rehber-halka.is-on {
  visibility: visible;
  will-change: transform, opacity;
}

.wow-rehber__core,
.wow-rehber__glow {
  position: absolute;
  inset: 0;
  border-radius: 50%;
}

.wow-rehber__core {
  background: radial-gradient(circle, #fff 0 35%, var(--electric, #2044ff) 70%);
  box-shadow:
    0 0 6px 2px rgba(255, 255, 255, .7),
    0 0 18px 6px rgba(32, 68, 255, .45),
    0 0 34px 12px rgba(32, 68, 255, .18);
}

.wow-rehber__glow {
  inset: -90%;
  background: radial-gradient(circle, rgba(127, 168, 255, .7) 0, rgba(32, 68, 255, .3) 36%, rgba(32, 68, 255, 0) 70%);
  opacity: .75;
  transform: scale(.9);
  transition: opacity .3s ease, transform .3s ease;
}

/* Yoldayken hale biraz daha dolgun (sabit; sonsuz animasyon yok) */
.wow-rehber.is-yolda .wow-rehber__glow {
  opacity: 1;
  transform: scale(1.08);
}

/* İz: boncuğun arkasında sönen ışık damlaları (hızla uzar, dururken toplanır) */
.wow-rehber-iz {
  background: radial-gradient(circle, rgba(255, 255, 255, .92) 0 20%, rgba(127, 168, 255, .78) 42%, rgba(32, 68, 255, 0) 72%);
}

/* Varış halkası: dış öğe JS ile konumlanır, iç halka WAAPI ile ölçeklenip söner (dönüşümler çakışmasın) */
.wow-rehber-halka > span {
  position: absolute;
  inset: -40%;
  border: 1.5px solid rgba(127, 168, 255, .95);
  border-radius: 50%;
  box-shadow:
    0 0 10px rgba(32, 68, 255, .45),
    inset 0 0 6px rgba(127, 168, 255, .5);
  opacity: 0;
}

.wow-rehber-halka.is-on {
  opacity: 1;
}

/* Ana boncuk (bead.js) yolculuk boyunca gizli; devirde yumuşakça geri gelir */
html.wow-rehber-on .wow-bead {
  opacity: 0 !important;
}

html.wow-rehber-devir .wow-bead {
  transition: opacity .22s linear;
}

@media (max-width: 699px) {
  .wow-rehber,
  .wow-rehber-iz,
  .wow-rehber-halka { --bead-size: 12px; }
  .wow-rehber__core {
    box-shadow:
      0 0 4px 1px rgba(255, 255, 255, .7),
      0 0 10px 3px rgba(32, 68, 255, .45),
      0 0 18px 6px rgba(32, 68, 255, .16);
  }
  .wow-rehber__glow { inset: -60%; }
}

body[data-reduced="true"] .wow-rehber,
body[data-reduced="true"] .wow-rehber-iz,
body[data-reduced="true"] .wow-rehber-halka {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .wow-rehber,
  .wow-rehber-iz,
  .wow-rehber-halka { display: none; }
}

@media print {
  .wow-rehber,
  .wow-rehber-iz,
  .wow-rehber-halka { display: none; }
}

/* ==== wow/tinlayan-ip.css ==== */
/* wow/tinlayan-ip.css — "Tınlayan ip" örtüsü (scripts/wow/tinlayan-ip.js).
   Örtü ayrı bir SVG'de: sayfa → #thread-stage > svg.tinlayan-svg--page (sayfa SVG'sinin hemen ardında, aynı
   koordinat); hero → .hero-inner > svg.tinlayan-svg--hero (.hero-cord ile aynı kutu). Örtü yolları sayfa ipinin
   katman sınıflarını (.cord-shadow/.cord-base/.cord-live/.cord-light) taşır: kalınlık, opaklık ve gölge kayması
   thread.css'ten gelir. Farklar:
   · gölge + soluk iz: kesik uç (butt) — özgün parçayı gizleyen clip-path tüpü de dik uçlu; ek yerinde yarı saydam
     katman iki kez boyanmaz (yuvarlak uç olsaydı ek yerinde koyu leke kalırdı).
   · parlak akış: kendi animasyonu yok; JS özgünün akış konumunu (stroke-dashoffset) her karede kopyalar.
   Örtü yalnız dalga sürerken (≈ 640 ms) dolu; boştayken SVG boş, hiçbir şey çizilmez. */

#thread-stage > .tinlayan-svg {
  position: absolute;
  top: 0;
  left: 0;
  overflow: visible;
  pointer-events: none;
}

.hero .hero-inner > .tinlayan-svg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1; /* .hero-cord ile aynı katman; DOM'da hemen ardında → üstünde */
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.tinlayan-svg path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#thread-stage .tinlayan-svg .cord-shadow,
#thread-stage .tinlayan-svg .cord-base,
.tinlayan-svg .cord-shadow,
.tinlayan-svg .cord-base {
  stroke-linecap: butt;
}

#thread-stage .tinlayan-svg .cord-light,
.tinlayan-svg .cord-light {
  animation: none;
}

@media print {
  .tinlayan-svg {
    display: none;
  }
}

/* ==== wow/sss-dugum.css ==== */
/* ==========================================================================
   wow/sss-dugum.css — açılır listelerde düğüm (WOW2, 27 Eylül 2026)
   SSS (.faq-list) ve hizmet (.service-list) satırlarında "+" yerine ip renginde düğüm; açıkken düz çizgi.
   Yol geçişini scripts/wow/sss-dugum.js çizer. Kurallar yalnız JS simgeyi eklediyse (.has-sss-dugum) geçerli:
   JS yoksa eski "+" göstergesi olduğu gibi kalır.
   ========================================================================== */

.sss-dugum-defs {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

.sss-dugum {
  display: block;
  width: 48px;
  height: 28px;
  pointer-events: none;
}

.sss-dugum svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform-origin: 50% 46%;
  transition: transform var(--dur-2) var(--ease);
}

.sss-dugum path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ipin katmanları (thread.css ile aynı dil: gölge · gradyan gövde · ince ışık) */
.sss-dugum .sss-dugum__golge {
  stroke: #234480;
  stroke-width: 2.6;
  opacity: .14;
  transform: translate(.5px, .9px);
}

.sss-dugum .sss-dugum__ip {
  stroke: url(#sss-dugum-ip);
  stroke-width: 2.3;
}

.sss-dugum .sss-dugum__isik {
  stroke: #a9c9ff;
  stroke-width: .7;
  opacity: .7;
}

/* üstten geçen parça: altındaki ipte zemin renginde boşluk */
.sss-dugum .sss-dugum__hale {
  stroke: var(--sss-dugum-zemin, #fff);
  stroke-width: 5.4;
  stroke-linecap: butt;
}

.sss-dugum .sss-dugum__ust {
  stroke-linecap: butt;
}

@media (hover: hover) {
  summary:hover > .sss-dugum svg {
    transform: scale(1.08);
  }
}

body[data-reduced="true"] .sss-dugum svg {
  transition: none;
}

/* Yüksek karşıtlık: gradyan ve ışık yerine sistem renkleri */
@media (forced-colors: active) {
  .sss-dugum .sss-dugum__ip {
    stroke: CanvasText;
  }

  .sss-dugum .sss-dugum__hale {
    stroke: Canvas;
  }

  .sss-dugum .sss-dugum__golge,
  .sss-dugum .sss-dugum__isik {
    display: none;
  }
}

/* --- İlk boyama (JS açık tarayıcı): "+" hiç görünmesin. Modül gelene kadar aynı yerde düğümün DURAĞAN hâli
   (CSS görseli; geometri modülden üretildi, kapalı = düğüm, açık = düz çizgi). Modül gelince satır içi SVG'ye geçilir;
   konum ve ölçü aynı, sıçrama yok. JS kapalıysa (scripting: none) ya da özellik desteklenmiyorsa eski "+" kalır. --- */
@media (scripting: enabled) {
  .faq-list,
  .service-list {
    --sss-dugum-knot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 28'%3E%3Cdefs%3E%3ClinearGradient id='g' gradientUnits='userSpaceOnUse' x1='3' y1='0' x2='45' y2='0'%3E%3Cstop stop-color='%23102e91'/%3E%3Cstop offset='.3' stop-color='%232f63f2'/%3E%3Cstop offset='.52' stop-color='%234f82ff'/%3E%3Cstop offset='.75' stop-color='%232355d6'/%3E%3Cstop offset='1' stop-color='%230f318c'/%3E%3C/linearGradient%3E%3Cpath id='k' d='M3.5 21.2L4.3 21.2Q5.2 21.2 6 21.3Q6.8 21.3 7.7 21.3Q8.5 21.4 9.3 21.4Q10.2 21.4 11 21.4Q11.8 21.4 12.7 21.4Q13.5 21.3 14.3 21.2Q15.1 21.1 15.9 20.9Q16.7 20.6 17.4 20.2Q18.1 19.7 18.5 19Q18.9 18.2 18.9 17.4Q18.9 16.6 18.9 15.7Q18.9 14.9 19 14.1Q19.1 13.3 19.3 12.5Q19.5 11.7 19.8 10.9Q20.2 10.1 20.6 9.4Q21 8.7 21.5 8Q22 7.3 22.5 6.7Q23.1 6.1 23.8 5.6Q24.4 5.1 25.1 4.6Q25.8 4.2 26.6 3.9Q27.4 3.6 28.2 3.4Q29 3.2 29.8 3.2Q30.7 3.2 31.5 3.4Q32.2 3.7 32.9 4.1Q33.6 4.6 34 5.3Q34.5 6 34.6 6.9Q34.7 7.7 34.5 8.5Q34.3 9.3 33.9 10Q33.5 10.8 33 11.4Q32.4 12 31.8 12.5Q31.1 13.1 30.4 13.5Q29.7 13.9 28.9 14.2Q28.1 14.5 27.3 14.7Q26.5 14.9 25.7 15Q24.8 15.1 24 15.1Q23.2 15.1 22.3 15Q21.5 14.9 20.7 14.7Q19.9 14.5 19.1 14.2Q18.4 13.9 17.6 13.5Q16.9 13.1 16.2 12.5Q15.6 12 15 11.4Q14.5 10.8 14.1 10Q13.7 9.3 13.5 8.5Q13.3 7.7 13.5 6.9Q13.6 6 14 5.3Q14.4 4.6 15.1 4.1Q15.8 3.7 16.6 3.4Q17.4 3.2 18.2 3.2Q19 3.2 19.8 3.4Q20.6 3.6 21.4 3.9Q22.2 4.2 22.9 4.6Q23.6 5.1 24.3 5.6Q24.9 6.1 25.5 6.7Q26 7.3 26.5 8Q27 8.7 27.4 9.4Q27.8 10.1 28.2 10.9Q28.5 11.7 28.7 12.5Q28.9 13.3 29 14.1Q29.2 14.9 29.1 15.7Q29.1 16.6 29.2 17.4Q29.2 18.2 29.5 19Q29.9 19.7 30.6 20.2Q31.3 20.6 32.1 20.9Q32.9 21.1 33.7 21.2Q34.5 21.3 35.3 21.4Q36.2 21.4 37 21.4Q37.8 21.4 38.7 21.4Q39.5 21.4 40.3 21.3Q41.2 21.3 42 21.3Q42.8 21.2 43.7 21.2L44.5 21.2'/%3E%3Cpath id='o' d='M17.4 20.2Q18.1 19.7 18.5 19Q18.9 18.2 18.9 17.4Q18.9 16.6 18.9 15.7Q18.9 14.9 19 14.1Q19.1 13.3 19.3 12.5Q19.5 11.7 19.8 10.9Q20.2 10.1 20.6 9.4Q21 8.7 21.5 8Q22 7.3 22.5 6.7M33.9 10Q33.5 10.8 33 11.4Q32.4 12 31.8 12.5Q31.1 13.1 30.4 13.5Q29.7 13.9 28.9 14.2Q28.1 14.5 27.3 14.7Q26.5 14.9 25.7 15Q24.8 15.1 24 15.1Q23.2 15.1 22.3 15Q21.5 14.9 20.7 14.7M18.2 3.2Q19 3.2 19.8 3.4Q20.6 3.6 21.4 3.9Q22.2 4.2 22.9 4.6Q23.6 5.1 24.3 5.6Q24.9 6.1 25.5 6.7Q26 7.3 26.5 8Q27 8.7 27.4 9.4Q27.8 10.1 28.2 10.9Q28.5 11.7 28.7 12.5'/%3E%3Cmask id='m' maskUnits='userSpaceOnUse' x='-2' y='-2' width='52' height='32'%3E%3Crect x='-2' y='-2' width='52' height='32' fill='%23fff'/%3E%3Cuse href='%23o' fill='none' stroke='%23000' stroke-width='5.4'/%3E%3C/mask%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg mask='url(%23m)'%3E%3Cuse href='%23k' stroke='%23234480' stroke-width='2.6' opacity='.14' transform='translate(.5 .9)'/%3E%3Cuse href='%23k' stroke='url(%23g)' stroke-width='2.3'/%3E%3Cuse href='%23k' stroke='%23a9c9ff' stroke-width='.7' opacity='.7'/%3E%3C/g%3E%3Cg stroke-linecap='butt'%3E%3Cuse href='%23o' stroke='url(%23g)' stroke-width='2.3'/%3E%3Cuse href='%23o' stroke='%23a9c9ff' stroke-width='.7' opacity='.7'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    --sss-dugum-line: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 28'%3E%3Cdefs%3E%3ClinearGradient id='g' gradientUnits='userSpaceOnUse' x1='3' y1='0' x2='45' y2='0'%3E%3Cstop stop-color='%23102e91'/%3E%3Cstop offset='.3' stop-color='%232f63f2'/%3E%3Cstop offset='.52' stop-color='%234f82ff'/%3E%3Cstop offset='.75' stop-color='%232355d6'/%3E%3Cstop offset='1' stop-color='%230f318c'/%3E%3C/linearGradient%3E%3Cpath id='k' d='M5 13H43'/%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cuse href='%23k' stroke='%23234480' stroke-width='2.6' opacity='.14' transform='translate(.5 .9)'/%3E%3Cuse href='%23k' stroke='url(%23g)' stroke-width='2.3'/%3E%3Cuse href='%23k' stroke='%23a9c9ff' stroke-width='.7' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
  }

  .faq .faq-list > details > summary {
    padding-right: 64px;
  }

  .faq-list > details > summary::after,
  .faq-list > details[open] > summary::after {
    content: "";
    width: 48px;
    height: 28px;
    background: var(--sss-dugum-knot) center / 100% 100% no-repeat;
  }

  .faq-list > details[open] > summary::after {
    background-image: var(--sss-dugum-line);
  }

  .service-list > details > summary {
    grid-template-columns: 55px 1fr 48px;
  }

  .service-list > details > summary > b,
  .service-list > details[open] > summary > b {
    width: 48px;
    height: 28px;
    font-size: 0;
    color: transparent;
    transform: none;
    background: var(--sss-dugum-knot) center / 100% 100% no-repeat;
  }

  .service-list > details[open] > summary > b {
    background-image: var(--sss-dugum-line);
  }
}

@media (scripting: enabled) and (max-width: 580px) {
  .faq .faq-list > details > summary {
    padding-right: 54px;
  }

  .faq .faq-list > details > summary::after,
  .faq .faq-list > details[open] > summary::after {
    top: 18px;
    width: 42px;
    height: 24.5px;
  }

  .service-list > details > summary {
    grid-template-columns: 2em minmax(0, 1fr) 42px;
  }

  .service-list > details > summary > b,
  .service-list > details[open] > summary > b {
    width: 42px;
    height: 24.5px;
  }
}

/* --- SSS: eski ::after "+"/"−" gizlenir, düğüm aynı yerde (ilk satırın ortası) --- */
.faq-list.has-sss-dugum {
  --sss-dugum-zemin: #f0f3f9;
}

.faq-list.has-sss-dugum > details > summary::after,
.faq-list.has-sss-dugum > details[open] > summary::after {
  content: none;
  display: none;
}

.faq-list.has-sss-dugum > details > summary {
  padding-right: 64px;
}

.faq-list.has-sss-dugum .sss-dugum {
  position: absolute;
  top: 21px;
  right: 0;
}

.v12-steps-faq .faq-list.has-sss-dugum .sss-dugum {
  top: 17px;
}

/* --- Hizmet listesi: <b>+</b> gizlenir, düğüm üçüncü sütunda --- */
.service-list.has-sss-dugum {
  --sss-dugum-zemin: #fff;
}

.service-list.has-sss-dugum > details > summary {
  grid-template-columns: 55px 1fr 48px;
}

.service-list.has-sss-dugum > details > summary > b {
  display: none;
}

@media (max-width: 580px) {
  .sss-dugum {
    width: 42px;
    height: 24.5px;
  }

  .faq-list.has-sss-dugum > details > summary {
    padding-right: 54px;
  }

  .faq-list.has-sss-dugum .sss-dugum,
  .v12-steps-faq .faq-list.has-sss-dugum .sss-dugum {
    top: 18px;
  }

  .service-list.has-sss-dugum > details > summary {
    grid-template-columns: 2em minmax(0, 1fr) 42px;
  }
}

/* ==== wow/logo-nefes.css ==== */
/* wow/logo-nefes.css — "Nefes alan logo" (WOW2, 27 Eylül 2026)
   Başlıktaki iki köşe işareti (sections/_header.mjs brandMark: 1. path sol üst, 2. path sağ alt köşe).
   · Kaydırma sırasında (html.is-scrolling): her köşe çapraz yönde dışa --nefes-px ekran pikseli kayar
     → köşeler yatayda/dikeyde 2 px, çaprazda ≈ 2,8 px aralanır ("çerçeve açılır"). Açılış 200 ms, sağ alt köşe 40 ms geriden.
   · Sınıf kalkınca 300 ms'de kapanır (tek easing: var(--ease)).
   · Durağanken dönüşüm YOK (transform: none) → logo birebir aynı. will-change yok (katman / kenar yumuşatma değişmesin).
   · SVG içinde px = kullanıcı birimi; --nefes-k (JS: viewBox / çizilen genişlik) ekran pikseline çevirir. JS yoksa 320/35.
   · Hareket azaltma (body[data-reduced=true] ya da sistem ayarı) ve baskıda kural hiç uygulanmaz.
   · Başlık yüksekliği / yerleşim etkilenmez: yalnız SVG içindeki path'lere transform. */
@media screen and (prefers-reduced-motion: no-preference) {
  .site-header .brand svg[data-nefes] {
    --nefes-px: 1;
  }

  .site-header .brand svg[data-nefes] path {
    transition: transform 300ms var(--ease);
  }

  html.is-scrolling body:not([data-reduced="true"]) .site-header .brand svg[data-nefes] path {
    --nefes-d: calc(var(--nefes-px) * var(--nefes-k, 9.1429) * 1px);
    transition: transform var(--dur-1) var(--ease);
  }

  html.is-scrolling body:not([data-reduced="true"]) .site-header .brand svg[data-nefes] path:nth-of-type(1) {
    transform: translate(calc(var(--nefes-d) * -1), calc(var(--nefes-d) * -1));
  }

  html.is-scrolling body:not([data-reduced="true"]) .site-header .brand svg[data-nefes] path:nth-of-type(2) {
    transform: translate(var(--nefes-d), var(--nefes-d));
    transition-delay: 40ms;
  }
}

/* ==== motion.css ==== */
/* ==========================================================================
   Hareket: açığa çıkma (reveal) + hareket azaltma
   · Reveal JS'te (scripts/ui/reveal.js) yalnız opacity + transform ile WAAPI; filter:blur YOK ve
     animasyon bitince öğede kalıcı stil kalmaz. CSS'te reveal için başlangıç gizlemesi yapılmaz
     (JS yoksa içerik her zaman görünür).
   · Tek hareket kontrolü: body[data-reduced="true"] (düğme) ve prefers-reduced-motion aynı sonucu verir.
   · Tek easing: var(--ease) = cubic-bezier(.2,.7,.2,1) (tokens.css).
   ========================================================================== */

/* --- Hareket düğmesi (body[data-reduced=true]) --- */
body[data-reduced="true"] *,
body[data-reduced="true"] *::before,
body[data-reduced="true"] *::after {
  animation: none !important;
  transition: none !important;
}

body[data-reduced="true"] #thread-stage {
  opacity: .6;
}

body[data-reduced="true"] .project-feature,
body[data-reduced="true"] .studio-visual,
body[data-reduced="true"] .automation-art {
  transform: none !important;
}

body[data-reduced="true"] .project-cover:hover img,
body[data-reduced="true"] .video-cover:hover > img,
body[data-reduced="true"] .button:hover,
body[data-reduced="true"] .choice:hover b,
body[data-reduced="true"] .tool-grid article:hover {
  transform: none;
}

body[data-reduced="true"] .distribution-flow .content-origin {
  transform: rotate(-3deg) !important;
}

body[data-reduced="true"] .distribution-flow .channel {
  transform: none !important;
}

/* --- İşletim sistemi tercihi --- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }

  .project-cover:hover img,
  .video-cover:hover > img,
  .button:hover,
  .choice:hover b,
  .tool-grid article:hover {
    transform: none;
  }

  .project-feature,
  .studio-visual,
  .automation-art {
    transform: none !important;
  }

  .distribution-flow .content-origin {
    transform: rotate(-3deg) !important;
  }

  .distribution-flow .channel {
    transform: none !important;
  }

  .distribution-flow .flow-packets,
  .distribution-flow .flow-head {
    display: none !important;
  }

  .distribution-flow .flow-route-live,
  .distribution-flow .flow-route-aura,
  .distribution-flow .flow-entry-live {
    stroke-dashoffset: 0 !important;
  }

  .logo-chapter .logo-fallback {
    filter: none;
  }

  .series-gallery-scroller {
    scroll-behavior: auto;
  }
}

/* ==== wow9.css ==== */
/* WOW 9 — clearer choices, readable evidence, compact mobile rhythm. */
.hero-actions { gap:12px; flex-wrap:wrap; }
.hero-actions .button { font-size:.94rem; padding-inline:20px; }
.hero-next { display:flex; gap:10px 24px; flex-wrap:wrap; margin-top:12px; }
.hero-next .text-link { font-size:.82rem; min-height:44px; }
.hero :is(.lead,.hero-identity,.hero-place,.hero-actions,.hero-motion) { animation-delay:0s; animation-duration:.35s; }
.v12-web { grid-template-columns:minmax(0,1fr); gap:24px; }
.v12-works .project-cover img { aspect-ratio:16/9; object-fit:contain; background:#fff; }
.v12-works .project-feature { min-width:0; }
.case-facts { margin:20px 0 0; }
.case-facts > div { display:grid; grid-template-columns:86px minmax(0,1fr); gap:12px; padding:11px 0; border-top:1px solid var(--line); }
.case-facts dt { font-size:.75rem; font-weight:700; color:var(--blue); }
.case-facts dd { margin:0; font-size:.9rem; line-height:1.6; color:var(--muted-strong); }
.case-evidence { margin-top:12px; font-size:.75rem; line-height:1.6; color:var(--muted); }
.case-open { min-height:44px; margin-top:8px; }
.work-notes { margin-top:20px; border-block:1px solid var(--line-blue); }
.work-notes + .work-notes { margin-top:0; border-top:0; }
.work-notes > summary { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:64px; padding:16px 4px; font-weight:600; color:var(--ink); cursor:pointer; }
.work-notes > summary::after { content:'+'; flex:none; color:var(--blue); font-size:1.5rem; }
.work-notes[open] > summary::after { content:'−'; }
.work-notes > summary::-webkit-details-marker { display:none; }
.work-notes > :not(summary) { margin-bottom:24px; }
.work-notes .v12-cases, .work-notes .v12-tools { margin-top:12px; }
.web-notes { margin-top:0; }
.web-notes .v12-web-side { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mobile-swipe { display:none; }
.package-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--line-blue); margin-bottom:12px; }
.package-nav a { padding:18px 20px; min-height:76px; font-size:.8rem; color:var(--muted-strong); }
.package-nav a + a { border-left:1px solid var(--line-blue); }
.package-nav strong { display:block; margin-top:5px; font-size:1rem; color:var(--blue); }
.package-nav a:hover { background:var(--ice); }
.package-tax { margin-bottom:22px; font-size:.8rem; color:var(--muted); }
.terms-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 40px; padding:12px 4px; }
.terms-grid dt { font-size:1rem; font-weight:650; margin-bottom:8px; }
.terms-grid dd { margin:0; font-size:.9rem; line-height:1.65; color:var(--muted); }
.reach-example { margin-top:16px; max-width:550px; }
.reach-example summary { min-height:44px; display:flex; align-items:center; font-size:.85rem; font-weight:600; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.reach-example p { font-size:.85rem; line-height:1.6; }
.footer-address { max-width:390px; }
.footer-address > p:not(.footer-place), .footer-address address { font-size:.78rem; line-height:1.7; color:var(--muted); font-style:normal; }
.footer-address > p:not(.footer-place) { margin-top:8px; }
.optional-reply { margin-top:12px; }
.optional-reply > summary { min-height:44px; display:flex; align-items:center; font-size:.8rem; cursor:pointer; color:var(--blue); }
.series-expand > summary { display:flex; align-items:center; min-height:48px; padding:10px 0; font-size:.9rem; cursor:pointer; color:#fff; text-decoration:underline; text-underline-offset:5px; }
.series-expand[open] > summary { margin-bottom:16px; }
#contact-dialog > .dialog-top, #project-dialog > .dialog-top { position:sticky; top:-32px; z-index:5; background:#fff; padding-block:10px; margin-top:-10px; border-bottom:1px solid var(--line); }
#contact-hint { line-height:1.6; }
.service-list summary .service-logo { width:32px; height:32px; }
:is(button,a,input,textarea,summary):focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
:is(.video-section,.distribution,.about) :is(button,a,summary):focus-visible { outline-color:#fff; }
@media(min-width:801px) {
  .v12-works .project-info h3 { font-size:2rem; }
  .v12-works .v12-web-side { gap:20px; }
}
@media(max-width:800px) {
  .hero { height:auto !important; min-height:0 !important; }
  .hero .hero-inner { position:relative !important; top:auto !important; min-height:0 !important; padding-bottom:38px; }
  .hero :is(.hero-line,.hero-copy,.hero-portrait) { transform:none !important; opacity:1 !important; }
  .hero .hero-line > span { animation-duration:.35s; animation-delay:0s; }
  .scene-section:not(.hero) { padding-block:46px; }
  .section-intro { margin-bottom:28px; }
  .section-intro > p:not(.eyebrow) { margin-top:16px; }
  .web-notes .v12-web-side { grid-template-columns:1fr; }
  .terms-grid { grid-template-columns:1fr; gap:22px; }
  .work-notes > summary { font-size:.9rem; }
  .hero-next { gap:4px 16px; }
  .price-card .fine-print { font-size:.8rem; }
}
@media(max-width:580px) {
  .hero .hero-inner { padding-top:8px; }
  .hero .hero-portrait { width:190px; height:auto; min-height:0; margin:0 auto 8px; padding-top:10px; }
  .hero .hero-portrait > img { max-height:194px; object-fit:contain; }
  .hero .hero-portrait figcaption { font-size:.7rem; padding:7px 10px; }
  .hero .eyebrow { font-size:.64rem; margin-bottom:12px; }
  .hero .lead { font-size:.94rem; line-height:1.55; margin-top:16px; }
  .hero-identity { font-size:.74rem; line-height:1.6; margin-top:12px; }
  .hero-place { font-size:.72rem; margin-top:4px; }
  .hero-actions { display:grid; grid-template-columns:1fr; margin-top:16px; gap:8px; }
  .hero-actions .button { width:100%; min-height:48px; padding:12px; font-size:.92rem; }
  .hero-next { justify-content:space-between; gap:0 10px; margin-top:4px; }
  .hero-next .text-link { font-size:.72rem; }
  .hero-motion { margin-top:6px; }
  .reference-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 16px; padding:14px 6px; }
  .reference-grid img { max-width:100px; height:28px; }
  .reference-grid .reference-icon { width:24px; height:24px; }
  .reference-wordmark { font-size:.85rem; }
  .choices .section-intro h2 { font-size:2.8rem; }
  .choice { min-height:0; padding:24px; }
  .choice h3 { font-size:2.25rem; margin-top:14px; }
  .choice p { margin-block:14px; font-size:.88rem; }
  .choice-link { padding-top:12px; }
  .distribution .distribution-inner { padding-block:20px; }
  .distribution .content-origin { min-height:150px; margin-bottom:72px; }
  .distribution .channel { min-height:96px; padding:12px 6px; }
  .distribution .channels { gap:32px 18px; }
  .distribution .channel-format { font-size:.7rem; }
  .v12-works .featured-grid { gap:16px; }
  .v12-works .project-feature { flex-basis:91%; }
  .case-facts > div { grid-template-columns:64px minmax(0,1fr); gap:8px; padding:10px 0; }
  .case-facts dd { font-size:.82rem; }
  .case-evidence { font-size:.7rem; }
  .v12-video { margin-top:32px; padding-block:36px; }
  .v12-works .video-section .video-grid { display:flex; overflow-x:auto; gap:16px; padding:4px 0 18px; scroll-snap-type:x mandatory; scrollbar-width:thin; }
  .v12-works .video-grid article { flex:0 0 78%; min-width:0; margin:0 !important; scroll-snap-align:start; }
  .v12-works .video-cover > img { aspect-ratio:4/5; }
  .mobile-swipe { display:block; margin-top:12px; font-size:.8rem; color:var(--on-dark-muted); }
  .package-nav { grid-template-columns:1fr; }
  .package-nav a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; padding:12px 4px; }
  .package-nav a + a { border-left:0; border-top:1px solid var(--line); }
  .package-nav strong { margin:0; font-size:.9rem; }
  .price-card { padding:24px 20px; }
  .price-list { margin-block:18px; padding-top:16px; }
  .price-list small { font-size:.8rem; }
  .curriculum { margin-top:28px; gap:16px; }
  .curriculum article { padding:12px 4px; }
  .curriculum h3 { margin-block:10px; }
  .deliverables { padding-block:24px; gap:20px; margin-block:26px; }
  .service-list summary { column-gap:8px; }
  .service-list > details > summary { padding-block:16px; row-gap:6px; }
  .service-list summary h3 { font-size:1.12rem; }
  .service-list summary .service-logos { gap:3px; }
  .service-list summary .service-logo { width:23px; height:26px; }
  .service-list summary .service-logo svg { width:20px; height:20px; }
  .has-mobile-bar .site-header > .button.compact { display:none; }
  .footer-contact { gap:20px; }
  .footer-address { max-width:100%; }
  #contact-dialog { padding:20px; }
  #contact-dialog > .dialog-top { top:-20px; }
  #project-dialog > .dialog-top { top:-22px; }
  #contact-dialog h2 { font-size:2.6rem; }
  #contact-form fieldset { gap:8px; }
  #contact-form :is(input[type=text],textarea) { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero :is(.hero-line > span,.hero-actions,.hero-portrait figcaption) { animation:none; }
}

/* ==== wow9-finish.css ==== */
/* Final pass: progressive details with readable, full no-JS fallback. */
.price-card[hidden] { display:none!important; }
.choices-compact h2 { max-width:900px; font-size:clamp(2.4rem,4.5vw,4.5rem); }
.route-rows { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin-top:32px; }
.route-rows > a { display:grid; grid-template-columns:1fr auto; gap:10px; padding-block:24px; border-block:1px solid var(--line-blue); }
.route-rows strong { font-size:1.4rem; }
.route-rows span { grid-column:1; color:var(--muted); font-size:.94rem; }
.route-rows b { grid-column:2; grid-row:1/3; align-self:center; color:var(--blue); font-size:1.8rem; }
.service-shortcuts { display:flex; flex-wrap:wrap; gap:8px 24px; }
.service-shortcuts a { min-height:44px; display:flex; align-items:center; font-size:.9rem; color:var(--blue); border-bottom:1px solid var(--line-blue); }
.service-catalog { margin-top:24px; }
.case-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:28px 0 0; }
.case-result { border-top:2px solid var(--blue); padding-top:18px; }
.case-result h3 { font-size:1.4rem; margin-bottom:10px; }
.case-result p { color:var(--muted); font-size:.92rem; line-height:1.6; }
.case-result .text-link { margin-top:8px; min-height:44px; }
.social-proof-metrics { display:grid; grid-template-columns:1fr 1.4fr; gap:20px; margin:22px 0 16px; }
.social-proof-metrics > div { display:flex; flex-direction:column-reverse; gap:8px; }
.social-proof-metrics dt { color:var(--muted); font-size:.85rem; }
.social-proof-metrics dd { margin:0; color:var(--blue); font-family:var(--display); font-size:clamp(3rem,5vw,4rem); font-weight:700; line-height:1; }
.case-result p.fine-print { font-size:.8rem; }
.channel-result { margin-top:20px; padding-top:18px; border-top:1px solid var(--line-blue); }
.channel-result .channel-result-value { margin:10px 0; color:var(--blue); }
.channel-result-value strong { font-family:var(--display); font-size:2.8rem; line-height:1; margin-right:8px; }
.other-social-work { font-size:.8rem; line-height:1.7; color:var(--muted); margin:24px 0 0; }
.media-transcript { margin-top:16px; border-block:1px solid var(--line); }
.media-transcript summary { display:flex; align-items:center; min-height:48px; cursor:pointer; color:var(--blue); font-size:.9rem; }
.media-transcript p { font-size:.9rem; line-height:1.65; margin:12px 0; }
.media-transcript ol { margin:12px 0 18px; padding-left:24px; font-size:.9rem; line-height:1.65; }
.media-transcript li+li { margin-top:8px; }
.mail-evidence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:24px 0; }
.v12-works .email-example { display:block; }
.media-transcript h3 { font-family:var(--sans); font-size:.85rem; margin:18px 0 0; }
.mail-evidence-grid > div { display:flex; flex-direction:column; gap:8px; border-top:1px solid var(--line-blue); padding-top:16px; }
.mail-evidence-grid strong { font-family:var(--display); font-size:clamp(2.7rem,5vw,4rem); line-height:1; color:var(--blue); }
.mail-evidence-grid span:not(.eyebrow), .mail-evidence-grid small { font-size:.8rem; line-height:1.5; }
.evidence-method summary { min-height:44px; padding:12px 0; cursor:pointer; font-size:.85rem; color:var(--blue); }
.evidence-method p { font-size:.83rem; line-height:1.7; }
@media print { .price-card[hidden] { display:block!important; } }
@media(min-width:801px) and (max-width:1100px) { .case-results { grid-template-columns:repeat(2,minmax(0,1fr)); } #mail-calismalari { grid-column:1/-1; } }
@media(max-width:800px) {
  .package-nav.is-tabbed { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; border:0; align-items:stretch; margin-bottom:14px; }
  .package-nav.is-tabbed a { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; text-align:center; padding:14px 8px; min-height:88px; border:1px solid var(--line-blue); border-radius:10px; font-size:.78rem; line-height:1.4; background:white; }
  .package-nav.is-tabbed strong { font-size:.8rem; }
  .package-nav.is-tabbed [aria-selected=true] { border:2px solid var(--blue); background:var(--ice); color:var(--blue); padding:13px 7px; }
  .pricing .price-grid { display:block; }
  .pricing .price-card:not([hidden]) + .price-card:not([hidden]) { margin-top:22px; }
  .pricing .price-card { transform:none; }
  .case-results { grid-template-columns:1fr; gap:22px; }
  .about .about-portrait { max-width:200px; margin:0 auto; }
  .about .about-layout { gap:28px; }
}
@media(max-width:580px) {
  .choices-compact h2 { font-size:2.6rem; }
  .route-rows { grid-template-columns:1fr; gap:0; margin-top:20px; }
  .route-rows > a { padding-block:18px; }
  .route-rows > a + a { border-top:0; }
  .route-rows strong { font-size:1.12rem; }
  .route-rows span { font-size:.86rem; }
  .service-catalog > summary { min-height:60px; }
  .service-shortcuts { gap:8px 18px; }
  .service-shortcuts a { font-size:.82rem; }
  .about .identity-stats { gap:18px 22px; }
  .about .identity-value { font-size:2.9rem; }
  .about .identity-label { font-size:.8rem; }
  .about .about-lead { font-size:.95rem; }
  .case-result h3 { font-size:1.25rem; }
}

/* ==== wow10.css ==== */
/* WOW 10 · gerçek proje görselleri ve seçilebilir sonuç vitrini. */
.hero.scene-section{background:radial-gradient(ellipse at 85% 45%,#e1e9ff 0,transparent 51%),var(--paper)}
.hero .hero-inner{grid-template-columns:1.35fr 1fr;gap:24px;align-content:center;padding-top:36px;padding-bottom:25px}
.hero h1{font-size:clamp(4.4rem,8.1vw,8.5rem)}
.hero .lead{max-width:580px}
.hero .hero-portrait{height:clamp(480px,64svh,620px);margin-top:20px}
.hero .hero-portrait>img{height:83%;transform:translateX(25px)}
.hero-portrait .w10-hero-word{position:absolute;top:-20px;left:-3%;font-family:var(--display);font-weight:700;font-size:clamp(6rem,12vw,13rem);line-height:1;color:transparent;-webkit-text-stroke:1px #b6c8f7;z-index:0;letter-spacing:-.025em;pointer-events:none}
.hero-portrait .orbit-tag.one{top:23%;left:0;background:var(--blue);color:white;border:0;padding:12px 18px;transform:rotate(-6deg);box-shadow:0 12px 28px #2052eb26}
.hero-portrait figcaption{right:0;bottom:-10px;border-radius:3px;border-left:3px solid var(--blue)}
.w10-hero-preview{position:absolute;left:-22px;bottom:82px;width:212px;z-index:4;border:1px solid #d2dcf2;border-radius:9px;background:#fff;padding:0;text-align:left;box-shadow:0 24px 45px -15px #19396d66;transform:rotate(-8deg);transition:transform .35s var(--ease);overflow:hidden}
.w10-hero-preview:hover,.w10-hero-preview:focus-visible{transform:rotate(-2deg) translateY(-8px)}
.w10-hero-preview img{display:block;width:100%;height:auto;aspect-ratio:1265/712;object-fit:cover}
.w10-preview-top{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-size:9px;font-weight:700;letter-spacing:.07em;color:var(--blue)}
.w10-preview-bottom{display:block;padding:10px 12px;font-size:10px;color:var(--ink)}
.w10-hero-strip{grid-column:1/-1;display:flex;align-items:center;gap:26px;border-top:1px solid #cdd9f0;margin-top:24px;padding:18px 0 0;font-family:var(--display);font-size:1.4rem;font-weight:600;letter-spacing:.02em}
.w10-hero-strip>span,.w10-hero-strip>a{display:flex;gap:30px;align-items:center;white-space:nowrap}
.w10-hero-strip i{color:var(--blue);font-style:normal}
.w10-hero-strip a{color:var(--blue)}
.w10-hero-strip small{margin-left:auto;font:600 .65rem/1.4 var(--sans);letter-spacing:.12em;color:var(--muted)}
.w10-results{padding:100px 0 35px;scroll-margin-top:90px}
.w10-results-heading{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:35px}
.w10-results-heading h2{font-family:var(--display);font-size:clamp(3.3rem,6.4vw,6.5rem);line-height:1.01;letter-spacing:-.02em;text-transform:none;margin:12px 0 0}
.w10-results-heading h2 em{font-style:normal;color:var(--blue)}
.w10-results-heading>p{max-width:290px;color:var(--muted);line-height:1.6;margin-bottom:6px}
.w10-heading-aside{max-width:290px;color:var(--muted);line-height:1.6;margin-bottom:6px}
.w10-motion{margin-top:8px;font-size:.75rem;min-height:40px}
.w10-heading-aside .w10-motion::before{width:18px;height:18px}
.w10-result-tabs{display:none}
.w10-results[data-tabs-ready] .w10-result-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-blue);border-bottom:1px solid var(--line-blue);margin-bottom:24px}
.w10-result-tabs button{display:flex;gap:12px;align-items:center;min-width:0;min-height:68px;padding:16px 18px;text-align:left;background:transparent;border:0;color:var(--muted);font:600 1.03rem var(--sans);position:relative;transition:background .25s,color .25s}
.w10-result-tabs button+button{border-left:1px solid var(--line-blue)}
.w10-result-tabs button[aria-selected=true]{background:var(--blue);color:#fff}
.w10-result-tabs button:hover:not([aria-selected=true]){background:var(--ice);color:var(--blue)}
.w10-tab-no{font-size:.65rem;opacity:.8;font-weight:400}
.w10-tab-arrow{margin-left:auto;font-size:1.35rem}
.w10-tab-progress{position:absolute;inset:auto 0 0;height:3px;background:#c9eaaa;transform:scaleX(0);transform-origin:left;pointer-events:none;visibility:hidden}
.w10-results[data-rotating=true] [aria-selected=true] .w10-tab-progress{visibility:visible}
.w10-result-stage{position:relative}
.w10-result-panel{display:grid;grid-template-columns:.8fr 1.15fr;min-width:0;background:#fff;border:1px solid #dbe3f4;border-radius:3px;overflow:hidden;margin-bottom:28px}
.w10-result-panel[hidden]{display:none!important}
.w10-result-panel:not([hidden]){--w10-visual-shift:0px}
.w10-result-visual{position:relative;min-height:680px;overflow:hidden;background:#19212a;color:white;isolation:isolate}
.w10-result-visual::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff18;pointer-events:none;z-index:2}
.w10-poster{display:block;position:relative;width:100%;height:100%;min-height:680px;background:#101f42;border:0;border-radius:0;padding:0;text-align:left;color:white;overflow:hidden}
.w10-poster>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.035) translateY(var(--w10-visual-shift));transition:filter .3s}
.w10-preview-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .3s}
.w10-playing .w10-preview-video{opacity:1}
.w10-poster::after{z-index:1}
.w10-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#061b3510 30%,#071725ad 100%);pointer-events:none}
.w10-play{position:absolute;top:25px;right:25px;z-index:2;display:grid;place-items:center;width:58px;height:58px;border:1px solid #ffffffae;background:#ffffff1a;backdrop-filter:blur(8px);border-radius:50%;font:500 2rem var(--sans);transition:transform .3s,background .3s}
.w10-poster:hover .w10-play,.w10-poster:focus-visible .w10-play{transform:rotate(45deg);background:var(--blue)}
.w10-poster-label{position:absolute;bottom:62px;left:32px;right:24px;z-index:2;font:600 clamp(2.8rem,4vw,4.3rem)/1.02 var(--display);letter-spacing:-.015em;text-shadow:0 2px 14px #0006}
.w10-poster-label small{display:block;font:600 .64rem/1.6 var(--sans);letter-spacing:.12em;margin-bottom:12px}
.w10-nutri .w10-poster{background:#061019}
.w10-nutri .w10-poster>img{transform:none;object-position:center}
.w10-nutri .w10-preview-video{object-position:center}
.w10-visual-index{position:absolute;bottom:24px;left:32px;z-index:3;font-size:.68rem;letter-spacing:.14em;color:#fff}
.w10-result-copy{padding:40px 42px;align-self:center;min-width:0}
.w10-result-copy h3{font:600 clamp(2.5rem,3.6vw,3.8rem)/1.04 var(--display);margin:14px 0 18px;letter-spacing:-.01em}
.w10-result-description{color:var(--muted);font-size:.95rem;line-height:1.6;max-width:420px;margin:0 0 18px}
.w10-big-result{margin:16px 0 0}
.w10-big-result>strong{display:block;font:600 clamp(5rem,8vw,8.6rem)/.95 var(--display);letter-spacing:-.025em;color:var(--blue);font-variant-numeric:tabular-nums}
.w10-big-result>span{display:block;font-size:.97rem;font-weight:600;color:var(--ink);margin-top:10px}
.w10-period{font-size:.73rem;color:var(--muted);line-height:1.6;margin-top:10px}
.w10-channels{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:28px;padding-top:22px;gap:20px}
.w10-channel{display:flex;flex-direction:column;align-items:start;gap:4px;min-width:0}
.w10-channel>span:first-child{font-weight:700;font-size:.76rem}
.w10-channel strong{font:600 2.75rem/1.15 var(--display);color:var(--ink);letter-spacing:-.015em}
.w10-channel>span{font-size:.73rem;line-height:1.5}
.w10-channel small{font-size:.66rem;color:var(--muted);line-height:1.6}
.w10-source{margin-top:22px;color:var(--muted);font-size:.73rem;line-height:1.7;border-top:1px solid var(--line);padding-top:12px}
.w10-source summary{min-height:32px;cursor:pointer;color:var(--muted-strong)}
.w10-source p{padding-bottom:10px}
.w10-result-link{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.81rem;font-weight:600;margin-top:16px;color:var(--blue);padding:12px 0;border-bottom:1px solid var(--line-blue)}
.w10-result-link>span{font-size:1.6rem;line-height:1}
.w10-results-footnote{color:var(--muted);font-size:.75rem;line-height:1.7;max-width:720px;margin-top:18px}
.w10-nutri{background:#123b2e}
.w10-nutri-art{height:100%;position:relative;min-height:680px;padding:40px 35px;display:flex;flex-direction:column;align-items:start;justify-content:center;background:radial-gradient(circle at 110% 80%,#c8dd933b,transparent 60%)}
.w10-nutri-art>img{width:145px;height:80px;object-fit:contain;background:white;padding:12px;border-radius:3px;z-index:1;margin-bottom:48px}
.w10-nutri-art p{position:relative;z-index:1;font:500 clamp(3.8rem,5.5vw,6.8rem)/.98 var(--display);letter-spacing:-.015em;color:#fff}
.w10-nutri-art p em{font-style:normal;color:#c9eaaa}
.w10-art-note{position:relative;z-index:1;font-size:.65rem;letter-spacing:.11em;margin-top:35px;color:#d5ebd8}
.w10-orbit{position:absolute;width:550px;height:550px;border:1px solid #bfe6c53d;border-radius:50%;top:110px;left:80px;transform:rotate(-35deg) scaleX(.52)}
.w10-orbit--two{transform:rotate(25deg) scaleX(.52);top:140px;left:-100px}
.w10-growth{display:inline-block;margin-left:8px;font-size:.77rem;color:#187348;background:#eaf5ed;padding:4px 8px;border-radius:3px}
.w10-us-breakdown{display:flex;align-items:center;gap:17px;margin:20px 0 10px;padding:16px 18px;background:var(--ice);border-left:3px solid var(--blue)}
.w10-us-period{font-size:.67rem;color:var(--muted);margin:20px 0 -12px}
.w10-us-breakdown>div{display:flex;flex-direction:column;gap:3px}
.w10-us-breakdown strong{font:600 2rem/1 var(--display);color:var(--blue)}
.w10-us-breakdown>div span{font-size:.65rem;line-height:1.5}
.w10-plus{color:var(--blue)}
.w10-us-badge{font-weight:700;font-size:.8rem;margin-left:auto;color:var(--blue)}
.w10-ga-note{font-size:.72rem;color:var(--muted);line-height:1.7}
.w10-aura{background:#eae3d9;color:#302b27}
.w10-browser-art{position:relative;margin:35px -15px 0 25px;transform:rotate(-7deg);border:1px solid #c4b4a1;border-radius:7px;background:white;overflow:hidden;box-shadow:0 28px 40px #54473a2c}
.w10-browser-art img{width:100%;height:auto;display:block}
.w10-browser-top{display:flex;justify-content:space-between;font-size:.5rem;color:#ac9987;padding:10px 14px;background:white}
.w10-browser-top span{font-size:.6rem;color:#524538}
.w10-mail-art{display:flex;flex-wrap:wrap;gap:12px;margin:45px 28px 20px;font-size:.6rem;font-weight:600;letter-spacing:.06em;align-items:center}
.w10-mail-art span:nth-child(odd){border:1px solid #aa9783;padding:9px 10px}
.w10-aura-caption{font:500 clamp(2.6rem,4vw,4.4rem)/1.03 var(--display);margin:0 28px;color:#4a4036}
.w10-aura .w10-visual-index{color:#5f5346}
.w10-mail-timeline{display:flex;justify-content:space-between;gap:8px;border-top:2px solid #ccd9fa;margin:36px 0 30px;padding-top:14px;font-size:.71rem;color:var(--muted)}
.w10-mail-timeline span{position:relative}
.w10-mail-timeline span::before{content:"";position:absolute;top:-20px;left:0;width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px white}
/* Videolar: büyük kapaklar, kontrollü önizleme ve tek tıkla sesli oynatma. */
.v12-video{background:#0c1934;padding-top:70px;padding-bottom:80px}
.v12-video .v12-video-intro{max-width:none}
.v12-video .v12-display{font-size:clamp(3.8rem,7.2vw,7.3rem)}
.v12-video .video-cover{border-radius:5px;overflow:hidden;border:1px solid #ffffff21}
.v12-video .video-grid{gap:28px}
.v12-video .video-card:nth-child(2){padding-top:55px}
.v12-video .video-card:nth-child(3){padding-top:100px}
.v12-video .video-cover .play{border:1px solid white;background:#ffffff24;backdrop-filter:blur(9px)}
@media(min-width:801px) and (prefers-reduced-motion:no-preference){
  body:not([data-reduced=true]) .hero.scene-section{height:calc(100svh + 56vh)}
  body:not([data-reduced=true]) .hero .hero-inner{min-height:calc(100svh - 76px)}
  .w10-hero-preview{animation:w10-preview-enter .75s cubic-bezier(.16,1,.3,1) .35s both}
}
@keyframes w10-preview-enter{from{opacity:0;transform:translate(35px,45px) rotate(2deg) scale(.85)}to{opacity:1;transform:rotate(-8deg)}}
@media(max-width:1100px){.hero h1{font-size:clamp(4.1rem,8.5vw,7.7rem)}.w10-hero-preview{width:170px;left:-8px;bottom:82px}.w10-result-copy{padding:30px}.w10-result-visual,.w10-poster,.w10-nutri-art{min-height:650px}.w10-result-tabs button{padding:14px 12px;gap:7px;font-size:.88rem}.w10-big-result>strong{font-size:6.2rem}}
@media(max-width:800px){
  .hero .hero-inner{gap:16px;padding-top:28px}.hero .hero-portrait{height:420px}.hero h1{font-size:clamp(3.5rem,8.2vw,5.5rem)}.w10-hero-word{display:none}.w10-hero-preview{width:150px;left:0;bottom:62px}.hero-portrait figcaption{font-size:.75rem}.w10-hero-strip{gap:16px;font-size:1.13rem}.w10-hero-strip>span,.w10-hero-strip>a{gap:14px}.w10-hero-strip small{display:none}
  .w10-results{padding-top:65px}.w10-results-heading{display:block}.w10-results-heading>p{margin-top:20px}.w10-results-heading>p br{display:none}.w10-result-panel{grid-template-columns:.75fr 1fr}.w10-result-copy{padding:26px}.w10-result-visual,.w10-poster,.w10-nutri-art{min-height:640px}.w10-result-tabs button{font-size:.81rem}.w10-tab-no{display:none}.w10-big-result>strong{font-size:5.2rem}.w10-channel strong{font-size:2.3rem}.w10-channels{gap:14px}.w10-poster-label{left:23px;font-size:2.8rem}.w10-nutri-art{padding:28px}.w10-nutri-art p{font-size:4.5rem}.w10-result-copy h3{font-size:2.7rem}.w10-us-breakdown{padding:14px 10px;gap:10px}
}
@media(max-width:580px){
  .hero .hero-inner{display:grid;grid-template-columns:1fr;gap:10px;padding-top:24px;padding-bottom:24px!important}
  .hero .hero-copy{grid-column:1;margin:0}.hero h1{font-size:clamp(3.65rem,13vw,5.8rem);letter-spacing:-.02em}.hero .lead{font-size:.95rem;margin-top:18px}.hero .hero-portrait{grid-column:1;width:100%;height:325px;margin:16px 0 8px;justify-content:flex-end}.hero .hero-portrait>img{height:310px;max-height:310px;transform:none!important;margin-right:5px}.hero .hero-portrait #hero-sculpture{inset:-35px -20px -20px 0}.hero-portrait .orbit-tag.one{display:block;left:0;top:28px;font-size:.6rem;padding:9px 12px}.hero-portrait figcaption{bottom:0;right:0;max-width:225px;padding:9px 12px}.w10-hero-preview{width:145px;bottom:64px;left:4px;transform:rotate(-7deg)}.w10-preview-top{font-size:8px;padding:8px}.w10-preview-bottom{font-size:9px;padding:8px}.w10-hero-strip{grid-column:1;margin-top:18px;justify-content:space-between;gap:8px;font-size:1.03rem;padding-top:15px}.w10-hero-strip>span,.w10-hero-strip>a{gap:8px}.hero .hero-motion{margin-top:8px}.hero .hero-next{gap:10px}
  .w10-results{padding-top:52px}.w10-results-heading{margin-bottom:25px}.w10-results-heading h2{font-size:clamp(3.4rem,13vw,4.8rem)}.w10-results-heading>p{font-size:.88rem}.w10-results[data-tabs-ready] .w10-result-tabs{grid-template-columns:1fr 1fr;margin-bottom:16px}.w10-result-tabs button{min-height:52px;font-size:.87rem;padding:13px 14px}.w10-result-tabs button:nth-child(3){border-left:0;border-top:1px solid var(--line-blue)}.w10-result-tabs button:nth-child(4){border-top:1px solid var(--line-blue)}.w10-tab-no{display:block}
  .w10-result-panel{grid-template-columns:1fr}.w10-result-visual,.w10-poster,.w10-nutri-art{min-height:340px;height:340px}.w10-result-copy{padding:28px 23px 24px}.w10-poster>img{object-position:center 36%}.w10-poster-label{font-size:3rem;bottom:52px;left:23px;max-width:250px}.w10-play{width:46px;height:46px;top:20px;right:20px}.w10-visual-index{left:23px;bottom:20px}.w10-big-result>strong{font-size:6.3rem}.w10-result-copy h3{font-size:3rem;margin-top:13px}.w10-channels{gap:14px}.w10-channel strong{font-size:2.7rem}.w10-nutri-art{display:block;padding:28px}.w10-nutri-art>img{width:120px;height:55px;margin:0 0 22px}.w10-nutri-art p{font-size:3.5rem;line-height:.99}.w10-nutri-art p br:last-of-type{display:none}.w10-art-note{display:block;margin-top:18px;font-size:.6rem}.w10-orbit{width:440px;height:440px;top:-60px;left:110px}.w10-orbit--two{left:50px;top:-15px}.w10-nutri .w10-visual-index{left:auto;right:23px;font-size:.6rem}.w10-browser-art{width:90%;margin:35px 0 0 30px}.w10-mail-art{display:none}.w10-aura-caption{position:absolute;bottom:52px;font-size:2.3rem;left:0;right:10px;text-shadow:0 1px 4px #eae3d9}.w10-browser-art img{opacity:.75}.w10-us-breakdown{padding:15px}.w10-results-footnote{font-size:.7rem}.v12-video .video-card:nth-child(n){padding-top:0}.v12-video .video-grid{gap:16px}.v12-video .v12-display{font-size:3.7rem}
}
@media(prefers-reduced-motion:reduce){.w10-hero-preview,.w10-poster>img,.w10-play{animation:none!important;transition:none!important}.w10-poster>img{transform:none}}
body[data-reduced=true] .w10-hero-preview,body[data-reduced=true] .w10-poster>img,body[data-reduced=true] .w10-play{animation:none!important;transition:none!important}
body[data-reduced=true] .w10-poster>img{transform:none}
body[data-reduced=true] .w10-preview-video{opacity:0;transition:none}
@media print{.w10-result-tabs{display:none!important}.w10-result-panel[hidden]{display:grid!important}.w10-result-panel{break-inside:avoid}.w10-result-visual{min-height:320px}.w10-results{padding-top:20px}.w10-hero-preview,.w10-hero-strip{display:none!important}}
@media(max-width:580px){
  .hero .hero-portrait{grid-row:1;order:0;margin-top:0}
  .hero .hero-copy{grid-row:2;order:0}
  .hero .w10-hero-strip{grid-row:3}
  .hero h1{font-size:clamp(2.2rem,11.8vw,4.8rem)}
  .w10-heading-aside{margin-top:20px;font-size:.88rem}
  .w10-heading-aside p br{display:none}
}
@media(min-width:581px){.hero h1{font-size:clamp(2.5rem,min(8.1vw,15.8cqi),8.5rem)}}

/* ==== print.css ==== */
/* Yazdırma */

@media print {
  #thread-stage,
  .site-header,
  .mobile-bar,
  .read-progress,
  .hero-actions,
  .button,
  .menu-toggle,
  .contact-section,
  dialog {
    display: none !important;
  }

  body {
    padding: 0 !important;
  }

  .scene-section {
    padding: 30px 0;
    break-inside: avoid;
  }

  .wrap {
    width: 100%;
    margin: 0;
  }

  .hero-portrait {
    max-height: 220px;
  }

  .reference-grid {
    grid-template-columns: repeat(4,1fr);
  }

  details>* {
    display: block !important;
  }

  .workshop-toggle {
    display: none;
  }

  .video-cover img {
    max-height: 180px;
    object-fit: contain;
  }

  .footer-bottom {
    display: none;
  }

  .distribution-inner {
    display: block;
  }

  .channel-display {
    max-width: 600px;
  }

  .distribution-flow .distribution-inner {
    display: block;
    padding: 25px 0px;
  }

  .distribution-flow .channel-display {
    padding: 0px;
    max-width: 600px;
    break-inside: avoid;
  }

  .distribution-flow .content-origin,
  .distribution-wires,
  .flow-source-halo {
    display: none;
  }

  .distribution-flow .channels {
    gap: 15px;
    margin: 20px 0px;
  }

  .distribution-flow .channel {
    transform: none;
    box-shadow: none;
  }

  .distribution-flow .channel::after {
    display: none;
  }

  .distribution.distribution-flow {
    background: white;
    color: black;
  }

  .distribution h2 em,
  .distribution-copy>p:not(.eyebrow) {
    color: black;
  }

  .logo-stage {
    height: 230px;
  }

  .distribution.scene-section {
    background: white;
    color: #14233d;
  }

  .distribution h2 em,
  .distribution .eyebrow,
  .distribution .series-caption,
  .distribution .series-heading h3 {
    color: #14233d;
  }

  .distribution .distribution-inner {
    display: block;
  }

  .distribution .series-gallery-scroller {
    overflow: visible;
  }

  .distribution .series-hint {
    display: none;
  }
}

/* ==== WordPress ön sayfa ekleri (kaynak: wp/assets/css/landing-wp.css; build/wp.mjs site.css'in sonuna ekler) ==== */
/* Medya Kütüphanesi yuvası boşsa ilgili kapak/figür gizlenir (kırık görsel yok). */
[data-media-available="0"]{display:none!important}
#detail-media[hidden]{display:none!important}
/* Logo yuvası boşsa marka adı yazı olarak görünür (invoran_image). */
.brand-wordmark{font-size:clamp(14px,1.5vw,22px);font-weight:700;line-height:1.2;color:var(--ink,#14233d);text-align:center}
.reference-grid .brand-wordmark{font-size:clamp(12px,1.15vw,17px);word-break:normal;overflow-wrap:normal;white-space:normal}
.reference-grid>a:has(.brand-wordmark){padding-inline:4px}
/* Oturum açık yöneticide üst araç çubuğu: sabit header ve ilerleme çubuğu onun altına iner. */
.admin-bar .site-header,.admin-bar .read-progress{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header,.admin-bar .read-progress{top:46px}}
@media screen and (max-width:600px){.admin-bar .site-header,.admin-bar .read-progress{top:0}}
