:root{color-scheme:light;--bg:#f8fafc;--paper:#fff;--ink:#182536;--muted:#526479;--light:#738093;--line:#e1e7ee;--blue:#285ac4;--soft:#edf3ff;--mono:ui-monospace, SFMono-Regular, Consolas, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px;border-radius:3px}img{max-width:100%;height:auto;display:block}::selection{background:#d4e2ff}.container{width:min(1160px,100% - 64px);margin-inline:auto}.skip-link{z-index:99;background:var(--ink);color:#fff;padding:10px 16px;position:fixed;top:10px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:88px;display:flex}.brand{letter-spacing:-.6px;align-items:center;gap:12px;font-size:23px;font-weight:750;line-height:1.1;display:flex}.brand-icon{background:var(--ink);color:#fff;border-radius:11px;place-content:center;width:42px;height:42px;font-family:Georgia,serif;font-size:31px;display:grid;position:relative}.brand-icon span{color:#8faeeb;position:absolute;bottom:5px;right:7px}.brand small{color:var(--muted);letter-spacing:1px;margin-top:7px;font-size:12px;font-weight:400;display:block}.header-inner nav{align-items:center;gap:32px;font-size:14px;font-weight:600;display:flex}.header-inner nav a{border-bottom:2px solid #0000;padding:29px 0}.header-inner nav a[aria-current=page]{border-color:var(--blue);color:var(--blue)}.rss-link{color:var(--muted)}.eyebrow{font-family:var(--mono);letter-spacing:1.4px;color:var(--blue);margin:0 0 17px;font-size:12px;font-weight:600}.home-intro{border-bottom:1px solid var(--line);padding:52px 0 40px}.status-dot{background:var(--blue);border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}h1,h2,h3,p{overflow-wrap:break-word}.home-intro h1{letter-spacing:-1.2px;margin:0 0 16px;font-size:clamp(27px,3vw,38px);font-weight:750;line-height:1.4}.home-intro h1 span{color:var(--muted);font-weight:450}.home-intro>p:last-child{color:var(--muted);margin:0;font-size:16px}.blog-grid{grid-template-columns:minmax(0,1fr) 270px;gap:48px;padding:35px 0 80px;display:grid}.feed{min-width:0}.section-title{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.section-title h2{margin:0;font-size:18px;font-weight:650}.section-title h2>span{font:12px var(--mono);color:var(--light);margin-left:8px}.section-title>a{color:var(--muted);font-size:14px}.post-card{border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:20px;padding:28px;box-shadow:0 4px 14px #17294503}.post-card h2{letter-spacing:-.6px;margin:15px 0 12px;font-size:25px;line-height:1.45}.post-copy>p{color:var(--muted);margin:0 0 18px;font-size:15px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags a{color:var(--blue);background:var(--soft);border-radius:5px;padding:2px 9px;font-size:12px;font-weight:600}.tags a:hover{background:#dce8ff}.post-meta{color:var(--muted);flex-wrap:wrap;gap:9px 20px;font-size:13px;display:flex}.post-meta>span{position:relative}.post-meta>span:before{content:"·";position:absolute;left:-12px}.read-link{color:var(--blue);gap:18px;margin-top:20px;font-size:14px;font-weight:600;display:inline-flex}.post-image{border:1px solid var(--line);background:#153c38;border-radius:8px;margin-top:23px;overflow:hidden}.post-image img{object-fit:contain;width:100%;max-height:250px}.feed-end{max-width:330px;color:var(--light);align-items:center;gap:16px;margin:35px auto 0;font-size:13px;display:flex}.feed-end span{background:var(--line);flex:1;height:1px}.feed-end p{margin:0}.blog-sidebar{padding-top:55px}.about-note{background:#eef3fa;border:1px solid #e0e7f1;border-radius:10px;padding:24px}.about-note .eyebrow{margin-bottom:12px;font-size:11px}.about-note h2{margin:0 0 12px;font-size:17px;line-height:1.5}.about-note p:not(.eyebrow){color:var(--muted);margin:0 0 18px;font-size:14px}.about-note>a{color:var(--blue);font-size:13px;font-weight:600}.topic-panel{margin:30px 0}.topic-panel h2{justify-content:space-between;margin:0 0 12px;font-size:15px;display:flex}.topic-panel h2>span{color:var(--light);font:12px var(--mono)}.topic-panel ul{margin:0;padding:0;list-style:none}.topic-panel li a{border-bottom:1px solid var(--line);justify-content:space-between;padding:11px 0;font-size:14px;display:flex}.topic-panel i{color:#7b95c0;margin-right:10px;font-style:normal}.topic-panel small{color:var(--muted);font-size:12px}.reading-note{border-top:1px solid var(--line);padding-top:20px}.reading-note>span{color:var(--blue);font-size:25px}.reading-note h2{margin:6px 0 10px;font-size:14px}.reading-note p,.reading-note small{color:var(--muted);margin:0;font-size:12px}.page-heading{border-bottom:1px solid var(--line);padding:42px 0 30px}.page-heading h1{letter-spacing:-1px;margin:0 0 12px;font-size:34px;line-height:1.35}.page-heading>p{color:var(--muted);margin:0}.breadcrumbs{color:var(--muted);flex-wrap:wrap;gap:8px;margin:0 0 24px;font-size:13px;display:flex}.breadcrumbs span[aria-hidden]{color:#8c99a9}.topic-nav{flex-wrap:wrap;gap:9px;margin:0 0 24px;display:flex}.topic-nav a{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 12px;font-size:14px}.topic-nav a[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink)}.reading-shell{max-width:1080px;padding:32px 0 80px}.reading-grid{grid-template-columns:minmax(0,740px) 220px;gap:56px;display:grid}.article-body{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;padding:38px 40px}.article-header{border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:26px}.article-header h1{letter-spacing:-1px;margin:17px 0;font-size:clamp(27px,3vw,35px);line-height:1.45}.article-summary{color:var(--muted);margin:0 0 23px;font-size:17px;line-height:1.85}.reading-toc{border-left:2px solid var(--line);align-self:start;margin-top:10px;padding-left:20px;position:sticky;top:32px}.reading-toc h2{margin:0 0 15px;font-size:14px}.reading-toc ol{margin:0;padding:0;list-style:none}.reading-toc a{color:var(--muted);padding:7px 0;font-size:13px;line-height:1.6;display:block}.reading-toc a:hover{color:var(--blue)}.toc-note{color:var(--light);border-top:1px solid var(--line);margin-top:20px;padding-top:18px;font-size:12px}.mobile-toc{display:none}.prose{color:#2c3a4c;font-size:17px;line-height:1.95}.prose p{margin:0 0 24px}.prose h2{color:var(--ink);margin:43px 0 18px;scroll-margin-top:30px;font-size:23px;line-height:1.5}.prose h3{margin:32px 0 16px;font-size:19px}.prose blockquote{border-left:3px solid var(--blue);background:#eef4ff;border-radius:0 7px 7px 0;margin:28px 0;padding:18px 20px;font-size:16px}.prose blockquote p{margin:0}.prose pre{border:1px solid var(--line);max-width:100%;font:14px/1.8 var(--mono);border-radius:8px;padding:20px;overflow:auto}.prose :not(pre)>code{font:.88em var(--mono);color:#274878;overflow-wrap:anywhere;background:#edf1f6;border-radius:4px;padding:3px 5px}.prose img{border:1px solid var(--line);border-radius:8px;width:100%;margin-top:28px}.prose p:has(>em:only-child){color:var(--muted);text-align:center;font-size:13px}.prose a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.prose ol,.prose ul{padding-left:24px}.prose li{margin:9px 0}.prose table{border-collapse:collapse;display:block;overflow:auto}.prose td,.prose th{border:1px solid var(--line);padding:9px 12px}.article-next{border-top:1px solid var(--line);color:var(--blue);justify-content:space-between;margin-top:40px;padding-top:22px;font-size:14px;display:flex}.site-footer{border-top:1px solid var(--line);background:#fff}.footer-inner{justify-content:space-between;align-items:center;gap:24px;padding:34px 0;display:flex}.footer-brand{font-size:21px;font-weight:750}.footer-brand span{color:var(--blue)}.footer-inner p{color:var(--muted);margin:6px 0 0;font-size:13px}.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:10px 20px;font-size:13px;display:flex}.footer-links small{text-align:right;color:var(--light);flex-basis:100%;font-size:12px}.empty-state{border:1px solid var(--line);background:#fff;border-radius:10px;padding:30px}@media (width<=950px){.blog-grid{grid-template-columns:minmax(0,1fr) 240px;gap:28px}.reading-grid{grid-template-columns:minmax(0,1fr)}.reading-toc{display:none}.mobile-toc{background:var(--bg);border:1px solid var(--line);border-radius:8px;margin-bottom:30px;padding:14px 18px;display:block}.mobile-toc summary{cursor:pointer;font-size:14px;font-weight:600}.mobile-toc ol{padding-left:20px;font-size:14px}.mobile-toc li{margin:8px 0}.article-body{padding:30px}.home-intro h1 span{margin-top:4px;display:block}}@media (width<=720px){.container{width:calc(100% - 36px)}.header-inner{min-height:74px}.brand{font-size:20px}.brand-icon{width:35px;height:35px;font-size:26px}.brand small{letter-spacing:.5px;font-size:10px}.header-inner nav{gap:18px;font-size:13px}.header-inner nav a{padding:24px 0}.header-inner nav .rss-link{display:none}.home-intro{padding:34px 0 27px}.home-intro h1{font-size:28px}.home-intro>p:last-child{font-size:15px}.eyebrow{font-size:11px}.blog-grid{grid-template-columns:1fr;gap:38px;padding-top:25px;padding-bottom:48px}.post-card{padding:22px}.post-card h2{font-size:23px}.post-image img{max-height:210px}.blog-sidebar{grid-template-columns:1fr;gap:24px;padding-top:0;display:grid}.topic-panel{margin:0}.reading-note{display:none}.page-heading{padding:30px 0 24px}.page-heading h1{font-size:29px}.reading-shell{padding:24px 0 45px}.article-body{border-radius:10px;padding:24px 20px}.article-header h1{font-size:27px}.article-summary,.prose{font-size:16px}.prose h2{font-size:21px}.prose pre{padding:16px;font-size:13px}.footer-inner{padding:28px 0;display:block}.footer-links{justify-content:flex-start;margin-top:20px}.footer-links small{text-align:left}.article-next{gap:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
