.ws-opening{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform-origin:center;pointer-events:none}.ws-opening[hidden]{display:none}
.ws-desk-paper{position:absolute;left:808px;top:796px;width:217px;height:130px;padding:16px;box-sizing:border-box;background:linear-gradient(120deg,#bec3b1,#d4d4bc);color:#445656;font:12px/2.1 "Microsoft YaHei",sans-serif;transform:rotate(-4deg) skewX(-15deg);box-shadow:2px 7px 5px #07141970}.ws-desk-paper b{font-size:14px;display:block;border-bottom:1px solid #60706a55;margin-bottom:9px}.ws-desk-paper span{display:block;text-decoration:underline;text-decoration-color:#88684999;text-underline-offset:4px}
.ws-cup{position:absolute;left:1480px;top:776px;width:65px;height:97px;border-radius:7px 7px 25px 25px;background:linear-gradient(90deg,#557876,#a3b6a1 42%,#698c84);box-shadow:8px 10px 6px #07191f70}.ws-cup:before{content:"";position:absolute;inset:-4px 0 auto;height:16px;border-radius:50%;background:#273e3e;border:4px solid #a4b6a0;box-sizing:border-box}.ws-cup:after{content:"";position:absolute;left:55px;top:14px;width:24px;height:42px;border:7px solid #72958b;border-radius:50%;z-index:-1}
.ws-sticky{position:absolute;left:1460px;top:648px;transform:rotate(6deg);padding:12px;background:#bcb489;color:#495447;box-shadow:2px 3px 4px #14252988;font:13px/1.7 "KaiTi",serif}.ws-opening-note{position:absolute;left:826px;top:561px;width:170px;color:#a7bbb0;font:13px/1.8 "Microsoft YaHei",sans-serif}.ws-opening-note span,.ws-opening-note small{display:block}.ws-opening-note small{margin-top:16px;color:#8daaa2;font-size:12px}.ws-progress-line{display:block;height:3px;margin-top:8px;background:linear-gradient(90deg,#80b5a5 48%,#344e50 48%)}.ws-opening-cursor{position:absolute;color:#d6e7d8;font:22px sans-serif}
#chapterRoot[data-ending="true"]>*:not(#endingRoot){display:none!important}#endingRoot[hidden],#endingRoot [hidden]{display:none!important}
#endingRoot{position:absolute;inset:0;background:#071215;overflow:hidden;color:#e9e2cd;font-family:"Microsoft YaHei",sans-serif;isolation:isolate}
#endingRoot button:not(.brand):not(.dialogue-box):not(.dialogue-meta button):not(.end-folder){font:inherit;color:inherit;cursor:pointer;border:1px solid #b8c4ab50;background:#253c3c80;padding:11px 21px;border-radius:3px}#endingRoot button:not(.brand):not(.dialogue-box):not(.dialogue-meta button):not(.end-folder):hover{background:#48635a99}#endingRoot button:focus-visible,#endingRoot input:focus-visible{outline:2px solid #aad6c3;outline-offset:4px}#endingRoot button:disabled{opacity:.4;cursor:default}
.end-room{position:absolute;inset:0;overflow:hidden;background:#152b32}.end-camera{position:absolute;width:1920px;height:1080px;left:50%;top:50%;transform-origin:0 0;will-change:transform}.end-background{position:absolute;inset:0;width:100%;height:100%}
.end-monitor{position:absolute;left:813px;top:270px;width:640px;height:420px;background:#192e34;color:#b2c9be;overflow:hidden;font:15px/1.65 "Microsoft YaHei",sans-serif;box-sizing:border-box}.end-monitor>header{height:41px;border-bottom:1px solid #7f9f982e;padding:8px 18px;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;font-size:16px}.end-monitor>header small{font-size:11px;color:#6f9690}.end-model-page{position:absolute;inset:41px 0 0}.end-model-page aside{position:absolute;left:20px;top:45px;width:145px}.end-model-page aside b{font-weight:400;letter-spacing:3px}.end-annotation{margin:105px 0 20px;font-size:13px}.end-progress{font-size:12px}.end-model{position:absolute;left:220px;top:0;width:254px;height:357px;background-position:center;background-size:contain;background-repeat:no-repeat}.end-model[data-status="ready"]{background-image:none!important}.end-model canvas{width:100%;height:100%;pointer-events:none}.end-cursor{position:absolute;font-size:24px;color:#d3e1ce;pointer-events:none}
.end-archive,.end-document{padding:19px 24px}.end-archive h3,.end-document h3{font-size:21px;font-weight:400;margin:0 0 14px}.end-archive-body{display:flex;align-items:center;gap:30px;height:185px;color:#8eafa5;font-size:12px}.end-tomb-plan{position:relative;width:220px;height:154px;background:#b9c6b01c;border:1px solid #9bb0a62b;flex-shrink:0}.end-tomb-plan i{position:absolute;left:53px;top:16px;width:110px;height:83px;border:5px double #92a89b}.end-tomb-plan i:after{content:"";position:absolute;left:36px;top:80px;width:30px;height:41px;border:3px double #92a89b;border-top:0}.end-tomb-plan b{position:absolute;left:91px;top:49px;font-weight:normal}.end-tomb-plan span{position:absolute;left:93px;top:117px;font-size:11px}
.end-search{margin-top:12px}.end-search label{display:block;font-size:12px;margin-bottom:7px}.end-search>div{display:flex;gap:8px}.end-search input{min-width:0;flex:1;background:#11282e;color:#e0e3d2;border:1px solid #5f867e;padding:9px 12px;font-size:15px}.end-monitor .end-search button,.end-monitor .end-result button{padding:7px 18px;font-size:13px}.end-search-feedback{font-size:12px;margin:6px 0;color:#c6baa0}.end-result{margin-top:18px;padding:20px;border-top:1px solid #8eaaa650;background:#8ba1900d}.end-result>small{border:1px solid #bba87980;padding:3px 9px;font-size:11px;color:#ddcda5}.end-result h4{font-size:18px;font-weight:normal;margin:22px 0 12px}.end-result p{font-size:17px;line-height:1.85;margin:0 0 18px}.end-document{color:#364c4c;background:#d1d4c3;height:379px;box-sizing:border-box;font-size:15px}.end-document>small{color:#637d72;font-size:11px}.end-document h3{margin-top:4px;border-bottom:1px solid #a6b2a0;padding-bottom:8px}.end-document h4{margin:12px 0 5px;font-size:15px}.end-document p{margin:0;font-size:13px}.end-document .end-added-plan{min-height:30px;margin:13px 0 7px;font-size:15px;color:#295e53}.end-saved{display:block;text-align:right;margin-top:8px}
.end-shade{position:absolute;inset:0;background:linear-gradient(#09161988,transparent 24%);pointer-events:none;z-index:2}.end-intro{position:absolute;inset:0;z-index:2;background:#152726;background-size:cover;background-position:center}.end-intro img{position:absolute;left:50%;top:max(146px,22%);transform:translateX(-50%) rotate(-1deg);width:min(500px,42vw);filter:drop-shadow(0 10px 25px #0008)}
/* Reuse the opening's brand, subtitles, reading controls and footer geometry. */
.end-tools.topbar{position:absolute;inset:0 0 auto;z-index:5}.end-tools nav{display:flex}
.end-dialogue{font-family:var(--sans);color:var(--ivory)}.end-footer{font-family:var(--sans)}
.end-speaker{font-family:var(--serif)}
.end-dialogue .end-next{margin-left:auto}
.end-proposal{position:absolute;left:46%;top:21%;transform:translateX(-50%) rotate(-1deg);width:min(520px,47vw);padding:35px 45px 30px;box-sizing:border-box;z-index:4;background:linear-gradient(110deg,#c2c7b4,#e0dec7);box-shadow:0 20px 50px #0006;color:#43544c}.end-proposal>small{font-size:11px;letter-spacing:3px;color:#68745f}.end-proposal h2{font:27px "KaiTi",serif;margin:16px 0 25px}.end-proposal p{font:23px/1.5 "KaiTi",serif;margin:18px 0}.end-proposal u{text-decoration-color:#98744890;text-decoration-thickness:2px;text-underline-offset:7px}.end-proposal>span{display:block;margin:30px 0 12px;font-size:12px;color:#697568}.end-proposal button{display:block;margin:18px 0 0 auto;background:#758c7040!important;border-color:#66796580!important}.end-write-next{position:absolute;right:8%;bottom:9%;z-index:6}
.end-folded-map{position:absolute;left:675px;top:770px;width:185px;height:137px;transform:rotate(-7deg) skewX(-12deg);filter:drop-shadow(4px 7px 3px #06182199);background:#bba77e;clip-path:polygon(1% 5%,96% 0,100% 94%,3% 100%)}.end-folded-map img{width:100%;height:100%;object-fit:cover;filter:brightness(.86) saturate(.78)}.end-folded-map:after{content:"";position:absolute;inset:0;background:linear-gradient(94deg,transparent 45%,#493a2735 49%,#f1dfb980 50%,transparent 54%),linear-gradient(4deg,transparent 48%,#75684455 50%,transparent 54%)}.end-folded-map i{position:absolute;right:-1px;top:-1px;width:39%;height:42%;background:linear-gradient(132deg,#ddca9b,#b8a479);clip-path:polygon(0 0,100% 100%,100% 0);filter:drop-shadow(-2px 3px 2px #33291c70)}
.end-curtain{position:absolute;inset:0;z-index:8;background:#040807;pointer-events:none;opacity:0}.end-author,.end-finish,.end-rechoose{position:absolute;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.end-author{background:radial-gradient(ellipse at center,#1a2d2c,#050b0d 80%);padding:clamp(22px,3.5vh,44px) 0}.end-author>small,.end-finish>small{color:#a9b7a6;font-size:12px;letter-spacing:8px}.end-author h2,.end-finish h2,.end-rechoose h2{font:30px "KaiTi",serif;letter-spacing:4px;font-weight:normal}.end-author-content{width:min(1100px,calc(100% - 96px));min-height:0;flex:0 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a28b5d66 transparent;margin:0 0 22px;padding:20px 30px;border-top:1px solid #b6a47d40;border-bottom:1px solid #b6a47d40}.end-author-content img{display:block;width:100%;height:min(520px,60vh);object-fit:contain}.end-author>button{min-width:130px}.end-finish>div{display:flex;gap:20px;margin-top:35px}.end-skip-egg{position:absolute;bottom:3%;right:3%;z-index:10;font-size:11px!important;background:#10232155!important;opacity:.6}.end-rechoose{background:#0c1b1eed}.end-rechoose>img{height:40vh;width:auto;margin-bottom:4vh;transform:rotate(-1deg)}.end-rechoose>div{display:flex;gap:24px}.end-rechoose button{min-width:245px;padding:22px 30px!important;text-align:left}.end-rechoose strong{font:25px "KaiTi",serif;letter-spacing:4px}.end-rechoose small{display:block;margin-top:10px;color:#b5c1af;font-size:12px}
.end-local-pause{position:absolute;inset:0;z-index:14;background:#102023ed;display:grid;place-items:center;text-align:center}.end-local-pause h2{font:29px "KaiTi",serif;margin:20px 0 30px}.end-local-pause button{margin:6px}
/* Both ending titles reuse the approved lantern cover, including the fade-in. */
.end-finish{background:radial-gradient(ellipse 38% 76% at 50% 43%,#101e35bc 0%,#14233a87 48%,#14233a00 100%),linear-gradient(180deg,#11213821,transparent 35%,#11243c33 65%,#102130ad 100%),url('assets/ui/lantern-cover.jpg') center/cover no-repeat;text-shadow:0 2px 8px #101d30}
.end-finish>small{color:#e4cba3}
#endingRoot .end-finish button{background:#203647e8;border-color:#cdb18380;color:#f4e3bd}
#endingRoot .end-finish button:hover{background:#2c4658}
@media(max-height:780px){.end-intro img{width:min(445px,38vw)}.end-proposal{top:18%;padding:23px 35px;width:460px}}

.ending-test-actions{display:grid;gap:14px;padding:22px 0}.ending-test-actions button{padding:20px 24px;text-align:left;border:1px solid #a2b6a340;background:#8ea68c10;font:20px "KaiTi",serif;color:#dbddc6}.ending-test-actions button:hover{background:#8ea68c30}

/* The closed folder is an explicit player action before the proposal is revealed. */
.end-folder{position:absolute;left:46%;top:21%;transform:translateX(-50%) rotate(-1deg);width:min(520px,47vw);aspect-ratio:1.65;z-index:4;padding:0;border:0;background:none;color:#314943;font-family:"KaiTi",serif;text-align:left;cursor:pointer;isolation:isolate}
.end-folder-tab{position:absolute;left:0;top:0;width:37%;height:46px;padding:8px 24px;background:#9da58b;border:1px solid #c6ccb5;border-radius:8px 20px 0 0;font:13px "Microsoft YaHei",sans-serif;letter-spacing:3px}
.end-folder-pages{position:absolute;inset:33px 12px 52px;background:#e0dec7;border:1px solid #c2c7b4;transform:rotate(1deg);box-shadow:0 -4px 0 #c6ccb7}
.end-folder-cover{position:absolute;inset:40px 0 42px;padding:36px 42px;background:linear-gradient(115deg,#a9b29a,#879b8a);border:1px solid #c0c9af;border-radius:2px 6px 6px 6px;box-shadow:0 15px 30px #06161955,inset 0 1px #e1e4c860;transition:transform .25s,filter .25s;transform-origin:50% 100%}
.end-folder-cover:before{content:"";position:absolute;left:17px;top:0;bottom:0;border-left:1px solid #506f6140;border-right:1px solid #d2d7bd60}
.end-folder-cover>span{display:block;font:12px/1.6 "Microsoft YaHei",sans-serif;letter-spacing:3px;color:#405b50}
.end-folder-cover strong{display:block;margin:17px 0 18px;font:32px/1.2 "KaiTi",serif;letter-spacing:5px;font-weight:400}
.end-folder-hint{position:absolute;bottom:0;left:0;width:100%;text-align:center;font:15px/1.6 "KaiTi",serif;letter-spacing:2px;color:#e1dfc4;text-shadow:0 2px 4px #07181c}
.end-folder-hint>span{display:inline-block;margin-left:8px;color:#cbd7bd}
.end-folder:hover .end-folder-cover,.end-folder:focus-visible .end-folder-cover{transform:perspective(900px) rotateX(-5deg);filter:brightness(1.04)}
.end-proposal.is-opening{animation:end-proposal-open .45s ease-out both}
@keyframes end-proposal-open{from{opacity:0;transform:translate(-50%,12px) rotate(-1deg) scale(.96)}to{opacity:1;transform:translateX(-50%) rotate(-1deg)}}
@media(max-height:780px){.end-folder{top:18%;width:460px}.end-folder-cover{padding:25px 35px}.end-folder-cover strong{font-size:29px;margin:14px 0}}
@media(prefers-reduced-motion:reduce){.end-folder-cover{transition:none}.end-proposal.is-opening{animation:none}}

/* A quiet reading page for the author's message, shared by both endings. */
.end-author>small{color:#c7b68f;font-size:11px;line-height:1.5;letter-spacing:6px}
.end-author h2{margin:12px 0 24px;color:#f0d7a6;font:clamp(32px,2.2vw,42px)/1.4 GameKai,var(--serif);letter-spacing:5px}
.end-author-note{text-align:left;color:#e9e2cf;font:clamp(18px,1.2vw,22px)/1.9 var(--serif);letter-spacing:.4px}
.end-author-note p{margin:0 0 .9em;text-indent:2em}
.end-author-note p:last-child{margin-bottom:0;color:#e7d5b1}
#chapterRoot #endingRoot .end-author>button{min-width:144px;padding:12px 28px;font-family:var(--serif);font-size:18px;letter-spacing:4px;color:#eddfc0;border-color:#bba57880;background:#304b4680}
#chapterRoot #endingRoot .end-author>button:hover{background:#48635a99}
@media(max-height:780px){
  .end-author h2{margin:8px 0 18px;font-size:32px}
  .end-author-content{margin-bottom:18px;padding:18px 26px}
  .end-author-note{font-size:18px;line-height:1.8}
}
@media(max-width:799px){
  .end-author{padding:24px 0}
  .end-author>small{font-size:10px;letter-spacing:3px}
  .end-author h2{margin:10px 0 18px;font-size:30px}
  .end-author-content{width:calc(100% - 36px);padding:18px 14px}
  .end-author-note{font-size:17px;line-height:1.85;letter-spacing:.1px}
}
