:root{color-scheme:dark;--ink:#f0eee6;--muted:#b4bebd;--accent:#d4c4a4;--panel:rgba(21,33,40,.94);--text-size:26px;font-family:"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:#101a20;color:var(--ink);overflow:hidden}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:hover{color:#fff}button:disabled{opacity:.32;cursor:default}a{color:var(--accent);text-decoration:none}p,h1,h2{margin:0}button[hidden],[hidden]{display:none!important}#game{position:relative;width:100vw;height:100dvh;overflow:hidden;isolation:isolate;outline:0}#world{position:absolute;inset:0;overflow:hidden;background:#1b2426}#background{width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .6s,transform 2s;filter:saturate(.86)}#actors{position:absolute;inset:0}.actor{position:absolute;height:105%;width:auto;max-width:none;bottom:-13%;left:50%;transform:translateX(-50%);object-fit:contain;transition:left .6s,filter .4s,opacity .4s;filter:brightness(.77) saturate(.78);pointer-events:none;will-change:opacity,transform}.actor.active{filter:brightness(1) saturate(.92)}.actor.enter{animation:enter .65s ease-out}.actor.change{animation:expression .45s ease-out}.actor.leave{opacity:0;transform:translateX(-45%);transition:.45s}.actor.near{height:119%;bottom:-24%}.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(17,27,33,.15),transparent 38%,rgba(18,29,35,.1) 70%,rgba(18,29,35,.7))}#location{position:absolute;top:36px;left:46px;letter-spacing:4px;font-size:13px;color:#fff;text-shadow:0 1px 6px #20313c;opacity:.8;z-index:4}#sound-caption{position:absolute;top:35px;right:44px;max-width:55%;text-align:right;font-size:12px;letter-spacing:2px;color:#e1e5df;text-shadow:0 1px 4px #162631;z-index:4}#advance-surface{position:absolute;inset:0;z-index:5;width:100%;height:100%;cursor:pointer}#dialogue{position:absolute;z-index:9;bottom:53px;left:6%;right:6%;min-height:174px;padding:40px 54px 38px;background:linear-gradient(100deg,rgba(21,33,40,.95),rgba(26,40,47,.92));border-top:1px solid #9d998477;box-shadow:0 8px 36px #10192044;pointer-events:none}#dialogue::before{content:"";position:absolute;left:0;top:0;height:2px;width:40px;background:var(--accent)}#nameplate{position:absolute;top:-24px;left:35px;min-width:130px;padding:12px 24px;background:#d3c6af;color:#27353b;font-family:"Songti SC","SimSun",serif;font-size:19px;letter-spacing:3px}#nameplate:empty{display:none}#line{font-size:calc(var(--text-size) * var(--text-scale,1));line-height:1.85;letter-spacing:1.5px;white-space:pre-wrap}#dialogue.thought #line{color:#d0d7d5;font-family:"Songti SC","SimSun",serif}#dialogue.narration{background:linear-gradient(100deg,rgba(21,33,40,.84),rgba(26,40,47,.78))}#next-mark{position:absolute;bottom:20px;right:26px;font-size:16px;color:#d6c7ab;animation:breathe 2s infinite}#quick-menu{position:absolute;z-index:15;bottom:14px;right:6%;display:flex;gap:19px;align-items:center;font-size:12px;letter-spacing:2px;color:#b9c2c2}#quick-menu button{padding:7px 0}#quick-menu button:hover,#quick-menu .selected{color:#e7d2aa}#title-screen{position:absolute;inset:0;z-index:30;background:linear-gradient(90deg,rgba(15,27,33,.94),rgba(19,31,37,.7) 41%,rgba(20,31,38,.06) 78%)}.title-inner{position:absolute;left:11%;top:15%;width:480px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--muted);line-height:1.8}h1{font-family:"Songti SC","STSong","SimSun",serif;font-size:122px;letter-spacing:22px;font-weight:400;line-height:1.5;margin:7px 0 0;color:#e8e4da}h1 span{display:inline-block;transform:translateY(17px)}.chapter-title{font-family:"Songti SC","SimSun",serif;color:#c7c8bc;font-size:14px;letter-spacing:5px;margin:22px 0 36px}.chapter-title span{padding-left:25px;border-left:1px solid #7c8b8c;margin-left:22px}.title-menu{width:250px;display:grid;gap:2px}.title-menu button{text-align:left;padding:13px 0;font-size:16px;letter-spacing:4px;border-bottom:1px solid #9fafad26;transition:padding .25s}.title-menu button span{float:right;color:#b9baa7}.title-menu button:hover{padding-left:12px}.title-footer{position:absolute;bottom:30px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:#acb6b7}.title-footer button{font-size:11px}#choices{position:absolute;inset:0;z-index:18;background:#15242d44;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:150px;gap:16px}#choices button{width:min(690px,80%);padding:20px 30px;letter-spacing:2px;line-height:1.7;background:rgba(28,43,51,.96);border:1px solid #a5a48b88;text-align:left;font-size:18px;box-shadow:0 6px 22px #13222b33;transition:transform .2s,background .2s}#choices button:hover{background:#485453;transform:translateX(5px)}#choices button .choice-num{color:#b4b095;font-size:12px;margin-right:24px}#scene-card{position:absolute;inset:0;background:#142229e8;z-index:24;display:grid;place-content:center;text-align:center;letter-spacing:6px;pointer-events:none;animation:card 2.4s both;font-family:"Songti SC",serif;font-size:25px}#scene-card small{display:block;font-family:inherit;color:#adb8b5;margin-bottom:22px;font-size:12px;letter-spacing:4px}#impact{position:absolute;inset:0;pointer-events:none;z-index:8}#world.hit{animation:hit .4s ease-out}#impact.hit{animation:blink .5s ease-out}#exploration{position:absolute;inset:0;z-index:11;pointer-events:none}.hotspot{position:absolute;pointer-events:auto;display:flex;align-items:center;gap:12px;padding:12px 18px;background:#20333bbd;border:1px solid #d0c4a96b;backdrop-filter:blur(8px);font-size:14px;letter-spacing:2px}.hotspot:before{content:"◇";color:var(--accent);font-size:24px}.hotspot:hover{background:#455650}.explore-next{position:absolute;right:7%;top:15%;pointer-events:auto;font-size:13px;color:#e4dbc7;border-bottom:1px solid #bfb99f;padding:9px}.explore-note{position:absolute;left:7%;top:14%;font-size:12px;letter-spacing:2px;color:#e5e2d7}.mobile-phone{position:absolute;left:18%;top:33%;width:68px;height:118px;transform:rotate(-13deg);background:#23303c;border:3px solid #2a3740;border-radius:12px;box-shadow:4px 6px 10px #14252b66;pointer-events:auto}.mobile-phone:after{content:"";position:absolute;inset:9px 3px;background:linear-gradient(#818f8d,#a3aca0);border-radius:4px}#diegetic{position:absolute;z-index:12;top:7%;bottom:29%;left:50%;transform:translateX(-50%);width:300px;pointer-events:none}.phone{height:100%;min-height:330px;border:8px solid #35444d;border-radius:32px;background:#d6dbd5;color:#26383d;box-shadow:0 15px 55px #14202966;overflow:hidden;display:flex;flex-direction:column}.phone:before{content:"";height:5px;width:65px;border-radius:9px;background:#4b595d;display:block;margin:9px auto 7px;flex-shrink:0}.phone-head{padding:13px 16px;text-align:center;border-bottom:1px solid #aeb8b0;font-size:16px;letter-spacing:2px}.phone-body{padding:18px 14px;flex:1;overflow:auto;display:flex;flex-direction:column;gap:13px;font-size:14px;line-height:1.65}.phone small{display:block;text-align:center;color:#73817f;font-size:10px}.bubble{background:#f0eee4;padding:10px 12px;border-radius:3px 12px 12px 12px;align-self:flex-start;max-width:88%}.bubble.me{background:#acbab1;align-self:flex-end;border-radius:12px 3px 12px 12px}.phone-draft{margin:8px 13px 20px;padding:12px;background:#eef0e7;border-radius:6px;color:#5a6c6b;font-size:14px}.phone .call-name{text-align:center;font-size:24px;margin-top:30px;font-family:"Songti SC",serif}.call-orb{height:74px;width:74px;border:1px solid #8c9f96;border-radius:50%;margin:15px auto;display:grid;place-content:center;font-size:25px;animation:breathe 2.5s infinite}.call-status{text-align:center;font-size:13px;color:#687d79}.wave{display:flex;align-items:center;justify-content:center;gap:4px;height:60px;margin-top:16px}.wave i{display:block;background:#67817c;width:3px;height:15px;animation:wave .9s infinite alternate;animation-delay:calc(var(--n)*-.13s)}.rec-label{text-align:center;font-size:12px;color:#687d79}.phone-actions{margin:auto 20px 24px;display:flex;justify-content:center}.phone-actions button{pointer-events:auto;border:1px solid #8e9f96;color:#3e5752;padding:9px 16px;border-radius:20px;font-size:12px}#diegetic.recording{width:220px;left:77%;top:19%;bottom:33%}#diegetic.recording .phone{min-height:220px}.recording .phone-head{font-size:12px}.recording .phone-body{padding:10px}.recording .rec-label{margin-top:0}.recording .wave{height:45px}#ending{position:absolute;inset:0;z-index:27;background:linear-gradient(110deg,#18282df7,#23383be6);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px}#ending h2{font-family:"Songti SC",serif;font-weight:400;font-size:35px;letter-spacing:4px;margin:25px 0}#ending>p:not(.eyebrow){font-size:15px;line-height:1.8;letter-spacing:2px;color:#c4cdca}.end-rule{height:1px;width:90px;background:#a3a58d;margin:40px 0 20px}#ending .saved-note{font-size:11px!important;margin-bottom:20px}#ending button,#ending a{padding:10px 24px;font-size:13px;letter-spacing:3px}#ending a{margin-top:12px;color:#aebcb9;font-size:11px}#toast{position:absolute;bottom:265px;left:50%;transform:translateX(-50%);z-index:60;pointer-events:none;background:#182d36ed;padding:12px 22px;border:1px solid #8b9b9580;letter-spacing:2px;font-size:12px;opacity:0;transition:opacity .3s}#toast.show{opacity:1}dialog{width:min(850px,92vw);max-height:85dvh;padding:32px 40px;border:1px solid #89999166;color:var(--ink);background:#1b2c33;box-shadow:0 24px 100px #081317aa}dialog::backdrop{background:#0f1b23aa;backdrop-filter:blur(7px)}dialog header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #87999144;padding-bottom:20px;margin-bottom:24px}dialog h2{font-family:"Songti SC",serif;font-weight:400;letter-spacing:4px;font-size:27px}#close-modal{font-size:30px;color:#a3b5b5;padding:0 10px}#modal-body{font-size:14px;line-height:1.9;color:#d1d9d5}#modal-body p{margin:12px 0}.settings-row{display:grid;grid-template-columns:145px 1fr 50px;gap:20px;align-items:center;margin:24px 0}.settings-row label{color:#d9dacd}.settings-row input[type=range]{width:100%;accent-color:#b7b29a}.settings-row input[type=checkbox]{accent-color:#b7b29a;width:18px;height:18px}.setting-hint{font-size:12px;color:#94aba9}.modal-buttons{display:flex;gap:16px;flex-wrap:wrap;margin-top:24px}.modal-buttons button{padding:9px 16px;border:1px solid #879d9266;font-size:12px}.save-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.slot{border:1px solid #758f8d55;min-height:115px;padding:16px;text-align:left;background:#20343c;display:grid;gap:7px}.slot:hover{background:#2c4248}.slot small{color:#a9b7af;font-size:11px}.slot strong{font-size:15px;font-weight:400}.slot span{font-size:12px;color:#a4b6b1}.history-row{border-bottom:1px solid #899d942a;padding:15px 0;display:grid;grid-template-columns:100px 1fr;gap:18px}.history-row b{font-weight:400;font-size:12px;color:#afbaad}.history-row p{margin:0!important;white-space:pre-wrap}.journal-page{position:relative;min-height:320px;background:#e5ddc9;color:#394b50;padding:32px;font-family:"Songti SC",serif;box-shadow:inset 10px 0 25px #a5947533;border-radius:2px}.journal-page h3{font-size:19px;font-weight:400;letter-spacing:4px;margin-top:0}.journal-page p{padding-bottom:14px;border-bottom:1px solid #9eab9d77;line-height:2.2!important}.journal-page small{color:#7e8678}.journal-art{width:160px;float:right;margin:0 0 12px 20px;mix-blend-mode:multiply}.journal-empty{font-style:italic;color:#788879}.hidden-ui #dialogue,.hidden-ui #quick-menu,.hidden-ui #location,.hidden-ui #sound-caption{visibility:hidden}.reduce-motion *{animation:none!important;transition:none!important}@keyframes enter{from{opacity:0;transform:translateX(-42%)}to{opacity:1;transform:translateX(-50%)}}@keyframes expression{from{opacity:.5}to{opacity:1}}@keyframes breathe{0%,100%{opacity:.45}50%{opacity:1}}@keyframes wave{to{height:38px}}@keyframes card{0%,5%{opacity:0}20%,65%{opacity:1}100%{opacity:0}}@keyframes hit{0%{transform:translateX(0)}18%{transform:translateX(-8px)}46%{transform:translateX(5px)}75%{transform:translateX(-2px)}100%{transform:translateX(0)}}@keyframes blink{0%{background:transparent}30%{background:#e8e1d522}100%{background:transparent}}
@media(min-aspect-ratio:2/1){#game{max-width:1920px;margin:auto}.actor{height:115%;bottom:-25%}.title-inner{top:7%}h1{font-size:95px}.chapter-title{margin:8px 0 18px}}
@media(max-width:900px){:root{--text-size:22px}#dialogue{left:4%;right:4%;padding:32px 30px 25px;min-height:152px;bottom:46px}#quick-menu{right:4%;bottom:8px;gap:16px}#nameplate{left:23px;font-size:16px;padding:9px 20px;top:-22px}.title-inner{left:9%;top:14%}h1{font-size:95px}.title-footer{font-size:10px}#location{top:22px;left:26px}#sound-caption{top:22px;right:26px}.actor{height:100%;bottom:-8%}#diegetic{width:250px;top:9%;bottom:33%}.phone-body{font-size:12px;gap:10px;padding:12px}.phone-head{padding:9px}#diegetic.recording{left:79%;width:185px}#choices{padding-bottom:110px}#choices button{font-size:16px;padding:16px 24px}}
@media(max-width:600px) and (orientation:portrait){:root{--text-size:18px}#background{object-position:43%}.actor{height:81%;bottom:13%;max-width:none}.actor.near{height:90%;bottom:3%}#dialogue{bottom:63px;min-height:175px;padding:33px 22px 27px;left:4%;right:4%}#line{line-height:1.85;letter-spacing:.7px}#quick-menu{left:6%;right:6%;bottom:14px;gap:0;justify-content:space-between;flex-wrap:wrap;font-size:11px;letter-spacing:0}#location{top:22px;left:22px;font-size:11px;letter-spacing:2px}#sound-caption{top:48px;right:22px;font-size:10px;max-width:80%}.title-inner{left:11%;top:16%;width:83%}h1{font-size:99px}.eyebrow{font-size:9px;letter-spacing:1.5px}.chapter-title{font-size:12px;letter-spacing:3px;margin:27px 0 32px}.chapter-title span{padding-left:12px;margin-left:12px}.title-menu{width:225px}.title-footer{bottom:24px;flex-direction:column;gap:17px;align-items:flex-start;left:11%;letter-spacing:1px}#title-screen{background:linear-gradient(90deg,#15272de8,#17282dbc 70%,#17282d44)}#choices{padding-bottom:125px;gap:12px}#choices button{width:89%;font-size:15px;padding:14px 18px;letter-spacing:1px}.choice-num{margin-right:12px!important}#diegetic{top:11%;bottom:37%;width:230px}.phone{min-height:290px;border-width:6px}#diegetic.recording{left:76%;width:135px;top:16%;bottom:45%}.recording .phone{min-height:160px;border-width:4px;border-radius:20px}.recording .phone-head{font-size:10px;padding:5px}.recording .phone-body{padding:4px}.recording .phone-actions{margin:5px auto 10px}.recording .phone-actions button{font-size:9px;padding:5px 8px}.recording .rec-label{font-size:10px}.recording .wave{margin-top:4px;height:35px}.recording .wave i{width:2px}.hotspot{font-size:12px;padding:9px 11px}.explore-note{top:12%;font-size:10px}.explore-next{top:16%;font-size:11px}.mobile-phone{left:15%;top:43%}#ending h2{font-size:25px;line-height:1.8}#ending>p:not(.eyebrow){font-size:13px}dialog{padding:24px 22px}.settings-row{grid-template-columns:105px 1fr 30px;gap:10px;font-size:12px}.save-grid{grid-template-columns:1fr}.history-row{grid-template-columns:70px 1fr;gap:12px;font-size:13px}.journal-page{padding:22px}.journal-art{width:110px}.journal-page p{font-size:15px}#toast{bottom:260px;white-space:nowrap}}
@media(max-height:540px) and (orientation:landscape){:root{--text-size:17px}#dialogue{min-height:110px;padding:21px 35px;bottom:38px}#nameplate{top:-20px;font-size:14px;padding:8px 18px}#quick-menu{bottom:4px}#location,#sound-caption{top:14px;font-size:10px}.title-inner{top:8%;left:10%}h1{font-size:65px;line-height:1.3;margin:0}.chapter-title{margin:15px 0 16px;font-size:11px}.title-menu{width:215px}.title-menu button{padding:8px 0;font-size:13px}.title-footer{bottom:14px}.actor{height:119%;bottom:-22%}#choices{padding-bottom:70px;gap:8px}#choices button{padding:10px 20px;font-size:14px}#diegetic{top:3%;bottom:28%;width:180px}.phone{min-height:220px;border-width:5px}.phone-body{font-size:10px;padding:8px;gap:5px}.phone-head{font-size:12px;padding:5px}.phone:before{margin:5px auto}.phone .call-name{margin-top:5px;font-size:17px}.call-orb{height:48px;width:48px;margin:8px auto}#diegetic.recording{top:12%;bottom:30%;width:160px}.phone-actions{margin:5px auto 12px}.phone-actions button{font-size:10px;padding:5px 9px}#ending h2{font-size:25px;margin:12px 0}.end-rule{margin:18px 0 12px}#ending button,#ending a{padding:6px}#ending .saved-note{margin-bottom:7px}}

.actor.seated{height:101%;bottom:-18%}
@media(max-width:600px) and (orientation:portrait){.actor.seated{height:75%;bottom:13%}}
@media(max-height:540px) and (orientation:landscape){.actor.seated{height:110%;bottom:-25%}}
/* 录音是小型外放控件，不能遮住母亲的表情。 */
#diegetic.recording{top:auto;bottom:27%;left:81%;height:105px;width:238px}
#diegetic.recording .phone{min-height:0;border:1px solid #b5b5a288;border-radius:4px;background:#e0ddccec;padding:8px 12px;display:grid;grid-template-columns:1fr 75px;grid-template-rows:24px 1fr}
#diegetic.recording .phone:before{display:none}.recording .phone-head{padding:0;border:0;text-align:left;font-size:12px;grid-column:1/-1}.recording .phone-body{padding:0;display:block}.recording .wave{height:35px;margin:0;justify-content:flex-start;gap:3px}.recording .wave i{height:10px}.recording .rec-label{display:none}.recording .phone-actions{margin:0;align-items:center}.recording .phone-actions button{font-size:10px;padding:7px 8px;white-space:nowrap}
@media(max-width:600px) and (orientation:portrait){
#game.crowded .actor{height:57%;bottom:28%}
#diegetic.recording{left:69%;bottom:31%;height:88px;width:180px}
#diegetic.recording .phone{padding:6px 9px;grid-template-columns:1fr 66px;grid-template-rows:20px 1fr}
.recording .wave{gap:2px}.recording .wave i{width:2px}.recording .phone-head{font-size:10px}.recording .phone-actions button{font-size:9px;padding:5px}
#game[data-kind="chat"] #actors,#game[data-kind="chat-thought"] #actors,#game[data-kind="calling"] #actors,#game[data-kind="call-end"] #actors{opacity:0}
#game[data-kind="chat"] #background,#game[data-kind="chat-thought"] #background,#game[data-kind="calling"] #background,#game[data-kind="call-end"] #background{filter:brightness(.7) saturate(.7)}
#diegetic:not(.recording){width:min(280px,77vw);bottom:35%}
.actor.seated{bottom:0;height:88%}
}
@media(max-height:540px) and (orientation:landscape){#diegetic.recording{left:81%;bottom:41%;height:82px;width:195px}}

#diary-writing{position:absolute;z-index:11;left:20%;top:24%;width:25%;font:25px/2.8 "Kaiti SC","STKaiti","KaiTi","Songti SC",serif;letter-spacing:3px;color:#3c4b52;white-space:pre-wrap;pointer-events:none}
#recording-caption{position:absolute;z-index:14;left:15%;right:15%;bottom:29%;background:#21373ee8;padding:12px 22px;color:#e4e3d7;text-align:center;font-size:17px;line-height:1.7;pointer-events:none}
@media(max-width:600px) and (orientation:portrait){#diary-writing{left:14%;width:73%;top:25%;font-size:21px;line-height:2.6}#game[data-kind="journal-write"] #background{object-position:27% center}#recording-caption{left:5%;right:5%;bottom:42%;font-size:13px;padding:10px}}
@media(max-height:540px) and (orientation:landscape){#diary-writing{font-size:17px;line-height:2.2;top:21%}#recording-caption{font-size:12px;bottom:41%}}

/* 序章反馈修订：可辨识的交互与书页排版。 */
#sound-caption{display:none!important}
.explore-note{font-size:20px;line-height:1.6;background:#172b34f5;color:#fff6df;padding:14px 20px;border-left:3px solid #d4c4a4;max-width:65%}
.explore-next{top:26%;font-size:21px;background:#172b34f5;color:#fff6df;padding:14px 20px;border:1px solid #d4c4a4}
.hotspot{font-size:20px;background:#172b34f5;color:#fff6df}
.phone small{font-size:13px;color:#465b58}.phone-body{font-size:16px}.phone-draft{font-size:17px;color:#253d39}
.phone-actions{gap:12px}.phone-actions button{font-size:17px;background:#29463f;color:#fff8e8;padding:12px 18px;border-radius:5px;min-height:44px}
#game[data-kind="chat-send"] #actors{opacity:0}
#diary-writing{left:19%;top:21%;width:26%;font-size:22px;line-height:1.9;letter-spacing:1px;transform:rotate(-2deg)}
@media(max-width:600px) and (orientation:portrait){.explore-note{left:5%;top:12%;font-size:17px;max-width:90%;padding:12px}.explore-next{top:24%;font-size:18px}.hotspot{font-size:17px}.phone-body{font-size:14px}.phone small{font-size:12px}#diegetic:not(.recording){top:9%;bottom:34%}#diary-writing{left:13%;width:64%;top:24%;font-size:19px;line-height:1.9}}
@media(max-height:540px) and (orientation:landscape){.explore-note,.explore-next,.hotspot{font-size:16px}.phone-body{font-size:12px}.phone-draft{font-size:13px;margin:4px 8px}.phone-actions button{font-size:13px;padding:5px 10px;min-height:32px}#diary-writing{font-size:16px}}
