.fade-enter-active,.fade-leave-active{transition:opacity .18s ease,transform .18s ease}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}.site-footer .beian{margin-left:2px}.site-footer .beian a{color:var(--text-muted)}.site-footer .beian a:hover{color:var(--accent)}:root{--bg: #ffffff;--bg-soft: #f7f8fb;--bg-card: #ffffff;--text: #1f2430;--text-soft: #5b6472;--text-muted: #9aa3b2;--border: #e7e9ef;--accent: #4f46e5;--accent-soft: #eef0ff;--accent-hover: #4338ca;--code-bg: #f6f8fa;--radius: 14px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 8px 24px rgba(16, 24, 40, .06);--shadow-hover: 0 4px 12px rgba(79, 70, 229, .12), 0 12px 32px rgba(16, 24, 40, .1);--maxw: 860px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg-soft);line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-hover)}img{max-width:100%;display:block}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{position:sticky;top:0;z-index:50;background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.nav{display:flex;align-items:center;justify-content:space-between;height:60px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--text);letter-spacing:-.2px}.brand .logo{width:30px;height:30px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--font-mono);font-size:13px;font-weight:700}.brand:hover{color:var(--text)}.nav-links{display:flex;gap:6px;align-items:center}.nav-links a{color:var(--text-soft);font-size:15px;padding:8px 14px;border-radius:9px;font-weight:500}.nav-links a:hover{background:var(--bg-soft);color:var(--text)}.nav-links a.router-link-active{color:var(--accent);background:var(--accent-soft)}.hero{padding:48px 0 28px;text-align:center}.hero h1{font-size:32px;margin:0 0 10px;letter-spacing:-.6px}.hero p{color:var(--text-soft);margin:0 auto;max-width:560px;font-size:16px}.hero .tagline{display:inline-block;margin-top:16px;font-family:var(--font-mono);font-size:13px;color:var(--accent);background:var(--accent-soft);padding:5px 12px;border-radius:999px}.page{padding-bottom:56px}.section-title{font-size:20px;margin:28px 0 16px;display:flex;align-items:center;gap:8px}.section-title .count{font-size:13px;color:var(--text-muted);font-weight:500}.post-list{display:grid;gap:16px}.post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;display:block}.post-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:#d6d9f5}.post-card .pc-meta{font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:10px;margin-bottom:8px}.post-card .pc-date{font-family:var(--font-mono)}.post-card h2{font-size:20px;margin:0 0 8px;line-height:1.4;color:var(--text)}.post-card:hover h2{color:var(--accent)}.post-card .pc-summary{color:var(--text-soft);font-size:15px;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pc-tags{display:flex;flex-wrap:wrap;gap:8px}.tag-chip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;padding:3px 10px;border-radius:999px;transition:all .15s ease}.tag-chip:hover{background:var(--accent);color:#fff}.tag-chip .num{opacity:.7;font-size:11px}.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:28px;flex-wrap:wrap}.pagination button{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-soft);border-radius:10px;cursor:pointer;font-size:14px;font-family:inherit;transition:all .15s ease}.pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pagination button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pagination button:disabled{opacity:.45;cursor:not-allowed}.pagination .ellipsis{color:var(--text-muted);padding:0 4px}.article{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px 40px;margin-top:8px}.article-header{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:24px}.article-header h1{font-size:28px;line-height:1.35;margin:0 0 12px;letter-spacing:-.4px}.article-meta{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:14px;flex-wrap:wrap}.article-meta .date{font-family:var(--font-mono)}.back-link{display:inline-flex;align-items:center;gap:6px;margin:18px 0;font-size:14px;color:var(--text-soft)}.back-link:hover{color:var(--accent)}.tag-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.tag-cloud .tag-chip{font-size:14px;padding:6px 14px}.about{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px 40px}.about .avatar{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;display:grid;place-items:center;font-size:34px;font-weight:700;margin-bottom:18px}.about h1{margin:0 0 4px;font-size:24px}.about .role{color:var(--accent);font-size:14px;font-weight:600;margin-bottom:18px}.about p{color:var(--text-soft)}.contact-list{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:12px}.contact-list li{display:flex;align-items:center;gap:12px;font-size:15px}.contact-list .ico{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:16px;flex-shrink:0}.contact-list a{color:var(--text);word-break:break-all}.contact-list a:hover{color:var(--accent)}.site-footer{border-top:1px solid var(--border);background:var(--bg);padding:26px 0;text-align:center;color:var(--text-muted);font-size:13.5px}.site-footer a{color:var(--text-soft)}.markdown-body{font-size:16px;color:var(--text);word-wrap:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{line-height:1.35;margin:1.6em 0 .7em;letter-spacing:-.2px}.markdown-body h1{font-size:1.7em}.markdown-body h2{font-size:1.4em;padding-bottom:.3em;border-bottom:1px solid var(--border)}.markdown-body h3{font-size:1.18em}.markdown-body p{margin:0 0 1em}.markdown-body ul,.markdown-body ol{padding-left:1.5em;margin:0 0 1em}.markdown-body li{margin:.3em 0}.markdown-body blockquote{margin:0 0 1em;padding:8px 18px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;color:var(--text-soft)}.markdown-body code{font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);padding:2px 6px;border-radius:6px;color:#c0392b}.markdown-body pre{margin:0 0 1.2em;border-radius:12px;overflow:auto;border:1px solid var(--border)}.markdown-body pre code{display:block;padding:16px 18px;background:transparent;color:inherit;font-size:13.5px;line-height:1.6}.markdown-body img{border-radius:12px;margin:.6em 0 1.2em;box-shadow:var(--shadow)}.markdown-body a{text-decoration:underline;text-underline-offset:2px}.markdown-body table{border-collapse:collapse;width:100%;margin:0 0 1.2em;font-size:14.5px}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:8px 12px;text-align:left}.markdown-body th{background:var(--bg-soft)}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:2em 0}.markdown-body .hljs{background:var(--code-bg)!important}@media (max-width: 640px){.nav{height:54px}.nav-links a{padding:7px 9px;font-size:14px}.brand{font-size:16px}.hero{padding:32px 0 20px}.hero h1{font-size:25px}.article,.about{padding:24px 20px}.article-header h1{font-size:23px}.markdown-body{font-size:15px}.post-card{padding:18px}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.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}
