:root{color-scheme:dark;--cream:#e7dfc9;--muted:#a5b3a8;--gold:#d3b77d;--line:rgba(206,214,182,.18);font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--cream);background:#0b1b23;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,input:focus-visible{outline:2px solid #dfc38f;outline-offset:6px}button{transition:color .2s,background .2s,transform .2s,border-color .2s}button:hover{color:#fff4d8}button:disabled{cursor:default;opacity:.35}button svg{width:20px;height:20px;display:block}button span[data-icon]{display:inline-flex}#app{width:100vw;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden}#stage{width:min(100vw,177.77778dvh);height:min(100dvh,56.25vw);position:relative;overflow:hidden;isolation:isolate;container-type:inline-size;background:#122a32}#world{width:100%;height:100%;position:absolute;inset:0;display:block;outline:none}.grain{position:absolute;inset:0;pointer-events:none;opacity:.045;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:soft-light;z-index:1}.menu-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,25,33,.85),rgba(9,27,34,.65) 28%,rgba(9,27,34,.16) 51%,transparent 73%);pointer-events:none;transition:opacity 1s}.header{position:absolute;top:3.3cqw;left:4.4cqw;right:4.4cqw;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{display:flex;align-items:center;gap:1cqw;padding:0;text-align:left}.brand>span:last-child{font-family:Georgia,"STSong","SimSun",serif;font-size:1.45cqw;letter-spacing:.3cqw}.brand small{display:block;font-family:Georgia,serif;font-size:.44cqw;letter-spacing:.17cqw;margin-top:.35cqw;color:#afb8a7}.brand .brand-icon svg{width:2cqw;height:3cqw;stroke:#d7bd87;stroke-width:1.2}.header nav{display:flex;align-items:center;gap:2.2cqw}.header nav>button{display:flex;align-items:center;gap:.6cqw;font-size:.8cqw;letter-spacing:.1cqw;padding:.5cqw 0;color:#c0c9b8}.header nav button:hover{color:#f1ddac}.header nav svg{width:1.05cqw;height:1.05cqw;stroke-width:1.3}.header nav .icon-button{padding:.5cqw;position:relative}.nav-divider{width:1px;height:1.2cqw;background:var(--line);margin:0 -.5cqw}#journal-button{position:relative}#journal-dot{width:.25cqw;height:.25cqw;border-radius:50%;background:#d5b77b;position:absolute;top:.4cqw;right:-.5cqw;display:none}.hero{position:absolute;top:15.15cqw;left:10.4cqw;z-index:2}.eyebrow{display:flex;align-items:center;gap:.9cqw;font-size:.7cqw;letter-spacing:.24cqw;color:#bfc9b4;margin:0 0 1.3cqw}.eyebrow>span{width:1.45cqw;height:1px;background:#b8b793}.hero h1{font-family:"STSong","Songti SC","SimSun",Georgia,serif;font-size:6.1cqw;font-weight:400;letter-spacing:1.1cqw;margin:0 0 .7cqw;line-height:1.22;color:#f0e8d3;text-shadow:0 3px 30px #cbd7ba12;position:relative}.title-star{font-size:1.65cqw;color:#c3b88a;position:absolute;right:-.7cqw;top:.15cqw;font-family:Georgia,serif}.english-title{font-family:Georgia,serif;font-size:.72cqw;color:#c3c6ae;margin:0;letter-spacing:.12cqw}.hero-rule{display:flex;align-items:center;gap:.8cqw;width:19.3cqw;margin:1.8cqw 0 1.5cqw}.hero-rule span{height:1px;flex:1;background:linear-gradient(90deg,#bdc3a433,#bdc3a408)}.hero-rule span:first-child{background:linear-gradient(90deg,#bdc3a408,#bdc3a433)}.hero-rule i{font-style:normal;color:#acae86;font-size:.65cqw}.hero-copy{font-family:"STSong","Songti SC","SimSun",serif;color:#bdc9b8;font-size:.98cqw;letter-spacing:.12cqw;line-height:2.2;margin:0}.hero-actions{margin-top:2.1cqw;display:flex;flex-direction:column;align-items:flex-start;gap:1.05cqw}.primary{background:linear-gradient(110deg,#d7c398,#bd9f6e);color:#25352f;border:1px solid #e0cea7;min-width:18.3cqw;display:flex;align-items:center;justify-content:center;gap:.8cqw;padding:.95cqw 1.2cqw;font-size:1cqw;letter-spacing:.25cqw;box-shadow:0 5px 30px #c4a36315;position:relative;border-radius:2px}.primary:hover{background:#e2cfa6;color:#182a24;transform:translateY(-2px);box-shadow:0 5px 30px #c4a36330}.primary svg{width:.9cqw;height:.9cqw;fill:currentColor;stroke-width:1}.primary .arrow{position:absolute;right:1.15cqw;letter-spacing:0;font-size:1.2cqw}.text-button{display:flex;align-items:center;justify-content:center;gap:.5cqw;min-width:18.3cqw;font-size:.77cqw;letter-spacing:.14cqw;color:#aebcac;padding:.4cqw}.text-button svg{width:.9cqw;height:.9cqw;stroke-width:1.3}.continue{font-size:.75cqw;letter-spacing:.12cqw;color:#bdc9b6;min-width:18.3cqw}.continue span{margin-left:1cqw}.chapter-preview{display:flex;align-items:center;margin-top:3.4cqw;gap:1cqw;width:23cqw;color:#c0c7ad}.chapter-number{font:2cqw Georgia,serif;color:#afb995;align-self:flex-start}.chapter-preview small{font-family:Georgia,"Microsoft YaHei",serif;font-size:.48cqw;letter-spacing:.09cqw;color:#8fa296}.chapter-preview p{font-family:"STSong","SimSun",serif;font-size:1cqw;letter-spacing:.22cqw;margin:.4cqw 0 0}.preview-line{height:1px;flex:1;background:#bbc6a921;margin-left:.3cqw}.chapter-count{font:.56cqw Georgia,serif;letter-spacing:.06cqw;color:#81978c}.scene-note{position:absolute;top:72%;left:64%;display:flex;gap:.65cqw;align-items:center;color:#c5ceb7;font-family:"STSong","SimSun",serif;font-size:.85cqw;letter-spacing:.18cqw;text-shadow:0 2px 6px #0b2025}.scene-note small{display:block;font: .42cqw Georgia,serif;letter-spacing:.12cqw;color:#9caf9c;margin-top:.6cqw}.note-diamond{font-size:1.8cqw;color:#c1c59b}.footer{position:absolute;bottom:2.6cqw;left:4.4cqw;right:4.4cqw;display:flex;align-items:center;justify-content:space-between;z-index:4;font-size:.63cqw;color:#889e92;letter-spacing:.08cqw}.footer-left{display:flex;align-items:center;gap:.6cqw}.status-light{width:.3cqw;height:.3cqw;background:#b6c38d;border-radius:50%;box-shadow:0 0 10px #bccb6d60}.footer-separator{color:#5b7468;margin:0 .35cqw}.footer button{font-size:.65cqw;letter-spacing:.1cqw;color:#8fa296}.footer button span{margin-left:.6cqw}.chapter-indicator{position:absolute;bottom:5cqw;left:50%;transform:translateX(-50%);display:flex;gap:.6cqw;align-items:center}.chapter-indicator>span{height:3px;width:1cqw;background:#7e968440}.chapter-indicator>span.active{background:#d0bd8a;width:2.3cqw}.chapter-indicator small{font-size:.55cqw;color:#8fa395;margin-left:.65cqw;letter-spacing:.1cqw}.game-hud{position:absolute;inset:0;pointer-events:none}.level-heading{position:absolute;left:4.4cqw;top:10cqw}.level-heading>p{font-size:.65cqw;letter-spacing:.18cqw;color:#bbc6ad}.level-heading h2{font:1.9cqw Georgia,serif;color:#d2c69e;margin:.9cqw 0 1.1cqw;display:flex;align-items:center;gap:1cqw}.level-heading h2 span{font:1.25cqw "STSong","SimSun",serif;letter-spacing:.18cqw;color:#e6dfc7}.level-progress{height:2px;width:13cqw;background:#bfd1ac22}.level-progress i{display:block;height:100%;background:#c8ba87;width:0;transition:width .4s}.collect-counter{position:absolute;right:4.6cqw;top:11cqw;display:flex;align-items:center;gap:.65cqw;color:#e2d5af;font-family:Georgia,serif;font-size:1.4cqw}.collect-counter svg{width:1.4cqw;height:1.4cqw;stroke-width:1.3}.collect-counter>span:nth-of-type(2){font-size:.9cqw;color:#a2b39f}.collect-counter strong{font-weight:400}.collect-counter small{display:block;position:absolute;top:2.1cqw;right:0;font-size:.6cqw;letter-spacing:.18cqw;color:#adbaa4;white-space:nowrap}.controls{display:flex;gap:1.5cqw;color:#aebda9;font-size:.65cqw;align-items:center}.controls>span{display:flex;align-items:center;gap:.35cqw}kbd{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b7c7a53b;background:#14312d69;border-radius:3px;min-width:1.4cqw;height:1.4cqw;font-family:inherit;font-size:.65cqw;padding:0 .35cqw;color:#d6d7b9}.interaction{position:absolute;display:flex;align-items:center;gap:.65cqw;transform:translate(-50%,-100%);padding:.65cqw .9cqw;background:#102a2edb;border:1px solid #b7c29145;border-radius:4px;font-size:.75cqw;white-space:nowrap;color:#e5dab9;pointer-events:none;z-index:3}.interaction kbd{background:#c6b78b;color:#21362d;border:0;font-size:.75cqw}.toast{position:absolute;bottom:8.8cqw;left:50%;transform:translateX(-50%);font-family:"STSong","SimSun",serif;color:#e0ddbf;font-size:1cqw;letter-spacing:.1cqw;padding:.9cqw 1.8cqw;background:linear-gradient(90deg,transparent,#122d30eb 15%,#122d30eb 85%,transparent);white-space:nowrap;text-align:center;pointer-events:none;max-width:90%}.reset-progress{position:absolute;left:50%;bottom:12cqw;transform:translateX(-50%);font-size:.7cqw;letter-spacing:.1cqw}.reset-progress>span{height:2px;display:block;background:#d1b989;margin-bottom:.5cqw}.modal-backdrop{position:absolute;inset:0;background:#061a24b8;backdrop-filter:blur(12px);z-index:10;display:flex;align-items:center;justify-content:center;animation:fadein .25s}.modal{width:41cqw;max-height:46cqw;overflow:auto;padding:3cqw;background:linear-gradient(140deg,#203b3be8,#152a30f5);border:1px solid #a9b79439;box-shadow:0 20px 100px #0005;position:relative;scrollbar-width:thin;scrollbar-color:#71806b transparent}.modal.wide{width:73cqw}.modal .close{position:absolute;top:1.1cqw;right:1.2cqw;padding:.5cqw;color:#b2c0a9;font-size:1.5cqw}.modal .modal-kicker{font:.6cqw Georgia,serif;letter-spacing:.2cqw;color:#b6b58f;text-align:center;margin:0 0 .8cqw}.modal h2{font:2.15cqw "STSong","SimSun",serif;letter-spacing:.25cqw;text-align:center;margin:0 0 .8cqw}.modal .intro{font-size:.75cqw;line-height:1.9;color:#a6b8a6;text-align:center;letter-spacing:.06cqw;margin:0 0 2cqw}.modal p{line-height:1.9}.modal .primary{margin:1.5cqw auto 0;min-width:19cqw}.difficulty-options{display:flex;flex-direction:column;gap:.6cqw}.difficulty-option{display:flex;align-items:center;gap:1cqw;border:1px solid #aabd9a26;background:#0c242533;padding:1cqw 1.2cqw;text-align:left}.difficulty-option:hover,.difficulty-option.selected{border-color:#c9bb8277;background:#bacb9a0a}.difficulty-option>.symbol{font-size:1.7cqw;color:#c6bd91;min-width:2cqw;text-align:center}.difficulty-option strong{font:1.1cqw "STSong","SimSun",serif;letter-spacing:.18cqw}.difficulty-option strong small{font:.6cqw "Microsoft YaHei",sans-serif;letter-spacing:.05cqw;color:#9daf9c;margin-left:.7cqw}.difficulty-option p{font-size:.65cqw;letter-spacing:.02cqw;color:#9eb39f;margin:.45cqw 0 0}.difficulty-option .selected-mark{margin-left:auto;color:#d9c794;font-size:1cqw}.chapter-tabs{display:flex;gap:1cqw;margin:1.5cqw 0 2cqw;justify-content:center}.chapter-tabs button{font:.95cqw "STSong","SimSun",serif;letter-spacing:.1cqw;padding:.7cqw 1.4cqw;border-bottom:1px solid transparent;color:#a5b9a7}.chapter-tabs button.selected{border-color:#c5b37e;color:#e7d5a8}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1cqw}.level-card{text-align:left;border:1px solid #a5b49233;background:linear-gradient(160deg,#5d7c6d2e,#122c2e);padding:1.4cqw 1.1cqw;min-height:12cqw;position:relative;overflow:hidden}.level-card:hover:enabled{border-color:#c5b78788;transform:translateY(-3px)}.level-card .level-art{height:4.8cqw;display:flex;align-items:center;justify-content:center;color:#b9c39b;font:3.5cqw Georgia,serif;opacity:.6}.level-card small{font:.6cqw Georgia,serif;letter-spacing:.1cqw;color:#9aaf99}.level-card h3{font:1cqw "STSong","SimSun",serif;letter-spacing:.12cqw;font-weight:400;margin:.7cqw 0}.level-card .card-footer{display:flex;align-items:center;justify-content:space-between;color:#b6ba91;font-size:.7cqw}.level-card.locked .level-art{opacity:.3}.chapter-description{font-size:.75cqw;text-align:center;color:#adbea6;letter-spacing:.1cqw;margin:1.5cqw 0 0}.menu-stack{display:flex;flex-direction:column;gap:.5cqw;margin-top:1.7cqw}.menu-stack button{font-size:.85cqw;letter-spacing:.15cqw;padding:.85cqw;border:1px solid #a9b99525}.menu-stack button:hover{background:#c0cc980b;border-color:#b7bd7c66}.menu-stack button.main{background:#cdb88b;color:#243931;border-color:#d1bd90}.setting-row{display:flex;justify-content:space-between;align-items:center;margin:1.5cqw 0;font-size:.85cqw;color:#cbd1b9;letter-spacing:.1cqw;gap:1cqw}.setting-row input[type=range]{width:16cqw;accent-color:#d1bc8c;height:2px;cursor:pointer}.setting-row button{font-size:.7cqw;border:1px solid #aaba9255;padding:.4cqw .8cqw}.settings-note{font-size:.65cqw;color:#91aa98;border-top:1px solid #a5b59b22;padding-top:1.2cqw}.journal-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1cqw}.memory-card{padding:1.2cqw;background:#0a23264f;border:1px solid #a2b19322;min-height:12cqw}.memory-card h3{font:1cqw "STSong","SimSun",serif;letter-spacing:.12cqw;margin:.8cqw 0}.memory-card p{font:.72cqw/2 "STSong","SimSun",serif;color:#acbea9;margin:0}.memory-card small{font:.58cqw Georgia,serif;color:#c0b78e;letter-spacing:.1cqw}.memory-card.locked{opacity:.45}.memory-art{height:4.2cqw;border:1px solid #b5be9222;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 100%,#c5b47925,transparent 70%);font-size:2.5cqw;color:#b9c7a3}.summary-stats{display:flex;justify-content:center;gap:3.5cqw;margin:2cqw 0}.summary-stats strong{display:block;font:2.4cqw Georgia,serif;color:#ddc799;text-align:center;font-weight:400}.summary-stats small{display:block;font-size:.65cqw;color:#a9bca5;margin-top:.7cqw;text-align:center;letter-spacing:.1cqw}.ending-copy{font:1cqw/2.4 "STSong","SimSun",serif;text-align:center;color:#c0cfb6;letter-spacing:.12cqw}.credits-copy{font-size:.8cqw;color:#b1c2ad;line-height:2.2!important;text-align:center}.loading{position:absolute;inset:0;background:#10272f;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading svg{width:3cqw;height:4cqw;color:#d3bc8d;animation:breathe 2s infinite}.loading p{font:1cqw "STSong","SimSun",serif;letter-spacing:.15cqw;margin-top:2cqw}.loading>div{width:16cqw;height:2px;background:#52634e;margin:1cqw}.loading>div>i{display:block;height:2px;background:#d3bc8d;animation:load .55s forwards}.loading small{font-size:.65cqw;color:#8fa895;letter-spacing:.2cqw}.hidden{display:none!important}@keyframes fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{filter:drop-shadow(0 0 12px #e5bb55);opacity:.7}}@keyframes load{from{width:0}to{width:100%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
