:root{color-scheme:dark;--bg:#101a1c;--panel:#172326;--line:#ffffff13;--muted:#8c9e9d;--text:#e0e7df;--accent:#bdd7b9;--ink:#192923;--gold:#c5b58a;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#0d1719;color:var(--text);font-size:14px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}button,input,textarea{border:0}button{background:none}input,textarea{color:var(--text);background:#ffffff06}input{width:100%;padding:13px 12px;border:1px solid var(--line);border-radius:6px;margin:9px 0}label{display:block;color:#b7c4bd;font-size:13px}button{transition:background .2s,color .2s}button:hover{color:#fff}.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 90% 15%,#5f735329,transparent 50%),radial-gradient(ellipse at 5% 100%,#3d625727,transparent 40%)}.shell{max-width:1540px;margin:auto;display:grid;grid-template-columns:244px minmax(400px,760px) minmax(240px,300px);height:100dvh;min-height:550px;padding:28px 24px;gap:0}.sidebar{padding:24px 25px 0 0;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-family:"Songti SC",SimSun,serif;font-size:25px;letter-spacing:3px}.sigil{font-size:34px;color:var(--accent)}.brand small{display:block;font:8px/2.3 system-ui;letter-spacing:2px;color:var(--muted)}.night-tag{font-size:11px;letter-spacing:2px;color:#a5b8a9;margin:42px 0 18px}.night-tag span{display:inline-block;width:5px;height:5px;background:#a5ba9e;margin-right:9px;border-radius:50%}.chapter-list>div{display:flex;align-items:center;gap:15px;padding:15px 0;color:#596d6b;border-bottom:1px solid #ffffff06}.chapter-list>div>span{font:12px ui-monospace,monospace}.chapter-list p{margin:0;letter-spacing:1px}.chapter-list small{display:block;font-size:10px;margin-top:7px;letter-spacing:0}.chapter-list .active{color:var(--accent)}.chapter-list .past{color:#92a09a}.sidebar-bottom{margin-top:auto;padding-bottom:20px}.tiny-label{font-size:10px;letter-spacing:2px;color:var(--muted)}.sidebar-bottom p{color:#849792;font-family:"Songti SC",SimSun,serif;line-height:2.2;font-size:15px}.text-button{font-size:11px;padding:5px 0;color:#9fb5a6}.edition{display:block;color:#526961;font:9px ui-monospace,monospace;margin-top:35px;letter-spacing:2px}.messenger{min-width:0;border:1px solid #ffffff12;background:#142124ed;border-radius:12px;box-shadow:0 20px 80px #0003;overflow:hidden;display:flex;flex-direction:column;position:relative}.chat-header{padding:21px 25px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#182528}.contact{display:flex;align-items:center;gap:13px}.avatar{height:43px;width:43px;border-radius:50%;display:grid;place-items:center;background:#2b3f3d;color:var(--accent);font-size:33px;border:1px solid #a7c8a926}.contact h1{font-size:15px;font-weight:500;margin:0 0 5px;letter-spacing:1px}.contact p{font-size:10px;color:var(--muted);margin:0}.contact i{display:inline-block;width:4px;height:4px;background:#b3cd9f;border-radius:50%;margin-right:5px}.header-actions{display:flex;gap:6px}.icon-button{width:32px;height:32px;display:grid;place-items:center;color:#9cafaa;font-size:22px;border-radius:6px}.icon-button:hover{background:#ffffff09}.icon-button.enabled{color:var(--accent);background:#b3d39c12}.connection-bar{display:flex;justify-content:space-between;padding:10px 25px;font-size:9px;letter-spacing:1px;color:#728781;background:#111e20}.messages{flex:1;overflow-y:auto;padding:20px 25px 26px;scrollbar-width:thin;scrollbar-color:#42574e transparent;overscroll-behavior:contain;min-height:80px}.message{max-width:87%;margin:10px 0;animation:arrive .25s ease both}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.9}.message.assistant{margin-right:auto}.message.assistant .bubble{background:#263637;border:1px solid #ffffff05;border-radius:3px 13px 13px 13px;padding:11px 15px}.message.user{margin-left:auto}.message.user .bubble{background:#b9cfac;color:#20302a;border-radius:13px 3px 13px 13px;padding:11px 15px}.message-time{display:block;font:9px ui-monospace,monospace;color:#6d817a;margin:5px 2px}.user .message-time{text-align:right}.message.system{max-width:100%;text-align:center;color:#80938a;font-size:10px;letter-spacing:.5px;margin:26px 0;line-height:1.9}.message.system p{max-width:92%;margin:auto}.photo-button{padding:0;display:block;position:relative;border-radius:8px;overflow:hidden;max-width:360px;margin-top:10px;border:1px solid #ffffff15}.photo-button img{width:100%;display:block;aspect-ratio:3/2;object-fit:cover}.photo-button span{position:absolute;bottom:0;left:0;right:0;font-size:10px;letter-spacing:1px;padding:15px 12px 9px;text-align:left;background:linear-gradient(transparent,#000a);color:#dfe6d8}.composer{padding:14px 22px 13px;border-top:1px solid var(--line);background:#182527}.suggestion-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 9px;color:#8fa397;font-size:10px}.suggestion-header>.text-button{white-space:nowrap}.choices{display:flex;flex-wrap:wrap;gap:7px;max-height:164px;overflow-y:auto;margin-bottom:13px;scrollbar-width:thin}.choice{font-size:11px;border:1px solid #ffffff13;border-radius:6px;text-align:left;padding:9px 11px;color:#b5c4b8;line-height:1.5;background:#1b2b2b}.choice:hover{background:#294039;border-color:#91af8055}.choice.suggested{border-color:#bbd5a9;color:#e3f0d8;background:#384c39}.choice.suggested::before{content:'确认行动 · ';color:#b5d5a2}.composer form{display:flex;gap:10px;background:#101b1e;border:1px solid #ffffff0d;border-radius:8px;align-items:flex-end;padding:9px}.composer textarea{resize:none;width:100%;max-height:108px;min-height:34px;padding:8px 4px;font-size:13px;line-height:1.5;background:none;outline:none}.composer textarea::placeholder{color:#62776e}.send{border-radius:6px;background:var(--accent);color:var(--ink);width:35px;min-width:35px;height:35px;font-size:24px}.send:hover{background:#d2e4c9;color:var(--ink)}.composer-meta{display:flex;justify-content:space-between;font-size:9px;color:#6e837a;margin-top:10px}.notes{padding:27px 0 0 27px;overflow-y:auto;scrollbar-width:thin}.notes-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;letter-spacing:2px;margin-bottom:36px}.notes h2{font-family:"Songti SC",SimSun,serif;font-size:23px;font-weight:400;margin:14px 0 16px;letter-spacing:2px}.signal-line{display:flex;align-items:center;gap:4px;height:28px;margin:15px 0;opacity:.55}.signal-line span{width:2px;height:7px;background:#b2c8a6}.signal-line span:nth-child(3n){height:19px}.signal-line span:nth-child(4n){height:26px}.signal-line span:nth-child(5n){height:12px}.relationship{font-family:"Songti SC",SimSun,serif;color:#93a795;font-size:14px;line-height:1.9}.divider{height:1px;background:var(--line);margin:25px 0}.notes ul{list-style:none;padding:0;margin:16px 0}.notes li{font-size:11px;color:#99a99f;padding:10px 0 10px 12px;line-height:1.8;position:relative}.notes li:before{content:'·';position:absolute;left:0;color:var(--gold)}.album{display:grid;grid-template-columns:1fr 1fr;gap:7px}.album button{padding:0;overflow:hidden;border-radius:4px}.album img{display:block;width:100%;aspect-ratio:1;object-fit:cover;opacity:.75}.note-bottom{font-size:10px;color:#5c7468;line-height:2;margin:30px 0}.typing{padding:5px 25px 12px;color:#98ad9c;font-size:10px}.typing span{display:inline-block;width:4px;height:4px;background:#a4bd9e;border-radius:50%;margin-right:3px;animation:pulse 1s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}.typing small{margin-left:6px}.notice{margin:8px 20px;padding:10px 12px;border:1px solid #d2b98333;background:#594a291f;color:#d2bf91;font-size:11px;line-height:1.7;border-radius:5px}.ending{padding:20px 24px;text-align:center;border-top:1px solid var(--line);background:#26362b}.ending small{font-size:10px;letter-spacing:3px;color:#b3c6a4}.ending h2{font:26px "Songti SC",SimSun,serif;letter-spacing:4px;margin:10px 0}.ending p{font-size:12px;line-height:1.8;color:#b0bba6;margin:12px auto;max-width:450px}.ending .primary{width:auto;padding:11px 24px;margin-right:15px;font-size:12px}.primary{background:var(--accent);color:var(--ink);border-radius:5px;padding:13px 19px;width:100%;font-size:13px}.primary:hover{background:#d3e6c9;color:var(--ink)}.secondary{border:1px solid #ffffff1c;border-radius:5px;padding:10px 14px;margin:6px 0;font-size:12px;color:#c3cfc3}.danger{color:#d0a593;font-size:12px;padding:8px 0}.muted{color:var(--muted);font-size:11px;line-height:1.8}.switch-label{display:flex;gap:10px;align-items:center;margin:23px 0 0}.switch-label input{width:auto;margin:0;accent-color:var(--accent)}dialog{background:#182628;color:var(--text);border:1px solid #ffffff20;border-radius:12px;box-shadow:0 25px 150px #0007;padding:28px;width:min(470px,calc(100% - 32px));max-height:90dvh;overflow-y:auto}dialog::backdrop{background:#061112ce;backdrop-filter:blur(7px)}dialog p{line-height:1.9;font-size:13px;color:#aebcb2}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-head h2{font-family:"Songti SC",SimSun,serif;font-size:24px;font-weight:400;margin:0}.modal-actions{display:flex;gap:12px;margin-top:22px}.modal-actions>*{width:50%;margin:0}.welcome{width:min(870px,calc(100% - 32px));padding:0;overflow:hidden}.welcome[open]{display:grid;grid-template-columns:.85fr 1fr}.welcome-art{background:linear-gradient(0deg,#12212426,#12212426),url('forest.png') center/cover;min-height:520px;position:relative}.welcome-art:after{content:'23:41 / UNKNOWN SENDER';position:absolute;bottom:28px;left:25px;font:9px ui-monospace,monospace;letter-spacing:2px;color:#d8e0c3}.welcome-content{padding:46px 36px 32px;overflow:auto}.eyebrow{font-size:10px;color:#b4c5ac;letter-spacing:3px}.welcome h2{font:43px "Songti SC",SimSun,serif;letter-spacing:4px;margin:23px 0}.welcome h2 span{color:#9bb18a}.welcome p{font-family:"Songti SC",SimSun,serif;font-size:15px;line-height:2;color:#a3b4a8}.welcome-details{display:flex;gap:12px;font-size:9px;color:#8fa181;margin:27px 0;flex-wrap:wrap}.welcome-details span+span:before{content:'·';margin-right:12px}.welcome label{font-size:11px}.welcome .primary{margin-top:12px;display:flex;justify-content:space-between;align-items:center}.welcome .primary span{font-size:20px}.welcome-content>small{display:block;font-size:9px;line-height:1.8;color:#799181;margin-top:16px}.photo-view{width:min(1120px,calc(100% - 24px));padding:0;background:#0b1516;overflow:visible}.photo-view img{width:100%;max-height:80dvh;object-fit:contain;display:block;border-radius:8px}.photo-view p{text-align:center;margin:8px;font-size:11px}.photo-close{position:absolute;right:10px;top:10px;border-radius:50%;background:#000a;width:35px;height:35px;font-size:26px;color:white;z-index:1}#notes-close{display:none}[hidden]{display:none!important}@keyframes arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.25}}@media(min-width:1151px){#notes-open{display:none}}@media(max-width:1150px){.shell{grid-template-columns:210px minmax(360px,1fr);max-width:1040px}.notes{display:none;position:fixed;right:15px;top:20px;bottom:20px;width:300px;z-index:5;background:#162626;border:1px solid #ffffff20;border-radius:12px;padding:22px;box-shadow:0 10px 90px #000b}.notes.open{display:block}#notes-close{display:grid}.sidebar{padding-right:22px}.brand{font-size:21px}.brand small{font-size:7px}}@media(max-width:700px){.shell{display:block;padding:0;height:100dvh;min-height:0}.sidebar{display:none}.messenger{height:100%;border:0;border-radius:0}.chat-header{padding:14px 17px;padding-top:max(14px,env(safe-area-inset-top))}.connection-bar{padding:9px 17px}.messages{padding:10px 16px 20px}.message{max-width:88%;font-size:13px}.message.assistant .bubble,.message.user .bubble{padding:10px 13px}.composer{padding:11px 13px max(11px,env(safe-area-inset-bottom))}.composer-meta{font-size:8px}.choices{gap:6px;max-height:145px}.choice{font-size:11px;padding:8px 10px}.suggestion-header{font-size:9px}.photo-button{max-width:290px}.welcome[open]{display:block}.welcome{max-height:92dvh;overflow:auto;width:calc(100% - 28px)}.welcome-art{min-height:165px;background-position:center 48%}.welcome-art:after{bottom:18px;left:24px}.welcome-content{padding:25px}.welcome h2{font-size:34px;margin:18px 0}.welcome p{font-size:13px;margin:10px 0}.welcome-details{margin:18px 0}.notes{right:10px;top:10px;bottom:10px;width:min(320px,calc(100% - 20px))}.ending{padding:16px}.ending h2{font-size:23px}.ending p{font-size:11px}.ending .primary{padding:10px 15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* V2: free text is the sole story control. */
.composer{padding-top:18px}.selfie-download{display:block;margin-top:12px;font-size:12px;color:#d0e4c5}.photo-button:has(img[src*="photo=selfie"]) img{aspect-ratio:2/3}.selfie-download:hover{text-decoration:underline}
