@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.blog-post__hero{top:var(--header-offset);color:var(--color-white,#fff);--blog-hero-bleed:6rem;position:sticky}.blog-post__hero:after{content:"";top:calc(-1 * var(--blog-hero-bleed));z-index:-1;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;background-color:var(--hero-image-fallback);background-image:linear-gradient(151deg,#0000 0 31%,#245b74b8 32% 43%,#0000 44%),linear-gradient(146deg,#0000 0 41%,#31487cc2 42% 55%,#0000 56%),radial-gradient(125% 70% at 40% 105%,#142f55 0 42%,#0000 43%),linear-gradient(145deg,#17375f 0 22%,#1e5674 43%,#354f7d 68%,#3f4e83 100%);position:absolute;bottom:0;left:0;right:0}@media (min-width:768px){.blog-post__hero:after{background-image:-webkit-image-set(url(/img/backgrounds/bg-chat.avif) 1x type("image/avif"),url(/img/backgrounds/bg-chat.webp) 1x type("image/webp"));background-image:image-set("/img/backgrounds/bg-chat.avif" 1x type("image/avif"),"/img/backgrounds/bg-chat.webp" 1x type("image/webp"))}}.blog-post__hero section:not([data-slot=carousel]):not([data-slot=carousel-item]){--blog-hero-line:var(--canvas)}@supports (color:color-mix(in lab, red, red)){.blog-post__hero section:not([data-slot=carousel]):not([data-slot=carousel-item]){--blog-hero-line:color-mix(in srgb, var(--canvas) 80%, transparent)}}.blog-post__hero section:not([data-slot=carousel]):not([data-slot=carousel-item]){--blog-hero-dot:var(--canvas)}@supports (color:color-mix(in lab, red, red)){.blog-post__hero section:not([data-slot=carousel]):not([data-slot=carousel-item]){--blog-hero-dot:color-mix(in srgb, var(--canvas) 95%, transparent)}}.blog-post__hero section:not([data-slot=carousel]):not([data-slot=carousel-item]){--blog-hero-panel-inset-y:2.5rem;--blog-hero-copy-width:min(45rem, 100%);--blog-hero-panel-width:min(47.5rem, calc(100% - (var(--section-px) * 2)));--blog-hero-vl-left:calc((100% - var(--blog-hero-panel-width)) / 2);--blog-hero-vl-right:calc(var(--blog-hero-vl-left) + var(--blog-hero-panel-width));--blog-hero-hl-top:var(--blog-hero-panel-inset-y);--blog-hero-hl-bottom:calc(100% - var(--blog-hero-panel-inset-y));isolation:isolate;padding-inline:0;padding-block:calc(var(--spacing) * 10);overflow:hidden}.blog-post__hero section:before{content:"";z-index:1;pointer-events:none;background-image:radial-gradient(circle at var(--blog-hero-vl-left) var(--blog-hero-hl-top), var(--blog-hero-dot) 0 3px, transparent 3.5px), radial-gradient(circle at var(--blog-hero-vl-right) var(--blog-hero-hl-top), var(--blog-hero-dot) 0 3px, transparent 3.5px), radial-gradient(circle at var(--blog-hero-vl-left) var(--blog-hero-hl-bottom), var(--blog-hero-dot) 0 3px, transparent 3.5px), radial-gradient(circle at var(--blog-hero-vl-right) var(--blog-hero-hl-bottom), var(--blog-hero-dot) 0 3px, transparent 3.5px), linear-gradient(to right, transparent calc(var(--blog-hero-vl-left) - .5px), var(--blog-hero-line) calc(var(--blog-hero-vl-left) - .5px), var(--blog-hero-line) calc(var(--blog-hero-vl-left) + .5px), transparent calc(var(--blog-hero-vl-left) + .5px)), linear-gradient(to right, transparent calc(var(--blog-hero-vl-right) - .5px), var(--blog-hero-line) calc(var(--blog-hero-vl-right) - .5px), var(--blog-hero-line) calc(var(--blog-hero-vl-right) + .5px), transparent calc(var(--blog-hero-vl-right) + .5px)), linear-gradient(to bottom, transparent calc(var(--blog-hero-hl-top) - .5px), var(--blog-hero-line) calc(var(--blog-hero-hl-top) - .5px), var(--blog-hero-line) calc(var(--blog-hero-hl-top) + .5px), transparent calc(var(--blog-hero-hl-top) + .5px)), linear-gradient(to bottom, transparent calc(var(--blog-hero-hl-bottom) - .5px), var(--blog-hero-line) calc(var(--blog-hero-hl-bottom) - .5px), var(--blog-hero-line) calc(var(--blog-hero-hl-bottom) + .5px), transparent calc(var(--blog-hero-hl-bottom) + .5px));position:absolute;inset:0}.blog-post__hero-panel{z-index:2;width:var(--blog-hero-panel-width);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 12);background:var(--surface);margin-inline:auto;position:relative}@supports (color:color-mix(in lab, red, red)){.blog-post__hero-panel{background:color-mix(in srgb, var(--surface) 10%, transparent)}}.blog-post__hero-panel{backdrop-filter:blur(5.2px);box-shadow:inset 0 1px #ffffff2e}.blog-post__hero-panel>.text-left,.blog-post__hero-panel>.text-center{max-width:var(--blog-hero-copy-width);margin-inline:auto;margin-bottom:0}.blog-post__hero .hero-fixed__content{z-index:3;position:relative}.blog-post__eyebrow{color:#fff;text-align:center;width:100%;max-width:100%;display:block}.blog-post__title{letter-spacing:-.34px;hyphens:auto;text-align:center;text-wrap:balance;max-width:100%;margin-inline:auto;font-size:2.125rem;line-height:122%}@media (min-width:768px){.blog-post__title{letter-spacing:-.44px;font-size:2.75rem;line-height:116%}}@media (min-width:1024px){.blog-post__title{letter-spacing:-.5px;font-size:3.125rem;line-height:112%}}.blog-post__description{font-size:16px;line-height:var(--tw-leading,130%);letter-spacing:var(--tw-tracking,.16px);font-weight:var(--tw-font-weight,400);color:#ffffffe6;margin-inline:auto}@supports (color:color-mix(in lab, red, red)){.blog-post__description{color:color-mix(in oklab, var(--color-white,#fff) 90%, transparent)}}.blog-post__description{hyphens:auto;text-align:center;text-wrap:balance;max-width:100%}.blog-post__meta{font-size:16px;line-height:var(--tw-leading,130%);letter-spacing:var(--tw-tracking,.16px);font-weight:var(--tw-font-weight,400);color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.blog-post__meta{color:color-mix(in oklab, var(--color-white,#fff) 90%, transparent)}}.blog-post__byline{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing) * 10);color:#fff;text-align:left;width:fit-content;margin-inline:auto;display:flex}.blog-post__avatar{height:calc(var(--spacing,.25rem) * 10);width:calc(var(--spacing,.25rem) * 10);background-color:var(--alt);object-fit:cover;border:1px solid #ffffffe6;border-radius:3.40282e38px;flex-shrink:0;margin:0;display:block;overflow:hidden;border-radius:9999px!important}.blog-post__byline-text{color:var(--ink-muted);text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;min-height:2.5rem;font-size:14px;line-height:140%;display:flex}.blog-post__byline-text>*{text-align:left}.blog-post__hero .blog-post__byline-text>*{color:#fff}.blog-post__byline-role{text-transform:uppercase;letter-spacing:-1.08px;opacity:.8;font-family:Supply;font-size:.84375rem;font-weight:400;font-stretch:125%;line-height:92%}.blog-post__article{z-index:10;row-gap:calc(var(--spacing) * 10);border-top-style:var(--tw-border-style);background-color:var(--canvas);padding-inline:var(--section-px);padding-block:calc(var(--spacing) * 10);border-top-width:1px;grid-template-columns:repeat(1,minmax(0,1fr));display:grid;position:relative}@media (min-width:64rem){.blog-post__article{column-gap:calc(var(--spacing) * 20);row-gap:calc(var(--spacing) * 16);padding-block:calc(var(--spacing) * 20);grid-template-columns:320px 1fr}}@media (min-width:80rem){.blog-post__article{column-gap:calc(var(--spacing) * 40)}}.blog-post__sidebar{z-index:40;height:fit-content;position:sticky}.blog-post__content{width:100%;min-width:0}.blog-toc{max-height:calc(100vh - var(--header-offset) - 2rem);flex-direction:column;overflow:hidden}.blog-toc__list{margin-inline:0;margin-top:calc(var(--spacing) * 6);flex-direction:column;flex:auto;gap:.25rem;min-height:0;padding:0;list-style:none;display:flex;overflow-y:auto}.blog-toc__item{margin:0}.blog-toc__button{width:100%;color:var(--ink-muted);cursor:pointer;text-align:left;text-transform:uppercase;border-left:2px solid #0000;grid-template-columns:2rem minmax(0,1fr);grid-auto-rows:min-content;align-items:baseline;gap:.5rem;padding:.625rem .75rem .625rem .875rem;font-family:Supply;font-size:.84375rem;font-weight:400;font-stretch:125%;line-height:1.05;transition:background-color .15s,border-color .15s,color .15s,opacity .15s;display:grid}.blog-toc__button:hover{background-color:var(--surface);color:var(--ink)}.blog-toc__button:focus-visible{background-color:var(--surface);box-shadow:inset 0 0 0 2px var(--ring);color:var(--ink);outline:0}.blog-toc__item--active .blog-toc__button{border-left-color:var(--ink);background-color:var(--surface);color:var(--ink)}.blog-toc__number{color:currentColor;font-variant-numeric:tabular-nums}.blog-toc__text{--blog-toc-text-transition:.4s ease;--blog-toc-fade-out:.15s ease;--blog-toc-fade-in-delay:.15s;--blog-toc-fade-in:.25s ease;min-width:0;display:grid}.blog-toc__text-collapsed{text-overflow:ellipsis;white-space:nowrap;opacity:1;transition:opacity var(--blog-toc-fade-in) var(--blog-toc-fade-in-delay);grid-area:1/1;overflow:hidden}.blog-toc__text-expand{opacity:0;transition:grid-template-rows var(--blog-toc-text-transition), opacity var(--blog-toc-fade-out);grid-area:1/1;grid-template-rows:0fr;display:grid}.blog-toc__text-expand-inner{white-space:normal;line-height:1.4;overflow:hidden}.blog-toc__button[data-truncated=true]:is(:hover,:focus-visible) .blog-toc__text-collapsed{opacity:0;transition:opacity var(--blog-toc-fade-out)}.blog-toc__button[data-truncated=true]:is(:hover,:focus-visible) .blog-toc__text-expand{opacity:1;transition:grid-template-rows var(--blog-toc-text-transition), opacity var(--blog-toc-fade-in) var(--blog-toc-fade-in-delay);grid-template-rows:1fr}.blog-grid__toolbar{gap:calc(var(--spacing) * 6);padding-bottom:calc(var(--spacing) * 10);flex-direction:column;display:flex}@media (min-width:64rem){.blog-grid__toolbar{flex-direction:row;justify-content:space-between;align-items:center}}.blog-grid__tags{scrollbar-width:none;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:nowrap;display:flex;overflow-x:auto}@media (min-width:64rem){.blog-grid__tags{flex-wrap:wrap}}.blog-grid__tags::-webkit-scrollbar{display:none}.blog-grid__search{flex-shrink:0;position:relative}@media (min-width:64rem){.blog-grid__search{margin-left:auto}}.blog-grid__search-icon{pointer-events:none;top:50%;left:calc(var(--spacing,.25rem) * 2);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);opacity:.5;position:absolute}.blog-grid__search-icon:where(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blog-grid__search-input{border-style:var(--tw-border-style);padding-left:calc(var(--spacing) * 8);border-width:1px}.dark .blog-grid__search:focus-within .blog-grid__search-input{background-color:var(--canvas)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
.blog-post{--blog-code-bg:#171614;--blog-code-header-bg:#201f1d;--blog-code-border:#f6f4f038;--blog-code-text:#f4f1ea;--blog-code-muted:#f4f1ea9e;--blog-focus-ring:var(--ring)}.dark .blog-post{--blog-focus-ring:var(--blog-code-text)}.blog-post .article-content img{margin-inline:auto;margin-block:calc(var(--spacing) * 6);border-radius:0}.blog-post code{border:1px solid var(--border);margin-block:calc(var(--spacing) * 6);border-radius:0}html:not(.dark) .blog-post .table-scroll-wrapper{background-color:#fff}.blog-post .table-scroll-wrapper{max-width:100%;margin-inline:0;margin-block:calc(var(--spacing) * 6);border:1px solid var(--border);-webkit-overflow-scrolling:touch;background-color:var(--blog-code-bg);overflow-x:auto}.blog-post .table-scroll-wrapper:focus-visible{outline:2px solid var(--blog-focus-ring);outline-offset:2px}.blog-post .article-code-block [tabindex="0"]:focus-visible{outline:2px solid var(--blog-focus-ring);outline-offset:-2px;box-shadow:inset 0 0 0 2px var(--blog-focus-ring)}.blog-post table{border-collapse:collapse;background-color:var(--blog-code-bg);border:0;margin:0}.blog-post table th,.blog-post table td{padding:calc(var(--spacing) * 4);border-right:1px solid var(--border)}.blog-post table th:last-child,.blog-post table td:last-child{border-right:0}.blog-post table tbody tr:last-child{border-bottom:0}.blog-post table th:first-child,.blog-post table td:first-child{text-align:center}html:not(.dark) .blog-post table{background-color:#fff}html:not(.dark) .blog-post table thead,html:not(.dark) .blog-post table th{background-color:#e7e7e7}html:not(.dark) .blog-post table tbody tr{background-color:#fff}.dark .blog-post table thead,.dark .blog-post table th{background-color:var(--blog-code-header-bg)}.dark .blog-post table tbody tr,.dark .blog-post table td{background-color:var(--blog-code-bg)}.blog-post .blog-chart-frame{margin-block:calc(var(--spacing) * 6);padding:calc(var(--spacing) * 4);border:1px solid var(--border);background-color:var(--blog-code-bg);border-radius:0}.blog-post .blog-chart-frame--multiple{padding:calc(var(--spacing) * 6)}html:not(.dark) .blog-post .blog-chart-frame,html:not(.dark) .blog-post .blog-chart-frame .bg-surface,html:not(.dark) .blog-post .blog-chart-frame .bg-canvas,html:not(.dark) .blog-post .blog-chart-frame .bg-alt{background-color:#fff}html:not(.dark) .blog-post .blog-chart-frame h4,html:not(.dark) .blog-post .blog-chart-frame h5{margin-top:0}.dark .blog-post .blog-chart-frame .bg-surface,.dark .blog-post .blog-chart-frame .bg-canvas,.dark .blog-post .blog-chart-frame .bg-alt{background-color:var(--blog-code-bg)}.dark .blog-post .blog-chart-frame h4,.dark .blog-post .blog-chart-frame h5{margin-top:0}.article-content{display:block}.article-content img{margin-inline:auto;margin-block:calc(var(--spacing) * 6);display:block}.article-content>*{margin:0}.article-content>*+*,.blog-post__content>.article-content+.article-content{margin-top:calc(var(--spacing) * 6)}.article-content>*+h2,.blog-post__content>.article-content:not(:first-child)>h2:first-child{margin-top:calc(var(--spacing) * 10)}.article-content>*+h3,.blog-post__content>.article-content:not(:first-child)>h3:first-child,.article-content>h2+*,.article-content>h3+*{margin-top:calc(var(--spacing) * 6)}.blog-post__content>.article-content:first-child>:first-child{margin-top:0}.article-content code{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);border:1px solid var(--border);margin:0 .0625rem;padding:.0625rem .375rem .125rem;font-size:.875rem;font-weight:400;line-height:1.35}@supports (color:color-mix(in lab, red, red)){.article-content code{border:1px solid color-mix(in oklch, var(--border) 82%, transparent)}}.article-content code{background-color:var(--canvas);color:var(--info);white-space:normal;overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}.dark .article-content code{border-color:var(--blog-code-border)}@supports (color:color-mix(in lab, red, red)){.dark .article-content code{border-color:color-mix(in oklch, var(--blog-code-border) 88%, transparent)}}.dark .article-content code{background-color:var(--blog-code-header-bg)}@supports (color:color-mix(in lab, red, red)){.dark .article-content code{background-color:color-mix(in oklch, var(--blog-code-header-bg) 84%, var(--blog-code-bg))}}.dark .article-content code{color:var(--info)}.article-content pre{max-width:100%;padding:calc(var(--spacing) * 4);background-color:var(--canvas);border:1px solid var(--border);position:relative;overflow-x:auto}.blog-post .article-code-block{margin-block:calc(var(--spacing) * 6);border:1px solid var(--blog-code-border);background-color:var(--blog-code-bg);border-radius:0}.blog-post .article-code-block__header{border-bottom:1px solid var(--blog-code-border);background-color:var(--blog-code-header-bg);min-height:1.875rem;color:var(--blog-code-muted);padding:.375rem .625rem}.blog-post .article-code-block__language{cursor:default;-webkit-user-select:none;user-select:none;font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:.6875rem;font-weight:300;line-height:1}.blog-post .article-code-block pre{width:100%;min-width:100%;max-width:100%;color:var(--blog-code-text);white-space:pre-wrap;border:0;border-radius:0;margin:0;padding:0;font-size:.8125rem;line-height:1.55;overflow:visible;background-color:var(--blog-code-bg)!important}.blog-post .article-code-block code{color:inherit;white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:.8125rem;font-weight:300;line-height:inherit;background-color:#0000;border:0;border-radius:0;margin:0;padding:0}.blog-post .article-code-block [data-line-numbers=true] .line{column-gap:calc(var(--spacing) * 6);grid-template-columns:2.5rem minmax(0,1fr);display:grid}.blog-post .article-code-block [data-line-numbers=true] .line>span:last-child{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.blog-post .article-code-block__copy{border:1px solid var(--blog-code-border);width:1.75rem;height:1.75rem;color:var(--blog-code-text);opacity:.7;background-color:#0000;border-radius:0;transition:background-color .15s,opacity .15s}.blog-post .article-code-block__copy:hover{opacity:1;background-color:#f6f4f014}.blog-post .article-code-block__copy:focus-visible{outline:2px solid var(--blog-focus-ring);outline-offset:2px}.article-content ul,.article-content ol{margin-top:calc(var(--spacing) * 6);gap:calc(var(--spacing) * 6);flex-direction:column;display:flex}.article-content li{margin-left:calc(var(--spacing) * 6)}.article-content ul li::marker{content:"• "}.article-content a{color:var(--info)}.article-content a:hover{opacity:.7}.dark .article-content a{color:var(--info)}.article-content h2,.article-content h3{scroll-margin-top:calc(var(--header-offset) + .5rem)}@media (max-width:1023px){.article-content h2,.article-content h3{scroll-margin-top:calc(var(--header-offset) + 4rem)}}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}.mermaid-diagram{margin-block:calc(var(--spacing) * 6);flex-direction:column;align-items:center;width:100%;display:flex}.mermaid-diagram__svg{justify-content:center;width:100%;display:flex}.mermaid-diagram__svg svg{max-width:100%;height:auto}.mermaid-diagram__placeholder{width:100%;min-height:12rem;animation:var(--animate-pulse,pulse 2s cubic-bezier(.4, 0, .6, 1) infinite);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);background-color:var(--surface);justify-content:center;align-items:center;display:flex}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@keyframes pulse{50%{opacity:.5}}
