:root{color-scheme:light;--brand:#4b3fe3;--brand-strong:#3c2eca;--brand-soft:#eef1ff;--brand-text:#2a22b0;--text:#191920;--text-muted:#5b5b66;--text-faint:#91919b;--bg:#f7f7fa;--surface:#fff;--surface-muted:#f0f0f4;--border:#1919201a;--shadow-sm:0 1px 2px #1919200d;--shadow-md:0 12px 32px -14px #1919202e;--radius:10px;--radius-card:16px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--leading-tight:1.25;--leading-normal:1.6;--leading-relaxed:1.8;--font-sans:system-ui, -apple-system, "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--font-serif:Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Consolas, monospace}:root[data-theme=dark]{color-scheme:dark;--brand:#7b70f8;--brand-strong:#9d94ff;--brand-soft:#201e40;--brand-text:#c7c1ff;--text:#e9e9ee;--text-muted:#a2a2ad;--text-faint:#6f6f79;--bg:#121215;--surface:#1a1a1f;--surface-muted:#232329;--border:#e9e9ee1a;--shadow-sm:0 1px 2px #0006;--shadow-md:0 12px 32px -14px #0000008c}*{box-sizing:border-box}html{font-family:var(--font-sans);scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit}::selection{background:var(--brand-soft);color:var(--brand-text)}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:var(--radius)}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner{align-items:center;gap:var(--space-5);max-width:1120px;margin:0 auto;padding:.7rem 1.5rem;display:flex}.brand{font-family:var(--font-serif);font-weight:600;font-size:var(--text-lg);letter-spacing:.01em;white-space:nowrap;flex-shrink:0;text-decoration:none}.brand:hover{color:var(--brand)}.header-nav{align-items:center;gap:var(--space-5);margin-left:auto;display:flex}.header-nav a{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;text-decoration:none}.header-nav a:hover{color:var(--brand)}.header-actions{align-items:center;gap:var(--space-3);display:flex}.lang-switch{font:500 var(--text-xs) var(--font-mono);letter-spacing:.08em;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-pill);flex-shrink:0;padding:.45rem .75rem;text-decoration:none;transition:color .15s,border-color .15s}.lang-switch:hover{color:var(--brand);border-color:var(--brand)}@media (width<=640px){.header-nav{display:none}pagefind-searchbox{width:130px}}pagefind-searchbox{flex-shrink:1;width:clamp(150px,20vw,220px);min-width:0}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);width:36px;height:36px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);flex-shrink:0;place-items:center;transition:color .15s,border-color .15s;display:grid}.theme-toggle:hover{color:var(--brand);border-color:var(--brand)}.theme-toggle svg{width:18px;height:18px}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}.back-to-top{z-index:90;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);width:42px;height:42px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;place-items:center;transition:opacity .2s,transform .2s,visibility .2s,color .15s,border-color .15s;display:grid;position:fixed;bottom:1.25rem;right:1.25rem;transform:translateY(8px)}.back-to-top.visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{color:var(--brand);border-color:var(--brand)}.back-to-top svg{width:18px;height:18px}.container{max-width:720px;margin:0 auto;padding:0 1.5rem}h1,h2,h3{font-family:var(--font-serif);letter-spacing:.01em;font-weight:600;line-height:var(--leading-tight)}.hero{padding:clamp(2.5rem,8vw,5rem) 0 1rem;position:relative}.hero:before{content:"";z-index:-1;background:radial-gradient(closest-side, color-mix(in srgb, var(--brand) 14%, transparent), transparent 72%);pointer-events:none;width:min(760px,100vw);height:22rem;position:absolute;top:-10rem;left:50%;transform:translate(-50%)}.hero-eyebrow{align-items:center;gap:var(--space-3);margin:0 0 var(--space-5);font:600 var(--text-xs) var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--brand);display:flex}.hero-eyebrow:before{content:"";background:var(--brand);width:28px;height:2px}.hero h1{letter-spacing:-.01em;margin:0;font-size:clamp(2.4rem,6.5vw,3.5rem)}.hero-sub{margin:var(--space-4) 0 0;font-size:var(--text-lg);color:var(--text-muted)}.section-head{align-items:baseline;gap:var(--space-4);margin:var(--space-8) 0 0;display:flex}.section-head h2{font-size:var(--text-xl);margin:0}.section-head:after{content:"";background:var(--border);flex:1;height:1px}.posts{gap:var(--space-4);margin:var(--space-5) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);flex-direction:column;padding:0;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.45s both rise;display:flex;overflow:hidden}.post-card:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb, var(--brand) 45%, transparent);transform:translateY(-3px)}.post-cover{aspect-ratio:16/9;display:block;overflow:hidden}.post-cover img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.post-cover:hover img{transform:scale(1.04)}.post-body{padding:var(--space-5) var(--space-6) var(--space-6);flex-direction:column;display:flex}.post-meta{font:500 var(--text-xs) var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:baseline;display:flex}.post-index{color:var(--brand)}.post-date{color:var(--text-faint)}.post-link{text-decoration:none}.post-title{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-xl);transition:color .15s}.post-link:hover .post-title,.post-link:focus-visible .post-title{color:var(--brand)}.post-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);margin:0}.pagination{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-7);display:flex}.page-btn,.page-num{min-width:40px;height:40px;padding:0 var(--space-4);font:500 var(--text-sm) var(--font-sans);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);justify-content:center;align-items:center;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.page-btn:hover,.page-num:hover{color:var(--brand);border-color:var(--brand)}.page-btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.page-numbers{align-items:center;gap:var(--space-2);margin:0;padding:0;list-style:none;display:flex}.page-num.current{color:var(--brand-on);background:var(--brand);border-color:var(--brand)}.page-ellipsis{padding:0 var(--space-1);color:var(--text-faint)}.tags{gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tags li{font:500 var(--text-xs) var(--font-sans);color:var(--brand-text);background:var(--brand-soft);border-radius:var(--radius-pill);padding:.25rem .75rem}.tags li a{text-decoration:none}.tags li a:hover{text-underline-offset:3px;text-decoration:underline}.page{padding:var(--space-8) 0 var(--space-4)}.page-head h1{font-size:var(--text-3xl);margin:0}.page-head p{margin:var(--space-3) 0 0;font:400 var(--text-sm) var(--font-mono);color:var(--text-faint)}.tag-cloud{gap:var(--space-3);margin:var(--space-6) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tag-cloud a{align-items:center;gap:var(--space-2);font:500 var(--text-sm) var(--font-sans);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.4rem .9rem;text-decoration:none;transition:border-color .15s,color .15s,transform .15s;display:inline-flex}.tag-cloud a:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-2px)}.tag-count{font:500 var(--text-xs) var(--font-mono);color:var(--text-faint)}.tag-post-list{gap:var(--space-2);margin:var(--space-6) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.tag-post-list a{align-items:baseline;gap:var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius);text-decoration:none;transition:background .15s;display:flex}.tag-post-list a:hover{background:var(--surface-muted)}.tag-post-list time{font:400 var(--text-xs) var(--font-mono);color:var(--text-faint);flex-shrink:0;min-width:7.5rem}.tag-post-list span{font-weight:500}.tag-post-list a:hover span{color:var(--brand)}.about-content{margin-top:var(--space-6);max-width:68ch;font-size:var(--text-base);line-height:var(--leading-relaxed)}.about-content h2{font-size:var(--text-xl);margin:0 0 .75rem}.about-content section{margin-bottom:var(--space-7)}.about-content p{margin:0 0 .75rem}.about-content ul{margin:0;padding-left:1.5rem}.about-content li{margin:.3rem 0}.about-content code{font-family:var(--font-mono);background:var(--surface-muted);border-radius:6px;padding:.15rem .4rem;font-size:.9em}.site-footer{margin-top:var(--space-8);padding:var(--space-6) 1.5rem var(--space-8);text-align:center;font:400 var(--text-xs) var(--font-mono);letter-spacing:.06em;color:var(--text-faint);border-top:1px solid var(--border)}.site-footer p{margin:0}.footer-links{margin-top:var(--space-3);justify-content:center;gap:var(--space-3);display:flex}.footer-visits{margin-top:var(--space-3)}.footer-visits .site-visits-count{color:var(--text-muted);font-weight:500}.footer-links a{color:var(--text-muted);text-decoration:none}.footer-links a:hover{color:var(--brand)}.article{padding:var(--space-8) 0 var(--space-4)}.back{align-items:center;gap:var(--space-2);margin-bottom:var(--space-7);font:500 var(--text-sm) var(--font-mono);color:var(--text-muted);text-decoration:none;transition:color .15s;display:inline-flex}.back:hover{color:var(--brand)}.article-head h1{margin:0;font-size:clamp(1.9rem,4.5vw,2.5rem)}.article-head .meta{margin:var(--space-4) 0 0;font:400 var(--text-sm) var(--font-mono);letter-spacing:.04em;color:var(--text-faint)}.article-head .tags{margin-top:var(--space-5)}.article-content{margin-top:var(--space-7);max-width:68ch;font-size:var(--text-base);line-height:var(--leading-relaxed);word-break:break-word}.article-cover{border-radius:var(--radius-card);width:100%;height:auto;margin-top:var(--space-7);box-shadow:var(--shadow-sm);display:block}.article-content h2,.article-content h3,.article-content h4{letter-spacing:.01em;margin:2.6rem 0 1rem}.article-content h2{font-size:var(--text-2xl);border-bottom:1px solid var(--border);padding-bottom:.45rem}.article-content h3{font-size:var(--text-xl)}.article-content h4{font-size:var(--text-lg)}.article-content p{margin:0 0 1.25rem}.article-content a{color:var(--brand-strong);text-underline-offset:3px;text-decoration:underline 1px}.article-content ul,.article-content ol{margin:0 0 1.25rem;padding-left:1.5rem}.article-content li{margin:.35rem 0}.article-content blockquote{border-left:3px solid var(--brand);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface-muted);color:var(--text-muted);margin:1.75rem 0;padding:.75rem 1.25rem}.article-content code{font-family:var(--font-mono);background:var(--surface-muted);border-radius:6px;padding:.15rem .4rem;font-size:.9em}.article-content pre{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);margin:1.75rem 0;overflow-x:auto}.article-content pre code{font-size:.88rem;line-height:var(--leading-normal);background:0 0;padding:0}.article-content img{border-radius:var(--radius);max-width:100%;height:auto}.article-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin:1.75rem 0}.article-content th,.article-content td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.article-content th{background:var(--surface-muted)}.article-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.post-nav{gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.post-nav-item{gap:var(--space-2);padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);flex-direction:column;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.post-nav-item:hover{border-color:var(--brand);transform:translateY(-2px)}.post-nav-item.next{text-align:right}.post-nav-label{font:500 var(--text-xs) var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.post-nav-title{font-family:var(--font-serif);font-weight:600;font-size:var(--text-lg);line-height:var(--leading-tight)}.post-nav-item:hover .post-nav-title{color:var(--brand)}.comments{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border)}.comments-title{margin:0 0 var(--space-5);font-size:var(--text-xl)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.post-card:nth-child(2){animation-delay:60ms}.post-card:nth-child(3){animation-delay:.12s}.post-card:nth-child(4){animation-delay:.18s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.post-card,.post-cover img,.back-to-top{transition:none;animation:none}.post-card:hover,.post-cover:hover img{transform:none}}
