/* 🎭 SAHNE — Koçi'nin üç salonu (Riven 30 Eyl). Ortak dil: başlık bandı, düğme dokusu, bölümlü ilerleme, anlam balonu, okuma renkleri,
   karne, soru kartı, alt eylem çubuğu, defter cebi. Renkler YALNIZ değişkenden: renk teması seçilince temalar.js data-theme'i siliyor,
   bu yüzden "sabit renk + [data-theme=dark] düzeltmesi" yok. Bilinçli koyu yüzeyler: sahne, stüdyo, gece kabuğu, paralar. Önek sn-. */

.sn-kok {
  --sn-zemin: var(--bg); --sn-yuzey: var(--card);
  --sn-yuzey-alt: var(--koci-yuzey-alt, color-mix(in srgb, var(--card) 90%, var(--ink)));
  --sn-murekkep: var(--ink); --sn-soluk: var(--muted); --sn-cizgi: var(--line);
  --sn-vurgu: var(--primary); --sn-vurgu-koyu: var(--primary-dk); --sn-ustu: var(--koci-on-primary, #fff);
  --sn-vurgu-ton: color-mix(in srgb, var(--primary) 12%, var(--card));
  --sn-kagit: color-mix(in srgb, var(--card) 92%, #f5d27a);          /* açık temada krem, koyuda sıcak koyu kâğıt */
  --sn-kagit-cizgi: color-mix(in srgb, var(--line) 70%, #f5d27a);
  --sn-ok: var(--ok); --sn-ok-zemin: color-mix(in srgb, var(--ok) 16%, transparent);
  --sn-kotu: var(--bad); --sn-kotu-zemin: color-mix(in srgb, var(--bad) 14%, transparent);
  /* Riven 30 Eyl (denetim): dolu --ok/--bad zemin üstündeki yazı kart rengi; açık temada beyaz, koyu temada koyu (Gece Laciverti'de beyaz 1,5:1 kalıyordu) */
  --sn-ok-ustu: var(--card); --sn-kotu-ustu: var(--card);
  --sn-orta: var(--warn);
  --sn-karaoke: color-mix(in srgb, var(--primary) 20%, transparent);
  --sn-altin: #f5d27a;                                               /* yalnız koyu sahne ve stüdyo üstünde */
  --sn-sahne: #14100e; --sn-sahne-2: #231a16;                        /* temadan bağımsız sahne */
  --sn-spot: color-mix(in srgb, #ffd89a 22%, transparent);
  --sn-yayinda: #e5484d;
  --sn-gece: #0f1424; --sn-gece-yazi: #e9ecf5;
  --sn-f: #e8735a; --sn-m: #4f8fe6; --sn-c: #f2b632; --sn-a: #8a7f76;  /* konuşan renkleri (a: anlatıcı) */
  --sn-f-ton: color-mix(in srgb, var(--sn-f) 12%, var(--card));
  --sn-m-ton: color-mix(in srgb, var(--sn-m) 12%, var(--card));
  --sn-c-ton: color-mix(in srgb, var(--sn-c) 16%, var(--card));
  --sn-serif: ui-serif, "Iowan Old Style", Charter, Georgia, "Noto Serif", serif;
  --sn-r: 22px; --sn-r-sm: 14px;
  --sn-golge: var(--koci-golge, 0 6px 18px color-mix(in srgb, var(--ink) 10%, transparent));
  --sn-yazi: 24px;
  position: relative; flex: 0 0 auto; display: flex; flex-direction: column; gap: 14px; color: var(--sn-murekkep); min-width: 0;
}
.sn-kok[data-palet="ataturk"] { --sn-vurgu: #c8102e; --sn-vurgu-koyu: #8f0b1d; --sn-kagit: color-mix(in srgb, var(--card) 90%, #f5d27a); --sn-vurgu-ton: color-mix(in srgb, #c8102e 10%, var(--card)); --sn-karaoke: color-mix(in srgb, #c8102e 18%, transparent); }
.sn-kok *, .sn-kok *::before, .sn-kok *::after { box-sizing: border-box; }
:where(.sn-kok) button { font: inherit; color: inherit; }   /* özgüllük 0: koyu yüzeydeki düğmelerin beyaz yazısı ezilmesin */
.sn-soluk { color: var(--sn-soluk); }
.sn-kucuk { font-size: 13px; line-height: 1.4; margin: 0; }
.sn-kok .ik svg { width: 1.2em; height: 1.2em; }

/* ---------- başlık bandı + etiket */
.sn-baslik { position: relative; }
.sn-baslik h1 { font-family: var(--koci-font-baslik, inherit); font-size: 22px; font-weight: 800; line-height: 1.2; margin: 2px 0 4px; overflow-wrap: anywhere; }
.sn-baslik p { margin: 0; font-size: 14px; line-height: 1.45; }
.sn-baslik-sag { float: right; margin-left: 10px; }
.sn-etiket { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sn-vurgu); }
.sn-sayac { font-size: 13px; color: var(--sn-soluk); font-variant-numeric: tabular-nums; margin: 4px 0 0; }

/* ---------- düğmeler (alt gölgeli dokunmalık) */
.sn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 18px; border-radius: 16px; border: 2px solid var(--sn-cizgi); background: var(--sn-yuzey); color: var(--sn-murekkep); font-weight: 800; font-size: 16px; box-shadow: 0 3px 0 var(--sn-cizgi); cursor: pointer; transition: transform .08s; text-decoration: none; }
.sn-btn:active:not(:disabled) { transform: translateY(3px); box-shadow: 0 0 0 var(--sn-cizgi); }
.sn-btn.ana { background: var(--sn-vurgu); color: var(--sn-ustu); border-color: var(--sn-vurgu); box-shadow: 0 4px 0 var(--sn-vurgu-koyu); }
.sn-btn.ana:active:not(:disabled) { box-shadow: 0 0 0 var(--sn-vurgu-koyu); }
.sn-btn.ince { font-weight: 700; }
.sn-btn.bos { background: none; border-color: transparent; box-shadow: none; color: var(--sn-soluk); font-weight: 700; }
.sn-btn.tam { width: 100%; }
.sn-btn:disabled { opacity: .45; cursor: default; }
.sn-btn .ik svg { width: 1.25em; height: 1.25em; }
.sn-ikon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 0; background: none; color: var(--sn-soluk); cursor: pointer; flex: none; }
.sn-ikon-btn:active { transform: scale(.94); }
.sn-sira { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; } .sn-sira > .sn-btn { flex: 1 1 140px; }

/* ---------- resim + yedek zemin (resim henüz üretilmemiş olabilir) */
.sn-resim { position: relative; display: block; overflow: hidden; background: linear-gradient(135deg, color-mix(in srgb, var(--sn-ton, var(--sn-vurgu)) 70%, #1a1310), color-mix(in srgb, var(--sn-ton, var(--sn-vurgu)) 35%, #0e0b09)); }
.sn-resim.sn-r-kitap { background: linear-gradient(160deg, color-mix(in srgb, var(--sn-ton, var(--sn-vurgu)) 55%, var(--sn-kagit)), color-mix(in srgb, var(--sn-ton, var(--sn-vurgu)) 80%, #2a1d15)); }
.sn-resim-yedek { position: absolute; inset: 0; display: grid; place-items: center; color: rgb(255 255 255 / .55); }
.sn-resim-yedek .ik svg { width: 34%; height: auto; max-width: 64px; min-width: 22px; }
.sn-resim-yedek b { font-family: var(--sn-serif); font-size: 44px; font-weight: 700; color: rgb(255 255 255 / .8); }
.sn-resim img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- oyuncu parası (monogram) */
.sn-para { --b: 36px; --c: var(--sn-f); position: relative; display: inline-grid; place-items: center; width: var(--b); height: var(--b); border-radius: 50%; flex: none;
  background: color-mix(in srgb, var(--c) 80%, #000); color: #fff; box-shadow: inset 0 0 0 2px rgb(255 255 255 / .22), 0 2px 6px rgb(0 0 0 / .25);
  transition: transform .24s ease-out, opacity .24s ease-out, box-shadow .24s ease-out; }
.sn-para b { font-size: calc(var(--b) * .38); font-weight: 800; letter-spacing: .02em; line-height: 1; }
.sn-para.sn-p-m { --c: var(--sn-m); } .sn-para.sn-p-c { --c: var(--sn-c); } .sn-para.sn-p-a { --c: var(--sn-a); }
.sn-para.konusuyor { transform: scale(1.08); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 70%, #fff), 0 0 18px 4px color-mix(in srgb, var(--c) 60%, transparent); }
.sn-para i { position: absolute; bottom: -7px; left: 50%; transform: translateX(-50%); font-style: normal; font-size: 9px; font-weight: 800; letter-spacing: .08em; background: var(--sn-altin); color: #2a1d10; padding: 1px 5px; border-radius: 6px; }
.sn-paralar { display: inline-flex; } .sn-paralar .sn-para + .sn-para { margin-left: -7px; }

/* ---------- sahne (temadan bağımsız koyu) */
.sn-sahne { position: relative; border-radius: var(--sn-r); overflow: hidden; aspect-ratio: 16 / 10; background: radial-gradient(ellipse at 50% -10%, var(--sn-spot), transparent 60%), linear-gradient(180deg, var(--sn-sahne-2), var(--sn-sahne)); color: #fff; box-shadow: var(--sn-golge); isolation: isolate; }
.sn-sahne > .sn-resim { position: absolute; inset: 0; z-index: -2; background: none; }
.sn-sahne > .sn-resim .sn-resim-yedek { display: none; }
.sn-sahne > .sn-resim img { transform-origin: 50% 40%; }
.sn-sahne.caliyor > .sn-resim img { animation: sn-ken 18s ease-in-out infinite alternate; }
@keyframes sn-ken { from { transform: scale(1); } to { transform: scale(1.08) translate(-1.5%, -1%); } }
.sn-sahne::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(12 10 9 / .82), rgb(12 10 9 / .1) 55%, transparent 70%); pointer-events: none; }
.sn-sahne .sn-karart { position: absolute; inset: 0; background: rgb(0 0 0 / .35); opacity: 0; transition: opacity .24s; pointer-events: none; }
.sn-sahne.sen-sira .sn-karart { opacity: 1; }
.sn-sahne-et { position: absolute; top: 12px; left: 14px; font-size: 11px; font-weight: 700; letter-spacing: .14em; color: var(--sn-altin); text-shadow: 0 1px 2px rgb(0 0 0 / .6); }
/* Riven 30 Eyl (okunurluk): sahne resminin açık yerinde (tavan ışığı) altın etiket 1.3 kalıyordu; oyuncu plakası gibi koyu hap. */
.sn-sahne > .sn-sahne-et { background: rgb(0 0 0 / .55); padding: 2px 8px; border-radius: 8px; top: 10px; left: 12px; }
.sn-oyuncular { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: space-between; align-items: flex-end; padding: 0 16px; }
.sn-oyuncu { display: flex; flex-direction: column; align-items: center; gap: 6px; opacity: .55; transition: opacity .24s ease-out; position: relative; }
.sn-oyuncu.konusuyor, .sn-sahne:not(.caliyor):not(.sen-sira) .sn-oyuncu { opacity: 1; }
.sn-oyuncu.konusuyor .sn-para { transform: scale(1.08); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 70%, #fff), 0 0 22px 6px color-mix(in srgb, var(--c) 60%, transparent); }
.sn-oyuncu.orta { order: 1; } .sn-oyuncu.sag { order: 2; }
.sn-plaka { font-size: 12px; font-weight: 700; background: rgb(0 0 0 / .55); padding: 2px 8px; border-radius: 8px; max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sn-dalga { position: absolute; top: -2px; right: -12px; display: flex; gap: 2px; align-items: flex-end; height: 14px; opacity: 0; }
.sn-dalga i { width: 3px; height: 100%; background: var(--sn-altin); border-radius: 2px; transform-origin: bottom; transform: scaleY(.3); }
.sn-oyuncu.konusuyor .sn-dalga { opacity: 1; }
.sn-sahne.caliyor .sn-oyuncu.konusuyor .sn-dalga i { animation: sn-dalga .7s ease-in-out infinite alternate; }
.sn-dalga i:nth-child(2) { animation-delay: .18s !important; } .sn-dalga i:nth-child(3) { animation-delay: .36s !important; }
@keyframes sn-dalga { from { transform: scaleY(.25); } to { transform: scaleY(1); } }
.sn-altyazi { position: absolute; left: 12px; right: 12px; bottom: 86px; text-align: center; pointer-events: none; }
.sn-altyazi p { margin: 0; font-size: 19px; font-weight: 700; line-height: 1.35; text-shadow: 0 1px 2px rgb(0 0 0 / .6); overflow-wrap: anywhere; }
.sn-altyazi .sn-alt-tr { font-size: 15px; font-weight: 600; opacity: .9; margin-top: 4px; }
.sn-altyazi .w.reading { background: var(--sn-altin); color: #2a1d10; border-radius: 4px; text-shadow: none; }
.sn-sayim { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--sn-serif); font-size: 84px; font-weight: 700; color: var(--sn-altin); text-shadow: 0 4px 20px rgb(0 0 0 / .6); pointer-events: none; }
.sn-not { margin: -4px 4px 0; font-family: var(--sn-serif); font-style: italic; font-size: 15px; color: var(--sn-soluk); line-height: 1.45; }

/* mini sahne (sahne ekrandan çıkınca) */
.sn-mini { position: sticky; top: 0; z-index: 6; height: 56px; margin-bottom: -56px; display: flex; align-items: center; gap: 10px; padding: 0 8px 0 12px; border-radius: 0 0 16px 16px;
  background: var(--sn-sahne); color: #fff; transform: translateY(-120%); transition: transform .24s ease-out; box-shadow: 0 6px 16px rgb(0 0 0 / .25); pointer-events: none; }
.sn-kok.mini-acik .sn-mini { transform: none; pointer-events: auto; }
.sn-mini b { flex: 1; min-width: 0; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sn-mini .sn-ikon-btn { color: #fff; }

/* ---------- oynatma denetimi */
.sn-oynatma { display: flex; flex-direction: column; gap: 10px; }
.sn-kontrol { display: flex; align-items: center; gap: 4px; flex-wrap: nowrap; min-width: 0; }
.sn-kontrol .sn-ikon-btn { width: 40px; }
.sn-kontrol .sn-ikon-btn { color: var(--sn-murekkep); }
.sn-oynat { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 0; background: var(--sn-vurgu); color: var(--sn-ustu); box-shadow: 0 4px 0 var(--sn-vurgu-koyu); cursor: pointer; flex: none; }
.sn-oynat:active { transform: translateY(3px); box-shadow: 0 1px 0 var(--sn-vurgu-koyu); }
.sn-oynat .ik svg { width: 26px; height: 26px; }
.sn-oynat.nabiz { animation: sn-nabiz 1.4s ease-in-out infinite; }
.sn-cipler { display: inline-flex; border: 2px solid var(--sn-cizgi); border-radius: 999px; overflow: hidden; flex: none; }
.sn-cipler button { border: 0; background: none; min-height: 36px; min-width: 40px; padding: 0 10px; font-size: 13px; font-weight: 800; cursor: pointer; color: var(--sn-soluk); font-variant-numeric: tabular-nums; }
.sn-cipler button.on { background: var(--sn-vurgu-ton); color: var(--sn-vurgu); }
.sn-bosluk { flex: 1; }

/* Konu oynatıcısı dar telefonlarda kontrol kaybetmeden satır değiştirir. */
.sn-konu .sn-studyo-kart .sn-kontrol { flex-wrap: wrap; gap: 8px 4px; }
.sn-konu .sn-studyo-kart .sn-kontrol > button { flex-shrink: 0; }
.sn-konu .sn-studyo-kart #snHiz { margin-left: auto; max-width: 100%; }
.sn-konu .sn-studyo-kart #snHiz button { min-height: 44px; }

/* ---------- bölümlü ilerleme */
.sn-ilerleme { display: flex; gap: 3px; align-items: center; width: 100%; min-height: 10px; }
.sn-ip { --c: var(--sn-vurgu); --d: 0; flex: 1 1 0; position: relative; height: 8px; border-radius: 99px; background: color-mix(in srgb, var(--sn-cizgi) 80%, transparent); border: 0; padding: 0; overflow: hidden; min-width: 4px; }
button.sn-ip { height: 24px; background: none; cursor: pointer; }
button.sn-ip::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 8px; border-radius: 99px; background: color-mix(in srgb, var(--sn-cizgi) 80%, transparent); }
.sn-ip b { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--d) * 100%); background: var(--c); border-radius: 99px; transition: width .2s linear; }
button.sn-ip b { top: 8px; bottom: auto; height: 8px; }
i.sn-ip.simdi { box-shadow: inset 0 0 0 2px var(--c); } button.sn-ip.simdi::before { box-shadow: inset 0 0 0 2px var(--c); }
button.sn-ip:focus-visible { outline: 2px solid var(--sn-vurgu); outline-offset: 2px; border-radius: 6px; }
.sn-soru-nokta button.sn-ip.simdi::before { background: var(--c); box-shadow: none; }
.sn-ip.dolu b { width: 100%; }
.sn-ip.ok b, .sn-ip.orta b, .sn-ip.kotu b, .sn-ip.dolu b { width: 100%; }
.sn-ip.ok { --c: var(--sn-ok); } .sn-ip.orta { --c: var(--sn-orta); } .sn-ip.kotu { --c: var(--sn-kotu); }

/* ---------- adım şeridi */
.sn-adimlar { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -2px; padding: 2px; }
.sn-adimlar::-webkit-scrollbar { display: none; }
.sn-adim { flex: 1 0 auto; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 4px 10px; border-radius: 999px; border: 1.5px dashed var(--sn-cizgi); background: none; font-size: 13px; font-weight: 700; color: var(--sn-soluk); cursor: pointer; white-space: nowrap; }
.sn-adim i { font-style: normal; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--sn-yuzey-alt); font-size: 11px; font-weight: 800; }
.sn-adim.tamam { border-style: solid; border-color: color-mix(in srgb, var(--sn-ok) 50%, var(--sn-cizgi)); color: var(--sn-murekkep); }
.sn-adim.tamam i { background: var(--sn-ok); color: var(--sn-ok-ustu); }
.sn-adim.tamam i .ik svg { width: 12px; height: 12px; }

/* ---------- mod anahtarı (yapışkan) */
.sn-mod { position: sticky; top: 0; z-index: 5; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; padding: 4px; border-radius: 16px; background: color-mix(in srgb, var(--sn-yuzey) 96%, transparent); border: 1px solid var(--sn-cizgi); transition: top .24s ease-out; }
.sn-kok.mini-acik .sn-mod { top: 60px; }
.sn-mod button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; border: 0; border-radius: 12px; background: none; font-weight: 800; font-size: 14px; color: var(--sn-soluk); cursor: pointer; }
.sn-mod button.on { background: var(--sn-vurgu); color: var(--sn-ustu); }
.sn-mod-not { margin: -6px 4px 0; font-size: 13px; color: var(--sn-soluk); line-height: 1.4; }

/* ---------- kâğıt */
.sn-kagit { background: var(--sn-kagit); border: 1px solid var(--sn-kagit-cizgi); border-radius: var(--sn-r); box-shadow: var(--sn-golge); }

/* ---------- diyalog senaryosu (mevcut .dlg yapısı korunur, yan konuşma sırasından) */
.sn-kok .dlg { gap: 12px; margin: 0; }
.sn-kok .dlg-nar { font-style: italic; font-family: var(--sn-serif); font-size: 17px; line-height: 1.5; color: var(--sn-murekkep); border-left: 0; padding: 12px 14px 10px; background: var(--sn-kagit); border: 1px solid var(--sn-kagit-cizgi); border-radius: var(--sn-r-sm); position: relative; }
.sn-kok .dlg-nar .en { color: var(--sn-murekkep); }
.sn-nar-et { display: block; font-style: normal; font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: .16em; color: var(--sn-soluk); margin-bottom: 2px; }
.sn-kok .dlg-line { max-width: 90%; align-self: flex-start; align-items: flex-start; }
.sn-kok .dlg-line.sn-sag { align-self: flex-end; align-items: flex-end; }
.sn-kok .dlg-line.sn-orta { align-self: center; align-items: center; }
.sn-kok .dlg-line .who { display: inline-flex; align-items: center; gap: 6px; color: var(--sn-soluk); padding: 0 4px; }
.sn-kok .dlg-line .bubble { --c: var(--sn-f); background: var(--sn-f-ton); border: 1.5px solid color-mix(in srgb, var(--c) 55%, var(--sn-cizgi)); border-radius: 18px 18px 18px 6px; color: var(--sn-murekkep); font-size: 18px; line-height: 1.5; padding: 10px 12px; }
.sn-kok .dlg-line.m .bubble { --c: var(--sn-m); background: var(--sn-m-ton); }
.sn-kok .dlg-line.c .bubble { --c: var(--sn-c); background: var(--sn-c-ton); }
.sn-kok .dlg-line.sn-sag .bubble { border-radius: 18px 18px 6px 18px; }
.sn-kok .dlg .reading .bubble, .sn-kok .dlg-nar.reading { outline: 0; box-shadow: 0 0 0 3px color-mix(in srgb, var(--sn-vurgu) 55%, transparent); }
.sn-kok .dlg-line.sen-rol .bubble { box-shadow: 0 0 0 2px var(--sn-altin); }
.sn-kok .dlg .speak.small { width: 36px; height: 36px; font-size: 0; vertical-align: middle; background: color-mix(in srgb, var(--sn-vurgu) 14%, transparent); color: var(--sn-vurgu); box-shadow: none; margin-left: 4px; }
.sn-kok .dlg .info { font-size: 17px; width: 36px; height: 36px; display: inline-grid; place-items: center; color: var(--sn-orta); padding: 0; vertical-align: middle; }
/* hoparlör emojisi yerine çizgi simge (speakBtn app.js'te; yalnız görünüşü) */
.sn-kok .speak { font-size: 0 !important; display: inline-grid; place-items: center; }
.sn-kok .speak::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5L6 9H2v6h4l5 4zM15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5L6 9H2v6h4l5 4zM15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E") center / contain no-repeat; }
.sn-kok .speak.small { background: color-mix(in srgb, var(--sn-vurgu) 14%, transparent); color: var(--sn-vurgu); box-shadow: none; }
.sn-kok .dlg .tr { font-size: 14px; color: var(--sn-soluk); font-style: normal; font-family: inherit; }
/* Dinle modu: metin gizli, sansürlü senaryo çubukları (mevcut .sesli-mod çizgisi yerine) */
.sn-kok .dlg.sesli-mod .en { display: none; }
.sn-kok .dlg.sesli-mod .bubble { background-image: none; min-height: 0; }
.sn-kok .dlg:not(.sesli-mod) .sn-cubuklar { display: none; }
.sn-kok .dlg.sesli-mod .speak.small { display: none; }
.sn-kok .dlg.sesli-mod .info { display: none; }
.sn-cubuklar { display: inline-flex; flex-wrap: wrap; gap: 5px; align-items: center; padding: 6px 0; vertical-align: middle; }
.sn-cubuk { display: inline-block; height: 10px; border-radius: 5px; background: color-mix(in srgb, var(--sn-murekkep) 18%, transparent); transition: background-color .12s; }
.sn-cubuk.reading { background: var(--sn-vurgu); }
.sn-kok .dlg.perde .en { animation: sn-belir .32s ease-out; }
@keyframes sn-belir { from { opacity: 0; } }
.sn-ipucu { margin: 0; font-size: 13px; color: var(--sn-soluk); display: flex; align-items: center; gap: 6px; }

/* ---------- okuma renkleri: üç salonda aynı (okumaOzelligi ile snOkuma aynı görünür; renk tek başına anlam taşımaz) */
.sn-kok .w { cursor: pointer; border-radius: 5px; padding: 0 1px; transition: background-color .12s, color .12s; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.sn-kok .w.reading { background: var(--sn-karaoke); color: inherit; font-weight: inherit; box-shadow: inset 0 -2px 0 var(--sn-vurgu); }
.sn-kok .w.read-ok { color: var(--sn-ok); background: var(--sn-ok-zemin); text-decoration: underline 2px solid; text-underline-offset: 3px; animation: sn-pop .18s ease-out; }
.sn-kok .w.read-skip { color: var(--sn-kotu); background: var(--sn-kotu-zemin); text-decoration: underline wavy; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.sn-kok .w.sn-kacti { text-decoration: underline dotted 2px var(--sn-orta); text-underline-offset: 3px; }
.sn-kok .w.sn-imlec { outline: 1.5px solid var(--sn-vurgu); outline-offset: 1px; animation: sn-imlec 1.2s ease-in-out infinite; }
.sn-kok .w.on, .sn-kok .w.secili { background: var(--sn-vurgu); color: var(--sn-ustu); box-shadow: 0 3px 0 var(--sn-vurgu-koyu); }
@keyframes sn-pop { from { background-color: color-mix(in srgb, var(--sn-ok) 50%, transparent); } }   /* dönüşüm yok: satır içi kalsın, baş harf bozulmasın */
@keyframes sn-imlec { 50% { outline-color: transparent; } }

/* ---------- anlam balonu */
.sn-balon { position: absolute; z-index: 40; max-width: min(300px, calc(100vw - 16px)); background: var(--sn-murekkep); color: var(--sn-yuzey); border-radius: 16px; padding: 10px 12px; box-shadow: 0 10px 28px rgb(0 0 0 / .3); animation: sn-balon .22s cubic-bezier(.3, 1.6, .5, 1); transform-origin: var(--ok-x, 50%) 100%; }
.sn-balon.asagi { transform-origin: var(--ok-x, 50%) 0; }
.sn-balon::after { content: ""; position: absolute; left: var(--ok-x, 50%); bottom: -7px; width: 14px; height: 14px; background: inherit; transform: translateX(-50%) rotate(45deg); border-radius: 3px; }
.sn-balon.asagi::after { bottom: auto; top: -7px; }
.sn-balon-ic { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; align-items: center; }
.sn-balon-ic b { font-size: 19px; }
.sn-balon-ses { grid-row: span 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: color-mix(in srgb, var(--sn-yuzey) 18%, transparent); color: inherit; display: grid; place-items: center; cursor: pointer; }
.sn-balon-tr { font-size: 15px; font-weight: 700; color: color-mix(in srgb, var(--sn-yuzey) 85%, var(--sn-vurgu)); }
.sn-balon-ok { grid-column: 1 / -1; font-size: 13px; opacity: .8; }
.sn-balon-et { grid-column: 1 / -1; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; opacity: .6; }
@keyframes sn-balon { from { opacity: 0; transform: scale(.85); } }

/* ---------- alt sayfa */
.sheet-back.sn-sayfa-ort { position: absolute; inset: 0; z-index: 60; padding: 0; align-items: flex-end; background: rgb(0 0 0 / 0); transition: background-color .2s; }
.sheet-back.sn-sayfa-ort.acik { background: rgb(0 0 0 / .45); }
.sn-sayfa { width: 100%; max-width: 560px; max-height: 88%; margin: 0 auto; overflow: auto; overscroll-behavior: contain; background: var(--sn-yuzey); color: var(--sn-murekkep); border-radius: 24px 24px 0 0; padding: 6px 16px calc(18px + env(safe-area-inset-bottom)); gap: 12px; transform: translateY(100%); transition: transform .28s cubic-bezier(.2, .7, .2, 1); box-shadow: 0 -10px 30px rgb(0 0 0 / .2); }
.sn-sayfa-ort.acik .sn-sayfa { transform: none; }
.sn-tutamac { display: block; width: 100%; height: 22px; border: 0; background: none; cursor: pointer; position: relative; flex: none; }
.sn-tutamac::before { content: ""; position: absolute; left: 50%; top: 8px; width: 44px; height: 5px; border-radius: 3px; background: var(--sn-cizgi); transform: translateX(-50%); }
.sn-sayfa-bas { margin: 0; font-size: 19px; font-weight: 800; }
.sn-sayfa-ic { display: flex; flex-direction: column; gap: 10px; }
.sn-secenek { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 10px 14px; border-radius: 16px; border: 2px solid var(--sn-cizgi); background: var(--sn-yuzey); text-align: left; cursor: pointer; box-shadow: 0 3px 0 var(--sn-cizgi); }
.sn-secenek:active { transform: translateY(3px); box-shadow: none; }
.sn-secenek b { display: block; font-size: 16px; } .sn-secenek small { display: block; color: var(--sn-soluk); font-size: 13px; }
.sn-secenek.on { border-color: var(--sn-vurgu); background: var(--sn-vurgu-ton); }
.sn-anahtar { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; padding: 6px 2px; cursor: pointer; }
.sn-anahtar input { width: 22px; height: 22px; accent-color: var(--sn-vurgu); flex: none; }
.sn-uyari { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--sn-soluk); margin: 0; }
.sn-uyari .ik { color: var(--sn-orta); margin-top: 1px; }

/* ---------- alt eylem çubuğu + defter cebi */
.sn-eylem { position: sticky; bottom: -20px; z-index: 7; margin: 6px -18px -20px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); min-height: 72px; display: flex; align-items: center; gap: 8px;
  background: color-mix(in srgb, var(--sn-zemin) 96%, transparent); border-top: 1px solid var(--sn-cizgi); }
.sn-eylem .sn-btn { flex: 1 1 auto; min-width: 0; padding: 10px 12px; }
.sn-eylem .sn-btn.ana { flex: 1.4 1 auto; }
.sn-eylem .sn-btn span.sn-kisa { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sn-cep { position: relative; display: inline-grid; place-items: center; width: 48px; height: 48px; flex: none; border-radius: 14px; border: 2px solid var(--sn-cizgi); background: var(--sn-yuzey); color: var(--sn-vurgu); cursor: pointer; box-shadow: 0 3px 0 var(--sn-cizgi); }
.sn-cep .ik svg { width: 24px; height: 24px; }
.sn-cep-rozet { position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--sn-kotu); color: var(--sn-kotu-ustu); font-size: 11px; font-weight: 800; display: grid; place-items: center; font-variant-numeric: tabular-nums; }
.sn-cep-rozet.zipla { animation: sn-zipla .4s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes sn-zipla { 40% { transform: scale(1.35); } }
.sn-ucan { position: fixed; z-index: 90; margin: 0; pointer-events: none; transition: transform .45s cubic-bezier(.5, 0, .3, 1), opacity .45s ease-in; background: var(--card); color: var(--ink); border: 1px solid var(--line); border-radius: 10px; padding: 6px 8px; }
.sn-mik-halka { position: relative; }
.sn-mik-halka.dinliyor::after { content: ""; position: absolute; inset: -5px; border-radius: 20px; border: 3px solid var(--sn-vurgu); animation: sn-halka 1.2s ease-out infinite; pointer-events: none; }
@keyframes sn-halka { from { opacity: .8; transform: scale(.96); } to { opacity: 0; transform: scale(1.08); } }
.sn-btn.nabiz, .sn-cep.nabiz { animation: sn-nabiz 1.4s ease-in-out infinite; }
@keyframes sn-nabiz { 50% { transform: scale(1.04); box-shadow: 0 4px 0 var(--sn-vurgu-koyu), 0 0 0 6px color-mix(in srgb, var(--sn-vurgu) 25%, transparent); } }

/* ---------- suflör kartı (sıra sende) */
.sn-suflor { position: sticky; bottom: 64px; z-index: 6; padding: 14px 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.sn-suflor-ust { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; color: var(--sn-soluk); text-transform: uppercase; }
.sn-suflor-metin { font-family: var(--sn-serif); font-size: 24px; line-height: 1.55; margin: 0; overflow-wrap: anywhere; }
.sn-suflor-alt { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; color: var(--sn-soluk); font-variant-numeric: tabular-nums; }
.sn-cip-sonuc { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-weight: 800; font-size: 14px; background: var(--sn-ok-zemin); color: var(--sn-ok); }
.sn-cip-sonuc.orta { background: color-mix(in srgb, var(--sn-orta) 16%, transparent); color: var(--sn-orta); }
.sn-cip-sonuc.kotu { background: var(--sn-kotu-zemin); color: var(--sn-kotu); }
.sn-hata { padding: 12px 14px; border-radius: var(--sn-r-sm); background: var(--sn-kotu-zemin); color: var(--sn-murekkep); font-size: 14px; display: flex; flex-direction: column; gap: 8px; }
/* takip notu 21 Eki, madde 29: mikrofonsuz replik kutusu (16 px: iPhone yakınlaştırmasın) */
.sn-yaz { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; padding: 10px 12px; border-radius: var(--sn-r-sm); border: 1px solid var(--sn-cizgi); background: var(--sn-yuzey); color: var(--sn-murekkep); }

/* ---------- karne */
.sn-karne { display: flex; flex-direction: column; gap: 12px; }
.sn-karne-ust { display: flex; align-items: center; gap: 16px; }
.sn-halka { position: relative; width: 104px; height: 104px; flex: none; display: grid; place-items: center; }
.sn-halka svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.sn-halka circle { fill: none; stroke-width: 9; }
.sn-halka .iz { stroke: var(--sn-yuzey-alt); }
.sn-halka .dolu { stroke: var(--sn-ok); stroke-linecap: round; transition: stroke-dashoffset .7s cubic-bezier(.2, .7, .2, 1); }
.sn-halka b { font-family: var(--sn-serif); font-size: 32px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; position: relative; top: -4px; }
.sn-halka small { position: absolute; bottom: 26px; font-size: 11px; color: var(--sn-soluk); }
.sn-karne-say p { margin: 2px 0; font-size: 15px; }
.sn-xp { color: var(--sn-vurgu); font-weight: 800; }
.sn-karne-nokta .sn-ip { height: 10px; }
.sn-karne-bas { margin: 4px 0 0; font-size: 15px; display: flex; align-items: center; gap: 6px; }
.sn-karne-bas .ik { color: var(--sn-vurgu); }
.sn-karne-bas .sn-cep-mini { width: 40px; height: 40px; margin-left: auto; border-radius: 12px; box-shadow: none; cursor: default; }   /* uçuşun hedefi (asıl cep karartmanın altında) */
.sn-karne-bas .sn-cep-mini .ik svg { width: 20px; height: 20px; }
.sn-defter { margin: 0; }
.sn-kok .pm { background: var(--sn-yuzey); color: var(--sn-murekkep); border: 1px solid var(--sn-cizgi); border-radius: 10px; padding: 6px 10px; cursor: pointer; text-align: left; }
.sn-karne-tam { display: flex; align-items: center; gap: 6px; color: var(--sn-ok); font-weight: 700; margin: 0; }
.sn-karne-dugme { display: flex; flex-direction: column; gap: 8px; }
.sn-duyulan summary { cursor: pointer; font-size: 13px; color: var(--sn-soluk); }
.sn-duyulan p { font-size: 13px; color: var(--sn-soluk); margin: 6px 0 0; }

/* ---------- soru kartı */
.sn-soru { display: flex; flex-direction: column; gap: 12px; }
.sn-soru-ust { display: flex; flex-direction: column; gap: 6px; }
.sn-soru-kart { position: relative; background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); border-radius: var(--sn-r); padding: 16px; box-shadow: var(--sn-golge); display: flex; flex-direction: column; gap: 12px; }
.sn-soru-kart[hidden] { display: none; }
.sn-soru.kip-hepsi .sn-soru-kart { box-shadow: none; }
.sn-soru-q { display: flex; align-items: flex-start; gap: 10px; }
.sn-soru-q p { flex: 1; margin: 0; font-size: 20px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.sn-soru.kip-hepsi .sn-soru-q p { font-size: 17px; }
.sn-soru-no { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--sn-vurgu-ton); color: var(--sn-vurgu); font-weight: 800; font-size: 14px; margin-top: 1px; }
.sn-soru-arac { display: inline-flex; align-items: center; gap: 2px; flex: none; }
.sn-soru-arac .speak.small { width: 40px; height: 40px; font-size: 17px; box-shadow: none; }
.sn-soru .opts { display: flex; flex-direction: column; gap: 8px; }
.sn-kok .sn-soru .opt { display: flex; align-items: center; gap: 12px; min-height: 56px; margin: 0; padding: 10px 14px; background: var(--sn-yuzey); color: var(--sn-murekkep); border: 2px solid var(--sn-cizgi); border-radius: 16px; font-size: 17px; font-weight: 600; box-shadow: 0 3px 0 var(--sn-cizgi); text-align: left; }
.sn-kok .sn-soru .opt.sel { border-color: var(--sn-vurgu); background: var(--sn-vurgu-ton); }
.sn-kok .sn-soru .opt.right { border-color: var(--sn-ok); background: var(--sn-ok-zemin); }
.sn-kok .sn-soru .opt.wrong { border-color: var(--sn-kotu); background: var(--sn-kotu-zemin); }
.sn-harf { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--sn-yuzey-alt); font-family: var(--sn-serif); font-weight: 700; font-size: 15px; }
.opt.sel .sn-harf { background: var(--sn-vurgu); color: var(--sn-ustu); }
.opt.right .sn-harf { background: var(--sn-ok); color: var(--sn-ok-ustu); } .opt.wrong .sn-harf { background: var(--sn-kotu); color: var(--sn-kotu-ustu); }
.sn-sik { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.sn-soru-gez { display: flex; gap: 10px; } .sn-soru-gez .sn-btn { flex: 1; }
.sn-soru-neden { font-size: 14px; color: var(--sn-soluk); display: flex; gap: 6px; align-items: flex-start; }
.sn-soru-neden .ik { color: var(--sn-orta); flex: none; margin-top: 1px; }
.sn-soru-kart .hatali-soru { margin: 0 0 0 auto; }
.sn-muhur { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sn-muhur.sesle { background: var(--sn-ok-zemin); color: var(--sn-ok); }
.sn-muhur.destekli { border: 1.5px solid var(--sn-cizgi); color: var(--sn-soluk); }
.sn-buyuk-puan { font-family: var(--sn-serif); font-size: 44px; font-weight: 700; margin: 0; line-height: 1.1; font-variant-numeric: tabular-nums; }

/* ---------- liste parçaları: kahraman, bilet, raf, kapı */
.sn-kahraman { position: relative; border-radius: var(--sn-r); overflow: hidden; color: #fff; box-shadow: var(--sn-golge); background: var(--sn-sahne); }
/* Riven 30 Eyl (denetim): resim ve içerik aynı ızgara hücresinde; en az 16:10, içerik uzunsa kart büyür (etiket/başlık kesilmez) */
.sn-kahraman { display: grid; grid-template-columns: minmax(0, 1fr); }
.sn-kahraman::before { content: ""; grid-area: 1 / 1; width: 100%; aspect-ratio: 16 / 10; }
.sn-kahraman > .sn-resim { grid-area: 1 / 1; align-self: stretch; }
.sn-kahraman .sn-resim::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(12 10 9 / .88), rgb(12 10 9 / .35) 70%, rgb(12 10 9 / .1)); }
.sn-kahraman-ic { grid-area: 1 / 1; align-self: end; position: relative; z-index: 1; padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; }
.sn-kahraman-ic .sn-etiket { color: var(--sn-altin); }
.sn-kahraman-ic h2 { margin: 0; font-size: 20px; font-weight: 800; line-height: 1.2; text-shadow: 0 1px 2px rgb(0 0 0 / .5); overflow-wrap: anywhere; }
.sn-kahraman-ic p { margin: 0; font-size: 14px; opacity: .9; }
.sn-kahraman-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.sn-kahraman .sn-sira { margin-top: 4px; flex-wrap: nowrap; } .sn-kahraman .sn-btn { min-height: 44px; }
.sn-kahraman .sn-sira > .sn-btn { flex: 1 1 auto; padding: 8px 12px; white-space: nowrap; font-size: 15px; }   /* "Sahneye çık" iki satıra bölünmesin */
.sn-kahraman .sn-btn.ince { background: rgb(255 255 255 / .14); border-color: rgb(255 255 255 / .3); color: #fff; box-shadow: none; }
.sn-rozet { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: var(--sn-yuzey-alt); color: var(--sn-murekkep); }
.sn-rozet.amac { background: var(--sn-ok-zemin); color: var(--sn-ok); }
.sn-kahraman .sn-rozet { background: rgb(255 255 255 / .18); color: #fff; }
.sn-amac-satir { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; padding: 10px 12px; border-radius: var(--sn-r-sm); background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); border-left: 4px solid var(--sn-ok); }
.sn-amac-satir button { border: 0; background: none; color: var(--sn-vurgu); font-weight: 800; padding: 4px 2px; cursor: pointer; }
.sn-kok .lv-chips { margin: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 6px; }
.sn-kok .lv-chips::-webkit-scrollbar { display: none; }
.sn-kok .lv-chips .chip { flex: none; background: var(--sn-yuzey); color: var(--sn-murekkep); }
.sn-kok .lv-chips .chip.on { background: var(--sn-vurgu-ton); color: var(--sn-vurgu); border-color: var(--sn-vurgu); }
.sn-biletler { display: flex; flex-direction: column; gap: 10px; }
.sn-kok .book.sn-bilet { position: relative; align-items: stretch; gap: 12px; padding: 10px 26px 10px 10px; border-radius: 18px; background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); box-shadow: 0 2px 0 var(--sn-cizgi);
  content-visibility: auto; contain-intrinsic-size: auto 96px;
  -webkit-mask: radial-gradient(circle 9px at right 0 50%, transparent 8.5px, #000 9px); mask: radial-gradient(circle 9px at right 0 50%, transparent 8.5px, #000 9px); }
.sn-kok .book.sn-bilet::after { content: ""; position: absolute; right: 16px; top: 12px; bottom: 12px; border-right: 2px dashed var(--sn-cizgi); }
.sn-kok .book.sn-bilet.done { background: var(--sn-yuzey); }
.sn-bilet .sn-resim { width: 112px; height: 70px; flex: none; border-radius: 12px; }
.sn-bilet .sn-resim .ik svg { width: 26px; }
.sn-bilet-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; justify-content: center; }
.sn-bilet-tx b { font-size: 16px; font-weight: 800; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sn-bilet-tx small { font-size: 13px; color: var(--sn-soluk); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sn-bilet-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 12px; color: var(--sn-soluk); margin-top: 3px; }
.sn-bilet-meta .sn-paralar .sn-para { --b: 20px; box-shadow: 0 0 0 1.5px var(--sn-yuzey); }
/* OYNANDI damgası resmin sol üst köşesinde (Riven 30 Eyl denetim: başlığın sonunu kapatıyordu) */
.sn-damga { position: absolute; left: 14px; top: 14px; transform: rotate(-8deg); box-shadow: 0 1px 4px rgb(0 0 0 / .25); display: inline-flex; align-items: center; gap: 3px; padding: 1px 7px; border: 2px solid var(--sn-ok); color: var(--sn-ok); border-radius: 6px; font-size: 10px; font-weight: 800; letter-spacing: .1em; background: var(--sn-yuzey); }
.sn-damga .ik svg { width: 11px; height: 11px; }
.sn-bos { text-align: center; padding: 24px 12px; color: var(--sn-soluk); display: flex; flex-direction: column; gap: 10px; align-items: center; }

/* hikâyeler ana salonu: kapılar */
.sn-sirada { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 12px; border-radius: var(--sn-r); background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); box-shadow: var(--sn-golge); cursor: pointer; }
.sn-sirada .sn-resim { width: 64px; height: 64px; border-radius: 14px; flex: none; }
.sn-sirada-tx { flex: 1; min-width: 0; } .sn-sirada-tx b { display: block; font-size: 16px; overflow-wrap: anywhere; } .sn-sirada-tx small { color: var(--sn-soluk); font-size: 13px; }
.sn-sirada > .ik { color: var(--sn-soluk); }
.sn-kapilar { display: flex; flex-direction: column; gap: 14px; }
.sn-kapi { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; border: 0; padding: 0; border-radius: var(--sn-r); overflow: hidden; cursor: pointer; text-align: left; color: #fff; box-shadow: var(--sn-golge); background: var(--sn-sahne); }
.sn-kapi:active { transform: scale(.99); }
.sn-kapi-zemin { position: absolute; inset: 0; }
.sn-kapi-zemin > .sn-resim { position: absolute; inset: 0; }
.sn-kapi::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(12 10 9 / .86), rgb(12 10 9 / .2) 62%, transparent); pointer-events: none; }
.sn-kapi-ic { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 12px 16px 14px; display: flex; flex-direction: column; gap: 2px; }
.sn-kapi-ic .sn-etiket { color: var(--sn-altin); }
.sn-kapi-ad { font-size: 20px; font-weight: 800; }
.sn-kapi-ic small { font-size: 13px; opacity: .9; line-height: 1.35; }
.sn-kapi-ic .sh-bar { background: rgb(255 255 255 / .25); margin: 6px 0 2px; }
.sn-kapi-ic .sh-bar b { background: var(--sn-altin); }
.sn-kapi-ic .sh-n { font-size: 12px; opacity: .85; font-variant-numeric: tabular-nums; }
.sn-kapi.okuma .sn-kapi-zemin { background: linear-gradient(160deg, var(--sn-kagit), color-mix(in srgb, var(--sn-kagit) 60%, #7a4a22)); }
.sn-yelpaze { position: absolute; top: 6%; left: 50%; width: 64%; height: 42%; transform: translateX(-50%); }
.sn-yelpaze .sn-resim { position: absolute; top: 0; height: 100%; aspect-ratio: 3 / 4; border-radius: 8px; box-shadow: 0 6px 14px rgb(0 0 0 / .3); }
.sn-yelpaze .sn-resim:nth-child(1) { left: 6%; top: 6%; transform: rotate(-9deg); }
.sn-yelpaze .sn-resim:nth-child(2) { left: 50%; transform: translateX(-50%); z-index: 1; }
.sn-yelpaze .sn-resim:nth-child(3) { right: 6%; top: 6%; transform: rotate(9deg); }
.sn-yelpaze .sn-resim-yedek b { font-size: 30px; }
.sn-kapi.ataturk { background: #3a0b12; }
.sn-kapi .sn-resim-yedek { place-items: start center; padding-top: 9%; }
.sn-kapi.ataturk .sn-kapi-ic .sn-etiket, .sn-kapi.ataturk .sh-bar b { color: var(--sn-altin); }

/* kitaplık */
.sn-acik-kitap { display: flex; gap: 14px; align-items: center; padding: 12px; border-radius: var(--sn-r); background: var(--sn-kagit); border: 1px solid var(--sn-kagit-cizgi); box-shadow: var(--sn-golge); }
.sn-acik-kitap .sn-resim { width: 90px; aspect-ratio: 3 / 4; border-radius: 4px 10px 10px 4px; flex: none; box-shadow: inset 6px 0 0 rgb(0 0 0 / .25), 0 6px 14px rgb(0 0 0 / .2); }
.sn-acik-kitap-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sn-acik-kitap-tx b { font-size: 17px; overflow-wrap: anywhere; } .sn-acik-kitap-tx small { color: var(--sn-soluk); font-size: 13px; }
.sn-raf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
.sn-kok .book.sn-kapak { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; border-radius: 6px 14px 14px 6px; overflow: hidden; background: var(--sn-kagit); border: 1px solid var(--sn-kagit-cizgi); box-shadow: var(--sn-golge); position: relative; content-visibility: auto; contain-intrinsic-size: auto 280px; }
.sn-kok .book.sn-kapak.done { background: var(--sn-kagit); }
.sn-kapak .sn-resim { aspect-ratio: 3 / 4; width: 100%; }
.sn-kapak::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; z-index: 2; background: linear-gradient(90deg, rgb(0 0 0 / .35), rgb(0 0 0 / .08)); }
.sn-kapak-et { padding: 8px 10px 10px 14px; display: flex; flex-direction: column; gap: 2px; }
.sn-kapak-et b { font-size: 15px; font-weight: 800; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sn-kapak-et small { font-size: 12px; color: var(--sn-soluk); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sn-kapak-et i { font-style: normal; font-size: 11px; color: var(--sn-soluk); font-variant-numeric: tabular-nums; }
.sn-kurdele { position: absolute; top: 10px; right: -30px; z-index: 3; transform: rotate(40deg); background: var(--sn-altin); color: #2a1d10; font-size: 10px; font-weight: 800; letter-spacing: .1em; padding: 3px 34px; box-shadow: 0 2px 6px rgb(0 0 0 / .25); }

/* ---------- resimli kitap okuyucu */
.sn-kitap-ust { display: flex; align-items: center; gap: 6px; }
.sn-kitap-ust .sn-sayfa-no { font-variant-numeric: tabular-nums; font-weight: 800; font-size: 14px; color: var(--sn-soluk); min-width: 44px; }
.sn-kitap-ust .sn-cipler { margin: 0 auto; }
.sn-aa { font-family: var(--sn-serif); font-weight: 700; font-size: 17px; }
.sn-serit { padding: 10px 12px; border-radius: var(--sn-r-sm); background: var(--sn-ok-zemin); color: var(--sn-murekkep); font-size: 14px; display: flex; gap: 8px; align-items: center; }
.sn-serit .ik { color: var(--sn-ok); }
.sn-kitap-sahne { aspect-ratio: 16 / 10; }
.sn-kitap-sahne .sn-katman { position: absolute; inset: 0; transition: opacity .4s ease; }
.sn-kitap-sahne .sn-katman.gelen { opacity: 0; }
.sn-kitap-sahne .sn-katman > .sn-resim { position: absolute; inset: 0; background: none; }
.sn-kitap-sahne::after { background: linear-gradient(to top, rgb(12 10 9 / .35), transparent 40%); }
.sn-kitap-sahne .sn-resim-yedek { display: grid !important; }
.sn-kitap-sahne.caliyor .sn-katman img { animation: sn-ken 18s ease-in-out infinite alternate; }
.sn-sayfa-kagit { position: relative; padding: 22px 20px 34px; min-height: 180px; perspective: 900px; }
.sn-sayfa-kagit, .sn-kitap-sahne { touch-action: pan-y; }   /* Riven 30 Eyl (denetim): yatay kaydırma bize kalsın; yoksa dokunmatikte pointercancel geliyor, sayfa dönmüyordu */
.sn-sayfa-kagit .sent { display: block; font-family: var(--sn-serif); font-size: var(--sn-yazi); line-height: 1.55; overflow-wrap: anywhere; }
/* Riven 30 Eyl (denetim): büyük ilk harf (::first-letter) kaldırıldı; kelime span'ının ilk harfini ayırıp balon, karaoke ve okuma rengini bölüyordu ("K|übra") */
.sn-sayfa-kagit .tr { display: none; margin-top: 12px; font-size: 15px; line-height: 1.5; color: var(--sn-soluk); font-family: inherit; }
.sn-sayfa-kagit.tr-acik .tr, .sn-sayfa-kagit .sent.show + .tr { display: block; }
.sn-sayfa-kagit .sn-kose { position: absolute; right: 16px; bottom: 10px; font-family: var(--sn-serif); font-size: 13px; color: var(--sn-soluk); }
.sn-sayfa-kagit .sn-ipucu { position: absolute; left: 20px; bottom: 10px; }
.sn-sayfa-kagit.cevir-ileri { animation: sn-cevir-ileri .28s cubic-bezier(.2, .7, .2, 1); }
.sn-sayfa-kagit.cevir-geri { animation: sn-cevir-geri .28s cubic-bezier(.2, .7, .2, 1); }
@keyframes sn-cevir-ileri { from { transform: translateX(28px) rotateY(-8deg); opacity: .2; box-shadow: -12px 0 24px rgb(0 0 0 / .15); } }
@keyframes sn-cevir-geri { from { transform: translateX(-28px) rotateY(8deg); opacity: .2; } }
.sn-kitap.sn-okuyor .sn-sayfa-kagit { transform: scale(1.01); box-shadow: 0 0 0 2px color-mix(in srgb, var(--sn-vurgu) 40%, transparent), var(--sn-golge); }
.sn-kitap.sn-okuyor .sn-arac, .sn-kitap.sn-okuyor .sn-sayfa-kagit .tr { display: none !important; }
.sn-arac { display: flex; gap: 8px; flex-wrap: wrap; }
.sn-arac .sn-btn { flex: 1 1 auto; min-height: 44px; font-size: 14px; padding: 8px 12px; }
.sn-arac .sn-btn.on { border-color: var(--sn-vurgu); color: var(--sn-vurgu); background: var(--sn-vurgu-ton); }
.sn-okuma-durum { font-size: 14px; color: var(--sn-soluk); text-align: center; margin: 0; font-variant-numeric: tabular-nums; min-height: 20px; }
.sn-kitap .sn-eylem .sn-ok-btn { flex: 0 0 48px; width: 48px; padding: 0; }
.sn-tam-metin .story { font-family: var(--sn-serif); font-size: 21px; line-height: 1.62; padding: 18px 16px; }
.sn-tam-metin.ileri .story { font-size: 19px; }
.sn-tam-metin .story .sent { display: inline; margin: 0; }
.sn-tam-metin .story .sent.show .tr { display: block; margin: 4px 0 10px; font-family: inherit; }
.sn-tam-metin .story .speak.small { width: 32px; height: 32px; font-size: 14px; box-shadow: none; vertical-align: middle; }
.sn-ata-kart { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.sn-ata-kart .at-quote { font-family: var(--sn-serif); font-size: 19px; font-style: italic; margin: 0; }
.sn-bitis { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 20px 16px; }
.sn-bitis .sn-koci { width: 120px; height: 120px; }
.sn-bitis h1 { margin: 0; font-size: 36px; font-family: var(--sn-serif); color: var(--sn-vurgu); }
.sn-kapanis { width: 72px; aspect-ratio: 3 / 4; border-radius: 4px 10px 10px 4px; overflow: hidden; animation: sn-kapan .3s ease-in both .2s; transform-origin: left center; box-shadow: var(--sn-golge); }
.sn-kapanis .sn-resim { width: 100%; height: 100%; }
@keyframes sn-kapan { from { transform: scaleX(1); } 50% { transform: scaleX(.2); } to { transform: scaleX(1); } }

/* ---------- Koçi */
.sn-koci { --b: 72px; display: inline-block; width: var(--b); height: var(--b); flex: none; }
.sn-koci svg { width: 100%; height: 100%; display: block; }

/* ---------- Koçi Stüdyo */
.sn-studyo-bas { display: flex; align-items: center; gap: 12px; }
.sn-studyo-bas .sn-baslik { flex: 1; min-width: 0; }
.sn-lv-cip { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; min-width: 52px; }
.sn-lv-cip small { font-size: 10px; font-weight: 700; color: var(--sn-soluk); font-variant-numeric: tabular-nums; }
.sn-kok .lv-chips .chip.sn-lv-cip { padding: 6px 10px; }
.sn-kok .lv-chips .chip.kendi { box-shadow: 0 3px 0 var(--sn-vurgu-koyu); }
.sn-ders-kahraman { position: relative; padding: 16px; border-radius: var(--sn-r); background: linear-gradient(160deg, var(--sn-sahne-2), var(--sn-sahne)); color: #fff; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--sn-golge); overflow: hidden; }
.sn-ders-kahraman h2 { margin: 0; font-size: 20px; font-weight: 800; line-height: 1.25; }
.sn-ders-kahraman p { margin: 0; font-size: 13px; opacity: .8; }
.sn-ders-kahraman .sn-sira .sn-btn.ince { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .3); color: #fff; box-shadow: none; }
.sn-yayinda { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; padding: 3px 10px; border-radius: 6px; border: 1.5px solid rgb(255 255 255 / .3); font-size: 11px; font-weight: 800; letter-spacing: .14em; color: rgb(255 255 255 / .55); }
.sn-yayinda::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.sn-yayinda.acik { color: #fff; border-color: var(--sn-yayinda); background: var(--sn-yayinda); animation: sn-yayin 1.6s ease-in-out infinite; }
@keyframes sn-yayin { 50% { box-shadow: 0 0 0 6px color-mix(in srgb, #e5484d 30%, transparent); } }
.sn-kaldigin { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--sn-r-sm); background: var(--sn-vurgu-ton); border: 1px solid color-mix(in srgb, var(--sn-vurgu) 30%, var(--sn-cizgi)); }
.sn-kaldigin-tx { flex: 1; min-width: 0; } .sn-kaldigin-tx b { display: block; font-size: 15px; } .sn-kaldigin-tx small { color: var(--sn-soluk); font-size: 13px; }
.sn-kaldigin .sn-btn { min-height: 44px; flex: none; }
.sn-zayif { display: flex; flex-direction: column; gap: 6px; }
.sn-zayif-satir { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: 12px; background: var(--sn-kotu-zemin); border: 0; border-left: 4px solid var(--sn-kotu); text-align: left; cursor: pointer; }
.sn-zayif-satir b { flex: 1; font-size: 15px; } .sn-zayif-satir small { font-size: 12px; color: var(--sn-kotu); font-weight: 800; }
.sn-kok .list.sn-bolumler { display: flex; flex-direction: column; gap: 8px; }
.sn-kok .sn-bolumler .item { display: flex; align-items: center; gap: 12px; text-align: left; background: var(--sn-yuzey); color: var(--sn-murekkep); border: 1px solid var(--sn-cizgi); border-radius: 16px; padding: 10px 12px; content-visibility: auto; contain-intrinsic-size: auto 64px; }
.sn-no-halka { flex: none; display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--sn-cizgi); font-weight: 800; font-size: 14px; color: var(--sn-soluk); font-variant-numeric: tabular-nums; }
.item.done .sn-no-halka { background: var(--sn-ok); border-color: var(--sn-ok); color: var(--sn-ok-ustu); }
.sn-bolum-tx { flex: 1; min-width: 0; } .sn-bolum-tx b { display: block; font-size: 16px; line-height: 1.3; } .sn-bolum-tx small { display: block; color: var(--sn-soluk); font-size: 12.5px; margin-top: 2px; }
.sn-kok .sn-bolum-tx .weak { font-weight: 800; }
.sn-gece-kart { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 0; border-radius: var(--sn-r); color: var(--sn-gece-yazi); background: linear-gradient(135deg, var(--sn-gece), #1b2340); text-align: left; cursor: pointer; box-shadow: var(--sn-golge); }
.sn-gece-kart .sn-koci { --b: 56px; }
.sn-gece-kart b { display: flex; align-items: center; gap: 6px; font-size: 16px; } .sn-gece-kart small { font-size: 13px; opacity: .75; }
.sn-gece-kart .sn-gece-tx { flex: 1; }

/* konu ekranı */
.sn-konu-bas { display: flex; align-items: flex-start; gap: 10px; }
.sn-konu-bas .sn-baslik { flex: 1; min-width: 0; }
.sn-parca3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border-radius: 16px; background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); }
.sn-parca3 button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; border: 0; border-radius: 12px; background: none; font-weight: 800; font-size: 14px; color: var(--sn-soluk); cursor: pointer; }
.sn-parca3 button.on { background: var(--sn-vurgu); color: var(--sn-ustu); }
.sn-kural { position: relative; padding: 14px 16px 16px; border-radius: var(--sn-r-sm); background: color-mix(in srgb, var(--primary) 12%, var(--card)); border-left: 4px solid var(--sn-vurgu); }
.sn-kural .sn-etiket { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.sn-kural p { margin: 0; font-size: 19px; font-weight: 700; line-height: 1.4; }
.sn-kural .sn-en { color: var(--sn-vurgu); font-weight: 800; }
.sn-sohbet { display: flex; flex-direction: column; gap: 8px; }
.sn-mesaj { display: flex; align-items: flex-end; gap: 8px; max-width: 92%; }
.sn-mesaj .sn-koci { --b: 28px; }
.sn-mesaj-balon { padding: 10px 12px; border-radius: 18px 18px 18px 6px; background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); font-size: 15px; line-height: 1.45; }
.sn-mesaj-balon small { display: block; font-size: 11px; font-weight: 800; letter-spacing: .08em; color: var(--sn-soluk); text-transform: uppercase; margin-bottom: 2px; }
.sn-mesaj.sen { align-self: flex-end; flex-direction: row-reverse; }
.sn-mesaj.sen .sn-mesaj-balon { border-radius: 18px 18px 6px 18px; background: var(--sn-kotu-zemin); border-color: color-mix(in srgb, var(--sn-kotu) 40%, var(--sn-cizgi)); color: var(--sn-kotu); }
.sn-mesaj.sen .sn-mesaj-balon s { font-size: 16px; font-weight: 700; }
.sn-mesaj .sn-dogru { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: 17px; }
.sn-mesaj .sn-dogru .ik { color: var(--sn-ok); }
.sn-mesaj .speak.small { width: 36px; height: 36px; font-size: 15px; box-shadow: none; }
.sn-zaman { position: relative; display: flex; flex-direction: column; gap: 14px; padding-left: 38px; }
.sn-zaman::before { content: ""; position: absolute; left: 13px; top: 8px; bottom: 8px; width: 2px; background: var(--sn-cizgi); }
.sn-zaman-bolum { position: relative; }
.sn-zaman-bolum > i { position: absolute; left: -38px; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--sn-yuzey); border: 2px solid var(--sn-vurgu); color: var(--sn-vurgu); font-style: normal; font-weight: 800; font-size: 13px; display: grid; place-items: center; }
.sn-zaman-bolum h3 { margin: 2px 0 4px; font-size: 17px; }
.sn-zaman-bolum p { margin: 0; font-size: 16px; line-height: 1.6; max-width: 62ch; }
.sn-ornekler { display: flex; flex-direction: column; gap: 10px; }
.sn-kok .ex.sn-ornek { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--sn-cizgi); border-radius: var(--sn-r-sm); background: var(--sn-yuzey); cursor: pointer; }
.sn-ornek-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sn-ornek .wrong { color: var(--sn-kotu); text-decoration: line-through; font-size: 14px; display: flex; gap: 4px; align-items: center; }
.sn-ornek .en { font-size: 18px; font-weight: 700; line-height: 1.4; }
.sn-ornek .tr { color: var(--sn-soluk); font-size: 14px; }
.sn-ornek .note { font-size: 13px; color: var(--sn-murekkep); display: flex; gap: 6px; align-items: flex-start; margin-top: 4px; }
.sn-ornek .note .ik { color: var(--sn-orta); flex: none; }
.sn-ornek .speak.small { width: 40px; height: 40px; font-size: 17px; box-shadow: none; flex: none; }
.sn-kok .ex.sn-ornek.playing { background: var(--sn-vurgu-ton); outline: 2px solid var(--sn-vurgu); }
.sn-cepkart { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.sn-cepkart h3 { margin: 0; font-size: 16px; display: flex; gap: 6px; align-items: center; }
.sn-cepkart p { margin: 0; display: flex; gap: 8px; align-items: flex-start; font-size: 15px; line-height: 1.5; }
.sn-cepkart p .ik { color: var(--sn-ok); flex: none; margin-top: 2px; }
.sn-bolum-kart { padding: 16px; display: flex; flex-direction: column; gap: 12px; background: var(--sn-yuzey); border: 1px solid var(--sn-cizgi); border-radius: var(--sn-r); }
.sn-bolum-kart > h2 { margin: 0; font-size: 18px; display: flex; align-items: center; gap: 8px; }
.sn-bolum-kart > h2 .ik { color: var(--sn-vurgu); }

/* stüdyo (dinle) — her temada koyu */
.sn-studyo-kart { position: relative; padding: 16px; border-radius: var(--sn-r); color: #fff; background: radial-gradient(ellipse at 20% 0, var(--sn-spot), transparent 60%), linear-gradient(160deg, var(--sn-sahne-2), var(--sn-sahne)); box-shadow: var(--sn-golge); display: flex; flex-direction: column; gap: 12px; }
.sn-studyo-ust { display: flex; align-items: center; gap: 12px; }
.sn-studyo-ust .sn-koci { --b: 120px; margin: -6px 0 -8px -6px; }
.sn-studyo-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.sn-studyo-tx b { font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; }
.sn-studyo-tx span { font-size: 13px; opacity: .75; overflow-wrap: anywhere; }
.sn-studyo .sn-kontrol .sn-ikon-btn { color: #fff; }
.sn-studyo .sn-oynat { width: 72px; height: 72px; }
.sn-studyo .sn-oynat .ik svg { width: 30px; height: 30px; }
.sn-studyo .sn-cipler { border-color: rgb(255 255 255 / .25); }
.sn-studyo .sn-cipler button { color: rgb(255 255 255 / .65); }
.sn-studyo .sn-cipler button.on { background: rgb(255 255 255 / .16); color: #fff; }
.sn-narseg { display: flex; gap: 3px; }
.sn-narseg .sn-ip { --c: var(--sn-altin); }
.sn-narseg i.sn-ip, .sn-narseg button.sn-ip::before { background: rgb(255 255 255 / .18); }   /* Riven 30 Eyl (denetim): düğme 24 px dokunma alanı, 8 px iz ortada; 8 px'e ezilince dolgu dışarıda kalıp kırpılıyordu */
.sn-narseg-et { display: flex; justify-content: space-between; font-size: 11px; opacity: .65; margin-top: 4px; }
.sn-altyazi-kart { position: relative; padding: 16px; display: flex; flex-direction: column; gap: 12px; max-height: 60vh; overflow: auto; scroll-behavior: smooth; }
.sn-altyazi-kart p { margin: 0; font-size: 17px; line-height: 1.6; opacity: .55; padding-left: 12px; border-left: 3px solid transparent; transition: opacity .24s, border-color .24s; }
.sn-altyazi-kart p.simdi { opacity: 1; border-left-color: var(--sn-vurgu); }
.sn-cip-en { display: inline; border: 0; padding: 1px 6px; margin: 0 1px; border-radius: 8px; background: var(--sn-vurgu-ton); color: var(--sn-vurgu); font-weight: 600; cursor: pointer; font-size: inherit; line-height: inherit; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.sn-devam-cip { display: inline-flex; align-items: center; gap: 4px; border: 0; border-radius: 999px; background: var(--sn-vurgu); color: var(--sn-ustu); font-weight: 800; font-size: 13px; padding: 3px 10px; margin-left: 4px; cursor: pointer; vertical-align: middle; }

/* test yolu */
.sn-patika-ust { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--sn-soluk); flex-wrap: wrap; font-variant-numeric: tabular-nums; }
.sn-patika { display: flex; align-items: center; overflow-x: auto; padding: 10px 2px 6px; scrollbar-width: none; }
.sn-patika::-webkit-scrollbar { display: none; }
.sn-patika-cizgi { flex: 1 0 8px; height: 3px; background: var(--sn-cizgi); border-radius: 2px; }
.sn-patika-cizgi.dolu { background: var(--sn-ok); }
.sn-dugum { flex: none; display: flex; flex-direction: column; align-items: center; gap: 4px; border: 0; background: none; cursor: pointer; padding: 0; }
.sn-dugum > span:first-child { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; font-weight: 800; font-size: 16px; background: var(--koci-yuzey-alt, color-mix(in srgb, var(--card) 90%, var(--ink))); color: var(--sn-murekkep); border: 2px solid var(--sn-cizgi); }
.sn-dugum small { font-size: 11px; color: var(--sn-soluk); letter-spacing: .04em; white-space: nowrap; }
.sn-dugum.gecti > span:first-child { background: var(--sn-ok); border-color: var(--sn-ok); color: var(--sn-ok-ustu); }
.sn-dugum.kaldi > span:first-child { background: color-mix(in srgb, var(--sn-orta) 18%, var(--card)); border-color: var(--sn-orta); color: var(--sn-orta); }
.sn-dugum.sira > span:first-child { border-color: var(--sn-vurgu); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sn-vurgu) 25%, transparent); animation: sn-nabiz 1.4s ease-in-out infinite; }
.sn-yildiz { display: inline-flex; gap: 1px; color: var(--sn-orta); } .sn-yildiz .ik svg { width: 10px; height: 10px; }
.sn-yildiz .bos { opacity: .3; }
.sn-madalya { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--sn-altin) 22%, var(--card)); font-weight: 800; }
.sn-madalya .ik { color: #b8811c; }

/* konu testi sonucu */
.sn-test-sonuc { display: flex; align-items: center; gap: 14px; padding: 16px; }
.sn-test-sonuc .sn-koci { --b: 96px; }
.sn-yanlis-grup { display: flex; flex-direction: column; gap: 8px; padding: 12px 0; border-top: 1px solid var(--sn-cizgi); }
.sn-yanlis-grup:first-of-type { border-top: 0; }
.sn-yanlis-bas { font-weight: 800; font-size: 14px; display: flex; gap: 6px; align-items: flex-start; }
.sn-yanlis-bas .ik { color: var(--sn-orta); flex: none; }
.sn-yanlis { font-size: 15px; display: flex; flex-direction: column; gap: 2px; }
.sn-yanlis s { color: var(--sn-kotu); font-size: 14px; } .sn-yanlis .dogru { color: var(--sn-ok); font-weight: 800; }

/* ---------- uyurken dinle (temadan bağımsız gece) */
.sn-gece { color: var(--sn-gece-yazi); background: radial-gradient(ellipse at 50% 0, #26305a, var(--sn-gece) 70%); border-radius: var(--sn-r); padding: 20px 16px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
body.sleeping .sn-gece { background: none; }
.sn-gece .sn-koci { --b: 96px; animation: sn-nefes 4s ease-in-out infinite; }
@keyframes sn-nefes { 50% { transform: scale(1.03); } }
.sn-gece h1, .sn-gece h2 { margin: 0; font-size: 20px; color: var(--sn-gece-yazi); overflow-wrap: anywhere; }
.sn-gece p { margin: 0; color: color-mix(in srgb, var(--sn-gece-yazi) 70%, transparent); font-size: 14px; }
.sn-gece .chips { justify-content: center; }
.sn-kok.sn-gece .chip { background: rgb(255 255 255 / .06); color: var(--sn-gece-yazi); border-color: rgb(255 255 255 / .2); box-shadow: none; }
.sn-kok.sn-gece .chip.on { background: rgb(255 255 255 / .18); border-color: #fff; color: #fff; }
.sn-gece-halka { position: relative; width: 180px; height: 180px; display: grid; place-items: center; }
.sn-gece-halka svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.sn-gece-halka circle { fill: none; stroke-width: 6; }
.sn-gece-halka .iz { stroke: rgb(255 255 255 / .12); } .sn-gece-halka .dolu { stroke: #aab8ff; stroke-linecap: round; transition: stroke-dashoffset 1s linear; }
.sn-gece-halka #slTime { font-size: 40px; font-weight: 700; font-variant-numeric: tabular-nums; }
.sn-gece-sira { display: flex; gap: 14px; justify-content: center; }
.sn-gece-btn { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1.5px solid rgb(255 255 255 / .35); background: rgb(255 255 255 / .06); color: #fff; cursor: pointer; }
.sn-gece-btn.buyuk { width: 72px; height: 72px; }
.sn-gece-btn .ik svg { width: 24px; height: 24px; }
.sn-gece .sn-btn.bos { color: color-mix(in srgb, var(--sn-gece-yazi) 70%, transparent); }
.sn-gece .sn-btn.ana { background: #aab8ff; border-color: #aab8ff; color: #0f1424; box-shadow: 0 4px 0 #6f7fcf; }

/* ---------- duyuru */
.sn-duyuru { position: fixed; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom)); z-index: 95; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; background: var(--ink); color: var(--card); padding: 10px 16px; border-radius: 14px; font-size: 14px; font-weight: 700; transition: opacity .2s, transform .2s; max-width: calc(100vw - 32px); }
.sn-duyuru.acik { opacity: 1; transform: translate(-50%, 0); }

/* ---------- dar ekran */
@media (max-width: 360px) {
  .sn-kok { --sn-yazi: 22px; }
  .sn-suflor-metin { font-size: 21px; }
  .sn-bilet .sn-resim { width: 88px; height: 56px; }
  .sn-studyo-ust .sn-koci { --b: 96px; }
}
@media (min-width: 700px) { .sn-kok .dlg-line { max-width: 80%; } }

/* ---------- hareket azaltma: Ken Burns, nabız, pop, rotateY, uçuş, ağız döngüsü kapanır; yerine kısa solma */
@media (prefers-reduced-motion: reduce) {
  .sn-kok *, .sn-kok *::before, .sn-kok *::after, .sn-sayfa-ort, .sn-sayfa, .sn-ucan { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .15s !important; }
  .sn-sahne.caliyor > .sn-resim img, .sn-kitap-sahne.caliyor .sn-katman img { animation: none !important; }
  .sn-sayfa-kagit.cevir-ileri, .sn-sayfa-kagit.cevir-geri { animation: sn-belir .15s ease-out !important; }
}

/* ---------- yazdırma: denetimler gizli, kâğıt beyaz */
@media print {
  .sn-eylem, .sn-kontrol, .sn-sahne, .sn-mini, .sn-studyo-kart, .sn-cep, .sn-mod, .sn-adimlar, .sn-parca3, .sn-arac, .sn-suflor, .sn-balon, .sn-sayfa-ort { display: none !important; }
  .sn-kagit, .sn-kok .dlg-nar, .sn-kural, .sn-kok .ex.sn-ornek { background: #fff !important; box-shadow: none !important; }
  .sn-kok { color: #000; }
}

/* ---------- ekler: kelime şeridi, hız çipi, sahne katmanı, paylaş yeri */
.sn-serit-kelime { border: 1px solid var(--sn-cizgi); border-radius: var(--sn-r-sm); background: var(--sn-yuzey); padding: 0 12px; }
.sn-serit-kelime summary { display: flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 800; font-size: 14px; cursor: pointer; list-style: none; }
.sn-serit-kelime summary::-webkit-details-marker { display: none; }
.sn-serit-kelime summary .ik { color: var(--sn-vurgu); }
.sn-serit-kelime summary::after { content: "›"; margin-left: auto; transform: rotate(90deg); color: var(--sn-soluk); transition: transform .2s; }
.sn-serit-kelime[open] summary::after { transform: rotate(-90deg); }
.sn-kelime-cipler { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 12px; scrollbar-width: none; }
.sn-kelime-cipler::-webkit-scrollbar { display: none; }
.sn-kelime-cip { flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 8px 12px; border-radius: 14px; border: 1.5px solid var(--sn-cizgi); background: var(--sn-kagit); cursor: pointer; text-align: left; max-width: 200px; }
.sn-kelime-cip b { font-size: 15px; } .sn-kelime-cip i { font-size: 12px; color: var(--sn-vurgu); } .sn-kelime-cip small { font-size: 12px; color: var(--sn-soluk); }
.sn-hiz-cip { min-width: 48px; min-height: 36px; padding: 0 10px; border-radius: 999px; border: 2px solid var(--sn-cizgi); background: none; font-weight: 800; font-size: 13px; cursor: pointer; font-variant-numeric: tabular-nums; color: var(--sn-murekkep); }
.sn-studyo .sn-hiz-cip { border-color: rgb(255 255 255 / .25); color: #fff; }
/* 🎙️ Koçi'nin sesi düğmesi (Riven 5 Eki: "buraya bir tık, bastıkça değişsin"): ±15'in yanında, hız çiplerinin solunda; simge üstte, ses adı altta (dar ekranda sığsın) */
.sn-ses-cip { flex: none; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; width: 54px; min-height: 48px; padding: 4px 2px; margin-left: 2px; border-radius: 14px; border: 1.5px solid var(--sn-cizgi); background: none; color: var(--sn-murekkep); font-size: 11px; font-weight: 800; line-height: 1.1; cursor: pointer; }
.sn-ses-cip .ik svg { width: 20px; height: 20px; }
.sn-ses-cip b { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; }
.sn-ses-cip:active { transform: scale(.95); }
.sn-ses-cip:disabled { opacity: .55; }
.sn-studyo .sn-ses-cip { border-color: rgb(255 255 255 / .25); background: rgb(255 255 255 / .06); color: #fff; }
.sn-kitap-sahne .sn-resim.sn-ust { background: none; }
.sn-paylas:empty { display: none; }
.sn-paylas .paylas-sor { margin: 0 auto; display: block; }
.sn-okuarac { display: flex; flex-direction: column; gap: 6px; }
.sn-okuarac[hidden] { display: none; }
.sn-okuarac #readNote { margin: 0; }
.sn-kok.prova .sn-mod, .sn-kok.prova .sn-adimlar, .sn-kok.prova .sn-oynatma, .sn-kok.prova .sn-serit-kelime, .sn-kok.prova #snOkuArac { display: none; }
/* Riven 30 Eyl (denetim): prova sürerken ses çıkaran denetimler yok (mini sahnenin ▶/⋯, senaryodaki hoparlör ve ℹ️); hoparlör sesi mikrofona girip puanı bozuyordu */
.sn-kok.prova .sn-mini .sn-ikon-btn, .sn-kok.prova #dlg .speak, .sn-kok.prova #dlg .info, .sn-kok.prova #dlg .why-panel { display: none; }
/* mini sahnede konuşan para öne çıkar, öbürü söner */
.sn-mini .sn-para.konusuyor { z-index: 1; }
.sn-mini.konusan .sn-para:not(.konusuyor) { opacity: .5; }
/* Riven 30 Eyl (denetim): Resimli Kitap telefonda — kâğıt, Dinle ve araçlar ilk ekranda; sesli okurken başlık gizli, sahne ince, yeni sayfa görünüre kayar */
.sn-kok.sn-kitap { gap: 10px; }
.sn-kitap > .sn-baslik h1 { font-size: 19px; margin: 0 0 2px; }
.sn-kitap-sahne { aspect-ratio: 16 / 9; }
@media (max-height: 860px) { .sn-kitap-sahne { aspect-ratio: 16 / 8; } }
@media (max-height: 740px) { .sn-kitap-sahne { aspect-ratio: 16 / 7; } }
.sn-kitap.sn-okuyor .sn-kitap-sahne { aspect-ratio: 16 / 6; }
.sn-kitap.sn-okuyor > .sn-baslik, .sn-kitap.sn-okuyor > .sn-serit { display: none; }
.sn-kitap > .sn-serit { padding: 6px 10px; font-size: 13px; }   /* "okudun" şeridi ince: bitmiş kitapta araçlar alt çubuğun altına inmesin */
.sn-sayfa-kagit { scroll-margin: 64px 0 112px; }
.sn-okuma-durum:empty { display: none; }
.sn-kagit-ses { float: right; margin: -14px -12px 4px 6px; color: var(--sn-vurgu); }
.sn-kitap.sn-okuyor .sn-kagit-ses { display: none; }
.sn-kitap .sn-eylem .sn-oku-dur { flex: 0 0 auto; }
.sn-kitap:not(.sn-okuyor) .sn-oku-dur, .sn-kitap.sn-okuyor .sn-eylem .sn-ok-btn, .sn-kitap.sn-okuyor .sn-eylem #done { display: none; }
.sn-sonuc-kart { padding: 16px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.sn-rol-kart { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.sn-rol-kart h3 { margin: 0; font-size: 18px; display: flex; gap: 8px; align-items: center; }
.sn-rol-kart p { margin: 0; font-size: 15px; line-height: 1.5; }
.sn-rol-kart textarea { width: 100%; min-height: 110px; border-radius: 14px; border: 2px solid var(--sn-cizgi); background: var(--sn-yuzey); color: var(--sn-murekkep); padding: 12px; font: inherit; font-size: 16px; }
.sn-ata-not { font-size: 13px; color: var(--sn-soluk); margin: 0; }
.sn-cumle-bilgi { font-size: 14px; }
/* hidden özniteliği görünüm kurallarından önce gelsin (düğmeler inline-flex/grid) */
.sn-kok [hidden] { display: none !important; }
.sn-kok .dlg-line .bubble::before { display: none; }
.sn-ip.ok.simdi b, .sn-ip.orta.simdi b, .sn-ip.kotu.simdi b { outline: 2px solid var(--sn-murekkep); outline-offset: 1px; }
.sn-patika { align-items: flex-start; } .sn-patika-cizgi { margin-top: 21px; }
.sn-halka.orta .dolu { stroke: var(--sn-orta); } .sn-halka.kotu .dolu { stroke: var(--sn-kotu); }
.sn-bolum-kart.sn-test-sonuc { flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; text-align: center; }
.sn-test-sonuc > div { flex: 1 1 100%; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.sn-test-sonuc .sn-yildiz .ik svg { width: 22px; height: 22px; }

/* ---- Koçi anlatsın · tasarım yenilemesi (Riven 24 Eki): stüdyo kartı + ilerleme halkası, seviye çiplerinde ilerleme çubuğu, araçlar iki sütun, konu kartları ---- */
.sn-studyo-hero { padding: 14px 16px 12px; border-radius: var(--sn-r); background: linear-gradient(160deg, var(--sn-vurgu-ton), var(--sn-yuzey) 70%); border: 1px solid var(--sn-cizgi); box-shadow: var(--sn-golge); display: flex; flex-direction: column; gap: 12px; }
.sn-hero-ust { display: flex; align-items: center; gap: 12px; }
.sn-hero-ust .sn-koci { --b: 72px; flex: none; }
.sn-hero-tx { flex: 1; min-width: 0; }
.sn-hero-tx .sn-etiket { color: var(--sn-vurgu); }
.sn-hero-tx h1 { margin: 2px 0 0; font-size: 24px; line-height: 1.15; font-weight: 800; color: var(--sn-murekkep); }
.sn-hero-tx p { margin: 4px 0 0; font-size: 13px; color: var(--sn-soluk); }
.sn-halka { --p: 0; position: relative; flex: none; width: 58px; height: 58px; border-radius: 50%; background: conic-gradient(var(--sn-vurgu) calc(var(--p) * 1%), var(--sn-cizgi) 0); display: grid; place-items: center; }
.sn-halka::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--sn-yuzey); }
.sn-halka b { position: relative; font-size: 13px; font-weight: 800; color: var(--sn-murekkep); font-variant-numeric: tabular-nums; }
.sn-studyo-hero .lv-chips { margin: 0; gap: 6px; }
.sn-kok .sn-studyo-hero .chip.sn-lv-cip { min-width: 54px; padding: 6px 8px 7px; gap: 3px; }
.sn-lv-bar { display: block; width: 100%; height: 3px; border-radius: 2px; background: var(--sn-cizgi); overflow: hidden; }
.sn-lv-bar b { display: block; height: 100%; border-radius: 2px; background: var(--sn-vurgu); }
.chip.sn-lv-cip.on .sn-lv-bar b { background: currentColor; }
.sn-araclar { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sn-arac { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 6px; min-height: 96px; padding: 12px; border-radius: var(--sn-r-sm); border: 1px solid var(--sn-cizgi); background: var(--sn-yuzey); color: var(--sn-murekkep); text-align: left; cursor: pointer; box-shadow: var(--sn-golge); }
.sn-arac > .ik { color: var(--sn-vurgu); } .sn-arac > .ik svg { width: 24px; height: 24px; }
.sn-arac b { font-size: 15px; line-height: 1.2; } .sn-arac small { font-size: 12.5px; line-height: 1.3; color: var(--sn-soluk); }
.sn-arac-ust { display: flex; align-items: center; gap: 6px; } .sn-arac-ust .sn-koci { --b: 40px; } .sn-arac-ust svg { width: 20px; height: 20px; }
.sn-arac.gece { color: var(--sn-gece-yazi); background: linear-gradient(135deg, var(--sn-gece), #1b2340); border: 0; }
.sn-arac.gece small { color: inherit; opacity: .75; } .sn-arac.gece .sn-arac-ust svg { color: var(--sn-altin); }
.sn-liste-bas { display: flex; align-items: center; gap: 8px; margin: 4px 0 -4px; font-size: 18px; font-weight: 800; }
.sn-liste-bas .ik { color: var(--sn-vurgu); } .sn-liste-bas span { font-size: 13px; font-weight: 600; color: var(--sn-soluk); }
.sn-kok .sn-bolumler .item { padding: 12px 10px 12px 14px; border-radius: 18px; box-shadow: var(--sn-golge); }
.sn-kok .sn-bolumler .item.devam { border-color: var(--sn-vurgu); background: var(--sn-vurgu-ton); }
.sn-kok .sn-bolumler .item.done { opacity: .82; }
.sn-kok .sn-bolumler .sn-no-halka { border-color: color-mix(in srgb, var(--sn-vurgu) 45%, var(--sn-cizgi)); color: var(--sn-vurgu); background: var(--sn-vurgu-ton); }
.sn-kok .sn-bolumler .item.done .sn-no-halka { background: var(--sn-ok); border-color: var(--sn-ok); color: var(--sn-ok-ustu); }
.sn-bolum-tx small { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sn-bolum-tx small > span { display: inline-flex; align-items: center; gap: 3px; }
.sn-bolum-tx small .ik svg { width: 13px; height: 13px; }
.sn-bolum-tx .sn-sesli { color: var(--sn-vurgu); font-weight: 700; }
.sn-bolum-tx .sn-devam-et { color: var(--sn-vurgu); font-weight: 800; }
.sn-kok .sn-bolum-tx .weak { color: var(--sn-kotu); }
.sn-bolum-ok { flex: none; display: inline-grid; place-items: center; color: var(--sn-soluk); opacity: .55; } .sn-bolum-ok svg { width: 18px; height: 18px; }
@media (max-width: 360px) { .sn-araclar { grid-template-columns: 1fr; } .sn-hero-ust .sn-koci { --b: 60px; } }
