/* EŞİK — BÜYÜK FELAKET (7-54 → 7-60), yeniden yazım (felaket.js). Animasyonlar !important: static-reader.css hepsini söndürür. */
#cfSahneArka{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}
html:not(.night) #cfSahneArka{opacity:.6}
/* ilerleme çizgisi: ütopyada lake kırmızısı ve fener altını; gölge Subaru'yu yutunca (a7CfLost) mor-kara */
html.cfOn:not(.a7CfLost) .readProgress{background:linear-gradient(90deg,#5a120e,#c2452a 55%,#efb35e)!important;box-shadow:0 0 8px rgba(230,120,60,.55)}

/* ---------- Yutulan / kaçan sözcük (kara kolların kapışı) ---------- */
.flow .cfKap{display:inline-block;position:relative;transition:color .7s ease,text-shadow .7s ease,filter .7s ease!important}
.flow .cfKap.yendi{color:#c9b3ea;text-shadow:0 0 1px #000,0 0 7px rgba(110,40,190,.95),0 0 16px rgba(20,4,30,.9);filter:blur(.35px)}
.flow .cfKap.yendi:hover{filter:none;color:#e6dcff}
html:not(.night) .flow .cfKap.yendi{color:#3a1458;text-shadow:0 0 6px rgba(110,40,190,.6)}
.flow .cfKap.kacti{animation:cfKac .8s cubic-bezier(.2,.9,.3,1)!important}
@keyframes cfKac{0%{transform:none}25%{transform:translate(-5px,-4px) rotate(-3deg)}55%{transform:translate(3px,1px)}100%{transform:none}}

/* ---------- Ruh Evliliği: i harflerinin noktası tek gözlü bir ruh ateşi olur ---------- */
.flow .cfI{position:relative}
.flow .cfI::after{content:"";position:absolute;left:50%;top:-.2em;width:.5em;height:.68em;margin-left:-.25em;pointer-events:none;opacity:0;transform-origin:50% 82%;
 background:radial-gradient(ellipse 30% 22% at 50% 70%,rgba(255,252,240,1) 0 40%,rgba(255,236,190,.9) 60%,rgba(255,236,190,0) 100%),
  radial-gradient(ellipse 46% 40% at 50% 66%,rgba(255,150,70,.95) 0,rgba(255,80,40,.7) 55%,rgba(220,30,20,0) 100%),
  radial-gradient(ellipse 22% 50% at 50% 40%,rgba(255,110,50,.75) 0,rgba(255,60,30,0) 100%);
 filter:drop-shadow(0 0 .14em rgba(255,70,30,.85));mix-blend-mode:screen}
html.cfOn .cfAlevli.on .cfI::after{animation:cfIYan .9s ease-out var(--d,0ms) both,cfITitre 1.4s ease-in-out calc(var(--d,0ms) + .9s) infinite alternate!important}
html.cfOn .cfAlevli.on.cfStill .cfI::after{opacity:.92;animation:cfITitre 1.4s ease-in-out infinite alternate!important}
html.cfOn .cfAlevli.sondu .cfI::after{opacity:0;transition:opacity 1.6s ease!important;animation:none!important}
@keyframes cfIYan{0%{opacity:0;transform:scale(.2)}55%{opacity:1;transform:scale(1.3)}100%{opacity:.92;transform:scale(1)}}
@keyframes cfITitre{0%{transform:scale(1) skewX(-3deg);opacity:.86}50%{transform:scale(1.07,1.16) skewX(2deg);opacity:1}100%{transform:scale(.95,1.04) skewX(-1deg);opacity:.9}}
html:not(.night) .flow .cfI::after{mix-blend-mode:normal}
@media (prefers-reduced-motion:reduce){html.cfOn .cfAlevli.on .cfI::after{animation:none!important;opacity:.9}}
/* a52c: ekran dışındaki satırın ruh ateşi duraklar (görünmez; her karede stil hesaplatmasın), dönünce kaldığı yerden sürer */
html.cfOn .flow .cfAlevli.on.cfUzak .cfI::after{animation-play-state:paused!important}

/* ---------- 7-57 boşluk: fiiller anlattığını yapar, kopan sözcükler yüzer ---------- */
html.cfVoid .flow :is(.cfSal,.cfDol,.cfSav,.cfCig){display:inline-block}
html.cfVoid .flow .cfSal{transform-origin:50% 0;animation:cfSal 3.2s ease-in-out infinite!important}
html.cfVoid .flow .cfDol{animation:cfDol 6s linear infinite!important}
html.cfVoid .flow .cfSav{animation:cfSav 2.6s cubic-bezier(.4,0,.2,1) infinite!important}
html.cfVoid .flow .cfCig{animation:cfCig 1.7s ease-in-out infinite!important}
@keyframes cfSal{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes cfDol{0%,100%{transform:translate(0,0)}25%{transform:translate(6px,-4px)}50%{transform:translate(0,-7px)}75%{transform:translate(-6px,-3px)}}
@keyframes cfSav{0%,100%{transform:translate(0,0) rotate(0)}30%{transform:translate(14px,-6px) rotate(9deg)}60%{transform:translate(-8px,3px) rotate(-6deg)}}
@keyframes cfCig{0%,100%{transform:scale(1,1)}40%{transform:scale(1.08,.7)}60%{transform:scale(.9,1.12)}}
.flow .cfUzuv{display:inline-block;transition:translate 2.4s cubic-bezier(.3,.6,.2,1),rotate 2.4s cubic-bezier(.3,.6,.2,1)!important}
html.cfVoid .flow .cfUzuv{translate:var(--dx) var(--dy);rotate:var(--dr);animation:cfYuz 7s ease-in-out var(--dd) infinite alternate!important}
@keyframes cfYuz{0%{transform:translate(0,0)}100%{transform:translate(3px,-5px)}}
@media (prefers-reduced-motion:reduce){html.cfVoid .flow :is(.cfSal,.cfDol,.cfSav,.cfCig,.cfUzuv){animation:none!important;translate:none;rotate:none}}

/* ---------- 7-58 p76 "――Natsuki Subaru.": 7-54'te silinen ad mürekkebin içinden bir an yeniden belirir ---------- */
.flow .cfAd.on:not(.still){animation:cfAd 3.4s ease-out both!important}
@keyframes cfAd{0%{color:#14081f;text-shadow:0 0 10px rgba(120,50,200,.75)}40%{color:#efe6ff;text-shadow:0 0 14px rgba(170,120,255,.95)}100%{color:inherit;text-shadow:none}}

/* ---------- 7-60 kara su: su çizgisinin altındaki satırlar suyun içinde ---------- */
.szUst .cfSu{position:absolute;left:0;right:0;bottom:0;top:100%;pointer-events:none;
 backdrop-filter:blur(.7px) brightness(.68) saturate(.65) hue-rotate(-14deg);-webkit-backdrop-filter:blur(.7px) brightness(.68) saturate(.65) hue-rotate(-14deg);
 background:linear-gradient(180deg,rgba(30,60,90,.10),rgba(2,8,16,.32));-webkit-mask-image:linear-gradient(180deg,transparent,#000 16px);mask-image:linear-gradient(180deg,transparent,#000 16px)}

/* ---------- 7-60 p61 beyaz ışık ve yanık göz (negatif ard görüntü) ---------- */
#a7Hud .cfBeyaz{position:fixed;inset:0;opacity:0;background:radial-gradient(ellipse 80% 70% at 62% 70%,#fff 0,#fffaf0 55%,#fff1d8 100%)}
#a7Hud .cfYanikGoz{position:fixed;inset:0;opacity:0}

/* ---------- Kilit sözler: satırın kendisi <p> olduğunda (anlatı satırları) eski kurallar tutmuyordu; renk ve ışık buradan ---------- */
.flow p.a7Key-litany,.flow p.a7Key-litany2{color:#bfa6ea;font-style:italic;letter-spacing:.01em;text-shadow:0 0 16px rgba(120,60,200,.6),0 0 2px rgba(10,0,20,.9)}
html:not(.night) .flow p.a7Key-litany,html:not(.night) .flow p.a7Key-litany2{color:#4a2f7a;text-shadow:none}
.flow p.a7Key-doom{color:#e3d6f7;letter-spacing:.015em;text-shadow:0 0 22px rgba(110,40,190,.7),0 2px 2px #000}
html:not(.night) .flow p.a7Key-doom{color:#2c1650;text-shadow:none}
.flow p.a7Key-prayer{color:#fff6e6;font-style:italic;text-shadow:0 0 16px rgba(255,236,200,.6),0 0 44px rgba(255,214,150,.3)}
html:not(.night) .flow p.a7Key-prayer{color:#5e4210;text-shadow:none}
.flow p.a7Key-found{color:#1d1026;text-shadow:0 0 1px rgba(244,236,255,1),0 0 2px rgba(226,210,255,.9),0 0 6px rgba(180,140,250,.55),0 0 28px rgba(110,70,170,.7)}
.flow p.a7Key-unlove{color:#fbf0ff;text-shadow:0 0 10px rgba(255,255,255,.7),0 0 26px rgba(200,120,255,.9),0 0 60px rgba(160,60,240,.5)}
.flow p.a7Key-ash{color:#bdb8b2;letter-spacing:.06em}
.flow p.a7Key-tale{color:#fff7e0;text-shadow:0 0 14px rgba(255,220,140,.6),0 0 34px rgba(140,190,255,.45)}

/* ---------- "sağ gözü … yanıyor" (7-59 p432, 7-60 p24): sözcük kor gibi yanar ve öyle kalır ---------- */
.flow .cfGoz.on{color:#ffe1c2;text-shadow:0 0 5px rgba(255,90,40,.85),0 0 13px rgba(255,40,20,.5);animation:cfGozYan 1.3s ease-in-out infinite alternate!important}
@keyframes cfGozYan{0%{text-shadow:0 0 4px rgba(255,90,40,.75),0 0 10px rgba(255,40,20,.4)}100%{text-shadow:0 0 8px rgba(255,150,70,1),0 0 20px rgba(255,50,20,.7)}}
html:not(.night) .flow .cfGoz.on{color:#a3260c;text-shadow:0 0 6px rgba(255,90,40,.5)}
@media (prefers-reduced-motion:reduce){.flow .cfGoz.on{animation:none!important}}
/* ---------- 7-55 p143 "Yıldızların dizilişi" (a50c): harfler yıldız gibi yanar; yedi "yıldız" harfin üstünde ışık noktası kalır ---------- */
.flow .cfDizilis .cfYz{position:relative}
.flow .cfDizilis.on .cfYh{animation:cfYak 1.5s ease-out var(--d) both!important}
.flow .cfDizilis.kal .cfYh{color:#dbe6ff;text-shadow:0 0 6px rgba(170,200,255,.55)}
.flow .cfDizilis .cfYz::after{content:'';position:absolute;left:50%;top:-.42em;width:10px;height:10px;margin-left:-5px;border-radius:50%;pointer-events:none;
 background:radial-gradient(closest-side,rgba(246,250,255,.95),rgba(170,200,255,.4) 45%,rgba(150,180,255,0));opacity:0}
.flow .cfDizilis.on .cfYz::after{animation:cfYzIn .8s cubic-bezier(.2,.8,.2,1) var(--d) both,cfYzTw 3.4s ease-in-out calc(var(--d) + .8s) infinite!important}
.flow .cfDizilis.kal .cfYz::after{opacity:.8;animation:cfYzTw 3.4s ease-in-out var(--d) infinite!important}
@keyframes cfYak{40%{color:#fbfdff;text-shadow:0 0 4px #fff,0 0 14px rgba(170,200,255,.95),0 0 28px rgba(120,150,255,.6)}100%{color:#dbe6ff;text-shadow:0 0 6px rgba(170,200,255,.55)}}
@keyframes cfYzIn{0%{opacity:0;transform:scale(0)}55%{opacity:1;transform:scale(2.2)}100%{opacity:.8;transform:scale(1)}}
@keyframes cfYzTw{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}
html:not(.night) .flow .cfDizilis.kal .cfYh,html:not(.night) .flow .cfDizilis.on .cfYh{color:#2c3f8a;text-shadow:0 0 6px rgba(80,110,220,.35)}
html:not(.night) .flow .cfDizilis .cfYz::after{background:radial-gradient(closest-side,rgba(70,100,210,.85),rgba(70,100,210,0))}
@media (prefers-reduced-motion:reduce){.flow .cfDizilis .cfYh,.flow .cfDizilis .cfYz::after{animation:none!important}}
html:not(.night) .flow .cfDizilis.on .cfYh{animation-name:cfYakG!important}
@keyframes cfYakG{40%{color:#4a6ae0;text-shadow:0 0 10px rgba(90,130,255,.8)}100%{color:#2c3f8a;text-shadow:0 0 6px rgba(80,110,220,.35)}}
/* ---------- 7-56 p131 Yorna'nın ilanı (a50e): harfler kiseru dumanının başı geçtikçe ruh ateşiyle tutuşur ---------- */
.flow .a7Key-gorgeous.on.cfGorg .a7Ch{animation:a7KSlam .5s cubic-bezier(.5,0,.75,0) calc(var(--i)*26ms) both,cfGorgCh 1.6s ease-out calc(.7s + var(--i)*24ms) both!important}
@keyframes cfGorgCh{35%{color:#fff1d8;text-shadow:0 0 5px #ffd9a0,0 0 16px rgba(255,170,90,.9),0 0 32px rgba(220,120,255,.7)}100%{color:#f4dcff;text-shadow:0 0 9px rgba(220,140,255,.7),0 0 22px rgba(255,190,120,.3)}}
html:not(.night) .flow .a7Key-gorgeous.on.cfGorg .a7Ch{animation-name:a7KSlam,cfGorgChG!important}
@keyframes cfGorgChG{35%{color:#a8501a;text-shadow:0 0 10px rgba(255,160,80,.7)}100%{color:#5a1675;text-shadow:0 0 8px rgba(190,100,230,.35)}}
@media (prefers-reduced-motion:reduce){.flow .a7Key-gorgeous.on.cfGorg .a7Ch{animation:none!important}}
/* ---------- 7-59 p401 "paramparça" (d53): yıldızlar kırılırken sözcük de harf harf çatlar; harfler küçük açılarla ayrık kalır ---------- */
.flow .cfParca .cfPh{display:inline-block}
.flow .cfParca.kal :is(.a7Ch,.cfPh){transform:translate(var(--dx),var(--dy)) rotate(var(--rt))}
.flow .a7Key-starbreak.on .cfParca.on .a7Ch{animation:a7KCold2 .3s steps(2) calc(var(--i)*28ms) both,cfParcaCh .6s cubic-bezier(.2,.9,.3,1) var(--pd) both!important}
.flow .cfParca.on .cfPh{animation:cfParcaCh .6s cubic-bezier(.2,.9,.3,1) var(--pd) both!important}
@keyframes cfParcaCh{0%{transform:none}25%{color:#fff;text-shadow:0 0 8px #dfe9ff,0 0 20px rgba(150,180,255,.9);transform:translate(calc(var(--dx)*2.4),calc(var(--dy)*2.4)) rotate(calc(var(--rt)*2))}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--rt))}}
html:not(.night) .flow .a7Key-starbreak.on .cfParca.on .a7Ch{animation-name:a7KCold2,cfParcaChG!important}
html:not(.night) .flow .cfParca.on .cfPh{animation-name:cfParcaChG!important}
@keyframes cfParcaChG{0%{transform:none}25%{color:#2f5fd0;text-shadow:0 0 10px rgba(90,130,255,.6);transform:translate(calc(var(--dx)*2.4),calc(var(--dy)*2.4)) rotate(calc(var(--rt)*2))}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--rt))}}
@media (prefers-reduced-motion:reduce){.flow .cfParca :is(.a7Ch,.cfPh){animation:none!important;transform:translate(var(--dx),var(--dy)) rotate(var(--rt))}}

/* s2 · 7-54 Satella (felaket-sis.js): yakarışın sözleri tek tek yanar (harf harf değil); kapıdan önce satır gizlidir */
.flow .cfSvSatir p{font-style:italic;font-size:clamp(18px,1.6vw,22px);letter-spacing:.01em;color:#8f7ab4}
.flow .cfSvSatir{transition:opacity .7s ease!important}.flow .cfSvSatir.cfSvOnce{opacity:0!important}
.cfSv{display:inline-block;color:#8f7ab4;text-shadow:0 0 0 rgba(0,0,0,0);transition:color .8s ease,text-shadow 1.1s ease!important}
.cfSv.yan{color:#f2eaff;text-shadow:0 0 12px rgba(170,110,255,.9),0 0 2px rgba(10,0,20,.9)!important}
.cfSv.yan.son{color:#d6c4f4;text-shadow:0 0 7px rgba(150,90,240,.5),0 0 2px rgba(10,0,20,.9)!important}
html:not(.night) .flow .cfSvSatir p,html:not(.night) .cfSv{color:#6a4a96}html:not(.night) .cfSv.yan{color:#3a1d6b;text-shadow:0 0 8px rgba(150,90,240,.45)!important}
/* "Seni buldum.": arayan ışık sözü bulunca söz soluk alır gibi aydınlanır */
.flow .cfBuldu p{animation:cfBuldu 3.2s cubic-bezier(.3,.6,.2,1) both!important}
@keyframes cfBuldu{0%{color:inherit;text-shadow:none;letter-spacing:0}35%{color:#f4ecff;text-shadow:0 0 18px rgba(170,110,255,.95),0 0 3px rgba(10,0,20,.9);letter-spacing:.06em}100%{color:#d8c6f6;text-shadow:0 0 8px rgba(150,90,240,.55),0 0 2px rgba(10,0,20,.9);letter-spacing:.02em}}
/* kalenin yutulması: kâğıt saydamlaşırken önceki satırlar geri çekilir, yalnız 498 okunur kalır */
html.cfYutuyor .flow>[data-paragraph]:not(.cfYutSatir){opacity:.16!important;transition:opacity 1.2s ease!important}
/* kapanış sözü (538): harf harf iniş korunur ama harf başına bulanıklık (filter) yok: 144 Hz'de kare kaçırıyordu */
:is(.flow,.a7Lift) .a7Key-doom.on .a7Ch{animation-name:cfKDoom!important}
@keyframes cfKDoom{0%{opacity:0;transform:translateY(10px);color:#000;text-shadow:0 0 18px rgba(110,40,190,.9)}50%{opacity:1}100%{opacity:1;transform:none}}
.flow>[data-paragraph]{transition:opacity 1.4s ease!important}
/* ===== s3: 7-55 ===== */
/* p154 "kırmızı ve mavi ışığı": lapis renginde yanar, sonra kara bir fırça üstünden geçer ve renk söner (kalıcı) */
.cfLapisSoz{position:relative;display:inline-block}
.cfLapisSoz.on{animation:cfLapisRenk 4.2s ease-in-out forwards!important}
.cfLapisSoz.kal{color:#9a8ca6!important}
.cfLapisSoz::after{content:"";position:absolute;inset:-.08em -.25em;border-radius:.4em;background:linear-gradient(90deg,rgba(14,4,22,0),rgba(14,4,22,.6) 16%,rgba(14,4,22,.6) 84%,rgba(14,4,22,0));mix-blend-mode:multiply;transform:scaleX(0);transform-origin:left center;pointer-events:none}
.cfLapisSoz.on::after{animation:cfLapisFirca 4.2s cubic-bezier(.5,0,.3,1) forwards!important}
@keyframes cfLapisRenk{0%{color:inherit;text-shadow:none}14%{color:#ff9aa8;text-shadow:0 0 10px rgba(255,70,100,.55)}30%{color:#a8c0ff;text-shadow:0 0 10px rgba(80,120,255,.55)}46%{color:#ff9aa8;text-shadow:0 0 10px rgba(255,70,100,.5)}60%{color:#a8c0ff;text-shadow:0 0 8px rgba(80,120,255,.4)}80%{color:#9a8ca6;text-shadow:0 0 5px rgba(20,5,30,.6)}100%{color:#9a8ca6;text-shadow:none}}
@keyframes cfLapisFirca{0%,56%{transform:scaleX(0);opacity:1}76%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
html:not(.night) .cfLapisSoz.kal{color:#6e6278!important}
html:not(.night) .cfLapisSoz.on{animation-name:cfLapisRenkG!important}
@keyframes cfLapisRenkG{0%{color:inherit}14%{color:#b3243a}30%{color:#2741a8}46%{color:#b3243a}60%{color:#2741a8}80%,100%{color:#6e6278}}
/* p267 “açlıkla”: söz aç bir kalp gibi üç kez atar */
.cfAclik{display:inline-block}
.cfAclik.on{animation:cfAclik 2.4s ease-out!important}
@keyframes cfAclik{0%{transform:none;text-shadow:none}10%{transform:scale(1.12);text-shadow:0 0 14px rgba(150,70,255,.8)}22%{transform:scale(1);text-shadow:0 0 6px rgba(150,70,255,.4)}36%{transform:scale(1.1);text-shadow:0 0 14px rgba(150,70,255,.8)}48%{transform:scale(1);text-shadow:0 0 6px rgba(150,70,255,.4)}64%{transform:scale(1.08);text-shadow:0 0 12px rgba(150,70,255,.7)}100%{transform:none;text-shadow:none}}
/* ===== s4: 7-56 ===== */
/* p54 "oğlanın": karanlık sözcükten sızar */
.cfSizan{display:inline-block}
.cfSizan.on{animation:cfSizan 3s ease-out forwards!important}
.cfSizan.kal{color:#cdbbe8!important;text-shadow:0 3px 9px rgba(40,10,80,.8)!important}
@keyframes cfSizan{0%{text-shadow:none}25%{color:#e9dcff;text-shadow:0 0 14px rgba(140,60,255,.85),0 2px 10px rgba(10,0,20,.9)}100%{color:#cdbbe8;text-shadow:0 3px 9px rgba(40,10,80,.8)}}
/* p211: "titriyordu." titrer, "dehşete" ürperir, "ölüyordu." solar ve solgun kalır */
.cfTitre,.cfDehset,.cfOlu{display:inline-block}
.cfTitre.on{animation:cfTitre .09s linear 22 alternate!important}
@keyframes cfTitre{from{transform:translate(-.7px,.3px)}to{transform:translate(.7px,-.4px)}}
.cfDehset.on{animation:cfDehset 1.6s ease-out!important}
@keyframes cfDehset{0%{transform:none}18%{transform:scale(.96)}36%{transform:scale(1.03)}54%{transform:scale(.99)}100%{transform:none}}
.cfOlu{transition:color 2.6s ease,opacity 2.6s ease!important}
.cfOlu.on,.cfOlu.kal{color:#7c7287!important;opacity:.78}
html:not(.night) .cfOlu.on,html:not(.night) .cfOlu.kal{color:#9a93a2!important}
/* p24 "――Büyük Felaket.": görünüş sahnesinde ad koyu sisin önünde ışır (mürekkep harf stili orada okunmuyordu) */
.flow .cfFelaketAd p,.flow p.cfFelaketAd{color:#efe6ff!important;text-shadow:0 0 16px rgba(150,80,255,.85),0 0 3px rgba(10,0,20,.95)!important;transition:color 1.2s ease,text-shadow 1.2s ease!important}
html:not(.night) .flow .cfFelaketAd p{color:#2a1440!important;text-shadow:0 0 12px rgba(150,80,255,.5)!important}
/* ===== s5: 7-57 ===== */
/* "Natsuki Subaru": Satella'nın sevdiği ad anıldığında mor bir hâleyle ışır (hâle kalır) */
.cfAdSev{display:inline-block}
.cfAdSev.on{animation:cfAdSev 2.6s ease-out forwards!important}
.cfAdSev.kal{text-shadow:0 0 10px rgba(150,80,255,.45)!important}
@keyframes cfAdSev{0%{text-shadow:none}25%{color:#f0e6ff;text-shadow:0 0 16px rgba(160,90,255,.9)}100%{text-shadow:0 0 10px rgba(150,80,255,.45)}}
/* ===== s7: 7-58 ===== */
/* p250 "okşadı, kazıdı ve sardı.": okşanan söz yumuşakça eğilip ışır, kazınan söz pençeyle sarsılır, sarılan söz karanlığın içinde kalır */
.cfOksa,.cfKazi,.cfSarS{display:inline-block;--cf58a:#ece2ff;--cf58b:#cdbbe8}
html:not(.night) .cfOksa,html:not(.night) .cfKazi,html:not(.night) .cfSarS{--cf58a:#3c1d63;--cf58b:#4b3166}
.cfOksa.on{animation:cfOksa 1.9s ease-in-out forwards!important}
@keyframes cfOksa{0%{transform:none;text-shadow:none}40%{transform:translateY(-1px) skewX(-7deg);color:var(--cf58a);text-shadow:0 0 12px rgba(150,80,255,.7)}100%{transform:none;color:var(--cf58b);text-shadow:0 0 6px rgba(150,80,255,.3)}}
.cfKazi.on{animation:cfKazi .55s cubic-bezier(.3,0,.4,1) forwards!important}
@keyframes cfKazi{0%{transform:none}14%{transform:translate(2px,1px) skewX(9deg)}34%{transform:translate(-2px,0) skewX(-5deg)}60%{transform:translate(1px,0)}100%{transform:none;color:var(--cf58b);text-shadow:0 2px 6px rgba(40,10,80,.7)}}
.cfSarS.on{animation:cfSarS 2.3s ease-out forwards!important}
@keyframes cfSarS{0%{text-shadow:none}30%{color:var(--cf58a);text-shadow:0 0 14px rgba(120,50,230,.9),0 0 3px rgba(10,0,20,.9)}100%{color:var(--cf58b);text-shadow:0 2px 8px rgba(40,10,80,.8)}}
/* ===== s8: 7-59 ===== */
/* p341 "Ben, seni sevmiyorum.": sözler kilitte kalp atışlarıyla tek tek belirir, sonra sakin bir mor ışıkla kalır */
.cfYr{display:inline-block;opacity:0;transform:translateY(.12em) scale(.96);transition:opacity .5s ease,transform .7s cubic-bezier(.2,.8,.2,1),color .9s ease,text-shadow 1.2s ease!important}
.cfYr.yan{opacity:1;transform:none;color:#fbf4ff;text-shadow:0 0 14px rgba(200,140,255,.95),0 0 3px rgba(20,0,30,.9)!important}
.cfYr.yan.son{color:#e6d8fb;text-shadow:0 0 8px rgba(170,110,255,.5),0 0 2px rgba(20,0,30,.9)!important}
html:not(.night) .cfYr.yan{color:#3a1d6b;text-shadow:0 0 8px rgba(150,90,240,.45)!important}
html:not(.night) .cfYr.yan.son{color:#4a2c74!important}
/* ===== s8: 7-60 ===== */
/* p59 Tanza'nın duası: "Sevgilim, her günün sağlıklı geçsin." sıcak altın bir ışıkla yanar ve öyle kalır */
.cfDua{transition:color 1.4s ease,text-shadow 1.8s ease!important}
.cfDua.on,.cfDua.kal{color:#fff1d6;text-shadow:0 0 12px rgba(255,196,110,.75),0 0 2px rgba(30,10,0,.9)!important}
html:not(.night) .cfDua.on,html:not(.night) .cfDua.kal{color:#6b3d0c;text-shadow:0 0 8px rgba(255,180,90,.45)!important}
/* ===== s10 ===== */
/* 7-54 p520–523 ve 7-57 yakarışları: parlayan sözler arasındaki boşluk ışımada kayboluyordu; sözlere küçük bir sağ pay, ışıma daha dar */
.cfSv{margin-right:.2em}
.cfSv.yan{text-shadow:0 0 7px rgba(170,110,255,.85),0 0 2px rgba(10,0,20,.9)!important}
.cfSv.yan.son{text-shadow:0 0 5px rgba(150,90,240,.45),0 0 2px rgba(10,0,20,.9)!important}
/* ===== s11 ===== */
/* 7-55 p265: kara kolların uzandığı adlar ("Yorna'ya", "Louis'ye") satırında yerinden oynamadan belirir: Yorna mor, Louis altın */
.cfHedef{transition:color 1.2s ease,text-shadow 1.6s ease!important}
.cfHedef.on{color:#efe2ff;text-shadow:0 0 10px rgba(170,110,255,.8),0 0 2px rgba(10,0,20,.9)!important}
.cfHedef.cfHedefL.on{color:#fff0cf;text-shadow:0 0 10px rgba(255,200,110,.75),0 0 2px rgba(20,8,0,.9)!important}
html:not(.night) .cfHedef.on{color:#3c1d63;text-shadow:0 0 7px rgba(150,90,240,.45)!important}
html:not(.night) .cfHedef.cfHedefL.on{color:#6b3d0c;text-shadow:0 0 7px rgba(255,170,80,.45)!important}
