@font-face{font-family:spectral;src:url(../media/spectral_500-s.p.1bpjg6qfho4vf.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:spectral;src:url(../media/spectral_600-s.p.1oryfd3uw60-u.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:spectral Fallback;src:local(Arial);ascent-override:105.01%;descent-override:45.91%;line-gap-override:0.0%;size-adjust:100.85%}.spectral_923d928-module__DaLR8q__className{font-family:spectral,spectral Fallback}.spectral_923d928-module__DaLR8q__variable{--font-spectral:"spectral", "spectral Fallback"}
@font-face{font-family:golos;src:url(../media/golos-s.p.3u6-g6fzxb9io.woff2)format("woff2");font-display:swap;font-weight:400 600;font-style:normal}@font-face{font-family:golos Fallback;src:local(Arial);ascent-override:90.05%;descent-override:20.21%;line-gap-override:0.0%;size-adjust:108.83%}.golos_f9a8e9e2-module__9bbV2G__className{font-family:golos,golos Fallback;font-style:normal}.golos_f9a8e9e2-module__9bbV2G__variable{--font-golos:"golos", "golos Fallback"}
@font-face{font-family:jbmono;src:url(../media/jbmono-s.p.3pqjghnvtn4fi.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:jbmono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jbmono_cc8e30c9-module__SvUsiW__className{font-family:jbmono,jbmono Fallback;font-style:normal;font-weight:400}.jbmono_cc8e30c9-module__SvUsiW__variable{--font-jbmono:"jbmono", "jbmono Fallback"}
:root{--paper:#f6f8f1;--surface:#fffefa;--ink:#183b32;--ink-soft:#59675b;--line:#d6ddce;--panel:#ecf1e5;--accent:#487047;--accent-strong:#285445;--accent-link:#56782f;--lime:#d8f478;--ink-shadow:#0c261f;--font-serif:var(--font-spectral), Georgia, "Times New Roman", serif;--font-sans:var(--font-golos), system-ui, -apple-system, sans-serif;--font-mono:var(--font-jbmono), ui-monospace, SFMono-Regular, Menlo, monospace;--maxw:1184px;--readw:68ch}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.65}::selection{background:var(--lime);color:var(--ink)}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--ink);font-weight:500;line-height:1.14}.serif{font-family:var(--font-serif);letter-spacing:-.045em;color:var(--accent);font-weight:500}a{color:var(--accent-link);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}.muted{color:var(--ink-soft)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}:is(a,summary,button,.btn):focus-visible{outline-offset:4px;border-radius:4px;outline:3px solid #587d21}.btn{font-family:var(--font-sans);cursor:pointer;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:13px 20px;font-size:14px;font-weight:500;line-height:1.4;transition:background .25s,transform .25s,box-shadow .25s,border-color .25s;display:inline-flex}.btn-primary{background:var(--ink);color:#fff;box-shadow:0 3px 0 var(--ink-shadow)}.btn-primary:hover{background:var(--accent-strong);box-shadow:0 5px 0 var(--ink-shadow);text-decoration:none;transform:translateY(-2px)}.btn-secondary{color:var(--ink);background:0 0;border-color:#bdc8b4}.btn-secondary:hover{border-color:var(--ink);background:#ffffff80;text-decoration:none}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.nav{justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.brand{font-family:var(--font-sans);color:var(--ink);letter-spacing:-.03em;font-size:21px;font-weight:600}.brand:hover{text-decoration:none}.nav-links{align-items:center;gap:28px;display:flex}.nav-links a{color:var(--ink-soft);font-size:15px}.nav-links a:hover{color:var(--ink);text-decoration:none}.nav-links a.nav-login{margin-left:6px}.btn.nav-cta{min-height:40px;padding:9px 16px;font-size:14px}.nav-burger{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin:-10px -8px -10px 0;padding:10px;display:none}.nav-burger span{background:var(--ink);border-radius:2px;width:24px;height:2px;transition:transform .25s,opacity .2s;display:block}.nav-burger.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.nav-burger.is-open span:nth-child(2){opacity:0}.nav-burger.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-drawer{z-index:50;visibility:hidden;pointer-events:none;position:fixed;inset:0}.nav-drawer.open{visibility:visible;pointer-events:auto}.nav-drawer-backdrop{opacity:0;background:#0c261f33;transition:opacity .25s;position:absolute;inset:0}.nav-drawer.open .nav-drawer-backdrop{opacity:1}.nav-drawer-panel{background:var(--paper);border-left:1px solid var(--line);flex-direction:column;gap:4px;width:min(84vw,320px);height:100%;padding:88px 24px 32px;transition:transform .28s cubic-bezier(.2,.65,.3,1);display:flex;position:absolute;top:0;right:0;transform:translate(100%);box-shadow:-18px 0 40px #183b3214}.nav-drawer.open .nav-drawer-panel{transform:none}.nav-drawer-panel a{color:var(--ink);border-bottom:1px solid var(--line);padding:12px 2px;font-size:17px}.nav-drawer-panel a:hover{color:var(--accent-link);text-decoration:none}.nav-drawer-panel a.nav-login{margin:0}.nav-drawer-panel a.btn{border-bottom:0;justify-content:center;margin-top:14px}@media (max-width:960px){.nav-links{display:none}.nav-burger{display:flex}}.blog-head{padding:80px 0 10px}.blog-head h1{letter-spacing:-.045em;margin:0 0 14px;font-size:clamp(38px,5vw,58px)}.blog-head p{color:var(--ink-soft);max-width:56ch;margin:0;font-size:18px;line-height:1.6}.post-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:28px 0 96px;padding:0;list-style:none;display:grid}.post-list li{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:0;transition:transform .3s,box-shadow .3s,border-color .3s;position:relative;overflow:hidden}.post-list li:hover{border-color:#c7d2bb;transform:translateY(-4px);box-shadow:0 14px 32px #183b320f}.post-list li:has(a:focus-visible){outline:3px solid var(--accent-link);outline-offset:4px}.post-cover{aspect-ratio:1200/630;overflow:hidden}.post-cover img{object-fit:cover;width:100%;height:100%;display:block}.post-content{padding:22px 24px 26px}.post-meta{font-family:var(--font-mono);color:var(--ink-soft);letter-spacing:-.02em;font-size:12px}.post-list h2{letter-spacing:-.03em;margin:12px 0 10px;font-size:20px;line-height:1.25}.post-list h2 a{color:var(--ink)}.post-list h2 a:after{content:"";position:absolute;inset:0}.post-list h2 a:focus-visible{outline:none}.post-list h2 a:hover{color:var(--accent-link);text-decoration:none}.post-list .excerpt{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.6}@media (min-width:1024px){.post-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.article{max-width:var(--readw);margin:0 auto;padding:56px 24px 96px}.breadcrumbs{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:26px;font-size:12px;display:flex}.breadcrumbs a{color:var(--ink-soft)}.breadcrumbs a:hover{color:var(--ink);text-decoration:none}.breadcrumbs .sep{color:#a9b6a0}.breadcrumbs .current{color:var(--ink)}.article-back{font-size:14px}.article h1{letter-spacing:-.045em;margin:8px 0 14px;font-size:clamp(32px,5vw,48px);line-height:1.1}.article .meta{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:-.02em;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-bottom:32px;padding-bottom:22px;font-size:13px;display:flex}.article .meta .article-author-link{color:var(--accent-link)}.article-body{color:#22312b;font-size:18px;line-height:1.7}.article-body p{margin:0 0 1.35em}.article-body h2{letter-spacing:-.035em;margin:1.8em 0 .5em;font-size:28px}.article-body h3{letter-spacing:-.03em;margin:1.5em 0 .4em;font-size:21px}.article-body a{color:var(--accent-link);text-underline-offset:3px;text-decoration:underline}.article-body ul,.article-body ol{margin:0 0 1.35em;padding-left:1.3em}.article-body li{margin:.4em 0}.article-body li::marker{color:var(--accent)}.article-body strong{color:var(--ink);font-weight:600}.article-body>p:first-of-type:first-letter{font-family:var(--font-serif);float:left;color:var(--accent);padding:6px 10px 0 0;font-size:3.1em;font-weight:600;line-height:.82}.article-body figure{margin:2.2em 0}.article-body figure img{border:1px solid var(--line);border-radius:10px;width:100%;height:auto;display:block}.article-body figcaption{color:var(--ink-soft);margin-top:10px;font-size:14px;line-height:1.5}.article-body .table-wrap{margin:0 0 1.6em;overflow-x:auto}.article-body table{border-collapse:collapse;width:100%;min-width:480px;font-size:15px}.article-body th,.article-body td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.article-body th{background:var(--ink);color:var(--paper);font-weight:600}.article-body tbody tr:nth-child(2n){background:var(--panel)}.article-body blockquote{border-left:3px solid var(--accent);color:var(--ink-soft);margin:1.6em 0;padding:4px 0 4px 18px}.article-body blockquote p{margin:0 0 .5em}.article-body blockquote p:last-child{margin-bottom:0}.article-body pre{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:0 0 1.5em;padding:16px 18px;overflow-x:auto}.article-body code{font-family:var(--font-mono);font-size:.92em}.article-end{border-top:1px solid var(--line);margin-top:48px;padding-top:30px}.article-author{align-items:flex-start;gap:16px;display:flex}.article-author .aa-name{color:var(--ink);font-weight:600}.article-author .aa-bio{color:var(--ink-soft);margin:4px 0 0;font-size:15px}.related{margin-top:40px}.related h2{letter-spacing:-.03em;margin:0 0 16px;font-size:22px}.related-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.related-list a{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:14px 16px;font-size:15px;transition:border-color .25s,background .25s;display:block}.related-list a:hover{background:#fff;border-color:#c7d2bb;text-decoration:none}.site-footer{border-top:1px solid var(--line);background:var(--paper);margin-top:40px}.foot{grid-template-columns:2fr 1fr 1fr;gap:32px;padding:56px 32px 32px;display:grid}.foot .brand{font-size:20px}.foot-col{flex-direction:column;gap:8px;display:flex}.foot-col a{color:var(--ink-soft);font-size:15px}.foot-col a:hover{color:var(--ink);text-decoration:none}.foot-h{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--ink);margin-bottom:4px;font-size:12px;font-weight:500}.foot-copy{padding:0 32px 40px;font-size:14px}.reveal{opacity:0;transition:opacity .25s ease-out,transform .25s ease-out;transform:translateY(12px)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}@media (max-width:760px){.wrap{padding:0 20px}.nav{padding:18px 20px}.blog-head{padding:56px 0 6px}.post-list{grid-template-columns:1fr}.article{padding:40px 20px 72px}.foot{grid-template-columns:1fr 1fr;padding:48px 20px 28px}.foot>div:first-child{grid-column:1/-1}.foot-copy{padding:0 20px 36px}}.hero{padding:96px 0 64px}.hero-inner{max-width:780px}.hero h1{letter-spacing:-.045em;margin:0 0 24px;font-size:clamp(38px,6vw,58px)}.hero .lead{color:var(--ink-soft);max-width:60ch;margin:0 0 34px;font-size:clamp(18px,2.4vw,21px);line-height:1.5}.hero-cta{flex-wrap:wrap;gap:14px;display:flex}.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.proof-row{grid-template-columns:repeat(3,1fr);display:grid}.proof-item{border-left:1px solid var(--line);padding:30px 28px}.proof-item:first-child{border-left:none;padding-left:0}.proof-item .k{align-items:center;gap:9px;margin-bottom:4px;font-size:26px;font-weight:500;display:flex}.proof-item .k svg{color:var(--accent)}.proof-item .d{color:var(--ink-soft);font-size:15px}.section{padding:76px 0}.section-label{color:var(--accent-link);margin:0 0 10px;font-size:14px;font-weight:600}.section h2{letter-spacing:-.035em;max-width:20ch;margin:0 0 8px;font-size:clamp(26px,3.6vw,38px)}.section-intro{color:var(--ink-soft);max-width:56ch;margin:0 0 40px;font-size:17px}.steps{border-top:1px solid var(--line)}.step{border-bottom:1px solid var(--line);grid-template-columns:88px 1fr;align-items:start;gap:8px 24px;padding:30px 0;display:grid}.step .num{color:var(--accent);font-size:44px;font-weight:500;line-height:1}.step .body{max-width:58ch}.step h3{align-items:center;gap:10px;margin:4px 0 8px;font-size:21px;display:flex}.step h3 svg{color:var(--ink-soft);flex:none}.step p{color:var(--ink-soft);margin:0}.embed-wrap{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-top:8px;padding:22px 24px}.embed-wrap .embed-label{color:var(--ink-soft);margin:0 0 10px;font-size:13px}.embed-code{font-family:var(--font-mono);color:var(--ink);white-space:pre;margin:0;font-size:14px;overflow-x:auto}.embed-code .tok{color:var(--accent)}.cta{border-top:1px solid var(--line)}.cta-inner{max-width:640px;padding:80px 0}.cta h2{letter-spacing:-.04em;margin:0 0 16px;font-size:clamp(28px,4vw,42px)}.cta p{color:var(--ink-soft);margin:0 0 28px;font-size:18px}@media (max-width:760px){.hero{padding:60px 0 44px}.proof-row{grid-template-columns:1fr}.proof-item{border-left:none;border-top:1px solid var(--line);padding:22px 0}.proof-item:first-child{border-top:none}.step{grid-template-columns:1fr;gap:6px}.step .num{font-size:32px}.hero-cta .btn{flex:100%}}
