:root{--night:#11151c;--panel:#171c25;--ink:#f4eee5;--muted:#b6b4b1;--gold:#dbc39e;--red:#9a4c53;--line:rgba(221,199,164,.22);--font-scale:1;color-scheme:dark;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--night)}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer;color:inherit;background:none;border:0}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}a{color:inherit;text-decoration:none}button, a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}[hidden]{display:none!important}.screen{position:relative;width:100%;height:100svh;min-height:600px;overflow:hidden}.title-backdrop,.title-shade,.grain,.scene-background,.game-vignette{position:absolute;inset:0;pointer-events:none}.title-backdrop{background:#1b2230 url('assets/bg-city.webp') center 48%/cover no-repeat;transform:scale(1.015)}.title-shade{background:linear-gradient(90deg,rgba(11,16,24,.96) 0%,rgba(11,16,24,.9) 25%,rgba(11,16,24,.42) 55%,rgba(11,16,24,.12) 100%),linear-gradient(0deg,rgba(11,16,24,.96),transparent 35%)}.grain{z-index:5;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}.title-header{position:relative;z-index:10;height:110px;padding:30px 5.2%;display:flex;justify-content:space-between;align-items:center}.wordmark{display:flex;gap:13px;align-items:center;font-size:15px;letter-spacing:2px}.wordmark small{display:block;color:var(--gold);font-size:8px;letter-spacing:3.5px;margin-top:4px}.brand-symbol{position:relative;font-family:Georgia,serif;font-size:40px;line-height:1;color:var(--gold)}.brand-symbol span{position:absolute;left:16px;top:5px;color:var(--red);font-size:12px;letter-spacing:0}.header-actions{display:flex;align-items:center;gap:34px}.edition{font-size:10px;letter-spacing:2.5px;color:#dad7d0;display:flex;align-items:center;gap:12px}.edition i{height:1px;width:28px;background:#98948a}.icon-button{font-size:20px;color:var(--gold);padding:8px;white-space:nowrap}.icon-button span{font-size:11px;vertical-align:middle;margin-left:6px;color:var(--muted)}.icon-button:hover{color:white}.title-copy{position:absolute;left:9%;top:25%;width:43%;z-index:8;animation:enterCopy 1.1s ease both}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--gold);display:flex;align-items:center;gap:14px}.short-rule{height:1px;width:30px;background:var(--gold)}h1{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-weight:400;font-size:clamp(60px,6.2vw,104px);letter-spacing:.08em;line-height:1.1;margin:29px 0 21px;white-space:nowrap;text-shadow:0 3px 30px #0005}h1>span{color:var(--gold)}h1 small{display:block;letter-spacing:.33em;font-family:Georgia,serif;font-size:11px;color:#acb0b6;margin:18px 0 0 5px}.volume-line{display:flex;align-items:center;gap:15px;font-family:"Songti SC",serif;letter-spacing:3px;font-size:19px;color:#e3ddd4}.volume-line b{font-family:system-ui,sans-serif;font-weight:400;font-size:10px;border:1px solid var(--line);padding:5px 10px;letter-spacing:2px}.volume-line>span{height:1px;width:20px;background:var(--line)}.title-quote{font-family:"Songti SC","STSong",serif;font-size:16px;line-height:2.15;letter-spacing:2px;color:#c3c1bb;margin:32px 0 30px}.start-actions{display:flex;gap:22px;align-items:center}.primary-button{background:var(--gold);color:#191b20;padding:16px 25px;min-width:190px;font-size:14px;letter-spacing:3px;border:1px solid var(--gold);display:inline-flex;justify-content:space-between;align-items:center;gap:35px;transition:background .25s,transform .25s}.primary-button:hover{background:#efe0c4;transform:translateY(-2px)}.primary-button>span{font-size:21px;font-weight:300}.continue-button{text-align:left;font-size:14px;letter-spacing:2px;border-bottom:1px solid #c9b28e55;padding:8px 3px 7px}.continue-button small{display:block;color:#aaa8a2;font-size:9px;letter-spacing:1px;margin-top:8px}.title-nav{display:flex;align-items:center;gap:13px;margin-top:24px;font-size:11px;letter-spacing:1px;color:#b8b8b5}.title-nav button{padding:6px 0}.title-nav span{color:#6e7175}.title-nav button:hover{color:var(--gold)}.title-art{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.title-art img{position:absolute;object-fit:contain;object-position:center bottom;filter:drop-shadow(-15px 0 20px #07101b66)}.hero-hong{height:92%;bottom:-12%;right:19%;opacity:.9}.hero-wen{height:105%;bottom:-20%;right:-4%;filter:drop-shadow(-15px 0 30px #07101b80)!important}.title-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#11151c 0%,transparent 20%)}.title-caption{position:absolute;z-index:7;right:5.5%;top:23%;display:flex;gap:15px;align-items:center;writing-mode:vertical-rl;font-family:"Songti SC",serif;line-height:2;letter-spacing:3px;font-size:12px;color:#e2d1b7;text-shadow:0 0 8px #000}.vertical-line{width:1px;height:64px;background:var(--gold)}.title-footer{position:absolute;z-index:8;bottom:0;width:100%;padding:25px 5.2%;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px;letter-spacing:1px;color:#8d9199;border-top:1px solid #bca7881c;background:#0e141c55}.title-footer button{color:#b9b6ae;font-size:10px}.title-footer button span{margin-left:15px;color:var(--gold)}.tiny-dot{display:inline-block;height:4px;width:4px;border-radius:50%;background:var(--gold);margin-right:9px;vertical-align:middle}.title-footer-note{font-family:"Songti SC",serif;font-size:11px}
/* Story stage: keep portrait tops inside the stage; only the lower body may extend beyond it. */
.game-screen{background:#151d28}.scene-background{background-position:center;background-size:cover;transition:opacity .5s;opacity:.84}.game-vignette{background:linear-gradient(0deg,#10141bf2 0%,#10141b00 43%,#10141b18 74%,#10141bc9 100%)}.story-header{height:70px;position:relative;z-index:25;display:flex;align-items:center;justify-content:space-between;padding:0 3.5%;background:#11172166;border-bottom:1px solid #e7d2aa20;gap:18px}.back-title{font-size:16px;letter-spacing:2px;color:var(--gold);display:flex;align-items:center;gap:15px}.back-title span{font-family:"Songti SC",serif;font-size:15px}.story-actions{display:flex;gap:15px}#chapter-label{font-size:11px;letter-spacing:2px;color:#eee5d5}#chapter-label:hover{color:var(--gold)}.chapter-line{position:absolute;top:70px;left:0;width:100%;height:2px;z-index:25;background:#e9e4d012}#chapter-progress{height:100%;background:var(--gold);width:0;transition:width .2s}.location{position:absolute;z-index:10;top:96px;left:4.5%;font-size:11px;letter-spacing:2px;color:#eee5d5;text-shadow:0 1px 8px #000;background:#151b2588;padding:9px 15px;border-left:2px solid var(--gold)}.sprites{position:absolute;inset:85px 0 60px;pointer-events:none;overflow:hidden}.sprite{position:absolute;top:7%;height:116%;width:auto;max-width:62%;object-fit:contain;object-position:center bottom;filter:brightness(.58) saturate(.75) drop-shadow(0 4px 24px #0a122066);transition:filter .3s,opacity .3s,transform .5s;opacity:.95}.sprite.active{filter:brightness(1) drop-shadow(0 4px 20px #0a122066);opacity:1}.sprite.left{left:8%}.sprite.right{right:8%}.sprite.solo{left:50%;transform:translateX(-50%)}.sprite.arriving{animation:spriteIn .5s ease both}.stage-next{position:absolute;inset:75px 0 260px;z-index:12;cursor:pointer;width:100%}.dialogue{position:absolute;z-index:20;bottom:80px;left:50%;transform:translateX(-50%);width:min(1080px,88%);min-height:192px;padding:23px 34px 15px;background:linear-gradient(110deg,rgba(19,25,35,.97),rgba(24,29,39,.93));border:1px solid #a48c674d;box-shadow:0 10px 60px #0005;backdrop-filter:blur(18px);cursor:pointer}.dialogue:before{content:"";position:absolute;left:-1px;top:-1px;width:100px;height:2px;background:var(--gold)}.dialogue-top{display:flex;align-items:center;gap:15px;margin-bottom:14px;min-height:22px}.speaker-name{font-family:"Songti SC",serif;font-size:19px;letter-spacing:3px;color:var(--gold)}.speaker-role{font-size:9px;letter-spacing:2px;color:#9d9d9e}.line-position{margin-left:auto;font-size:9px;letter-spacing:1px;color:#757e89;font-variant-numeric:tabular-nums}.dialogue-text{font-family:"Songti SC","STSong",serif;font-size:calc(21px * var(--font-scale));letter-spacing:1.5px;line-height:1.95;min-height:70px;color:#f5eee4;text-shadow:0 1px 3px #0004}.dialogue-text.inner{font-style:italic;color:#c9d1dc}.dialogue-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:10px}#dialogue-hint{font-size:9px;letter-spacing:1.5px;color:#7d8692}kbd{font-family:inherit;border:1px solid #91959c44;border-radius:2px;padding:2px 5px;font-size:8px;margin-left:8px}.next-line{font-size:10px;letter-spacing:3px;color:var(--gold);padding:5px 0 5px 15px;min-height:28px}.next-line i{display:inline-block;font-size:8px;margin-left:12px;font-style:normal;animation:pulse 1.8s ease-in-out infinite}.game-toolbar{position:absolute;z-index:25;bottom:0;width:100%;height:64px;padding:0 5%;display:flex;justify-content:space-between;align-items:center;background:#111721dc;border-top:1px solid var(--line);gap:20px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:26px}.game-toolbar button{font-size:11px;letter-spacing:1px;color:#b5b7bc;white-space:nowrap;padding:9px 0;min-height:34px}.game-toolbar button:hover,.game-toolbar button[aria-pressed=true]{color:var(--gold)}.toolbar-left button{font-size:18px;display:flex;align-items:center;gap:6px}.toolbar-left button span{font-size:11px}.notebook-button{display:flex;gap:7px;align-items:center}.notebook-button i{font-style:normal;border:1px solid #ae94614d;color:var(--gold);font-size:9px;padding:1px 4px}.restore-ui{position:absolute;bottom:24px;right:24px;z-index:40;background:#151c27c9;border:1px solid var(--line);padding:12px 18px;font-size:12px;color:var(--gold)}.game-screen.ui-hidden .dialogue,.game-screen.ui-hidden .game-toolbar,.game-screen.ui-hidden .story-header,.game-screen.ui-hidden .chapter-line,.game-screen.ui-hidden .location{display:none}.game-screen.ui-hidden .stage-next{inset:0}.interstitial{position:absolute;z-index:22;inset:72px 0 64px;background:#101620c9;backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 20px;overflow:auto}.interstitial.chapter-card{background:#111721dd}.interstitial .chapter-number{color:var(--gold);font-size:11px;letter-spacing:5px}.interstitial h2{font-family:"Songti SC",serif;font-size:clamp(27px,3.4vw,46px);font-weight:400;letter-spacing:5px;margin:25px 0 18px}.interstitial p{max-width:560px;font-family:"Songti SC",serif;font-size:16px;color:#c7c5c0;line-height:2;letter-spacing:1.4px;margin:0 0 28px}.interstitial .ornament{margin-bottom:14px;color:var(--gold);font-size:17px;letter-spacing:14px}.interstitial .primary-button{margin-top:15px;justify-content:center;min-width:195px}.choice-label{font-size:10px;letter-spacing:4px;color:var(--gold);margin-bottom:12px}.choice-context{color:#b1b3b8;font-size:12px;letter-spacing:2px}.interstitial.choice-card h2{font-size:24px;line-height:1.8;max-width:600px;letter-spacing:2px;margin:22px auto 30px}.choice-list{display:flex;flex-direction:column;gap:14px;width:min(640px,90%)}.choice-option{display:flex;align-items:center;text-align:left;gap:22px;border:1px solid #b59b725e;background:#171e2ac4;min-height:62px;padding:16px 24px;color:#eee4d6;font-family:"Songti SC",serif;font-size:17px;letter-spacing:1px;transition:background .2s,border-color .2s,transform .2s}.choice-option:hover{border-color:var(--gold);background:#30303b;transform:translateX(4px)}.choice-option b{font-family:Georgia,serif;font-weight:400;color:var(--gold);font-size:14px}.choice-option>span{flex:1}.choice-option i{color:var(--gold);font-style:normal;font-size:20px}.ending-pill{border:1px solid var(--line);padding:6px 15px;font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:18px}.ending-buttons{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.secondary-button{border:1px solid var(--line);padding:14px 20px;font-size:12px;letter-spacing:2px;color:var(--gold);min-height:48px}.secondary-button:hover{background:#f7e2bd0c}.chapter-stats{display:flex;gap:24px;justify-content:center;margin-bottom:25px;font-size:11px;color:#aeb5bc;letter-spacing:1px}
/* Dialogs */
.modal-root{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:32px}.modal-backdrop{position:absolute;inset:0;background:#080c13c9;backdrop-filter:blur(15px)}.modal-panel{position:relative;background:#171d27;border:1px solid #b29a7359;box-shadow:0 20px 100px #0007;width:min(1100px,100%);max-height:90svh;display:flex;flex-direction:column;animation:enterModal .25s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:28px 36px 22px;border-bottom:1px solid var(--line);gap:20px}.modal-header h2{font-family:"Songti SC",serif;font-size:28px;font-weight:400;letter-spacing:4px;margin:9px 0 0}.modal-header .eyebrow{font-size:9px}.close-modal{font-size:32px;color:var(--gold);width:40px;height:40px;font-weight:200}.modal-content{padding:28px 36px 36px;overflow:auto;overscroll-behavior:contain}.modal-intro{color:#aeb4bf;font-size:12px;line-height:1.9;letter-spacing:.6px;margin:0 0 22px}.chapter-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chapter-tile{position:relative;overflow:hidden;display:flex;align-items:center;gap:18px;text-align:left;padding:21px 20px;min-height:100px;border:1px solid #c3ac8333;background:#1e2530}.chapter-tile:before{content:"";position:absolute;inset:0;background-image:var(--tile-bg);background-size:cover;background-position:center;opacity:.12;transition:opacity .3s}.chapter-tile:hover:before{opacity:.3}.chapter-tile>*{position:relative;z-index:1}.chapter-tile>strong{font-family:Georgia,serif;font-weight:400;font-size:32px;color:var(--gold)}.chapter-tile h3{font-family:"Songti SC",serif;font-weight:400;font-size:17px;letter-spacing:2px;margin:0 0 7px}.chapter-tile p{font-size:9px;color:#9ea7b5;line-height:1.7;margin:0}.chapter-tile .tile-state{position:absolute;top:10px;right:12px;font-size:8px;color:var(--gold)}.future-volume{border:1px dashed var(--line);padding:20px;margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.future-volume h3{font-family:"Songti SC",serif;font-size:16px;font-weight:400;margin:0 0 7px;letter-spacing:2px}.future-volume p{font-size:11px;color:#969faa;margin:0;line-height:1.7}.future-volume>span{font-size:10px;color:#a79a84;white-space:nowrap}.tabs{display:flex;gap:8px;margin-bottom:24px}.tabs button{border:1px solid var(--line);padding:9px 24px;font-size:12px;letter-spacing:2px;color:#aeb5bf}.tabs button.active{color:#171d27;background:var(--gold)}.save-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.save-tile{text-align:left;position:relative;min-height:148px;border:1px solid #ab956e44;background:#1d2531;padding:18px}.save-tile.empty{background:#131a24;border-style:dashed}.save-number{display:block;color:var(--gold);font-family:Georgia,serif;font-size:12px;letter-spacing:1px;margin-bottom:16px}.save-tile h3{font-family:"Songti SC",serif;font-weight:400;font-size:16px;margin:0 0 9px}.save-tile p{font-size:10px;line-height:1.8;color:#a8b0bd;margin:0}.save-tile time{font-size:9px;color:#798390;display:block;margin-top:11px}.empty-label{font-size:12px;color:#7e8998}.save-tile:hover{border-color:var(--gold)}.save-tile[disabled]:hover{border-color:#ab956e44}.slot-actions{display:flex;gap:12px;margin-top:20px;align-items:center;flex-wrap:wrap}.slot-actions button{font-size:11px;color:var(--gold);border-bottom:1px solid var(--line);padding:6px 0}.character-layout{display:grid;grid-template-columns:180px 1fr;gap:22px;min-height:440px}.character-list{display:flex;flex-direction:column;gap:4px}.character-list button{padding:12px 14px;text-align:left;border:1px solid transparent;font-size:12px;letter-spacing:2px;color:#aaaeb7}.character-list button.active{color:var(--gold);border-color:var(--line);background:#dfc09409}.character-list small{display:block;font-size:8px;color:#798594;letter-spacing:.5px;margin-top:5px}.character-view{position:relative;min-height:490px;display:flex;align-items:center;background:radial-gradient(ellipse at 38% 50%,#3c3b3c88,#1a222f44 65%);overflow:hidden;border:1px solid #c3ac831c}.character-view>img{position:absolute;width:57%;height:112%;object-fit:contain;object-position:center top;bottom:-17%;left:-1%;filter:drop-shadow(5px 5px 20px #0006)}.character-profile{margin:30px 5% 30px 54%;z-index:2;position:relative}.character-profile .eyebrow{font-size:9px;letter-spacing:2px}.character-profile h3{font-family:"Songti SC",serif;font-size:33px;letter-spacing:6px;font-weight:400;margin:20px 0}.character-profile blockquote{font-family:"Songti SC",serif;font-size:16px;line-height:1.9;color:var(--gold);margin:0 0 22px}.character-profile p{font-size:11px;line-height:2;color:#b7bdc7;margin:0 0 18px}.character-detail{font-size:9px;color:#7d8a9b;line-height:1.8;letter-spacing:1px}.outfit-toggle{margin-top:20px;display:flex;gap:10px}.outfit-toggle button{padding:7px 10px;font-size:9px;border:1px solid var(--line);color:var(--gold)}.outfit-toggle button.active{background:#ddc39e22}.notebook-summary{display:flex;gap:28px;padding:20px;border:1px solid var(--line);margin-bottom:22px;align-items:center;flex-wrap:wrap}.notebook-summary strong{font-family:Georgia,serif;font-size:28px;color:var(--gold);font-weight:400;margin-right:8px}.notebook-summary span{font-size:10px;color:#aeb5bf}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.evidence-card{text-align:left;padding:19px 21px;border:1px solid var(--line);background:#202733}.evidence-card small{font-size:9px;letter-spacing:2px;color:var(--gold)}.evidence-card h3{font-family:"Songti SC",serif;font-size:17px;font-weight:400;letter-spacing:1px;margin:13px 0 10px}.evidence-card p{font-size:11px;line-height:1.9;color:#aeb6c2;margin:0}.evidence-card.locked{opacity:.45;min-height:132px;display:flex;flex-direction:column;justify-content:center}.evidence-card:not(.locked):hover{border-color:var(--gold)}.evidence-detail{max-width:700px;margin:auto}.evidence-detail .evidence-number{font-size:10px;letter-spacing:3px;color:var(--gold)}.evidence-detail h3{font-family:"Songti SC",serif;font-weight:400;letter-spacing:3px;font-size:27px;margin:24px 0}.evidence-detail p{font-size:14px;line-height:2.2;color:#c4c8cf;margin:0 0 24px}.backlog-list{max-width:800px;margin:auto}.backlog-line{padding:16px 0;border-bottom:1px solid #dfc39d1a}.backlog-line small{font-size:10px;color:var(--gold);letter-spacing:2px}.backlog-line p{font-family:"Songti SC",serif;font-size:16px;line-height:2;letter-spacing:1px;margin:8px 0 0;color:#d0d4dc}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:88px;border-bottom:1px solid #dfc39d22}.setting-row h3{font-weight:400;font-size:13px;letter-spacing:2px;margin:0 0 8px}.setting-row p{font-size:10px;color:#8d9baa;margin:0;line-height:1.8}.setting-row input[type=range]{accent-color:var(--gold);width:220px;max-width:38vw}.setting-value{font-size:10px;color:var(--gold);display:block;text-align:right;margin-top:6px}.toggle{padding:9px 18px;border:1px solid var(--line);color:var(--gold);font-size:12px;min-width:76px}.keyboard-guide{padding:24px 0 0;font-size:10px;color:#8d9baa;line-height:2.2}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:35px}.about-layout h3{font-family:"Songti SC",serif;font-size:20px;font-weight:400;color:var(--gold);letter-spacing:2px;margin:0 0 18px}.about-layout p{font-size:12px;line-height:2;color:#aeb5c2;margin:0 0 16px}.about-numbers{display:flex;gap:25px;margin:20px 0 30px}.about-numbers b{font-family:Georgia,serif;font-weight:400;font-size:30px;color:var(--gold);display:block}.about-numbers span{font-size:9px;color:#8d99a8}.about-note{padding:16px 18px;background:#e2c89c08;border-left:1px solid var(--gold);font-size:11px!important}.confirm-message{font-family:"Songti SC",serif;font-size:17px;line-height:2;margin:0 0 25px;color:#d1d6dd}.confirm-actions{display:flex;justify-content:flex-end;gap:12px}.toast{position:fixed;left:50%;top:92px;transform:translate(-50%,-12px);background:#18222ff0;border:1px solid #ddc39e77;color:#e5d5bb;padding:13px 24px;z-index:200;font-size:12px;letter-spacing:1px;line-height:1.7;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:88%;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.asset-error{position:fixed;top:0;left:0;z-index:300;background:#8d4c4c;color:#fff;padding:10px;text-align:center;width:100%;font-size:11px}.no-script{position:fixed;inset:0;background:#11151c;padding:30px;z-index:999}
@keyframes pulse{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(2px)}}@keyframes enterCopy{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes enterModal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes spriteIn{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.title-copy{left:12%}.hero-hong{right:23%}.hero-wen{right:4%}.dialogue{bottom:95px;min-height:210px;padding:26px 40px}.game-toolbar{height:75px}.interstitial{bottom:75px}.sprites{bottom:75px}}@media(max-height:760px) and (min-width:901px){.screen{min-height:540px}.title-header{height:80px;padding-top:20px;padding-bottom:20px}.title-copy{top:21%}h1{font-size:70px;margin:20px 0 14px}.title-quote{margin:20px 0;font-size:14px}.title-nav{margin-top:17px}.volume-line{font-size:16px}.title-footer{padding-top:18px;padding-bottom:18px}.dialogue{min-height:168px;bottom:72px;padding-top:17px}.dialogue-text{font-size:calc(19px * var(--font-scale));min-height:60px}.dialogue-top{margin-bottom:10px}.sprites{top:65px}.game-toolbar{height:56px}.interstitial{bottom:56px}}@media(max-width:1100px){.title-copy{left:6%;width:49%}h1{font-size:70px}.hero-hong{right:11%;bottom:-10%;height:88%}.hero-wen{right:-10%;height:95%;bottom:-14%}.title-caption{display:none}.title-nav{gap:10px}.title-quote{font-size:14px}.toolbar-right,.toolbar-left{gap:18px}.sprite.left{left:2%}.sprite.right{right:2%}.character-layout{grid-template-columns:145px 1fr}.character-view{min-height:460px}.character-profile{margin-left:52%}.character-profile h3{font-size:28px}.character-profile blockquote{font-size:14px}.edition{display:none}}
@media(max-width:700px){.screen{min-height:640px;height:100svh}.title-header{height:78px;padding:20px 6%}.wordmark{font-size:12px;gap:10px}.wordmark small{font-size:7px}.brand-symbol{font-size:32px}.brand-symbol span{left:12px;top:3px;font-size:10px}.header-actions{gap:8px}.icon-button{font-size:20px}.icon-button span{font-size:10px}.title-shade{background:linear-gradient(0deg,#10151d 4%,#10151deb 28%,#10151d7d 55%,#10151d18 90%)}.title-backdrop{background-position:60% center}.title-art{bottom:17%}.hero-hong{height:92%;right:20%;bottom:-1%;opacity:.75;max-width:none}.hero-wen{height:96%;right:-27%;bottom:-4%;max-width:none}.title-copy{left:7%;top:auto;bottom:100px;width:86%;}.title-copy>.eyebrow{font-size:9px;letter-spacing:3px;gap:10px}h1{font-size:59px;line-height:1;letter-spacing:5px;margin:20px 0 15px}h1 small{font-size:8px;margin-top:12px;letter-spacing:3px}.volume-line{font-size:14px;gap:10px;letter-spacing:2px;margin:12px 0}.volume-line b{font-size:9px;padding:3px 7px}.volume-line>span{width:10px}.title-quote{font-size:12px;letter-spacing:1.5px;line-height:1.9;margin:20px 0}.start-actions{gap:24px}.primary-button{min-width:180px;font-size:12px;padding:13px 19px;min-height:48px}.continue-button{font-size:12px}.continue-button small{font-size:9px}.title-nav{justify-content:space-between;gap:6px;font-size:10px;margin-top:21px;letter-spacing:.3px}.title-nav span{display:none}.title-footer{padding:18px 6% calc(18px + env(safe-area-inset-bottom));font-size:8px;gap:10px}.title-footer button{font-size:9px}.title-footer-note{display:none}.story-header{height:56px;padding:0 4%;gap:10px}.back-title{font-size:20px;gap:7px}.back-title span{font-size:12px;letter-spacing:1px}.story-actions{gap:5px}.story-actions .icon-button{font-size:18px;padding:5px}.story-actions .icon-button span{display:none}#chapter-label{font-size:9px;letter-spacing:1px;max-width:50%;line-height:1.6}.chapter-line{top:56px}.location{top:76px;left:5%;font-size:9px;padding:8px 11px;max-width:90%;line-height:1.6}.sprites{inset:115px -15% 140px}.sprite{top:12px;height:112%;max-width:83%;object-fit:contain}.sprite.left{left:-4%}.sprite.right{right:-4%}.sprite.solo{max-width:96%;height:116%}.dialogue{bottom:calc(94px + env(safe-area-inset-bottom));width:92%;padding:19px 20px 12px;min-height:188px}.dialogue-top{gap:11px;margin-bottom:10px}.speaker-name{font-size:17px;letter-spacing:2px}.speaker-role{font-size:8px;letter-spacing:1px;max-width:55%;line-height:1.5}.line-position{display:none}.dialogue-text{font-size:calc(17px * var(--font-scale));line-height:1.95;min-height:83px;letter-spacing:.8px}.dialogue-bottom{margin-top:9px}#dialogue-hint{font-size:8px}#dialogue-hint kbd{display:none}.next-line{font-size:9px;letter-spacing:2px}.stage-next{inset:60px 0 295px}.game-toolbar{height:calc(78px + env(safe-area-inset-bottom));padding:8px 5% calc(8px + env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:4px}.toolbar-left{gap:32px}.toolbar-right{width:100%;justify-content:space-between;gap:10px}.game-toolbar button{font-size:10px;min-height:29px;padding:3px 0}.toolbar-left button{font-size:16px}.toolbar-left button span{font-size:9px}.toolbar-right #quick-save{display:none}.interstitial{inset:58px 0 calc(78px + env(safe-area-inset-bottom));padding:24px}.interstitial .chapter-number{font-size:9px;letter-spacing:3px}.interstitial h2{font-size:27px;letter-spacing:3px;line-height:1.6}.interstitial p{font-size:13px;line-height:2;letter-spacing:.7px;max-width:340px;margin-bottom:22px}.interstitial.choice-card h2{font-size:19px;letter-spacing:1px;line-height:1.9;margin:20px auto 26px}.choice-list{width:100%;gap:14px}.choice-option{font-size:14px;padding:16px 16px;min-height:68px;line-height:1.7;gap:14px}.choice-context{font-size:10px}.chapter-stats{gap:15px;font-size:9px}.ending-buttons{gap:10px}.ending-buttons .primary-button{min-width:150px}.ending-buttons .secondary-button{min-height:48px;font-size:10px}.modal-root{padding:12px}.modal-panel{max-height:94svh}.modal-header{padding:22px 20px 18px}.modal-header h2{font-size:24px;letter-spacing:3px}.modal-header .eyebrow{font-size:8px}.close-modal{font-size:30px}.modal-content{padding:22px 20px 26px}.modal-intro{font-size:10px}.chapter-grid{grid-template-columns:1fr}.chapter-tile{padding:17px 18px;min-height:90px}.chapter-tile>strong{font-size:28px}.chapter-tile h3{font-size:16px}.chapter-tile p{font-size:9px}.future-volume{padding:16px;gap:12px;align-items:flex-start}.future-volume h3{font-size:14px;line-height:1.7}.future-volume p{font-size:9px}.future-volume>span{font-size:9px;padding-top:4px}.save-grid{grid-template-columns:1fr 1fr;gap:10px}.save-tile{padding:14px;min-height:140px}.save-tile h3{font-size:14px;line-height:1.5}.save-tile p{font-size:9px}.save-number{font-size:10px}.tabs button{padding:9px 20px;font-size:11px}.character-layout{display:flex;flex-direction:column;gap:15px}.character-list{flex-direction:row;overflow-x:auto;padding-bottom:9px;flex-wrap:nowrap}.character-list button{min-width:86px;white-space:nowrap;text-align:center;padding:10px 5px;font-size:11px}.character-list small{display:none}.character-view{min-height:570px;display:block}.character-view>img{height:79%;width:100%;bottom:auto;top:3%;left:-14%;object-position:center top;opacity:1}.character-view:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(0deg,#1a222f 15%,#1a222ff2 52%,transparent)}.character-profile{margin:0;padding:300px 22px 25px;z-index:3}.character-profile h3{font-size:28px;margin:13px 0}.character-profile blockquote{font-size:15px;margin-bottom:13px}.character-profile p{font-size:11px;line-height:1.9}.character-profile .eyebrow{font-size:8px}.character-detail{font-size:8px}.outfit-toggle{margin-top:12px}.notebook-summary{padding:15px;gap:20px}.notebook-summary strong{font-size:24px;margin-right:5px}.notebook-summary span{font-size:9px}.evidence-grid{grid-template-columns:1fr}.evidence-card{padding:18px}.evidence-card h3{font-size:17px}.evidence-card p{font-size:11px}.setting-row{gap:15px;min-height:95px}.setting-row h3{font-size:12px}.setting-row p{font-size:9px;max-width:200px}.setting-row input[type=range]{width:130px;max-width:31vw}.setting-value{font-size:9px}.toggle{padding:9px 13px;min-width:62px;font-size:10px}.about-layout{grid-template-columns:1fr;gap:16px}.about-layout p{font-size:11px}.about-layout h3{font-size:19px}.about-numbers{margin:15px 0 25px}.about-numbers b{font-size:27px}.confirm-message{font-size:16px}.confirm-actions{flex-wrap:wrap}.toast{top:75px;font-size:11px;width:max-content;max-width:90%;padding:11px 18px}}
@media(max-width:700px) and (max-height:740px){.screen{min-height:570px}.title-copy{bottom:85px}h1{font-size:49px;margin-top:16px}.title-quote{margin:15px 0;font-size:11px}.title-nav{margin-top:16px}.title-art{bottom:20%}.title-header{height:68px}.dialogue{min-height:167px;padding-top:15px;bottom:90px}.dialogue-text{font-size:calc(16px * var(--font-scale));min-height:65px}.game-toolbar{height:76px}.interstitial{bottom:76px}.interstitial h2{font-size:24px}.interstitial p{font-size:12px}.choice-option{font-size:13px;min-height:58px;padding:13px 15px}}
@media(max-width:900px) and (orientation:landscape) and (max-height:550px){.screen{height:100svh;min-height:320px}.title-header{height:55px;padding:10px 4%}.title-copy{left:6%;top:20%;bottom:auto;width:50%}.title-copy>.eyebrow{font-size:8px}h1{font-size:48px;margin:12px 0}h1 small{font-size:7px;margin-top:9px}.volume-line{font-size:12px}.title-quote{display:none}.start-actions{margin-top:18px}.primary-button{padding:8px 16px;min-height:38px;min-width:150px;font-size:11px}.title-nav{margin-top:13px;font-size:9px;gap:12px}.title-footer{padding:10px 4%;font-size:8px}.title-art{bottom:0}.hero-hong{height:102%;right:16%;bottom:-18%}.hero-wen{height:119%;right:-5%;bottom:-32%}.title-shade{background:linear-gradient(90deg,#11151cf0 15%,#11151c55 62%,#11151c11)}.story-header{height:45px}.chapter-line{top:45px}.location{top:58px;left:3%;font-size:8px;padding:5px 9px}.sprites{inset:35px 0 0}.sprite{top:13%;height:132%;max-width:58%}.sprite.left{left:10%}.sprite.right{right:7%}.dialogue{min-height:115px;bottom:45px;width:88%;padding:12px 24px 8px}.dialogue-top{margin-bottom:4px;min-height:18px}.speaker-name{font-size:15px}.dialogue-text{font-size:calc(15px * var(--font-scale));line-height:1.65;min-height:40px}.dialogue-bottom{margin-top:3px}#dialogue-hint{font-size:8px}.game-toolbar{height:39px;flex-direction:row;padding:0 5%;gap:20px}.toolbar-left,.toolbar-right{gap:19px;width:auto}.game-toolbar button{font-size:9px;min-height:25px}.toolbar-left button{font-size:14px}.toolbar-left button span{font-size:9px}.story-actions .icon-button span{display:none}.stage-next{inset:50px 0 160px}.interstitial{inset:47px 0 39px;padding:18px}.interstitial h2{font-size:26px;margin:14px 0 10px}.interstitial p{font-size:12px;margin-bottom:10px;line-height:1.7}.interstitial .ornament{display:none}.interstitial .primary-button{margin-top:10px;min-height:36px}.interstitial.choice-card h2{font-size:17px;margin:10px auto 14px}.choice-list{gap:9px;width:min(520px,90%)}.choice-option{font-size:12px;padding:10px 18px;min-height:42px}.choice-label{font-size:8px;margin-bottom:5px}.choice-context{font-size:9px}.chapter-stats{margin-bottom:10px}.modal-panel{max-height:95svh}.modal-header{padding:14px 22px}.modal-header h2{font-size:22px}.modal-content{padding:18px 22px}.toast{top:53px;font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important}

/* Volume selection shares the established gold/ink palette. */
.title-volume-tabs{display:flex;align-items:center;gap:8px;margin-top:20px}.title-volume-tabs button{padding:6px 13px;font-size:10px;letter-spacing:2px;border:1px solid var(--line);color:#a5a9b2;background:#12192277;min-height:31px}.title-volume-tabs button[aria-pressed=true]{color:var(--gold);border-color:#dbc39e99;background:#dbc39e12}.volume-line>#selected-volume-title{height:auto;width:auto;background:none;line-height:1.6}.volume-heading{font-family:"Songti SC",serif;font-size:20px;letter-spacing:3px;font-weight:400;color:var(--gold);margin:0 0 18px}.outfit-toggle{flex-wrap:wrap}.volume-tabs{flex-wrap:wrap}.title-copy .title-quote{margin-top:22px;margin-bottom:25px}
@media(min-width:701px){.title-copy{top:23%}}@media(max-height:760px) and (min-width:901px){.title-copy{top:19%}.title-volume-tabs{margin-top:13px}.title-copy .title-quote{margin:16px 0}.title-nav{margin-top:16px}}
@media(max-width:700px){.title-volume-tabs{margin-top:13px;gap:7px}.title-volume-tabs button{padding:4px 11px;font-size:9px;min-height:27px}.volume-line{flex-wrap:nowrap;font-size:13px;letter-spacing:1px}.volume-line b{flex-shrink:0}.volume-line>#selected-volume-title{line-height:1.7}.title-copy .title-quote{margin-top:15px;margin-bottom:20px}.title-copy{bottom:93px}.title-footer{font-size:7px}}
@media(max-width:700px) and (max-height:740px){.title-copy{bottom:82px}.title-volume-tabs{margin-top:10px}.title-copy .title-quote{margin:12px 0}.title-nav{margin-top:14px}}
@media(max-width:900px) and (orientation:landscape) and (max-height:550px){.title-copy{top:17%;bottom:auto}.title-volume-tabs{margin-top:9px}.title-volume-tabs button{min-height:23px;font-size:8px;padding:3px 10px}.title-nav{margin-top:10px}}

/* Event illustrations keep their full composition instead of cropping like scenery. */
.cg-scene .scene-background{top:82px;bottom:84px;background-size:contain;background-repeat:no-repeat;opacity:1}
@media(max-width:700px){.cg-scene .scene-background{top:114px;bottom:calc(294px + env(safe-area-inset-bottom))}}
@media(max-width:900px) and (orientation:landscape) and (max-height:550px){.cg-scene .scene-background{top:50px;bottom:45px}}
.cg-scene.ui-hidden .scene-background{inset:0}
@media(min-width:701px){.character-list{max-height:min(62svh,600px);overflow-y:auto;align-self:start}}

/* Six volumes stay visible on narrow title screens. */
@media(max-width:700px){.title-volume-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.title-volume-tabs button{padding:5px 3px;font-size:8px;letter-spacing:.5px;white-space:nowrap;min-height:36px}}

/* Fade the whole portrait layer, including negative sprite offsets, before its edge. */
#title-screen{overflow:clip}
@media(max-width:700px){.title-art{-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 78%,transparent 100%)}.title-art:after{background:linear-gradient(180deg,transparent 28%,#11151c33 45%,#11151cb3 70%,#11151c 100%)}.title-copy h1{text-shadow:0 2px 5px #0b1018e6,0 0 20px #0b101899}}
