.blog-grid-section{padding-bottom:80px}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:8px}.blog-card{display:flex;flex-direction:column;gap:14px;padding:22px 22px 18px;background:hsla(0,0%,100%,.015);border:1px solid var(--line,#1f1f23);border-radius:14px;text-decoration:none;color:inherit;transition:border-color .18s,transform .18s,background .18s}.blog-card:hover{border-color:var(--line-strong,#2a2a30);transform:translateY(-2px);background:hsla(0,0%,100%,.025)}.blog-card-tags{display:flex;flex-wrap:wrap;gap:6px}.blog-card-tag{font-family:var(--font-mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(168,240,165,.08);color:var(--accent,oklch(.86 .2 142));border:1px solid rgba(168,240,165,.18)}.blog-card-title{font-weight:700;font-size:20px;line-height:1.25;letter-spacing:-.02em;color:var(--fg,#ededee)}.blog-card-desc,.blog-card-title{font-family:var(--font-sans,"Inter",sans-serif);margin:0}.blog-card-desc{font-size:13.5px;line-height:1.55;color:var(--fg-3,#8a8a92)}.blog-card-meta{display:flex;align-items:center;gap:8px;font-family:var(--font-mono,ui-monospace,monospace);font-size:11.5px;color:var(--fg-4,#5a5a62);margin-top:auto;padding-top:6px}.blog-card-dot{opacity:.5}.blog-empty{grid-column:1/-1;padding:60px 20px;text-align:center;font-family:var(--font-mono,ui-monospace,monospace);color:var(--fg-4,#5a5a62)}.blog-hero{padding-top:120px;padding-bottom:40px}.blog-hero-inner{max-width:760px;margin:0 auto;text-align:left}.blog-crumbs{display:flex;align-items:center;gap:8px;font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;color:var(--fg-4,#5a5a62);margin-bottom:18px}.blog-crumbs a{color:var(--fg-3,#8a8a92);text-decoration:none}.blog-crumbs a:hover{color:var(--fg,#ededee)}.blog-crumbs-sep{opacity:.5}.blog-post-title{font-size:clamp(32px,4.6vw,48px)!important;line-height:1.08!important;letter-spacing:-.03em!important;margin:0 0 18px;text-transform:none!important}.blog-post-lede{margin:0 0 22px!important;max-width:680px!important}.blog-post-meta{display:flex;align-items:center;gap:10px;font-family:var(--font-mono,ui-monospace,monospace);font-size:12.5px;color:var(--fg-4,#5a5a62)}.blog-body-section{padding:24px 20px 80px}.blog-body{max-width:740px;margin:0 auto}.blog-article{font-family:var(--font-sans,"Inter",sans-serif);color:var(--fg-2,#b9b9bf);font-size:16px;line-height:1.7;letter-spacing:-.003em}.blog-article .blog-lede{font-size:18px;line-height:1.6;color:var(--fg,#ededee);margin:0 0 36px}.blog-article p{margin:0 0 18px}.blog-article h2{font-weight:700;font-size:26px;line-height:1.25;letter-spacing:-.02em;margin:56px 0 16px}.blog-article h2,.blog-article h3{font-family:var(--font-sans,"Inter",sans-serif);color:var(--fg,#ededee);scroll-margin-top:100px}.blog-article h3{font-weight:600;font-size:18px;line-height:1.35;letter-spacing:-.015em;margin:32px 0 10px}.blog-article ol,.blog-article ul{margin:0 0 22px;padding-left:22px}.blog-article li{margin-bottom:10px;line-height:1.65}.blog-article li::marker{color:var(--fg-4,#5a5a62)}.blog-article strong{color:var(--fg,#ededee);font-weight:600}.blog-article em{font-style:italic}.blog-article a{color:var(--accent,oklch(.86 .2 142));text-decoration:none;border-bottom:1px dashed rgba(168,240,165,.35);transition:border-color .12s,color .12s}.blog-article a:hover{color:var(--fg,#ededee);border-bottom-color:var(--fg,#ededee)}.blog-article code{font-size:.92em;padding:1.5px 6px;background:hsla(0,0%,100%,.04);border:1px solid var(--line,#1f1f23);border-radius:4px}.blog-article code,.blog-article pre{font-family:var(--font-mono,"JetBrains Mono",ui-monospace,monospace);color:var(--fg,#ededee)}.blog-article pre{margin:22px 0;padding:18px 20px;background:var(--bg-1,#111113);border:1px solid var(--line,#1f1f23);border-radius:10px;overflow-x:auto;font-size:13px;line-height:1.65}.blog-article pre code{padding:0;background:transparent;border:0;font-size:inherit;color:inherit}.blog-toc{margin:28px 0 40px;padding:18px 22px;background:hsla(0,0%,100%,.015);border:1px solid var(--line,#1f1f23);border-radius:12px}.blog-toc-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3,#8a8a92);margin-bottom:12px}.blog-toc ol,.blog-toc-label{font-family:var(--font-mono,ui-monospace,monospace)}.blog-toc ol{margin:0;padding-left:18px;font-size:13px;line-height:1.8}.blog-toc li::marker{color:var(--fg-4,#5a5a62)}.blog-toc a{border-bottom:none;color:var(--fg-2,#b9b9bf)}.blog-toc a:hover{color:var(--accent,oklch(.86 .2 142))}.blog-related{margin:56px 0 36px;padding:22px 24px;background:hsla(0,0%,100%,.015);border:1px solid var(--line,#1f1f23);border-radius:12px}.blog-related-label{font-family:var(--font-mono,ui-monospace,monospace);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3,#8a8a92);margin-bottom:12px}.blog-related ul{margin:0;padding-left:18px}.blog-related li{margin-bottom:6px}.blog-cta{margin:40px 0 0;padding:24px 26px;background:linear-gradient(140deg,rgba(168,240,165,.07),rgba(168,240,165,.02));border:1px solid rgba(168,240,165,.25);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.blog-cta-title{font-size:17px;font-weight:600;letter-spacing:-.015em;color:var(--fg,#ededee)}.blog-cta-sub,.blog-cta-title{font-family:var(--font-sans,"Inter",sans-serif)}.blog-cta-sub{font-size:13.5px;color:var(--fg-3,#8a8a92);margin-top:4px;max-width:460px}.blog-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;background:var(--accent,oklch(.86 .2 142));color:#0c1408;font-family:var(--font-mono,ui-monospace,monospace);font-size:13px;font-weight:600;border-radius:10px;text-decoration:none!important;border-bottom:0!important;white-space:nowrap;box-shadow:0 0 0 1px rgba(168,240,165,.6),0 8px 28px -10px rgba(168,240,165,.45);transition:transform .14s}.blog-cta-btn:hover{transform:translateY(-1px);color:#0c1408!important}[data-theme=light] .blog-article{color:var(--fg-2,#34343a)}[data-theme=light] .blog-article h2,[data-theme=light] .blog-article h3,[data-theme=light] .blog-article strong{color:var(--fg,#18181b)}[data-theme=light] .blog-article code{background:rgba(0,0,0,.04)}[data-theme=light] .blog-card-title{color:var(--fg,#18181b)}@media (max-width:720px){.blog-hero{padding-top:96px}.blog-post-title{font-size:28px!important}.blog-article{font-size:15.5px}.blog-cta{flex-direction:column;align-items:flex-start}}