.blog{--blog-anchor-offset:96px;padding-bottom:clamp(72px,12vw,128px)}.blog .blog-hero{max-width:720px;padding:clamp(72px,12vw,128px) 0 clamp(2.5rem,6vw,4rem)}.blog .blog-hero h1{margin-bottom:1rem;font-size:clamp(2.25rem,5vw,3.25rem)}.blog .blog-lede{color:var(--text-muted);max-width:60ch;font-size:1.15rem;line-height:1.65}.blog .blog-hero-links{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.blog .blog-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:clamp(1.5rem,4vw,2.5rem);display:grid}.blog .blog-pill{color:#ffffffc7;letter-spacing:.04em;text-transform:uppercase;background:#ffffff0f;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.75rem;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.blog a.blog-pill:hover{color:var(--accent);background:var(--accent-soft);border-color:#ff4f8b59}.blog .blog-pill--active,.blog .blog-pill[aria-current=page]{color:var(--accent);background:var(--accent-soft);border-color:#ff4f8b73}.blog .blog-card{flex-direction:column;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s,border-color .25s;display:flex}.blog .blog-card:hover{box-shadow:var(--shadow-glow);border-color:#5c7bff59;transform:translateY(-3px)}.blog .blog-card-link{color:inherit;flex-direction:column;flex:1;display:flex}.blog .blog-card-link:hover{color:inherit}.blog .blog-card-cover{aspect-ratio:16/9;border-bottom:1px solid var(--border-soft);position:relative;overflow:hidden}.blog .blog-card-image{object-fit:cover;width:100%;height:100%;display:block}.blog .blog-card-cover-fallback{background:radial-gradient(120% 120% at 0% 0%, #5c7bff47 0%, transparent 55%), radial-gradient(100% 100% at 100% 100%, #ff4f8b38 0%, transparent 52%), var(--bg-panel);width:100%;height:100%}.blog .blog-card-body{flex:1;align-content:start;gap:.6rem;padding:1.5rem 1.5rem 1rem;display:grid}.blog .blog-card-meta{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.6rem;font-size:.75rem;display:flex}.blog .blog-card-author{color:var(--text-muted);font-size:.85rem}.blog .blog-card-title{font-size:1.25rem;line-height:1.3}.blog .blog-card-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.95rem;display:-webkit-box;overflow:hidden}.blog .blog-card-tags{padding:0 1.5rem 1.5rem}.blog .blog-card-tags-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.blog .draft-badge{color:var(--sev-medium);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#ffd23c1f;border:1px solid #ffd23c66;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.7rem;display:inline-flex}.blog .blog-tag-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(1.25rem,3vw,2rem);display:grid}.blog .tag-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-soft);border-radius:16px;gap:.75rem;padding:1.25rem 1.5rem;transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .2s,box-shadow .25s;display:grid}.blog .tag-card:hover{color:inherit;box-shadow:var(--shadow-glow);border-color:#5c7bff66;transform:translateY(-2px)}.blog .tag-card-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.blog .tag-card-count{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap;font-size:.72rem}.blog .tag-card-description{color:var(--text-muted);font-size:.9rem}.blog .author-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-soft);border-radius:24px;align-items:flex-start;gap:1.75rem;margin:clamp(72px,12vw,128px) 0 clamp(2.5rem,6vw,4rem);padding:clamp(1.5rem,4vw,2.5rem);display:flex}.blog .author-card-avatar{border:1px solid var(--border-soft);background:var(--bg-panel);border-radius:50%;flex:none;width:80px;height:80px}.blog .author-card-body{justify-items:start;gap:.5rem;display:grid}.blog .author-card-body h1{font-size:clamp(1.75rem,4vw,2.5rem)}.blog .author-card-role{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--accent-secondary) 82%, #fff 18%);font-size:.8rem}.blog .author-card-bio{max-width:65ch}.blog .blog-post-header{text-align:center;flex-direction:column;align-items:center;max-width:860px;margin:0 auto;padding-top:clamp(48px,8vw,96px);display:flex}.blog .blog-post-header h1{margin:1rem 0 1.25rem;font-size:clamp(2rem,5vw,3rem);line-height:1.15}.blog .blog-post-cover{border:1px solid var(--border-soft);background:var(--bg-panel);border-radius:24px;max-width:768px;max-height:380px;margin:1.75rem auto 0;overflow:hidden}.blog .blog-post-cover img{object-fit:cover;width:100%;height:100%;max-height:380px;display:block}.blog .blog-post-meta{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.9rem;display:flex}.blog .blog-post-author-avatar{border:1px solid var(--border-soft);background:var(--bg-panel);border-radius:50%;width:32px;height:32px}.blog .blog-post-authors{align-items:center;gap:.45rem;display:inline-flex}.blog .blog-post-authors a{color:var(--text-muted)}.blog .blog-post-authors a:hover{color:var(--accent)}.blog .blog-post-meta time{font-family:var(--font-mono);letter-spacing:.04em;font-size:.8rem}.blog .blog-post-summary{max-width:65ch;margin-top:1.25rem;margin-left:auto;margin-right:auto;font-size:1.1rem;line-height:1.65}.blog .blog-post-tags{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.blog .blog-post-layout{grid-template-columns:minmax(0,1fr);gap:2.5rem;margin-top:clamp(2.5rem,6vw,4rem);display:grid}.blog .blog-post-spacer,.blog .blog-toc-sidebar{display:none}@media (width>=1024px){.blog .blog-post-layout{grid-template-columns:220px minmax(0,1fr) 220px}.blog .blog-post-spacer{display:block}.blog .blog-toc-sidebar{top:var(--blog-anchor-offset);max-height:calc(100vh - var(--blog-anchor-offset) - 2rem);align-self:start;display:block;position:sticky}}.blog .toc-panel{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-soft);border-radius:16px;padding:1.25rem}.blog .toc-eyebrow{margin-bottom:.9rem}.blog .toc-eyebrow:before{width:20px}.blog .toc-scroll{max-height:calc(100vh - var(--blog-anchor-offset) - 6rem);scrollbar-width:thin;scrollbar-color:#8a94c040 transparent;padding-right:.35rem;overflow-y:auto}.blog .toc-list{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.blog .toc-list a{color:var(--text-muted);border-left:2px solid #0000;padding:.3rem 0 .3rem .75rem;font-size:.85rem;line-height:1.4;transition:color .15s,border-color .15s;display:block}.blog .toc-list a:hover{color:var(--accent)}.blog .toc-list a.active{color:var(--accent);border-left-color:var(--accent)}.blog .toc-indent-3{padding-left:.75rem}.blog .toc-indent-4{padding-left:1.5rem}.blog .toc-indent-5{padding-left:2.25rem}.blog .blog-mobile-toc{top:calc(var(--site-header-h,64px) - 1px);z-index:40;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#090c18b8;position:sticky}@media (width>=1024px){.blog .blog-mobile-toc{display:none}}.blog .blog-mobile-toc summary{list-style:none}.blog .blog-mobile-toc summary::-webkit-details-marker{display:none}.blog .blog-mobile-toc-summary{cursor:pointer;color:var(--text-primary);display:block}.blog .blog-mobile-toc-row{align-items:center;gap:.75rem;width:min(1200px,92vw);margin:0 auto;padding:.7rem 0;display:flex}.blog .blog-mobile-toc-progress{color:color-mix(in srgb, var(--accent) 70%, var(--text-primary) 30%);display:inline-flex}.blog .blog-mobile-toc-icon{width:1.25rem;height:1.25rem}.blog .blog-mobile-toc-progress-track{color:#ff4f8b2e}.blog .blog-mobile-toc-progress-value{color:var(--accent);transition:stroke-dashoffset .12s linear}.blog .blog-mobile-toc-current{min-width:0;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.95rem;line-height:1.35;display:block;overflow:hidden}.blog .blog-mobile-toc-chevron{color:var(--text-muted);transition:transform .2s}.blog .blog-mobile-toc details[open] .blog-mobile-toc-chevron{transform:rotate(180deg)}.blog .blog-mobile-toc-panel{border-top:1px solid var(--border-soft);background:#090c18eb}.blog .blog-mobile-toc-scroll{scrollbar-width:thin;scrollbar-color:#8a94c040 transparent;max-height:min(30vh,22rem);overflow-y:auto}.blog .blog-mobile-toc-list{gap:.1rem;margin:0;padding:.5rem 0;list-style:none;display:grid}.blog .blog-mobile-toc-link{color:var(--text-muted);padding:.45rem 0;font-size:.95rem;line-height:1.35;display:block}.blog .blog-mobile-toc-link:hover,.blog .blog-mobile-toc-link.active{color:var(--accent)}.blog .blog-progress{top:calc(var(--site-header-h,0px) - 1px);z-index:70;background:var(--border-faint);pointer-events:none;height:2px;position:fixed;left:0;right:0}.blog .blog-progress-value{background:linear-gradient(90deg, var(--accent-secondary), var(--accent));transform-origin:0;width:100%;height:100%;transition:transform .12s linear;transform:scaleX(0)}.blog .scroll-top-button{z-index:45;border:1px solid var(--border-soft);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:2.75rem;height:2.75rem;color:var(--text-primary);cursor:pointer;opacity:0;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;transition:opacity .2s,transform .2s,border-color .2s,color .2s;display:inline-flex;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(10px)}.blog .scroll-top-button svg{width:1rem;height:1rem}.blog .scroll-top-button.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.blog .scroll-top-button:hover{color:var(--accent);border-color:#ff4f8b73}.blog .callout{background:var(--bg-panel);border:1px solid var(--border-soft);border-left:3px solid var(--accent-secondary);border-radius:12px;margin:1.5rem 0;padding:1rem 1.25rem}.blog .callout>p:first-child{margin-top:0}.blog .callout>p:last-child{margin-bottom:0}.blog .callout.warn{border-left-color:var(--sev-high);background:color-mix(in srgb, var(--sev-high) 6%, var(--bg-panel))}.blog .prose{overflow-wrap:anywhere;word-break:break-word;max-width:100%;font-size:1.05rem}.blog .prose h1,.blog .prose h2,.blog .prose h3,.blog .prose h4,.blog .prose h5,.blog .prose h6{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);scroll-margin-top:var(--blog-anchor-offset);font-weight:600;line-height:1.25}.blog .prose h1{border-bottom:1px solid color-mix(in srgb, var(--accent) 28%, var(--border-soft) 72%);margin-top:3rem;margin-bottom:.85rem;padding-bottom:.5rem;font-size:1.95rem}.blog .prose h2{margin-top:2.5rem;margin-bottom:.75rem;font-size:1.5rem}.blog .prose h3{margin-top:2rem;margin-bottom:.6rem;font-size:1.2rem}.blog .prose h4{color:color-mix(in srgb, var(--text-primary) 88%, var(--accent) 12%);margin-top:1.75rem;margin-bottom:.5rem;font-size:1.05rem}.blog .prose h5{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin-top:1.5rem;margin-bottom:.4rem;font-size:.85rem}.blog .prose h6{text-transform:uppercase;letter-spacing:.18em;color:var(--text-dim);margin-top:1.25rem;margin-bottom:.35rem;font-size:.78rem}.blog .prose p{margin:1.1rem 0}.blog .prose strong{color:var(--text-primary);font-weight:600}.blog .prose ul,.blog .prose ol{margin:1rem 0;padding-left:1.5rem}.blog .prose ul{list-style:outside}.blog .prose ol{list-style:decimal}.blog .prose ul ul,.blog .prose ol ul{list-style:circle}.blog .prose ul ul ul,.blog .prose ol ol ol{list-style:square}.blog .prose li{margin:.4rem 0;padding-left:.25rem}.blog .prose li::marker{color:color-mix(in srgb, var(--accent) 55%, var(--text-muted) 45%)}.blog .prose a{color:color-mix(in srgb, var(--accent-secondary) 65%, var(--text-primary) 35%);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent-secondary) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent-secondary) 40%, transparent);text-underline-offset:.2em;transition:color .2s,text-decoration-color .2s}.blog .prose a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.blog .prose code{font-family:var(--font-mono);font-size:.95em}.blog .prose :not(pre)>code{color:color-mix(in srgb, var(--accent) 75%, var(--text-primary) 25%);background:var(--accent-soft);-webkit-box-decoration-break:clone;box-decoration-break:clone;border:1px solid #ff4f8b4d;border-radius:5px;padding:.1rem .35rem;line-height:1.9}.blog .prose pre{border:1px solid var(--border-soft);scrollbar-width:thin;scrollbar-color:#8a94c073 transparent;border-radius:12px;max-width:100%;margin:1.5rem 0;padding:1rem 1.25rem;overflow:auto;background:#0a0e1a!important}.blog .prose pre::-webkit-scrollbar{width:8px;height:8px}.blog .prose pre::-webkit-scrollbar-track{background:0 0}.blog .prose pre::-webkit-scrollbar-thumb{background:#8a94c059;border-radius:999px}.blog .prose pre::-webkit-scrollbar-thumb:hover{background:#8a94c08c}.blog .prose pre::-webkit-scrollbar-corner{background:0 0}.blog .prose pre code{background:0 0;border:none;padding:0;font-size:.9rem;line-height:1.65;display:block}.blog .prose img{border:1px solid var(--border-soft);background:var(--bg-panel);border-radius:12px;width:100%;height:auto;display:block}.blog .prose figure{margin:1.6rem 0}.blog .prose figcaption{color:var(--text-dim);text-align:center;max-width:60ch;margin-top:.7rem;margin-left:auto;margin-right:auto;font-size:.85rem;line-height:1.5}.blog .prose figcaption:before{content:"▲";color:color-mix(in srgb, var(--accent) 55%, transparent);vertical-align:.15em;margin-right:.45em;font-size:.65em}.pswp{--pswp-bg:#04050c;--pswp-placeholder-bg:#0a0e1a}.pswp__bg{-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1)}.blog .prose a.pswp-img-link{cursor:zoom-in;text-decoration:none;display:block}.pswp__custom-caption{padding:1rem 2rem calc(1rem + env(safe-area-inset-bottom));text-align:center;color:#ebeefad9;pointer-events:none;background:linear-gradient(#0000,#04050cd9);font-size:.9rem;line-height:1.5;position:absolute;bottom:0;left:0;right:0}.pswp__custom-caption--hidden{display:none}.blog .prose blockquote{border-left:2px solid var(--accent);color:var(--text-muted);margin:1.5rem 0;padding-left:1rem}.blog .prose blockquote p{color:inherit}.blog .prose hr{border:none;border-top:1px solid var(--border-soft);margin:2rem 0}.blog .prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.95rem}.blog .prose th,.blog .prose td{border:1px solid var(--border-soft);text-align:left;padding:.6rem .85rem}.blog .prose th{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-panel);font-size:.8rem}@media (width<=900px){.blog .prose{font-size:1rem}}@media (width<=680px){.blog .blog-hero{padding:64px 0 2.5rem}.blog .blog-post-header{padding-top:48px}.blog .author-card{flex-direction:column;gap:1.25rem}.blog .scroll-top-button{bottom:1rem;right:1rem}}@media (prefers-reduced-motion:reduce){.blog .blog-card,.blog .tag-card,.blog .scroll-top-button,.blog .blog-pill,.blog .toc-list a,.blog .blog-mobile-toc-chevron,.blog .blog-mobile-toc-progress-value{transition-duration:.001ms!important}.blog .blog-progress-value{transition:none!important}}
