:root{--brand: #4d6bfe;--brand-strong: #3d58e8;--brand-soft: #6b85ff;--brand-bg: #edf3fe;--brand-bg-strong: #dce7fd;--bg: #ffffff;--bg-secondary: #f9fafb;--bg-tertiary: #f1f2f5;--card: #ffffff;--border: #e5e8ef;--border-strong: #d5dae4;--heading: #0f1420;--text: #1f2329;--muted: #5c6370;--faint: #8a919e;--code-bg: #f6f8fa;--code-text: #393a34;--code-border: #e5e8ef;--inline-code-bg: rgba(77, 107, 254, .08);--inline-code-text: #3d58e8;--note-bg: #eff3ff;--note-border: #4d6bfe;--note-title: #2f49c6;--tip-bg: #e6f6e6;--tip-border: #22c55e;--tip-title: #14532d;--warning-bg: #fff8e6;--warning-border: #f7ad31;--warning-title: #4d3800;--danger-bg: #ffebec;--danger-border: #f25a5a;--danger-title: #4b1113;--shadow: 0 1px 2px rgba(15, 20, 32, .04), 0 8px 24px rgba(15, 20, 32, .06);--navbar-h: 60px;--sidebar-w: 280px;--toc-w: 220px;--radius: 8px;color-scheme:light}html[data-theme=dark]{--brand: #7d94ff;--brand-strong: #93a7ff;--brand-soft: #5b74f0;--brand-bg: rgba(77, 107, 254, .14);--brand-bg-strong: rgba(77, 107, 254, .24);--bg: #0e1117;--bg-secondary: #12161d;--bg-tertiary: #171c26;--card: #151a23;--border: #262d3a;--border-strong: #333c4d;--heading: #f2f4f8;--text: #d6dbe4;--muted: #9aa2b1;--faint: #6b7280;--code-bg: #12161d;--code-text: #d6dbe4;--code-border: #262d3a;--inline-code-bg: rgba(125, 148, 255, .14);--inline-code-text: #9db0ff;--note-bg: rgba(77, 107, 254, .1);--note-border: #5b74f0;--note-title: #9db0ff;--tip-bg: rgba(34, 197, 94, .1);--tip-border: #2ea862;--tip-title: #6fdd9b;--warning-bg: rgba(247, 173, 49, .1);--warning-border: #d99a2b;--warning-title: #f2c874;--danger-bg: rgba(242, 90, 90, .1);--danger-border: #d04949;--danger-title: #f28b8b;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--navbar-h) + 16px)}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}::selection{background:#4d6bfe38}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-strong);text-decoration:underline}.navbar{position:sticky;top:0;z-index:50;height:var(--navbar-h);display:flex;align-items:center;gap:.5rem;padding:0 1rem;background:var(--bg);border-bottom:1px solid var(--border)}.nav-toggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer}.nav-toggle:hover{background:var(--bg-tertiary)}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.02rem;letter-spacing:.01em;color:var(--heading)}.brand:hover{text-decoration:none;color:var(--heading)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#4d6bfe,#426efe 55%,#5979e1);color:#fff;font-size:.95rem;font-weight:800;box-shadow:0 2px 8px #4d6bfe59}.brand-sub{font-weight:500;color:var(--faint);font-size:.92rem;margin-left:.1rem}.navbar-links{margin-left:auto;display:flex;align-items:center;gap:.25rem}.navbar-links a{padding:.4rem .75rem;border-radius:var(--radius);color:var(--muted);font-weight:500;font-size:.93rem}.navbar-links a:hover{background:var(--bg-tertiary);color:var(--heading);text-decoration:none}.navbar-links a.active{color:var(--brand)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-left:.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--muted);cursor:pointer;transition:border-color .15s ease,color .15s ease}.theme-toggle:hover{border-color:var(--brand);color:var(--brand)}.theme-toggle svg{width:18px;height:18px}html[data-theme=light] .icon-moon,html[data-theme=dark] .icon-sun{display:none}.docs-layout{display:flex;align-items:flex-start;max-width:1500px;margin:0 auto}.sidebar{position:sticky;top:var(--navbar-h);flex:0 0 var(--sidebar-w);width:var(--sidebar-w);height:calc(100vh - var(--navbar-h));overflow-y:auto;padding:1.25rem .9rem 2rem;background:var(--bg-secondary);border-right:1px solid var(--border)}.sidebar-tabs{display:none}.sidebar-group+.sidebar-group{margin-top:1.4rem}.sidebar-group-title{margin:0 0 .35rem;padding:0 .65rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.sidebar-nav{list-style:none;margin:0;padding:0}.sidebar-nav a{display:flex;align-items:center;gap:.5rem;padding:.42rem .65rem;margin:1px 0;border-radius:var(--radius);color:var(--text);font-size:.92rem;font-weight:500}.sidebar-nav a:hover{background:var(--bg-tertiary);text-decoration:none;color:var(--heading)}.sidebar-nav a.active{background:var(--brand-bg);color:var(--brand);font-weight:600}.sidebar-nav a .external-icon{margin-left:auto;opacity:.55;flex:none}.sidebar-overlay{display:none}.content-area{display:flex;align-items:flex-start;flex:1 1 auto;min-width:0}.docs-content{flex:1 1 auto;min-width:0;max-width:840px;padding:1.75rem 2.5rem 3.5rem}.breadcrumb{display:flex;align-items:center;gap:.45rem;margin-bottom:1rem;font-size:.85rem;color:var(--faint)}.breadcrumb a{color:var(--muted)}.breadcrumb a:hover{color:var(--brand);text-decoration:none}.breadcrumb .sep{color:var(--border-strong)}.breadcrumb .current{color:var(--text);font-weight:500}article h1,.docs-content>h1{margin:.2rem 0 .9rem;font-size:clamp(1.7rem,3vw,2.15rem);line-height:1.25;font-weight:800;color:var(--heading);letter-spacing:-.01em}article h2{position:relative;margin:2.3rem 0 .7rem;padding-top:.4rem;font-size:1.32rem;line-height:1.35;font-weight:700;color:var(--heading);border-top:1px solid var(--border);padding-top:1.5rem}article h2:first-of-type{border-top:none;padding-top:.4rem;margin-top:1.6rem}article h3{margin:1.6rem 0 .5rem;font-size:1.08rem;font-weight:700;color:var(--heading)}.heading-anchor{margin-left:.45rem;color:var(--faint);font-weight:500;opacity:0;transition:opacity .15s ease;text-decoration:none}h2:hover .heading-anchor,h3:hover .heading-anchor,.heading-anchor:hover{opacity:1;color:var(--brand);text-decoration:none}article p{margin:.7rem 0}article ul,article ol{margin:.6rem 0;padding-left:1.5rem}article li{margin:.3rem 0}article li::marker{color:var(--brand)}article strong{color:var(--heading)}.lead{font-size:1.05rem;color:var(--muted)}.muted{color:var(--muted)}code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875em}:not(pre)>code{padding:.14em .38em;border-radius:5px;background:var(--inline-code-bg);color:var(--inline-code-text);font-weight:500}pre{margin:.9rem 0;padding:.95rem 1.1rem;border-radius:10px;border:1px solid var(--code-border);background:var(--code-bg);overflow-x:auto;line-height:1.65}pre code{background:transparent;padding:0;color:var(--code-text);font-size:.86rem}table{width:100%;margin:1rem 0;border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}th,td{padding:.55rem .8rem;border:1px solid var(--border);text-align:left}th{background:var(--bg-secondary);color:var(--heading);font-weight:700;white-space:nowrap}tr:nth-child(2n) td{background:var(--bg-secondary)}.badge-row{display:flex;gap:.5rem;flex-wrap:wrap;margin:.9rem 0 .2rem}.badge{display:inline-flex;align-items:center;padding:.22rem .7rem;border-radius:999px;border:1px solid var(--brand-bg-strong);background:var(--brand-bg);color:var(--brand);font-size:.8rem;font-weight:600;letter-spacing:.01em}.admonition{margin:1rem 0;padding:.85rem 1rem;border-radius:var(--radius);border:1px solid var(--border);border-left:4px solid var(--note-border);background:var(--note-bg)}.admonition-title{display:flex;align-items:center;gap:.45rem;margin:0 0 .25rem;font-weight:700;font-size:.9rem;color:var(--note-title)}.admonition p:last-child{margin-bottom:0}.admonition.tip{border-left-color:var(--tip-border);background:var(--tip-bg)}.admonition.tip .admonition-title{color:var(--tip-title)}.admonition.warning{border-left-color:var(--warning-border);background:var(--warning-bg)}.admonition.warning .admonition-title{color:var(--warning-title)}.admonition.danger{border-left-color:var(--danger-border);background:var(--danger-bg)}.admonition.danger .admonition-title{color:var(--danger-title)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem;margin:1.1rem 0}.link-card{display:block;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:12px;background:var(--card);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.link-card:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-1px);text-decoration:none}.link-card .card-title{margin:0 0 .3rem;font-weight:700;color:var(--heading);font-size:.98rem}.link-card .card-desc{margin:0;font-size:.88rem;color:var(--muted)}.link-card .card-arrow{color:var(--brand)}.step-heading{display:flex;align-items:center;gap:.6rem}.step-index{display:inline-flex;align-items:center;justify-content:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:.85rem;font-weight:700}.lesson-hero{margin:0 0 2rem;padding:1.25rem 1.35rem 1.1rem;border:1px solid var(--brand-bg-strong);border-radius:14px;background:radial-gradient(circle at 100% 0,var(--brand-bg-strong),transparent 44%),var(--bg-secondary)}.lesson-kicker{margin:0 0 .25rem;color:var(--brand);font-size:.82rem;font-weight:700;letter-spacing:.06em}.lesson-hero h1{margin-bottom:.35rem}.lesson-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;color:var(--muted);font-size:.88rem}.learning-objectives{margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--card)}.learning-objectives h2,article .learning-objectives h2:first-of-type{margin:0 0 .35rem;padding:0;border:0;font-size:.94rem}.learning-objectives ul{margin:0;padding-left:1.25rem;font-size:.9rem}.lesson-progress-wrap{margin-top:.9rem}.lesson-progress-wrap>p{margin:0 0 .35rem;color:var(--faint);font-size:.76rem;font-weight:700}.lesson-progress{display:grid;grid-template-columns:repeat(16,minmax(6px,1fr));gap:4px;margin:0;padding:0;list-style:none}.lesson-progress li{height:6px;margin:0;border-radius:999px;background:var(--border-strong)}.lesson-progress li[aria-current=step]{background:var(--brand);box-shadow:0 0 0 2px var(--brand-bg-strong)}.mental-model,.analogy-boundary,.lab,.checkpoint{margin:1.2rem 0;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary)}.mental-model{border-left:4px solid var(--brand);background:var(--brand-bg)}.analogy-boundary{border-left:4px solid var(--warning-border);background:var(--warning-bg)}.lab{border-left:4px solid var(--tip-border);background:var(--tip-bg)}.checkpoint{border-left:4px solid var(--note-border);background:var(--note-bg)}.mental-model>:first-child,.analogy-boundary>:first-child,.lab>:first-child,.checkpoint>:first-child{margin-top:0}.mental-model>:last-child,.analogy-boundary>:last-child,.lab>:last-child,.checkpoint>:last-child{margin-bottom:0}details.answer{margin:.7rem 0;border:1px solid var(--border);border-radius:8px;background:var(--card)}details.answer summary{padding:.65rem .8rem;color:var(--heading);font-weight:600;cursor:pointer}details.answer[open] summary{border-bottom:1px solid var(--border)}details.answer>:not(summary){margin-right:.8rem;margin-left:.8rem}.pager{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:2.8rem}.pager a{display:block;padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;transition:border-color .15s ease}.pager a:hover{border-color:var(--brand);text-decoration:none}.pager .pager-label{display:block;font-size:.8rem;color:var(--faint)}.pager .pager-title{display:block;font-weight:600;color:var(--brand)}.pager .next{text-align:right;grid-column:2}.pager .prev{grid-column:1;grid-row:1}.edit-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:2rem;font-size:.87rem;color:var(--muted)}.edit-link:hover{color:var(--brand)}.toc{position:sticky;top:var(--navbar-h);flex:0 0 var(--toc-w);width:var(--toc-w);height:calc(100vh - var(--navbar-h));overflow-y:auto;padding:1.75rem 1.2rem 2rem .4rem;font-size:.86rem}.toc-title{margin:0 0 .5rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.toc-nav{display:grid;gap:1px;border-left:1px solid var(--border)}.toc-nav a{display:block;padding:.24rem 0 .24rem .8rem;margin-left:-1px;border-left:2px solid transparent;color:var(--muted);line-height:1.45}.toc-nav a:hover{color:var(--heading);text-decoration:none}.toc-nav a.active{border-left-color:var(--brand);color:var(--brand);font-weight:600}.site-footer{border-top:1px solid var(--border);background:var(--bg-secondary);padding:1.4rem 1rem 2rem;color:var(--faint);font-size:.87rem;text-align:center}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--brand)}.sidebar::-webkit-scrollbar,.toc::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb,.toc::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}@media (max-width: 1200px){.toc{display:none}}@media (max-width: 996px){.nav-toggle{display:inline-flex}.sidebar{position:fixed;top:var(--navbar-h);left:0;z-index:45;height:calc(100vh - var(--navbar-h));transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow)}body.sidebar-open .sidebar{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:var(--navbar-h) 0 0 0;z-index:40;background:#0f142066;opacity:0;pointer-events:none;transition:opacity .22s ease}body.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.docs-content{padding:1.4rem 1.25rem 3rem}.brand-sub{display:none}}@media (max-width: 720px){.navbar-links>a{display:none}.breadcrumb{white-space:nowrap}.breadcrumb>*{flex:0 0 auto}.breadcrumb .current{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.sidebar-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.sidebar-tabs a{padding:.4rem .25rem;border-radius:var(--radius);color:var(--muted);font-size:.82rem;font-weight:600;text-align:center}.sidebar-tabs a:hover,.sidebar-tabs a.active{background:var(--brand-bg);color:var(--brand);text-decoration:none}.lesson-hero{padding:1rem}.lesson-meta{display:grid;gap:0}.lesson-meta [aria-hidden=true]{display:none}}.diagram{margin:1.5rem 0;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.diagram svg{display:block;margin:0 auto;max-width:100%;height:auto}.diagram figcaption{margin-top:.75rem;color:var(--muted);font-size:.85rem;text-align:center;line-height:1.5}.d-box{fill:var(--card);stroke:var(--border-strong);stroke-width:1.5}.d-box-soft{fill:var(--bg-tertiary);stroke:var(--border);stroke-width:1.5}.d-box-brand{fill:var(--brand-bg);stroke:var(--brand);stroke-width:1.5}.d-box-ok{fill:var(--tip-bg);stroke:var(--tip-border);stroke-width:1.5}.d-box-warn{fill:var(--warning-bg);stroke:var(--warning-border);stroke-width:1.5}.d-box-danger{fill:var(--danger-bg);stroke:var(--danger-border);stroke-width:1.5}.d-box-dash{fill:none;stroke:var(--border-strong);stroke-width:1.5;stroke-dasharray:5 4}.d-t{fill:var(--text);font-size:13px;font-family:inherit}.d-t-strong{fill:var(--heading);font-size:13.5px;font-weight:600;font-family:inherit}.d-t-mut{fill:var(--muted);font-size:11.5px;font-family:inherit}.d-t-mono{fill:var(--text);font-size:12px;font-family:JetBrains Mono,ui-monospace,monospace}.d-t-mono-mut{fill:var(--muted);font-size:11px;font-family:JetBrains Mono,ui-monospace,monospace}.d-t-brand{fill:var(--brand-strong);font-size:12px;font-weight:600;font-family:inherit}.d-line{fill:none;stroke:var(--border-strong);stroke-width:1.5}.d-line-brand{fill:none;stroke:var(--brand);stroke-width:1.5}.d-line-dash{fill:none;stroke:var(--faint);stroke-width:1.5;stroke-dasharray:4 4}.d-line-danger{fill:none;stroke:var(--danger-border);stroke-width:1.5}.d-arrow{fill:var(--border-strong);stroke:none}.d-arrow-brand{fill:var(--brand);stroke:none}.d-arrow-danger{fill:var(--danger-border);stroke:none}.d-lane{fill:var(--bg-tertiary);stroke:none}.d-sep{stroke:var(--border);stroke-width:1;stroke-dasharray:3 3}@media (max-width: 720px){.diagram svg{width:680px;max-width:none}}
