.blog-post-page{min-height:100vh;font-family:var(--font-body);color:#0b1f17;background:#faf9f6}.blog-post-back{max-width:680px;padding:var(--hero-pt) var(--page-px) 0;justify-content:space-between;align-items:center;margin:0 auto;display:flex}.blog-post-back>a{font-family:var(--font-mono);color:#4d7c4a;font-size:13px;text-decoration:none;transition:color .2s}.blog-post-back>a:hover{color:#6ab060}.blog-post{max-width:680px;padding:32px var(--page-px) 80px;margin:0 auto}.blog-post header{margin-bottom:28px}.blog-post header h1{font-family:var(--font-heading);font-size:var(--h2-size);color:#0b1f17;letter-spacing:-.01em;margin-bottom:16px;font-weight:600;line-height:1.2}.blog-post-authors{flex-wrap:wrap;gap:16px;display:flex}.blog-post-meta{font-family:var(--font-mono);color:#0b1f17;letter-spacing:.02em;align-items:center;gap:12px;font-size:12px;display:flex}.blog-post-meta-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}.blog-post-meta-name{color:#0b1f17;text-decoration:none;transition:color .2s}.blog-post-meta-name:hover{color:#4d7c4a}.blog-post-meta-title{color:#0b1f178c}.blog-post-meta-title:before{content:"·";color:#0b1f1766;margin:0 6px}.blog-post-meta-date{font-family:var(--font-mono);color:#0b1f1780;letter-spacing:.05em;margin-top:8px;margin-bottom:24px;font-size:12px}.blog-post-image{border:1px solid #0b1f170f;border-radius:2px;margin:0 -140px 32px;overflow:hidden}@media (width<=1023px){.blog-post-image{margin-left:0;margin-right:0}}.blog-post-image img{aspect-ratio:2;object-fit:cover;width:100%;height:auto;display:block}.blog-post-footer{border-top:1px solid #0b1f1714;justify-content:space-between;align-items:center;margin-top:64px;padding-top:24px;display:flex}.blog-post-footer>a{font-family:var(--font-mono);color:#4d7c4a;font-size:13px;text-decoration:none;transition:color .2s}.blog-post-footer>a:hover{color:#6ab060}.blog-share{align-items:center;gap:6px;display:flex}.blog-share__label{font-family:var(--font-mono);color:#0b1f1780;letter-spacing:.05em;margin-right:4px;font-size:12px}.blog-share__btn{color:#0b1f1780;cursor:pointer;background:0 0;border:1px solid #0b1f1726;border-radius:2px;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:color .2s,border-color .2s;display:flex}.blog-share__btn:hover{color:#4d7c4a;border-color:#4d7c4a33}.blog-share__btn[data-copied]{color:#6ab060;border-color:#6ab06040}.blog-prose{font-family:var(--font-body);color:#364d43;font-size:16px;line-height:1.8}.blog-prose p{margin-bottom:24px}.blog-prose h2{font-family:var(--font-heading);color:#0b1f17;margin-top:32px;margin-bottom:16px;font-size:28px;font-weight:600;line-height:1.3}.blog-prose img{cursor:zoom-in;border:1px solid #0b1f170f;border-radius:2px;max-width:100%;height:auto;margin:32px 0 8px;display:block}.blog-prose figure{margin:32px 0}.blog-prose figure img{margin:0}.blog-prose figure figcaption{font-family:var(--font-mono);color:#0b1f1799;text-align:center;text-wrap:balance;max-width:90%;margin:12px auto 0;font-size:12px;line-height:1.45}.blog-prose table{border-collapse:collapse;width:100%;font-family:var(--font-mono);color:#0b1f17;margin:32px 0;font-size:13px;line-height:1.5}.blog-prose th,.blog-prose td{text-align:left;vertical-align:top;border:1px solid #0b1f171f;padding:8px 14px}.blog-prose thead th{text-align:center;background:#0b1f1708;font-weight:600}.blog-prose tbody th{font-weight:600}.blog-prose .numeric-table td,.blog-prose .numeric-table tbody th{text-align:right}.blog-prose .numeric-table tbody th{text-align:left}.blog-prose .dense{font-size:12px}.blog-prose .dense th,.blog-prose .dense td{padding:7px 5px}.blog-prose .blog-table{margin:32px 0;overflow-x:auto}.blog-prose .blog-table table{margin:0}.blog-prose h3{font-family:var(--font-heading);color:#0b1f17;margin-top:28px;margin-bottom:12px;font-size:22px;font-weight:600;line-height:1.3}.blog-prose strong{color:#0b1f17;font-weight:600}.blog-prose em{font-style:italic}.blog-prose a{color:#4d7c4a;text-underline-offset:2px;text-decoration:underline}.blog-prose a:hover{color:#6ab060}.blog-prose ul,.blog-prose ol{margin-bottom:24px;padding-left:24px}.blog-prose li{margin-bottom:8px}.blog-prose blockquote{font-family:var(--font-heading);color:#0b1f17;background:#6ab0600f;border-left:3px solid #6ab060;margin:32px 0;padding:16px 24px;font-size:17px;font-style:italic;line-height:1.7}.blog-prose blockquote p{margin-bottom:8px}.blog-prose blockquote p:last-child{margin-bottom:0}.blog-prose code{font-family:var(--font-mono);color:#0b1f17;background:#0b1f170a;border-radius:3px;padding:2px 6px;font-size:14px}.blog-prose pre{font-family:var(--font-mono);color:#d4e8cd;background:#0b1f17;border-radius:2px;margin:32px 0;padding:24px;font-size:13px;line-height:1.6;overflow-x:auto}.blog-prose pre code{color:inherit;font-size:inherit;background:0 0;border-radius:0;padding:0}.blog-prose hr{background:#0b1f1714;border:none;height:1px;margin:48px 0}.blog-prose img{border:1px solid #0b1f1714;border-radius:2px;max-width:100%;height:auto;margin:32px auto 8px;display:block}.blog-prose p:has(>img:only-child){margin-bottom:8px}.blog-prose p>img+em,.blog-prose p>em:has(+img){text-align:center;color:#0b1f1799;margin-top:4px;font-size:14px;display:block}.blog-prose :target{scroll-margin-top:120px}
