:root{--ink:#173b35;--ink-2:#355c54;--paper:#f5f1e8;--paper-2:#fffdf8;--mint:#c9e4d6;--mint-2:#e4f1e9;--coral:#e8755d;--coral-2:#f9ddd4;--gold:#dda94b;--line:rgba(23,59,53,.14);--shadow:0 20px 60px rgba(26,56,49,.10);--sidebar:286px;--body-size:17px}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif;font-size:var(--body-size);line-height:1.82}button,input,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.reading-progress{position:fixed;z-index:100;top:0;left:0;right:0;height:4px;background:transparent}.reading-progress span{display:block;width:0;height:100%;background:var(--coral)}
.is-loading{overflow:hidden}.app-loader{position:fixed;z-index:200;inset:0;display:grid;place-items:center;background:var(--paper);opacity:1;visibility:visible;transition:opacity .08s ease,visibility .08s ease}.app-loader-inner{text-align:center;transform:translateY(-3vh)}.app-loader strong{font:900 34px/1 Arial,sans-serif;letter-spacing:-1px}.app-loader strong span{color:var(--coral)}.app-loader p{margin:18px 0 12px;color:#6b857d;font-size:13px;letter-spacing:.12em;line-height:1.65}.app-loader p small{display:block;margin-top:4px;color:#8da099;font-size:11px;letter-spacing:.08em}.app-loader-track{width:170px;height:3px;border-radius:99px;background:rgba(23,59,53,.12);overflow:hidden}.app-loader-track i{display:block;width:42%;height:100%;border-radius:inherit;background:var(--coral);animation:loader-slide 2.2s ease-in-out infinite alternate}.app-ready .app-loader{opacity:0;visibility:hidden;pointer-events:none}@keyframes loader-slide{from{transform:translateX(-10%)}to{transform:translateX(150%)}}
.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:var(--sidebar);background:#173b35;color:#f7f1e6;padding:34px 24px 24px;display:flex;flex-direction:column;overflow:auto}.brand{padding:0 8px 24px}.brand-mark{display:inline-flex;text-decoration:none;font:900 28px/1 Arial,sans-serif;letter-spacing:-1px}.brand-mark span{color:var(--coral)}.brand p{margin:9px 0 0;color:#b9d2c8;font-size:13px;letter-spacing:.12em}.search-box{height:46px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);border-radius:12px;display:flex;align-items:center;gap:9px;padding:0 12px;margin-bottom:24px}.search-box input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:white;font-size:14px}.search-box input::placeholder{color:#a9c0b7}.search-box kbd{font-size:10px;color:#a9c0b7;border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:1px 5px}.nav-label{padding:0 10px;margin:16px 0 6px;color:#799b90;text-transform:uppercase;font-size:10px;letter-spacing:.18em;font-weight:800}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:1px 0;border-radius:9px;color:#d8e5df;text-decoration:none;font-size:13px;line-height:1.35;transition:.2s}.nav-link span{width:22px;color:#7ca295;font:700 11px/1.2 Arial}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.09);color:white}.nav-link.active span{color:var(--coral)}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.11);padding-top:15px}.side-action{width:100%;background:none;border:0;padding:8px;text-align:left;color:#b9d2c8;font-size:13px;cursor:pointer}.side-action:hover{color:white}.side-action span{display:inline-grid;place-items:center;width:24px}.book-switch{display:block;text-decoration:none}.mobile-bar,.scrim{display:none}
main{margin-left:var(--sidebar);overflow:hidden}.hero{min-height:700px;padding:90px clamp(38px,7vw,110px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.75fr);gap:8vw;align-items:center;background:radial-gradient(circle at 85% 16%,rgba(201,228,214,.75),transparent 29%),linear-gradient(145deg,#f8f3e9 0%,#efe7d8 100%);border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 16px;color:#557b71;text-transform:uppercase;font-size:11px;font-weight:900;letter-spacing:.18em}.hero h1{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(54px,6.5vw,92px);line-height:.98;letter-spacing:-.055em;margin:0}.hero h1 em{color:var(--coral);font-style:normal}.hero-lead{max-width:620px;margin:32px 0;color:#45665f;font-size:clamp(17px,1.6vw,21px);line-height:1.85}.hero-actions{display:flex;gap:24px;align-items:center}.primary-btn,.secondary-btn{border:0;border-radius:999px;padding:13px 22px;cursor:pointer;text-decoration:none;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:18px}.primary-btn{background:var(--ink);color:white;box-shadow:0 8px 22px rgba(23,59,53,.18)}.primary-btn:hover{transform:translateY(-1px)}.secondary-btn{background:var(--mint-2)}.text-btn{border:0;background:transparent;font-weight:800;cursor:pointer}.stats{display:flex;gap:26px;margin-top:44px;color:#718b84;font-size:12px}.stats strong{color:var(--ink);font-size:18px;margin-right:4px}.hero-card{position:relative;background:var(--ink);color:white;border-radius:7px 45px 7px 45px;padding:48px 42px;box-shadow:var(--shadow);transform:rotate(1.2deg)}.card-index{color:#8fb3a7;font-size:11px;letter-spacing:.15em}.hero-card ol{list-style:none;padding:0;margin:22px 0}.hero-card li{padding:17px 0;border-bottom:1px solid rgba(255,255,255,.12);font-family:Georgia,"Noto Serif SC",serif;font-size:18px}.hero-card li span{color:var(--coral);font:700 11px Arial;margin-right:16px}.scribble{color:#f1c568;text-align:right;margin-top:25px;font-family:"KaiTi",serif;transform:rotate(-2deg)}
.route-section{padding:95px clamp(38px,7vw,110px);background:var(--paper-2)}.route-section h2{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(34px,4vw,58px);line-height:1.2;margin:0 0 42px}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.route-card{position:relative;min-height:128px;padding:22px;border:1px solid var(--line);border-radius:15px;background:#fffdfa;text-decoration:none;overflow:hidden;transition:.2s}.route-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(26,56,49,.08);border-color:var(--mint)}.route-card span{display:block;color:#789088;font-size:11px;margin-bottom:7px}.route-card strong{font-size:18px}.route-card i{position:absolute;right:16px;bottom:10px;color:var(--coral);font-style:normal;font-size:25px}
.search-status{position:sticky;z-index:5;top:0;background:var(--gold);padding:12px clamp(38px,7vw,110px);font-size:13px;font-weight:800}.chapter-group{padding:100px clamp(38px,7vw,110px);border-top:1px solid var(--line)}.chapter-group:nth-child(odd){background:#f8f5ed}.chapter-head{display:grid;grid-template-columns:90px 1fr;gap:22px;margin-bottom:48px}.chapter-number{color:var(--coral);font:900 12px Arial;letter-spacing:.15em;padding-top:12px}.chapter-head h2{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(39px,4.5vw,64px);line-height:1.15;margin:0}.page-card{position:relative;background:var(--paper-2);border:1px solid var(--line);border-radius:22px;margin:0 0 34px;padding:clamp(28px,5vw,62px);box-shadow:0 8px 30px rgba(26,56,49,.045)}.page-card::before{content:attr(data-page);position:absolute;right:26px;top:20px;color:#b4c3bd;font:700 11px Arial;letter-spacing:.12em}.page-title{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(28px,3.3vw,45px);line-height:1.25;margin:0 50px 12px 0}.page-intro{font-size:18px;color:#59766e;margin:0 0 34px}.page-body{max-width:850px}.page-body p{margin:12px 0}.page-body h3{font-size:19px;line-height:1.4;margin:38px 0 15px;padding-top:20px;border-top:1px solid var(--line)}.page-body h3.method{border:0;background:var(--mint-2);border-radius:11px;padding:12px 16px;margin-top:28px}.example{color:#71877f;font-size:14px;background:#f2eee5;border-radius:8px;padding:7px 11px!important}.quote{font-family:Georgia,"Noto Serif SC",serif;font-size:21px;color:var(--ink-2);border-left:4px solid var(--coral);padding:10px 0 10px 20px;margin:25px 0!important}.checkline{display:flex;align-items:flex-start;gap:10px;margin:8px 0;cursor:pointer}.checkline input{appearance:none;flex:0 0 19px;width:19px;height:19px;margin-top:6px;border:1.5px solid #86a59b;border-radius:5px;background:white}.checkline input:checked{background:var(--ink);box-shadow:inset 0 0 0 4px white}.checkline:has(input:checked) span{text-decoration:line-through;color:#82958f}.page-note{margin-top:42px;padding-top:26px;border-top:1px dashed #aebdb7}.page-note label{font-size:12px;font-weight:900;letter-spacing:.08em}.page-note textarea{display:block;width:100%;min-height:84px;margin-top:10px;resize:vertical;border:1px solid var(--line);border-radius:11px;background:#f8f4ec;padding:14px;outline:0}.page-note textarea:focus{border-color:#6f998b;box-shadow:0 0 0 3px var(--mint-2)}.card-actions{display:flex;justify-content:flex-end;margin-top:18px}.done-btn{border:1px solid var(--line);background:white;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:800;cursor:pointer}.done-btn.done{background:var(--mint);border-color:var(--mint);color:var(--ink)}.page-card.completed{border-color:#9bc5b5}.page-card.completed::after{content:"✓ 已完成";position:absolute;right:26px;bottom:24px;color:#4b806e;font-size:11px;font-weight:900}.hidden-by-search{display:none}.no-results{padding:70px;text-align:center;color:#69827a}
footer{background:var(--ink);color:white;padding:110px clamp(38px,7vw,110px);text-align:center}footer .footer-kicker{color:#91b3a8;text-transform:uppercase;font-size:11px;letter-spacing:.2em}footer h2{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(38px,5vw,67px);line-height:1.2;margin:20px 0}footer>p:not(.footer-kicker){color:#b8cec6;max-width:650px;margin:0 auto 28px}footer a{color:#f2bf62;text-decoration:none;font-weight:800}
.timer-dialog{width:min(500px,calc(100% - 32px));border:0;border-radius:24px;padding:42px;background:var(--paper-2);box-shadow:0 30px 100px rgba(8,31,26,.35);text-align:center}.timer-dialog::backdrop{background:rgba(11,37,31,.64);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:28px;cursor:pointer}.timer-dialog h2{font-family:Georgia,"Noto Serif SC",serif;font-size:35px;margin:0 0 22px}.timer-presets{display:flex;justify-content:center;gap:9px}.timer-presets button{border:1px solid var(--line);background:white;border-radius:999px;padding:7px 14px;cursor:pointer}.timer-presets button.active{background:var(--mint)}.timer-display{font:800 clamp(66px,13vw,92px)/1 Arial;margin:28px 0 20px;letter-spacing:-.05em}.timer-note{color:#668078;font-size:14px}.timer-controls{display:flex;justify-content:center;gap:10px;margin-top:25px}
body.large-text{--body-size:19px}.large-text .page-body{max-width:800px}.large-text .page-body p{line-height:1.95}
.quick-toc-page{overflow:hidden}.quick-toc-page::after{content:"DIRECTORY";position:absolute;right:-18px;top:78px;color:rgba(23,59,53,.035);font:900 80px/1 Arial;letter-spacing:-.06em;transform:rotate(90deg);transform-origin:center;pointer-events:none}.quick-toc-intro{max-width:680px}.quick-toc-quote{display:flex;align-items:center;gap:16px;margin:28px 0 34px;padding:16px 20px;border-left:4px solid var(--coral);background:linear-gradient(90deg,var(--coral-2),transparent);font-family:Georgia,"Noto Serif SC",serif;color:var(--ink-2)}.quick-toc-quote::before{content:"→";color:var(--coral);font-family:Arial}.quick-toc{position:relative;display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,minmax(62px,auto));grid-template-columns:repeat(2,minmax(0,1fr));column-gap:46px;border-top:1px solid var(--line);margin-top:24px}.quick-toc-link{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0;padding:14px 2px;border-bottom:1px solid var(--line);text-decoration:none;transition:.18s}.quick-toc-link:hover{padding-left:8px;color:var(--coral);border-color:var(--coral)}.quick-toc-no{color:var(--coral);font:900 11px/1 Arial;letter-spacing:.08em}.quick-toc-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-toc-page-no{color:#789088;font-size:12px;white-space:nowrap}.quick-toc-link.tools{background:var(--mint-2);border-radius:10px;margin-top:8px;padding-left:12px;padding-right:12px;border-bottom:0}.quick-toc-help{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:34px}.quick-toc-help p{margin:0;padding:14px 16px;border-radius:10px;background:#f3efe6;color:#587169;font-size:14px}.quick-toc-help strong{color:var(--ink)}
.chapter-group.original-group{padding:clamp(34px,6vw,86px);display:grid;gap:clamp(28px,5vw,64px);background:#e9e6df;border-top:1px solid rgba(23,59,53,.10)}.original-page{position:relative;width:min(100%,900px);margin:0 auto;padding:0;border:1px solid rgba(23,59,53,.13);border-radius:3px;overflow:hidden;background:white;box-shadow:0 18px 55px rgba(26,56,49,.12);scroll-margin-top:24px;aspect-ratio:596/843}.original-page::before,.original-page::after{display:none}.original-page img{display:block;width:100%;height:auto;aspect-ratio:596/843;object-fit:contain;background:white}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.vector-page svg{display:block;width:100%;height:auto;background:#fff;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}.pdf-text{font-family:"Noto Sans CJK SC","Microsoft YaHei","PingFang SC",sans-serif;dominant-baseline:alphabetic;user-select:text;-webkit-user-select:text}.pdf-vector{vector-effect:non-scaling-stroke}
.page-read-btn{position:absolute;z-index:4;right:18px;bottom:18px;border:1px solid rgba(47,113,155,.24);border-radius:999px;background:rgba(255,255,255,.94);padding:9px 16px;color:#315d73;font-size:13px;font-weight:800;line-height:1.25;cursor:pointer;box-shadow:0 4px 14px rgba(29,65,82,.10);backdrop-filter:blur(4px);transition:background .16s,border-color .16s,color .16s,transform .16s}.page-read-btn:hover{transform:translateY(-1px);border-color:#2f719b}.page-read-btn:focus-visible{outline:2px solid #e8755d;outline-offset:2px}.page-read-btn.done{background:#dcefe5;border-color:#79a994;color:#245a48}.original-page.read-complete{border-color:#8fb9aa;box-shadow:0 18px 55px rgba(42,104,83,.16)}
.toc-page-link{cursor:pointer;outline:none}.toc-link-hit{fill:transparent;stroke:transparent;pointer-events:all}.toc-page-link:focus-visible .toc-link-hit{stroke:#e8755d;stroke-width:1.5}
.book-shortcuts{display:grid;gap:7px;margin:-10px 0 14px}.book-shortcut{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid rgba(242,191,98,.7);border-radius:10px;background:rgba(242,191,98,.12);color:#f4d38d;text-decoration:none;font-size:12px;font-weight:800;line-height:1.35}.book-shortcut.primary{border-color:#e8755d;background:#e8755d;color:white;box-shadow:0 5px 15px rgba(232,117,93,.22)}.book-shortcut:hover{filter:brightness(1.08);transform:translateY(-1px)}.book-shortcut span{width:18px;text-align:center}
.mobile-menu-hint{display:none}@media(max-width:760px){.mobile-menu-hint{display:flex;width:calc(100% - 20px);margin:72px 10px 0;padding:12px 14px;border:0;border-radius:13px;background:linear-gradient(135deg,#e8755d,#dda94b);color:white;align-items:center;gap:11px;text-align:left;box-shadow:0 8px 22px rgba(151,85,55,.22);cursor:pointer}.mobile-menu-hint-icon{font-size:22px;line-height:1}.mobile-menu-hint>span:nth-child(2){display:grid;flex:1;min-width:0}.mobile-menu-hint strong{font-size:14px;line-height:1.35}.mobile-menu-hint small{font-size:10px;line-height:1.5;opacity:.9}.mobile-menu-hint-arrow{font-size:11px;font-weight:900;white-space:nowrap}}
@media(min-width:761px) and (max-width:1100px){:root{--sidebar:200px}.sidebar{padding:22px 12px 16px}.brand{padding:0 6px 14px}.brand-mark{font-size:23px}.brand p{margin-top:6px;font-size:10px;letter-spacing:.08em}.search-box{height:38px;margin-bottom:17px;padding:0 9px;gap:6px}.search-box input{font-size:11px}.search-box kbd{display:none}.book-shortcuts{gap:5px;margin:-5px 0 10px}.book-shortcut{padding:7px 8px;border-radius:8px;font-size:10px}.book-shortcut span{width:14px}.nav-label{padding:0 7px;margin:10px 0 4px;font-size:9px}.nav-link{gap:6px;padding:6px 7px;border-radius:7px;font-size:11px}.nav-link span{width:19px;font-size:9px}.nav-sub{margin-left:22px;padding-left:7px}.nav-sub-link{padding:3px 2px;font-size:9px}.sidebar-footer{padding-top:9px}.side-action{padding:6px;font-size:10px}.side-action span{width:19px}.chapter-group.original-group{padding:26px 18px;gap:28px}.page-read-btn{right:10px;bottom:10px;padding:7px 12px;font-size:11px}}
.interactive-check{cursor:pointer;outline:none}.check-hit{fill:transparent;pointer-events:all}.check-fill{fill:#dcebf3;opacity:0;transition:opacity .15s}.check-mark{fill:none;stroke:#2f719b;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .15s}.check-focus{fill:none;stroke:#e8755d;stroke-width:1.5;opacity:0}.interactive-check.checked .check-fill,.interactive-check.checked .check-mark{opacity:1}.interactive-check:focus .check-focus{opacity:1}@media(prefers-reduced-motion:reduce){.check-fill,.check-mark{transition:none}}
@media(max-width:1050px){.route-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr;padding-top:80px}.hero-card{max-width:600px}.hero h1{font-size:70px}}
@media(max-width:1050px){.quick-toc{grid-auto-flow:row;grid-template-columns:1fr;grid-template-rows:none;column-gap:0}.quick-toc-help{grid-template-columns:1fr}.quick-toc-name{white-space:normal}}
@media(max-width:760px){:root{--sidebar:0px}.mobile-bar{display:flex;position:fixed;z-index:25;top:0;left:0;right:0;height:58px;background:rgba(245,241,232,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);align-items:center;justify-content:space-between;padding:0 14px}.mobile-title{text-decoration:none;font-weight:900;font-size:14px}.icon-btn{border:0;background:transparent;font-size:22px;width:38px;height:38px}.sidebar{width:min(310px,86vw);transform:translateX(-105%);transition:.25s}.sidebar.open{transform:translateX(0)}.scrim{position:fixed;z-index:20;inset:0;background:rgba(11,37,31,.5);border:0}.scrim.show{display:block}.hero{min-height:auto;padding:110px 22px 70px;gap:55px}.hero h1{font-size:clamp(48px,14vw,70px)}.hero-lead{font-size:17px}.hero-actions{align-items:flex-start;flex-direction:column;gap:14px}.stats{gap:15px;flex-wrap:wrap}.hero-card{padding:34px 25px}.route-section,.chapter-group{padding:70px 20px}.route-grid{grid-template-columns:1fr}.chapter-head{grid-template-columns:1fr;gap:4px;margin-bottom:30px}.chapter-number{padding:0}.page-card{border-radius:16px;margin-bottom:22px;padding:30px 22px}.page-title{font-size:31px;margin-right:35px}.page-intro{font-size:16px}.search-status{top:58px;padding:10px 20px}footer{padding:85px 22px}.timer-dialog{padding:38px 22px}.page-card.completed::after{display:none}}
@media(max-width:760px){.quick-toc-page::after{display:none}.quick-toc{grid-auto-flow:row;grid-template-columns:1fr;grid-template-rows:none;gap:0}.quick-toc-link{grid-template-columns:38px minmax(0,1fr) auto}.quick-toc-help{grid-template-columns:1fr}.quick-toc-quote{align-items:flex-start}.quick-toc-name{white-space:normal}}
@media(max-width:760px){.chapter-group.original-group{padding:18px 10px;gap:18px}.original-page{width:100%;border-radius:1px;box-shadow:0 8px 28px rgba(26,56,49,.10);scroll-margin-top:70px}.page-read-btn{right:10px;bottom:10px;padding:7px 12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.app-loader-inner{width:min(330px,calc(100vw - 44px));transform:translateY(-2vh)}.loader-badge{display:inline-block;margin-bottom:18px;padding:6px 11px;border-radius:999px;background:#e7efe9;color:#456d62;font-size:10px;font-weight:900;letter-spacing:.12em}.app-loader strong{display:block}.app-loader h2{margin:20px 0 8px;font-family:Georgia,"Noto Serif SC",serif;font-size:22px;letter-spacing:-.02em}.app-loader #appLoaderMessage{min-height:22px;margin:0 0 18px;color:#6b857d;font-size:12px;letter-spacing:.06em}.app-loader-track{width:100%;height:6px}.app-loader-track i{width:12%;animation:none;transition:width .45s ease-out}.loader-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;color:#6b857d}.loader-meta span{min-width:34px;text-align:left;font:800 12px/1 Arial}.loader-meta small{text-align:right;font-size:10px;letter-spacing:.04em}.app-loader .loader-calm{margin:26px 0 0;color:#91a39d;font-size:11px;letter-spacing:.06em}.app-loader.returning .loader-calm{display:none}
.app-loader-track i{transition-duration:.32s}
.app-loader-track i{width:12%!important;transition:none!important}.app-loader.progressing .app-loader-track i{transition:width .32s ease-out!important}.app-loader.returning .app-loader-track i{width:38%!important}
