:root{--color-primary:#2d3436;--color-primary-light:#f8f8f6;--color-primary-dark:#1a1a1a;--color-accent:#b94e35;--color-accent-light:#fdf0ed;--color-bg-page:#fafaf8;--color-bg-card:#fff;--color-bg-subtle:#f5f5f0;--color-text-primary:#1a1a1a;--color-text-body:#374151;--color-text-secondary:#555e68;--color-border:#deded7;--color-divider:#eeeae3;--serif:Georgia,'Noto Serif SC','Songti SC',serif;--sans:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg-page);color:var(--color-text-body);font:16px/1.7 var(--sans)}a{color:inherit}button,input{font:inherit}button{cursor:pointer}.skip{position:absolute;left:12px;top:-60px;background:#fff;padding:8px;z-index:9}.skip:focus{top:12px}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.site-header{max-width:1280px;margin:auto;padding:22px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--color-border)}.brand{font-weight:800;letter-spacing:.12em;text-decoration:none;font-size:14px}.brand span{font-weight:500;letter-spacing:0;color:var(--color-text-secondary)}nav{display:flex;flex-wrap:wrap;gap:24px}nav a,footer a{text-decoration:none;font-size:14px}nav a:hover,footer a:hover{text-decoration:underline}main{overflow:hidden}section{max-width:1280px;margin:auto;padding:92px 36px}.hero{padding-top:110px;padding-bottom:78px}.eyebrow,.overline{font-size:11px;letter-spacing:.18em;font-weight:750;color:var(--color-accent)}.eyebrow span{margin:0 8px;color:#9b9b91}.hero h1{max-width:850px;font:700 clamp(48px,7vw,94px)/1.13 var(--serif);letter-spacing:-.055em;color:var(--color-text-primary);margin:28px 0}.hero h1 em{color:var(--color-accent);font-weight:400}.hero>p{max-width:625px;font-size:18px;line-height:1.8;margin:0 0 30px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:20px;padding:12px 20px;border-radius:3px;text-decoration:none;font-size:14px;font-weight:650}.button.primary{background:var(--color-primary);color:white}.button.primary:hover{background:#485152}.button.secondary{border:1px solid var(--color-border);background:white}.button.secondary:hover{border-color:var(--color-primary)}.stats{display:flex;gap:0;margin-top:80px;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);width:max-content;max-width:100%;flex-wrap:wrap}.stat{min-width:156px;padding:18px 26px 18px 0;margin-right:26px;border-right:1px solid var(--color-border)}.stat:last-child{border:0}.stat strong{display:block;color:var(--color-primary);font:600 30px/1.1 var(--serif)}.stat span{font-size:12px;color:var(--color-text-secondary)}.overview{background:var(--color-bg-card);max-width:none}.overview>*{max-width:1208px;margin-left:auto;margin-right:auto}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.section-heading h2,.boundary h2{font:650 clamp(30px,4vw,46px)/1.22 var(--serif);color:var(--color-text-primary);letter-spacing:-.035em;margin:14px 0 10px}.section-heading p{margin:0;max-width:660px}.aside-note{font-size:12px;line-height:1.7;text-align:right;color:var(--color-text-secondary);border-left:2px solid var(--color-accent);padding-left:18px;white-space:nowrap}.flow-caption{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding:15px 0}.flow-caption span{font-size:22px;vertical-align:middle;padding:0 12px;color:var(--color-accent)}.blueprint-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border)}.group-card{background:var(--color-bg-card);text-align:left;border:0;padding:25px 19px;min-height:260px;display:flex;flex-direction:column}.group-card:hover,.group-card:focus-visible{background:var(--color-primary-light)}.group-card .index{color:var(--color-accent);font:600 13px var(--serif)}.group-card strong{font:650 24px/1.3 var(--serif);color:var(--color-text-primary);margin:24px 0 8px}.group-card small{font-size:13px;line-height:1.6;color:var(--color-text-secondary)}.group-card .chapter-tags{margin-top:auto;display:flex;flex-wrap:wrap;gap:5px;padding-top:24px}.chapter-tags span{border:1px solid var(--color-border);padding:2px 6px;font-size:11px;color:var(--color-text-secondary)}.legend{font-size:13px;color:var(--color-text-secondary);margin-top:22px}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:25px}.search-label{display:block;flex:1;max-width:570px;font-size:12px;font-weight:700;color:var(--color-text-secondary)}input[type=search]{display:block;width:100%;margin-top:8px;border:1px solid var(--color-border);border-radius:3px;padding:12px 15px;background:#fff;color:var(--color-text-primary)}input[type=search]:focus{border-color:var(--color-accent)}.tabs{display:flex;gap:4px;background:var(--color-bg-subtle);padding:4px;border-radius:3px}.tab{border:0;background:transparent;color:var(--color-text-secondary);padding:9px 17px;font-size:13px;font-weight:650;border-radius:2px}.tab.active{background:var(--color-primary);color:white}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 16px}.filter{padding:6px 12px;border:1px solid var(--color-border);background:white;border-radius:2px;font-size:12px;color:var(--color-text-body)}.filter.active{background:var(--color-accent-light);border-color:var(--color-accent);color:#842d1d}.result-count{font-size:12px;color:var(--color-text-secondary);min-height:20px}.explore-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:32px;align-items:start}.item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:670px;overflow:auto;padding:2px}.item{border:1px solid var(--color-border);background:white;text-align:left;padding:16px;min-height:100px}.item:hover,.item.selected{border-color:var(--color-accent);background:#fffdfb}.item .meta{font-size:11px;color:var(--color-accent);font-weight:700;letter-spacing:.04em}.item strong{display:block;margin-top:6px;color:var(--color-text-primary);font-size:16px}.item small{font-size:12px;color:var(--color-text-secondary)}.detail{border:1px solid var(--color-border);background:white;padding:28px;min-height:300px;position:sticky;top:24px;max-height:75vh;overflow:auto}.detail h3{font:650 28px/1.35 var(--serif);color:var(--color-text-primary);margin:12px 0}.detail p{font-size:14px;line-height:1.75}.detail h4{font-size:13px;letter-spacing:.03em;margin:22px 0 6px}.detail ul{padding-left:20px;margin:7px 0}.detail li{font-size:13px;margin:6px 0}.detail a{color:#9b3924;text-underline-offset:3px}.detail-links{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.detail-links a{border:1px solid var(--color-border);padding:7px 10px;text-decoration:none;font-size:12px}.detail-links a:hover{background:var(--color-accent-light)}.detail-empty{padding:20px 0}.detail .citation{border-left:2px solid var(--color-accent);padding:6px 12px;background:var(--color-primary-light);font-size:12px;line-height:1.7}.section-list{list-style:none;padding:0!important}.section-list li{border-top:1px solid var(--color-divider);padding:8px 0}.section-list b{display:block}.section-list span{color:var(--color-text-secondary)}.empty{padding:30px;background:white;border:1px dashed var(--color-border);font-size:14px}.courses{background:var(--color-bg-subtle);max-width:none}.courses>*{max-width:1208px;margin-left:auto;margin-right:auto}.course-tabs{width:max-content;margin-bottom:20px;margin-left:max(calc((100% - 1208px)/2),36px)}.course-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.course-unit{background:white;border:1px solid var(--color-border);padding:20px}.course-unit span{color:var(--color-accent);font-size:11px;font-weight:750}.course-unit h3{font:650 19px/1.35 var(--serif);color:var(--color-text-primary);margin:9px 0}.course-unit p{font-size:13px;margin:0}.course-unit .reading{margin-top:12px;color:var(--color-text-secondary)}.course-unit button{background:none;border:0;color:#9b3924;text-decoration:underline;padding:10px 0 0;font-size:12px}.boundary{padding-top:90px;padding-bottom:100px}.boundary p{max-width:730px}.boundary .hero-actions{margin-top:25px}footer{border-top:1px solid var(--color-border);max-width:1208px;margin:auto;padding:30px 0 45px;display:flex;justify-content:space-between;gap:20px;color:var(--color-text-secondary);font-size:12px}@media(max-width:1000px){.blueprint-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.course-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.site-header{padding:17px 20px;align-items:start;flex-direction:column}nav{gap:15px}section{padding:60px 20px}.hero{padding-top:75px}.hero h1{font-size:46px}.stats{margin-top:48px}.stat{min-width:120px;padding-right:12px;margin-right:12px}.aside-note{display:none}.blueprint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.group-card{min-height:215px}.toolbar{display:block}.tabs{margin-top:14px;width:max-content}.explore-layout{grid-template-columns:1fr}.item-grid{max-height:420px}.detail{position:static;max-height:none}.course-list{grid-template-columns:1fr}.course-tabs{margin-left:20px}footer{padding:25px 20px}}@media(max-width:420px){.blueprint-grid,.item-grid{grid-template-columns:1fr}.group-card{min-height:180px}.stat{min-width:94px;margin-right:9px}.stat strong{font-size:25px}}.course-intro{grid-column:1/-1;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:13px;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding:8px 0 18px}.course-intro a{color:#9b3924;text-underline-offset:3px}.inline-link{border:0;background:none;color:#9b3924;text-decoration:underline;text-underline-offset:3px;padding:0;text-align:left;font-size:13px}.inline-link:hover{color:#762515}
.paper-section{background:var(--color-bg-card);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.paper-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:24px;align-items:start}.paper-map-view{width:100%;height:520px;background:var(--color-bg-subtle);border:1px solid var(--color-border);overflow:hidden;--markmap-font:13px var(--sans);--markmap-max-width:220px}.paper-map-view .markmap-node>foreignObject>div>div{font-family:var(--sans);color:var(--color-text-primary);background:white;border:1px solid var(--color-border);border-radius:3px;padding:5px 8px}.paper-map-view .markmap-node[data-depth="1"]>foreignObject>div>div{font-family:var(--serif);font-size:17px;background:var(--color-accent-light);border-color:var(--color-accent)}.paper-map-view .markmap-node[data-depth="2"]>foreignObject>div>div{font-weight:700;background:#edf2f1;border-color:#718589}.paper-detail{border:1px solid var(--color-border);background:white;padding:24px;min-height:250px;position:sticky;top:24px}.paper-detail h3{font:650 27px/1.35 var(--serif);color:var(--color-text-primary);margin:12px 0}.paper-detail p{font-size:13px;line-height:1.75}.paper-detail a{display:block;color:#9b3924;text-decoration:underline;text-underline-offset:3px;font-size:12px;margin-top:11px}.paper-detail .citation{border-left:2px solid var(--color-accent);padding:7px 12px;background:var(--color-primary-light)}@media(max-width:700px){.paper-layout{grid-template-columns:1fr}.paper-map-view{height:460px}.paper-detail{position:static}}

.graph-jump{border:1px solid var(--color-border);padding:7px 10px;background:white;color:#9b3924;font-size:12px}.graph-jump:hover{background:var(--color-accent-light)}

/* The paper tree starts with broad concepts; expand a branch to read its methods. */
.paper-layout{grid-template-columns:minmax(0,2fr) minmax(280px,.65fr)}
.paper-map-view{height:620px;--markmap-font:14px var(--sans);--markmap-max-width:240px}
.paper-map-view .markmap-node[data-depth="2"]>foreignObject>div>div{font-size:15px}
.paper-detail p{font-size:14px}
.paper-branch-list{margin:14px 0 18px;padding-left:20px;font-size:14px;line-height:1.8;color:var(--color-text-primary)}
@media(max-width:700px){.paper-layout{grid-template-columns:1fr}.paper-map-view{height:480px}}
/* Chapter-scoped dependency graph: three readable lanes, with DOM buttons and a text edge list. */
.graph-section{border-bottom:1px solid var(--color-border)}.graph-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.graph-toolbar label{font-size:12px;font-weight:700;color:var(--color-text-secondary)}.graph-toolbar select{display:block;width:min(100%,430px);margin-top:7px;padding:11px 14px;background:white;border:1px solid var(--color-border);border-radius:3px;color:var(--color-text-primary);font:inherit}.graph-toolbar p,.graph-note{font-size:12px;color:var(--color-text-secondary);margin:0}.graph-key{display:flex;align-items:center;flex-wrap:wrap;gap:17px;font-size:12px;margin:0 0 12px}.graph-key span:before{content:'';display:inline-block;width:11px;height:11px;margin-right:6px;border:1px solid var(--color-accent);vertical-align:middle;background:var(--color-accent-light)}.graph-key .graph-key-external:before{border-color:var(--color-border);background:#fff}.graph-key span:last-child:before{content:'→';width:auto;height:auto;border:0;background:none;color:var(--color-accent);font-weight:800}.graph-view{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,5vw,72px);padding:22px;background:var(--color-bg-subtle);border:1px solid var(--color-border);min-height:220px}.graph-column{display:flex;flex-direction:column;align-items:stretch;gap:12px;min-width:0;position:relative;z-index:1}.graph-column h3{font-size:13px;color:var(--color-text-secondary);margin:0 0 6px}.graph-node{display:block;width:100%;padding:11px 13px;text-align:left;line-height:1.45;background:#fff;border:1px solid var(--color-border);border-radius:3px;box-shadow:0 2px 8px #2d34360a}.graph-node.local{background:var(--color-accent-light);border-color:var(--color-accent)}.graph-node:hover,.graph-node.selected{border-color:var(--color-accent);box-shadow:0 0 0 2px #b94e3533}.graph-node-chapter{display:block;font-size:11px;color:var(--color-text-secondary);overflow-wrap:anywhere}.graph-node strong{display:block;font-size:15px;color:var(--color-text-primary);overflow-wrap:anywhere}.graph-empty{font-size:12px;color:var(--color-text-secondary);margin:0}.graph-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}.graph-lines path{fill:none;stroke:#a34934;stroke-width:1.5;stroke-opacity:.65}.graph-lines marker path{fill:#a34934;stroke:none;stroke-opacity:1}.graph-relations{margin:20px 0 0;border-top:1px solid var(--color-border)}.graph-relations:empty{display:none}.graph-relations h3{font-size:13px;margin:14px 0 5px}.graph-relations ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px;margin:0;padding-left:22px;font-size:12px;color:var(--color-text-secondary)}.graph-note{margin-top:18px}@media(max-width:700px){.graph-view{display:flex;flex-direction:column;gap:22px;padding:16px}.graph-column{gap:10px}.graph-column h3{margin:0}.graph-node{padding:10px 12px}.graph-lines{display:none}.graph-relations ul{grid-template-columns:1fr}.graph-key{gap:10px}}
/* Local Agent command stays readable on narrow detail panels. */
.agent-command { margin: 1rem 0; padding: .9rem; border: 1px solid currentColor; border-radius: 6px; }
.agent-command code { display: block; overflow-wrap: anywhere; white-space: normal; margin: .5rem 0; }
