:root{--bg: #fbfaf8;--bg-elev: #ffffff;--text: #1c1a17;--text-soft: #3d3833;--muted: #6f6862;--border: #e8e3da;--accent: #b45309;--accent-soft: #fdf3e6;--code-bg: #f2eee7;--shadow: 0 1px 2px rgba(28, 26, 23, .04), 0 8px 24px rgba(28, 26, 23, .04);--maxw: 720px;--radius: 14px}[data-theme=dark]{--bg: #121211;--bg-elev: #1a1917;--text: #eceae5;--text-soft: #d3cfc8;--muted: #948d84;--border: #2b2825;--accent: #f0b429;--accent-soft: #241d10;--code-bg: #201e1b;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Source Han Sans SC,sans-serif;font-size:17px;line-height:1.85;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background-color .25s ease,color .25s ease}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.site-header{position:sticky;top:0;z-index:50;background:var(--bg);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.nav{max-width:var(--maxw);margin:0 auto;height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.01em;font-size:15px}.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:700;flex:none}[data-theme=dark] .brand-mark{color:#1a1000}.nav-links{display:flex;align-items:center;gap:22px;font-size:14.5px;color:var(--muted)}.nav-links a{position:relative;transition:color .2s ease}.nav-links a:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1.5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after,.nav-links a[aria-current=page]:after{transform:scaleX(1)}.nav-links a[aria-current=page]{color:var(--text)}.theme-toggle{width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.theme-toggle:hover{color:var(--text);border-color:var(--muted);background:var(--code-bg)}.theme-toggle svg{width:16px;height:16px;display:block}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}.hero{padding:76px 0 44px;border-bottom:1px solid var(--border)}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 20px;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.eyebrow:before{content:"";width:22px;height:1.5px;background:var(--accent)}.hero h1{margin:0 0 18px;font-size:clamp(2rem,5.2vw,2.85rem);line-height:1.25;font-weight:800;letter-spacing:-.025em}.hero .lede{margin:0;max-width:34em;font-size:17.5px;line-height:1.85;color:var(--muted)}.list-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:44px 0 8px}.list-head h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.list-head .count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.post-list{list-style:none;margin:0;padding:0}.post-item{border-bottom:1px solid var(--border)}.post-item>a{display:block;padding:30px 0 28px;transition:transform .25s ease}.post-item>a:hover{transform:translateY(-2px)}.post-meta{display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}.post-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--border);flex:none}.post-item h3{margin:0 0 10px;font-size:21px;line-height:1.45;font-weight:700;letter-spacing:-.012em;transition:color .2s ease}.post-item>a:hover h3{color:var(--accent)}.post-item p{margin:0 0 14px;font-size:15.5px;line-height:1.8;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12.5px;line-height:1.7;letter-spacing:.01em;transition:background .2s ease}a.tag:hover{background:var(--accent);color:#fff}.post-header{padding:60px 0 34px;border-bottom:1px solid var(--border)}.post-header h1{margin:16px 0 18px;font-size:clamp(1.75rem,4.4vw,2.35rem);line-height:1.35;font-weight:800;letter-spacing:-.022em}.post-header .post-meta{margin-bottom:0}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted);transition:color .2s ease}.back-link:hover{color:var(--accent)}.prose{padding:40px 0 8px;font-size:17px;line-height:1.9;color:var(--text-soft)}.prose>p:first-child{margin-top:0}.prose p{margin:0 0 1.5em}.prose h2{margin:2.6em 0 .9em;font-size:1.32rem;line-height:1.5;font-weight:700;color:var(--text);letter-spacing:-.012em}.prose h2:first-child{margin-top:0}.prose h3{margin:2em 0 .7em;font-size:1.08rem;font-weight:700;color:var(--text)}.prose ul,.prose ol{margin:0 0 1.5em;padding-left:1.4em}.prose li{margin-bottom:.55em}.prose li::marker{color:var(--accent)}.prose blockquote{margin:1.8em 0;padding:4px 0 4px 20px;border-left:2.5px solid var(--accent);color:var(--muted);font-size:16.5px}.prose blockquote p{margin:.6em 0}.prose code{padding:.15em .42em;border-radius:5px;background:var(--code-bg);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.88em;color:var(--text)}.prose pre{margin:1.8em 0;padding:18px 20px;border-radius:var(--radius);background:var(--code-bg);overflow-x:auto;line-height:1.7}.prose pre code{padding:0;background:none;font-size:.85em}.prose hr{margin:2.6em 0;border:0;border-top:1px solid var(--border)}.prose strong{font-weight:700;color:var(--text)}.prose a:not(.tag){color:var(--accent);border-bottom:1px solid var(--accent);border-bottom-color:color-mix(in srgb,var(--accent) 40%,transparent);transition:border-color .2s ease}.prose a:not(.tag):hover{border-bottom-color:var(--accent)}.prose table{width:100%;margin:1.8em 0;border-collapse:collapse;font-size:15px}.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left}.prose th{font-weight:600;color:var(--text);border-bottom-width:2px}.post-footer{margin-top:56px;padding:32px 0 0;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.post-nav-link{flex:1 1 240px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);box-shadow:var(--shadow);transition:border-color .2s ease,transform .2s ease}.post-nav-link:hover{border-color:var(--accent);transform:translateY(-2px)}.post-nav-link span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.post-nav-link strong{font-size:15.5px;font-weight:600;line-height:1.5}.tag-cloud{display:flex;flex-wrap:wrap;gap:10px;padding:36px 0 8px}.tag-cloud .tag{font-size:14px;padding:6px 16px;border-radius:999px}.tag-cloud .tag em{font-style:normal;opacity:.6;margin-left:6px;font-size:12px}.tag-section{padding:8px 0 4px}.tag-section h2{margin:40px 0 16px;font-size:15px;font-weight:700;letter-spacing:.02em;display:flex;align-items:baseline;gap:10px}.tag-section h2:before{content:"#";color:var(--accent);font-weight:700}.tag-section h2 small{font-size:12.5px;font-weight:400;color:var(--muted)}.tag-section ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.tag-section li{border-bottom:1px solid var(--border)}.tag-section li a{display:flex;align-items:baseline;gap:14px;padding:15px 0;transition:color .2s ease}.tag-section li a:hover{color:var(--accent)}.tag-section time{flex:none;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.about-card{margin:40px 0 0;padding:28px 30px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);box-shadow:var(--shadow)}.about-card h2{margin:0 0 12px;font-size:16px;font-weight:700}.about-card p{margin:0 0 12px;font-size:15.5px;color:var(--muted)}.about-card p:last-child{margin-bottom:0}.contact-list{list-style:none;margin:16px 0 0;padding:0;font-size:15.5px}.contact-list li{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--border)}.contact-list li:first-child{border-top:0}.contact-list .k{flex:none;width:84px;color:var(--muted);font-size:14px}.contact-list .v{color:var(--text)}.site-footer{margin-top:72px;border-top:1px solid var(--border);padding:36px 0 60px}.footer-inner{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}.footer-links{display:flex;flex-wrap:wrap;gap:18px}.footer-links a{transition:color .2s ease}.footer-links a:hover{color:var(--accent)}.center-page{min-height:62vh;display:grid;place-items:center;text-align:center;padding:80px 0}.center-page .code{font-size:64px;font-weight:800;letter-spacing:-.04em;color:var(--accent);line-height:1;margin-bottom:18px}.center-page h1{margin:0 0 12px;font-size:24px;font-weight:700}.center-page p{margin:0 0 26px;color:var(--muted)}.btn{display:inline-block;padding:10px 22px;border-radius:999px;background:var(--accent);color:#fff;font-size:14.5px;font-weight:600;transition:opacity .2s ease,transform .2s ease}[data-theme=dark] .btn{color:#1a1000}.btn:hover{opacity:.88;transform:translateY(-1px)}@media(max-width:640px){body{font-size:16.5px}.nav{padding:0 18px;height:58px}.nav-links{gap:16px;font-size:14px}.wrap{padding:0 18px}.hero{padding:52px 0 34px}.hero .lede{font-size:16px}.post-item>a{padding:26px 0 24px}.post-item h3{font-size:19px}.post-header{padding:40px 0 26px}.prose{padding-top:32px}.about-card{padding:22px 20px}.contact-list .k{width:68px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media print{.site-header,.site-footer,.post-footer,.theme-toggle{display:none}body{background:#fff;color:#000}.prose{color:#000}}
