:root{--bg: #ffffff;--bg-soft: #f5f6fa;--surface: #ffffff;--text: #1a1a2e;--text-soft: #4a4a68;--text-muted: #6b6b85;--border: #e3e3ec;--accent: #6d5dfc;--accent-contrast: #ffffff;--shadow: 0 1px 3px rgba(20, 20, 50, .08), 0 6px 18px rgba(20, 20, 50, .06);--code-bg: #f0f0f7;--maxw: 760px}[data-theme=dark]{--bg: #0f1020;--bg-soft: #171831;--surface: #1b1d39;--text: #ececff;--text-soft: #c7c7e6;--text-muted: #9a9ac0;--border: #2c2e52;--accent: #8b7bff;--accent-contrast: #0f1020;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35);--code-bg: #23253f}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:20px}.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-contrast);padding:8px 14px;border-radius:0 0 8px;z-index:100}.skip-link:focus{left:0}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:60px}.site-title{font-weight:800;font-size:1.15rem;color:var(--text)}.site-title:hover{text-decoration:none;color:var(--accent)}.site-nav{display:flex;align-items:center;gap:18px}.site-nav a{color:var(--text-soft);font-weight:600}.site-nav a.active{color:var(--accent)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle .icon{display:none}[data-theme=light] .icon-sun,[data-theme=dark] .icon-moon{display:block}.intro{padding:48px 0 24px}.intro h1{font-size:2rem;margin:0 0 8px}.intro p{color:var(--text-soft);margin:0}.post-list{list-style:none;margin:0;padding:0 0 48px;display:grid;gap:18px}.post-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);transition:transform .18s ease,border-color .18s ease}.post-item:hover{transform:translateY(-2px);border-color:var(--accent)}.post-link{display:block;padding:22px 24px;color:inherit}.post-link:hover{text-decoration:none}.post-link h2{margin:0 0 6px;font-size:1.35rem;color:var(--text)}.post-meta{font-size:.85rem;color:var(--text-muted);margin-bottom:8px}.post-desc{margin:0 0 12px;color:var(--text-soft)}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{font-size:.78rem;padding:3px 10px;border-radius:999px;background:var(--bg-soft);color:var(--text-muted);border:1px solid var(--border)}.back-link{display:inline-block;margin:28px 0 4px;font-size:.9rem;color:var(--text-soft)}article h1{font-size:2rem;margin:8px 0 12px;line-height:1.25}.prose{padding-bottom:48px}.prose h2{margin-top:2em;font-size:1.5rem}.prose h3{margin-top:1.6em;font-size:1.2rem}.prose p,.prose li{color:var(--text-soft)}.prose a{text-underline-offset:3px}.prose pre{background:var(--code-bg);padding:16px;border-radius:10px;overflow-x:auto;font-size:.9rem;border:1px solid var(--border)}.prose code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.prose :not(pre)>code{background:var(--code-bg);padding:2px 6px;border-radius:5px;font-size:.9em}.prose blockquote{margin:1.4em 0;padding:4px 18px;border-left:4px solid var(--accent);color:var(--text-muted);background:var(--bg-soft);border-radius:0 8px 8px 0}.prose img{border-radius:10px}.site-footer{border-top:1px solid var(--border);padding:24px 0;color:var(--text-muted);font-size:.88rem}.site-footer p{margin:0}@media(max-width:600px){.intro h1{font-size:1.6rem}article h1{font-size:1.6rem}.header-inner{height:54px}}
