:root{color:#20272b;background:#f3f7f9;font-family:Microsoft YaHei UI,Segoe UI,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #20272b;--muted: #66747c;--line: #d7e2e8;--paper: #f9fbfc;--accent: #3b82a0;--accent-soft: #e7f2f7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:linear-gradient(90deg,rgba(59,130,160,.035) 1px,transparent 1px) 0 0 / 32px 32px,var(--paper)}body.viewer-open{overflow:hidden}.reading-progress{position:fixed;z-index:20;inset:0 0 auto;height:3px;transform:scaleX(0);transform-origin:left;background:#2dbceb}.site-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid rgba(215,226,232,.9);background:#f9fbfceb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:14px;font-weight:700;letter-spacing:0;text-decoration:none}.brand-mark{display:inline-block;width:26px;height:26px;object-fit:cover}.header-label{color:var(--muted);font-size:13px}.page-shell{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,820px);gap:clamp(32px,6vw,90px);width:min(1180px,calc(100% - 48px));margin:0 auto;padding:72px 0 120px}.toc-panel{position:sticky;top:92px;align-self:start;padding-top:8px}.toc-kicker{margin-bottom:16px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}#toc{display:grid;gap:5px}.toc-link{display:block;padding:6px 10px;border-left:2px solid transparent;color:var(--muted);font-size:13px;line-height:1.45;text-decoration:none;transition:color .16s ease,border-color .16s ease,background .16s ease}.toc-link.level-3{padding-left:22px;font-size:12px}.toc-link:hover,.toc-link.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.article{min-width:0}.article>h1{max-width:680px;margin:0 0 28px;color:var(--ink);font-size:clamp(34px,5vw,58px);font-weight:800;letter-spacing:0;line-height:1.12}.article>p:first-of-type{max-width:680px;margin:0 0 66px;color:var(--muted);font-size:17px;line-height:1.9}.article h2{margin:72px 0 20px;padding-top:20px;border-top:1px solid var(--line);color:var(--ink);font-size:27px;line-height:1.35}.article h3{margin:38px 0 14px;font-size:20px}.article p,.article li{color:#3d484e;font-size:16px;line-height:1.9}.article ul,.article ol{padding-left:1.35em}.article li+li{margin-top:9px}.article strong{color:var(--ink);font-weight:700}.article .download-link{display:inline-flex;align-items:center;min-height:36px;padding:6px 13px;border:1px solid #b9cbd4;border-radius:6px;background:#f9fbfc;color:#2f5668;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.article .download-link:hover{border-color:#7faec2;background:#eaf4f8;color:#245f79}.article .download-link:focus-visible{outline:2px solid #2dbceb;outline-offset:2px}.article code{padding:2px 6px;border-radius:4px;background:#e8f0f4;color:#2f6f89;font-size:.92em}.article blockquote{margin:10px 0;padding:2px 12px;border-left:3px solid var(--accent);background:#edf5f8}.article blockquote p{margin:0;color:#456572}.article img{display:inline-block;max-width:100%;height:auto;max-height:680px;margin:24px 0 34px;border:1px solid var(--line);border-radius:6px;cursor:zoom-in;box-shadow:0 14px 35px #293b4414}.article img:hover{box-shadow:0 18px 44px #293b4426}.loading-state{color:var(--muted);font-size:15px}.image-viewer{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:32px;background:#171e22d1}.image-viewer[hidden]{display:none}.image-viewer img{max-width:min(1200px,94vw);max-height:90vh;object-fit:contain}.image-viewer-close{position:fixed;top:20px;right:26px;border:0;background:transparent;color:#fff;font-size:38px;line-height:1;cursor:pointer}@media(max-width:820px){.site-header{padding:0 20px}.header-label{display:none}.page-shell{display:block;width:min(100% - 32px,680px);padding-top:44px}.toc-panel{display:none}.article>h1{font-size:36px}.article>p:first-of-type{margin-bottom:48px;font-size:15px}.article h2{margin-top:56px;font-size:24px}.article p,.article li{font-size:15px}}
