:root{color-scheme:light dark;--bg:light-dark(#fff,#101010);--fg:light-dark(#161616,#ececec);--muted:light-dark(#666,#9c9c9c);--faint:light-dark(#a3a3a3,#6e6e6e);--border:light-dark(#e4e4e4,#2a2a2a);--surface:light-dark(#fafafa,#181818);--accent:light-dark(#161616,#ececec);--font-serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, "Times New Roman", serif;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--maxw:42rem}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);letter-spacing:.01em;font-size:1rem;line-height:1.75}a{color:inherit;border-bottom:1px solid var(--border);text-decoration:none;transition:border-color .15s}a:hover{border-color:var(--fg)}img,svg{max-width:100%;height:auto;display:block}::selection{background:var(--fg);color:var(--bg)}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}main{min-height:60vh;padding:3rem 0 5rem}.site-header{border-bottom:1px solid var(--border)}.site-header .container{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:1.1rem;padding-bottom:1.1rem;display:flex}.brand{font-family:var(--font-serif);letter-spacing:.02em;border-bottom:none;font-size:1.35rem;font-weight:700}.nav{flex-wrap:wrap;gap:1.25rem;display:flex}.nav a{color:var(--muted);border-bottom:none;padding-bottom:2px;font-size:.9rem}.nav a:hover{color:var(--fg)}.nav a.active{color:var(--fg);border-bottom:1px solid var(--fg)}.hero{padding:4rem 0 3rem}.hero .name{font-family:var(--font-serif);letter-spacing:.02em;font-size:2.6rem;font-weight:700;line-height:1.2}.hero .tagline{color:var(--muted);max-width:34rem;margin-top:.75rem;font-size:1.05rem}.hero .socials{flex-wrap:wrap;gap:1.25rem;margin-top:1.5rem;display:flex}.hero .socials a{color:var(--muted);font-size:.9rem}.hero .socials a:hover{color:var(--fg)}.section{margin-top:3.5rem}.section-title{font-family:var(--font-serif);letter-spacing:.05em;margin-bottom:1.25rem;font-size:1.15rem;font-weight:700}.card{border-top:1px solid var(--border);border-bottom:none;padding:1.1rem 0;display:block}.card:last-child{border-bottom:1px solid var(--border)}.card:hover .card-title{text-underline-offset:3px;text-decoration:underline}.card-meta{font-family:var(--font-mono);color:var(--faint);align-items:baseline;gap:.9rem;margin-bottom:.25rem;font-size:.78rem;display:flex}.card-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;line-height:1.5}.card-desc{color:var(--muted);margin-top:.3rem;font-size:.92rem}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tag{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .6rem;font-size:.72rem}.tag:hover{color:var(--fg);border-color:var(--fg)}.subscribe-box{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-top:3.5rem;padding:1.75rem 1.5rem}.subscribe-box h2{font-family:var(--font-serif);margin-bottom:.4rem;font-size:1.2rem}.subscribe-box p{color:var(--muted);margin-bottom:1rem;font-size:.9rem}.subscribe-form{flex-wrap:wrap;gap:.6rem;display:flex}.subscribe-form input[type=email]{min-width:14rem;font-size:.95rem;font-family:var(--font-sans);background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;outline:none;flex:1;padding:.6rem .9rem}.subscribe-form input[type=email]:focus{border-color:var(--fg)}.subscribe-form button{font-size:.95rem;font-family:var(--font-sans);background:var(--fg);color:var(--bg);border:1px solid var(--fg);cursor:pointer;border-radius:4px;padding:.6rem 1.4rem;transition:opacity .15s}.subscribe-form button:hover{opacity:.85}.subscribe-form button:disabled{opacity:.5;cursor:wait}.hp-field{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-msg{min-height:1.4em;margin-top:.8rem;font-size:.88rem}.form-msg.ok{color:var(--muted)}.form-msg.err{color:light-dark(#b3261e,#ff8a80)}.page-head{padding:3rem 0 1.5rem}.page-head h1{font-family:var(--font-serif);font-size:1.9rem;font-weight:700;line-height:1.3}.page-head .lede{color:var(--muted);max-width:34rem;margin-top:.6rem}.prose{font-size:1.02rem}.prose h1,.prose h2,.prose h3{font-family:var(--font-serif);letter-spacing:.02em;margin:2rem 0 .8rem;line-height:1.4}.prose h1{font-size:1.6rem}.prose h2{font-size:1.3rem}.prose h3{font-size:1.1rem}.prose p{margin:.9rem 0}.prose ul,.prose ol{margin:.9rem 0;padding-left:1.5rem}.prose li{margin:.35rem 0}.prose blockquote{border-left:3px solid var(--fg);color:var(--muted);margin:1.2rem 0;padding:.1rem 0 .1rem 1.1rem}.prose code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:.1em .35em;font-size:.85em}.prose pre{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin:1.2rem 0;padding:1rem 1.1rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0}.prose hr{border:none;border-top:1px solid var(--border);margin:2.2rem 0}.prose table{border-collapse:collapse;width:100%;margin:1.2rem 0;font-size:.92rem}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.45rem .7rem}.prose img{border-radius:6px;margin:1.2rem auto}.post-meta{font-family:var(--font-mono);color:var(--faint);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:1rem;margin-top:.9rem;padding-bottom:1.4rem;font-size:.8rem;display:flex}.back-link{color:var(--muted);margin-top:3rem;font-size:.9rem;display:inline-block}.site-footer{border-top:1px solid var(--border);padding:1.6rem 0 2.5rem}.site-footer .container{color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.85rem;display:flex}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--fg)}.site-footer .footer-links{flex-wrap:wrap;gap:1.1rem;display:flex}.notice{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-top:1.5rem;padding:1.25rem 1.5rem;font-size:.95rem}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}@media (width<=600px){.hero{padding:3rem 0 2rem}.hero .name{font-size:2.1rem}.subscribe-form{flex-direction:column}.subscribe-form button{width:100%}}
