:root{--bg:#faf9f7;--bg-elevated:#fff;--bg-subtle:#f5f4f1;--fg:#1a1a18;--fg-secondary:#5a5750;--fg-muted:#9e9991;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-subtle:#eff6ff;--line:#e8e5df;--code-bg:#f2f0eb;--code-fg:#26241f;--code-line:#ddd8cf;--shadow:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014;--radius:6px;--radius-lg:10px;--transition:.2s ease;--max-w:680px}@media (prefers-color-scheme:dark){:root{--bg:#131416;--bg-elevated:#1c1d20;--bg-subtle:#1a1b1e;--fg:#e4e0d8;--fg-secondary:#a89f94;--fg-muted:#6e6760;--accent:#60a5fa;--accent-hover:#93bbfc;--accent-subtle:#1e2a3a;--line:#2a2c30;--code-bg:#1c1d21;--code-fg:#e6e1d8;--code-line:#313337;--shadow:0 4px 12px #0003;--shadow-lg:0 8px 24px #00000040}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-size:15px}body{background:var(--bg);min-height:100vh;color:var(--fg);font:400 1rem/1.75 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);transition:color var(--transition);text-decoration:none}a:hover{color:var(--accent-hover)}.article-content a{text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}p,ul,ol,blockquote,pre,figure,table{margin:0 0 1em}hr{border:0;border-top:1px solid var(--line);margin:1.5em 0}h1,h2,h3,h4,h5,h6{margin:1.2em 0 .5em;font-weight:600;line-height:1.35}h1:first-child,h2:first-child,h3:first-child{margin-top:0}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1.1rem}h4,h5,h6,code,kbd,samp,pre{font-size:.93rem}code,kbd,samp,pre{font-family:SF Mono,Fira Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}code:not(pre code){border:1px solid var(--line);background:var(--bg-subtle);color:var(--code-fg);border-radius:3px;margin:0 .15em;padding:.15em .4em;font-size:.85em;line-height:1.4}blockquote{border-left:3px solid var(--accent);color:var(--fg-secondary);background:var(--bg-subtle);border-radius:0 var(--radius) var(--radius) 0;padding:.6em 0 .6em 1.2em}img{border-radius:var(--radius);max-width:100%;height:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;padding:.5em .25em}th{font-weight:600}.site-main{max-width:var(--max-w);margin:0 auto;padding:2rem 1rem}.site-header{background:var(--bg-elevated);border-bottom:1px solid var(--line);z-index:50;position:sticky;top:0}.site-header-inner{max-width:var(--max-w);align-items:center;gap:.75em;min-height:3.25rem;margin:0 auto;padding:0 1rem;display:flex}.site-brand a{color:var(--fg);letter-spacing:-.02em;font-size:1.05rem;font-weight:700}.site-brand a:hover{color:var(--fg)}.nav-toggle{color:var(--fg-secondary);cursor:pointer;border-radius:var(--radius);transition:all var(--transition);background:0 0;border:0;padding:4px;display:none}.nav-toggle:hover{background:var(--bg-subtle);color:var(--fg)}.site-nav{flex-wrap:wrap;gap:.5em;margin-left:auto;display:inline-flex}.site-nav a{border-radius:var(--radius);color:var(--fg-secondary);padding:.35em .7em;font-size:.85rem}.site-nav a:hover{color:var(--fg);background:var(--bg-subtle)}.site-footer{max-width:var(--max-w);border-top:1px solid var(--line);color:var(--fg-muted);margin:0 auto;padding:1.5rem 1rem 2rem;font-size:.85rem}.site-footer a{color:inherit}.site-footer a:hover{color:var(--accent)}.page-header{margin-bottom:1.5rem}.page-header h1{margin-bottom:.35rem;font-size:1.5rem}.page-meta{color:var(--fg-muted);font-size:.85rem}.article-page{line-height:1.75}.article-header{border-bottom:1px solid var(--line);margin-bottom:1.5rem;padding-bottom:1.25rem}.article-header h1{margin-bottom:.5rem;font-size:1.75rem}.article-meta{color:var(--fg-muted);font-size:.85rem}.article-meta time{color:var(--fg-secondary)}.article-content{margin-bottom:2rem}.article-content h2{border-bottom:1px solid var(--line);margin-top:2em;padding-bottom:.3em}.article-content h3{margin-top:1.8em}.post-archive h1{margin-bottom:.75rem;font-size:1.5rem}.post-archive-list{flex-direction:column;display:flex}.post-archive-item{border-bottom:1px solid var(--line);width:100%;transition:background var(--transition);grid-template-columns:7em minmax(0,1fr);align-items:center;gap:.5em 1em;padding:.6em 0;display:grid}.post-archive-item:hover{background:var(--bg-subtle)}.post-archive-item:last-child{border-bottom:none}.post-archive-date{color:var(--fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.post-archive-title-link{color:var(--fg);font-weight:500}.post-archive-title-link:hover{color:var(--accent)}.post-archive-item mark{background:var(--accent-subtle);color:var(--accent);border-radius:2px;padding:0 .1em}.pagination{border-top:1px solid var(--line);flex-wrap:nowrap;justify-content:center;align-items:center;gap:.15em;margin-top:1.5rem;padding-top:1.25rem;display:flex}.page-num{border:1px solid var(--line);background:var(--bg-elevated);min-width:2em;color:var(--fg-secondary);text-align:center;cursor:pointer;border-radius:var(--radius);transition:all var(--transition);padding:.3em .4em;font-size:.85rem}.page-num:hover{color:var(--accent);border-color:var(--accent)}.page-num.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.page-ellipsis{color:var(--fg-muted);padding:0 .15em}.search-box{margin:.5rem 0 1rem;position:relative}.search-box input{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);width:100%;color:var(--fg);transition:all var(--transition);outline:none;padding:.5em .5em .5em 2em}.search-box input::placeholder{color:var(--fg-muted)}.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}.search-icon{color:var(--fg-muted);pointer-events:none;position:absolute;top:50%;left:.6em;transform:translateY(-50%)}.search-clear{color:var(--fg-muted);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px;position:absolute;top:50%;right:.4em;transform:translateY(-50%)}.search-clear:hover{background:var(--bg-subtle)}.result-count{color:var(--fg-muted);margin-bottom:.75rem;font-size:.85rem}.article-nav{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;padding-top:1.25rem;display:grid}.article-nav-link{border:1px solid var(--line);border-radius:var(--radius);transition:all var(--transition);align-items:center;gap:.5em;padding:.75em 1em;display:flex;overflow:hidden}.article-nav-link:hover{border-color:var(--accent);background:var(--bg-subtle)}.article-nav-text{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.article-nav-arrow{color:var(--fg-muted);flex-shrink:0;font-size:1rem}.article-nav-link.nav-next{justify-content:flex-end}.related-posts{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.25rem}.related-posts h2{color:var(--fg-secondary);margin-bottom:.5rem;font-size:1rem}.back-to-top-fab,.toc-fab{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);width:2.25rem;height:2.25rem;color:var(--fg-secondary);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;padding:0;display:flex;position:fixed;right:1.25rem}.back-to-top-fab{opacity:0;pointer-events:none;z-index:40;bottom:3.5rem;transform:translateY(4px)}.back-to-top-fab.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.toc-fab{z-index:41;bottom:6.25rem}.back-to-top-fab:hover,.toc-fab:hover,.toc-fab.is-open{color:var(--accent);border-color:var(--accent)}.toc-drawer{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elevated);width:min(260px,100vw - 2.5rem);max-height:min(60vh,360px);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:all var(--transition);z-index:41;padding:.85rem;position:fixed;bottom:9rem;right:1.25rem;overflow-y:auto;transform:translateY(6px)}.toc-drawer.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.toc-drawer-header{border-bottom:1px solid var(--line);color:var(--fg-secondary);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;font-size:.8rem;display:flex}.toc-drawer-close{color:var(--fg-muted);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:3px;display:flex}.toc-drawer-close:hover{background:var(--bg-subtle)}.toc-drawer-list{list-style:none}.toc-item a{color:var(--fg-secondary);transition:all var(--transition);border-radius:3px;margin:.08em 0;padding:.25em .5em;font-size:.82rem;line-height:1.45;display:block}.toc-item a:hover{background:var(--bg-subtle)}.toc-item.active a{color:var(--accent);background:var(--accent-subtle);font-weight:500}.code-shell{margin:.75em 0;position:relative}pre{white-space:pre;border:1px solid var(--code-line);border-radius:var(--radius);background:var(--code-bg);color:var(--code-fg);margin:0;padding:.75em 1em;font-size:.85rem;line-height:1.5;position:relative;overflow-x:auto}pre code{width:fit-content;min-width:100%;display:block}pre code *,pre code span{background:0 0!important}.code-copy-button{border:1px solid var(--line);background:var(--bg-elevated);width:1.5em;height:1.5em;color:var(--fg-muted);cursor:pointer;opacity:0;transition:all var(--transition);z-index:5;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:.7rem;display:flex;position:absolute;top:.4em;right:.4em}.code-shell:hover .code-copy-button,.code-copy-button.is-copied,.code-copy-button.is-error{opacity:1}.code-copy-button:hover{color:var(--accent);border-color:var(--accent)}.code-copy-button.is-copied{color:var(--accent)}.code-copy-button.is-error{color:#e8945a}.archive-group{margin-top:1.25rem}.archive-year-row{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.archive-year{font-size:1.1rem}.archive-months{flex-direction:column;gap:.4em;display:flex}.archive-month-row{justify-content:space-between;align-items:baseline;margin-bottom:.25rem;display:flex}.archive-month{color:var(--fg-secondary);font-size:.9rem}.archive-count{color:var(--fg-muted);font-size:.8rem}.not-found-page{text-align:center;padding:3rem 0}.not-found-text{color:var(--fg-secondary);margin-bottom:1rem}::selection{background:color-mix(in srgb, var(--accent) 15%, transparent)}@media (max-width:640px){html{font-size:14px}.nav-toggle{margin-left:auto;display:flex}.site-nav{background:var(--bg-elevated);border-bottom:1px solid var(--line);z-index:45;flex-direction:column;padding:.75rem 1rem;display:none;position:absolute;top:100%;left:0;right:0}.site-nav.is-open{display:flex}.site-nav a{width:100%;padding:.5em .75em}.site-header-inner{position:relative}.site-main{padding:1.25rem 1rem 1.5rem}.article-nav{grid-template-columns:1fr}.article-nav-link.nav-next{justify-content:flex-start}.post-archive-item{grid-template-columns:6em minmax(0,1fr)}.archive-year-row{display:block}.toc-fab,.back-to-top-fab,.toc-drawer{right:.75rem}}
