.dsv2 .blog-post,.dsv2 .blog-index{--blog-hairline:#12130f1a}.dsv2 .blog-post{padding-top:var(--sp-3xl);padding-bottom:var(--sp-3xl)}@media (max-width:767px){.dsv2 .blog-post{padding-top:var(--sp-2xl);padding-bottom:56px}}.dsv2 .blog-post-header{max-width:68ch;margin:0 auto var(--sp-2xl)}.dsv2 .blog-post-title{letter-spacing:-.015em;color:var(--ink);text-wrap:balance;margin:0 0 24px;font-size:clamp(30px,3.6vw,48px);font-weight:700;line-height:1.1}.dsv2 .blog-post-lede{margin:0 0 var(--sp-lg);color:var(--ink-mute);font-size:clamp(19px,1.6vw,22px);font-weight:300;line-height:1.45}.dsv2 .blog-post-meta{gap:var(--sp-xs) var(--sp-sm);flex-wrap:wrap;align-items:center;display:flex}.dsv2 .blog-post-author{color:var(--ink-mute);font-weight:500}.dsv2 .blog-post-meta-sep{color:var(--ink-faint);opacity:.5}.dsv2 .blog-post-header:has(+.blog-post-hero){margin-bottom:var(--sp-lg)}.dsv2 .blog-post-hero{max-width:68ch;margin:0 auto var(--sp-2xl);aspect-ratio:40/21;border-radius:var(--r-lg);background:var(--paper-cool);position:relative;overflow:hidden}.dsv2 .blog-post-hero-img{object-fit:cover}.dsv2 .blog-author-box{gap:var(--sp-lg);max-width:68ch;margin:var(--sp-2xl) auto 0;padding:var(--sp-lg);border-radius:var(--r-lg);background:var(--paper-cool);align-items:flex-start;display:flex}@media (max-width:767px){.dsv2 .blog-author-box{gap:var(--sp-md);padding:var(--sp-md);flex-direction:column}}.dsv2 .blog-author-box-avatar{border-radius:var(--r-full);object-fit:cover;flex-shrink:0;width:80px;height:80px}@media (max-width:767px){.dsv2 .blog-author-box-avatar{width:64px;height:64px}}.dsv2 .blog-author-box-body{flex:1;min-width:0}.dsv2 .blog-author-box-name{color:var(--ink);margin:0 0 4px;font-size:17px;font-weight:600}.dsv2 .blog-author-box-role{margin:0 0 var(--sp-sm);color:var(--ink-mute);font-size:15px}.dsv2 .blog-author-box-bio{margin:0 0 var(--sp-md);color:var(--ink-mute);font-size:15px;line-height:1.6}.dsv2 .blog-author-box-links{gap:var(--sp-md);flex-wrap:wrap;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.dsv2 .blog-author-box-links a{color:var(--ink);text-underline-offset:3px;-webkit-text-decoration:underline #12130f40;text-decoration:underline #12130f40;transition:text-decoration-color .16s}@media (hover:hover){.dsv2 .blog-author-box-links a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}}.dsv2 .blog-prose{max-width:68ch;color:var(--ink-mute);font-family:var(--font-sans);letter-spacing:-.005em;margin:0 auto;font-size:clamp(17px,1.2vw,19px);line-height:1.55}.dsv2 .blog-prose>*+*{margin-top:16px}.dsv2 .blog-prose h2{margin-top:var(--sp-2xl);font-family:var(--font-sans);color:var(--ink);letter-spacing:-.01em;margin-bottom:16px;scroll-margin-top:80px;font-size:clamp(26px,2.6vw,34px);font-weight:600;line-height:1.15}.dsv2 .blog-prose h3{margin-top:var(--sp-xl);margin-bottom:var(--sp-sm);font-family:var(--font-sans);color:var(--ink);letter-spacing:-.01em;scroll-margin-top:80px;font-size:clamp(22px,1.8vw,24px);font-weight:600;line-height:1.2}.dsv2 .blog-prose p,.dsv2 .blog-prose ul,.dsv2 .blog-prose ol{margin-top:16px}.dsv2 .blog-prose ul,.dsv2 .blog-prose ol{padding-left:var(--sp-lg)}.dsv2 .blog-prose li+li{margin-top:var(--sp-xs)}.dsv2 .blog-prose a{color:var(--ink);text-underline-offset:3px;-webkit-text-decoration:underline #12130f40;text-decoration:underline #12130f40;text-decoration-thickness:1.5px;transition:text-decoration-color .16s}@media (hover:hover){.dsv2 .blog-prose a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}}.dsv2 .blog-prose strong{color:var(--ink);font-weight:600}.dsv2 .blog-prose em{font-style:italic}.dsv2 .blog-prose del{color:var(--ink-faint)}.dsv2 .blog-prose blockquote{margin:var(--sp-lg) 0;padding-left:var(--sp-lg);color:var(--ink);border-left:3px solid #12130f26}.dsv2 .blog-prose blockquote p{margin:0}.dsv2 .blog-prose blockquote p+p{margin-top:16px}.dsv2 .blog-prose hr{margin:var(--sp-2xl) auto;border:none;border-top:2px solid #12130f26;width:80px}.dsv2 .blog-prose h2,.dsv2 .blog-prose h3{position:relative}.dsv2 .blog-prose .heading-anchor{color:inherit;text-decoration:none}.dsv2 .blog-prose .heading-anchor:hover{text-decoration:none}@media (hover:hover) and (min-width:768px){.dsv2 .blog-prose h2:hover .heading-anchor:before,.dsv2 .blog-prose h3:hover .heading-anchor:before{content:"#";color:var(--ink-faint);font-weight:300;position:absolute;left:-20px}}.dsv2 .blog-prose h2:target .heading-anchor,.dsv2 .blog-prose h3:target .heading-anchor{background:var(--paper-cool);border-radius:var(--r-sm);margin:0 -6px;padding:0 6px}.dsv2 .blog-prose table{width:100%;max-width:100%;margin-top:var(--sp-md);border-collapse:collapse;font-size:16px;display:block;overflow-x:auto}@media (min-width:768px){.dsv2 .blog-prose table{display:table;overflow-x:visible}}.dsv2 .blog-prose th,.dsv2 .blog-prose td{padding:var(--sp-sm) var(--sp-md);text-align:left;vertical-align:top;border-bottom:1px solid #12130f1a}.dsv2 .blog-prose th{color:var(--ink);border-bottom-color:#12130f47;font-weight:600}.dsv2 .blog-prose tbody tr:last-child td{border-bottom:none}.dsv2 .blog-prose ul.contains-task-list{padding-left:0;list-style:none}.dsv2 .blog-prose .task-list-item input[type=checkbox]{margin-right:var(--sp-xs);accent-color:var(--green)}.dsv2 .blog-prose :not(pre)>code{font-family:var(--font-mono);color:var(--green);background:#1a45351a;border-radius:6px;padding:.125em .375em;font-size:.9em}.dsv2 .blog-prose pre{margin:var(--sp-lg) 0;padding:var(--sp-lg);background:var(--night);color:var(--on-dark);border-radius:var(--r-md);font-family:var(--font-mono);tab-size:2;font-size:14px;line-height:1.5;position:relative;overflow-x:auto}.dsv2 .blog-prose strong code,.dsv2 .blog-prose pre code{color:inherit;background:0 0}.dsv2 .blog-prose pre[data-language]:before{content:attr(data-language);top:var(--sp-sm);right:var(--sp-md);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--on-dark);opacity:.4;pointer-events:none;font-size:12px;position:absolute}.dsv2 .blog-prose pre code{padding:0;font-family:inherit}.dsv2 .blog-prose pre [data-line]{padding:0 var(--sp-xs)}.dsv2 .blog-callout{margin:var(--sp-lg) 0;padding:16px var(--sp-lg);background:var(--paper-cool);border-radius:0 var(--r-md) var(--r-md) 0;border-left:3px solid #12130f33}.dsv2 .blog-callout-warn{background:#fef3c7;border-left-color:#b45309}.dsv2 .blog-callout-success{border-left-color:var(--green);background:#1a453514}.dsv2 .blog-callout-body>:first-child{margin-top:0}.dsv2 .blog-callout-body>:last-child{margin-bottom:0}.dsv2 .blog-figure{margin:var(--sp-xl) 0}.dsv2 .blog-figure-img{border-radius:var(--r-lg);width:100%;height:auto}.dsv2 .blog-figure-caption{margin-top:var(--sp-sm);font-family:var(--font-sans);color:var(--ink-faint);text-align:center;font-size:13px}.dsv2 .blog-index{padding-top:var(--sp-3xl);padding-bottom:var(--sp-3xl)}@media (max-width:767px){.dsv2 .blog-index{padding-top:var(--sp-2xl);padding-bottom:56px}}.dsv2 .blog-index-header{margin-bottom:var(--sp-xl)}.dsv2 .blog-index-header .blog-index-title{margin-bottom:24px}.dsv2 .blog-index-header .blog-index-lede{max-width:60ch;margin-bottom:0}.dsv2 .blog-empty{margin:var(--sp-2xl) auto;text-align:center;color:var(--ink-mute)}.dsv2 .blog-empty a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.dsv2 .blog-categories{gap:var(--sp-sm);margin-bottom:var(--sp-2xl);flex-wrap:wrap;display:flex}.dsv2 .blog-category-chip{padding:var(--sp-xs) 16px;border-radius:var(--r-full);color:var(--ink);background:var(--paper-cool);align-items:center;font-size:14px;font-weight:500;text-decoration:none;transition:background .16s,color .16s,opacity .16s;display:inline-flex}@media (hover:hover){.dsv2 .blog-category-chip:hover{background:#12130f12}}.dsv2 .blog-category-chip.is-active{background:var(--ink);color:var(--paper)}@media (hover:hover){.dsv2 .blog-category-chip.is-active:hover{background:var(--ink);opacity:.82}}.dsv2 .blog-featured{margin-bottom:var(--sp-2xl)}.dsv2 .blog-featured .blog-card-media{aspect-ratio:40/21}.dsv2 .blog-grid{gap:var(--sp-lg);grid-template-columns:1fr;display:grid}@media (min-width:768px){.dsv2 .blog-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.dsv2 .blog-grid{grid-template-columns:repeat(3,1fr)}}.dsv2 .blog-card{border-radius:var(--r-lg);background:var(--pure);flex-direction:column;transition:transform .2s;display:flex;position:relative;overflow:hidden}@media (hover:hover){.dsv2 .blog-card:hover{transform:translateY(-2px)}.dsv2 .blog-card:hover .blog-card-img{transform:scale(1.03)}}.dsv2 .blog-card-media{aspect-ratio:40/21;background:var(--paper-cool);width:100%;position:relative;overflow:hidden}.dsv2 .blog-card-img{object-fit:cover;transition:transform .35s cubic-bezier(.4,0,.2,1)}.dsv2 .blog-card-body{gap:var(--sp-sm);flex-direction:column;flex:1;padding:24px;display:flex}.dsv2 .blog-card-eyebrow{z-index:10;margin:0;position:relative}.dsv2 .blog-card-category{color:var(--ink-mute);text-decoration:none;transition:color .16s}@media (hover:hover){.dsv2 .blog-card-category:hover{color:var(--ink)}}.dsv2 .blog-card-title{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:clamp(18px,1.6vw,22px);font-weight:600;line-height:1.2}.dsv2 .blog-card-stretch{color:inherit;text-decoration:none}.dsv2 .blog-card-stretch:after{content:"";z-index:0;position:absolute;inset:0}.dsv2 .blog-card-excerpt{color:var(--ink-mute);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.dsv2 .blog-card-meta{gap:var(--sp-xs) var(--sp-sm);padding-top:var(--sp-sm);flex-wrap:wrap;align-items:center;margin-top:auto;display:flex}.dsv2 .blog-card-meta-sep{color:var(--ink-faint);opacity:.5}.dsv2 .blog-card-featured{border-radius:var(--r-xl)}@media (min-width:1024px){.dsv2 .blog-card-featured{position:relative}.dsv2 .blog-card-featured .blog-card-media{aspect-ratio:40/21;width:54.5454%}.dsv2 .blog-card-featured .blog-card-body{width:45.4545%;height:100%;padding:var(--sp-lg);flex-direction:column;justify-content:center;display:flex;position:absolute;top:0;right:0;overflow:hidden}.dsv2 .blog-card-featured .blog-card-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dsv2 .blog-card-featured .blog-card-excerpt{-webkit-line-clamp:2}}.dsv2 .blog-draft-banner{padding:var(--sp-sm) 0;color:#92400e;background:#fef3c7;border-bottom:1px solid #fcd34d}.dsv2 .blog-draft-banner-inner{align-items:center;gap:var(--sp-md);flex-wrap:wrap;display:flex}.dsv2 .blog-draft-banner-inner .blog-draft-banner-tag{color:#92400e}.dsv2 .blog-draft-banner-text{font-size:15px}.dsv2 .blog-post-body{position:relative}.dsv2 .blog-toc-toggle{justify-content:space-between;align-items:center;gap:var(--sp-md);width:100%;max-width:68ch;margin:0 auto var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--paper-cool);border-radius:var(--r-md);color:var(--ink);cursor:pointer;text-align:left;font:inherit;border:0;transition:background .16s;display:flex}@media (hover:hover){.dsv2 .blog-toc-toggle:hover{background:#12130f12}}.dsv2 .blog-toc-toggle-icon{font-family:var(--font-sans);color:var(--ink-mute);font-size:17px;font-weight:500}.dsv2 .blog-toc-mobile{max-width:68ch;margin:0 auto var(--sp-lg);padding:var(--sp-md) var(--sp-md) var(--sp-md) var(--sp-lg);border-left:2px solid #12130f1a}.dsv2 .blog-toc-mobile[data-open=false],.dsv2 .blog-toc-desktop{display:none}@media (min-width:1280px){.dsv2 .blog-toc-toggle,.dsv2 .blog-toc-mobile{display:none}.dsv2 .blog-post-body{column-gap:var(--sp-xl);grid-template-columns:minmax(0,68ch) 220px;justify-content:start;align-items:start;display:grid}.dsv2 .blog-post-body>.blog-post-header,.dsv2 .blog-post-body>.blog-post-hero,.dsv2 .blog-post-body>.blog-prose,.dsv2 .blog-post-body>.blog-author-box{grid-column:1;max-width:100%;margin-left:0;margin-right:0}.dsv2 .blog-post-body>.blog-toc-desktop{max-height:calc(100vh - 96px);padding-right:var(--sp-md);grid-area:1/2/-1;display:block;position:sticky;top:80px;overflow-y:auto}.dsv2 .blog-toc-eyebrow{margin:0 0 var(--sp-sm);color:var(--ink-mute)}}.dsv2 .blog-toc-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.dsv2 .blog-toc-item a{padding:6px 0 6px var(--sp-sm);color:var(--ink-mute);border-left:2px solid #0000;font-size:15px;line-height:1.2;text-decoration:none;transition:color .16s,border-color .16s;display:block}.dsv2 .blog-toc-item-h3 a{padding-left:var(--sp-lg);font-size:13px}.dsv2 .blog-toc-item.is-active a{color:var(--ink);border-left-color:var(--ink)}@media (hover:hover){.dsv2 .blog-toc-item a:hover{color:var(--ink)}}.dsv2 .blog-related{margin-top:var(--sp-3xl);padding-top:var(--sp-xl);border-top:1px solid #12130f1a}.dsv2 .blog-related-header{margin-bottom:24px}.dsv2 .blog-related-grid{gap:var(--sp-lg);grid-template-columns:1fr;display:grid}@media (min-width:768px){.dsv2 .blog-related-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.dsv2 .blog-related-grid{grid-template-columns:repeat(3,1fr)}}.dsv2 .blog-reading-progress{z-index:30;pointer-events:none;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.dsv2 .blog-reading-progress-bar{background:var(--green);will-change:width;height:100%;transition:width .1s linear}.dsv2 .blog-back-to-top{bottom:var(--sp-lg);right:var(--sp-lg);border-radius:var(--r-full);background:var(--ink);width:44px;height:44px;color:var(--paper);cursor:pointer;z-index:20;font-family:var(--font-sans);border:0;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:transform .16s,opacity .16s;display:flex;position:fixed;box-shadow:0 8px 24px #0000001f}@media (hover:hover){.dsv2 .blog-back-to-top:hover{opacity:.85;transform:translateY(-2px)}}
