:root{--fg: #1f2328;--fg-muted: #59636e;--bg: #ffffff;--bg-soft: #f6f8fa;--border: #d1d9e0;--accent: #2563eb;--accent-soft: #eff6ff;--content-w: 880px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--fg);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;line-height:1.75}.site-header{border-bottom:1px solid var(--border);padding:.6rem 1.25rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem;position:sticky;top:0;background:var(--bg);z-index:10}.site-header .brand{font-weight:700;font-size:1.05rem;color:var(--fg);text-decoration:none}.site-header nav{display:flex;flex-wrap:wrap;gap:.9rem}.site-header nav a{color:var(--fg-muted);text-decoration:none;font-size:.9rem}.site-header nav a:hover{color:var(--accent)}main{max-width:var(--content-w);margin:0 auto;padding:2rem 1.25rem 4rem}.site-footer{border-top:1px solid var(--border);padding:1.25rem;color:var(--fg-muted);font-size:.85rem;max-width:var(--content-w);margin:0 auto}h1{font-size:1.9rem;line-height:1.3;margin:.4rem 0 1.2rem}h2{font-size:1.35rem;margin:2.4rem 0 .8rem;padding-top:.6rem;border-top:1px solid var(--border)}h3{font-size:1.1rem;margin:1.6rem 0 .5rem}p{margin:.7rem 0}a{color:var(--accent)}code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.88em;background:var(--bg-soft);border:1px solid var(--border);border-radius:4px;padding:.1em .35em;overflow-wrap:anywhere}pre{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:.9rem 1rem;overflow-x:auto;line-height:1.55}pre code{background:none;border:none;padding:0;font-size:.85rem;overflow-wrap:normal;word-break:normal}blockquote{margin:.9rem 0;padding:.55rem 1rem;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 6px 6px 0;color:var(--fg);font-size:.92rem;min-width:0;overflow-wrap:anywhere}blockquote p{margin:.25rem 0}blockquote code{background:#ffffffb3}table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.92rem;display:block;overflow-x:auto}th,td{border:1px solid var(--border);padding:.5rem .7rem;text-align:left;vertical-align:top}th{background:var(--bg-soft)}.hero{margin-bottom:2rem}.hero .sub{color:var(--fg-muted);font-size:1.05rem}.map-wrap{margin:1.5rem 0;overflow-x:auto}.map{display:block;min-width:720px}.map a rect{fill:#fff;stroke:var(--border);stroke-width:1.5;transition:all .15s}.map a:hover rect{fill:var(--accent-soft);stroke:var(--accent)}.map a text{fill:var(--fg);pointer-events:none}.map .arrow{stroke:var(--fg-muted);stroke-width:1.5;fill:none;marker-end:url(#arrowhead)}.map .arrow-label{fill:var(--fg-muted);font-size:11px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1.2rem 0}.card{border:1px solid var(--border);border-radius:8px;padding:1rem 1.1rem;text-decoration:none;color:var(--fg);display:block}.card:hover{border-color:var(--accent);background:var(--accent-soft)}.card .num{color:var(--accent);font-weight:700;font-size:.85rem}.card .t{font-weight:650;margin:.15rem 0}.card .d{color:var(--fg-muted);font-size:.88rem}.chapter{min-width:0}.chapter>*{max-width:100%}.kicker{color:var(--accent);font-size:.85rem;font-weight:600;letter-spacing:.04em}h1 .zh{color:var(--fg-muted);font-weight:500;font-size:.75em}.diagram{margin:1.4rem 0;min-width:0}.diagram__image{display:block;width:100%;max-width:100%;height:auto;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-soft)}.diagram figcaption{margin-top:.45rem;color:var(--fg-muted);font-size:.85rem}.diagram__source{margin-top:.55rem;color:var(--fg-muted);font-size:.85rem}.diagram__source summary{cursor:pointer}.diagram__source pre{max-width:100%}.prevnext{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--border);font-size:.92rem}@media(max-width:720px){.site-header{align-items:stretch;gap:.25rem;padding:.55rem 1rem 0}.site-header .brand{line-height:2.25rem}.site-header nav{display:flex;flex-wrap:nowrap;gap:.85rem;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.site-header nav a{display:inline-flex;flex:0 0 auto;align-items:center;min-height:44px;white-space:nowrap}main{padding:1.5rem 1rem 3rem}.site-footer{padding-inline:1rem}h1{font-size:1.7rem}.cards{grid-template-columns:1fr}.prevnext{flex-wrap:wrap}.prevnext span{flex:1 1 100%}.prevnext span:last-child{text-align:right}}
