@font-face{font-family:JetBrainsMono;src:url(../fonts/jetbrains-mono/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrainsMono;src:url(../fonts/jetbrains-mono/JetBrainsMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrainsMono;src:url(../fonts/jetbrains-mono/JetBrainsMono-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrainsMono;src:url(../fonts/jetbrains-mono/JetBrainsMono-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--paper:#f8f7f2;--ink:#252a24;--muted:#74786e;--green:#36533d;--line:#dddfd3;--wash:#eef0e6;--sans:Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei","Noto Sans CJK",sans-serif;--mono:JetBrainsMono,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:5px}::selection{background:#dce5ce}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}svg{max-width:100%}.site-shell{max-width:1184px;padding:0 48px;margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:112px;border-bottom:1px solid var(--line);gap:24px}.wordmark{display:flex;align-items:baseline;font-family:var(--sans);font-size:34px;font-weight:700;letter-spacing:-1.8px}.wordmark-dot{color:var(--green)}.wordmark-caption{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:0;margin-left:22px;color:var(--muted)}.site-header nav{display:flex;align-items:center;gap:30px;font-size:13px}.site-header nav a{padding:8px 0}.site-header nav a[aria-current]{color:var(--green);box-shadow:0 1px var(--green)}.search-nav{display:flex;align-items:center;gap:8px}.skip-link{position:fixed;top:-100px;left:20px;padding:12px;background:var(--green);color:#fff;z-index:10}.skip-link:focus{top:12px}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;font:10px/1.6 var(--mono);color:var(--muted)}.hero{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:55px;padding:90px 0 78px}.hero h1{font-family:var(--sans);font-size:clamp(44px,4.7vw,65px);line-height:1.09;letter-spacing:-2.5px;margin-bottom:25px}.hero-description{font-size:15px;line-height:1.85;color:#686e63;max-width:415px;margin-bottom:29px}.text-link{display:inline-flex;align-items:center;gap:22px;font-size:12px;font-weight:500}.text-link span{font-size:17px}.hero-art{padding:24px 0 0;transform:rotate(-3deg)}.diagram-heading{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 12px;font:9px var(--mono);letter-spacing:1.3px;color:var(--muted)}.hero-art svg{width:100%;display:block;margin-top:18px}.hero-art>p{text-align:center;font:italic 15px var(--sans);color:var(--muted);margin-top:12px}.topics-strip{border-block:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0}.topics-strip>a{font-size:13px;display:flex;gap:38px;align-items:center}.topics-strip>a>span{color:var(--muted)}.writing-section{padding-top:65px;scroll-margin-top:30px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:27px}.section-heading .eyebrow{margin-bottom:10px}.section-heading h2{font-family:var(--sans);font-size:36px;line-height:1.2;letter-spacing:-1px;margin:0}.section-heading>.text-link{padding-bottom:4px}.accent{color:var(--green)}.entry{border-top:1px solid var(--line);display:grid;grid-template-columns:130px 1fr 30px;gap:24px;padding:28px 0 30px}.entry-date{font:10px/1.8 var(--mono);color:var(--muted);padding-top:5px}.entry-topic{font-size:9px;letter-spacing:1.1px}.entry h3{font-family:var(--sans);font-size:25px;line-height:1.25;letter-spacing:-.45px;margin:5px 0 9px}.entry p{color:#73776d;font-size:13px;line-height:1.75;max-width:660px;margin-bottom:9px}.reading-time{font:9px var(--mono);color:var(--muted)}.entry-arrow{justify-self:end;color:var(--green);font-size:22px;margin-top:17px;transition:transform .2s}.entry:hover .entry-arrow{transform:translate(3px,-3px)}.site-footer{border-top:1px solid var(--line);padding:31px 0 35px;display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;margin-top:75px}.footer-name{font-family:var(--sans);font-size:25px;font-weight:700;letter-spacing:-1px}.site-footer p{font-size:11px;color:var(--muted);margin:3px 0 0}.site-footer nav{display:flex;gap:25px;font-size:11px}.footer-note{font:9px var(--mono);color:var(--muted);grid-column:1/-1}.page-intro{padding:70px 0 48px;max-width:850px}.page-intro h1{font-family:var(--sans);font-size:clamp(44px,6vw,66px);line-height:1.12;letter-spacing:-2px;margin:16px 0 20px}.page-intro>p:last-of-type{color:var(--muted);font-size:15px}.archive-meta{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px}.topic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.topic-tile{padding:30px 32px 45px;border:1px solid var(--line);position:relative;transition:background .2s}.topic-tile:hover{background:var(--wash)}.topic-tile h2{font-family:var(--sans);font-size:35px;letter-spacing:-1px;margin:18px 0 0}.topic-tile-arrow{position:absolute;right:32px;bottom:24px;font-size:24px;color:var(--green)}.back-link{display:inline-block}.article-header{max-width:850px;padding:56px 0 40px}.article-category{margin-top:43px;color:var(--green)}.article-header h1{font-family:var(--sans);font-size:clamp(38px,5vw,60px);line-height:1.12;letter-spacing:-1.8px;margin:17px 0 20px}.article-description{color:var(--muted);font-size:16px;max-width:730px}.article-meta{display:flex;flex-wrap:wrap;gap:13px;font:10px/1.8 var(--mono);color:var(--muted);margin-top:28px}.article-layout{display:grid;grid-template-columns:minmax(0,740px)minmax(180px,1fr);gap:52px;border-top:1px solid var(--line);padding-top:36px}.prose{min-width:0;overflow-wrap:break-word;font-size:16px;line-height:1.85}.prose p,.prose ul,.prose ol{margin-bottom:1.5em}.prose h2,.prose h3,.prose h4{line-height:1.3;scroll-margin-top:24px}.prose h2{font-family:var(--sans);font-size:32px;letter-spacing:-.7px;margin:1.6em 0 .7em}.prose h3{font-family:var(--sans);font-size:25px;margin:1.5em 0 .7em}.prose h4{font-weight:600}.prose a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.prose strong{font-weight:600}.prose li{margin:.4em 0}.prose blockquote{margin:28px 0;padding:10px 24px;border-left:2px solid #8c9a7e;color:#646e5d;background:var(--wash)}.prose blockquote p:last-child{margin-bottom:0}.prose pre{max-width:100%;overflow:auto;padding:22px;border-radius:4px;font-size:12px;line-height:1.8}.prose code{font-family:var(--mono);font-size:.82em}.prose :not(pre)>code{background:#eaece2;padding:3px 5px;border-radius:3px}.prose pre code{font-size:inherit}.prose img,.prose video{max-width:100%;height:auto}.prose figure{margin:30px 0;text-align:center}.prose figcaption{font-size:12px;color:var(--muted);margin-top:12px}.prose table{display:block;overflow:auto;max-width:100%;border-collapse:collapse;font-size:13px;margin:26px 0}.prose th,.prose td{padding:10px 14px;border:1px solid var(--line);text-align:left}.prose th{background:var(--wash)}.prose hr{border:0;border-top:1px solid var(--line);margin:35px 0}.prose mjx-container[display=true]{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:5px 0}.article-toc{align-self:start;position:sticky;top:32px;font-size:11px;line-height:1.7;padding:4px 0 4px 20px;border-left:1px solid var(--line);max-height:80vh;overflow:auto}.article-toc .eyebrow{font-size:9px;margin-bottom:17px}.article-toc ul{list-style:none;padding-left:0;margin:0}.article-toc ul ul{padding-left:12px}.article-toc li{margin:9px 0}.article-toc a{color:var(--muted)}.article-toc a:hover{color:var(--green)}.tldr{padding:20px;background:var(--wash);border-left:2px solid var(--green);margin-bottom:24px}.tldr p{margin:8px 0 0}.article-footer{max-width:740px;margin-top:45px}.tag-list{display:flex;flex-wrap:wrap;gap:10px}.tag-list a{border:1px solid var(--line);padding:5px 12px;font-size:10px;color:var(--green)}.article-pagination{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);margin-top:35px;padding-top:25px}.article-pagination>a{display:flex;flex-direction:column;gap:9px;font-family:var(--sans);font-size:20px;line-height:1.4}.article-pagination>a:last-child{text-align:right}.search-panel{max-width:820px}.search-input{display:block;width:100%;border:0;border-bottom:1px solid #8f9b84;color:var(--ink);background:0 0;font:27px/1.4 var(--sans);padding:20px 0;margin:7px 0 15px;border-radius:0}.search-input::placeholder{color:#9da192}.search-hint,.search-status{font-size:12px;color:var(--muted)}kbd{font:11px var(--mono);padding:1px 5px;border:1px solid var(--line);border-radius:3px}.search-status{margin:35px 0 18px}.search-results{list-style:none;margin:0;padding:0}.search-result{border-top:1px solid var(--line);padding:25px 0}.search-result-title{font-family:var(--sans);font-size:28px;line-height:1.3;margin:0 0 10px}.search-result-meta{font:10px var(--mono);color:var(--muted)}.search-result-snippet{font-size:14px;color:var(--muted)}.search-tag-list{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0;font:10px var(--mono);color:var(--green)}.not-found{min-height:50vh}@media(min-width:1500px){.hero{padding-top:110px;padding-bottom:100px}}@media(max-width:900px){.site-shell{padding:0 30px}.wordmark-caption{display:none}.hero{gap:28px;padding:65px 0}.hero h1{font-size:49px}.hero-art{max-width:330px}.topics-strip>a{gap:18px}.article-layout{grid-template-columns:minmax(0,1fr)}.article-toc{display:none}.article-footer{max-width:none}.entry{grid-template-columns:105px 1fr 20px;gap:18px}}@media(max-width:600px){.site-shell{padding:0 22px}.site-header{min-height:86px;gap:15px}.wordmark{font-size:30px}.site-header nav{gap:19px;font-size:12px}.search-nav{gap:5px}.search-nav svg{display:none}.hero{grid-template-columns:1fr;gap:30px;padding:48px 0 35px}.hero h1{font-size:47px;letter-spacing:-2px}.hero-description{font-size:14px}.hero-art{max-width:300px;width:85%;justify-self:center;transform:rotate(-3deg);margin:0 0 10px;padding-top:5px}.hero-art svg{margin-top:8px}.hero-art>p{font-size:13px}.topics-strip{flex-wrap:wrap;gap:17px 20px;padding:20px 0}.topics-strip>.eyebrow{flex-basis:100%;font-size:9px}.topics-strip>a{font-size:11px;gap:13px}.writing-section{padding-top:42px}.section-heading h2{font-size:31px}.section-heading .text-link{font-size:10px;gap:9px}.entry{grid-template-columns:1fr 22px;gap:4px 15px;padding:23px 0}.entry-date{grid-column:1/-1;font-size:9px;margin-bottom:7px}.entry h3{font-size:24px}.entry p{font-size:12px}.entry-arrow{grid-column:2;grid-row:2}.site-footer{margin-top:45px;grid-template-columns:1fr;gap:22px}.site-footer nav{gap:25px}.page-intro{padding:43px 0 30px}.page-intro h1{font-size:44px}.page-intro>p:last-of-type{font-size:14px}.topic-grid{grid-template-columns:1fr}.topic-tile{padding:24px 26px 35px}.topic-tile h2{font-size:31px}.article-header{padding:35px 0 28px}.article-category{margin-top:28px}.article-header h1{font-size:39px;letter-spacing:-1.2px}.article-description{font-size:14px}.article-meta{gap:9px;font-size:9px}.article-layout{padding-top:24px}.prose{font-size:15px;line-height:1.85}.prose h2{font-size:29px}.prose pre{padding:15px;font-size:11px}.article-pagination{gap:18px}.article-pagination>a{font-size:17px}.search-input{font-size:23px}.search-result-title{font-size:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}@media print{.site-header,.site-footer,.article-toc,.article-pagination,.skip-link{display:none}.site-shell{max-width:none;padding:0}.article-layout{display:block}.article-header{padding-top:0}.prose pre{white-space:pre-wrap}.prose a{color:inherit}body{background:#fff}}@media(min-width:901px) and (max-width:1050px){.article-layout{grid-template-columns:minmax(0,740px)}.article-toc{display:none}}.header-controls{display:flex;align-items:center;gap:22px}.language-switch{display:flex;align-items:center;gap:10px;font-size:11px;border-left:1px solid var(--line);padding-left:18px}.language-switch a[aria-current]{color:var(--green);font-weight:600}.language-unavailable{position:relative;color:var(--muted)}.language-unavailable summary{cursor:pointer}.language-unavailable>div{position:absolute;right:0;top:30px;width:230px;background:var(--paper);border:1px solid var(--line);padding:16px;z-index:5;box-shadow:0 5px 20px #252a2410}.language-unavailable p{margin-bottom:10px}.about-page{max-width:760px;margin:auto}.about-page .page-intro{padding-bottom:12px}.about-page .prose>h2:first-child{margin-top:0}.empty-state{padding:30px 0;color:var(--muted)}html:lang(zh) .hero h1{font-size:clamp(32px,3.6vw,48px);letter-spacing:0;line-height:1.4}html:lang(zh) .prose{line-height:2}html:lang(zh) .eyebrow{letter-spacing:1px}@media(max-width:1100px){.wordmark-caption{display:none}.site-header nav{gap:20px}}@media(max-width:600px){.site-header{flex-wrap:wrap;padding:16px 0;gap:8px}.header-controls{width:100%;justify-content:space-between;gap:10px}.site-header nav{gap:18px}.language-switch{padding-left:10px;gap:8px}.hero h1{font-size:clamp(33px,8.9vw,47px)}html:lang(zh) .hero h1{font-size:clamp(28px,7.5vw,36px)}}.contact-section{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,296px);gap:36px;border-top:1px solid var(--line);padding-top:36px;margin-top:44px;scroll-margin-top:24px}.contact-copy h2{font-size:28px;line-height:1.3;margin-bottom:18px}.contact-copy h3{font-size:12px;font-weight:600;margin:25px 0 8px}.contact-copy p{font-size:14px;color:var(--muted)}.contact-email{color:var(--green);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.wechat-qr{margin:0}.wechat-qr img{display:block;width:100%;height:auto;background:#fff}.wechat-qr figcaption{margin-top:12px;text-align:center}.site-footer nav{flex-wrap:wrap}@media(max-width:600px){.contact-section{grid-template-columns:minmax(0,1fr);gap:20px}.wechat-qr{width:100%;max-width:296px}}.diagram-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));text-align:center;font:9px/1.5 var(--mono);color:var(--muted);margin-top:6px}@media(max-width:600px){.diagram-stages{font-size:8px}}