/* EŞİK — hikâye efektleri (story-fx.js) */
#storyFx{position:fixed;inset:0;pointer-events:none;z-index:40}
#storyFx>*{position:absolute;inset:0;pointer-events:none}
.fxCanvas{width:100%;height:100%}
.fxFlash{opacity:0}
/* Göz kapakları: dönüş anında karanlık ortadan açılır */
.fxLids{opacity:0}
.fxLids i{position:absolute;left:0;right:0;height:51%;background:#000}
.fxLids i:first-child{top:0}.fxLids i:nth-child(2){bottom:0}
.fxLids b{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:linear-gradient(90deg,transparent,#fff 30%,#fff 70%,transparent);opacity:0}
.fxLids.open{animation:lidsShow 1.25s ease-out forwards!important}
.fxLids.open i:first-child{animation:lidTop 1.05s cubic-bezier(.7,0,.2,1) .18s forwards!important}
.fxLids.open i:nth-child(2){animation:lidBottom 1.05s cubic-bezier(.7,0,.2,1) .18s forwards!important}
.fxLids.open b{animation:lidLine .5s ease-out forwards!important}
@keyframes lidsShow{0%,85%{opacity:1}100%{opacity:0}}
@keyframes lidTop{to{transform:translateY(-101%)}}
@keyframes lidBottom{to{transform:translateY(101%)}}
@keyframes lidLine{0%{opacity:0;transform:scaleX(.1)}30%{opacity:1;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1.3)}}
/* Dönüş satırı */
.flow .rbdLine{animation:rbdLine 1.6s ease-out!important}
@keyframes rbdLine{0%{text-shadow:-6px 0 #e0306080,6px 0 #30d0e080;filter:blur(1.5px);opacity:.3}12%{text-shadow:4px 0 #e0306070,-4px 0 #30d0e070;filter:blur(.5px);opacity:1}22%{text-shadow:-2px 0 #e0306050,2px 0 #30d0e050}40%{text-shadow:0 0 18px color-mix(in srgb,var(--orange) 60%,transparent);filter:none}100%{text-shadow:none}}
.flow .rbdBadge{display:flex;align-items:center;gap:10px;margin:22px 0 8px;font:600 7px/1.4 Ui,sans-serif;letter-spacing:2px;color:#a88bd8;visibility:hidden}
.flow .rbdBadge.seen{visibility:visible;animation:badgeIn .9s ease-out .5s both!important}
.flow .rbdBadge span{width:22px;height:22px;border-radius:50%;border:1px solid #a88bd866;position:relative;flex:none}
.flow .rbdBadge span:after{content:'';position:absolute;inset:5px;border:1.5px solid #a88bd8;border-right-color:transparent;border-radius:50%;transform:rotate(-40deg)}
.flow .rbdBadge span:before{content:'';position:absolute;left:3px;top:4px;border:4px solid transparent;border-bottom-color:#a88bd8;transform:rotate(-70deg)}
.flow .rbdBadge strong{font-weight:600}
.flow .rbdBadge small{font:inherit;color:var(--muted);letter-spacing:1.6px}
@keyframes badgeIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
/* Balta sahnesi */
.axeStage{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden}
.axeStage.dark{background:#000}
.axeStage .axeProp{position:absolute;filter:drop-shadow(0 18px 24px #000c);will-change:transform}
.axeStage .axeCrack,.axeStage .axeSeam{position:absolute;inset:0}
.axeHalf{position:absolute;inset:0;will-change:transform;filter:drop-shadow(0 0 1px #fff3)}
.axeSlice{position:absolute;inset:0;overflow:hidden}
.axeSlice .book{box-shadow:none}
.axeCard{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;color:#d9d3c7;pointer-events:auto}
.axeCard p{margin:0;font:400 clamp(20px,2.6vw,30px)/1.4 Georgia,serif;letter-spacing:.2px;opacity:0;animation:axeLine 1.4s ease-out .8s forwards!important}
.axeCard p+p{animation:axeLine 1.4s ease-out 2.1s forwards!important;font-size:clamp(24px,3.2vw,38px)}
.axeActions{display:flex;gap:28px;margin-top:30px;opacity:0;animation:axeLine 1s ease-out 3.2s forwards!important}
/* Karanlıkta bir an beliren tek yeşil göz */
.axeEye{position:absolute;left:50%;top:24%;width:38px;height:7px;margin-left:-19px;border-radius:50%;background:radial-gradient(ellipse,#f2ffe6 0,#9dff7a 32%,#2ecf55 58%,transparent 74%);filter:drop-shadow(0 0 6px #5dff6e) drop-shadow(0 0 16px #1fbf4a);opacity:0;animation:axeEye 2.4s ease-out .15s forwards!important}
@keyframes axeEye{0%{opacity:0;transform:scaleX(.2)}18%{opacity:1;transform:scaleX(1)}52%{opacity:.9;transform:scale(1)}58%{opacity:.9;transform:scaleY(.08)}64%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:translateX(6px)}}
.axeActions button{font:500 11px Ui,sans-serif;letter-spacing:.6px;color:#bfb7aa;background:none;border:0;border-bottom:1px solid #fff3;padding:8px 2px;cursor:pointer}
.axeActions button:hover{color:#fff}
@keyframes axeLine{from{opacity:0;transform:translateY(8px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.axeStage.leaving{animation:fadeOut .5s ease forwards!important}
@keyframes fadeOut{to{opacity:0}}
.flow .fxReplay{display:block;margin:6px 0 16px;font:500 9px Ui,sans-serif;letter-spacing:.8px;color:var(--orange);background:none;border:0;padding:4px 0;cursor:pointer;opacity:.8}
/* Sinematik görsel girişi */
.flow .plate{overflow:hidden}
.flow .cine{opacity:0;clip-path:inset(7% 5% 7% 5%);transition:opacity 1.1s ease,clip-path 1.4s cubic-bezier(.2,.7,.2,1)!important}
.flow .cine img{transform:translateY(var(--py,0px)) scale(var(--cs,1.14));transition:transform 2.4s cubic-bezier(.2,.7,.2,1)!important}
.flow .cine.cineIn{opacity:1;clip-path:inset(0)}
.flow .cine.cineIn img{--cs:1.06;transition:transform 2.4s cubic-bezier(.2,.7,.2,1),translate 0s!important}
body:not(.continuous) .flow .cine img{--py:0px}
/* Ses düğmesi */
#soundToggle{display:inline-flex;align-items:center;gap:7px}
#soundToggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#soundToggle svg path:first-child{fill:currentColor;stroke:none}
#soundToggle[aria-pressed=true]{color:var(--orange)}
@media(max-width:750px){#soundToggle span{display:none}}
@media (prefers-reduced-motion:reduce){.flow .rbdLine{animation:none!important}.fxLids.open{animation:none!important}}
/* Baltalı adamın silueti (17. bölüm): sayfanın arkasında, yazının altında */
.ghostLayer{position:sticky;top:0;height:100vh;margin-bottom:-100vh;z-index:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.1s ease!important}
body:not(.continuous) .ghostLayer{position:absolute;inset:0;height:auto;margin:0}
.ghostOn #flow,.ghostOn .paper>.runninghead,.ghostOn .paper>.folio{position:relative;z-index:1}
.ghostStage{position:absolute;left:50%;bottom:-2%;height:min(88%,780px);aspect-ratio:711/1600;transform-origin:50% 100%;transform:translateX(-50%) scale(calc(1 + var(--near,0) * .12)) translateY(calc(var(--near,0) * -1%));transition:transform 1.4s cubic-bezier(.2,.7,.2,1)!important}
.ghostGlow{position:absolute;left:-55%;right:-55%;top:4%;bottom:-6%;background:radial-gradient(ellipse 47% 45% at 50% 46%,#ff6a1a4a,#ff6a1a1c 52%,#ff6a1a00 100%);animation:ghostFlicker 2.6s ease-in-out infinite!important}
.ghostFig{position:relative;display:block;width:100%;height:100%;object-fit:contain;filter:brightness(.55) drop-shadow(0 0 1px #ff8a2a55);opacity:.22;animation:ghostSeen 4.3s steps(1,end) infinite!important}
/* Siluet dumanın içinde: alevler parladıkça bir an seçilir, sonra yine kaybolur */
@keyframes ghostSeen{0%{opacity:.16}9%{opacity:.34}11%{opacity:.14}23%{opacity:.2}41%{opacity:.4}43%{opacity:.18}44%{opacity:.3}46%{opacity:.15}67%{opacity:.24}82%{opacity:.12}88%{opacity:.36}90%{opacity:.17}}
.ghostLayer.reveal .ghostFig{animation:ghostReveal 1.5s ease-out forwards!important}
@keyframes ghostReveal{0%{opacity:.2;filter:brightness(.55)}6%{opacity:1;filter:brightness(2.4) sepia(.6) saturate(2.5) drop-shadow(0 0 18px #ff8a2a)}14%{opacity:.25;filter:brightness(.6)}22%{opacity:.95;filter:brightness(2) sepia(.5) saturate(2) drop-shadow(0 0 12px #ff8a2a)}40%{opacity:.7;filter:brightness(1.1)}100%{opacity:.3;filter:brightness(.6)}}
.ghostSmoke{position:absolute;inset:-10% -60%;background:radial-gradient(ellipse 40% 26% at 30% 30%,#0b0908cc,transparent 70%),radial-gradient(ellipse 36% 30% at 70% 55%,#0b0908bb,transparent 70%),radial-gradient(ellipse 50% 22% at 45% 85%,#0b0908dd,transparent 70%);animation:smokeDrift 14s ease-in-out infinite alternate!important;pointer-events:none}
@keyframes smokeDrift{from{transform:translate(-4%,2%) scale(1)}to{transform:translate(5%,-3%) scale(1.08)}}
.axeStage .axeFx{position:absolute;inset:0;pointer-events:none;z-index:3}
.ghostEye{position:absolute;border-radius:50%;background:radial-gradient(ellipse,#f2ffe6 0,#9dff7a 30%,#2ecf55 56%,transparent 72%);filter:drop-shadow(0 0 5px #5dff6e) drop-shadow(0 0 14px #1fbf4a);opacity:0;transform:scale(.4)}
.ghostLayer.lit .ghostEye{animation:eyeOpen 1.6s ease-out 1.2s forwards,eyeGlint 3.4s ease-in-out 2.8s infinite!important}
.ghostLayer.lit .ghostEye.flare{animation:eyeFlare 1.3s ease-out forwards,eyeGlint 3.4s ease-in-out 1.3s infinite!important}
@keyframes eyeOpen{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.15)}100%{opacity:.92;transform:scale(1)}}
@keyframes eyeGlint{0%,100%{opacity:.9;transform:scale(1)}45%{opacity:.7;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}
@keyframes eyeFlare{0%{opacity:1;transform:scale(1)}18%{opacity:1;transform:scale(2.6);filter:drop-shadow(0 0 10px #8dff8a) drop-shadow(0 0 40px #1fbf4a)}100%{opacity:.95;transform:scale(1)}}
@keyframes ghostFlicker{0%,100%{opacity:.85}40%{opacity:1}55%{opacity:.7}70%{opacity:.95}}
html:not(.night) .ghostGlow{background:radial-gradient(ellipse 47% 45% at 50% 46%,#ff7a2a33,#ff7a2a00 100%)}
@media (prefers-reduced-motion:reduce){.ghostLayer.lit .ghostEye{animation:none!important;opacity:.9;transform:none}.ghostGlow{animation:none!important}}
.flow .fxHold{visibility:hidden}
.axeStage .axeCut{pointer-events:none}

/* Ölüm anı: okunan satırın üstünde kapanan karanlık */
#storyFx>.fxIris{display:none;inset:auto;left:50%;top:56%;width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 260vmax #000,inset 0 0 80px 56px #000}
#storyFx.block{pointer-events:auto;cursor:default}
/* Ölüm içeren bölümlerde sondaki karakter dizisi gösterilmez */
#reading.fxNoCast #chapterCast{display:none!important}
body.continuous #reading.fxEnding #flow{padding-bottom:38vh}
/* Hareketi azalt: siluetin sonsuz titreşimi ve duman kayması durur */
@media (prefers-reduced-motion:reduce){.ghostFig,.ghostSmoke,.ghostLayer.reveal .ghostFig{animation:none!important}.ghostFig{opacity:.26}}
/* Balta kesiti: kopyalanan sayfa okuyucu dışındadır; asıl sayfayla aynı ölçüyü korur */
.axeSlice .flow{position:relative;z-index:1;overflow:hidden}
.axeCard:focus{outline:none}

/* Balta kartı üç satır: önce darbe (527), sonra ses (528), en son "Vardı." (529) */
.axeCard p.axeBlow{font-size:clamp(17px,2.1vw,24px);color:#b9b2a6;animation:axeLine 1.4s ease-out .5s forwards!important}
.axeCard p.axeBlow+p{animation:axeLine 1.4s ease-out 2.1s forwards!important;font-size:clamp(20px,2.6vw,30px)}
.axeCard p.axeBlow+p+p{animation:axeLine 1.4s ease-out 3.4s forwards!important;font-size:clamp(24px,3.2vw,38px)}

/* Yeni balta sahnesi (deneme, ?balta=yeni): sayfa kâğıt perde, Todd arkasında; yangın onu arkadan aydınlatır */
.perdeLayer{position:sticky;top:0;height:100vh;margin-bottom:-100vh;z-index:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.2s ease!important}
body:not(.continuous) .perdeLayer{position:absolute;inset:0;height:auto;margin:0}
body.continuous .perdeStage{bottom:-3%;height:min(calc(103% - var(--perdeTop,200px)),1000px,128vw)}
.perdeFire{position:absolute;inset:-12%;background:radial-gradient(ellipse 40% 38% at 50% 58%,#ff7a2a8c,#c2321040 61%,#c2321000 100%);opacity:calc(.45 + var(--near,0) * .45);animation:perdeFlicker 2.3s ease-in-out infinite!important}
.perdeStage{position:absolute;left:50%;bottom:-4%;height:min(106%,1000px,128vw);aspect-ratio:1;transform-origin:50% 100%;transform:translateX(-50%) scale(calc(.9 + var(--near,0) * .16));transition:transform 1.6s cubic-bezier(.2,.7,.2,1)!important}
.perdeSil{position:absolute;left:50%;bottom:0;height:84%;aspect-ratio:711/1600;translate:-50% 0;opacity:calc(.34 + var(--near,0) * .26);filter:blur(calc(7px - var(--near,0) * 6px)) brightness(calc(.5 + var(--near,0) * .32)) saturate(.85)}
.perdeSil img,.lungeSil img{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.perdeTex{position:absolute;inset:0;opacity:.2;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .5 0 0 0 0 .44 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E")}
html:not(.night) .perdeSil{mix-blend-mode:multiply;filter:blur(calc(7px - var(--near,0) * 6px)) brightness(calc(.62 + var(--near,0) * .15)) sepia(.4)}
html:not(.night) .perdeFire{background:radial-gradient(ellipse 40% 38% at 50% 58%,#ff8a3a3a,#ff8a3a00 100%)}
@keyframes perdeFlicker{0%,100%{filter:brightness(1)}35%{filter:brightness(1.2)}52%{filter:brightness(.85)}74%{filter:brightness(1.08)}}
/* Sargılı siluet perdeyi yırtıp okura atılır; darbe anında siyah-beyaz-kızıl */
.axeStage.axe2 .axeLunge.sil{background:radial-gradient(ellipse 62% 56% at 50% 42%,#ff7a2a70,#3a0c06 58%,#070203 100%)}
.axeStage.axe2 .lungeSil{position:absolute;left:50%;bottom:-81%;height:150%;aspect-ratio:711/1600;transform:translateX(-50%);transform-origin:50% 12%;will-change:transform,filter}
.axeStage.axe2 .axeLunge.sil.imp img{filter:brightness(0)!important}
.axeStage.axe2 .axeLunge{position:absolute;inset:0;z-index:5;overflow:hidden;background:#070203}
.axeStage.axe2 .axeLunge img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 34%;will-change:transform,filter}
@media (orientation:landscape){.axeStage.axe2 .axeLunge img{object-fit:contain}}
.axeStage.axe2 .axeLunge.imp{background:#fff}
.axeStage.axe2 .axeLunge.imp img{filter:grayscale(1) contrast(3.2) invert(1) brightness(1.05)!important}
.axeStage.axe2 .axeLunge.imp::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 62% at 50% 46%,#fff0 30%,#c4001ae6 82%,#6d0010 100%);mix-blend-mode:multiply}
.axeStage.axe2 .axeSmear{position:absolute;inset:0;z-index:7;pointer-events:none}
.axeStage.axe2 .axePersp{position:absolute;inset:0;perspective:760px;perspective-origin:50% 38%;z-index:4;pointer-events:none}
.axeStage.axe2 .axe3d{position:absolute;max-width:none;will-change:transform,opacity,filter}
.axeStage.axe2 .axeTear{position:absolute;inset:0;z-index:3}
.axeStage.axe2 .axeCut2{position:absolute;inset:0;z-index:8;pointer-events:none}
.axeStage.axe2 .axeImpact{position:absolute;inset:0;z-index:6;overflow:hidden;background:#fff}
.axeStage.axe2 .axeImpact img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scale(1.15);filter:grayscale(1) contrast(3.2) invert(1) brightness(1.05)}
.axeStage.axe2 .axeImpact:not(.inv)::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 62% at 50% 46%,#fff0 30%,#c4001ae6 82%,#6d0010 100%);mix-blend-mode:multiply}
.axeStage.axe2 .axeImpact.inv{-webkit-backdrop-filter:grayscale(1) invert(1) contrast(4) brightness(1.1);backdrop-filter:grayscale(1) invert(1) contrast(4) brightness(1.1);background:radial-gradient(ellipse 70% 60% at 50% 42%,transparent 35%,#8f0010d0 100%)}
@media (prefers-reduced-motion:reduce){.perdeFire{animation:none!important}}
/* Todd kartı: tek satır — darbe satırı büyük ve tek başına */
.axeCard p.axeBlow:last-of-type{font-size:clamp(22px,3vw,34px);color:#e6dfd4;letter-spacing:.01em}

/* Son kart: uzun satırlar ekran kenarına yapışmasın (7-70) */
.axeCard p{max-width:min(780px,88vw);padding:0 16px;box-sizing:border-box;text-align:center;text-wrap:balance}
