.blog_dialog__7Vxci,.blog_page__Vxi2I{--ink:#171717;--muted:#666c75;--line:#e8e9ec;--soft:#f7f7f8;--accent:hsl(var(--primary))}.blog_page__Vxi2I{background:#fff;color:var(--ink);padding:168px 24px 120px;max-width:1216px;margin:0 auto}.blog_progress___Ginc{position:fixed;inset:0 0 auto 0;height:3px;background:var(--accent,hsl(var(--primary)));transform:scaleX(0);transform-origin:left;z-index:9999}.blog_indexHeader__BEIv1{display:grid;grid-template-columns:1fr auto;align-items:end;-moz-column-gap:32px;column-gap:32px;margin-bottom:28px}.blog_indexHeader__BEIv1 h1{grid-column:1;font-size:2.5rem;font-weight:600;letter-spacing:-.028em;line-height:1.15;margin:0;color:var(--ink)}.blog_indexHeader__BEIv1 p{grid-column:1;margin:6px 0 0;font-size:1rem;color:var(--muted);line-height:1.5}.blog_controls__e5Fc4{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-bottom:16px;margin-bottom:40px;border-bottom:1px solid var(--line)}.blog_chips__33Vzh{display:flex;flex-wrap:wrap;gap:8px}.blog_chip__RCGdW{padding:4px 12px;border:1px solid transparent;border-radius:999px;font-size:.875rem;background:#fff;color:var(--muted);cursor:pointer;transition:all .15s}.blog_chip__RCGdW:hover{color:var(--ink);border-color:#c9cdd4}.blog_chip__RCGdW[aria-pressed=true]{background:#f0f1f3;border-color:transparent;color:var(--ink);font-weight:500}.blog_search__CYL45{width:240px;max-width:100%;padding:8px 14px;border:1px solid var(--line);border-radius:8px;font-size:.9rem;color:var(--ink);background:#fff}.blog_search__CYL45:focus{outline:2px solid var(--accent);outline-offset:1px}.blog_lead__uD1T2{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;padding-bottom:40px;margin-bottom:40px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.blog_leadCover__NM79K{aspect-ratio:1.91/1;border-radius:10px;overflow:hidden;background:var(--soft)}.blog_leadCover__NM79K img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.blog_leadBody__YlJi_ h2{font-size:1.9rem;line-height:1.2;letter-spacing:-.02em;font-weight:600;margin:6px 0 12px;color:var(--ink)}.blog_card__Ut__y:hover h3,.blog_lead__uD1T2:hover h2{color:var(--accent)}.blog_grid___0cbd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 32px}.blog_grid___0cbd a{color:inherit;text-decoration:none;display:block;height:100%}.blog_card__Ut__y{display:flex;flex-direction:column;height:100%}.blog_cardCover__EG2tQ{aspect-ratio:1.91/1;border-radius:10px;overflow:hidden;background:var(--soft);display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600}.blog_cardCover__EG2tQ img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .3s}.blog_card__Ut__y:hover .blog_cardCover__EG2tQ img{transform:scale(1.025)}.blog_cardBody__lzoIx{padding-top:16px;display:flex;flex-direction:column;flex:1}.blog_cardBody__lzoIx h3{font-size:1.125rem;line-height:1.35;font-weight:600;letter-spacing:-.015em;margin:0 0 8px;color:var(--ink);transition:color .15s}.blog_cardText__eTgvo{color:var(--muted);font-size:.92rem;line-height:1.5;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blog_eyebrow__Fbo47{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 6px}.blog_bylineLarge__WdU0Z,.blog_byline__0QYVL{display:flex;align-items:center;gap:10px;font-size:.84rem;color:var(--ink);margin-top:auto}.blog_bylineLarge__WdU0Z{font-size:.95rem;margin-top:20px}.blog_meta__AZBDl{color:var(--muted)}.blog_avatars__VvvGF{display:inline-flex;flex-shrink:0}.blog_avatars__VvvGF img,.blog_initial__v5lpL{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid #fff;margin-left:-8px}.blog_avatars__VvvGF>:first-child{margin-left:0}.blog_initial__v5lpL{display:inline-flex;align-items:center;justify-content:center;background:var(--soft);font-weight:600;font-size:.8rem}.blog_empty__HjebG{text-align:center;padding:72px 0;color:var(--muted)}.blog_empty__HjebG button{margin-top:10px;color:var(--accent);font-weight:500;cursor:pointer;background:none;border:0}.blog_postHeader__S0lpJ{max-width:720px;margin:0 auto 40px}.blog_crumbs__Rn_8C{display:flex;gap:8px;font-size:.9rem;color:var(--muted);margin-bottom:18px}.blog_crumbs__Rn_8C a{color:var(--muted);text-decoration:none}.blog_crumbs__Rn_8C a:hover{color:var(--ink)}.blog_back__IJWHG{font-size:.9rem;color:var(--muted);text-decoration:none}.blog_back__IJWHG:hover{color:var(--ink)}.blog_tagRow__ILAj9{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.blog_tag__TvE6_{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);text-decoration:none}.blog_postTitle__bdpQb{font-size:clamp(2rem,4.2vw,2.75rem);line-height:1.1;letter-spacing:-.028em;font-weight:600;margin:0;color:var(--ink)}.blog_cover__yo3Ts{max-width:1040px;margin:0 auto 64px}.blog_cover__yo3Ts figcaption{text-align:center;color:var(--muted);font-size:.9rem;margin-top:14px}.blog_cover__yo3Ts img{width:100%;height:auto;display:block;border-radius:12px}.blog_postLayout___gjLs{display:grid;grid-template-columns:200px minmax(0,720px) 200px;gap:48px;justify-content:center}.blog_mobileToc__t5N2T{display:none}.blog_rail__6E7eE{position:sticky;top:128px;align-self:start;max-height:calc(100vh - 128px);overflow:auto;font-size:.86rem}.blog_railLabel__3jI_1{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}.blog_toc__AHfTK a{display:block;padding:5px 0 5px 12px;border-left:2px solid var(--line);color:var(--muted);text-decoration:none;line-height:1.35}.blog_toc__AHfTK a[data-depth="3"]{padding-left:24px}.blog_toc__AHfTK a:hover{color:var(--ink)}.blog_toc__AHfTK a[data-active]{color:var(--ink);border-left-color:var(--accent);font-weight:500}.blog_share__BW8or{margin-top:28px;display:flex;flex-wrap:wrap;gap:6px 14px}.blog_share__BW8or .blog_railLabel__3jI_1{width:100%;margin-bottom:2px}.blog_share__BW8or a,.blog_share__BW8or button{color:var(--ink);background:none;border:0;padding:0;cursor:pointer;font-size:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.blog_prose__3DCde{min-width:0;overflow-wrap:break-word}.blog_prose__3DCde pre{max-width:100%}.blog_prose__3DCde hr{border:0;border-top:1px solid var(--line)}.blog_prose__3DCde .blog-callout,.blog_prose__3DCde .blog-embed,.blog_prose__3DCde .blog-gallery,.blog_prose__3DCde pre,.blog_prose__3DCde video{margin:0 0 1.4em}.blog_prose__3DCde .blog-anchor{margin-left:.35em;color:var(--muted);opacity:0;text-decoration:none;font-weight:400}.blog_prose__3DCde .blog-anchor:focus,.blog_prose__3DCde h2:hover .blog-anchor,.blog_prose__3DCde h3:hover .blog-anchor{opacity:1}.blog_prose__3DCde img{display:block;max-width:100%;height:auto;border-radius:8px;cursor:zoom-in;margin:0 auto}.blog_prose__3DCde p>img{margin-bottom:0}.blog_prose__3DCde video{display:block;width:100%;border-radius:10px;border:1px solid var(--line)}.blog_prose__3DCde .blog-callout{padding:14px 18px;border-radius:10px;background:var(--soft);border:1px solid var(--line);font-size:1rem}.blog_prose__3DCde .blog-callout>:last-child{margin-bottom:0}.blog_prose__3DCde .blog-callout-warning{background:#fff8ec;border-color:#f4e0b8}.blog_prose__3DCde .blog-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;align-items:center}.blog_prose__3DCde .blog-gallery img{width:100%;height:auto}.blog_prose__3DCde .blog-embed{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--soft)}.blog_prose__3DCde .blog-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.blog_prose__3DCde a.blog-button{display:inline-flex;height:3rem;align-items:center;justify-content:center;border-radius:.75rem;background-color:hsl(var(--primary));padding-left:2rem;padding-right:2rem;font-size:1rem;line-height:1.5rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));text-decoration-line:none;--tw-shadow:0 10px 0px -3px rgba(0,0,0,.05),0 4px 0px -2px rgba(0,0,0,.05);--tw-shadow-colored:0 10px 0px -3px var(--tw-shadow-color),0 4px 0px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:hsl(var(--primary)/0.25);--tw-shadow:var(--tw-shadow-colored)}.blog_prose__3DCde :not(pre)>code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,DejaVu Sans Mono,monospace;font-size:.87em;background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:.1em .35em;overflow-wrap:anywhere}.blog_prose__3DCde pre{position:relative;background:#f7f8fa;border:1px solid var(--line);border-radius:10px;padding:16px 18px;overflow-x:auto;font-size:.86rem;line-height:1.6}.blog_prose__3DCde pre code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,DejaVu Sans Mono,monospace;background:none;padding:0}.blog_prose__3DCde .blog-copy{position:absolute;top:8px;right:8px;font-size:.72rem;padding:3px 9px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s}.blog_prose__3DCde .blog-copy:focus,.blog_prose__3DCde pre:hover .blog-copy{opacity:1}.blog_endCta__ZmO0U{max-width:720px;margin:64px auto 0;padding:32px;border-radius:10px;background:var(--soft)}.blog_endCta__ZmO0U h2{font-size:1.45rem;font-weight:600;letter-spacing:-.015em;margin:0;color:var(--ink)}.blog_endCta__ZmO0U p{color:var(--muted);margin:6px 0 18px}.blog_ctaPrimary__1Vs4H,.blog_ctaSecondary__fnvpP{margin-right:10px}.blog_related__7QQq7{margin-top:72px}.blog_related__7QQq7>h2{font-size:1.45rem;font-weight:600;letter-spacing:-.015em;margin:0 0 24px;color:var(--ink)}.blog_headerActions__1di6K{grid-column:2;grid-row:1/span 2;align-self:center;display:flex;gap:10px}@media (max-width:1040px){.blog_postLayout___gjLs{grid-template-columns:minmax(0,1fr);max-width:720px;margin:0 auto;gap:0}.blog_rail__6E7eE{display:none}.blog_indexHeader__BEIv1{grid-template-columns:1fr}.blog_headerActions__1di6K{grid-column:1;grid-row:auto;margin-top:14px}.blog_mobileToc__t5N2T{display:block;margin-bottom:28px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--soft);font-size:.92rem}.blog_mobileToc__t5N2T summary{cursor:pointer;font-weight:500}.blog_mobileToc__t5N2T a{display:block;padding:5px 0;color:var(--muted);text-decoration:none}.blog_mobileToc__t5N2T a[data-depth="3"]{padding-left:14px}.blog_grid___0cbd{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.blog_page__Vxi2I{padding:144px 16px 96px}.blog_grid___0cbd,.blog_lead__uD1T2{grid-template-columns:minmax(0,1fr)}.blog_lead__uD1T2{gap:18px}.blog_search__CYL45{width:100%}}.blog_railBack__mTB62{display:inline-block;margin-bottom:22px;font-weight:500;color:var(--ink);text-decoration:none}.blog_railBack__mTB62:hover{color:var(--accent)}.blog_relatedHead__dnoJT{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.blog_relatedHead__dnoJT h2{font-size:1.45rem;font-weight:600;letter-spacing:-.015em;margin:0;color:var(--ink)}.blog_relatedHead__dnoJT a{color:var(--accent);font-weight:500;text-decoration:none;font-size:.95rem}.blog_authorsEnd__RxJvu{max-width:720px;margin:56px auto 0;display:flex;flex-wrap:wrap;gap:14px 36px}.blog_authorsEnd__RxJvu a{display:flex;gap:14px;align-items:center;color:inherit;text-decoration:none}.blog_authorsEnd__RxJvu img{flex:none;width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.blog_authorsEnd__RxJvu strong{display:block;font-weight:600;color:var(--ink)}.blog_authorsEnd__RxJvu small{display:block;color:var(--muted);font-size:.9rem;line-height:1.4}.blog_authorHeader__t_780{display:flex;gap:20px;align-items:center;margin:24px 0 40px}.blog_authorHeader__t_780 img{width:84px;height:84px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.blog_authorHeader__t_780 h1{font-size:2.2rem;font-weight:600;letter-spacing:-.025em;margin:0;color:var(--ink)}.blog_authorHeader__t_780 p{margin:6px 0 0;color:var(--muted);max-width:640px}.blog_authorHeader__t_780 .blog_authorMeta__6Me19{font-size:.9rem}.blog_authorMeta__6Me19 a{color:var(--accent);text-decoration:none}.blog_subscribe__9TOtO{display:flex;flex-wrap:wrap;gap:18px 40px;align-items:center;justify-content:space-between;margin-top:56px;padding:28px 32px;border-radius:14px;border:1px solid var(--line)}.blog_subscribe__9TOtO h2{font-size:1.25rem;font-weight:600;margin:0;color:var(--ink)}.blog_subscribe__9TOtO p{margin:4px 0 0;color:var(--muted);font-size:.95rem}.blog_subscribeError__Hj_KP{width:100%;color:#b42318;font-size:.86rem}.blog_subscribeDone__5gJ7L{color:var(--ink);font-weight:500}.blog_rss__8H2tS{margin-top:20px;text-align:center;font-size:.88rem}.blog_rss__8H2tS a{color:var(--muted)}.blog_headerActions__1di6K .blog_ctaPrimary__1Vs4H,.blog_headerActions__1di6K .blog_ctaSecondary__fnvpP{margin-right:0}.blog_railSubscribe___fGWp{display:block;margin-top:20px;padding:0;border:0;background:none;color:var(--ink);font-size:inherit;font-weight:500;cursor:pointer}.blog_railSubscribe___fGWp:hover{color:var(--accent)}.blog_subscribe__9TOtO{scroll-margin-top:120px;max-width:720px;margin-left:auto;margin-right:auto}.blog_related__7QQq7{max-width:1168px;margin-left:auto;margin-right:auto}.blog_authorsEnd__RxJvu em{display:block;font-style:normal;font-size:.8rem;color:var(--muted)}.blog_authorsEnd__RxJvu strong{font-weight:500;font-size:.98rem}.blog_endBand__X7qb9{max-width:720px;margin:36px auto 0;padding:32px 0;display:grid;grid-template-columns:1fr 1fr;gap:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.blog_endBand__X7qb9 h2{font-size:1.06rem;font-weight:500;letter-spacing:-.012em;line-height:1.3;margin:0;color:var(--ink)}.blog_endBand__X7qb9 p{color:var(--muted);font-size:.92rem;margin:4px 0 16px}.blog_endBand__X7qb9 .blog_ctaPrimary__1Vs4H,.blog_endBand__X7qb9 .blog_ctaSecondary__fnvpP{margin-right:8px}.blog_endBand__X7qb9 .blog_subscribeError__Hj_KP{margin:8px 0 0;color:#b42318}.blog_endBand__X7qb9 .blog_subscribeDone__5gJ7L{margin:0;color:var(--ink)}.blog_subscribeRow__CkRph{display:flex;gap:8px}.blog_subscribeRow__CkRph input{flex:1;min-width:0;height:2rem;padding:0 12px;border:1px solid var(--line);border-radius:.75rem;outline:0;font-size:.9rem;color:var(--ink);background:#fff}.blog_subscribeRow__CkRph input:focus{border-color:var(--accent)}.blog_subscribe__9TOtO{border:0;padding:32px 0 0;border-top:1px solid var(--line);border-radius:0;max-width:none}.blog_subscribe__9TOtO form{width:min(360px,100%)}@media (max-width:680px){.blog_endBand__X7qb9{grid-template-columns:minmax(0,1fr);gap:28px}}@media (hover:none){.blog_prose__3DCde pre{padding-top:48px}.blog_prose__3DCde .blog-copy{opacity:1;min-height:40px;min-width:48px;top:4px;right:4px}.blog_search__CYL45,.blog_subscribeRow__CkRph input{font-size:16px}.blog_chip__RCGdW{padding:8px 14px;min-height:40px}.blog_mobileToc__t5N2T summary{padding:9px 0}.blog_mobileToc__t5N2T a{padding:10px 0}}.blog_prose__3DCde pre.blog-diagram{line-height:1.2;letter-spacing:0;overflow-wrap:normal;font-variant-ligatures:none}.blog_prose__3DCde pre.blog-diagram code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,DejaVu Sans Mono,monospace}.blog_prose__3DCde code,.blog_prose__3DCde pre{font-variant-ligatures:none;letter-spacing:0}.blog_prose__3DCde pre.blog-wrap{white-space:pre-wrap;overflow-wrap:anywhere}@media (max-width:680px){.blog_prose__3DCde td:first-child,.blog_prose__3DCde th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:inset -1px 0 0 var(--line)}.blog_prose__3DCde th:first-child{background:var(--soft)}}.blog_prose__3DCde .token.boolean,.blog_prose__3DCde .token.builtin,.blog_prose__3DCde .token.important,.blog_prose__3DCde .token.keyword{color:#cf222e}.blog_prose__3DCde .token.attr-value,.blog_prose__3DCde .token.char,.blog_prose__3DCde .token.label-value,.blog_prose__3DCde .token.string{color:#0a3069}.blog_prose__3DCde .token.comment{color:#6e7781;font-style:italic}.blog_prose__3DCde .token.constant,.blog_prose__3DCde .token.context-range,.blog_prose__3DCde .token.number{color:#0550ae}.blog_prose__3DCde .token.attr-name,.blog_prose__3DCde .token.class-name,.blog_prose__3DCde .token.function,.blog_prose__3DCde .token.label-key,.blog_prose__3DCde .token.property{color:#8250df}.blog_authorLink__cNKKI{color:inherit;text-decoration:none}.blog_authorLink__cNKKI:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}