/* F115: the status stays secondary; the changing sentence carries the page. */
.ending { --paper:#f1eee6; --ink:#272c32; --new-ink:#2d5fb5; --face:"Songti SC","STSong","SimSun",serif; color:var(--ink); padding:32px 32px 0; scroll-margin-top:72px; }
.ending-surface { min-height:calc(100svh - 112px); display:grid; place-items:center; padding:88px 48px 104px; background:var(--paper); }
.ending-stage { width:min(980px,100%); min-width:0; text-align:center; }
.ending-status { margin:0 0 38px; color:#68706f; font:400 16px/1.6 "PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif; letter-spacing:.14em; padding-left:.14em; }
.ending-copy { position:relative; width:100%; height:3.15em; font:400 clamp(34px,4.15vw,56px)/1.5 var(--face); letter-spacing:.005em; text-align:center; }
.ink-live,.ink-ghost { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.ink-row { display:block; width:100%; min-height:1.5em; text-align:center; }
.ink-row-inner { position:relative; display:inline-block; white-space:nowrap; }
.ink-char { display:inline-block; opacity:0; }
.ink-punctuation { width:.65em; }
.ink-char.is-written { opacity:1; color:var(--ink); animation:ink-settle 700ms cubic-bezier(.25,.5,.5,1) both; }
@keyframes ink-settle { from { color:var(--new-ink); } 28% { color:#365a9b; } to { color:var(--ink); } }
.ink-ghost { pointer-events:none; }
.ink-ghost .ink-char { color:var(--paper); text-shadow:.4px .6px 0 #ffffffd0,-.45px -.5px 0 #45546b65; }
.ink-ghost .ink-char.is-erased { opacity:1; }
.ending[data-phase="between"] .ink-ghost { animation:impression-fade 1100ms linear both; }
@keyframes impression-fade { 0%,50% { opacity:1; } to { opacity:0; } }
.ink-caret { position:absolute; top:.22em; display:block; width:1.5px; height:.85em; margin-left:.08em; background:var(--new-ink); animation:ink-caret 1s steps(1) infinite; }
@keyframes ink-caret { 55% { opacity:0; } }
.ending[data-running="false"] .ink-char,.ending[data-running="false"] .ink-caret,.ending[data-running="false"] .ink-ghost { animation-play-state:paused; }
@media(min-width:1500px) { .ending { padding-inline:48px; } }
@media(max-width:720px) {
 .ending { padding:20px 12px 0; scroll-margin-top:60px; }
 .ending-surface { min-height:calc(100svh - 92px); padding:76px 16px 92px; }
 .ending-status { margin-bottom:28px; font-size:14px; letter-spacing:.1em; padding-left:.1em; }
 .ending-copy { font-size:clamp(23px,6.9vw,36px); height:3.3em; line-height:1.55; }
 .ink-row { min-height:1.55em; }
}
.ending-status[lang="en"] { letter-spacing:.045em; }
@media(prefers-reduced-motion:reduce) {
 .ink-char.is-written { animation:none; color:var(--ink); }
 .ink-caret,.ink-ghost { display:none; animation:none; }
}
