@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");:root{--fg:#37352f;--fg-soft:#787774;--muted:#9b9a97;--border:#ebebea;--bg:#fff;--bg-soft:#f7f6f3;--bg-hover:#f1f1ef;--bg-code:#f6f6f4;--link:#37352f;--accent:#2383e2;--sidebar-width:260px}@media (prefers-color-scheme:dark){:root{--fg:#e6e6e6;--fg-soft:#999;--muted:#6e6e6e;--border:#2a2a2a;--bg:#191919;--bg-soft:#202020;--bg-hover:#252525;--bg-code:#252525;--link:#e6e6e6;--accent:#4a9eff}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font-feature-settings:"cv11","ss01","ss03"}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--link);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;transition:-webkit-text-decoration-color .15s;transition:text-decoration-color .15s;transition:text-decoration-color .15s,-webkit-text-decoration-color .15s}a:hover{-webkit-text-decoration-color:var(--fg-soft);text-decoration-color:var(--fg-soft)}.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}.shell{display:flex;min-height:100vh;width:100%}.sidebar-desktop{width:var(--sidebar-width);flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-soft);padding:40px 14px 32px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.main{flex:1 1;min-width:0;padding:64px 64px 120px}.main-inner{max-width:760px;margin:0 auto}.sidebar-nav h2{font-size:22px;font-weight:700;margin:0 0 6px;padding:0 10px;letter-spacing:-.02em;line-height:1.25}.sidebar-nav h2 a{color:var(--fg);text-decoration:none}.sidebar-nav h2 a:hover{color:var(--fg)}.sidebar-nav p{color:var(--fg-soft);font-size:13px;margin:0 0 20px;padding:0 10px;line-height:1.5}.sidebar-nav .nav-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 10px;margin:4px 0 6px}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav li{margin:1px 0}.sidebar-nav a{display:block;padding:5px 10px;border-radius:5px;color:var(--fg-soft);font-size:14px;text-decoration:none;transition:background .1s,color .1s}.sidebar-nav a.active,.sidebar-nav a:hover{background:var(--bg-hover);color:var(--fg)}.sidebar-nav a.active{font-weight:500}.mobile-menu-btn{display:none;position:fixed;top:14px;left:14px;z-index:50;width:36px;height:36px;border:1px solid var(--border);background:var(--bg);border-radius:8px;align-items:center;justify-content:center;cursor:pointer;color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.04)}.mobile-menu-btn:hover{background:var(--bg-hover)}.mobile-menu-btn svg{width:18px;height:18px}.mobile-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:60;animation:overlayIn .15s ease-out}.mobile-drawer{position:fixed;top:0;left:0;width:min(85vw,320px);height:100vh;background:var(--bg-soft);z-index:70;padding:24px 12px;overflow-y:auto;border-right:1px solid var(--border);animation:drawerIn .2s ease-out}.mobile-drawer[data-state=closed]{animation:drawerOut .15s ease-in forwards}.mobile-drawer-overlay[data-state=closed]{animation:overlayOut .15s ease-in forwards}.mobile-drawer-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:0;background:transparent;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg-soft)}.mobile-drawer-close:hover{background:var(--bg-hover);color:var(--fg)}.mobile-drawer-close svg{width:18px;height:18px}.mobile-drawer-body{padding-top:24px}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes overlayOut{0%{opacity:1}to{opacity:0}}@keyframes drawerIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes drawerOut{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.breadcrumb{color:var(--muted);font-size:13px;margin-bottom:12px;letter-spacing:-.005em}.title{font-size:40px;font-weight:700;margin:0 0 8px;line-height:1.2;letter-spacing:-.02em}.meta{color:var(--muted);font-size:13px;margin-bottom:40px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-weight:600;letter-spacing:-.015em;line-height:1.3}.markdown h1{font-size:30px;margin:40px 0 12px}.markdown h2{font-size:24px;margin:32px 0 10px}.markdown h3{font-size:20px;margin:28px 0 8px}.markdown h4{font-size:17px;margin:24px 0 6px}.markdown p{margin:12px 0}.markdown ol,.markdown ul{padding-left:24px;margin:8px 0}.markdown li,.markdown li>p{margin:4px 0}.markdown blockquote{border-left:3px solid var(--fg);margin:16px 0;padding:2px 16px;color:var(--fg)}.markdown code{padding:2px 6px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875em;color:#eb5757}.markdown code,.markdown pre{background:var(--bg-code);border-radius:4px}.markdown pre{padding:16px 20px;overflow-x:auto;margin:16px 0;font-size:13.5px;line-height:1.6}.markdown pre code{background:transparent;padding:0;color:var(--fg);font-size:inherit}.markdown img{max-width:100%;border-radius:4px;margin:8px 0}.markdown table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14px}.markdown td,.markdown th{border:1px solid var(--border);padding:8px 12px;text-align:left}.markdown th{background:var(--bg-soft);font-weight:500}.markdown hr{border:0;border-top:1px solid var(--border);margin:32px 0}.markdown a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:var(--fg-soft)}.empty h1{color:var(--fg);margin:0 0 8px;font-weight:600}.home{max-width:720px;margin:120px auto;padding:0 24px}.home h1{font-size:48px;margin:0 0 16px;font-weight:700;letter-spacing:-.025em}.home p{color:var(--fg-soft);font-size:17px;line-height:1.6}@media (max-width:768px){.sidebar-desktop{display:none}.mobile-menu-btn{display:flex}.main{padding:64px 24px}.title{font-size:32px}}