:root{--bg: #ffffff;--fg: #1a1a1a;--muted: #6b7280;--accent: #2563eb;--border: #e5e7eb;--code-bg: #f6f8fa}:root[data-theme=dark]{--bg: #0d1117;--fg: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--border: #30363d;--code-bg: #161b22}*{box-sizing:border-box}html{scroll-behavior:smooth;transition:background-color .25s ease,color .25s ease}body{transition:background-color .25s ease,color .25s ease}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;color:var(--fg);background:var(--bg);line-height:1.75}.site-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#ffffffe6;backdrop-filter:blur(6px);z-index:50}.brand{font-weight:700;font-size:18px;color:var(--fg);text-decoration:none}.site-header nav{display:flex;align-items:center}.site-header nav a{margin-left:18px;color:var(--muted);text-decoration:none;font-size:15px}.site-header nav a:hover{color:var(--accent)}.gh-link{display:inline-flex;align-items:center;gap:5px}.gh-ico{flex:none}@media(max-width:560px){.gh-text{display:none}}.lang-switch{font-size:15px;white-space:nowrap}.lang-switch a{color:var(--muted);text-decoration:none}.lang-switch a:hover{color:var(--accent)}.lang-switch .cur{color:var(--accent);font-weight:700}.lang-switch .sep{color:var(--border);margin:0 6px}.theme-toggle{margin-left:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--fg);cursor:pointer;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .4s ease,background-color .2s ease,border-color .2s ease}.theme-toggle:hover{transform:rotate(25deg);background:var(--code-bg)}.header-btn{margin-left:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--fg);cursor:pointer;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.header-btn:hover{transform:scale(1.08);background:var(--code-bg);border-color:var(--accent)}main{max-width:760px;margin:0 auto;padding:36px 24px 64px}.series-tag{display:inline-block;font-size:13px;color:var(--accent);background:#eff6ff;padding:3px 12px;border-radius:999px;margin-bottom:12px}h1{font-size:28px;line-height:1.3;margin:8px 0 4px}h2{font-size:21px;margin-top:38px;border-left:4px solid var(--accent);padding-left:10px}h3{font-size:17px;margin-top:26px}time{color:var(--muted);font-size:14px}.lead{color:var(--muted);font-size:16px}.prose{margin-top:24px}.prose p{margin:14px 0}.prose ul,.prose ol{padding-left:22px}.prose li{margin:6px 0}.prose code{background:var(--code-bg);padding:2px 6px;border-radius:4px;font-size:.88em}.prose pre{background:var(--code-bg);padding:16px;border-radius:8px;overflow:auto}.prose pre code{background:none;padding:0}.prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px}.prose th,.prose td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}.prose th{background:#f8fafc}.prose blockquote{border-left:4px solid var(--border);margin:16px 0;padding:4px 16px;color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:13px;padding:32px 16px;border-top:1px solid var(--border)}.post-list{list-style:none;padding:0}.post-list li{padding:16px;border:1px solid var(--border);border-radius:8px;margin-bottom:12px;transition:border-color .15s}.post-list li:hover{border-color:var(--accent)}.post-list a{font-weight:600;color:var(--fg);text-decoration:none;font-size:17px}.post-list .date{color:var(--muted);font-size:13px;margin-top:4px}.sd-anim{border:1px solid var(--border);border-radius:10px;padding:16px;margin:20px 0;background:#fafafa}.sd-row{display:flex;align-items:center;gap:10px;margin:8px 0}.sd-role{font-size:13px;color:var(--muted);width:100px;flex:none}.sd-tokens{display:flex;gap:6px}.sd-tok{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border-radius:6px;background:#fff;border:1px solid var(--border);font-size:13px;font-variant-numeric:tabular-nums}.sd-drafting{border-color:var(--accent);color:var(--accent)}.sd-ok{background:#ecfdf5;border-color:#10b981;color:#047857}.sd-rej{background:#fef2f2;border-color:#ef4444;color:#b91c1c}.sd-status{margin-top:10px;font-size:14px;color:var(--fg);min-height:20px}.sd-btn{margin-top:10px;padding:6px 14px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;cursor:pointer;font-size:14px}.cmp-table.diff-on tr.diff td{background:#fff7ed}.cmp-btn{margin-top:12px;padding:6px 14px;border:1px solid var(--accent);background:#fff;color:var(--accent);border-radius:6px;cursor:pointer;font-size:14px}.fig{margin:24px 0;border:1px solid var(--border);border-radius:10px;padding:18px 14px 12px;background:#fcfcfd}.fig svg{display:block;width:100%;height:auto;max-width:100%}.fig figcaption,.fig .cap{margin-top:10px;text-align:center;font-size:13px;color:var(--muted);line-height:1.6}.prose .fig+p{margin-top:18px}.keybox{border-left:4px solid var(--accent);background:#eff6ff;padding:12px 16px;border-radius:0 8px 8px 0;margin:18px 0;font-size:15px}.keybox strong{color:#1d4ed8}.warnbox{border-left:4px solid #f59e0b;background:#fffbeb;padding:12px 16px;border-radius:0 8px 8px 0;margin:18px 0;font-size:15px}:root[data-theme=dark] .site-header{background:#0d1117e6}:root[data-theme=dark] .sd-anim{background:#161b22}:root[data-theme=dark] .fig{background:#161b22}:root[data-theme=dark] .prose th{background:#161b22}:root[data-theme=dark] .series-tag{background:#58a6ff1f}:root[data-theme=dark] .keybox{background:#11233f}:root[data-theme=dark] .warnbox{background:#3a2e0c}:root[data-theme=dark] .sd-tok{background:#21262d}:root[data-theme=dark] .sd-ok{background:#11271f;border-color:#10b981;color:#6ee7b7}:root[data-theme=dark] .sd-rej{background:#2a1416;border-color:#ef4444;color:#fca5a5}:root[data-theme=dark] .cmp-table.diff-on tr.diff td{background:#2e2410}:root[data-theme=dark] .post-list li{background:#0d1117}:root[data-theme=dark] .post-list li:hover{background:#161b22}.engage{margin-top:40px;padding-top:24px;border-top:1px solid var(--border);text-align:center}.engage-actions{display:inline-flex;gap:12px;justify-content:center;flex-wrap:wrap}.like-btn,.bookmark-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--fg);cursor:pointer;font-size:15px;transition:transform .15s ease,border-color .2s ease,color .2s ease,background-color .2s ease}.like-btn:hover,.bookmark-btn:hover{border-color:var(--accent);color:var(--accent)}.like-btn.liked{color:var(--accent);border-color:var(--accent)}.like-btn.pop{animation:like-pop .35s ease}.bookmark-btn.saved{color:var(--accent);border-color:var(--accent);background:#2563eb14}@keyframes like-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.like-ico,.bookmark-ico{font-size:17px}.like-count{font-variant-numeric:tabular-nums;min-width:1.2em}.engage-tip{color:var(--muted);font-size:14px;margin:14px 0 18px}.reward{display:flex;gap:24px;justify-content:center;align-items:flex-start;flex-wrap:wrap}.reward-col{text-align:center}.reward-qr{width:120px;height:120px;border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--code-bg);overflow:hidden}.reward-qr img{width:100%;height:100%;object-fit:contain;display:block}.reward-col p{margin:8px 0 0;font-size:14px;color:var(--fg)}.bookmarks-panel{position:fixed;top:64px;right:16px;width:320px;max-width:calc(100vw - 32px);max-height:60vh;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #0000001f;z-index:100;padding:14px;transition:background-color .25s,border-color .25s}.bookmarks-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.bookmarks-head button{background:none;border:none;font-size:22px;color:var(--muted);cursor:pointer;line-height:1;padding:0 2px}.bookmarks-head button:hover{color:var(--fg)}.bookmarks-list{list-style:none;padding:0;margin:0}.bookmarks-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.bookmarks-list li:last-child{border-bottom:none}.bookmarks-list a{color:var(--fg);text-decoration:none;font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}.bookmarks-list a:hover{color:var(--accent)}.bookmarks-list button{font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer}.bookmarks-list button:hover{color:#ef4444}.bookmarks-empty{color:var(--muted);font-size:13px;text-align:center;margin:12px 0}:root[data-theme=dark] .bookmarks-panel{box-shadow:0 10px 30px #00000059}.hl-toolbar{position:absolute;z-index:60;display:flex;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:5px;box-shadow:0 4px 14px #0000001f;transform:translate(-50%,-115%);transition:opacity .15s}.hl-toolbar[hidden]{display:none!important}.hl-toolbar button{border:1px solid var(--border);background:var(--code-bg);color:var(--fg);border-radius:6px;padding:4px 10px;font-size:13px;cursor:pointer;white-space:nowrap}.hl-toolbar button:hover{border-color:var(--accent);color:var(--accent)}:root[data-theme=dark] .hl-toolbar{box-shadow:0 4px 14px #00000059}.user-hl{background:#facc1580;border-radius:2px}.user-ul{border-bottom:2px solid #f59e0b;padding-bottom:1px}:root[data-theme=dark] .user-hl{background:#facc1547}:root[data-theme=dark] .user-ul{border-bottom-color:#fbbf24}.comments{margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.comments h2{font-size:20px;margin-bottom:16px;border-left:4px solid var(--accent);padding-left:10px}.giscus-hint{background:var(--code-bg);border:1px dashed var(--border);border-radius:8px;padding:12px;font-size:13px;color:var(--muted);margin-bottom:16px}.giscus-hint a{color:var(--accent)}body:before{content:"";position:fixed;inset:0;background-image:var(--bg-url);background-size:cover;background-position:center top;background-repeat:no-repeat;opacity:.13;z-index:-1;pointer-events:none;transition:opacity .25s ease}:root[data-theme=dark] body:before{opacity:.08}
