.site-header[data-v-0fb35e8c]{position:sticky;top:0;z-index:50;background:#ffffffd9;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.site-header__inner[data-v-0fb35e8c]{max-width:1180px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px}.site-header__brand[data-v-0fb35e8c]{display:flex;align-items:center;gap:12px;flex-shrink:0}.site-header__logo[data-v-0fb35e8c]{font-size:24px}.site-header__brand-text[data-v-0fb35e8c]{display:flex;flex-direction:column;line-height:1.2}.site-header__brand-text strong[data-v-0fb35e8c]{font-size:15px;font-weight:700}.site-header__brand-text span[data-v-0fb35e8c]{font-size:11px;color:var(--text-muted)}.site-search[data-v-0fb35e8c]{flex:1;max-width:460px;position:relative;display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:999px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.site-search[data-v-0fb35e8c]:focus-within{background:#fff;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.site-search__icon[data-v-0fb35e8c]{padding:0 4px 0 14px;font-size:14px;opacity:.6}.site-search__input[data-v-0fb35e8c]{flex:1;border:none;outline:none;background:transparent;padding:8px 8px 8px 4px;font-size:14px;color:var(--text);font-family:inherit;min-width:0}.site-search__input[data-v-0fb35e8c]::placeholder{color:var(--text-muted)}.site-search__input[data-v-0fb35e8c]::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.site-search__clear[data-v-0fb35e8c]{margin-right:8px;border:none;background:var(--border);color:var(--text-soft);width:22px;height:22px;border-radius:50%;font-size:11px;display:flex;align-items:center;justify-content:center}.site-search__clear[data-v-0fb35e8c]:hover{background:var(--accent-soft);color:var(--accent)}.site-search__hint[data-v-0fb35e8c]{margin-right:10px;background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:11px;color:var(--text-muted)}.site-header__nav[data-v-0fb35e8c]{display:flex;gap:18px;font-size:14px;flex-shrink:0;align-items:center;margin-left:auto}.site-header__nav a[data-v-0fb35e8c]{color:var(--text-soft);font-weight:500;transition:color .15s ease}.site-header__nav a[data-v-0fb35e8c]:hover,.site-header__nav a.is-active[data-v-0fb35e8c]{color:var(--accent)}.site-header__github[data-v-0fb35e8c]{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:#1f2328;color:#fff!important;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;line-height:1;white-space:nowrap;transition:background .15s ease,transform .15s ease}.site-header__github[data-v-0fb35e8c]:hover{background:#2d333b;transform:translateY(-1px)}.site-header__github-icon[data-v-0fb35e8c]{flex-shrink:0}@media(max-width:900px){.site-header__nav[data-v-0fb35e8c]{gap:14px}}@media(max-width:760px){.site-header__inner[data-v-0fb35e8c]{gap:10px;padding:10px 14px}.site-header__brand-text span[data-v-0fb35e8c]{display:none}.site-search__input[data-v-0fb35e8c]{font-size:13px}.site-search__hint[data-v-0fb35e8c]{display:none}.site-header__nav[data-v-0fb35e8c]{gap:10px;font-size:13px}.site-header__github[data-v-0fb35e8c]{padding:6px 10px}.site-header__github-label[data-v-0fb35e8c]{display:none}}@media(max-width:480px){.site-search[data-v-0fb35e8c]{max-width:none}.site-search__input[data-v-0fb35e8c]::placeholder{color:transparent;text-shadow:none}.site-header__nav a[data-v-0fb35e8c]:not(.is-active):not([href="/contact"]):not([href="/"]){display:none}}.app-shell[data-v-ce5212c7]{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}.app-main[data-v-ce5212c7]{flex:1;width:100%}.app-footer[data-v-ce5212c7]{text-align:center;padding:32px 16px 40px;color:var(--text-muted);font-size:13px;border-top:1px solid var(--border);margin-top:48px}.fade-enter-active[data-v-ce5212c7],.fade-leave-active[data-v-ce5212c7]{transition:opacity .18s ease}.fade-enter-from[data-v-ce5212c7],.fade-leave-to[data-v-ce5212c7]{opacity:0}:root{--bg: #f7f7f5;--bg-elev: #ffffff;--text: #1a1a1a;--text-muted: #6b7280;--text-soft: #4b5563;--border: #ececec;--accent: #ff5a1f;--accent-soft: #fff1ea;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 6px 24px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer}.prose{max-width:760px;margin:0 auto;padding:0 20px 80px;font-size:16px;line-height:1.8;color:var(--text)}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:700;line-height:1.3;margin:1.8em 0 .8em}.prose h1{font-size:2rem;margin-top:.4em}.prose h2{font-size:1.5rem;border-left:4px solid var(--accent);padding-left:12px}.prose h3{font-size:1.2rem}.prose p{margin:1em 0}.prose ul,.prose ol{padding-left:1.6em;margin:1em 0}.prose li{margin:.4em 0}.prose code{background:var(--accent-soft);color:#c2410c;padding:2px 6px;border-radius:4px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.prose pre{background:#1f2937;color:#f9fafb;padding:16px 18px;border-radius:var(--radius-md);overflow-x:auto;font-size:14px;line-height:1.6}.prose pre code{background:transparent;color:inherit;padding:0}.prose blockquote{margin:1.4em 0;padding:12px 18px;border-left:4px solid var(--accent);background:var(--accent-soft);color:var(--text-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.prose hr{border:none;border-top:1px dashed var(--border);margin:2em 0}.prose img{border-radius:var(--radius-md);margin:1.2em auto}.prose table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.95em}.prose th,.prose td{border:1px solid var(--border);padding:8px 12px;text-align:left}.prose th{background:var(--accent-soft)}
