:root{color-scheme:light;--paper:#f6f3ed;--ink:#202c30;--muted:#747a77;--line:#dddcd3;--accent:#9b4937;--reader-size:19px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}
.topbar{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:13px;font-family:Georgia,"Songti SC",serif;font-size:24px;letter-spacing:3px}.brand-mark{display:grid;place-items:center;background:var(--ink);color:var(--paper);width:37px;height:44px;font-size:25px;letter-spacing:0}.brand small{display:block;font:9px -apple-system,sans-serif;letter-spacing:2.1px;margin-top:5px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:20px;font-size:12px}.network{color:var(--muted)}.network:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#6a8976;margin-right:7px}.network.offline:before{background:#ad7946}.quiet{border:0;background:none;padding:10px 5px;color:var(--muted)}.quiet:hover{color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--ink);background:var(--ink);color:white;border-radius:3px;padding:13px 20px;font-size:14px;cursor:pointer}.button:hover{background:#37484e}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.secondary:hover{border-color:var(--ink)}
.library{max-width:1220px;margin:auto;padding:64px 5vw 40px}.eyebrow{color:var(--accent);font-size:11px;letter-spacing:2px;font-weight:600;text-transform:uppercase}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px}.hero h1{font:48px/1.2 Georgia,"Songti SC",serif;font-weight:400;margin:16px 0}.hero p{color:var(--muted);line-height:1.8;font-size:14px;margin:0}.hero-number{font:68px/1 Georgia,serif;color:#c4c4b8;text-align:right}.hero-number small{display:block;font:11px/2 -apple-system,sans-serif;letter-spacing:1px;color:var(--muted)}.library-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:36px}.tabs{display:flex;gap:24px;font-size:13px}.tabs button{background:none;border:0;padding:6px 0;color:var(--muted)}.tabs button.active{color:var(--ink);border-bottom:2px solid var(--accent)}.search{width:250px;max-width:45%;padding:9px 12px;border:1px solid var(--line);border-radius:3px;background:transparent;font-size:13px}.book-card{display:grid;grid-template-columns:230px 1fr;gap:46px;padding:0 0 38px;margin-bottom:32px;border-bottom:1px solid var(--line)}.cover{position:relative;overflow:hidden;min-height:312px;background:#263e48;color:#e6dfcb;border-radius:2px 5px 5px 2px;padding:28px 22px;box-shadow:8px 10px 25px #1c2c301a,inset 5px 0 8px #0003;display:flex;flex-direction:column;justify-content:space-between}.cover:after{content:"";position:absolute;inset:0;border-left:7px solid #0002;pointer-events:none}.cover .cover-top{font:9px/1.6 -apple-system,sans-serif;letter-spacing:2px;z-index:1}.cover h2{font:27px/1.15 Georgia,serif;font-weight:400;margin:18px 0;z-index:1}.cover .cover-author{font:11px/1.5 Georgia,serif;z-index:1}.cover svg{position:absolute;left:0;bottom:0;width:100%;height:60%;opacity:.25}.book-info{padding:10px 0;min-width:0}.book-meta{display:flex;gap:16px;align-items:center;color:var(--muted);font-size:11px;letter-spacing:.5px}.tag{padding:5px 9px;background:#e8e8dd;color:#596957;border-radius:2px}.book-info h2{font:32px/1.25 Georgia,serif;font-weight:400;max-width:620px;margin:17px 0 10px}.authors{color:var(--muted);font-size:13px}.description{font-size:14px;color:#636d6d;line-height:1.9;max-width:600px;margin:24px 0}.book-stats{font-size:12px;color:var(--muted);display:flex;gap:24px;flex-wrap:wrap;margin:0 0 24px}.book-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.download-status{color:var(--muted);font-size:12px;margin-top:14px;line-height:1.7}.download-progress{height:3px;width:100%;margin-top:12px;accent-color:var(--accent)}.library-foot{display:flex;justify-content:space-between;gap:18px;font-size:11px;line-height:1.8;color:var(--muted)}.library-foot a,.library-foot button{font-size:11px;text-decoration:underline}.empty{padding:40px 0;color:var(--muted)}
.login{max-width:1080px;margin:70px auto;display:grid;grid-template-columns:1.2fr 1fr;gap:100px;padding:30px 5vw}.login-intro{padding-top:35px}.login-intro h1{font:52px/1.3 Georgia,"Songti SC",serif;font-weight:400;margin:20px 0}.login-intro p{max-width:340px;color:var(--muted);font-size:15px;line-height:1.9}.login-decoration{width:190px;height:3px;background:var(--accent);margin-top:42px}.login-form{background:#fff9;border:1px solid var(--line);padding:36px;border-radius:4px}.login-form h2{font:25px Georgia,"Songti SC",serif;margin:0 0 10px;font-weight:400}.login-form p{font-size:13px;color:var(--muted);line-height:1.7}.login-form label{display:block;font-size:13px;margin-top:24px}.login-form input{display:block;width:100%;border:1px solid var(--line);background:white;padding:13px;margin-top:8px;border-radius:3px}.login-form .button{width:100%;margin-top:25px}.error{color:#a2372b!important;min-height:22px}.loading{padding:80px 5vw;color:var(--muted)}
.reader-toolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 5vw;background:#f6f3edf5;backdrop-filter:blur(15px);border-bottom:1px solid var(--line);font-size:12px}.reader-tools{display:flex;align-items:center;gap:18px}.reader-toolbar .button{padding:8px 12px;font-size:12px}.reader-tools button{border:0;background:transparent;padding:8px 3px;color:var(--ink)}.reader-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:265px minmax(0,1fr);gap:36px;padding:0 4vw}.toc{position:sticky;top:63px;max-height:calc(100dvh - 80px);overflow:auto;padding:30px 20px 30px 0;border-right:1px solid var(--line);align-self:start}.toc h2{font-size:11px;font-weight:500;letter-spacing:1px;color:var(--muted);margin:0 0 20px}.toc a{display:block;font-size:12px;line-height:1.5;padding:9px 10px;margin:2px 0;color:var(--muted);border-radius:3px}.toc a.current{background:#e8e9df;color:var(--ink)}.toc a.section-link{font-size:11px;padding-left:22px}.reading{min-width:0;padding:44px 0 70px;max-width:850px;width:100%;margin:auto}.reading article{font-family:Georgia,"Times New Roman",serif;font-size:var(--reader-size);line-height:1.8;overflow-wrap:break-word}.reading h1{font-size:2.1em;line-height:1.2;font-weight:400;margin:0 0 1.1em}.reading h2{font-size:1.45em;line-height:1.35;font-weight:400;margin-top:2.2em}.reading h3{font-size:1.12em;line-height:1.5;margin-top:1.9em}.reading p{margin:1.1em 0}.reading [id^="source-p-"]{font:10px/1.7 -apple-system,sans-serif;color:#929489;border-top:1px solid #e6e5dc;padding-top:10px;margin:28px 0 14px}.reading [id^="source-p-"] p{margin:0}.reading figure{margin:30px 0;padding:20px;background:#fff8;border:1px solid var(--line)}.reading img{max-width:100%;height:auto;display:block;margin:auto}.reading figcaption{font-size:.85em;line-height:1.6;margin-top:16px}.reading figure figcaption:before{content:none}.reading a[data-ref]{color:#98503d;text-decoration:underline;text-decoration-color:#98503d66;text-underline-offset:3px}.math.display{display:block;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:18px 2px;margin:18px 0;overscroll-behavior-x:contain}.math.display mjx-container{min-width:min-content;margin:0!important}.math.inline{display:inline-block;max-width:100%;overflow-x:auto;vertical-align:middle;line-height:normal}.math svg{max-width:none}.math.display svg{height:auto}.math mjx-container{outline:none}.equation-anchor{display:block;scroll-margin-top:100px}.table-scroll{max-width:100%;overflow-x:auto;margin:25px 0}table{border-collapse:collapse;font-size:.85em;min-width:70%}td,th{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left}th{border-top:1px solid var(--ink)}.chapter-nav{border-top:1px solid var(--line);margin-top:55px;padding-top:20px;display:flex;justify-content:space-between;gap:15px;font-size:13px}.reader-footer{font-size:11px;color:var(--muted);margin-top:25px}.reading [id]{scroll-margin-top:90px}.resume-note{background:#e8e9df;padding:12px 16px;font-size:12px;margin-bottom:25px;border-radius:3px}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;box-shadow:0 5px 25px #0002;max-width:90vw;padding:14px 22px;font-size:13px;border-radius:5px;z-index:40}
dialog{width:min(860px,94vw);max-height:88dvh;padding:0;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);box-shadow:0 20px 90px #0004}dialog::backdrop{background:#162b3480;backdrop-filter:blur(3px)}dialog header,dialog footer{position:sticky;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--paper);z-index:2}dialog header{top:0;border-bottom:1px solid var(--line)}dialog header strong{font-size:14px;font-weight:500}dialog footer{bottom:0;border-top:1px solid var(--line)}#reference-body{padding:20px 24px;font:18px/1.7 Georgia,serif;overflow:auto}#reference-body img{max-width:100%;height:auto}#reference-body figure{margin:0}#reference-body figcaption{font-size:14px;line-height:1.6}#reference-body .math{max-width:100%}#reference-body a{color:var(--accent)}
@media(min-width:981px){#toc-toggle{display:none}}
@media(max-width:980px){.reader-layout{display:block;padding:0 6vw}.toc{display:none;position:fixed;top:0;left:0;height:100dvh;max-height:100dvh;width:min(340px,88vw);background:var(--paper);z-index:25;padding:30px;box-shadow:8px 0 50px #0003}.toc.open{display:block}.reading{max-width:720px}.login{gap:45px}.hero h1{font-size:40px}}
@media(max-width:600px){.topbar{height:72px;padding:0 6vw}.brand{font-size:20px}.brand-mark{width:31px;height:38px}.top-actions{gap:10px;font-size:11px}.library{padding:38px 6vw}.hero{margin-bottom:28px}.hero h1{font-size:34px}.hero p{font-size:12px;max-width:240px}.hero-number{font-size:44px}.library-tools{gap:12px;flex-wrap:wrap}.tabs{gap:18px}.search{max-width:none;width:100%;order:2}.book-card{grid-template-columns:95px 1fr;gap:20px;padding-bottom:28px}.cover{min-height:150px;height:150px;padding:12px 10px}.cover h2{font-size:15px;margin:8px 0}.cover .cover-top{font-size:5px;letter-spacing:1px}.cover .cover-author{font-size:6px}.book-info{padding:0}.book-info h2{font-size:23px;margin-top:12px}.book-meta{gap:10px;font-size:9px}.authors{font-size:11px;line-height:1.6}.description{font-size:12px;margin:15px 0}.book-stats{gap:9px;font-size:10px;margin-bottom:18px}.book-actions{gap:8px}.button{padding:11px 13px;font-size:12px}.book-actions .quiet{font-size:11px}.download-status{font-size:10px}.library-foot{display:block}.library-foot>span{display:block;margin-bottom:10px}.login{display:block;margin:30px auto;padding:0 6vw}.login-intro{padding:0}.login-intro h1{font-size:36px;margin:15px 0}.login-intro p{font-size:13px}.login-decoration{display:none}.login-form{padding:25px;margin-top:30px}.reader-toolbar{padding:8px 6vw}.reader-tools{gap:12px}.reader-tools button{font-size:12px}.reading{padding-top:28px}.reading h1{font-size:1.75em}.reading figure{padding:12px}.reading article{font-size:calc(var(--reader-size) - 1px);line-height:1.8}dialog{width:96vw;max-height:92dvh}dialog header,dialog footer{padding:12px 16px}#reference-body{padding:15px}.chapter-nav{font-size:11px}.reader-footer{font-size:10px}}
.math-hint{display:block;font:10px/1.5 -apple-system,sans-serif;color:var(--muted);margin:-8px 0 16px}
@media(max-width:600px){.hero-number{flex:0 0 85px}.hero-number small{white-space:nowrap;font-size:9px;letter-spacing:0}.cover h2{font-size:12px}}
@media(prefers-reduced-motion:no-preference){.book-card{animation:enter .35s ease-out}@keyframes enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}
