.blog-prose>:first-child{margin-top:0}.blog-grid{grid-template-columns:1fr;gap:2.75rem;display:grid}@media (min-width:768px){.blog-grid{grid-template-columns:1fr 1fr;gap:3rem 1.5rem}}.blog-card{text-decoration:none;display:block}.blog-card-image-wrap{border:1px solid color-mix(in srgb,var(--neutral-850)60%,transparent);background:#0b1117;border-radius:6px;overflow:hidden}.blog-card-content{margin-top:1rem}.blog-card-meta{color:var(--neutral-500);align-items:center;gap:.5rem;font-size:13px;display:flex}.blog-card-title{letter-spacing:-.02em;color:var(--neutral-100);margin-top:.5rem;font-size:22px;font-weight:700;line-height:1.2;transition:color .15s}.blog-card:hover .blog-card-title{color:var(--color-primary)}.blog-card-desc{color:var(--neutral-400);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.5rem;font-size:15px;line-height:1.6;display:-webkit-box;overflow:hidden}.blog-card-arrow{color:var(--neutral-500);opacity:0;margin-left:auto;transition:opacity .15s,transform .15s;transform:translate(-3px)}.blog-card:hover .blog-card-arrow{opacity:1;transform:translate(0)}.blog-card-image{aspect-ratio:16/10;object-fit:cover;width:100%}.blog-card-placeholder{aspect-ratio:16/10;background:var(--neutral-940);justify-content:center;align-items:center;width:100%;display:flex}.blog-card-placeholder:after{content:"";border:1px solid var(--neutral-800);opacity:.2;border-radius:9999px;width:4rem;height:4rem}.blog-post-header{text-align:center;max-width:800px;margin:0 auto}.blog-breadcrumb{color:var(--neutral-400);font-size:14px}.blog-breadcrumb a{color:var(--neutral-400);text-decoration:none;transition:color .15s}.blog-breadcrumb a:hover{color:var(--neutral-100)}.blog-breadcrumb-sep{color:var(--neutral-600);margin:0 .5rem}.blog-post-title{letter-spacing:-.03em;color:var(--neutral-50);margin-top:1.25rem;font-size:clamp(1.75rem,6vw,2.75rem);font-weight:700;line-height:1.1}.blog-post-hero{background:var(--color-background);border-radius:6px;max-width:976px;margin:1.5rem auto 0;overflow:hidden}.blog-post-hero img{aspect-ratio:976/320;object-fit:cover;width:100%}.blog-post-meta{max-width:800px;color:var(--neutral-500);flex-wrap:wrap;justify-content:center;align-items:center;gap:.375rem .5rem;margin:1.5rem auto 0;font-size:13px;display:flex}@media (min-width:768px){.blog-post-hero{margin-top:2.5rem}.blog-post-meta{margin-top:2.5rem;font-size:14px}}.blog-prose{max-width:624px;color:var(--neutral-300);margin:2rem auto 0;font-size:15px;line-height:1.7}@media (min-width:768px){.blog-prose{margin-top:2.5rem;font-size:17px;line-height:1.8}}.blog-prose h2{color:var(--neutral-50);letter-spacing:-.01em;margin:56px 0 16px;padding-bottom:0;font-size:24px;font-weight:600;line-height:1.3}.blog-prose h3{color:var(--neutral-50);margin:40px 0 8px;font-size:20px;font-weight:600;line-height:1.3}.blog-prose h4{color:var(--neutral-50);margin:32px 0 8px;font-size:16px;font-weight:600}.blog-prose p{color:var(--neutral-300);margin:16px 0}.blog-prose li{line-height:inherit}.blog-prose ul{margin:16px 0;padding-left:1.5rem;list-style-type:disc}.blog-prose ol{margin:16px 0;padding-left:1.5rem;list-style-type:decimal}.blog-prose li+li{margin-top:.5rem}.blog-prose strong{color:var(--neutral-100)}.blog-prose a{color:var(--neutral-100);text-decoration:none}.blog-prose a:hover{color:var(--neutral-50)}.blog-prose blockquote{border-left:2px solid var(--neutral-800);color:var(--neutral-500);margin:1.5rem 0;padding-left:1.5rem;font-style:italic}.blog-prose img{border-radius:6px;margin:1.5rem 0}.blog-prose hr{border:none;border-top:1px solid var(--neutral-800);margin:2rem 0}.blog-prose :not(pre)>code{font-family:var(--font-mono);background:var(--neutral-900);border:1px solid var(--neutral-850);border-radius:4px;padding:2px 6px;font-size:.875em;font-weight:600}.blog-table-wrap{border:1px solid var(--neutral-900);border-radius:6px;width:100%;margin:1.5rem 0;overflow-x:auto}.blog-prose table{border-collapse:collapse;width:100%;font-size:14px}.blog-prose thead{border-bottom:1px solid var(--neutral-900);background:var(--neutral-950,#09090b)}.blog-prose th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--neutral-400);padding:.625rem 1rem;font-size:12px;font-weight:500}.blog-prose td{border-bottom:1px solid var(--neutral-900);color:var(--neutral-300);padding:.625rem 1rem}.blog-prose pre{border:1px solid var(--neutral-900);max-width:100%;padding:1rem;font-size:13px;line-height:1.6;overflow-x:auto;background:0 0!important}.blog-prose pre code,.blog-prose pre code span,.blog-prose pre code [data-line],.blog-prose [data-rehype-pretty-code-figure] code{background:0 0!important}.blog-anchor-link{color:inherit;text-decoration:none}.blog-anchor-hash{vertical-align:middle;color:var(--neutral-600);opacity:0;margin-left:.375rem;transition:opacity .15s;display:inline-flex}.blog-prose h2:hover .blog-anchor-hash,.blog-prose h3:hover .blog-anchor-hash,.blog-prose h4:hover .blog-anchor-hash{opacity:1}.blog-code-block{border-radius:inherit;position:relative;overflow:hidden}.blog-code-block:before,.blog-code-block:after{content:"";pointer-events:none;opacity:0;z-index:5;width:2.5rem;transition:opacity .2s;position:absolute;top:0;bottom:0}.blog-code-block:before{background:linear-gradient(to left,transparent,var(--neutral-950,#09090b));left:0}.blog-code-block:after{background:linear-gradient(to right,transparent,var(--neutral-950,#09090b));right:0}.blog-code-block.overflow-left:before,.blog-code-block.overflow-right:after{opacity:1}.blog-copy-btn{z-index:10;border:1px solid color-mix(in srgb,var(--neutral-800)60%,transparent);background:color-mix(in srgb,var(--neutral-950,#09090b)70%,transparent);color:var(--neutral-400);cursor:pointer;opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:4px;padding:.375rem;line-height:0;transition:opacity .15s,color .15s,background .15s;position:absolute;top:.75rem;right:.75rem}.blog-code-block:hover .blog-copy-btn{opacity:1}.blog-copy-btn:hover{color:var(--neutral-50);background:color-mix(in srgb,var(--neutral-950,#09090b)90%,transparent)}@media (max-width:768px){.blog-copy-btn{opacity:.5}}.blog-prose [data-rehype-pretty-code-figure]{border:1px solid var(--neutral-900);border-radius:6px;overflow:hidden}.blog-prose [data-rehype-pretty-code-figure] pre{border:none;border-radius:0}.blog-prose [data-rehype-pretty-code-title]{font-size:12px;font-family:var(--font-geist-mono),monospace;color:var(--neutral-400);background:var(--neutral-950,#09090b);border-bottom:1px solid var(--neutral-900);padding:.5rem 1rem}.blog-code-tabs{border:1px solid var(--neutral-900);border-radius:6px;margin:16px 0;overflow:hidden}.blog-code-tabs [data-rehype-pretty-code-figure]{border:none;border-radius:0}.blog-code-tabs .blog-code-block{overflow:visible}.blog-code-tabs-content figure,.blog-code-tabs-content pre{margin:0}.blog-code-tabs-content pre{border:none;border-radius:0}.blog-code-tabs-header{background:var(--neutral-950,#09090b);border-bottom:1px solid var(--neutral-900);display:flex}.blog-code-tab{font-size:11px;font-family:var(--font-geist-mono),monospace;color:var(--neutral-600);cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-weight:500;transition:color .15s}.blog-code-tab--active,.blog-code-tab:hover{color:var(--neutral-300)}.blog-sign-off{max-width:624px;margin:0 auto;padding:3rem 0 0}.blog-sign-off-rule{border:none;border-top:1px solid var(--neutral-800);margin-bottom:2rem}.blog-sign-off-row{justify-content:space-between;align-items:flex-start;display:flex}.blog-sign-off-author{color:var(--neutral-100);letter-spacing:-.01em;font-size:15px;font-weight:600}.blog-sign-off-date{color:var(--neutral-400);margin-top:.375rem;font-size:13px}.blog-sign-off-socials{gap:.75rem;padding-top:.125rem;display:flex}.blog-sign-off-social{color:var(--neutral-600);line-height:0;transition:color .15s}.blog-sign-off-social:hover{color:var(--neutral-300)}.blog-sign-off-back{color:var(--neutral-500);margin-top:2rem;font-size:13px;text-decoration:none;transition:color .15s;display:inline-block}.blog-sign-off-back:hover{color:var(--neutral-100)}.reading-progress{background:var(--primary-200);z-index:50;will-change:width;height:2px;position:fixed;top:0;left:0}.blog-filter-wrap{position:relative}.blog-filter-wrap:before,.blog-filter-wrap:after{content:"";pointer-events:none;opacity:0;z-index:5;width:3rem;transition:opacity .3s;position:absolute;top:0;bottom:0}.blog-filter-wrap:before{background:linear-gradient(to left,transparent,var(--color-background));left:-.75rem}.blog-filter-wrap:after{background:linear-gradient(to right,transparent,var(--color-background));right:0}.blog-filter-wrap--left:before,.blog-filter-wrap--right:after{opacity:1}.blog-filter-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;align-items:center;gap:.25rem;margin-left:-.75rem;display:flex;overflow-x:auto}.blog-filter-scroll::-webkit-scrollbar{display:none}.blog-filter-pill{white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;transition:color .15s,background-color .15s}.blog-filter-pill--active{color:var(--neutral-50);background:0 0}.blog-filter-pill--inactive{color:var(--neutral-500)}.blog-filter-pill--inactive:hover{color:var(--neutral-50)}.blog-avatar{object-fit:cover;filter:grayscale();border-radius:9999px}.blog-avatar-initials{background:var(--neutral-900);color:var(--neutral-500);border-radius:9999px;justify-content:center;align-items:center;display:inline-flex}.blog-layout{padding-top:2.5rem;padding-bottom:4rem}@media (min-width:768px){.blog-layout{padding-top:4rem}}.blog-page-title{letter-spacing:-.02em;margin-bottom:1rem;font-size:32px;font-weight:700;line-height:1.1}.blog-filter-section{margin-bottom:2rem}@media (min-width:768px){.blog-filter-section{margin-bottom:2.5rem}}.blog-empty{text-align:center;color:var(--neutral-500);margin-top:5rem}@keyframes blog-fade-in{0%{opacity:0}to{opacity:1}}.blog-grid,.blog-filter-wrap{animation:.3s blog-fade-in}@keyframes blog-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.blog-skeleton{background:linear-gradient(90deg,var(--neutral-900)25%,var(--neutral-850)50%,var(--neutral-900)75%);background-size:200% 100%;border-radius:4px;animation:1.5s ease-in-out infinite blog-shimmer}.blog-skeleton-image{aspect-ratio:16/10;border-radius:6px;width:100%}.blog-skeleton-text{width:40%;height:.875rem;margin-top:1rem}.blog-skeleton-title{width:80%;height:1.375rem;margin-top:.625rem}.blog-skeleton-desc{width:100%;height:.875rem;margin-top:.625rem}.blog-skeleton-desc-short{width:65%;height:.875rem;margin-top:.375rem}
