@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--ink:#1d2922;--muted:#617168;--paper:#f6f5ef;--surface:#fffefa;--green:#216b4a;--light:#e7efe8;--line:#d8dfd5;--accent:#ddff69;--serif:Georgia,"Noto Serif SC",serif;--sans:"Space Grotesk","PingFang SC","Microsoft YaHei",sans-serif;--mono:"DM Mono",ui-monospace,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{max-width:100%;height:auto}::selection{background:var(--accent);color:var(--ink)}.container{width:min(1180px,100% - 64px);margin-inline:auto}.online-dot{background:var(--accent);border-radius:100%;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 3px #ddff6930}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:86px;display:flex}.brand{white-space:nowrap;align-items:center;gap:10px;display:flex}.brand__mark{background:var(--ink);color:var(--accent);border-radius:10px;place-items:center;width:36px;height:36px;font-size:27px;line-height:1;display:grid}.brand__name{font-family:var(--sans);letter-spacing:-.07em;font-size:23px;font-weight:700}.brand__dot{color:#55a56f}.brand__divider{background:var(--line);width:1px;height:19px;margin:0 5px}.brand__label{color:var(--muted);font-size:12px;font-weight:600}.desktop-nav{align-items:center;gap:31px;font-size:13px;font-weight:600;display:flex}.desktop-nav a{color:#4f5e55;transition:color .2s}.desktop-nav a:hover,.desktop-nav a.active{color:var(--green)}.desktop-nav .nav-external{border:1px solid var(--ink);color:var(--ink);border-radius:4px;padding:8px 13px}.mobile-menu{display:none}.site-footer{color:#f3f7ef;background:#1d3026;margin-top:110px}.footer-inner{justify-content:space-between;gap:28px;padding-block:56px 42px;display:flex}.footer-brand{letter-spacing:-.06em;font-size:24px;font-weight:700}.footer-inner p{color:#b9cbbf;font-size:13px}.footer-links{align-items:flex-start;gap:25px;padding-top:8px;font-size:13px;display:flex}.footer-links a:hover{color:var(--accent)}.footer-bottom{color:#9cac9e;font:11px var(--mono);border-top:1px solid #ffffff30;justify-content:space-between;padding-block:20px;display:flex}.eyebrow{font:11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);align-items:center;gap:12px;display:flex}.eyebrow:before{content:"";background:var(--green);width:19px;height:1px}.section-title{letter-spacing:-.05em;margin:10px 0 0;font-size:clamp(25px,3vw,38px);line-height:1.23}.section-sub{color:var(--muted);margin:13px 0 0;font-size:14px}.section-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.text-link{border-bottom:1px solid;padding-bottom:4px;font-size:12px;font-weight:700}.text-link:hover{color:var(--green)}.btn{border-radius:5px;justify-content:center;align-items:center;gap:16px;padding:13px 21px;font-size:13px;font-weight:700;transition:transform .15s,background .15s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:var(--green)}.btn-outline{border:1px solid var(--ink)}.btn-outline:hover{background:var(--light)}.tag{border:1px solid var(--line);color:#46604f;font:11px var(--mono);background:#f8faf5;border-radius:3px;padding:5px 10px;display:inline-flex}.page-heading{border-bottom:1px solid var(--line);padding:90px 0 58px}.page-heading h1{letter-spacing:-.065em;margin:16px 0;font-size:clamp(42px,6vw,76px);line-height:1.06}.page-heading p{max-width:620px;color:var(--muted);margin:0;font-size:17px}.post-list{border-top:1px solid var(--line)}.post-card{border-bottom:1px solid var(--line);grid-template-columns:75px minmax(0,1fr) 32px;gap:20px;padding:32px 3px;transition:padding-left .2s,background .2s;display:grid}.post-card:hover{background:#ecf1e9;padding-left:15px}.post-card__index{font:12px var(--mono);color:#87998b;padding-top:4px}.post-card__meta{font:11px var(--mono);color:var(--green);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.meta-dot{color:#a6b4a8}.post-card h3{letter-spacing:-.035em;margin:12px 0 9px;font-size:clamp(19px,2vw,25px);line-height:1.3}.post-card p{max-width:670px;color:var(--muted);margin:0;font-size:13px;line-height:1.8}.post-card__tags{color:#8a978c;font:11px var(--mono);gap:13px;margin-top:15px;display:flex}.post-card__arrow{justify-self:end;font-size:24px;font-weight:300}.topic-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.topic-tile{border:1px solid var(--line);background:#e9eee5;flex-direction:column;justify-content:space-between;min-height:190px;padding:20px;transition:background .2s,transform .2s;display:flex}.topic-tile:hover{background:#e0ebd6;transform:translateY(-3px)}.topic-tile__top{color:var(--green);font:11px var(--mono);justify-content:space-between;display:flex}.topic-tile h3{letter-spacing:-.04em;margin:0 0 6px;font-size:19px}.topic-tile p{color:var(--muted);margin:0;font-size:12px}.section-block{padding-block:84px}.prose{color:#334339;max-width:760px;font-size:16px;line-height:1.95}.prose h2,.prose h3{color:var(--ink);letter-spacing:-.035em;scroll-margin-top:25px;line-height:1.3}.prose h2{margin-top:2.3em;font-size:29px}.prose h3{margin-top:1.8em;font-size:21px}.prose a{color:var(--green);text-underline-offset:4px;text-decoration:underline}.prose blockquote{border-left:3px solid var(--green);background:var(--light);color:#3c614a;margin:26px 0;padding:7px 24px}.prose code{font-family:var(--mono);background:#e6ede4;border-radius:3px;padding:2px 5px;font-size:.88em}.prose pre{color:#e6f2e9;background:#22362b;border-radius:8px;padding:25px;line-height:1.7;overflow-x:auto}.prose pre code{color:inherit;background:0 0;padding:0}.prose img{border-radius:6px}.prose ul,.prose ol{padding-left:23px}.prose li{margin:9px 0}.prose hr{border:0;border-top:1px solid var(--line);margin:36px 0}.prose table{border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:10px 14px}.empty-state{color:var(--muted);text-align:center;background:#edf1e9;border:1px dashed #aebcae;padding:55px 25px}.empty-state a{color:var(--green);text-decoration:underline}.stack{gap:18px;display:grid}.site-footer a:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #4aaf78}@media (width<=960px){.desktop-nav{gap:18px}.topic-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.container{width:min(100% - 34px,1180px)}.site-header{height:70px}.brand__name{font-size:20px}.desktop-nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;border:1px solid var(--line);border-radius:4px;padding:9px;font-size:12px;font-weight:700;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{z-index:30;background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:0;min-width:180px;display:flex;position:absolute;top:46px;right:0;box-shadow:0 15px 25px #1d302615}.mobile-menu nav a{border-bottom:1px solid var(--line);padding:13px 20px;font-size:13px}.page-heading{padding:55px 0 40px}.section-block{padding-block:58px}.section-head{align-items:flex-start;gap:14px}.post-card{grid-template-columns:28px minmax(0,1fr) 20px;gap:12px;padding-block:26px}.post-card__tags{flex-wrap:wrap}.topic-grid{grid-template-columns:repeat(2,1fr)}.topic-tile{min-height:160px;padding:15px}.footer-inner,.footer-bottom{flex-direction:column}.footer-inner{padding-block:35px 18px}.footer-bottom{gap:7px}.site-footer{margin-top:70px}.prose{font-size:15px}.prose h2{font-size:24px}}@media (width<=430px){.brand__divider,.brand__label{display:none}.topic-grid{grid-template-columns:1fr}.topic-tile{min-height:118px}}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}
