:root{color-scheme:light dark;--bg:#f8f8f3;--panel:#fdfdf9;--text:#262d29;--muted:#69736b;--line:#dde2d9;--accent:#356347;--accent-dark:#264c35;--on-accent:#fff;--tint:#eaf0e5;--code:#f0f2eb;--map-bg:#f2f4ec;--dot:#d6dfd1;--danger:#a23232}:root[data-theme=dark]{--bg:#181e1b;--panel:#202823;--text:#e4e8e2;--muted:#a0afa2;--line:#38463b;--accent:#a5c9a9;--accent-dark:#bddac0;--on-accent:#17261b;--tint:#293c2d;--code:#232d26;--map-bg:#202b23;--dot:#3a4b3d;--danger:#f6aaa6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#181e1b;--panel:#202823;--text:#e4e8e2;--muted:#a0afa2;--line:#38463b;--accent:#a5c9a9;--accent-dark:#bddac0;--on-accent:#17261b;--tint:#293c2d;--code:#232d26;--map-bg:#202b23;--dot:#3a4b3d;--danger:#f6aaa6}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.7}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}button,.button{cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:6px;justify-content:center;align-items:center;gap:12px;padding:8px 15px;text-decoration:none;display:inline-flex}button:hover,.button:hover{border-color:var(--accent);color:var(--accent)}.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.primary:hover{background:var(--accent-dark);color:var(--on-accent)}input,textarea,select{background:var(--panel);border:1px solid var(--line);border-radius:5px;max-width:100%;padding:9px 11px}textarea{resize:vertical;width:100%;line-height:1.6}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}label{margin:10px 0 6px;display:block}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,h4{letter-spacing:-.025em;font-weight:650;line-height:1.45}h1{margin:22px 0 26px;font-size:34px}h2{font-size:23px}h3{font-size:19px}p{margin:14px 0}small,.tag{color:var(--muted);font-size:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{background:var(--accent);color:#fff;z-index:100;padding:12px;position:fixed;top:-100px;left:15px}.skip:focus{top:8px}.topbar{border-bottom:1px solid var(--line);background:var(--bg);z-index:20;align-items:center;gap:25px;height:76px;padding:0 30px;display:flex;position:sticky;top:0}.brand{white-space:nowrap;align-items:center;gap:11px;display:flex}.brand strong{font-size:17px}.brand-icon{background:var(--accent);color:var(--on-accent);text-align:center;border-radius:8px;width:35px;height:36px;font:600 31px/35px Georgia;position:relative}.brand-icon>span{font:14px sans-serif;position:absolute;top:4px;right:3px}.edition{color:var(--muted);border-left:1px solid var(--line);padding-left:20px;font-size:11px}.topbar nav{gap:26px;margin-left:auto;font-size:13px;display:flex}.search-link{color:var(--muted);border:1px solid var(--line);border-radius:5px;align-items:center;gap:9px;padding:4px 10px;font-size:12px;display:flex}kbd{border:1px solid var(--line);border-radius:3px;padding:0 5px;font-size:11px}.theme-label{margin:0}.theme-label select{width:84px;padding:5px;font-size:11px}.shell{grid-template-columns:248px minmax(0,1fr) 190px;max-width:1800px;min-height:calc(100vh - 76px);margin:auto;display:grid}.sidebar{border-right:1px solid var(--line);flex-direction:column;height:calc(100vh - 76px);padding:28px 19px 20px;display:flex;position:sticky;top:76px;overflow:auto}.course-nav>summary{display:none}.course-nav>a{border-radius:5px;padding:9px 10px;font-size:13px;display:block}.course-nav .overview{margin-bottom:28px}.active{color:var(--accent);background:var(--tint)}.nav-heading{color:var(--muted);letter-spacing:.07em;justify-content:space-between;margin:21px 0 10px;padding:0 11px;font-size:11px;display:flex}.module-link{border-radius:5px;align-items:flex-start;gap:10px;margin:3px 0;padding:11px 9px;font-size:12px;line-height:1.65;display:flex}.module-number{color:var(--muted);padding-top:5px;font:11px ui-monospace,Consolas,monospace}.module-link.active .module-number{color:var(--accent)}.read-dot{border:1px solid var(--line);border-radius:50%;width:6px;min-width:6px;height:6px;margin:auto 0 auto auto}.read-dot.done{background:var(--accent);border-color:var(--accent)}.sidebar-footer{color:var(--muted);border-top:1px solid var(--line);margin-top:45px;padding:17px 10px 0;font-size:11px}.sidebar-footer>span{justify-content:space-between;display:flex}.sidebar-footer b{font-weight:500}.sidebar-footer small{font-size:10px}.progress-track{background:var(--line);height:4px;margin:12px 0}.progress-track>span{background:var(--accent);height:100%;display:block}main{align-self:start;width:100%;min-width:0;max-width:950px;margin:auto;padding:25px 48px 0}.breadcrumb{color:var(--muted);gap:12px;margin-bottom:30px;font-size:11px;display:flex}.toc{color:var(--muted);padding:36px 20px 20px 0;font-size:11px}.toc-sticky{position:sticky;top:108px}.toc h2{color:var(--text);margin:0 0 15px;font-size:12px}.toc nav{border-left:1px solid var(--line);flex-direction:column;gap:12px;padding-left:14px;line-height:1.8;display:flex}.toc-lab{border-top:1px solid var(--line);margin-top:30px;padding-top:22px}.toc-lab a{margin-top:12px;display:block}.hero{grid-template-columns:1.2fr 1fr;gap:25px;padding:20px 0 30px;display:grid}.course-label{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.course-label i{background:var(--accent);border-radius:50%;width:6px;height:6px;display:block}.hero h1{letter-spacing:-.045em;margin:22px 0;font-size:clamp(30px,3.1vw,47px);font-weight:650;line-height:1.4}.hero h1>span{color:var(--accent);display:block}.hero p{color:var(--muted);font-size:13px;line-height:1.95}.hero-actions{align-items:center;gap:23px;margin-top:26px;font-size:12px;display:flex}.hero .button{min-width:135px;padding:11px 20px}.text-link{font-size:12px}.system-map{border:1px solid var(--line);background-color:var(--map-bg);background-image:radial-gradient(var(--dot) 1px, transparent 1px);background-size:14px 14px;border-radius:12px;align-self:center;padding:22px 18px;position:relative}.map-label{letter-spacing:.13em;color:var(--muted);margin-bottom:18px;font:9px ui-monospace,Consolas,monospace}.map-node{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:5px;padding:9px;font-size:11px;box-shadow:0 2px 2px #00000003}.map-node span:not(.node-mark):not(.loop){color:var(--muted);margin-top:3px;font-size:9px;display:block}.user-node{width:60%;margin:auto}.map-connector{color:var(--muted);text-align:center;height:28px}.agent-node{border-color:var(--accent);background:var(--tint);text-align:left;justify-content:space-around;align-items:center;font-size:12px;display:flex}.node-mark{color:var(--accent);font:700 22px Georgia}.agent-node .loop{color:var(--accent)!important;font-size:25px!important}.map-branches{color:var(--muted);justify-content:space-around;height:27px;display:flex}.map-row{gap:8px;display:flex}.map-row>div{flex:1;padding:8px 2px}.map-base{text-align:center;color:var(--muted);border-top:1px dashed var(--line);letter-spacing:.1em;margin-top:16px;padding-top:15px;font-size:9px}.course-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:10px;padding:21px 0;display:grid}.course-stats>div{border-left:1px solid var(--line);align-items:center;gap:12px;padding-left:15px;display:flex}.course-stats>div:first-child{border:0;padding:0}.course-stats strong{letter-spacing:-.05em;font:500 27px ui-monospace,Consolas,monospace}.course-stats span{color:var(--muted);font-size:11px}.path-section{padding-top:33px}.section-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.section-header h2{margin:0;font-size:20px}.section-header a{color:var(--muted);font-size:11px}.phase-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.phase{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:20px;position:relative}.phase:hover{border-color:var(--accent)}.phase>div{justify-content:space-between;display:flex}.phase-number{color:var(--accent);font:12px ui-monospace,Consolas,monospace}.phase-range{color:var(--muted);font:10px ui-monospace,Consolas,monospace}.phase h3{margin:15px 0 7px;font-size:16px}.phase p{color:var(--muted);margin:0;font-size:11px}.phase-arrow{color:var(--muted);position:absolute;bottom:19px;right:20px}.start-section{border-top:1px solid var(--line);grid-template-columns:1.5fr 1fr;gap:35px;margin-top:35px;padding-top:30px;display:grid}.start-section h2{margin-top:10px;font-size:19px}.start-section p{color:var(--muted);font-size:12px}.start-note{border-left:1px solid var(--line);padding-left:25px}.start-note h3{margin-top:0;font-size:13px}.start-note a{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 0;font-size:11px;display:flex}.boundary{color:var(--muted);margin-top:32px;font-size:10px}.page-footer{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:18px;margin-top:44px;padding:20px 0 28px;font-size:10px;display:flex}.prose{overflow-wrap:anywhere;font-size:16px;line-height:1.9}.prose h1{font-size:31px}.prose h2{margin-top:2.2em}.prose h3{margin-top:1.6em}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.prose pre{background:var(--code);border:1px solid var(--line);border-radius:6px;padding:20px;font-size:12px;line-height:1.8;position:relative;overflow:auto}.prose code{background:var(--code);border-radius:3px;padding:2px 5px;font-family:ui-monospace,Consolas,monospace;font-size:.85em}.prose pre code{font-size:inherit;background:0 0;padding:0}.copy-code{float:right;margin:0 0 8px 12px;padding:3px 8px;font-size:11px}.table-wrap{margin:22px 0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border:1px solid var(--line);text-align:left;min-width:85px;padding:10px 12px}th{background:var(--code);font-weight:600}blockquote{border-left:3px solid var(--accent);background:var(--tint);color:var(--muted);margin:22px 0;padding:1px 20px}details{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin:18px 0;padding:12px 16px}summary{cursor:pointer;font-size:13px;font-weight:600}details[open]>summary{margin-bottom:16px}.knowledge{border-left:3px solid var(--accent)}.interaction{border:1px solid var(--line);background:var(--panel);border-radius:9px;margin:30px 0;padding:22px;font-size:14px}.interaction h3{margin:12px 0}.interaction-title{justify-content:space-between;gap:16px;display:flex}.interaction-title a{font-size:11px}.data-note{color:var(--muted);margin:12px 0;font-size:11px;display:block}.interactive-controls{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.interactive-controls:empty{display:none}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;display:grid}.control-grid label{overflow-wrap:anywhere;font-size:12px}.control-grid input:not([type=checkbox]),.control-grid select{width:100%;margin-top:5px;display:block}.control-grid .full{grid-column:1/-1}.actions{flex-wrap:wrap;align-items:center;gap:9px;margin:15px 0;display:flex}.actions a{font-size:13px}.result-box{background:var(--code);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:5px;margin:15px 0;padding:15px}.result-box h4{margin:0 0 12px;font-size:13px}.result-box pre{white-space:pre-wrap;border:0;margin:0;padding:0;font-size:12px}.result-summary{color:var(--accent);font-size:12px}.checkbox{align-items:center;gap:10px;font-size:13px;display:flex}.exercise{border-bottom:1px solid var(--line);padding:24px 0 32px}.exercise h2{margin-top:12px}.exercise label{font-size:13px}.danger{color:var(--danger)}.quiet{background:0 0}.chapter-complete{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:15px;margin-top:40px;padding-top:22px;display:flex}.chapter-complete label{margin:0;font-size:12px}.chapter-links,.prev-next{justify-content:space-between;gap:20px;margin-top:28px;font-size:12px;display:flex}.lab-tools{flex-wrap:wrap;align-items:center;gap:18px;margin-top:35px;display:flex}.lab-tools a{font-size:13px}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.filter-row button{font-size:12px}.filter-row button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.filter-note{color:var(--muted);font-size:12px}.module-list section{border-bottom:1px solid var(--line);padding:26px 0}.module-list h2{font-size:21px}.module-list .actions{gap:23px}.module-list .dimmed{opacity:.48}.terms section,.source{border-bottom:1px solid var(--line);padding:22px 0}.terms h2{margin:0}.terms small{margin-left:12px}.source dl{grid-template-columns:90px 1fr;gap:9px;font-size:12px;display:grid}.source dd{margin:0}.source dt{color:var(--muted)}.search-box{gap:10px;display:flex}.search-box input{flex:1;min-width:0}#search-results section{border-bottom:1px solid var(--line);padding:18px 0}#search-results h2{font-size:20px}#search-results p{color:var(--muted);font-size:13px}#storage-notice{background:var(--tint);padding:12px;font-size:12px}#progress-records>div{border-bottom:1px solid var(--line);justify-content:space-between;padding:12px 0;font-size:13px;display:flex}.progress-summary{border:1px solid var(--line);border-radius:6px;align-items:center;gap:25px;padding:24px;display:flex}.progress-summary strong{font-size:30px;font-weight:500}.progress-summary span{color:var(--muted)}.not-found{max-width:650px;margin:10vh auto}.not-found a{margin-right:20px}.katex-display{padding:10px 0;overflow:auto}.katex{font-size:1.05em}@media (width>=1550px){.shell{grid-template-columns:270px minmax(0,1fr) 225px}main{max-width:1080px;padding:30px 60px}.hero{gap:45px}.phase-grid{grid-template-columns:repeat(4,1fr)}.phase{padding:18px}.phase h3{font-size:15px}.phase p{max-width:130px}.hero h1{font-size:49px}.system-map{padding:27px}.hero{padding-bottom:45px}.start-section{margin-top:45px}}@media (width<=1200px){.shell{grid-template-columns:222px minmax(0,1fr)}.toc,.edition{display:none}main{padding:22px 35px}.topbar{gap:20px}.hero h1{font-size:37px}}@media (width<=800px){.topbar{gap:12px;height:64px;padding:0 18px}.topbar nav{display:none}.brand strong{font-size:14px}.brand-icon{width:30px;height:31px;font-size:27px;line-height:29px}.search-link{margin-left:auto}.search-link span,.search-link kbd{display:none}.theme-label select{width:75px}.shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;padding:10px 18px;position:relative;top:0}.course-nav>summary{padding:5px;display:block}.course-nav>summary:after{content:" ＋";float:right}.course-nav .overview{margin-bottom:0}.sidebar-footer{display:none}main{padding:22px 22px 0}.breadcrumb{margin-bottom:15px}.hero{grid-template-columns:1fr;padding-top:15px}.hero h1{font-size:39px}.hero h1>span{display:inline}.system-map{width:100%;max-width:440px;margin:15px auto 0}.course-stats{grid-template-columns:repeat(2,1fr);row-gap:20px}.course-stats>div{border:0;padding:0!important}.course-stats strong{font-size:25px}.phase-grid{gap:10px}.phase{padding:16px}.phase h3{font-size:15px}.phase p{padding-right:8px;font-size:11px}.phase-arrow{bottom:10px;right:10px}.phase-range{font-size:8px}.start-section{grid-template-columns:1fr;gap:25px}.start-note{border-left:0;padding:0}.hero-actions{gap:20px}.prose h1{font-size:27px}.prose{font-size:16px}.interaction{padding:15px}.control-grid{grid-template-columns:1fr}.source dl{grid-template-columns:75px 1fr}.page-footer{font-size:9px}.chapter-links{flex-wrap:wrap}.interaction-title{align-items:center}.hero p br{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}.course-nav{background:0 0;border:0;margin:0;padding:0}fieldset{border:1px solid var(--line);border-radius:5px;min-width:0}legend{color:var(--muted);font-size:12px}.agent-node>div>span{color:var(--text)!important}.mobile-toc{display:none}.mobile-toc nav{flex-direction:column;gap:10px;font-size:12px;display:flex}@media (width<=1200px){.mobile-toc{display:block}}html{scroll-behavior:auto}blockquote{color:var(--text)}.result-box>strong{margin-bottom:12px;display:block}.case-facts{white-space:pre-wrap}.shell:has(main.wide){grid-template-columns:248px minmax(0,1fr)}main.wide{max-width:1160px}.shell:has(main.wide)>.toc{display:none}@media (width<=1200px){.shell:has(main.wide){grid-template-columns:222px minmax(0,1fr)}}@media (width<=800px){.shell:has(main.wide){display:block}}
