#void-finale-shade { position:absolute; inset:0; z-index:19; display:none; pointer-events:none; background:radial-gradient(ellipse at 50% 38%,transparent 25%,#100711 95%); }
.summit-cinematic #controls-hint,.summit-cinematic #mouse-look-hint,.summit-cinematic #interaction-prompt,.summit-cinematic #act3-hud-tracker { display:none!important; }
.summit-cinematic #hud-dialogue { border-color:#806372; background:linear-gradient(130deg,#1b101dea,#0b0914ef); box-shadow:0 -20px 90px #08060b80; }
.summit-cinematic #hud-text { color:#ede0e6; }
#act4-climax-overlay { background:linear-gradient(180deg,#07050d20 0%,#08060c65 45%,#07050df5 100%); justify-content:center; gap:24px; padding:32px 28px; }
.finale-kicker { position:absolute; top:34px; display:flex; align-items:center; gap:18px; color:#ae91a4; font:10px/1.6 'Share Tech Mono',monospace; letter-spacing:.2em; text-transform:uppercase; }
.finale-kicker i { display:block; width:44px; height:1px; background:#76596f; }
#climax-quote { max-width:750px; margin:12vh 0 14px; font:clamp(22px,2.7vw,34px)/1.7 'Neucha',Georgia,serif; color:#f1dbe5; text-shadow:0 2px 18px #050207; animation:finale-arrive 1.8s both; }
#btn-wake-up { width:min(420px,100%); min-height:58px; font:12px/1.6 'Share Tech Mono',monospace; letter-spacing:.14em; background:#231420d9; border:1px solid #a1788d; border-radius:2px; padding:18px 24px; box-shadow:inset 0 0 26px #321c2c55; }
#btn-wake-up:hover { background:#422538; border-color:#ddacc4; }
#act4-climax-overlay[data-attempt='1'] #btn-wake-up,#act4-climax-overlay[data-attempt='2'] #btn-wake-up { color:#e3adba; border-color:#874b65; background:#301522e8; }
#act4-climax-overlay.epiphany-mode { background:radial-gradient(ellipse at 50% 40%,#100912ef,#030207fa 75%); }
.epiphany-mode #climax-quote { display:none; }
#epiphany-text-box { width:min(780px,100%); min-height:350px; flex-direction:column; margin:28px 0 0; padding:0; border:0; border-radius:0; background:transparent; text-align:left; }
.epiphany-heading { display:flex; justify-content:space-between; gap:16px; padding-bottom:20px; border-bottom:1px solid #69526270; color:#9e8598; font:10px/1.7 'Share Tech Mono',monospace; letter-spacing:.18em; }
#epiphany-lines { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:230px; padding:28px 0; }
.epiphany-line { margin:0; color:#ebdfe7; font:calc(clamp(21px,2.5vw,30px)*var(--dialogue-scale))/1.7 'Neucha',Georgia,serif; animation:finale-arrive 1.2s both; text-wrap:pretty; }
.epiphany-echo { margin:0 0 22px; color:#857280; font:13px/1.8 'Comfortaa',sans-serif; opacity:.5; animation:finale-echo 1.5s both; }
.epiphany-revelation { color:#f4d4e0; font-size:calc(clamp(27px,3.6vw,43px)*var(--dialogue-scale)); letter-spacing:.025em; }
.epiphany-last { color:#dfdfeb; }
.epiphany-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:auto; padding:16px 0; }
#epiphany-dots { display:flex; gap:9px; }
#epiphany-dots span { width:5px; height:5px; border:1px solid #6e596a; border-radius:50%; }
#epiphany-dots .lit { background:#bc98ac; border-color:#bc98ac; }
#epiphany-next { border:0; border-bottom:1px solid #84667b; background:transparent; color:#d4b7c8; padding:8px 0; font:12px 'Comfortaa',sans-serif; }
#epiphany-next:hover { color:#fff0f7; border-color:#e7b5d1; }
#epiphany-next:focus-visible,#btn-wake-up:focus-visible { outline:2px solid #ddb4cb; outline-offset:6px; }
#epiphany-reading { height:1px; width:100%; background:#493645; overflow:hidden; }
#epiphany-reading::after { content:''; display:block; height:100%; width:100%; background:#b58a9f; transform:scaleX(var(--reading,0)); transform-origin:left; }
#act4-climax-overlay.is-ending { background:#000; transition:background 2s; }
.is-ending #epiphany-text-box,.is-ending .finale-kicker { opacity:0; transition:opacity 1.8s; pointer-events:none; }
#screen-ending { padding:clamp(24px,5vh,60px) 24px; gap:22px; background:radial-gradient(ellipse at 50% 34%,#101119,#030305 68%); }
#ending-canvas { width:min(800px,88vw); height:auto; max-height:45vh; margin:auto 0 0; border:0; border-radius:0; box-shadow:0 20px 100px #0007; animation:finale-candy 3s both; }
.ending-text { margin:0; max-width:680px; font:calc(clamp(15px,1.5vw,19px)*var(--dialogue-scale))/1.9 'Neucha',Georgia,serif; color:#c4bac9; animation:finale-arrive 2.4s .8s both; }
.ending-author { margin:0 0 auto; color:#786978; letter-spacing:.12em; font-size:10px; animation:finale-arrive 2s 1.8s both; }
@keyframes finale-arrive { from { opacity:0; transform:translateY(12px); filter:blur(3px); } to { opacity:1; transform:translateY(0); filter:blur(0); } }
@keyframes finale-echo { from { opacity:.8; } to { opacity:.38; } }
@keyframes finale-candy { from { opacity:0; transform:scale(1.035); } to { opacity:1; transform:scale(1); } }
.game-paused .epiphany-line,.game-paused .epiphany-echo { animation-play-state:paused; }
.reduced-effects .epiphany-line,.reduced-effects .epiphany-echo,.reduced-effects #climax-quote,.reduced-effects #ending-canvas,.reduced-effects .ending-text,.reduced-effects .ending-author { animation:none; }
@media(max-width:600px) { #act4-climax-overlay { padding:70px 24px 28px; } .finale-kicker { top:26px; font-size:8px; gap:10px; } #climax-quote { margin:7vh 0 10px; font-size:24px; } #epiphany-lines { min-height:240px; } #epiphany-text-box { min-height:360px; } .epiphany-heading { font-size:9px; } .epiphany-line { font-size:calc(22px*var(--dialogue-scale)); } .epiphany-revelation { font-size:calc(29px*var(--dialogue-scale)); } }
@media(max-height:570px) { #act4-climax-overlay { padding:60px 24px 20px; } #climax-quote { margin:0; font-size:22px; } #epiphany-lines { min-height:130px; padding:15px 0; } #epiphany-text-box { min-height:230px; margin:0; } .epiphany-line { font-size:22px; } .epiphany-echo { margin-bottom:12px; } .finale-kicker { top:18px; } }
