:root{--c-bg:#faf8f5;--c-bg-soft:#f5f2ed;--c-bg-mute:#efece7;--c-bg-card:#fff;--c-text:#3a3a3a;--c-text-soft:#6b6b6b;--c-text-mute:#9e9e9e;--c-heading:#2c2c2c;--c-border:#e8e4de;--c-border-hover:#d4cec6;--c-primary:#c44536;--c-primary-light:#e8a89b;--c-primary-bg:#fdf0ed;--c-accent:#2e86ab;--c-accent-light:#a8d5e2;--c-code-bg:#f4f1ea;--c-inline-code:#c44536;--c-shadow:#0000000f;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Source Code Pro", Consolas, monospace;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.5rem;--fs-2xl:2rem;--fs-3xl:2.5rem;--lh-tight:1.3;--lh-normal:1.7;--lh-loose:2;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--content-width:720px;--content-wide:960px;--nav-height:60px;--radius:8px;--radius-sm:4px}@media (prefers-color-scheme:dark){:root{--c-bg:#1a1a1e;--c-bg-soft:#222226;--c-bg-mute:#2c2c32;--c-bg-card:#25252a;--c-text:#e4e4e7;--c-text-soft:#a1a1aa;--c-text-mute:#71717a;--c-heading:#f4f4f5;--c-border:#3f3f46;--c-border-hover:#52525b;--c-primary:#e8604c;--c-primary-light:#7f3d34;--c-primary-bg:#2d1b18;--c-accent:#5bb8d9;--c-accent-light:#1f4a5a;--c-code-bg:#2c2c32;--c-inline-code:#e8604c;--c-shadow:#0003}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--c-text);background:var(--c-bg);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color .3s,background-color .3s}#app{flex-direction:column;min-height:100vh;display:flex}a{color:var(--c-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--c-primary-light)}img{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{color:var(--c-heading);line-height:var(--lh-tight);font-weight:700}h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg)}code{font-family:var(--font-mono);font-size:.9em}.page-container{width:100%;max-width:var(--content-wide);padding:0 var(--space-lg);flex:1;margin:0 auto}.page-title{font-size:var(--fs-2xl);margin-bottom:var(--space-xl);padding-bottom:var(--space-md);border-bottom:2px solid var(--c-border)}.article-grid{gap:var(--space-lg);grid-template-columns:1fr;display:grid}@media (width>=640px){.article-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.article-grid{grid-template-columns:repeat(2,1fr)}}.fade-enter-active,.fade-leave-active{transition:opacity .25s}.fade-enter-from,.fade-leave-to{opacity:0}.article-content h1,.article-content h2,.article-content h3,.article-content h4{margin-top:var(--space-2xl);margin-bottom:var(--space-md)}.article-content p{margin-bottom:var(--space-lg);line-height:var(--lh-loose)}.article-content ul,.article-content ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}.article-content li{margin-bottom:var(--space-sm)}.article-content blockquote{margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);border-left:4px solid var(--c-primary);background:var(--c-bg-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--c-text-soft)}.article-content blockquote p:last-child{margin-bottom:0}.article-content code:not(pre code){background:var(--c-code-bg);color:var(--c-inline-code);border-radius:3px;padding:.15em .4em;font-size:.85em}.article-content pre{margin:var(--space-lg) 0;padding:var(--space-lg);background:var(--c-code-bg);border-radius:var(--radius);font-size:var(--fs-sm);line-height:1.5;overflow-x:auto}.article-content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.article-content img{border-radius:var(--radius);margin:var(--space-lg) auto;display:block}.article-content hr{margin:var(--space-2xl) 0;border:none;border-top:1px solid var(--c-border)}.article-content table{border-collapse:collapse;width:100%;margin:var(--space-lg) 0}.article-content th,.article-content td{padding:var(--space-sm) var(--space-md);border:1px solid var(--c-border);text-align:left}.article-content th{background:var(--c-bg-soft);font-weight:600}.app-header[data-v-15650534]{z-index:100;background:var(--c-bg);border-bottom:1px solid var(--c-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf8f5d9;position:sticky;top:0}@media (prefers-color-scheme:dark){.app-header[data-v-15650534]{background:#1a1a1ed9}}.header-inner[data-v-15650534]{max-width:var(--content-wide);padding:0 var(--space-lg);height:var(--nav-height);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.site-title[data-v-15650534]{align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-xs) 0;background:0 0;border:none;font-family:inherit;display:flex}.site-icon[data-v-15650534]{font-size:1.4rem}.site-name[data-v-15650534]{font-size:var(--fs-lg);color:var(--c-heading);letter-spacing:-.02em;font-weight:700}.nav-links[data-v-15650534]{gap:var(--space-xs);align-items:center;display:flex}.nav-link[data-v-15650534]{cursor:pointer;font-family:inherit;font-size:var(--fs-base);color:var(--c-text-soft);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:0 0;border:none;transition:all .2s}.nav-link[data-v-15650534]:hover{color:var(--c-heading);background:var(--c-bg-mute)}.nav-link.active[data-v-15650534]{color:var(--c-primary);font-weight:600}.menu-toggle[data-v-15650534]{cursor:pointer;padding:var(--space-sm);background:0 0;border:none;flex-direction:column;gap:4px;display:none}.menu-bar[data-v-15650534]{background:var(--c-text);border-radius:2px;width:22px;height:2px;transition:all .2s;display:block}@media (width<=640px){.menu-toggle[data-v-15650534]{display:flex}.nav-links[data-v-15650534]{top:var(--nav-height);background:var(--c-bg);border-bottom:1px solid var(--c-border);padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:none;position:absolute;left:0;right:0}.nav-links.nav-open[data-v-15650534]{display:flex}.nav-link[data-v-15650534]{text-align:left;width:100%;padding:var(--space-md)}}.app-footer[data-v-cc434dcd]{border-top:1px solid var(--c-border);background:var(--c-bg-soft);margin-top:auto}.footer-inner[data-v-cc434dcd]{max-width:var(--content-wide);padding:var(--space-xl) var(--space-lg);text-align:center;margin:0 auto}.footer-text[data-v-cc434dcd]{font-size:var(--fs-sm);color:var(--c-text-mute);margin-bottom:var(--space-xs)}.footer-desc[data-v-cc434dcd]{font-size:var(--fs-sm);color:var(--c-text-mute);margin-bottom:var(--space-sm)}.footer-icp a[data-v-cc434dcd]{font-size:var(--fs-sm);color:var(--c-text-mute);text-decoration:none;transition:color .2s}.footer-icp a[data-v-cc434dcd]:hover{color:var(--c-primary)}.page-container[data-v-1967ccbe]{padding-top:var(--space-xl);padding-bottom:var(--space-3xl)}.article-card[data-v-1c0fad6e]{padding:var(--space-lg);background:var(--c-bg-card);border:1px solid var(--c-border);border-radius:var(--radius);color:inherit;flex-direction:column;text-decoration:none;transition:all .25s;display:flex}.article-card[data-v-1c0fad6e]:hover{border-color:var(--c-primary);box-shadow:0 4px 20px var(--c-shadow);transform:translateY(-2px)}.card-category[data-v-1c0fad6e]{font-size:var(--fs-sm);color:var(--c-primary);background:var(--c-primary-bg);padding:2px var(--space-sm);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);align-self:flex-start;font-weight:500;display:inline-block}.card-title[data-v-1c0fad6e]{font-size:var(--fs-lg);margin-bottom:var(--space-sm);color:var(--c-heading);line-height:var(--lh-tight)}.card-description[data-v-1c0fad6e]{font-size:var(--fs-sm);color:var(--c-text-soft);line-height:var(--lh-normal);margin-bottom:var(--space-md);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.card-footer[data-v-1c0fad6e]{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.card-date[data-v-1c0fad6e]{font-size:var(--fs-sm);color:var(--c-text-mute)}.card-tags[data-v-1c0fad6e]{gap:var(--space-xs);flex-wrap:wrap;display:flex}.card-tag[data-v-1c0fad6e]{color:var(--c-text-mute);background:var(--c-bg-mute);padding:1px var(--space-sm);border-radius:999px;font-size:.75rem}.home[data-v-003c92de]{max-width:var(--content-wide);margin:0 auto}.hero[data-v-003c92de]{text-align:center;padding:var(--space-3xl) var(--space-lg);margin-bottom:var(--space-3xl)}.hero-title[data-v-003c92de]{font-size:var(--fs-3xl);margin-bottom:var(--space-md);background:linear-gradient(135deg, var(--c-primary), var(--c-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-desc[data-v-003c92de]{font-size:var(--fs-lg);color:var(--c-text-soft);line-height:var(--lh-loose);max-width:540px;margin:0 auto}.section-header[data-v-003c92de]{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.section-header h2[data-v-003c92de]{font-size:var(--fs-xl);margin:0}.view-all[data-v-003c92de]{font-size:var(--fs-sm);color:var(--c-primary);font-weight:500}.recent-posts[data-v-003c92de]{margin-bottom:var(--space-3xl)}.section-title[data-v-003c92de]{font-size:var(--fs-xl);margin-bottom:var(--space-lg)}.category-list[data-v-003c92de]{gap:var(--space-md);flex-wrap:wrap;display:flex}.category-chip[data-v-003c92de]{padding:var(--space-sm) var(--space-lg);background:var(--c-bg-soft);border:1px solid var(--c-border);color:var(--c-text);font-size:var(--fs-sm);border-radius:999px;font-weight:500;transition:all .2s}.category-chip[data-v-003c92de]:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-primary-bg)}.article-list-page[data-v-0905f2c5]{max-width:var(--content-wide);margin:0 auto}.filter-bar[data-v-0905f2c5]{gap:var(--space-sm);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.filter-chip[data-v-0905f2c5]{padding:var(--space-xs) var(--space-md);background:var(--c-bg-soft);border:1px solid var(--c-border);cursor:pointer;font-family:inherit;font-size:var(--fs-sm);color:var(--c-text-soft);border-radius:999px;transition:all .2s}.filter-chip[data-v-0905f2c5]:hover{border-color:var(--c-primary);color:var(--c-primary)}.filter-chip.active[data-v-0905f2c5]{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.empty-state[data-v-0905f2c5]{text-align:center;padding:var(--space-3xl);color:var(--c-text-mute)}@media (prefers-color-scheme:light){pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}}@media (prefers-color-scheme:dark){pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}}.article-detail[data-v-b6166935]{max-width:var(--content-width);margin:0 auto}.article-header[data-v-b6166935]{margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--c-border)}.article-title[data-v-b6166935]{font-size:var(--fs-2xl);margin-bottom:var(--space-md);line-height:var(--lh-tight)}.article-meta[data-v-b6166935]{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);font-size:var(--fs-sm);color:var(--c-text-mute);display:flex}.meta-category[data-v-b6166935]{padding:2px var(--space-sm);background:var(--c-primary-bg);color:var(--c-primary);border-radius:var(--radius-sm);font-weight:500}.article-tags[data-v-b6166935]{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tag[data-v-b6166935]{font-size:var(--fs-sm);color:var(--c-text-soft);background:var(--c-bg-mute);padding:2px var(--space-sm);border-radius:var(--radius-sm)}.article-nav[data-v-b6166935]{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--c-border);justify-content:space-between;gap:var(--space-lg);display:flex}.nav-prev[data-v-b6166935],.nav-next[data-v-b6166935]{gap:var(--space-xs);flex-direction:column;max-width:45%;display:flex}.nav-next[data-v-b6166935]{text-align:right;align-items:flex-end}.nav-label[data-v-b6166935]{font-size:var(--fs-sm);color:var(--c-text-mute)}.nav-title[data-v-b6166935]{color:var(--c-heading);font-weight:600}.not-found[data-v-b6166935]{text-align:center;padding:var(--space-3xl)}.not-found h2[data-v-b6166935]{margin-bottom:var(--space-md)}.category-page[data-v-283fdad3]{max-width:var(--content-wide);margin:0 auto}.category-count[data-v-283fdad3]{color:var(--c-text-mute);margin-bottom:var(--space-xl)}.empty-state[data-v-283fdad3]{text-align:center;padding:var(--space-3xl);color:var(--c-text-mute)}.empty-state a[data-v-283fdad3]{margin-top:var(--space-md);display:inline-block}.about-page[data-v-3391af7b]{max-width:var(--content-width);margin:0 auto}.about-content[data-v-3391af7b]{gap:var(--space-2xl);flex-direction:column;display:flex}.about-section[data-v-3391af7b]{padding:var(--space-lg);background:var(--c-bg-card);border:1px solid var(--c-border);border-radius:var(--radius)}.about-section h2[data-v-3391af7b]{font-size:var(--fs-xl);margin-bottom:var(--space-md)}.about-section p[data-v-3391af7b]{color:var(--c-text-soft);line-height:var(--lh-loose);margin-bottom:var(--space-md)}.about-section ul[data-v-3391af7b]{padding-left:var(--space-xl);color:var(--c-text-soft)}.about-section li[data-v-3391af7b]{margin-bottom:var(--space-sm);line-height:var(--lh-loose)}
