
:root{--paper:#faf9f6;--ink:#252c33;--muted:#68747d;--line:#d5dce0;--blue:#315f7e;--soft:#edf2f5;--copper:#946343}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:10px;padding:12px;background:white;z-index:20}.top{max-width:1180px;margin:auto;padding:25px 28px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);font-size:12px}.top a{text-decoration:none}.top span{color:var(--muted)}.hero{max-width:1050px;margin:auto;padding:61px 28px 39px}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--blue);margin:0 0 21px}h1{font-family:"Songti SC",STSong,serif;font-size:clamp(34px,3.7vw,49px);font-weight:600;line-height:1.43;letter-spacing:-.025em;margin:0;text-wrap:balance}.dek{font-size:18px;line-height:1.9;max-width:720px;color:var(--muted);margin:23px 0 0}.meta{display:flex;flex-wrap:wrap;gap:10px 23px;font-size:12px;color:var(--muted);margin-top:25px}.meta time{color:var(--ink)}.series-link{font-size:12px;line-height:1.8;color:var(--blue);margin-top:23px}.series-link a{text-decoration:none}
.chapter-nav{position:sticky;top:var(--site-header-height,64px);z-index:5;background:#faf9f6f5;backdrop-filter:blur(10px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.chapter-nav nav{max-width:1020px;margin:auto;padding:0 28px;display:flex;gap:30px;overflow:auto;scrollbar-width:none}.chapter-nav a{display:block;flex:none;padding:16px 0 13px;font-size:12px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}.chapter-nav a.active{color:var(--blue);border-color:var(--blue)}.chapter-nav a span{font:12px Georgia,serif;margin-right:7px;color:var(--blue)}
.prose{max-width:780px;padding:31px 28px 62px;margin:auto;font-size:18px;line-height:2;overflow-wrap:anywhere}.prose p{margin:0 0 23px}.opening{padding-bottom:9px}.opening p:first-child{font-size:20px;line-height:1.9}.lesson{margin-top:15px;padding-top:31px;scroll-margin-top:78px}.lesson h2{font-size:27px;line-height:1.55;font-weight:600;letter-spacing:-.01em;margin:0 0 26px}.lesson h2 .n{display:block;color:var(--blue);font:12px Georgia,serif;letter-spacing:.07em;margin-bottom:10px}strong{font-weight:620}.ref{font:11px/1.2 Georgia,serif;vertical-align:super;text-decoration:none;color:var(--blue);padding:0 2px;white-space:nowrap}.figure{margin:32px -110px 31px}.figure .figure-bar{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);padding:9px 0 12px;line-height:1.6}.figure .figure-bar span:first-child{color:var(--blue)}.figure .zoom{border:0;padding:0;background:white;width:100%;display:block;cursor:zoom-in}.figure picture,.figure img{display:block;width:100%;height:auto}.figure figcaption{font-size:12px;line-height:1.9;color:var(--muted);margin-top:13px;max-width:930px}.figure figcaption .refs{white-space:nowrap;margin-left:5px}.figure .refs a{font-size:11px;text-decoration:none;color:var(--blue);margin-right:3px}
.technical{margin:28px 0 29px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px}.technical summary{font-size:14px;color:var(--blue);cursor:pointer;line-height:1.8}.technical .inside{padding-top:19px}.technical p{margin-bottom:15px;line-height:1.95}.technical p:last-child{margin-bottom:2px}.formula{font:italic 28px/1.7 Georgia,"Times New Roman",serif;text-align:center;color:var(--blue);margin:4px 0 22px}.case{border-left:2px solid var(--blue);padding:3px 0 3px 24px;margin:31px 0 30px}.case .label{font-size:11px;letter-spacing:.04em;color:var(--blue);margin-bottom:11px}.case h3{font-size:20px;font-weight:600;line-height:1.6;margin:0 0 14px}.case p{font-size:16px;line-height:1.95;margin-bottom:17px}.case p:last-child{margin-bottom:0}.terms{margin:28px 0 29px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0 8px}.terms .label{color:var(--blue);font-size:11px;letter-spacing:.03em;margin-bottom:18px}.terms dl{margin:0}.terms dt{font-size:16px;font-weight:600;margin:0 0 7px}.terms dd{margin:0 0 20px;font-size:15px;line-height:1.95;color:#54616c}
table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.9;margin:27px 0 29px}th,td{text-align:left;vertical-align:top;padding:16px 14px;border-bottom:1px solid var(--line)}th{background:var(--soft);color:var(--blue);font-size:12px;font-weight:550}th:first-child,td:first-child{width:29%}td:first-child{font-size:14px;font-weight:550}.sources{margin-top:46px;border-top:1px solid var(--line);padding-top:26px;color:var(--muted);font-size:12px;line-height:1.85}.sources h2{font-size:15px;font-weight:550;margin:0 0 19px;color:var(--ink)}.sources ol{padding-left:25px;margin:0}.sources li{padding-left:4px;margin-bottom:17px;scroll-margin-top:84px}.sources li:target{background:var(--soft);outline:8px solid var(--soft)}.sources small{display:block;font-size:11px;margin-top:4px}.sources .credit{font-size:11px;border-top:1px solid var(--line);padding-top:15px;margin:22px 0 0}.bottom{max-width:1180px;margin:auto;padding:27px 28px 42px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;font-size:12px;line-height:1.8}.bottom a{color:var(--blue);text-decoration:none}.bottom span{color:var(--muted)}
dialog{width:calc(100% - 32px);max-width:1280px;max-height:94vh;border:0;background:white;padding:16px;color:var(--ink)}dialog::backdrop{background:#17242de3}.dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:13px}.dialog-bar p{margin:0;font-size:12px;line-height:1.6}.dialog-actions{display:flex;gap:10px;flex:none}.dialog-actions button{font-size:12px;border:1px solid var(--line);padding:9px 13px;background:white;white-space:nowrap}.dialog-actions button[aria-pressed=true]{border-color:var(--blue);color:var(--blue);background:var(--soft)}.diagram-stage{max-height:calc(90vh - 80px);overflow:auto;overscroll-behavior:contain}.diagram-stage img{display:block;width:100%;max-width:100%;height:auto;margin:auto}.diagram-stage.enlarged img{width:1100px;max-width:none}dialog .hint{color:var(--muted);font-size:11px;margin:12px 0 0}
@media(max-width:1040px){.figure{margin-left:-50px;margin-right:-50px}}@media(max-width:890px){.figure{margin-left:0;margin-right:0}.hero{padding-top:43px}.chapter-nav nav{gap:24px}}@media(max-width:640px){.top{padding:20px 22px;font-size:11px}.hero{padding:34px 22px 28px}h1{font-size:31px;line-height:1.5}.eyebrow{font-size:11px;line-height:1.6;margin-bottom:18px}.dek{font-size:17px;margin-top:19px}.meta{font-size:11px;gap:8px 17px;margin-top:22px}.series-link{font-size:11px;margin-top:18px}.chapter-nav nav{padding:0 22px;gap:23px}.chapter-nav a{font-size:11px;padding:13px 0 11px}.chapter-nav a span{font-size:11px}.prose{padding:29px 22px 44px;font-size:17px;line-height:1.98}.opening p:first-child{font-size:19px}.lesson{padding-top:28px;scroll-margin-top:69px}.lesson h2{font-size:23px;line-height:1.55;margin-bottom:22px}.lesson h2 .n{font-size:11px}.prose p{margin-bottom:21px}.figure{margin:26px -6px 27px}.figure .figure-bar{font-size:10px;gap:10px;padding-bottom:9px}.figure figcaption{font-size:11px;padding:0 5px;line-height:1.85}.ref{font-size:10px}.technical{font-size:14px;padding:15px 0}.technical summary{font-size:13px}.formula{font-size:25px}.case{padding-left:18px;margin:27px 0}.case .label{font-size:10px}.case h3{font-size:18px}.case p{font-size:15px}.terms dt{font-size:15px}.terms dd{font-size:14px}table{font-size:13px;line-height:1.85}th,td{padding:13px 9px}th{font-size:11px}td:first-child{font-size:12px;width:28%}.sources{font-size:11px}.sources small{font-size:10px}.bottom{padding:23px 22px 34px;font-size:11px}.bottom span{display:none}dialog{width:calc(100% - 12px);padding:10px}.dialog-bar{align-items:flex-start;gap:12px}.dialog-bar p{font-size:11px}.dialog-actions{gap:6px}.dialog-actions button{font-size:11px;padding:8px 9px}.diagram-stage{max-height:calc(90vh - 100px)}dialog .hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{body{background:white}.top,.chapter-nav,.bottom,.series-link,dialog,.figure-bar{display:none}.hero{padding-top:0}.prose{font-size:12pt;max-width:none}.figure{margin-left:0!important;margin-right:0!important;break-inside:avoid}.figure .zoom{border:0}.lesson h2{font-size:19pt}.sources{font-size:9pt}.case{break-inside:avoid}.technical .inside{display:block}}

.title-line{display:block;text-wrap:balance}.title-group{display:inline-block;white-space:nowrap}.subsection{margin:34px 0 0}.subsection h3{font-size:22px;line-height:1.6;font-weight:580;color:#35546a;margin:0 0 18px}.rank-lab{margin:26px 0 28px;padding:20px 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.rank-head h4{font-size:16px;font-weight:550;margin:0}.rank-head label{font-size:13px;color:var(--blue);white-space:nowrap}.rank-head select{font:inherit;font-size:15px;background:white;color:var(--blue);border:1px solid #c5cfd5;padding:7px 20px 7px 9px;margin-left:8px}.rank-numbers{display:flex;gap:48px;margin:23px 0 14px}.rank-numbers div{display:flex;flex-direction:column}.rank-numbers span{font-size:11px;color:var(--muted)}.rank-numbers output{font:30px/1.5 Georgia,serif;color:#9b593b;font-variant-numeric:tabular-nums}.rank-lab .math-line{font-size:13px;color:var(--muted);margin:0 0 15px}.rank-meter{height:4px;background:#e0e6e9}.rank-meter span{display:block;width:1.5625%;height:100%;background:#aa6747;transition:width .18s ease}.rank-lab .rank-note{font-size:11px;color:var(--muted);line-height:1.8;margin:12px 0 0}.resources{margin:28px 0 23px}.resource{padding:25px 0 24px;border-top:1px solid var(--line)}.resource:last-child{border-bottom:1px solid var(--line)}.resource .category{font-size:11px;color:var(--blue);margin:0 0 12px}.resource h3{font-size:21px;font-weight:580;line-height:1.5;margin:0 0 8px}.resource h3 a{text-decoration:none}.resource h3 a:hover{text-decoration:underline}.resource .repo{font:11px/1.8 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);margin:0 0 16px;word-break:break-word}.resource p{font-size:16px;line-height:1.95;margin:0 0 16px}.resource .observation{border-left:2px solid #c7d5dd;padding-left:17px;margin:18px 0 0}.observation span{display:block;color:var(--blue);font-size:11px;margin-bottom:5px}.resource .resource-links{font-size:12px;line-height:1.8;margin:17px 0 0}.resource-links a{color:var(--blue)}
@media(max-width:640px){.subsection h3{font-size:20px}.rank-head{gap:10px;align-items:center}.rank-head h4{font-size:14px}.rank-head label{font-size:12px}.rank-numbers{gap:35px}.rank-numbers output{font-size:28px}.rank-lab .math-line{font-size:12px}.resource h3{font-size:19px}.resource p{font-size:15px}.resource .category{font-size:10px}.resource .repo{font-size:10px}.resource .observation{padding-left:13px}.resource .resource-links{font-size:11px}}
@media(prefers-reduced-motion:reduce){.rank-meter span{transition:none}}

:root[data-theme="dark"] .chapter-nav{background:var(--site-surface,#252525)}
:root[data-theme="dark"] .terms dd{color:var(--site-ink,#ededed)}
:root[data-theme="dark"] .subsection h3{color:var(--site-ink,#ededed)}
:root[data-theme="dark"] .rank-numbers output{color:var(--site-ink,#ededed)}
:root[data-theme="dark"] .rank-meter{background:var(--site-surface,#252525)}
