:root{--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Helvetica, Arial, sans-serif;--font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", Georgia, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--bg: #f8f7f3;--bg-soft: #f1efea;--bg-card: #ffffff;--text: #1c1c1f;--text-soft: #52525b;--text-faint: #8b8b93;--accent: #6d3bd4;--accent-soft: #f2ecfd;--border: rgba(28, 28, 31, .09);--border-strong: rgba(28, 28, 31, .16);--shadow: 0 1px 2px rgba(28, 28, 31, .04), 0 8px 24px -12px rgba(28, 28, 31, .12);--w-content: 760px;--w-wide: 1240px;--radius: 10px}html.dark{--bg: #101012;--bg-soft: #17171a;--bg-card: #1a1a1e;--text: #e8e8ea;--text-soft: #a5a5ad;--text-faint: #6f6f78;--accent: #a78bfa;--accent-soft: #241c3d;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s ease,color .2s ease}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:#fff}.container{width:100%;max-width:var(--w-wide);margin:0 auto;padding:0 24px}.container-narrow{max-width:var(--w-content)}main{min-height:60vh;padding-top:88px}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-serif);font-size:17px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.brand-mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#b18cff);color:#fff;display:grid;place-items:center;font-family:var(--font-serif);font-size:15px;flex-shrink:0}.site-nav{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--text-soft)}.site-nav a{padding:6px 10px;border-radius:7px;transition:color .15s ease,background-color .15s ease}.site-nav a:hover{color:var(--text);background:var(--bg-soft)}.site-nav a.active{color:var(--accent);font-weight:500}.header-actions{display:flex;align-items:center;gap:6px}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:0;background:transparent;color:var(--text-faint);border-radius:8px;cursor:pointer;transition:color .15s ease,background-color .15s ease}.icon-btn:hover{color:var(--text);background:var(--bg-soft)}.icon-btn svg{width:18px;height:18px}.tabs{display:flex;gap:6px;padding:28px 0 8px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;padding:5px 14px;border-radius:999px;border:1px solid var(--border);font-size:13px;color:var(--text-soft);transition:all .15s ease}.tab:hover{border-color:var(--border-strong);color:var(--text)}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.hero{padding:44px 0 32px}.hero h1{font-family:var(--font-serif);font-size:34px;line-height:1.35;font-weight:600;margin:0 0 14px;letter-spacing:-.01em}.hero p{margin:0;font-size:16px;color:var(--text-soft);max-width:560px}.hero .accent{color:var(--accent)}.post-grid{display:grid;grid-template-columns:1fr;gap:24px;padding:16px 0 64px;list-style:none;margin:0}@media(min-width:640px){.post-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.post-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1280px){.post-grid{grid-template-columns:repeat(4,1fr)}}.post-card{display:flex;flex-direction:column;height:100%;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.post-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--border-strong)}.post-card-cover{aspect-ratio:16 / 9;width:100%;object-fit:cover;background:var(--bg-soft)}.post-card-cover--placeholder{display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-soft),var(--bg-soft));border-bottom:1px solid var(--border)}.post-card-cover--placeholder span{font-family:var(--font-mono);font-size:26px;color:var(--accent);opacity:.55;letter-spacing:.05em}.post-card-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}.post-card-cat{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:500}.post-card-title{font-family:var(--font-serif);font-size:17px;line-height:1.45;font-weight:600;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-desc{font-size:13px;line-height:1.6;color:var(--text-soft);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-meta{margin-top:auto;padding-top:10px;font-size:12px;color:var(--text-faint);display:flex;align-items:center;gap:8px}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:32px 0 0;font-size:13px;color:var(--text-faint)}.breadcrumb a{color:var(--text-soft)}.breadcrumb a:hover{color:var(--accent)}.breadcrumb [aria-current=page]{color:var(--text-faint);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-header{padding:40px 0 28px;border-bottom:1px solid var(--border);margin-bottom:36px}.article-header h1{font-family:var(--font-serif);font-size:32px;line-height:1.4;font-weight:600;margin:0 0 16px;letter-spacing:-.01em}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;color:var(--text-faint)}.prose{font-size:16.5px;line-height:1.85;color:var(--text);padding-bottom:40px}.prose>*+*{margin-top:1.35em}.prose h2{font-family:var(--font-serif);font-size:23px;font-weight:600;margin-top:2.2em;margin-bottom:.7em;line-height:1.45;letter-spacing:-.005em}.prose h3{font-family:var(--font-serif);font-size:19px;font-weight:600;margin-top:1.9em;margin-bottom:.6em}.prose h4{font-size:16.5px;font-weight:600;margin-top:1.6em}.prose p{margin:0}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:3px;transition:text-decoration-color .15s ease}.prose a:hover{text-decoration-color:var(--accent)}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:1.4em;margin:0}.prose li{margin:.4em 0}.prose li::marker{color:var(--text-faint)}.prose ul.contains-task-list{list-style:none;padding-left:0}.prose li.task-list-item{display:flex;align-items:baseline;gap:8px}.prose li.task-list-item>input[type=checkbox]{flex:none;margin:0;accent-color:var(--accent)}.prose blockquote{margin:1.6em 0;padding:4px 0 4px 18px;border-left:3px solid var(--accent);color:var(--text-soft);font-style:normal}.prose blockquote p{margin:0}.prose img{border-radius:var(--radius);margin:1.8em auto}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5em 0}.prose code{font-family:var(--font-mono);font-size:.88em;padding:.15em .4em;border-radius:5px;background:var(--bg-soft);border:1px solid var(--border)}.prose pre{padding:18px 20px;border-radius:var(--radius);overflow-x:auto;font-size:13.5px;line-height:1.65;border:1px solid var(--border);margin:1.8em 0}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose table{width:100%;border-collapse:collapse;font-size:14.5px;margin:1.8em 0}.prose th,.prose td{border:1px solid var(--border);padding:9px 13px;text-align:left}.prose th{background:var(--bg-soft);font-weight:600}.archive-year{font-family:var(--font-serif);font-size:20px;font-weight:600;margin:36px 0 14px;color:var(--text-faint)}.archive-list{list-style:none;padding:0;margin:0}.archive-item{display:flex;align-items:baseline;gap:16px;padding:11px 0;border-bottom:1px dashed var(--border);font-size:15px}.archive-item time{font-size:13px;color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;width:48px}.archive-item a:hover{color:var(--accent)}.site-footer{border-top:1px solid var(--border);padding:36px 0 44px;margin-top:40px;font-size:13px;color:var(--text-faint)}.footer-inner{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}.footer-inner a{color:var(--text-soft);transition:color .15s ease}.footer-inner a:hover{color:var(--accent)}.footer-links{display:flex;gap:16px}.footer-icp{width:100%;display:flex;flex-wrap:wrap;gap:14px;font-size:12px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.tag{font-size:12px;padding:4px 11px;border-radius:999px;background:var(--bg-soft);color:var(--text-soft);border:1px solid var(--border);transition:all .15s ease}.tag:hover{color:var(--accent);border-color:var(--accent)}.empty{padding:60px 0;text-align:center;color:var(--text-faint);font-size:14px}@media(max-width:640px){.container{padding:0 18px}.hero{padding:32px 0 24px}.hero h1{font-size:26px}.article-header h1{font-size:25px}.prose{font-size:16px}.site-nav a{padding:6px 8px}.brand span.brand-text{display:none}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
