/* Each remembered surface keeps a layout suited to its content. */
/* Pending resources keep the existing scene visible, with no loading curtain. */
.asset-status[hidden]{display:none!important}
[data-asset-state=loading]{visibility:hidden!important;pointer-events:none!important}
.cg-pending #story-view,.cg-pending #notice-view,.cg-pending #scene-objects,.cg-pending #inspect-assist{visibility:visible!important}
.cg-load-status:has(>.asset-status[hidden]){display:none}
#scene-preparation{position:fixed;z-index:100;left:50%;bottom:8%;transform:translateX(-50%);width:min(500px,90vw)}
#scene-preparation .asset-status{position:relative;inset:auto;padding:18px;background:#15231feF;border:1px solid #9d8a61}
body.scene-preparing #story-view{pointer-events:none;cursor:progress}
body.cemetery-night #backdrop[data-cg$="-v27"]{filter:brightness(.92) saturate(.86)}
.scene-reading[data-type=handle] .reading-ink{display:flex;flex-direction:column;gap:4px;line-height:1.5}
.scene-reading[data-type=handle] .reading-words{flex:1;min-height:0;overflow:visible!important}
.scene-reading[data-type=handle] .reading-words p{margin:0 0 .4em}
.scene-reading[data-type=handle] .reading-ink button{flex:none}
.scene-actions-v27{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none}
.v27-action-plane{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.v27-action-plane>div,.v27-scene-hit{position:absolute}
.v27-scene-hit{pointer-events:auto;background:transparent;border:0;cursor:pointer;transition:box-shadow .2s}
.v27-scene-hit:hover,.v27-scene-hit:focus-visible{box-shadow:inset 0 0 25px #f1ce7a38;outline:1px solid #d3bb7999;outline-offset:4px}
.v27-scene-hit>span{position:absolute;left:50%;top:100%;transform:translate(-50%,7px);width:max-content;max-width:30ch;color:#f2dfb5;text-shadow:0 2px 5px #000;background:#14201dde;padding:6px 12px;font:17px/1.4 'KaiTi',serif;opacity:0;transition:opacity .2s}
.v27-scene-hit:hover>span,.v27-scene-hit:focus-visible>span{opacity:1}
.scene-action-v27-active .dialogue-panel{background:linear-gradient(90deg,#10201dec,#10201dcc,transparent);border:0;box-shadow:none;min-height:150px;pointer-events:none}
.scene-action-v27-active .dialogue-panel:before,.scene-action-v27-active .dialogue-topline{display:none}
.scene-action-v27-active .story-text{font-size:23px;line-height:1.7;min-height:0}
.v27-placement-stub{display:flex;gap:12%;align-items:center;justify-content:center;filter:drop-shadow(0 10px 5px #0008)}
.v27-placement-stub i{display:grid;place-content:center;width:35%;height:90%;background:linear-gradient(110deg,#d1c19a,#b9a576);color:#32362a;font:45px 'Songbai Hand','KaiTi',serif;border:1px solid #8e7655;transform:rotate(-5deg);box-shadow:inset 0 0 22px #6f4c211d}
.v27-placement-stub i+i{transform:rotate(5deg)}
.v27-placement-stub.merged{gap:0}.v27-placement-stub.merged i+i{margin-left:-12%;transform:rotate(2deg)}
.v27-placement-stub.promised b{position:absolute;top:0;right:29%;background:#a99064;color:#302f26;font:23px 'Songbai Hand','KaiTi',serif;padding:8px;transform:rotate(4deg)}
.v27-placement-result{text-align:center;font:24px 'Songbai Hand','KaiTi',serif;color:#ded1ab;text-shadow:0 2px 7px #000}
.v27-name-tag{color:#472c30;padding:4px 3px;writing-mode:vertical-rl;font:19px 'Songbai Hand','KaiTi',serif;transform:rotate(-4deg)}
.v27-name-tag small{font:13px 'KaiTi',serif;margin-right:8px}
.v27-authority-paper,.v27-signed-card,.v27-fireworks-card{background:linear-gradient(108deg,#bdad88,#e0cfa6 45%,#c8b385);color:#3d3326;font:26px/1.65 'Songbai Hand','KaiTi',serif;box-shadow:2px 10px 12px #0006;padding:15px 22px;transform:rotate(-3deg);display:flex;flex-direction:column;justify-content:space-around}
.v27-authority-paper small,.v27-signed-card small{font:17px 'KaiTi',serif;text-align:center;letter-spacing:.1em}
.v27-authority-paper b,.v27-signed-card b{font-weight:400}
.v27-authority-paper i,.v27-signed-card i{text-align:right;color:#543d34;font-style:normal}
.v27-stamp-object{filter:drop-shadow(5px 9px 3px #0008)}
.v27-stamp-object i{position:absolute;left:7%;bottom:0;width:90%;height:37%;background:linear-gradient(90deg,#322b20,#92704b,#4d392a);border-radius:20% 20% 5px 5px}
.v27-stamp-object:before{content:'';position:absolute;left:31%;bottom:30%;width:45%;height:65%;border-radius:50% 50% 20% 20%;background:linear-gradient(90deg,#523321,#9d6038,#442a20)}
.v27-fireworks-card{padding:5px 12px;font-size:18px}.v27-fireworks-card small{font:14px 'KaiTi',serif}
.v27-fuse:after{content:'';position:absolute;inset:30%;border-radius:50%;box-shadow:0 0 25px 3px #ecb25644}
.v27-dawn-record{font:22px/1.7 'Songbai Hand','KaiTi',serif;color:#292118;transform:rotate(-3deg);padding:12px 8px;text-shadow:none}
.v27-dawn-record small{font:15px 'KaiTi',serif;letter-spacing:.1em}.v27-dawn-record p{margin:10px 0}.v27-dawn-record i{display:block;text-align:right;font-size:26px;margin-top:20px;font-style:normal}
.v27-lamp img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 12px #eeb66077)}
.v27-lamp.resting{animation:v27-lamp-rest .5s ease-out both}
@keyframes v27-lamp-rest{from{transform:translateY(-12px);opacity:.5}to{transform:translateY(0);opacity:1}}
.proof-confront{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);font:20px/1.6 'Songbai Hand','KaiTi',serif;color:#f2dcab;background:#223127eF;border-bottom:1px solid #c5ad70;padding:10px 24px;pointer-events:auto}
.proof-confront:hover{background:#394739}
.scene-puzzle[data-kind=proof] .laid-document:has(.marked){box-shadow:0 0 0 1px #9c5e4a88,0 15px 22px #0006}
@media(max-width:650px){.v27-action-plane{width:100%!important;height:100%!important}.v27-action-plane .v27-placement-stub{left:15%!important;top:35%!important;width:70%!important;height:20%!important}.v27-placement-result{left:10%!important;top:29%!important;width:80%!important;font-size:18px}.v27-scene-hit[id^=barnaby]{left:15%!important;top:35%!important;width:70%!important;height:20%!important}.v27-dawn-record{font-size:17px;padding:4px}.scene-action-v27-active .story-text{font-size:19px}.proof-confront{font-size:17px;max-width:90%;width:max-content}.v27-authority-paper,.v27-signed-card{font-size:20px;padding:8px}.v27-name-tag{font-size:19px}}
@media(prefers-reduced-motion:reduce){.v27-lamp.resting{animation:none}}
.memory-content .forum-page{grid-template-columns:minmax(116px,19%) minmax(0,1fr)}
.memory-content .forum-page main{min-width:0;overflow-wrap:break-word;word-break:normal}
.memory-content .forum-post>div{min-width:0}
.memory-content .forum-draft .forum-page{display:block}
.memory-content .forum-draft .forum-page main{width:100%;padding:24px 7%}
.memory-content .forum-draft-heading small{color:#687360;font-size:12px;letter-spacing:.12em}
.memory-content .forum-draft-copy{display:block;max-width:34em;padding:14px 0;border-block:1px solid #c8cabc;color:#303d35;font-size:18px;line-height:1.8}
.memory-content .forum-draft-copy p{margin:0 0 14px}
.memory-content .forum-draft-copy p:last-child{margin-bottom:0}
.memory-content .forum-draft .forum-found{margin:12px 0;color:#606d55;font-size:13px}
.memory-scene[data-kind=forum] .memory-leave{bottom:4%;right:5%;z-index:2}
/* The complete dismissal letter is one readable sheet, never a slideshow. */
.memory-scene[data-kind=dismissal] .memory-plane{width:100%!important;height:100%!important;transform:translate(-50%,-50%)}
.memory-scene[data-kind=dismissal] .memory-content{left:50%;top:50%;width:min(650px,90vw);height:min(780px,calc(100dvh - 48px));padding:clamp(18px,3.4vh,32px) clamp(22px,4vw,48px);transform:translate(-50%,-50%) rotate(-.5deg);font:clamp(18px,2.55vh,22px)/1.65 'KaiTi','SimSun',serif;gap:14px;box-sizing:border-box}
.memory-scene[data-kind=dismissal] .memory-leave{display:none}
.dismissal-single-sheet{display:flex;flex-direction:column;gap:12px;overflow:visible;flex:1}
.dismissal-single-sheet .letter-letterhead{font:14px/1.4 'KaiTi',serif;letter-spacing:.18em;padding-bottom:10px;border-bottom:1px solid #827352}
.dismissal-single-sheet h3{font-size:clamp(21px,3vh,27px);letter-spacing:.09em;margin:14px 0 6px;line-height:1.4}
.memory-content .dismissal-single-sheet .letter-number{font-size:13px;margin:6px 0 4px;color:#514934;text-align:right}
.dismissal-single-sheet .dismissal-body p{margin:0 0 .65em;text-wrap:pretty}
.dismissal-single-sheet .dismissal-body p:not(.letter-recipient){text-indent:2em}
.dismissal-footer{margin-top:auto;display:flex;flex-direction:column;gap:12px}
.memory-content .dismissal-single-sheet .letter-sign{align-self:flex-end;margin:0;min-width:13em;padding-right:7px;font-size:.85em;line-height:1.6;isolation:isolate}
.dismissal-single-sheet .letter-sign>span,.dismissal-single-sheet .letter-sign time{display:block}
.memory-content .dismissal-single-sheet .fictional-seal{right:10px;bottom:0;width:78px;height:78px;font-size:11px;color:#8b352b7a;border-color:#8b352b66;z-index:-1}
.dismissal-single-sheet .letter-receipt{margin:0;padding-top:10px;border-top:1px dashed #8e7c5680;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;font-size:.8em;line-height:1.6}
.dismissal-single-sheet .letter-receipt p{margin:0}
.dismissal-single-sheet .letter-receipt small{font-size:12px;color:#554a35}
.memory-scene[data-kind=dismissal] .memory-page-turn{flex:none;margin:0;padding:6px 12px;font-size:17px;line-height:1.4;background:transparent;border:0;border-bottom:1px solid #8b744f}
@media(max-width:900px){.memory-content .forum-page{grid-template-columns:minmax(0,1fr)}.memory-content .forum-page aside{display:none}}
@media(max-width:600px){.memory-scene[data-kind=forum]{--memory-zoom:1}.memory-scene[data-kind=forum] .memory-plane{width:100%!important;height:100%!important}.memory-scene[data-kind=forum] .memory-content{left:4%;top:10%;width:92%;height:74%}.memory-content .forum-draft .forum-page main{padding:20px}.memory-content .forum-draft-copy{font-size:17px}.memory-content .forum-toolbar{font-size:11px}.memory-scene[data-kind=dismissal] .memory-content{gap:10px}.dismissal-single-sheet{gap:10px}.dismissal-single-sheet .letter-receipt{display:block}.dismissal-single-sheet .letter-receipt small{display:block;margin-top:5px}}
@media(max-height:600px){.memory-scene[data-kind=dismissal] .memory-content{width:min(790px,94vw);height:calc(100dvh - 22px);padding:14px 28px;gap:6px;font-size:14px;line-height:1.4}.dismissal-single-sheet{gap:5px}.dismissal-single-sheet .letter-letterhead{font-size:12px;padding-bottom:5px}.dismissal-single-sheet h3{font-size:20px;margin:5px 0}.memory-content .dismissal-single-sheet .letter-number{font-size:11px;margin:3px 0}.dismissal-single-sheet .dismissal-body p{margin-bottom:.35em}.dismissal-footer{flex-direction:row-reverse;align-items:flex-end;gap:20px}.dismissal-single-sheet .letter-receipt{flex:1;border-top:1px dashed #8e7c5680;padding-top:5px;font-size:12px;display:block}.dismissal-single-sheet .letter-receipt small{font-size:10px}.memory-content .dismissal-single-sheet .letter-sign{font-size:12px;min-width:12em}.memory-content .dismissal-single-sheet .fictional-seal{width:56px;height:56px;font-size:9px}.memory-scene[data-kind=dismissal] .memory-page-turn{font-size:13px;padding:4px 10px}}

body:has(.memory-scene[data-kind=dismissal]:not([hidden])) .game-header{visibility:hidden}
.memory-content .forum-draft .forum-page main{padding:12px 6%}
.memory-content .forum-draft-heading h3{font-size:20px;margin:4px 0}
.memory-content .forum-draft-heading .forum-score{font-size:16px;margin:4px 0 8px}
.memory-content .forum-draft-copy{font-size:17px;line-height:1.6;padding:8px 0}
.memory-content .forum-draft-copy p{margin:0 0 8px}

/* Painted linen and carved walnut replace the flat material placeholders. */
.v27-placement-stub{filter:drop-shadow(2px 3px 1px #160f09aa);transform:perspective(650px) rotateX(43deg) rotateZ(-4deg);transform-origin:center center}
.v27-placement-stub i{width:39%;height:100%;background: url("assets/objects/record-paper-v28.webp") center/100% 100% no-repeat;border:0;box-shadow:none;color:#3d3528;font-size:34px;position:relative}
.v27-placement-stub i:before{content:'安置留记';position:absolute;top:12%;left:0;right:0;font:15px 'Songbai Hand',serif;text-align:center}
.v27-placement-stub i:after{content:'本人确认';position:absolute;bottom:14%;left:0;right:0;font:13px 'Songbai Hand',serif;text-align:center}
.v27-authority-paper,.v27-signed-card,.v27-fireworks-card{background: url("assets/objects/record-paper-v28.webp") center/100% 100% no-repeat;box-shadow:none;filter:drop-shadow(2px 3px 1px #0008);padding:18px 27px}
.v27-stamp-object img{width:100%;height:100%;object-fit:contain}
.v27-stamp-object:before{display:none}

.scene-puzzle-active .dialogue-panel{pointer-events:none;overflow:visible;min-height:140px!important}
.scene-puzzle-active .dialogue-topline{margin-bottom:0}
.scene-puzzle-active .story-text{min-height:0;line-height:1.65}
.proof-confront{bottom:34%}
@media(max-height:600px){.proof-confront{top:48%;bottom:auto;font-size:15px;padding:6px 12px}}

.memory-content .forum-draft .forum-page{overflow:hidden}

.v27-authority-notice{background:url("assets/objects/record-paper-v28.webp") center/100% 100% no-repeat;filter:drop-shadow(2px 3px 1px #0008) sepia(.2);color:#653f42;display:flex;flex-direction:column;justify-content:space-around;padding:14px 12px;transform:rotate(-7deg);font:25px 'Songbai Hand','KaiTi',serif;text-align:center}.v27-authority-notice small{font-size:16px}.v27-authority-notice i{font-size:18px;font-style:normal}.v27-authority-notice b{font-weight:400}

.scene-object-required #scene-objects{z-index:6}.scene-object-required .dialogue-panel{pointer-events:none}

.v27-dawn-record{font-size:20px;line-height:1.35;color:#21170f;transform:rotate(-3deg);padding:8px 5px;text-shadow:0 0 1px #21170f44}.v27-dawn-record small{font-size:15px}.v27-dawn-record p{margin:8px 0}.v27-dawn-record p b{display:block;font-size:14px;font-weight:400;letter-spacing:.15em}.v27-dawn-record p span{display:block;font-size:19px;white-space:nowrap}.v27-dawn-record i{font-size:23px;margin-top:12px}

/* During physical actions, keep the object fully visible above a compact caption. */
.scene-action-v27-active .dialogue-panel{display:flex;flex-direction:column;gap:8px;min-height:116px!important;height:auto;max-height:28%;padding:16px 25px 11px;bottom:12px}
.scene-action-v27-active .story-text{display:block;font-size:22px;line-height:1.5;min-height:0!important;padding:0;margin:0}
.scene-action-v27-active .dialogue-bottom{width:100%;margin-top:6px}
@media(max-width:650px){.scene-action-v27-active .dialogue-panel{padding:12px 17px 8px;max-height:32%;min-height:100px!important}.scene-action-v27-active .story-text{font-size:18px}}

/* Keep the predecessor's complete instructions and signature on the physical sheet. */
.scene-reading[data-type=card] .reading-ink{line-height:1.4;padding-block:calc(8px / var(--reading-zoom,1))}
.scene-reading[data-type=card] .reading-words p{margin:0 0 .22em;overflow-wrap:break-word}
.scene-reading[data-type=card] .reading-ink header{flex:none;margin-bottom:calc(6px / var(--reading-zoom,1))}
.scene-reading[data-type=card] .reading-ink button{flex:none}

body.scene-preparing .dialogue-panel:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:30%;background:#b59e70;animation:scene-readiness-sweep 1.4s ease-in-out infinite}@keyframes scene-readiness-sweep{0%,100%{left:0;opacity:.25}50%{left:70%;opacity:.8}}@media(prefers-reduced-motion:reduce){body.scene-preparing .dialogue-panel:after{animation:none;width:100%;opacity:.4}}
