:root{--ink:#17243f;--muted:#66728a;--blue:#2865e8;--pale:#edf4ff;--line:#dce4f2;--paper:#fff;--serif:"Songti SC","Noto Serif SC",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#f6f8fc;font-family:var(--sans);line-height:1.75}.topbar{height:64px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{font-family:var(--serif);font-size:20px;font-weight:700;color:var(--ink);text-decoration:none}.topbar nav{display:flex;gap:8px}.topbar nav a{padding:7px 12px;color:var(--muted);text-decoration:none;border-radius:8px}.topbar nav a.active,.topbar nav a:hover{color:var(--blue);background:var(--pale)}.textbook-layout{display:grid;grid-template-columns:310px minmax(0,1fr);max-width:1540px;margin:auto}.toc{position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto;padding:24px 22px;border-right:1px solid var(--line);background:#fff}.toc-head{font-weight:700;font-size:18px;margin-bottom:18px}.toc section{margin-bottom:20px}.toc h3{font-size:13px;color:var(--muted);letter-spacing:.08em;margin:0 0 7px}.toc a{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;color:#42506a;text-decoration:none;border-radius:6px;font-size:13px}.toc a:hover{background:var(--pale);color:var(--blue)}.toc b{font-weight:500;color:#8b96aa}.textbook-layout main{min-width:0}.hero{min-height:560px;padding:9vw 7vw 6vw;background:linear-gradient(145deg,#eaf2ff,#f8fbff 52%,#e9f4ff);display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:50px;align-items:center}.eyebrow{color:var(--blue);font-size:12px;letter-spacing:.15em;font-weight:700}.hero h1{font:700 clamp(42px,5.4vw,82px)/1.2 var(--serif);margin:20px 0}.hero p{max-width:720px;color:#53627c;font-size:17px}.hero dl{display:grid;grid-template-columns:1fr 1fr;margin:0;gap:1px;background:var(--line);border:1px solid var(--line)}.hero dl div{padding:24px;background:#fff}.hero dt{font:700 34px/1 var(--serif);color:var(--blue)}.hero dd{margin:8px 0 0;color:var(--muted);font-size:13px}.part-divider{padding:90px 7vw 46px;background:#172d58;color:#fff}.part-divider span{font-size:12px;letter-spacing:.18em;color:#8eb5ff}.part-divider h1{font:700 48px/1.2 var(--serif);margin:12px 0}.chapter{padding:80px 7vw;scroll-margin-top:70px}.chapter:nth-of-type(even){background:#fbfcff}.chapter-title{max-width:880px;margin:0 auto 54px}.chapter-title>span{color:var(--blue);font-weight:700}.chapter-title h1{font:700 46px/1.25 var(--serif);margin:8px 0 16px}.chapter-title p{color:var(--muted)}.source-article{max-width:900px;margin:0 auto 58px;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 38px rgba(33,54,91,.07)}.article-head{padding:38px 52px 30px;border-bottom:1px solid var(--line)}.article-kicker{font-size:12px;color:var(--blue);letter-spacing:.05em}.article-head h1,.article-head h2{font:700 34px/1.35 var(--serif);margin:10px 0 14px}.teaching-note{color:#52617b;font-size:14px;background:var(--pale);padding:14px 16px;border-left:3px solid var(--blue)}.article-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}.article-actions a{color:var(--blue);font-size:13px;text-decoration:none}.article-body{padding:42px 52px 54px;font:17px/1.95 var(--serif)}.article-body h1{display:none}.article-body h2,.article-body h3{margin-top:2em;line-height:1.4}.article-body p{margin:0 0 1.25em}.article-body blockquote{margin:1.5em 0;padding:12px 20px;border-left:3px solid var(--blue);background:var(--pale);color:#42506a}.article-body pre{overflow:auto;background:#12213d;color:#eef5ff;padding:18px;border-radius:8px}.article-body figure{margin:30px auto;text-align:center}.article-body img{display:block;max-width:100%;height:auto;margin:auto;border-radius:4px}.article-body figcaption{margin-top:8px;color:#8791a4;font:12px var(--sans)}.library,.reader{max-width:1180px;margin:0 auto;padding:60px 24px}.library-head{margin-bottom:30px}.library-head h1{font:700 54px var(--serif);margin:8px 0}.library-head p{color:var(--muted)}.library-tools{display:flex;gap:12px;margin-top:24px}.library-tools input,.library-tools select{height:44px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 13px;font:inherit}.library-tools input{flex:1}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.library-card{background:#fff;border:1px solid var(--line);padding:20px;min-height:155px}.library-card>div{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.library-card em{font-style:normal;color:var(--blue)}.library-card h2{font:700 19px/1.45 var(--serif);margin:12px 0}.library-card a{color:var(--ink);text-decoration:none}.library-card a:hover{color:var(--blue)}.library-card p{font-size:12px;color:var(--muted)}.reader{max-width:960px}.back{display:inline-block;margin-bottom:20px;color:var(--blue);text-decoration:none}.reader .source-article{margin-bottom:0}footer{padding:38px;text-align:center;color:#8993a4;font-size:12px;border-top:1px solid var(--line)}@media(max-width:980px){.textbook-layout{display:block}.toc{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding:80px 6vw}.hero dl{max-width:520px}.library-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.topbar{height:auto;min-height:58px;padding:10px 14px;align-items:flex-start}.brand{font-size:16px}.topbar nav{gap:2px;flex-wrap:wrap;justify-content:flex-end}.topbar nav a{font-size:12px;padding:4px 6px}.hero{padding:60px 22px}.hero h1{font-size:42px}.hero dl{grid-template-columns:1fr 1fr}.hero dl div{padding:16px}.part-divider{padding:56px 22px 32px}.part-divider h1{font-size:38px}.chapter{padding:56px 14px}.chapter-title{padding:0 8px;margin-bottom:30px}.chapter-title h1{font-size:34px}.article-head,.article-body{padding:26px 20px}.article-head h1,.article-head h2{font-size:28px}.article-body{font-size:16px}.library,.reader{padding:40px 14px}.library-head h1{font-size:42px}.library-tools{flex-direction:column}.library-grid{grid-template-columns:1fr}}
