:root{color-scheme:dark;--sky:#7cdcff;--ink:#122e43;--muted:#90a8b8;--paper:#fafcfb;--ratio:.707071}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}body{background:#102b40;background:radial-gradient(ellipse at 50% 30%,#234a60 0,#102b40 54%,#0b2335 100%);color:#eef6fa;height:100vh;height:100dvh;min-height:540px;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #49bde4;outline-offset:4px}button:disabled{cursor:default;opacity:.25}button{border:0}a{color:inherit;text-decoration:none}.masthead{height:84px;max-width:1500px;margin:auto;padding:0 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{display:flex;align-items:center;gap:20px}.wordmark{font-weight:300;letter-spacing:1px;font-size:36px;color:var(--sky)}.wordmark sup{font-size:9px;vertical-align:top;line-height:28px}.brand-rule{height:30px;width:1px;background:#b9d2df40}.brand-text{font-size:14px;letter-spacing:2px}.brand-text span{display:block;color:#a9c3d2;font-size:10px;margin-top:5px;letter-spacing:1.8px}.header-actions{display:flex;gap:10px}.top-button{border:1px solid #d4e9f526;background:#ffffff06;border-radius:8px;color:#e2f1f9;font-size:14px;padding:9px 16px;min-height:42px;transition:background .2s}.top-button:hover{background:#ffffff18}.top-button span{font-size:20px;vertical-align:-1px;margin-right:5px}.reader{height:calc(100vh - 84px);height:calc(100dvh - 84px);max-width:1500px;min-height:455px;margin:auto;display:flex;flex-direction:column;padding:0 44px}.reading-meta{flex-shrink:0;height:43px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#b9cbd6}.edition{font-size:10px;letter-spacing:2.2px;color:#92b2c5}.stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;padding:6px 65px 10px;perspective:2000px;overflow:hidden}.book{position:relative;flex-shrink:0;perspective:1800px;outline:none;touch-action:pan-y;filter:drop-shadow(0 16px 21px #00111e65)}.spread{display:flex;width:100%;height:100%;position:relative;border-radius:2px;background:#fff}.paper{position:relative;width:100%;height:100%;background:#fff;overflow:hidden;flex-shrink:0;cursor:zoom-in}.spread.double .paper{width:50%}.paper img{width:100%;height:100%;object-fit:fill;display:block;-webkit-user-drag:none;user-select:none}.paper::after{content:"";position:absolute;inset:0;border:1px solid #172e4410;pointer-events:none}.spread.double:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:17px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#00000018 40%,#00000022 50%,#0000000c 62%,transparent);pointer-events:none}.book:after{content:"";position:absolute;inset:3px -3px -3px 3px;border-right:2px solid #d5dee2;border-bottom:2px solid #c7d1d6;z-index:-1}.side-arrow{position:absolute;z-index:8;top:50%;transform:translateY(-50%);width:44px;height:60px;color:#d5ebf8;background:#ffffff07;border:1px solid #ffffff14;border-radius:30px;font-size:36px;font-weight:200;transition:background .2s}.side-arrow:hover{background:#ffffff18}.side-arrow.previous{left:0}.side-arrow.next{right:0}.flip-leaf{position:absolute;top:0;height:100%;width:50%;z-index:4;transform-style:preserve-3d;pointer-events:none}.flip-leaf.forward{right:0;transform-origin:left center}.flip-leaf.backward{left:0;transform-origin:right center}.flip-face{position:absolute;inset:0;backface-visibility:hidden;background:#fff;overflow:hidden}.flip-face img{width:100%;height:100%;object-fit:fill}.flip-face.back{transform:rotateY(180deg)}.flip-face:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#00000010,transparent 40%,#00000018)}.stationary-page{position:absolute;top:0;width:50%;height:100%;z-index:3}.stationary-page img{width:100%;height:100%}.reader-footer{flex-shrink:0;text-align:center;padding:0 0 17px}.gesture-hint{font-size:11px;letter-spacing:1px;color:#a6c3d3;margin:9px 0 13px}.control-bar{display:flex;align-items:center;justify-content:center;gap:7px}.control-arrow{font-size:29px;background:transparent;color:#dbeef9;min-width:46px;min-height:40px;line-height:36px;border:1px solid #ffffff18;border-radius:7px}.page-count{color:#eff9ff;background:none;min-width:122px;min-height:40px;font-size:13px;letter-spacing:1px}.page-count span{color:#8eaebf;font-size:12px}.control-rule{height:20px;width:1px;background:#ffffff24;margin:0 9px}.zoom-button{background:transparent;color:#c9dfed;display:flex;gap:7px;align-items:center;min-height:40px;font-size:12px;padding:0 10px}.zoom-button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.4}.page-slider{display:block;width:235px;max-width:70%;height:3px;margin:17px auto 13px;accent-color:#87d6f5;cursor:pointer}.footer-note{display:flex;justify-content:center;gap:16px;font-size:9px;color:#7c9caf;letter-spacing:1px}.footer-note span:first-child{letter-spacing:2px}dialog{border:0;padding:0;color:var(--ink);background:var(--paper);color-scheme:light}dialog::backdrop{background:#031522b8;backdrop-filter:blur(6px)}.contents-dialog{width:min(1060px,calc(100vw - 64px));max-width:none;max-height:min(88dvh,960px);border-radius:17px;box-shadow:0 30px 100px #00182b70;overflow:auto}.contents-heading{padding:34px 38px 27px;display:flex;justify-content:space-between;align-items:flex-start;background:radial-gradient(ellipse at right top,#c7eefb,transparent 60%),#f3f9fb}.eyebrow{font-size:10px;letter-spacing:2.8px;color:#1382aa;font-weight:600;margin:0 0 13px}h1{font-size:32px;font-weight:500;letter-spacing:2px;margin:0;line-height:1.4}h1 span{display:block;font-size:12px;color:#6a8290;letter-spacing:1px;margin-top:9px;font-weight:400}.close-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid #29495b1c;color:#355565;background:#ffffff88;border-radius:50%;font-size:27px;font-weight:300;flex-shrink:0}.contents-tabs{position:sticky;top:0;z-index:2;display:flex;gap:8px;padding:17px 38px;background:#fafcfbf5;border-bottom:1px solid #dfe9ef;backdrop-filter:blur(8px);overflow:auto;scrollbar-width:none}.contents-tabs button{flex-shrink:0;background:transparent;color:#687f8c;padding:9px 16px;font-size:13px;border-radius:24px;border:1px solid #dfe8ed}.contents-tabs button.active{color:white;background:#12688b;border-color:#12688b}.contents-body{padding:8px 38px 30px}.contents-section h2{font-size:19px;font-weight:500;letter-spacing:1px;display:flex;align-items:center;gap:12px;margin:25px 0 17px}.section-index{font-size:12px;color:#2499bd;font-weight:500;letter-spacing:1px}.contents-section h2:after{content:"";flex:1;height:1px;background:#dfebee;margin-left:10px}.toc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toc-card{display:flex;align-items:center;gap:18px;text-align:left;background:#fff;border:1px solid #e0e9ec;border-radius:10px;padding:13px;min-height:111px;box-shadow:0 3px 9px #173b4b03;transition:transform .16s,border-color .16s,box-shadow .16s;color:var(--ink);width:100%}.toc-card:hover{transform:translateY(-2px);border-color:#7fc5dc;box-shadow:0 7px 18px #173b4b0b}.toc-thumb{width:60px;height:84px;object-fit:cover;box-shadow:0 2px 7px #0f35471c;flex-shrink:0}.toc-info{flex:1;min-width:0}.toc-kicker{font-size:10px;color:#248fb2;letter-spacing:1.5px;margin-bottom:7px}.toc-title{font-size:16px;font-weight:500;line-height:1.5;letter-spacing:.3px}.toc-page{display:block;font-size:11px;color:#8a9da8;margin-top:8px}.toc-arrow{font-size:20px;color:#82abbc;padding-right:3px}.contents-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 38px;background:#eff5f7;border-top:1px solid #dce8ed;font-size:10px;color:#8196a0}.contents-bottom button{color:#197d9f;background:none;font-size:12px;min-height:32px}.share-dialog{width:420px;max-width:calc(100vw - 32px);border-radius:18px;padding:42px 30px 25px;text-align:center;overflow:auto;max-height:92dvh}.share-dialog>.close-button{position:absolute;right:14px;top:12px;width:32px;height:32px}.share-dialog h2{font-size:21px;letter-spacing:.3px;font-weight:500;margin:16px 0 10px}.share-intro{font-size:13px;color:#71909e}.share-dialog img{display:block;margin:12px auto 0;width:255px;max-width:100%;height:auto}.qr-caption{font-size:12px;color:#527c8f;margin:4px 0 23px}.primary-button{background:#126c90;color:white;width:100%;padding:13px;border-radius:8px;font-size:14px}.share-tip{font-size:11px;color:#8097a3;margin-bottom:0}.copy-status{font-size:12px;color:#0b7396;margin:9px 0 0;min-height:16px}.zoom-dialog{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border-radius:0;margin:0;background:#163246;color:white;overflow:hidden}.zoom-toolbar{height:61px;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;border-bottom:1px solid #ffffff1f;font-size:14px}.zoom-toolbar>div{display:flex;gap:10px;align-items:center}.zoom-toolbar button{background:#ffffff10;color:white;min-width:40px;min-height:40px;border:1px solid #ffffff20;border-radius:7px;font-size:20px}.zoom-scroll{height:calc(100% - 96px);overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;background:#18384e}.zoom-scroll img{display:block;max-width:none;margin:0 auto;height:auto;box-shadow:0 3px 24px #0003}.zoom-tip{height:35px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#a6c6d8}.zoom-toolbar .close-button{border-radius:50%}#toast{position:fixed;bottom:180px;left:50%;transform:translateX(-50%);background:#f4fbff;color:#174459;padding:12px 24px;border-radius:30px;font-size:13px;z-index:20;box-shadow:0 5px 25px #0003;opacity:0;pointer-events:none;transition:opacity .2s}#toast.visible{opacity:1}
.toc-kicker,.toc-title{display:block}
@media(min-width:1400px){.reader-footer{padding-bottom:21px}.gesture-hint{margin-top:11px}}
@media(max-width:899px){body{min-height:480px}.masthead{height:69px;padding:0 20px}.brand{gap:12px}.wordmark{font-size:29px}.brand-rule{height:26px}.brand-text{font-size:12px;letter-spacing:1px}.brand-text span{font-size:9px;letter-spacing:.5px}.top-button{padding:7px 11px;font-size:12px;min-height:37px}.top-button span{font-size:17px;margin-right:2px}.header-actions{gap:7px}.reader{padding:0 18px;height:calc(100vh - 69px);height:calc(100dvh - 69px);min-height:411px}.reading-meta{height:34px;font-size:10px}.edition{font-size:8px;letter-spacing:1.3px}.stage{padding:3px 0 9px;overflow:visible}.side-arrow{display:none}.book{filter:drop-shadow(0 10px 15px #00111e70)}.gesture-hint{font-size:10px;margin:8px 0}.reader-footer{padding-bottom:max(13px,env(safe-area-inset-bottom))}.control-arrow{min-height:36px;font-size:27px;min-width:42px}.control-bar{gap:4px}.page-count{min-width:111px;font-size:12px;min-height:36px}.zoom-button{min-height:36px}.page-slider{margin:12px auto 11px;width:214px}.footer-note{font-size:8px;gap:10px;letter-spacing:.5px}.contents-dialog{width:100vw;height:100vh;height:100dvh;max-height:none;max-width:none;border-radius:0;margin:0}.contents-heading{padding:30px 22px 22px}.contents-heading h1{font-size:29px}.contents-tabs{padding:13px 20px;gap:7px}.contents-tabs button{font-size:12px;padding:8px 13px}.contents-body{padding:3px 20px 25px}.toc-grid{grid-template-columns:1fr}.toc-card{gap:18px;padding:12px 15px;min-height:108px}.toc-thumb{width:56px;height:79px}.toc-title{font-size:17px}.contents-bottom{padding:13px 20px}.contents-bottom>span{display:none}.zoom-toolbar{padding:10px 16px}.zoom-toolbar>span{max-width:50%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px}.zoom-toolbar>div{gap:6px}.zoom-toolbar button{min-width:36px;min-height:36px}.share-dialog{padding:43px 26px 22px}.share-dialog h2{font-size:19px}}
@media(max-height:650px) and (max-width:899px){.masthead{height:58px}.reader{height:calc(100dvh - 58px)}.reading-meta{height:28px}.gesture-hint{margin:5px 0}.page-slider{margin:9px auto}.footer-note{display:none}.reader-footer{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

dialog:not([open]){display:none}.book{min-width:110px;min-height:156px}

/* Single-page edge-to-edge reading, on every screen size. */
html,body{width:100%;height:100%;min-height:0;overflow:hidden}
body{height:100vh;height:100dvh;background:#0b2335}
.reader{position:fixed;inset:0;margin:0;padding:0;width:100%;max-width:none;height:100vh;height:100dvh;min-height:0;display:block}
.stage{width:100%;height:100%;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.book{min-width:0;min-height:0;filter:none;touch-action:pan-y pinch-zoom}
.book:after,.paper:after{display:none}
.spread,.paper{border-radius:0}
.paper{cursor:pointer}
.paper img{object-fit:contain}
.masthead{position:fixed;top:0;left:0;right:0;max-width:none;z-index:12;height:auto;min-height:0;border:0;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;pointer-events:none;background:linear-gradient(#071b2da8,transparent);transition:opacity .2s,transform .2s}
.masthead>*{pointer-events:auto}
.brand{gap:10px;background:#0b2335d9;padding:6px 12px;border-radius:9px;backdrop-filter:blur(12px)}
.wordmark{font-size:26px}.brand-text{font-size:12px}.brand-text span,.brand-rule{display:none}
.header-actions{gap:6px}.top-button{min-height:40px;padding:7px 12px;font-size:13px;color:#fff;border:1px solid #ffffff30;background:#0b2335e6;backdrop-filter:blur(12px)}
.reading-meta,.gesture-hint,.footer-note,.page-slider{display:none}
.reader-footer{position:fixed;bottom:calc(10px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:12;padding:4px 7px;border-radius:12px;background:#0b2335eb;border:1px solid #ffffff30;box-shadow:0 3px 15px #0003;backdrop-filter:blur(12px);transition:opacity .2s,bottom .2s}
.control-bar{gap:3px}.control-arrow{min-height:38px;min-width:42px;border:0}.page-count{min-width:105px;min-height:38px;font-size:13px}.control-rule{margin:0 3px}.zoom-button{min-height:38px;padding:0 8px}
.side-arrow{position:fixed;top:50%;width:42px;height:58px;display:block;background:#0b2335b3;border-color:#ffffff35;transition:opacity .2s;z-index:11}.side-arrow.previous{left:12px}.side-arrow.next{right:12px}
.controls-hidden .masthead{opacity:0;transform:translateY(-10px);pointer-events:none}.controls-hidden .masthead *{pointer-events:none}
.controls-hidden .reader-footer{opacity:0;bottom:0;pointer-events:none}.controls-hidden .side-arrow{opacity:0;pointer-events:none}
#toast{bottom:86px;width:max-content;max-width:calc(100vw - 32px);font-size:12px;text-align:center;padding:10px 16px;z-index:18}
@media(max-width:600px){.masthead{padding-left:8px;padding-right:8px;gap:6px}.brand{padding:7px 9px;gap:0}.wordmark{font-size:23px}.brand-text{display:none}.top-button{padding:7px 10px;min-height:38px;font-size:12px}.top-button span{font-size:16px}.header-actions{gap:5px}.side-arrow{display:none}.reader-footer{max-width:calc(100vw - 20px)}.control-arrow{min-width:38px}.page-count{min-width:96px}.zoom-button{font-size:12px}}
