:root{--bg: #fafafa;--surface: rgba(255, 255, 255, .85);--ink: #111111;--muted: #6b7280;--border: #e5e7eb;--radius: 12px;--shadow: 0 10px 25px rgba(0, 0, 0, .06);--content: 72ch;--wide: 1100px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", "PingFang SC", "Hiragino Sans", "Hiragino Sans GB", "Noto Sans CJK SC", "Noto Sans CJK JP", sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #0b0c0e;--surface: rgba(16, 17, 19, .75);--ink: #e5e7eb;--muted: #9ca3af;--border: #2a2f36;--shadow: 0 10px 25px rgba(0, 0, 0, .18)}}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);color-scheme:light dark;font-family:var(--font-sans);line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0}a{color:inherit;text-underline-offset:3px}a:hover{opacity:.85}button,input,textarea{font:inherit}.site-header{position:sticky;top:0;z-index:1000;width:100%;border-bottom:1px solid var(--border);background:var(--surface);backdrop-filter:blur(8px)}.skip-link{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:fixed;left:1rem;top:1rem;z-index:1100;width:auto;height:auto;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.site-nav,.page-shell,.site-footer{width:min(var(--wide),calc(100% - 32px));margin-inline:auto}.site-nav{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:1rem 0;font-size:.95rem}.site-nav a{padding:6px 10px;border-radius:6px;color:var(--ink);text-decoration:none}.site-nav a:hover{background:#0000000a;opacity:1}@media(prefers-color-scheme:dark){.site-nav a:hover{background:#ffffff0f}}.page-shell{padding:2rem 0 3rem}@media(min-width:768px){.page-shell{padding:3rem 0 4rem}}.intro{max-width:var(--content);margin:1.5rem auto;padding:1.5rem 1rem;line-height:1.9}.blog-index{display:block}.blog-index-header h2,.blog-aside h2,.article h1,.comments h2{line-height:1.25;margin:1.2em 0 .45em}.blog-index-header h2{margin-top:0;font-size:1.5rem;font-weight:600}.archive-tags{margin:0 0 1rem;color:var(--muted)}.archive-tags a{display:inline-flex;margin-right:8px}.article-list{margin:1rem 0 0;padding-left:1.35rem}.article-list li{margin:8px 0}.archive-item{display:block}.post-date,.archive-separator,.post-tags{color:var(--muted)}.post-date{font-variant-numeric:tabular-nums}.post-title{font-weight:500}.post-tags,.post-tags .tag-link{margin-left:4px}.tag-link{color:var(--muted)}.tag-index-list{margin:1rem 0 0;padding-left:1.35rem}.tag-index-list li{margin:8px 0}.article,.comments{max-width:var(--content);margin-inline:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:clamp(1rem,2vw,1.5rem)}.article-header{margin-bottom:1.25rem}.article h1{margin-top:0;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:650}.article-subtitle{margin:.75em 0;color:var(--muted)}.article-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin:1rem 0 0;color:var(--muted);font-size:.9rem}.article-meta dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.article-meta dd{margin:0}.article-tags{display:flex;flex-wrap:wrap;gap:6px 10px}.article p,.comments p{margin:.75em 0}.article blockquote{margin:1.5em 0;padding-left:1em;border-left:3px solid var(--border);color:var(--muted)}.article code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.article pre{overflow-x:auto;padding:16px;border:1px solid var(--border);border-radius:8px;background:#00000009}.comments{margin-top:2rem}.comments-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-bottom:1rem}.comments h2{margin-top:0;font-size:1.25rem;font-weight:600}.comments-header p{margin:0;color:var(--muted);font-size:.9rem}.comment-list{display:grid;gap:0;margin:0 0 1.5rem;padding:0;border-top:1px solid var(--border);list-style:none}.comment{padding:1rem 0;border-bottom:1px solid var(--border)}.comment-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline;margin-bottom:6px}.comment-meta strong{font-weight:600}.comment-meta time{color:var(--muted);font-size:.84rem}.comment p{white-space:pre-wrap}.comment-form{display:grid;gap:14px}.comment-field{display:grid;gap:6px}.comment-field label{color:var(--muted);font-size:.9rem}.comment-field input,.comment-field textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}.comment-field input:focus,.comment-field textarea:focus{outline:2px solid var(--ink);outline-offset:1px}.comment-form button{justify-self:start;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);cursor:pointer}.comment-form button:disabled{cursor:wait;opacity:.6}.comment-honeypot{display:none}.notice{margin:1.5rem 0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.grid{display:grid;gap:1rem;margin-top:1.5rem}.card{display:block;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-decoration:none}.card h2{margin:0 0 .35rem;font-size:1.1rem}.card small,.card p,.empty-list{color:var(--muted)}.card p{margin:.35rem 0 0}.site-footer{padding:2rem 0;border-top:1px solid var(--border);color:var(--muted);text-align:center;font-size:.86rem}.article-vertical{max-width:none;min-height:70vh;writing-mode:vertical-rl;text-orientation:mixed;overflow-x:auto}.article-vertical .article-header{margin-bottom:0;margin-left:2rem;padding-left:1rem;border-left:1px solid var(--border)}.article-vertical p{margin:0 1em}html .article[lang=zh-Hans],html .article[lang=zh-Hant],html .article[lang=ja],html .article :lang(ja),html .article[lang=en]{font-family:var(--font-sans)}@media(max-width:760px){.site-nav{padding-block:.8rem}.page-shell{padding-top:2rem}.intro{padding-inline:0}.archive-item{display:grid;gap:2px}.archive-separator{display:none}.post-tags{margin-left:0}.article-vertical{writing-mode:horizontal-tb;max-width:var(--content)}.article-vertical .article-header{margin-left:0;margin-bottom:1.25rem;padding-left:0;border-left:none}}
