@font-face{font-family:LocalSerif;src:local("Noto Serif SC"),local("STSong"),local("SimSun");font-display:swap}
:root{color-scheme:dark;--ink:#f0e6cf;--gold:#d8b47b;--muted:#acb7b5;--dark:#122128;font-family:"Microsoft YaHei","PingFang SC",sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101b20}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{cursor:default}button[hidden],section[hidden],footer[hidden],div[hidden],nav[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;display:block}.grain{pointer-events:none;position:fixed;inset:0;z-index:1;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.3' filter='url(%23noise)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")} .masthead{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:30px 44px;pointer-events:none}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);text-decoration:none;pointer-events:auto;font-family:LocalSerif,serif;font-size:23px;letter-spacing:4px}.brand svg{width:38px;height:38px;stroke:var(--gold);stroke-width:1.3}.brand small{display:block;font:10px/1.5 "Microsoft YaHei",sans-serif;letter-spacing:2px;color:var(--muted);margin-top:6px}.header-actions{display:flex;align-items:center;gap:12px;pointer-events:auto}.round-button{width:39px;height:39px;border-radius:50%;border:1px solid #d8b47b38;background:#15262a88;font-size:18px}.round-button[aria-pressed=true]{background:#d8b47b;color:#17252a}.text-button{border:0;background:none;font-size:12px;letter-spacing:1px;padding:10px 8px}.text-button span{color:var(--gold);margin-left:15px}.library-intro{position:absolute;z-index:3;left:7vw;top:27%;pointer-events:none;transition:opacity .5s}.eyebrow{font-size:10px;color:var(--gold);letter-spacing:3px}.library-intro h1{font:normal clamp(32px,3.2vw,52px)/1.6 LocalSerif,"KaiTi",serif;letter-spacing:3px;margin:20px 0}.library-intro h1 em{font-style:normal;color:#ddbd83}.library-intro p{font-size:12px;line-height:2.1;color:var(--muted);letter-spacing:1px}.intro-rule{width:40px;height:1px;background:var(--gold);margin:27px 0 18px}.small-note{font-size:10px;color:#b7aa8f;letter-spacing:1px}.book-picker{position:fixed;z-index:4;bottom:14%;left:43%;right:8%;display:flex;gap:18px;justify-content:space-around;transition:opacity .5s}.book-choice{border:0;background:#142329a6;border-top:1px solid #d8b47b45;padding:15px 8px 13px;min-width:130px;flex:1;text-align:left;backdrop-filter:blur(10px);transition:background .3s,translate .3s}.book-choice:hover{background:#243b3ddc;translate:0 -4px}.book-choice .book-number{display:block;color:#c3a36e;font-size:9px;letter-spacing:2px;margin-bottom:7px}.book-choice strong{display:block;font:normal 18px LocalSerif,serif;letter-spacing:2px}.book-choice small{display:block;font-size:10px;color:#aeb9b5;margin-top:9px}.book-choice .open-arrow{float:right;color:#d9b477;font-size:18px}.library-footnote{position:absolute;left:44px;right:44px;bottom:27px;z-index:3;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#93a3a3}.reader-header{position:absolute;z-index:3;left:44px;top:120px;pointer-events:none}.reader-header h1{font:normal 25px LocalSerif,serif;letter-spacing:5px;margin:13px 0 18px}.chapter-progress{display:flex;gap:7px}.chapter-dot{height:3px;width:18px;background:#bfa57633}.chapter-dot.complete{background:#a78b55}.chapter-dot.current{background:#eed2a0;width:33px}.hotspots{position:fixed;inset:0;z-index:5;pointer-events:none}.hotspot{position:absolute;border:1px solid #eac58b66;background:#172a2ae8;color:#ffe1aa;border-radius:22px;box-shadow:0 4px 25px #0005;padding:8px 13px;font-size:11px;white-space:nowrap;translate:-50% -100%;pointer-events:auto;display:flex;align-items:center;gap:8px;backdrop-filter:blur(8px)}.hotspot:before{content:"";width:6px;height:6px;border-radius:50%;background:#f1d398;box-shadow:0 0 12px #edcb81}.hotspot:hover{background:#35504b}.event-caption{position:absolute;z-index:6;left:50%;bottom:122px;translate:-50% 0;max-width:600px;min-width:280px;text-align:center;padding:12px 24px;background:#0e1c22d9;border:1px solid #dcc18b22;border-radius:4px;color:#f3e1bc;font:15px/1.9 LocalSerif,serif;letter-spacing:1px;opacity:0;pointer-events:none;transition:opacity .35s;backdrop-filter:blur(12px)}.event-caption.visible{opacity:1}.reader-controls{position:fixed;left:50%;bottom:30px;translate:-50% 0;display:flex;align-items:center;gap:26px;z-index:7;padding:12px 18px;border:1px solid #e3c08a26;border-radius:50px;background:#102127e8;backdrop-filter:blur(14px);box-shadow:0 8px 32px #0003}.page-button{border:1px solid #dbbc8344;background:#203438;border-radius:50%;height:40px;width:40px;font:22px/1 serif}.page-button:disabled{opacity:.28}.page-button:not(:disabled):hover{background:#d8b47b;color:#192b2c}.reading-state{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:200px}.reading-state span:first-child{color:#dfc394;letter-spacing:3px;font-size:11px}.reading-state span:last-child{font-size:10px;letter-spacing:1px;color:#acb8b4}.loading{position:fixed;inset:0;z-index:40;background:#101e25;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .7s}.loading p{color:#c3ad85;letter-spacing:3px;font:14px LocalSerif,serif;margin-top:26px}.loading-book{display:flex;gap:3px;perspective:120px}.loading-book i{width:30px;height:40px;border:1px solid #ceb07b;background:#253a3f}.loading-book i:first-child{rotate:y -20deg}.loading-book i:last-child{rotate:y 20deg}body[data-phase=loading] .masthead{opacity:0}body[data-phase=moving] .book-picker,body[data-phase=moving] .library-intro{opacity:0;pointer-events:none}dialog{max-width:480px;padding:42px;border:1px solid #d7b88155;border-radius:5px;background:#15272d;color:#e9dec6;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#030a10bb;backdrop-filter:blur(8px)}dialog h2{font:normal 25px/1.6 LocalSerif,serif;margin-top:20px}dialog p{font-size:13px;line-height:2;color:#c0cbc4}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:25px}.help-note{font-size:11px!important;color:#95a6a4!important}#fallback{position:fixed;inset:0;z-index:50;background:#16282e;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}#fallback h1{font:30px LocalSerif,serif}#fallback p{line-height:2;color:#bac5bd}#fallback button{background:#d9b777;color:#13252b;border:0;padding:12px 25px;border-radius:24px}@media(max-width:800px){.masthead{padding:21px 22px}.brand{font-size:20px}.brand small{font-size:8px;letter-spacing:1px}.brand svg{width:29px}.library-intro{top:15%;left:7%}.library-intro h1{font-size:29px;line-height:1.5;margin:15px 0}.library-intro p,.intro-rule,.small-note{display:none}.book-picker{left:5%;right:5%;bottom:10%;gap:8px}.book-choice{min-width:0;padding:12px 9px}.book-choice strong{font-size:15px;letter-spacing:1px}.book-choice small{font-size:9px}.book-choice .book-number{font-size:8px}.library-footnote{left:22px;right:22px;bottom:20px;font-size:8px;letter-spacing:1px}.reader-header{top:102px;left:24px}.reader-header h1{font-size:22px}.reader-controls{bottom:max(18px,env(safe-area-inset-bottom));padding:9px 12px;gap:13px;max-width:95vw}.reading-state{min-width:190px}.event-caption{bottom:104px;width:88%;min-width:0;font-size:13px;padding:10px 15px}.text-button{font-size:10px}.header-actions{gap:7px}.round-button{width:33px;height:33px}.hotspot{font-size:10px;padding:7px 10px}dialog{max-width:88vw;padding:30px}.chapter-dot{width:12px}.chapter-dot.current{width:22px}}
@media(max-width:500px){.brand small{display:none}.brand{letter-spacing:2px}.reader-header{top:89px}.reader-header h1{font-size:20px;margin:10px 0 12px}.eyebrow{font-size:9px;letter-spacing:2px}.library-intro h1{font-size:26px}.library-footnote span:last-child{display:none}.reading-state{min-width:165px}.book-choice .open-arrow{font-size:14px}.book-choice small{line-height:1.6}.book-choice strong{font-size:14px}.book-number{letter-spacing:1px!important}.hotspot{max-width:160px;white-space:normal;text-align:left}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
.immersive .masthead{background:linear-gradient(#071017b8,transparent);padding-bottom:35px}.immersive .brand small{display:none}.immersive .brand{font-size:19px}.immersive .brand svg{width:30px;height:30px}.immersive .reader-header{top:100px;left:44px;text-shadow:0 2px 10px #000}.immersive .reader-header h1{font-size:25px;margin-bottom:13px}.immersive .reader-controls{left:auto;right:32px;translate:none;bottom:25px;gap:16px}.immersive .reading-state{min-width:185px}.immersive .event-caption{left:36px;bottom:28px;translate:none;width:calc(100% - 470px);max-width:980px;min-width:0;text-align:left;font:17px/1.9 LocalSerif,serif;background:#0b1722d9;border-left:2px solid #d8b47b;border-radius:0;padding:15px 23px}.immersive .hotspot{background:#15242bd9;box-shadow:0 3px 20px #0008;border-color:#e2bd7566}.immersive:after{content:"";position:fixed;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 110px #050d1538}.immersive .grain{opacity:.08}
.sound-button{width:auto;min-width:84px;border-radius:24px;padding:0 13px;font-size:11px;letter-spacing:1px}.detail-markers{position:fixed;inset:0;z-index:5;pointer-events:none}.detail-marker{position:absolute;width:25px;height:25px;translate:-50% -50%;border-radius:50%;background:#11242caa;border:1px solid #e6c88a99;box-shadow:0 0 0 5px #e4bd6c14,0 3px 16px #0006;pointer-events:auto;display:grid;place-items:center;color:#f6dfb1;font-size:17px;line-height:1;transition:background .2s,box-shadow .2s}.detail-marker:hover,.detail-marker:focus-visible{background:#ba9356;color:#102127;box-shadow:0 0 0 7px #e4bd6c28}.detail-marker.discovered{border-color:#c4d7c0;color:#c4d7c0;background:#284540ca;box-shadow:0 0 0 4px #acc7a718}.detail-label{position:absolute;top:-35px;left:50%;translate:-50% 0;background:#10222bea;border:1px solid #d8b47b55;border-radius:4px;padding:7px 10px;color:#f0dfbe;font-size:11px;line-height:1.3;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.detail-marker:hover .detail-label,.detail-marker:focus-visible .detail-label{opacity:1}.detail-panel{position:fixed;z-index:7;right:32px;bottom:122px;width:326px;padding:15px 16px 11px;border:1px solid #d8b47b33;border-radius:10px;background:#11232be0;backdrop-filter:blur(12px);box-shadow:0 8px 28px #0003}.detail-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:2px;color:#e3c58e}.detail-heading strong{font-size:10px;font-weight:normal;letter-spacing:1px;margin-left:7px;color:#a7bab1}.detail-heading button{border:0;background:none;color:#acbab5;font-size:10px;padding:3px 0;letter-spacing:0}.detail-heading button:hover{color:#e3c58e}.detail-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.detail-action{font-size:10px;letter-spacing:.5px;border:1px solid #d8b47b38;border-radius:20px;padding:7px 10px;background:#24404766;color:#e2d6bd;transition:background .2s}.detail-action:hover{background:#b28d50;color:#10252c}.detail-action.discovered:before{content:'✓ ';color:#b3c6a5}.detail-action:disabled{opacity:.5}.detail-panel p{font-size:9px;letter-spacing:.6px;color:#93a8a1;margin:11px 0 0}#world{user-select:none}
@media(max-height:650px){.detail-panel{bottom:110px;width:294px;padding:11px 13px}.detail-actions{margin-top:9px;gap:5px}.detail-action{padding:5px 8px}.detail-panel p{margin-top:7px}.immersive .reader-header{top:89px}.immersive .reader-header h1{font-size:21px}}
