:root{--ink:#101528;--muted:#687086;--paper:#f6f6f2;--card:#fff;--line:#dce0e9;--violet:#6152e9;--mint:#c9f56b;--cyan:#9eeef0;--orange:#ffb68b;--dark:#171c36}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 "DM Sans","Noto Serif SC",sans-serif}a{color:inherit;text-decoration:none}.wrap{width:min(1120px,calc(100% - 40px));margin:auto}.mono{font:500 11px/1.4 "DM Mono",monospace;letter-spacing:.08em}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.logo{font:700 25px/1 "DM Mono",monospace;letter-spacing:-.1em}.logo i{font-style:normal;color:var(--violet)}.navlinks{display:flex;gap:20px;font:500 11px "DM Mono",monospace}.navlinks a:hover{color:var(--violet)}.hero{background:linear-gradient(120deg,#1c2140,#3a3680);color:#fff;overflow:hidden}.hero .wrap{min-height:410px;padding:63px 0 50px;position:relative}.kicker{margin:0;color:var(--mint);font:500 12px "DM Mono",monospace;letter-spacing:.08em}.kicker:before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:currentColor}.hero h1{max-width:780px;margin:18px 0;font:700 clamp(44px,7vw,82px)/1.04 "Noto Serif SC",serif;letter-spacing:-.06em}.hero .lead{max-width:660px;margin:0;color:#d6d9ed;font-size:18px}.hero .meta{position:absolute;right:0;bottom:48px;max-width:225px;color:#c1c5df;font:12px/1.6 "DM Mono",monospace}.section{padding:70px 0;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 10px;color:var(--violet);font:500 11px "DM Mono",monospace;letter-spacing:.1em}.section h2{margin:0 0 12px;font:700 clamp(29px,4vw,47px)/1.14 "Noto Serif SC",serif;letter-spacing:-.055em}.intro{max-width:780px;margin:0;color:#565e6c;font-size:17px}.overview{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:28px}.panel{padding:23px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.panel h3{margin:0 0 9px;font-size:18px}.panel p{margin:0;color:#5e6674;font-size:14px}.signal{background:#e6f9f2;border-color:#bde7dd}.signal b{display:block;margin-bottom:9px;font:500 11px "DM Mono",monospace;color:#02736f}.curriculum{display:grid;gap:0;margin-top:28px;border-top:2px solid var(--ink)}.unit{display:grid;grid-template-columns:62px minmax(0,1fr) 150px;gap:17px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.unit-index{color:var(--violet);font:500 12px "DM Mono",monospace}.unit h3{margin:0;font-size:19px}.unit p{margin:3px 0 0;color:#626a78;font-size:14px}.status{justify-self:end;padding:5px 7px;border-radius:4px;color:#687085;background:#eceef3;font:500 10px "DM Mono",monospace}.status.live{color:#223214;background:var(--mint)}.status.read{color:#19393e;background:var(--cyan)}.unit.active{margin:0 -17px;padding:20px 17px;background:#fff;border-radius:9px;box-shadow:0 7px 18px rgba(25,28,52,.05)}.unit.active:hover{outline:1px solid var(--violet)}.route{margin-top:27px;padding:25px;overflow:auto;border-radius:14px;background:var(--dark)}.route svg{display:block;width:100%;min-width:700px}.route figcaption{margin-top:12px;color:#bfc5e1;font:11px "DM Mono",monospace}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:25px}.note{padding:19px;background:var(--card);border:1px solid var(--line);border-radius:11px}.note b{display:block;margin-bottom:7px;color:var(--violet);font:500 11px "DM Mono",monospace}.note p{margin:0;color:#5f6675;font-size:14px}.pending{margin-top:29px;padding:19px 21px;border-left:5px solid var(--orange);border-radius:8px;background:#fff0e7}.pending p{margin:0;color:#5c4b42}.footer{padding:28px 0;color:#aeb4cc;background:var(--dark);font:11px "DM Mono",monospace}.footer .wrap{display:flex;justify-content:space-between;gap:20px}.footer a{color:var(--mint)}
.lesson-hero{background:linear-gradient(120deg,#1b203f,#214d68);color:#fff}.lesson-hero .wrap{padding:54px 0 60px}.crumb{margin:0 0 28px;color:#c4c9e2;font:11px "DM Mono",monospace}.crumb a{color:var(--mint)}.lesson-hero h1{max-width:800px;margin:0;font:700 clamp(42px,6vw,76px)/1.07 "Noto Serif SC",serif;letter-spacing:-.055em}.lesson-hero .sub{max-width:660px;margin:18px 0 0;color:#d5d9ed;font-size:18px}.lesson{width:min(840px,calc(100% - 40px));margin:auto;padding:62px 0 100px}.lesson section{padding:0 0 52px;margin-bottom:51px;border-bottom:1px solid var(--line)}.lesson section:last-child{border:0}.lesson h2{margin:0 0 14px;font:700 clamp(27px,4vw,43px)/1.16 "Noto Serif SC",serif;letter-spacing:-.05em}.lesson p{color:#4f5765}.definition{display:grid;grid-template-columns:105px 1fr;gap:16px;margin:22px 0;padding:21px;border-radius:12px;color:#ecf0fb;background:var(--dark)}.definition b{color:var(--mint);font:500 11px "DM Mono",monospace}.definition p{margin:0;color:#e0e4f4}.equation{margin:22px 0;padding:20px 22px;overflow:auto;border-radius:10px;color:#f1f3fa;background:#20253c;font:17px/1.7 "DM Mono",monospace}.equation span{display:block;margin-top:8px;color:#b6bdd4;font:13px/1.5 "DM Sans",sans-serif}.diagram{margin:25px 0;padding:24px;overflow:auto;border-radius:13px;background:#fff;border:1px solid var(--line)}.diagram svg{display:block;width:100%;min-width:640px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.compare div{padding:19px;border:1px solid var(--line);border-radius:11px;background:#fff}.compare b{font-size:17px}.compare p{margin:8px 0 0;font-size:14px}.check{padding:21px;border-radius:10px;background:#eef9ff;border-left:5px solid #28b5ca}.check b{font:500 11px "DM Mono",monospace;color:#0d6877}.check p{margin:8px 0 0}.reading{display:grid;gap:11px;margin-top:20px}.reading a{padding:15px 17px;border:1px solid var(--line);border-radius:9px;background:#fff}.reading a:hover{border-color:var(--violet)}.reading b{display:block;font-size:14px}.reading span{display:block;margin-top:3px;color:#626a78;font-size:13px}
.term-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:23px}.term{padding:18px;border:1px solid var(--line);border-radius:11px;background:#fff;scroll-margin-top:24px}.term h3{margin:0 0 7px;font-size:18px}.term code{color:var(--violet);font:500 11px "DM Mono",monospace}.term p{margin:7px 0 0;color:#57606f;font-size:14px}.term .example{margin-top:10px;padding-top:10px;border-top:1px solid #edf0f4;color:#6a7382;font-size:13px}.term .example b{color:#26314a;font:500 10px "DM Mono",monospace}.term-nav{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.term-nav a{padding:6px 9px;border:1px solid var(--line);border-radius:4px;background:#fff;color:#555f70;font:500 11px "DM Mono",monospace}.term-nav a:hover{border-color:var(--violet);color:var(--violet)}.lesson a:not(.reading a):not(.navlinks a):not(.logo):not(.crumb a){color:#5546d8;text-decoration:underline;text-underline-offset:3px}
.lesson h3{margin:28px 0 8px;font-size:21px}.equation.small{font-size:15px}.table-wrap{margin:23px 0;overflow-x:auto;border:1px solid var(--line);border-radius:11px;background:#fff}.lesson-table{width:100%;min-width:670px;border-collapse:collapse;text-align:left;font-size:13px}.lesson-table th{padding:13px 15px;color:#657085;background:#f5f7fa;font:500 10px "DM Mono",monospace;letter-spacing:.03em}.lesson-table td{padding:14px 15px;vertical-align:top;color:#505968;line-height:1.55;border-top:1px solid #e8ebf0}.lesson-table td:first-child{color:#28324c;white-space:nowrap}.lesson-table.compact{min-width:620px}.quiz{display:grid;gap:10px;margin-top:22px}.quiz details{padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#fff}.quiz summary{cursor:pointer;color:#28324c;font-weight:600}.quiz summary::marker{color:var(--violet)}.quiz p{margin:11px 0 1px;padding-top:10px;border-top:1px solid #eceff4;font-size:14px}.curriculum a.unit{cursor:pointer;transition:transform .16s ease,background .16s ease,outline-color .16s ease}.curriculum a.unit:hover{margin:0 -17px;padding:20px 17px;transform:translateX(3px);border-bottom-color:transparent;border-radius:9px;background:#fff;outline:1px solid var(--violet);box-shadow:0 7px 18px rgba(25,28,52,.05)}.codeblock{margin:23px 0;padding:21px 23px;overflow:auto;border-radius:10px;color:#e8ebf5;background:#20253c;font:14px/1.7 "DM Mono",monospace;white-space:pre}.lesson code{padding:1px 4px;border-radius:4px;color:#4d43b7;background:#eceafd;font:12px "DM Mono",monospace}
@media(max-width:720px){.wrap{width:min(100% - 32px,1120px)}.nav{height:64px}.navlinks{gap:12px;font-size:10px}.navlinks a:nth-child(3){display:none}.hero .wrap{min-height:470px;padding:52px 0}.hero .meta{position:static;margin-top:40px}.overview,.note-grid,.compare,.term-grid{grid-template-columns:1fr}.unit{grid-template-columns:46px 1fr}.status{grid-column:2;justify-self:start}.section{padding:54px 0}.lesson{width:min(100% - 32px,840px);padding:50px 0}.lesson-hero .wrap{padding:43px 0}.footer .wrap{display:block;line-height:1.8}.route{margin-left:-4px;margin-right:-4px}}
.toc{position:fixed;z-index:5;top:112px;left:max(24px,calc(50% - 620px));width:180px;max-height:calc(100vh - 140px);padding:15px 11px 15px 0;overflow:auto;border-right:1px solid var(--line)}.toc-title{margin:0 0 10px;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:.1em}.toc nav{display:grid;gap:2px}.toc a{display:block;padding:6px 7px;border-left:2px solid transparent;color:#697284;font-size:11px;line-height:1.35}.toc a span{display:inline-block;width:27px;color:#9ba3b5;font:500 10px "DM Mono",monospace}.toc a:hover{color:var(--violet);background:#eef0ff}.toc a.active{border-left-color:var(--violet);color:#29225e;background:#eceafd}.toc a.active span{color:var(--violet)}
@media(max-width:1279px){.toc{position:static;width:min(840px,calc(100% - 40px));max-height:220px;margin:24px auto 0;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff}.toc nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.toc a{border-left:0;border-radius:5px}.toc a.active{border-left:0}}@media(max-width:620px){.toc{width:calc(100% - 32px);max-height:190px}.toc nav{grid-template-columns:1fr}}

/* Prefer installed system fonts so lesson pages render without a cross-network font request. */
:root{--rl-sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--rl-serif:"Songti SC",STSong,"Noto Serif CJK SC","Source Han Serif SC",serif;--rl-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}body{font-family:var(--rl-sans)!important}.hero h1,.section h2,.lesson-hero h1,.lesson h2{font-family:var(--rl-serif)!important}.mono,.logo,.navlinks,.kicker,.hero .meta,.eyebrow,.status,.route figcaption,.footer,.crumb,.definition b,.equation,.lesson code,.lesson-table th,.term code,.term .example b,svg text[font-family="DM Mono"]{font-family:var(--rl-mono)!important}svg text[font-family="DM Sans"]{font-family:var(--rl-sans)!important}@supports (content-visibility:auto){.lesson>section:nth-child(n + 3){content-visibility:auto;contain-intrinsic-size:auto 900px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
