.blog-home,.blog-category,.blog-article{--blog-accent:var(--accent);--blog-accent-soft:color-mix(in oklab,var(--blog-accent)14%,transparent);--blog-accent-line:color-mix(in oklab,var(--blog-accent)32%,transparent);color:var(--fg)}.blog-home,.blog-cat-card--ocean,.blog-card--ocean,.blog-category--ocean,.blog-article--ocean{--blog-accent:#0ea5a4}.blog-cat-card--gold,.blog-card--gold,.blog-category--gold,.blog-article--gold{--blog-accent:#d08700}.blog-cat-card--violet,.blog-card--violet,.blog-category--violet,.blog-article--violet{--blog-accent:#7c5cff}.blog-cat-card--light,.blog-card--light,.blog-category--light,.blog-article--light{--blog-accent:#2563eb}.blog-cat-card--dark,.blog-card--dark,.blog-category--dark,.blog-article--dark{--blog-accent:#64748b}.blog-cat-card,.blog-card,.blog-category,.blog-article{--blog-accent-soft:color-mix(in oklab,var(--blog-accent)14%,transparent);--blog-accent-line:color-mix(in oklab,var(--blog-accent)32%,transparent)}.blog-back{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-subtle);text-decoration:none;display:inline-block}.blog-back:hover{color:var(--blog-accent)}.blog-empty{color:var(--fg-subtle);text-align:center;padding:3rem 0}.blog-home{max-width:1080px;margin:0 auto;padding:clamp(5.5rem,4.5rem + 3vw,7rem) clamp(1rem,3vw,2rem) 6rem}.blog-home__eyebrow,.blog-category__eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--blog-accent);margin:0 0 .6rem}.blog-home__title{letter-spacing:-.025em;margin:0 0 1rem;font-size:clamp(2rem,1.3rem + 2.4vw,3.25rem);font-weight:600;line-height:1.05}.blog-home__intro{font-size:var(--text-lg);color:var(--fg-muted);max-width:60ch;margin:0;line-height:1.6}.blog-home__section{margin-top:clamp(2.5rem,5vw,4rem)}.blog-home__section-title{font-size:var(--text-sm);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-subtle);border-bottom:1px solid var(--border);margin:0 0 1.25rem;padding-bottom:.6rem}.blog-cat-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.blog-cat-card{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:16px;flex-direction:column;gap:.5rem;padding:1.5rem 1.5rem 1.35rem;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.blog-cat-card:before{content:"";background:var(--blog-accent);opacity:.85;width:3px;position:absolute;inset:0 auto 0 0}.blog-cat-card:hover{border-color:var(--blog-accent-line);box-shadow:0 12px 30px -18px color-mix(in oklab,var(--blog-accent)60%,transparent);transform:translateY(-2px)}.blog-cat-card__dot{background:var(--blog-accent);width:10px;height:10px;box-shadow:0 0 0 4px var(--blog-accent-soft);border-radius:999px}.blog-cat-card__title{font-size:var(--text-xl);letter-spacing:-.01em;margin:.35rem 0 0;font-weight:600}.blog-cat-card__tagline{font-size:var(--text-sm);color:var(--fg-muted);flex:auto;margin:0;line-height:1.55}.blog-cat-card__count{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle);margin-top:.4rem}.blog-post-list{gap:1rem;display:grid}.blog-card{border:1px solid var(--border);background:var(--bg);border-radius:16px;transition:border-color .2s,transform .2s,box-shadow .2s}.blog-card:hover{border-color:var(--blog-accent-line);box-shadow:0 14px 32px -20px color-mix(in oklab,var(--blog-accent)55%,transparent);transform:translateY(-2px)}.blog-card__link{color:inherit;padding:1.5rem 1.6rem;text-decoration:none;display:block}.blog-card__kicker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--blog-accent);background:var(--blog-accent-soft);border-radius:999px;margin-bottom:.85rem;padding:.25rem .6rem;display:inline-block}.blog-card__title{letter-spacing:-.015em;margin:0 0 .5rem;font-size:clamp(1.25rem,1.05rem + .7vw,1.6rem);font-weight:600;line-height:1.25}.blog-card__summary{font-size:var(--text-base);color:var(--fg-muted);max-width:70ch;margin:0 0 1rem;line-height:1.6}.blog-card__meta{font-size:var(--text-sm);color:var(--fg-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.blog-card__meta time{font-variant-numeric:tabular-nums}.blog-category{max-width:880px;margin:0 auto;padding:clamp(5.5rem,4.5rem + 3vw,7rem) clamp(1rem,3vw,2rem) 6rem}.blog-category__head{margin:1.5rem 0 2.5rem}.blog-category__title{letter-spacing:-.025em;margin:0 0 .75rem;font-size:clamp(2rem,1.3rem + 2.2vw,3rem);font-weight:600;line-height:1.05}.blog-category__tagline{font-size:var(--text-lg);color:var(--fg);margin:0 0 .85rem;line-height:1.5}.blog-category__description{font-size:var(--text-base);color:var(--fg-muted);max-width:65ch;margin:0;line-height:1.7}.blog-article{max-width:1060px;margin:0 auto;padding:clamp(5.5rem,4.5rem + 3vw,7rem) clamp(1rem,3vw,2rem) 6rem}@media (min-width:1080px){.blog-article{grid-template-columns:minmax(0,1fr) 236px;align-items:start;column-gap:3rem;display:grid}}.blog-article__main{min-width:0}.blog-breadcrumb{max-width:760px;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 auto 1.5rem;display:flex}.blog-breadcrumb a{color:var(--fg-subtle);text-decoration:none}.blog-breadcrumb a:hover{color:var(--blog-accent)}.blog-article__head{max-width:760px;margin:0 auto}.blog-article__title{letter-spacing:-.03em;margin:0 0 1rem;font-size:clamp(2rem,1.3rem + 2.6vw,3.1rem);font-weight:700;line-height:1.08}.blog-article__summary{color:var(--fg-muted);margin:0 0 1.25rem;font-size:clamp(1.1rem,1rem + .5vw,1.3rem);line-height:1.6}.blog-article__meta{font-size:var(--text-sm);color:var(--fg-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.blog-article__tags{flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.blog-article__tags li{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--fg-muted);background:var(--bg-muted);border:1px solid var(--border);border-radius:999px;padding:.25rem .7rem}.blog-article__main .blog-content{margin-top:2.5rem}.blog-article__toc{display:none}@media (min-width:1080px){.blog-article__toc{top:calc(var(--header-h,64px) + 1.5rem);max-height:calc(100vh - var(--header-h,64px) - 3rem);align-self:start;display:block;position:sticky;overflow-y:auto}}.blog-article__series{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--blog-accent);margin:0 0 .85rem}.blog-article__footer{border-top:1px solid var(--border);max-width:760px;margin:3rem auto 0;padding-top:1.5rem}.blog-series-nav{gap:1rem;max-width:760px;margin:3rem auto 0;display:grid}@media (min-width:560px){.blog-series-nav{grid-template-columns:1fr 1fr}}.blog-series-nav__link{border:1px solid var(--border);color:var(--fg);background:var(--bg);border-radius:14px;flex-direction:column;gap:.4rem;padding:1.1rem 1.25rem;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.blog-series-nav__link:hover{border-color:var(--blog-accent-line);box-shadow:0 12px 28px -20px color-mix(in oklab,var(--blog-accent)55%,transparent);transform:translateY(-2px)}.blog-series-nav__link--next{text-align:right}.blog-series-nav__dir{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-subtle)}.blog-series-nav__title{color:var(--fg);font-weight:600;line-height:1.3}.blog-series-nav__link:hover .blog-series-nav__title{color:var(--blog-accent)}.blog-faq{border-top:1px solid var(--border);max-width:760px;margin:3rem auto 0;padding-top:2rem}.blog-faq__heading{letter-spacing:-.02em;margin:0 0 1.25rem;font-size:clamp(1.4rem,1.2rem + 1vw,1.8rem);font-weight:650}.blog-faq__heading:before{content:"";background:var(--blog-accent);border-radius:3px;width:2.5rem;height:3px;margin-bottom:1rem;display:block}.blog-faq__list{margin:0}.blog-faq__item{border-bottom:1px solid var(--border);padding:1.1rem 0}.blog-faq__item:last-child{border-bottom:none}.blog-faq__q{font-weight:650;font-size:var(--text-lg);color:var(--fg);margin:0 0 .5rem;line-height:1.45}.blog-faq__a{color:var(--fg-muted);margin:0;line-height:1.7}.blog-faq__a>:first-child{margin-top:0}.blog-faq__a>:last-child{margin-bottom:0}.blog-faq__a a{color:var(--blog-accent);border-bottom:1px solid var(--blog-accent-line);text-decoration:none}.blog-faq__a a:hover{border-bottom-color:var(--blog-accent)}.blog-toc__label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-subtle);margin:0 0 .85rem}.blog-toc__list{border-left:1px solid var(--border);gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.blog-toc__item a{font-size:var(--text-sm);color:var(--fg-subtle);border-left:2px solid #0000;margin-left:-1px;padding-left:.9rem;line-height:1.4;text-decoration:none;transition:color .15s,border-color .15s;display:block}.blog-toc__item--l3 a{font-size:var(--text-xs);padding-left:1.7rem}.blog-toc__item a:hover{color:var(--fg)}.blog-toc__item.is-active a{color:var(--blog-accent);border-left-color:var(--blog-accent)}.blog-content{max-width:760px;font-family:var(--font-reading,var(--font-sans));color:var(--fg);margin:0 auto;font-size:clamp(1.02rem,.98rem + .2vw,1.15rem);line-height:1.78}.blog-content>p,.blog-content>ul,.blog-content>ol{margin:0 0 1.3rem}.blog-content h2,.blog-content h3,.blog-content h4{letter-spacing:-.02em;scroll-margin-top:calc(var(--header-h,64px) + 1.5rem);font-weight:650;line-height:1.25}.blog-content h2{margin:2.8rem 0 1rem;padding-top:.4rem;font-size:clamp(1.5rem,1.2rem + 1.1vw,1.95rem)}.blog-content h2:before{content:"";background:var(--blog-accent);border-radius:3px;width:2.5rem;height:3px;margin-bottom:1rem;display:block}.blog-content h3{margin:2rem 0 .75rem;font-size:clamp(1.2rem,1.05rem + .6vw,1.45rem)}.blog-content h4{font-size:var(--text-lg);margin:1.6rem 0 .6rem}.blog-content a{color:var(--blog-accent);border-bottom:1px solid var(--blog-accent-line);text-decoration:none}.blog-content a:hover{border-bottom-color:var(--blog-accent)}.blog-content strong{color:var(--fg);font-weight:680}.blog-content ul,.blog-content ol{padding-left:1.4rem}.blog-content li{margin-bottom:.5rem}.blog-content li::marker{color:var(--blog-accent)}.blog-content blockquote{border-left:3px solid var(--blog-accent);color:var(--fg-muted);margin:1.6rem 0;padding:.4rem 1.25rem;font-style:italic}.blog-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.blog-content code{font-family:var(--font-mono);background:var(--bg-muted);border:1px solid var(--border);border-radius:4px;padding:.12em .4em;font-size:.88em}.blog-content pre{background:var(--bg-muted);border:1px solid var(--border);border-radius:12px;margin:1.5rem 0;padding:1.1rem 1.25rem;font-size:.86rem;line-height:1.65;overflow-x:auto}.blog-content pre code{font-size:inherit;color:var(--fg);background:0 0;border:none;padding:0}.blog-content pre .cmt{color:var(--fg-subtle);font-style:italic}.blog-content pre .kw{color:var(--blog-accent);font-weight:600}.blog-content pre .str{color:#0a9396}.blog-figure{border:1px solid var(--border);background:color-mix(in oklab,var(--bg-muted)60%,transparent);border-radius:16px;margin:2rem 0;padding:1.5rem 1.25rem 1rem}.blog-figure svg,.blog-figure .dgm-svg{width:100%;height:auto;display:block}.blog-figure figcaption{font-size:var(--text-sm);color:var(--fg-subtle);text-align:center;margin-top:.9rem;line-height:1.55}.dgm-svg .dgm-surface{fill:var(--bg);stroke:var(--border-strong)}.dgm-svg .dgm-core{fill:var(--blog-accent-soft);stroke:var(--blog-accent)}.dgm-svg .dgm-port{fill:var(--bg);stroke:var(--blog-accent)}.dgm-svg .dgm-adapter{fill:var(--bg-muted);stroke:var(--border-strong)}.dgm-svg .dgm-driven{fill:color-mix(in oklab,var(--blog-accent)8%,var(--bg-muted));stroke:var(--border-strong)}.dgm-svg .dgm-line{stroke:var(--border-strong);fill:none}.dgm-svg .dgm-flow{stroke:var(--blog-accent);fill:none}.dgm-svg .dgm-fill-accent{fill:var(--blog-accent)}.dgm-svg text{fill:var(--fg);font-family:var(--font-sans)}.dgm-svg .dgm-t-strong{font-weight:700}.dgm-svg .dgm-t-mono{font-family:var(--font-mono);fill:var(--fg-muted)}.dgm-svg .dgm-t-muted{fill:var(--fg-subtle)}.dgm-svg .dgm-t-accent{fill:var(--blog-accent);font-weight:700}.blog-content .blog-table-wrap{border:1px solid var(--border);border-radius:12px;margin:1.75rem 0;overflow-x:auto}.blog-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm);min-width:460px}.blog-content thead th{text-align:left;color:var(--fg);background:var(--bg-muted);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:.8rem 1rem;font-weight:650}.blog-content tbody td,.blog-content tbody th{border-bottom:1px solid var(--border);vertical-align:top;text-align:left;padding:.75rem 1rem;line-height:1.55}.blog-content tbody th{color:var(--fg);white-space:nowrap;font-weight:600}.blog-content tbody tr:last-child td,.blog-content tbody tr:last-child th{border-bottom:none}.blog-content tbody tr:hover{background:var(--blog-accent-soft)}.blog-content .blog-callout{border:1px solid var(--border);border-left:4px solid var(--blog-accent);background:color-mix(in oklab,var(--bg-muted)55%,transparent);border-radius:12px;margin:1.75rem 0;padding:1.1rem 1.25rem}.blog-content .blog-callout>:first-child{margin-top:0}.blog-content .blog-callout>:last-child{margin-bottom:0}.blog-content .blog-callout__label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--blog-accent);margin-bottom:.5rem;display:block}.blog-content .blog-callout--warn{border-left-color:#d97706}.blog-content .blog-callout--warn .blog-callout__label{color:#d97706}.blog-content .blog-callout--tip{border-left-color:#0ea5a4}.blog-content .blog-callout--tip .blog-callout__label{color:#0ea5a4}.blog-content .blog-takeaways{border:1px solid var(--blog-accent-line);background:var(--blog-accent-soft);border-radius:16px;margin:2.25rem 0 1rem;padding:1.5rem 1.6rem}.blog-content .blog-takeaways h3{margin-top:0}.blog-content .blog-takeaways ul{margin-bottom:0}@media (max-width:640px){.blog-content{font-size:1.02rem}.blog-figure{padding:1rem .85rem .75rem}}
