:root{color-scheme:dark;--paper:#f3eadb;--muted:#b8afa3;--ink:#181b22;--gold:#dfbb83;--rose:#dd9b8e;--panel:rgba(23,26,32,.94)}
*{box-sizing:border-box}body{margin:0;background:#0c1016;color:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft Yahei",sans-serif;line-height:1.65}button,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{cursor:default;opacity:.4}[hidden]{display:none!important}.phone{position:relative;isolation:isolate;overflow:hidden;max-width:500px;min-height:100svh;margin:auto;background:var(--ink)}.scene,.scene-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.scene{object-fit:cover;object-position:center 30%;animation:drift 28s ease-in-out infinite alternate}.scene-shade{z-index:-1;background:linear-gradient(180deg,rgba(12,17,24,.3),rgba(13,19,27,.1) 36%,rgba(13,19,27,.86) 71%,#131922)}.topbar{height:82px;padding:calc(18px + env(safe-area-inset-top)) 25px 12px;display:flex;justify-content:space-between;align-items:center}.brand{background:none;border:0;padding:0;font-size:15px;letter-spacing:3px;touch-action:none;user-select:none;-webkit-user-select:none}.brand span{display:block;font-size:7px;color:var(--muted);letter-spacing:4px}.icon-button{background:rgba(255,255,255,.07);border:1px solid #ffffff20;border-radius:50%;width:34px;height:34px;font-size:23px;line-height:1}.title-screen{padding:20px 28px 26px}.edition{font-size:10px;letter-spacing:5px;color:var(--gold);margin:20px 0 13px}h1{font-family:"Songti SC","STSong",serif;font-weight:500;line-height:1.13;letter-spacing:8px;font-size:67px;margin:0 0 22px;text-shadow:0 4px 30px #0004}h1 span{display:block;margin-left:72px}h1 i{display:block;font-family:inherit;font-style:normal;letter-spacing:4px;font-size:9px;margin:14px 0 0 2px;color:var(--gold)}.chapter-label{font-size:10px;color:var(--gold);letter-spacing:7px;margin:0 0 3px}h2{font-size:21px;font-weight:500;letter-spacing:2px;margin:0}.intro{color:#e6ddce;font-size:12px;line-height:1.9;margin:16px 0 24px}.pov-options{display:grid;gap:10px}.pov-button{display:flex;align-items:center;width:100%;padding:13px 15px;background:rgba(244,230,206,.065);border:1px solid #d8bb843d;border-radius:5px;text-align:left;transition:.2s}.pov-button:hover{background:#e4c89b20;border-color:var(--gold)}.pov-icon{font:24px "Songti SC",serif;border-right:1px solid #e6cb983d;padding-right:14px;margin-right:14px;color:var(--gold)}.pov-button b{display:block;font-size:14px;letter-spacing:2px;font-weight:500}.pov-button small{display:block;font-size:10px;color:var(--muted)}.pov-button em{font-size:10px;font-style:normal;margin-left:auto;color:var(--gold)}.test-notice{font-size:10px;color:var(--muted);text-align:center;margin:23px 0 3px}.asset-notice,.save-notice{font-size:9px;text-align:center;color:#b2a89a;margin:2px 0}.asset-notice{color:#c3a289}.resume-button{width:100%;border:0;background:var(--gold);color:#252528;padding:9px;border-radius:4px;font-size:12px;margin:0 0 10px}.game-screen{min-height:calc(100svh - 82px);display:flex;flex-direction:column;padding:12px 20px calc(22px + env(safe-area-inset-bottom));gap:14px}.hud{display:flex;gap:10px;justify-content:space-between}.watch{padding:8px 11px;min-width:104px;background:rgba(19,25,33,.82);border:1px solid #e4ca9826;border-radius:12px;box-shadow:0 4px 22px #0001;line-height:1.35}.watch small{display:block;color:#c5c0ba;font-size:9px}.watch small span{color:var(--rose)}.watch strong{font-size:30px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:1px}.watch em{font-size:8px;font-style:normal;color:var(--muted);margin-left:5px}.watch.hot strong{color:#ed9b8c}.opponent{min-width:120px;text-align:right}.opponent em{display:block;margin:0}.node-label{display:flex;justify-content:space-between;color:#dfd5c4;font-size:10px;letter-spacing:1px;text-shadow:0 1px 8px #000}.bottom-stage{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:160px}.dialogue{border:1px solid #e5cda24a;background:var(--panel);border-radius:7px;padding:20px 21px 12px;text-align:left;width:100%;min-height:158px;box-shadow:0 12px 40px #0003}.dialogue #speaker{color:var(--gold);font-size:11px;letter-spacing:2px}.dialogue p{margin:9px 0 17px;font-size:15px;line-height:1.85;letter-spacing:.4px;white-space:pre-line}.dialogue small{display:block;text-align:right;color:#b0a89c;font-size:9px;letter-spacing:1px}.dialogue small span{margin-left:7px;color:var(--gold)}.dialogue.inner{border-color:#c4abbc55;background:rgba(35,30,42,.95)}.dialogue.inner p{color:#dfcedc;font-style:italic}.dialogue.narration p{font-size:14px;color:#cfc7bb}.choices{display:grid;gap:8px}.choice-button,.clause-card{background:rgba(23,28,37,.94);border:1px solid #d9c5a952;border-radius:5px;min-height:50px;text-align:left;padding:12px 15px;display:flex;gap:12px;align-items:center;font-size:13px;line-height:1.5;transition:background .15s}.choice-button:hover,.clause-card:hover{background:#343943}.choice-key{font-size:10px;color:var(--gold);flex-shrink:0;min-width:13px}.choice-button small{margin-left:auto;font-size:9px;color:#b9b0a3}.timer{padding:0 2px}.timer-label{display:flex;justify-content:space-between;font-size:10px;color:var(--gold);margin-bottom:6px}.timer-label b{font-weight:500;font-variant-numeric:tabular-nums}.timer-track{height:3px;background:#ffffff24;border-radius:2px;overflow:hidden}.timer-track div{height:100%;background:var(--gold);transform-origin:left;transition:transform .08s linear}.clause-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.clause-card{font-size:11px;padding:11px 10px;gap:8px;min-height:74px}.clause-card.selected{border-color:var(--gold);background:#4c4438}.clause-caption{font-size:11px;color:var(--muted);margin:0}.confirm-clauses{background:var(--gold);color:#23252c;border:0;border-radius:4px;min-height:44px;font-size:12px}.qte{text-align:center;border:1px solid #e5cda24a;border-radius:9px;background:var(--panel);padding:17px}.qte h3{margin:0;font-size:17px;letter-spacing:4px;font-weight:500}.qte p,.qte>small{font-size:10px;color:var(--muted);margin:6px 0}.qte button{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:23px auto;width:136px;height:136px;touch-action:manipulation;border-radius:50%;border:3px solid #867557;background:#292c32;box-shadow:0 0 0 12px #dfbb830b;transition:background .1s,border .1s,box-shadow .1s}.qte button.lit{background:#60513c;border-color:#f6d6a1;box-shadow:0 0 0 18px #dfbb8322,0 0 40px #dfbb8340}.qte button span{font-size:27px;font-variant-numeric:tabular-nums}.qte button small{font-size:10px;color:#d2c2aa}.ending-screen{padding:32px 26px calc(30px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#11172166,#111721)}.ending-kicker{font-size:10px;letter-spacing:5px;color:var(--gold);margin:12px 0}.ending-screen h2{font-family:"Songti SC",serif;font-size:31px;letter-spacing:4px;line-height:1.5}.ending-close{font-size:12px;color:#d9cfbe;line-height:1.9;margin:16px 0 26px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.stat{border:1px solid #d9c5a92b;border-radius:4px;padding:10px;font-size:11px;color:var(--muted)}.stat strong{display:block;font-size:18px;color:var(--paper);font-weight:500}.ending-clauses{font-size:11px;color:var(--muted);padding-bottom:16px;border-bottom:1px solid #ffffff1f}.replay{margin:21px 0;font-size:12px}.replay summary{color:var(--gold);cursor:pointer}.replay ol{padding-left:20px;color:#c2b7a7;font-size:11px}.replay li{margin:9px 0}.ending-actions{display:grid;gap:9px}.ending-actions button{border:1px solid #d9c5a957;border-radius:4px;background:#252c36;padding:13px;font-size:12px}.ending-actions button:first-child{color:#292723;background:var(--gold);border:0}.next-pov{color:var(--muted);font-size:10px;margin:18px 0}dialog{width:calc(100% - 32px);max-width:450px;max-height:85svh;background:#171d26;color:var(--paper);border:1px solid #dfbb8359;border-radius:8px;padding:18px}dialog::backdrop{background:#000a}.debug-head{display:flex;justify-content:space-between;align-items:center}.debug-head button{border:0;background:transparent;font-size:25px}dialog pre{font-size:11px;white-space:pre-wrap;background:#ffffff05;padding:12px}dialog select{width:100%;padding:10px;background:#252c36;color:var(--paper);margin:8px 0}dialog>button{padding:9px 20px;background:var(--gold);color:#20232a;border:0;border-radius:4px}dialog>small{display:block;font-size:10px;color:var(--muted);margin-top:12px}.toast{position:fixed;z-index:10;bottom:25px;left:50%;transform:translateX(-50%);max-width:330px;background:#eee0c9;color:#262831;border-radius:6px;padding:10px 17px;font-size:11px;box-shadow:0 5px 30px #0005}.fallback-label{font-size:10px;color:var(--muted)}@keyframes drift{from{transform:scale(1)}to{transform:scale(1.025)}}@media(min-width:600px){body{padding:24px}.phone{min-height:812px;border:1px solid #ffffff1f;border-radius:12px;box-shadow:0 12px 90px #0008}.game-screen{min-height:730px}}@media(max-height:740px) and (max-width:599px){.edition{margin-top:4px}h1{font-size:55px;margin-bottom:16px}.title-screen{padding-top:6px}.intro{margin:12px 0 17px}.bottom-stage{padding-top:80px}.game-screen{padding-top:0}.pov-button{padding:10px 15px}.test-notice{margin-top:16px}}@media(prefers-reduced-motion:reduce){.scene{animation:none}*{transition:none!important}}
/* Revision2: keep generated 2:3 art intact above the text, never stretch it to9:16. */
.phone{background:#151b24;overflow:clip;display:flex;flex-direction:column;min-height:100svh}
.topbar{height:64px;flex-shrink:0;padding:12px 22px;position:sticky;top:0;background:#151b24ed;z-index:5}
.visual-frame{order:0;position:relative;display:flex;align-items:center;justify-content:center;margin:0;background:#10161e;height:min(48svh,560px);width:100%;overflow:hidden;flex-shrink:0;border-bottom:1px solid #dfbb8324}
.scene{position:static;z-index:auto;display:block;height:100%;width:auto;max-width:100%;object-fit:contain;object-position:center;animation:none}
.scene-shade{display:none}
.hud{position:sticky;top:64px;z-index:4;background:#151b24f5;gap:14px;margin:0;padding:7px 20px;justify-content:space-between;flex-shrink:0}
.watch{border-radius:8px;min-width:110px;padding:4px 10px;box-shadow:none;background:#222a35;line-height:1.15}
.watch strong{font-size:24px}.watch small{font-size:8px}.watch em{font-size:7px}.watch.opponent em{display:inline;margin-left:4px}
.game-screen{min-height:0;padding:12px 18px calc(20px + env(safe-area-inset-bottom));gap:11px}
.bottom-stage{padding-top:0;margin-top:0;gap:10px}
.dialogue{min-height:132px;padding:14px 17px 10px}.dialogue p{font-size:14px;margin:7px 0 12px;line-height:1.8}
.node-label{font-size:9px}.choice-button{min-height:46px;padding:10px 12px}.clause-card{min-height:64px}
.ending-screen{padding-top:24px;background:#151b24}.ending-screen h2{font-size:28px}
.screen-title .visual-frame{display:none}.screen-title{background:linear-gradient(180deg,#151b2420 0%,#151b24b8 43%,#151b24 78%),url('assets/Q1.jpg') center 12%/cover no-repeat}
.screen-title .topbar{background:#151b2477}.title-screen{padding-top:16px;padding-bottom:28px;min-height:calc(100svh - 64px)}
.title-screen .edition{margin-top:20px}h1{font-size:67px}.screen-ending .visual-frame{height:min(38svh,430px)}
@media(min-width:600px){body{padding:22px}.phone{min-height:812px}.game-screen{min-height:0}.title-screen{min-height:748px}.visual-frame{height:480px}.screen-ending .visual-frame{height:390px}}
@media(max-height:740px) and (max-width:599px){.title-screen{padding-top:5px}.title-screen .edition{margin-top:10px}h1{font-size:54px}.bottom-stage{padding-top:0}.game-screen{padding-top:10px}.visual-frame{height:44svh}}
.topbar{height:calc(64px + env(safe-area-inset-top));padding-top:calc(12px + env(safe-area-inset-top))}.hud{top:calc(64px + env(safe-area-inset-top))}
.clause-result{font-size:11px;color:var(--gold);margin:0;padding:9px 12px;border:1px solid #dfbb8333;border-radius:4px;background:#dfbb8308}
