/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid;--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}}}@layer theme{:root,:host{--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.mx-auto{margin-inline:auto}.mt-9{margin-top:calc(var(--spacing) * 9)}.contents{display:contents}.w-full{width:100%}.max-w-\[700px\]{max-width:700px}.max-w-\[1020px\]{max-width:1020px}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.px-6{padding-inline:calc(var(--spacing) * 6)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.filter{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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (width>=40rem){.sm\:px-10{padding-inline:calc(var(--spacing) * 10)}}@media (width>=64rem){.lg\:mt-11{margin-top:calc(var(--spacing) * 11)}.lg\:pt-12{padding-top:calc(var(--spacing) * 12)}}}.blog{--blog-surface:#f5f7f9;--blog-text:#131d2d;--blog-muted:#5d6a7d;--blog-faint:#8794a7;--blog-rule:#cfd7e1;--blog-soft:#e9eef3;--blog-code:#eff3f7;--blog-code-text:#1d293d;background:var(--blog-surface);min-height:100svh;color:var(--blog-text);font-family:Instrument Sans,system-ui,sans-serif;transition:background-color .18s,color .18s}html[data-blog-theme=dark] .blog{--blog-surface:#10171d;--blog-text:#edf1f5;--blog-muted:#b8c2cf;--blog-faint:#8d9cac;--blog-rule:#bccddd38;--blog-soft:#172128;--blog-code:#080a0c;--blog-code-text:#d8e1eb}.blog-masthead{justify-content:space-between;align-items:center;width:min(100% - 48px,1020px);margin:0 auto;padding:15px 0;display:flex}.blog-masthead__name{color:inherit;letter-spacing:-.035em;font-size:15px;font-weight:500;text-decoration:none}.blog-masthead__actions{align-items:center;gap:17px;display:flex}.blog-masthead__feed,.blog-theme-toggle{color:var(--blog-muted);letter-spacing:.035em;font-family:Commit Mono,ui-monospace,monospace;font-size:11px;text-decoration:none;transition:color .16s}.blog-theme-toggle{cursor:pointer;background:0 0;border:0;place-items:center;width:17px;height:17px;padding:0;display:grid}.blog-theme-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:15px}.blog-theme-toggle__moon,html[data-blog-theme=dark] .blog-theme-toggle__sun{display:none}html[data-blog-theme=dark] .blog-theme-toggle__moon{display:block}.blog-masthead__feed:hover,.blog-theme-toggle:hover{color:var(--accent-blue)}.blog-eyebrow,.blog-archive__category,.blog-archive__reading,.blog-archive__row time,.blog-article-header__meta,.blog-back,.blog-toc,.blog-contents-toggle,.blog-copy-code,.blog-code-block__filename,.blog-prose figcaption{font-variant-numeric:tabular-nums;letter-spacing:.035em;font-family:Commit Mono,ui-monospace,monospace}.blog-archive__intro h1{letter-spacing:-.058em;margin:10px 0 8px;font-size:clamp(57px,6.5vw,88px);font-weight:570;font-stretch:97%;line-height:.94}.blog-archive__intro h1 span{color:var(--accent-blue)}.blog-eyebrow{color:var(--blog-faint);margin:0;font-size:11px;line-height:1.4}.blog-archive__description{max-width:570px;color:var(--blog-muted);letter-spacing:-.018em;margin:14px 0 0;font-size:17px;line-height:1.42}.blog-archive__list{border-top:1px solid var(--blog-rule)}.blog-archive__list ol{margin:0;padding:0;list-style:none}.blog-archive__list li{border-bottom:1px solid var(--blog-rule)}.blog-archive__row{min-height:55px;color:inherit;grid-template-columns:112px minmax(0,1fr) 122px 70px;align-items:center;gap:18px;padding-inline:14px;text-decoration:none;transition:color .16s,background-color .16s;display:grid}.blog-archive__row:hover{background:var(--blog-text)}@supports (color:color-mix(in lab, red, red)){.blog-archive__row:hover{background:color-mix(in srgb,var(--blog-text) 3%,transparent)}}.blog-archive__row time,.blog-archive__category,.blog-archive__reading{color:var(--blog-faint);white-space:nowrap;font-size:10.5px}.blog-archive__title{letter-spacing:-.029em;font-size:15.5px;font-weight:450;line-height:1.28}.blog-archive__category{text-transform:uppercase}.blog-archive__reading{text-align:right}.blog-archive__empty{color:var(--blog-muted);padding:22px 0}.blog-article-shell{max-width:1120px}.blog--article .blog-masthead{width:min(100% - 48px,1120px)}.blog-article-nav{min-width:0}.blog-back{color:var(--blog-muted);padding-top:4px;font-size:11px;text-decoration:none;transition:color .16s;display:inline-flex}.blog-back:hover{color:var(--accent-blue)}@media (width>=1001px){.blog-article-shell{grid-template-columns:185px minmax(0,680px) minmax(0,120px);align-items:start;column-gap:48px;display:grid}.blog-article-nav{grid-area:1/1/span 2;align-self:start;max-height:calc(100svh - 48px);margin-top:17px;position:sticky;top:24px}.blog-article-header{grid-area:1/2;margin-top:13px}.blog-prose{grid-area:2/2}.blog-notes{grid-area:2/3;align-self:start;position:sticky;top:24px}.blog-toc__nav{scrollbar-width:none;overscroll-behavior:contain;max-height:calc(100svh - 180px);overflow-y:auto}.blog-toc__nav::-webkit-scrollbar{display:none}}.blog-article-header{border-bottom:1px solid var(--blog-rule);grid-column:2;width:100%;padding-bottom:16px}.blog-article-header .blog-eyebrow{color:var(--blog-muted);text-transform:uppercase;font-size:10.5px}.blog-article-header h1{letter-spacing:-.05em;max-width:760px;margin:12px 0 9px;font-size:clamp(40px,4.1vw,60px);font-weight:540;font-stretch:97%;line-height:.98}.blog-article-header__standfirst{max-width:700px;color:var(--blog-muted);letter-spacing:-.016em;margin:0;font-size:17px;line-height:1.4}.blog-article-header__meta{color:var(--blog-faint);text-transform:uppercase;flex-wrap:wrap;gap:8px;margin:13px 0 0;font-size:10.5px;display:flex}.blog-toc{color:var(--blog-faint);margin-top:21px;font-size:11px;line-height:1.5}.blog-toc__label{color:var(--blog-muted);margin:0 0 14px;font-size:10.5px}.blog-toc__nav{position:relative}.blog-toc ol{margin:0;padding:0;list-style:none}.blog-toc__beam{z-index:2;pointer-events:none;width:28px;position:absolute;top:0;left:0;overflow:visible}.blog-toc__beam-track,.blog-toc__beam-progress{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.blog-toc__beam-track{stroke:var(--blog-rule);stroke-width:1.5px}.blog-toc__beam-progress{stroke:var(--accent-blue);stroke-width:2px;opacity:0;will-change:stroke-dasharray,stroke-dashoffset}.blog-toc__tree{z-index:1;position:relative;padding-left:21px!important}.blog-toc__section{margin:0;padding:0 0 11px;position:relative}.blog-toc__section>a{color:inherit;text-decoration:none;transition:color .2s;display:block}.blog-toc__section.is-active>a{color:var(--accent-blue)}.blog-toc__children{margin:7px 0 0;padding:0 0 0 13px!important}.blog-toc__children li{margin:5px 0}.blog-toc__children a{color:inherit;text-decoration:none;transition:color .2s}.blog-toc__children .is-active{color:var(--accent-blue)}.blog-prose{min-width:0;color:var(--blog-text);letter-spacing:-.014em;counter-reset:section;grid-column:2;padding-top:24px;font-size:18.5px;line-height:1.61}.blog-prose>:first-child{margin-top:0}.blog-prose p{margin:0 0 1.25em}.blog-prose h2{letter-spacing:-.038em;counter-increment:section;margin:2.7em 0 .62em;scroll-margin-top:30px;font-size:clamp(28px,2.7vw,36px);font-weight:550;line-height:1.05;position:relative}.blog-prose h3{letter-spacing:-.023em;margin:2.1em 0 .55em;scroll-margin-top:30px;font-size:22px;font-weight:550;line-height:1.15}.blog-prose h2:before{color:var(--blog-faint);content:counter(section,decimal-leading-zero);letter-spacing:.04em;font-family:Commit Mono,ui-monospace,monospace;font-size:10px;font-weight:400;position:absolute;top:.45em;right:calc(100% + 18px)}.blog-prose a{color:#1654c4;text-underline-offset:.16em;text-decoration-color:#1654c46b}.blog-prose a:hover{color:var(--accent-blue)}.blog-prose ul,.blog-prose ol{margin:0 0 1.35em;padding-left:1.25em}.blog-prose li{margin:.28em 0;padding-left:.15em}.blog-prose blockquote{border-left:2px solid var(--accent-blue);color:var(--blog-muted);margin:1.8em 0;padding:.1em 0 .1em 1.1em}.blog-prose code{border:1px solid var(--blog-rule);padding:.04em .2em}@supports (color:color-mix(in lab, red, red)){.blog-prose code{border:1px solid color-mix(in srgb,var(--blog-rule) 72%,transparent)}}.blog-prose code{background:var(--blog-soft);color:var(--blog-code-text);font-family:Commit Mono,ui-monospace,monospace;font-size:.79em}.blog-code-block{border:1px solid var(--blog-rule);background:var(--blog-code);width:min(850px,100% + 120px);color:var(--blog-code-text);border-radius:9px;margin:2.2em 0 2.4em;overflow:hidden}.blog-code-block__header{border-bottom:1px solid var(--blog-rule);justify-content:space-between;align-items:center;min-height:40px;padding:0 13px 0 15px;display:flex}.blog-code-block__filename{color:var(--blog-muted);align-items:center;gap:8px;font-size:11px;display:flex}.blog-code-block__filename svg,.blog-copy-code svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45px;width:15px}.blog-prose pre{margin:0;padding:16px 18px 18px 0;font-family:Commit Mono,ui-monospace,monospace;font-size:13px;line-height:1.62;overflow:auto;color:inherit!important;background:0 0!important}.blog-prose pre code{min-width:max-content;color:inherit;font-size:inherit;counter-reset:line;background:0 0;border:0;padding:0;display:block}.blog-prose pre .line{min-height:1.62em;color:var(--shiki-light);counter-increment:line;padding-left:62px;display:block}.blog-prose pre .line:before{width:38px;color:var(--blog-faint);content:counter(line);text-align:right;-webkit-user-select:none;user-select:none;margin-left:-50px;margin-right:12px;display:inline-block}.blog-prose pre .line span{color:var(--shiki-light)!important}.blog-copy-code{color:var(--blog-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:4px;font-size:10.5px;display:inline-flex}.blog-copy-code:hover{color:var(--accent-blue)}.blog-copy-code:focus-visible{outline-offset:3px}html[data-blog-theme=dark] .blog-prose pre .line,html[data-blog-theme=dark] .blog-prose pre .line span{color:var(--shiki-dark)!important}html[data-blog-theme=dark] .blog-prose a{color:#8db8ff;text-decoration-color:#8db8ff7a}.blog-prose figure{margin:2.45em 0}.blog-prose__hero{width:min(850px,100% + 120px);margin-top:0!important}.blog-prose img{object-fit:cover;border-radius:3px;width:100%;height:auto;max-height:480px;display:block}.blog-prose figcaption{color:var(--blog-muted);margin-top:9px;font-size:11px;line-height:1.48}.blog-prose table{border-collapse:collapse;width:100%;margin:2em 0;font-size:15px}.blog-prose th,.blog-prose td{border-bottom:1px solid var(--blog-rule);text-align:left;padding:.65em .35em}.blog-prose th{color:var(--blog-muted);text-transform:uppercase;font-family:Commit Mono,ui-monospace,monospace;font-size:10.5px;font-weight:400}.blog-contents-toggle{display:none}.blog a:focus-visible,.blog button:focus-visible{outline:2px solid var(--accent-blue);outline-offset:4px}@media (width<=1000px){.blog-article-shell{max-width:710px;margin-left:auto;margin-right:auto;padding-top:20px;display:block}.blog-back{margin-bottom:18px}.blog-article-header{width:100%}.blog-toc{margin-top:0;padding:15px 0 2px;display:none;position:static}.blog-toc.is-open{display:block}.blog-notes{display:none}.blog-contents-toggle{border:0;border-bottom:1px solid var(--blog-rule);width:100%;color:var(--blog-muted);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;margin:0 0 10px;padding:9px 0;font-size:10.5px;display:flex}.blog-contents-toggle[aria-expanded=true] span{color:var(--accent-blue);transform:rotate(45deg)}.blog-code-block,.blog-prose__hero{width:100%}}@media (width<=640px){.blog-masthead{width:calc(100% - 48px);padding:14px 0}.blog-archive{padding-top:33px}.blog-archive__intro h1{font-size:58px}.blog-archive__row{grid-template-columns:96px minmax(0,1fr) 54px;gap:9px;min-height:59px;padding-inline:8px}.blog-archive__category{display:none}.blog-archive__title{font-size:14.5px}.blog-archive__row time,.blog-archive__reading{font-size:10.5px}.blog-article-shell{padding-top:7px}.blog-article-header h1{font-size:clamp(38px,11vw,51px)}.blog-article-header__standfirst{font-size:16px}.blog-prose{padding-top:22px;font-size:17.5px;line-height:1.62}.blog-prose h2{margin-top:2.4em;font-size:29px}.blog-prose h2:before{display:none}.blog-code-block{border-radius:8px;margin:2em 0}.blog-prose pre{padding-right:12px;font-size:12px}.blog-prose pre .line{padding-left:52px}.blog-prose pre .line:before{width:32px;margin-left:-42px;margin-right:10px}.blog-prose img{max-height:none}}@media (prefers-reduced-motion:reduce){.blog,.blog *{scroll-behavior:auto!important;transition:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}
