@charset "UTF-8";@counter-style prose-decimal{system:extends decimal;suffix:""}.prose{--prose-rhythm: var(--space-4);--prose-gap: var(--space-8);--prose-quote-overhang: 13px;--prose-mono: ui-monospace, sfmono-regular, menlo, monospace;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-neutral-800);overflow-wrap:break-word}@media(min-width:1024px){.prose{--prose-rhythm: var(--space-5);--prose-gap: var(--space-10);--prose-quote-overhang: 19px}}.prose>*+*{margin-top:var(--prose-rhythm)}.prose>*+:where(h2,h3,.prose__figure,.prose__table,.prose__callout),.prose>:where(.prose__figure,.prose__table,.prose__callout)+*{margin-top:var(--prose-gap)}.prose>:where(h2,h3)+:where(h2,h3){margin-top:var(--prose-rhythm)}.prose>*+:where(blockquote){margin-top:calc(var(--prose-gap) + var(--prose-quote-overhang))}@media(min-width:1024px){.prose--lead>p:first-child{font-size:var(--text-lg)}}.prose h2,.prose h3{color:var(--color-neutral-950)}.prose h2{font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-snug)}@media(min-width:1024px){.prose h2{font-size:var(--text-3xl)}}.prose h2.prose__display{font-weight:400}@media(min-width:1024px){.prose h2.prose__display{font-size:var(--text-4xl)}}.prose h3{font-size:var(--text-lg);font-weight:400;line-height:1.6}@media(min-width:1024px){.prose h3{font-size:var(--text-xl)}}.prose ul,.prose ol{list-style:none}.prose ul{padding-inline-start:23px}.prose ul>li{position:relative}.prose ul>li:before{position:absolute;top:calc(.75em - 5px);inset-inline-start:-23px;width:10px;height:10px;content:"";background:var(--color-accent-500);border-radius:50%}.prose ul ul>li:before{background:transparent;border:1px solid var(--color-accent-500)}.prose ol{padding-inline-start:var(--space-3);list-style:prose-decimal outside}.prose ol>li{padding-inline-start:var(--space-3)}.prose ol>li::marker{font-weight:700;color:var(--color-accent-700)}.prose li>*+*{margin-top:var(--space-2)}.prose a{color:var(--color-neutral-950);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border-radius:var(--radius-xs);transition:color var(--duration) var(--ease-out),text-underline-offset var(--duration) var(--ease-out)}.prose a:focus-visible{outline:none;box-shadow:var(--focus-ring)}.prose a:hover,.prose a:focus-visible{color:var(--color-accent-700);text-underline-offset:4px}.prose blockquote{position:relative;padding:var(--space-5);font-style:italic;line-height:var(--leading-relaxed);color:var(--color-accent-50);background:var(--color-accent-700);border-radius:var(--radius-2xl)}@media(min-width:1024px){.prose blockquote{padding:30px;border-radius:var(--radius-3xl)}}.prose blockquote:after{position:absolute;top:-13px;right:var(--space-5);width:44px;height:32px;content:"";background:url(/build/assets/quote-mark-DWso0wxY.svg) center/contain no-repeat}@media(min-width:1024px){.prose blockquote:after{top:-19px;right:30px;width:65px;height:48px}}.prose blockquote>*+*{margin-top:var(--prose-rhythm)}.prose blockquote a,.prose blockquote a:hover,.prose blockquote a:focus-visible{color:inherit}.prose .prose__figure{display:grid;row-gap:10px}.prose .prose__figure img{width:100%;border-radius:var(--radius-md)}@media(min-width:1024px){.prose .prose__figure:has(>img+img){grid-template-columns:1fr 1fr;column-gap:23px}}.prose .prose__figure:has(>img+img) img{aspect-ratio:441/249;object-fit:cover}.prose .prose__figure figcaption{grid-column:1/-1;padding:5px 10px;font-size:var(--text-sm);line-height:var(--leading);color:var(--color-neutral-950);text-align:center;background:var(--color-accent-500)}@media(min-width:1024px){.prose .prose__figure figcaption{font-size:var(--text-base);line-height:var(--leading-relaxed)}}.prose .prose__figure figcaption a:hover,.prose .prose__figure figcaption a:focus-visible{color:inherit}.prose .prose__table{overflow-x:auto;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg)}.prose .prose__table table{width:100%;font-size:var(--text-sm);line-height:var(--leading-snug);table-layout:fixed;border-collapse:collapse}.prose .prose__table th,.prose .prose__table td{padding:var(--space-3) var(--space-2);text-align:start;vertical-align:top;overflow-wrap:anywhere;border-top:1px solid var(--color-neutral-200)}.prose .prose__table th:first-child,.prose .prose__table td:first-child{padding-inline-start:var(--space-4)}.prose .prose__table th:last-child,.prose .prose__table td:last-child{padding-inline-end:var(--space-4)}.prose .prose__table th>p+p,.prose .prose__table td>p+p{margin-top:var(--space-1)}.prose .prose__table table>:first-child>tr:first-child>*{border-top:0}.prose .prose__table th{font-weight:600;color:var(--color-neutral-700);background:var(--color-neutral-50)}.prose .prose__table td{color:var(--color-neutral-900)}.prose .prose__table td:first-child{font-weight:600}.prose .prose__callout{padding:var(--space-6);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-neutral-700);background:var(--color-accent-50);border-radius:var(--radius-lg)}.prose .prose__callout>*+*{margin-top:var(--space-1)}.prose .prose__callout>p:first-child{font-size:var(--text-base);color:var(--color-accent-900)}.prose .prose__callout a{color:var(--color-accent-700)}.prose .prose__callout a:hover,.prose .prose__callout a:focus-visible{color:var(--color-accent-800)}.prose .prose__callout>p:last-child:has(>a:only-child){margin-top:var(--space-6)}.prose .prose__callout>p:last-child:has(>a:only-child)>a{display:inline-flex;gap:var(--space-1);align-items:center;align-self:flex-start;font-size:var(--text-sm);font-weight:600;line-height:normal;color:var(--color-accent-700);text-decoration:underline;text-underline-offset:2px;transition:color var(--duration) var(--ease-out)}@media(max-width:1023.98px){.prose .prose__callout>p:last-child:has(>a:only-child)>a{position:relative}.prose .prose__callout>p:last-child:has(>a:only-child)>a:after{position:absolute;top:50%;left:50%;width:max(100%,var(--touch-target));height:max(100%,var(--touch-target));content:"";transform:translate(-50%,-50%)}}.prose .prose__callout>p:last-child:has(>a:only-child)>a .icon{--icon-size: .875rem}.prose .prose__callout>p:last-child:has(>a:only-child)>a:hover,.prose .prose__callout>p:last-child:has(>a:only-child)>a:focus-visible{color:var(--color-accent-800)}.prose .prose__callout>p:last-child:has(>a:only-child)>a:hover .icon,.prose .prose__callout>p:last-child:has(>a:only-child)>a:focus-visible .icon{transform:translate(2px)}.prose .prose__callout>p:last-child:has(>a:only-child)>a{transition:transform var(--duration-fast) var(--ease-out)}.prose .prose__callout>p:last-child:has(>a:only-child)>a:active:not(:disabled){transform:scale(.97)}.prose .prose__callout>p:last-child:has(>a:only-child)>a{transition:color var(--duration) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.prose .prose__callout>p:last-child:has(>a:only-child)>a:after{position:static;display:inline-block;width:auto;height:auto;content:"→";content:"→"/"";transform:none;transition:transform var(--duration-fast) var(--ease-out)}.prose .prose__callout>p:last-child:has(>a:only-child)>a:hover:after,.prose .prose__callout>p:last-child:has(>a:only-child)>a:focus-visible:after{transform:translate(2px)}@media(max-width:1023.98px){.prose .prose__callout>p:last-child:has(>a:only-child)>a:before{position:absolute;top:50%;left:50%;width:max(100%,var(--touch-target));height:max(100%,var(--touch-target));content:"";transform:translate(-50%,-50%)}}@media(min-width:1024px){.prose .prose__callout:has(>p:last-child>a:only-child){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-6);align-items:center}.prose .prose__callout:has(>p:last-child>a:only-child)>*{grid-column:1}.prose .prose__callout:has(>p:last-child>a:only-child)>p:last-child{grid-row:1/span 99;grid-column:2;margin-top:0}}.prose code{padding:2px 6px;font-family:var(--prose-mono);font-size:.875em;background:var(--color-neutral-50);border-radius:var(--radius-xs)}.prose pre{padding:var(--space-3);font-family:var(--prose-mono);font-size:var(--text-sm);line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}@media(min-width:1024px){.prose pre{padding:var(--space-4)}}.prose pre code{padding:0;font-size:inherit;background:none}.prose>hr{margin-block:var(--space-6);border:0;border-top:1px solid var(--color-neutral-200)}@media(min-width:1024px){.prose>hr{margin-block:var(--space-8)}}.section--divided{margin-top:var(--space-8)}@media(min-width:1024px){.section--divided{margin-top:var(--space-12)}}.section--divided:last-child{margin-bottom:var(--space-8)}@media(min-width:1024px){.section--divided:last-child{margin-bottom:var(--space-16)}}.section--divided .section__panel{gap:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-neutral-200)}.section--divided .section__title{font-size:var(--text-2xl)}.section--divided .section__link{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:color var(--duration) var(--ease-out),background-size var(--duration) var(--ease-out)}.section--divided .section__link:hover,.section--divided .section__link:focus-visible{background-size:100% 1px}.section--divided .section__link{font-size:var(--text-sm);color:var(--color-accent-800);text-decoration:none}.section--divided .section__link:hover{color:var(--color-accent-900)}@media(max-width:1023.98px){.blog-card--wide .blog-card__image{height:183px}}.blog-card--wide .blog-card__title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}@media(max-width:1023.98px){.blog-card--wide .blog-card__title{font-size:var(--text-base)}}@media(max-width:1023.98px){.article-rail--stack{grid-auto-columns:auto;grid-auto-flow:row;margin:0;overflow:visible;scroll-snap-type:none}}@media(max-width:1023.98px){.article-rail--stack .article-rail__item,.article-rail--stack .article-rail__item:first-child,.article-rail--stack .article-rail__item:last-child{margin:0}}.blog-listing{padding-block:var(--space-4) var(--space-8)}@media(min-width:1024px){.blog-listing{padding-block:var(--space-8) var(--space-16)}}.blog-listing>*+*{margin-top:var(--space-5)}@media(min-width:1024px){.blog-listing>*+*{margin-top:var(--space-8)}}.blog-listing__head{display:flex;flex-direction:column;gap:var(--space-1);line-height:normal}@media(min-width:1024px){.blog-listing__head{gap:var(--space-2)}}.blog-listing__title{font-size:var(--text-2xl);line-height:normal;color:var(--color-neutral-950)}@media(min-width:1024px){.blog-listing__title{font-size:var(--text-3xl)}}.blog-listing__lead{font-size:var(--text-sm);color:var(--color-neutral-700)}@media(min-width:1024px){.blog-listing__lead{font-size:var(--text-base)}}.blog-listing>.blog-listing__toolbar{display:flex;gap:var(--space-4);align-items:center;justify-content:space-between;margin-top:var(--space-2)}@media(min-width:1024px){.blog-listing>.blog-listing__toolbar{margin-top:var(--space-3)}}.blog-listing__count{font-size:var(--text-xs);line-height:normal;color:var(--color-neutral-700)}@media(max-width:1023.98px){.blog-listing__count-long{display:none}}@media(min-width:1024px){.blog-listing__count-short{display:none}}.blog-listing__sort{position:relative;flex-shrink:0}.blog-listing__sort-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.blog-listing__sort-toggle{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:500;line-height:normal;color:var(--color-neutral-950);list-style:none;cursor:pointer;background:var(--color-white);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);transition:border-color var(--duration) var(--ease-out),background-color var(--duration) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.blog-listing__sort-toggle::-webkit-details-marker{display:none}@media(max-width:1023.98px){.blog-listing__sort-toggle{position:relative}.blog-listing__sort-toggle:after{position:absolute;top:50%;left:50%;width:max(100%,var(--touch-target));height:max(100%,var(--touch-target));content:"";transform:translate(-50%,-50%)}}@media(min-width:1024px){.blog-listing__sort-toggle{min-height:45px;padding-inline:var(--space-4)}}.blog-listing__sort-toggle:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-400)}.blog-listing__sort-toggle:active{transform:scale(.97)}@media(max-width:1023.98px){.blog-listing__sort-label{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}}.blog-listing__sort-chevron{--icon-size: 12px;color:var(--color-neutral-900)}@media(min-width:1024px){.blog-listing__sort-chevron{--icon-size: 14px}}.blog-listing__sort[open]:not([data-closing]) .blog-listing__sort-chevron{transform:rotate(180deg)}.blog-listing__sort-list{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:20;display:flex;flex-direction:column;gap:var(--space-1);min-width:max(100%,200px);padding:var(--space-1);background:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-mega)}.blog-listing__sort-option{display:flex;gap:var(--space-2);align-items:center;min-height:var(--touch-target);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;line-height:normal;color:var(--color-neutral-950);white-space:nowrap;border-radius:var(--radius-sm);transition:background-color var(--duration) var(--ease-out),transform var(--duration-fast) var(--ease-out)}@media(min-width:1024px){.blog-listing__sort-option{min-height:40px}}.blog-listing__sort-option:hover,.blog-listing__sort-option[aria-current=true]{background:var(--color-neutral-50)}.blog-listing__sort-option[aria-current=true]{font-weight:600}.blog-listing__sort-option:active{transform:scale(.97)}.blog-listing__sort-check{margin-left:auto;font-weight:700;color:var(--color-accent-700)}.blog-listing__grid{display:grid;gap:var(--space-3)}@media(min-width:1024px){.blog-listing__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}}.blog-listing__empty{display:flex;flex-direction:column;gap:var(--space-3);align-items:center;padding:var(--space-8) var(--space-4);font-size:var(--text-sm);color:var(--color-neutral-700);text-align:center;border:1px dashed var(--color-neutral-300);border-radius:var(--radius-xl)}@media(min-width:1024px){.blog-listing__empty{padding:var(--space-12) var(--space-6);font-size:var(--text-base)}}.blog-listing__empty-link{font-size:var(--text-sm);font-weight:600;color:var(--color-accent-700);text-decoration:underline;text-underline-offset:2px;transition:color var(--duration) var(--ease-out)}.blog-listing__empty-link:hover{color:var(--color-accent-900)}.article{display:flex;flex-direction:column;gap:var(--space-5);max-width:calc(824px + 2 * var(--gutter));padding-top:var(--space-4)}@media(min-width:1024px){.article{gap:var(--space-6);padding-top:var(--space-8)}}.article:last-child{padding-bottom:var(--space-8)}@media(min-width:1024px){.article:last-child{padding-bottom:var(--space-16)}}.article__post{display:flex;flex-direction:column;gap:inherit}.article__header{display:flex;flex-direction:column;gap:var(--space-1)}@media(min-width:1024px){.article__header{gap:var(--space-2)}}.article__title{font-size:var(--text-2xl);line-height:1.2;color:var(--color-neutral-950)}@media(min-width:1024px){.article__title{font-size:var(--text-4xl)}}.article__meta{display:flex;flex-wrap:wrap;column-gap:var(--space-2);font-size:var(--text-xs);line-height:normal;color:var(--color-neutral-700)}@media(min-width:1024px){.article__meta{font-size:var(--text-sm)}}.article__meta dt,.article__meta dd{display:inline;margin:0}.article__meta-group+.article__meta-group:before{margin-right:var(--space-2);color:var(--color-neutral-300);content:"·";content:"·"/""}.article__image{width:100%;height:210px;object-fit:cover;border-radius:var(--radius-xl)}@media(min-width:1024px){.article__image{height:420px}}.reading-progress{position:sticky;top:var(--header-pinned);z-index:40;height:4px;overflow:hidden;background:var(--color-neutral-100)}@media(min-width:1024px){.reading-progress{top:0}}.reading-progress__fill{display:block;height:100%;background:var(--color-primary-600);transform:scaleX(0);transform-origin:left;transition:transform .1s linear}@media(prefers-reduced-motion:reduce){.reading-progress__fill{transition:none}}
