:root{color-scheme:light;--ink:#222a32;--muted:#5c6873;--line:#e1e5e8;--accent:#245a79;--paper:#fff;--surface:#f7f9fa;--code:#f1f4f6;--selected:#eef4f7;--quote:#455765;--field:#bac5cd;--focus:#286daa;--keyword:#81498e;--string:#257050;--comment:#64717c;--number:#966017;font-family:ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft Yahei",sans-serif;color:var(--ink);background:var(--paper)}
:root[data-theme="dark"]{color-scheme:dark;--ink:#e2e8ee;--muted:#aab7c4;--line:#3d4b59;--accent:#8fcbea;--paper:#141b22;--surface:#1b2530;--code:#25313d;--selected:#293d4c;--quote:#c1cfda;--field:#718395;--focus:#8fcbea;--keyword:#d7a6e4;--string:#8dd8ae;--comment:#aab7c4;--number:#edc184}
*{box-sizing:border-box}
body{margin:0}
a{color:var(--accent);text-underline-offset:4px}
a:hover{text-decoration-thickness:2px}
select:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
header{flex-wrap:wrap;min-height:76px;display:flex;gap:32px;align-items:center;border-bottom:1px solid var(--line);padding:20px 4vw}
header a{text-decoration:none}
.brand{font-weight:750;color:var(--ink);white-space:nowrap}
header nav{display:flex;gap:12px;flex-wrap:wrap;font-size:14px}
.skip{position:absolute;left:10px;top:-100px;background:var(--paper);color:var(--ink);padding:10px;z-index:5}
.skip:focus{top:10px}
.landing{max-width:1040px;padding:52px 28px 72px;margin:auto}
h1{font-size:clamp(27px,3vw,40px);letter-spacing:-.035em;line-height:1.4;margin:10px 0 20px}
h2{line-height:1.5}
p{line-height:1.8}
.eyebrow{font-size:12px;font-weight:650;letter-spacing:.13em;color:var(--muted);margin:0 0 8px}
.intro{font-size:19px;color:var(--muted);margin-bottom:32px}
.courses{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.course{padding:30px;display:flex;align-items:flex-start;gap:20px;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-top:0;border-left:0}
.course:hover{box-shadow:inset 0 0 0 2px #91afc0}
.course>span:nth-child(2){flex:1}
.number{font-size:12px;color:var(--muted);padding-top:5px}
.course b{font-size:15px;letter-spacing:.07em}
.course strong{display:block;font-size:24px;margin:8px 0 18px}
.course small{font-size:13px;color:var(--muted)}
.boundary{font-size:14px;color:var(--muted);max-width:700px;margin-top:26px}
.note-group{margin-top:34px}
.note-group h2{font-size:19px;border-bottom:1px solid var(--line);padding-bottom:10px;display:flex;gap:14px;align-items:center}
.note-group h2 small{font-size:12px;color:var(--muted);font-weight:400}
.note-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:32px}
.note-list li{border-bottom:1px solid var(--line)}
.note-list a{display:block;padding:12px 0;font-size:15px;text-decoration:none;line-height:1.6;overflow-wrap:anywhere}
.search{display:block;font-size:13px;color:var(--muted);max-width:440px;margin:28px 0 0}
.search input{display:block;width:100%;margin-top:8px;padding:12px 14px;font:inherit;font-size:16px;border:1px solid var(--field);border-radius:4px;background:var(--paper);color:var(--ink)}
#filter-status{font-size:13px;color:var(--muted);min-height:1.8em}
.reading-layout{max-width:1570px;margin:auto;padding:36px 30px 64px;display:grid;grid-template-columns:230px minmax(0,760px) 200px;gap:36px;justify-content:center}
.reading-layout>aside{min-width:0}
.reading-layout>main{min-width:0;max-width:100%}
.course-nav,.toc{position:sticky;top:22px;font-size:13px;line-height:1.6}
.course-nav nav,.toc nav{max-height:calc(100vh - 120px);overflow:auto;scrollbar-width:thin;padding-right:10px}
.course-nav summary,.toc summary{font-weight:700;padding:0 0 14px;cursor:pointer}
.course-nav h2{font-size:12px;color:var(--muted);margin:22px 0 8px}
.course-nav ul,.toc ol{list-style:none;padding:0;margin:0}
.course-nav a,.toc a{text-decoration:none;display:block;padding:5px 7px;overflow-wrap:anywhere}
.course-nav [aria-current]{border-left:3px solid var(--accent);background:var(--selected);font-weight:650}
.toc .level-3{padding-left:12px}
.toc a{border-left:1px solid var(--line)}
article{font-size:16px;line-height:1.85;overflow-wrap:anywhere}
article h1{font-size:29px;margin-bottom:32px}
article h2{font-size:23px;margin:48px 0 18px;padding-top:12px;border-top:1px solid var(--line)}
article h3{font-size:19px;margin-top:32px}
article :is(h1,h2,h3,a[id]){scroll-margin-top:24px}
article a[id]:empty{display:block}
article p{margin:18px 0}
article blockquote{margin:22px 0;padding:1px 20px;border-left:3px solid var(--field);color:var(--quote);background:var(--surface)}
article blockquote p{margin:12px 0}
article ul,article ol{padding-left:25px}
article li{margin:6px 0}
article code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.87em;background:var(--code);padding:2px 4px;border-radius:3px}
article pre{padding:20px;background:var(--surface);border:1px solid var(--line);overflow-x:auto;white-space:pre;line-height:1.6;font-size:14px;max-width:100%;tab-size:4}
article pre code{padding:0;background:transparent;overflow-wrap:normal}
.table-scroll{overflow-x:auto;max-width:100%;margin:24px 0}
table{border-collapse:collapse;min-width:100%;font-size:14px}
th,td{border:1px solid var(--line);padding:10px 13px;text-align:left;vertical-align:top;min-width:85px}
th{background:var(--surface);font-weight:650}
.katex-display{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:12px 0}
.katex{font-size:1.05em}
.local-reference{color:var(--muted);font-size:.93em;border-bottom:1px dotted #aab6bd}
.external::after{content:' ↗';font-size:.75em}
.adjacent{display:grid;grid-template-columns:1fr 1fr;gap:22px;border-top:1px solid var(--line);margin-top:54px;padding-top:24px;font-size:14px}
.adjacent small{display:block;color:var(--muted);margin-bottom:9px}
.adjacent>div:last-child{text-align:right}
footer{border-top:1px solid var(--line);padding:26px 4vw;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px}
.hljs-keyword,.hljs-type{color:var(--keyword)}
.hljs-string{color:var(--string)}
.hljs-comment{color:var(--comment)}
.hljs-number{color:var(--number)}
[hidden]{display:none!important}
@media(max-width:1200px){.reading-layout{grid-template-columns:190px minmax(0,720px);gap:28px}
.reading-layout>aside:last-child{grid-column:2;grid-row:1}
.reading-layout>main{grid-column:2;grid-row:2}
.reading-layout>aside:first-child{grid-row:1 / 3}
.toc{position:static}
.toc nav{max-height:300px}
}
@media(max-width:760px){header{padding:17px 20px;gap:20px;align-items:flex-start}
header nav{font-size:12px;gap:8px}
.brand{font-size:14px}
.landing{padding:34px 20px 50px}
.courses{grid-template-columns:1fr}
.course{padding:23px 20px}
.course strong{font-size:22px;margin-bottom:12px}
.note-list{grid-template-columns:1fr}
.reading-layout{display:flex;flex-direction:column;padding:24px 20px 44px;gap:18px}
.reading-layout>aside{width:100%}
.reading-layout>aside:last-child{order:1}
.reading-layout>main{order:2;width:100%}
.course-nav,.toc{position:static;border:1px solid var(--line);border-radius:4px;padding:12px}
.course-nav summary,.toc summary{padding:0}
.course-nav[open] summary,.toc[open] summary{padding-bottom:10px}
.course-nav nav,.toc nav{max-height:340px}
article h1{font-size:25px;line-height:1.5}
article h2{font-size:21px}
article{font-size:16px}
article pre{padding:14px;font-size:13px}
article blockquote{padding-left:14px}
footer{padding:22px 20px;flex-wrap:wrap}
.adjacent{font-size:13px}
.eyebrow{font-size:11px}
}
@media print{header,footer,aside,.adjacent,.skip{display:none!important}
.reading-layout{display:block;padding:0}
article{font-size:11pt}
.katex-display,pre,.table-scroll{overflow:visible}
a{color:inherit}
}
/* Keep italic overhang inside inline math, and anchor KaTeX’s absolute accessibility layer locally. */
article .katex{position:relative;display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle;padding:3px .25em 3px 0}
article .katex-display>.katex{display:block;max-width:none;overflow:visible;vertical-align:baseline;padding:0}

.study-hint{margin:1rem 0;padding:.15rem 1rem;border:1px solid var(--line,#dce2e8);border-radius:8px;background:var(--surface)}
.study-hint>summary{padding:.8rem 0;cursor:pointer;font-weight:600;color:var(--accent)}
.study-hint>summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.study-hint .study-hint{background:var(--paper);margin:.8rem 0;padding:0 .75rem}
@media(max-width:760px){.study-hint{padding:0 .65rem}.study-hint .study-hint{padding:0 .5rem}}

.theme-control{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);white-space:nowrap}
.theme-control select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--field);border-radius:4px;padding:7px;min-height:36px}
::selection{background:var(--selected);color:var(--ink)}
@media print{
 :root,:root[data-theme="dark"]{color-scheme:light;--ink:#222a32;--muted:#5c6873;--line:#e1e5e8;--accent:#245a79;--paper:#fff;--surface:#f7f9fa;--code:#f1f4f6;--selected:#eef4f7;--quote:#455765;--keyword:#81498e;--string:#257050;--comment:#64717c;--number:#966017}
}

.midterm-overview{margin:36px 0 42px}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.section-heading h2{margin:0}
.section-heading>a{font-size:14px}
.midterm-course{scroll-margin-top:24px;margin-top:42px}
.midterm-docs a{padding:18px 0}
.midterm-docs a span{display:block;font-size:14px;font-weight:400;color:var(--muted);margin-top:6px}
