:root{--bg:#f4f1ea;--bg-elev:#fbfaf6;--ink:#1c1915;--muted:#5e584e;--line:#ddd6c8;--accent:#1d5c45;--accent-ink:#114233;--soft:#e5f0ea;--cta-bg:#e7f2ec;--page:68rem;--content:40.5rem;--sans:"Segoe UI", system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;--mono:ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#141311;--bg-elev:#1e1c19;--ink:#f3efe6;--muted:#c3baab;--line:#3a352c;--accent:#8fceb6;--accent-ink:#d5f3e6;--soft:#24332d;--cta-bg:#1a2c26;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.7}body:before{content:"";background:var(--accent);height:4px;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{color:#14241c;background:#cfe4d8}@media (prefers-color-scheme:dark){::selection{color:#f3efe6;background:#2d5a48}}.skip{background:var(--ink);color:var(--bg);z-index:20;padding:.5rem .75rem;position:absolute;top:-4rem;left:1rem}.skip:focus{top:.75rem}.vh{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:min(var(--page), calc(100% - 2rem));margin-inline:auto}.site-header{border-bottom:1px solid var(--line)}.bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:.85rem 0;display:flex}.brand{color:inherit;align-items:center;gap:.75rem;min-height:44px;text-decoration:none;display:flex}.brand strong{letter-spacing:-.02em;font-size:1.05rem;font-weight:600;display:block}.brand small{color:var(--muted);font-size:.82rem;display:block}.mark{border:1.5px solid var(--ink);border-radius:3px;place-items:center;width:2rem;height:2rem;font-size:.95rem;font-weight:600;display:grid}.header-links{flex-wrap:wrap;align-items:center;gap:.25rem 1.15rem;display:flex}.header-links nav{flex-wrap:wrap;gap:.15rem .85rem;display:flex}.header-links a{color:inherit;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.header-links a:hover{text-underline-offset:.22em;text-decoration:underline}.header-links a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--accent);color:var(--accent-ink)}main{padding:2.25rem 0 4.5rem}.kicker{color:var(--accent-ink);letter-spacing:.01em;margin:0 0 .4rem;font-size:.92rem}h1{letter-spacing:-.03em;text-wrap:balance;margin:0 0 .8rem;font-size:clamp(2rem,4.4vw,3rem);font-weight:600;line-height:1.15}.lede{max-width:40rem;margin:0 0 .7rem;font-size:1.08rem}.lede a{color:var(--accent-ink)}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin:2.5rem 0 .25rem;display:flex}.section-head h2,.archive-title{letter-spacing:-.02em;margin:0;font-size:1.25rem}.section-head a,.back-link{color:var(--accent-ink)}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-top:1px solid var(--line);grid-template-columns:8.5rem 1fr;gap:.35rem 1.5rem;padding:1.15rem 0;display:grid}.post-list li:last-child{border-bottom:1px solid var(--line)}.post-meta{color:var(--muted);flex-direction:column;gap:.35rem;padding-top:.2rem;font-size:.92rem;display:flex}.lang-chip{border:1px solid var(--line);letter-spacing:.02em;border-radius:999px;align-self:flex-start;padding:.05rem .5rem;font-size:.78rem}.post-list h3{letter-spacing:-.02em;margin:0 0 .3rem;font-size:1.2rem;font-weight:600;line-height:1.35}.post-list h3 a{color:inherit;text-decoration:none}.post-list h3 a:hover{text-underline-offset:.16em;text-decoration:underline}.post-list p{color:var(--muted);margin:0}.tag-row{flex-wrap:wrap;gap:.35rem;margin-top:.7rem;display:flex}.tag{color:var(--muted);font-size:.85rem}.tag:before{content:"#"}.empty{border-top:1px solid var(--line);color:var(--muted);padding:1rem 0}.article{width:min(var(--content), 100%)}.article>section>h2{letter-spacing:-.02em;margin:2.2rem 0 .4rem;font-size:1.35rem}.byline{color:var(--muted);flex-wrap:wrap;gap:.35rem .75rem;margin:0 0 1.5rem;font-size:.95rem;display:flex}.byline a{color:var(--accent-ink)}.dek{color:var(--ink);margin:0 0 1.5rem;font-size:1.12rem}.prose{font-size:1.05rem;line-height:1.8}.prose h2{letter-spacing:-.02em;margin:2.2rem 0 .6rem;font-size:1.35rem;line-height:1.3}.prose h3{margin:1.6rem 0 .4rem;font-size:1.12rem;line-height:1.35}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:.85rem 0}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:.3rem}.prose a{color:var(--accent-ink);text-underline-offset:.18em}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin-left:0;padding:.15rem 0 .15rem 1rem}.prose code{font-family:var(--mono);font-size:.9em}.prose :not(pre)>code{background:var(--soft);border-radius:4px;padding:.08em .35em}.prose pre{background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:.9rem 1rem;line-height:1.55;overflow-x:auto}.table-scroll{margin:.85rem 0;overflow-x:auto}.prose table{border-collapse:collapse;width:max-content;min-width:100%;margin:0;font-size:.95rem;line-height:1.5}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:7rem;padding:.45rem .7rem .45rem 0}.prose th{font-weight:600}.cta{background:var(--cta-bg);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:6px;margin-top:2.5rem;padding:1.15rem 1.15rem 1.2rem}.cta .eyebrow{color:var(--accent-ink);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .35rem;font-size:.82rem}.cta h2{letter-spacing:-.02em;margin:0 0 .45rem;font-size:1.25rem;line-height:1.35}.cta p{margin:0 0 .9rem}.cta .button{background:var(--accent-ink);min-height:44px;color:var(--bg);border-radius:4px;align-items:center;padding:.45rem .9rem;font-weight:600;text-decoration:none;display:inline-flex}.cta .button:hover{text-underline-offset:.16em;text-decoration:underline}.cta .url{color:var(--muted);overflow-wrap:anywhere;margin:.75rem 0 0;font-size:.88rem}.more{margin-top:2.5rem}.more h2{margin-bottom:.4rem;font-size:1.15rem}.more ul{margin:0;padding-left:1.1rem}.more a{color:var(--accent-ink)}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding:1.5rem 0 2.5rem;font-size:.95rem}.footer-grid{grid-template-columns:1.4fr 1fr;gap:1rem 2rem;display:grid}.site-footer strong{color:var(--ink)}.site-footer a{color:var(--accent-ink)}.site-footer p{margin:0}@media (width<=640px){.wrap{width:min(100% - 1.5rem, var(--page))}main{padding-top:1.6rem}.post-list li,.footer-grid{grid-template-columns:1fr}.post-meta{flex-direction:row;align-items:center}h1{font-size:1.85rem}}@media print{body:before,.site-header,.site-footer,.skip,.more{display:none}body{color:#000;background:#fff}.cta{border:1px solid #000}}
