:root{color-scheme:light;--bg:#fbfbfa;--bg-soft:#f2f2f0;--surface:#fff;--text:#1f2328;--text-soft:#57606a;--text-faint:#8b949e;--border:#e6e6e3;--accent:#4f46e5;--accent-soft:#eceafd;--code-bg:#0d1117;--code-inline-bg:#eef0f3;--code-inline-text:#b5145c;--max:46rem;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}:root[data-theme=dark]{color-scheme:dark;--bg:#0f1115;--bg-soft:#171a21;--surface:#161922;--text:#e6e6e3;--text-soft:#a9b1ba;--text-faint:#6e7681;--border:#262b36;--accent:#a5a1ff;--accent-soft:#20222e;--code-bg:#0b0e14;--code-inline-bg:#20242e;--code-inline-text:#f0879c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0f1115;--bg-soft:#171a21;--surface:#161922;--text:#e6e6e3;--text-soft:#a9b1ba;--text-faint:#6e7681;--border:#262b36;--accent:#a5a1ff;--accent-soft:#20222e;--code-bg:#0b0e14;--code-inline-bg:#20242e;--code-inline-text:#f0879c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;margin:0;font-size:1.0625rem;line-height:1.7;display:flex}.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:1.25rem}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{text-decoration:underline}main{flex:1 0 auto;padding-block:2.5rem 4rem}.site-header{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:saturate(140%)blur(8px);z-index:10;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;height:3.75rem;display:flex}.brand{letter-spacing:-.01em;color:var(--text);font-size:1.05rem;font-weight:700;text-decoration:none}.brand:hover{color:var(--accent);text-decoration:none}.nav{align-items:center;gap:1.25rem;display:flex}.nav a{color:var(--text-soft);font-size:.95rem;text-decoration:none}.nav a:hover{color:var(--accent)}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--text-soft);cursor:pointer;border-radius:.5rem;place-items:center;padding:0;display:inline-grid}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle svg{width:1rem;height:1rem}:root[data-theme=dark] .theme-toggle .icon-moon,:root:not([data-theme=light]) .theme-toggle .icon-moon,.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun,:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}}:root[data-theme=light] .theme-toggle .icon-moon{display:block}:root[data-theme=light] .theme-toggle .icon-sun{display:none}.site-footer{border-top:1px solid var(--border);color:var(--text-faint);flex-shrink:0;padding-block:2rem;font-size:.875rem}.site-footer a{color:var(--text-soft);text-decoration:none}.site-footer a:hover{color:var(--accent)}.intro{margin-bottom:3rem}.intro h1{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.9rem}.intro p{color:var(--text-soft);margin:0}.post-list{flex-direction:column;gap:2.25rem;margin:0;padding:0;list-style:none;display:flex}.post-item__date{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:.8rem;font-family:var(--font-mono);letter-spacing:.02em}.post-item__title{letter-spacing:-.01em;margin:.35rem 0 .5rem;font-size:1.3rem;line-height:1.3}.post-item__title a{color:var(--text);text-decoration:none}.post-item__title a:hover{color:var(--accent)}.post-item__desc{color:var(--text-soft);margin:0 0 .65rem}.tag-row{flex-wrap:wrap;gap:.4rem;display:flex}.tag{font-size:.72rem;font-family:var(--font-mono);color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:.1rem .6rem;text-decoration:none}.tag:hover{color:var(--accent);border-color:var(--accent)}.post-header{border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:1.5rem}.post-header h1{letter-spacing:-.025em;margin:.5rem 0 .85rem;font-size:2.1rem;line-height:1.2}.post-header__meta{color:var(--text-faint);font-size:.85rem;font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.prose{font-size:1.0625rem}.prose>*+*{margin-top:1.25rem}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{letter-spacing:-.015em;scroll-margin-top:5rem;line-height:1.3}.prose h2{border-bottom:1px solid var(--border);margin-top:2.75rem;padding-bottom:.3rem;font-size:1.5rem}.prose h3{margin-top:2rem;font-size:1.2rem}.prose h4{color:var(--text-soft);margin-top:1.75rem;font-size:1.05rem}.prose h5,.prose h6{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;margin-top:1.5rem;font-size:.95rem}.prose a{font-weight:500}.prose strong{color:var(--text);font-weight:680}.prose ul,.prose ol{padding-left:1.4rem}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.4rem}.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text-soft);border-radius:0 .4rem .4rem 0;margin:1.5rem 0;padding:.4rem 0 .4rem 1.1rem}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose img{border:1px solid var(--border);background:var(--surface);border-radius:.5rem;max-width:100%;height:auto;margin-inline:auto;display:block}.prose .table-scroll{margin:1.5rem 0;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.92rem}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.prose thead th{background:var(--bg-soft);font-weight:650}.prose tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--bg-soft) 45%, transparent)}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--code-inline-bg);color:var(--code-inline-text);word-break:break-word;border-radius:.35rem;padding:.12em .38em;font-size:.86em}.prose pre{border:1px solid var(--border);border-radius:.6rem;padding:1rem 1.15rem;font-size:.86rem;line-height:1.6;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-family:var(--font-mono);color:inherit;font-size:inherit;background:0 0;padding:0}.post-nav{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;padding-top:1.5rem;display:grid}.post-nav__link{border:1px solid var(--border);background:var(--surface);border-radius:.6rem;flex-direction:column;gap:.3rem;padding:.85rem 1.05rem;text-decoration:none;transition:border-color .15s;display:flex}a.post-nav__link:hover{border-color:var(--accent);text-decoration:none}.post-nav__next{text-align:right}.post-nav__dir{font-size:.74rem;font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.02em}.post-nav__title{color:var(--text);font-size:.95rem;font-weight:620;line-height:1.35}a.post-nav__link:hover .post-nav__title{color:var(--accent)}.post-nav__placeholder{display:block}.post-footer{justify-content:space-between;margin-top:1.5rem;font-size:.9rem;display:flex}.post-footer a{text-decoration:none}@media (width<=640px){body{font-size:1rem}.post-header h1{font-size:1.7rem}.intro h1{font-size:1.6rem}main{padding-block:1.75rem 3rem}.post-nav{grid-template-columns:1fr}.post-nav__next{text-align:left}.post-nav__placeholder{display:none}}
