.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap;width:1px}header[data-astro-cid-3ef6ksr2]{background-color:var(--body-bg-color);border-bottom:1px solid;-o-border-image:radial-gradient(58% 200% at 50% 50%,var(--accent-primary-color) 0,transparent 100%) 1;border-image:radial-gradient(58% 200% at 50% 50%,var(--accent-primary-color) 0,transparent 100%) 1;padding:1.5rem 0;position:relative}.content-container[data-astro-cid-3ef6ksr2]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}nav[data-astro-cid-3ef6ksr2]{-webkit-box-flex:1;-ms-flex:1;flex:1}nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{-webkit-box-pack:end;-ms-flex-pack:end;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--space-xs);justify-content:flex-end}a[data-astro-cid-3ef6ksr2]{font-family:var(--font-display);font-size:var(--step--1-5);font-weight:700;text-decoration:none;text-transform:uppercase}footer[data-astro-cid-sz7xmlte]{-webkit-box-pack:justify;-ms-flex-pack:justify;border-top:1px solid var(--tag-bg-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;margin-top:60px;padding:2rem 0 2.5rem;position:relative}footer[data-astro-cid-sz7xmlte] svg{left:0;pointer-events:none;position:absolute;right:0;top:-58px;width:100%}nav[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--space-xs)}nav[data-astro-cid-sz7xmlte].socials ul[data-astro-cid-sz7xmlte]{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}a[data-astro-cid-sz7xmlte]{font-family:var(--font-display);font-size:var(--step--1-5);font-weight:700;text-decoration:none;text-transform:uppercase}@media screen and (max-width:640px){footer[data-astro-cid-sz7xmlte]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-top:4rem}nav[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte],nav[data-astro-cid-sz7xmlte].socials ul[data-astro-cid-sz7xmlte]{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-top:var(--space-2xs)}}main[data-astro-cid-kqty5qjk]{-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1}:root{--primary-hue:54;--secondary-hue:90;--body-bg-color:#141414;--card-bg-color:#1f1f1f;--tag-bg-color:#2e2e2e;--dots-bg-color:hsla(0,0%,40%,.35);--code-bg-color-1:hsla(0,0%,8%,.9);--code-bg-color-2:hsla(0,0%,6%,.85);--code-lang-bg-color:hsla(0,0%,8%,.8);--code-num-color:grey;--code-highlight-color:hsla(var(--secondary-hue),20%,10%,.75);--code-scrollbar-color:rgba(41,41,41,.5);--code-scrollbar-hover-color:rgba(51,51,51,.5);--code-scrollbar-thumb-color:rgba(56,56,56,.8);--accent-primary-color:hsl(var(--primary-hue),78%,48%);--accent-secondary-color:hsl(var(--secondary-hue),91%,63%);--text-color:hsl(var(--primary-hue),78%,95%);--hamd-primary-color:hsl(var(--primary-hue),78%,90%);--hamd-secondary-color:hsl(var(--secondary-hue),78%,90%);--shadow-color:hsla(var(--primary-hue),78%,48%,.25);--card-hover-color-1:hsla(var(--primary-hue),78%,48%,.2);--card-hover-color-2:hsla(var(--secondary-hue),91%,63%,.4);--underline-color:hsla(var(--primary-hue),78%,48%,.5);--selection-color:hsla(var(--primary-hue),78%,48%,.25);--space-3xs:clamp(.25rem, calc(.23rem + .11vw) ,.31rem);--space-2xs:clamp(.5rem, calc(.45rem + .23vw) ,.63rem);--space-xs:clamp(.75rem, calc(.68rem + .34vw) ,.94rem);--space-s:clamp(1rem, calc(.91rem + .45vw) ,1.25rem);--space-m:clamp(1.5rem, calc(1.36rem + .68vw) ,1.88rem);--space-l:clamp(2rem, calc(1.82rem + .91vw) ,2.5rem);--space-xl:clamp(3rem, calc(2.73rem + 1.36vw) ,3.75rem);--space-2xl:clamp(4rem, calc(3.64rem + 1.82vw) ,5rem);--space-3xl:clamp(6rem, calc(5.45rem + 2.73vw) ,7.5rem);--space-4xl:clamp(14rem, calc(12.73rem + 6.36vw) ,17.5rem);--space-5xl:clamp(16rem, calc(14.55rem + 7.27vw) ,20rem);--space-3xs-2xs:clamp(.25rem, calc(.11rem + .68vw) ,.63rem);--space-2xs-xs:clamp(.5rem, calc(.34rem + .8vw) ,.94rem);--space-xs-s:clamp(.75rem, calc(.57rem + .91vw) ,1.25rem);--space-s-m:clamp(1rem, calc(.68rem + 1.59vw) ,1.88rem);--space-m-l:clamp(1.5rem, calc(1.14rem + 1.82vw) ,2.5rem);--space-l-xl:clamp(2rem, calc(1.36rem + 3.18vw) ,3.75rem);--space-xl-2xl:clamp(3rem, calc(2.27rem + 3.64vw) ,5rem);--space-2xl-3xl:clamp(4rem, calc(2.73rem + 6.36vw) ,7.5rem);--space-3xl-4xl:clamp(6rem, calc(1.82rem + 20.91vw) ,17.5rem);--space-4xl-5xl:clamp(14rem, calc(11.82rem + 10.91vw) ,20rem);--space-s-l:clamp(1rem, calc(.45rem + 2.73vw) ,2.5rem);--space-l-2xl:clamp(2rem, calc(.91rem + 5.45vw) ,5rem);--prose-gutter:2.5rem;--step--2:clamp(.69rem, calc(.66rem + .19vw) ,.8rem);--step--1:clamp(.83rem, calc(.77rem + .3vw) ,1rem);--step-0:clamp(1rem, calc(.91rem + .45vw) ,1.25rem);--step-1:clamp(1.2rem, calc(1.07rem + .66vw) ,1.56rem);--step-2:clamp(1.44rem, calc(1.25rem + .93vw) ,1.95rem);--step-3:clamp(1.73rem, calc(1.47rem + 1.3vw) ,2.44rem);--step-4:clamp(2.07rem, calc(1.72rem + 1.78vw) ,3.05rem);--step-5:clamp(2.49rem, calc(2.01rem + 2.41vw) ,3.82rem);--step-6:clamp(2.99rem, calc(2.34rem + 3.24vw) ,4.77rem);--step-7:clamp(3.58rem, calc(2.72rem + 4.32vw) ,5.96rem);--step--1-5:clamp(.76rem, calc(.71rem + .24vw) ,.89rem);--step--0-5:clamp(.91rem, calc(.84rem + .37vw) ,1.12rem);--step-1-5:clamp(1.31rem, calc(1.16rem + .78vw) ,1.75rem);--font-family:system-ui,sans-serif;--font-display:"PolySans",sans-serif;--font-body:"Inter",sans-serif;--font-mono:"SFMono",sans-serif}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}*{margin:0}html{height:100%}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;line-height:1.5;min-height:100%;text-rendering:optimizeSpeed}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}#__next,#root,body{isolation:isolate}ul[role=list]{list-style:none;margin:0;padding:0}button{border:0}body{font-family:var(--font-body,var(--font-family));line-height:1.7}.h6,body,h6{font-size:var(--step-0)}.h5,h5{font-size:var(--step-1)}.h4,h4{font-size:var(--step-2)}.h3,h3{font-size:var(--step-3)}.h2,h2{font-size:var(--step-4)}.h1,h1{font-size:var(--step-5)}.h0{font-size:var(--step-6)}.text-small,small{font-size:var(--step--1)}h1,h2,h3{font-weight:800}h1,h2,h3,h4,h5{font-family:var(--font-display);line-height:1.1}code{font-family:var(--font-mono)}@font-face{font-display:swap;font-family:PolySans;font-style:normal;font-weight:400;src:url(/fonts/PolySans/PolySansTrial-Bulky.otf) format("opentype")}@font-face{font-display:swap;font-family:PolySans;font-style:italic;font-weight:400;src:url(/fonts/PolySans/PolySansTrial-BulkyItalic.otf) format("opentype")}@font-face{font-named-instance:"Regular";font-display:swap;font-family:Inter;font-style:normal;font-weight:100 900;src:url(/fonts/Inter/Inter-roman.var.woff2?v=3.19) format("woff2")}@font-face{font-named-instance:"Italic";font-display:swap;font-family:Inter;font-style:italic;font-weight:100 900;src:url(/fonts/Inter/Inter-italic.var.woff2?v=3.19) format("woff2")}@font-face{font-display:swap;font-family:SFMono;font-style:normal;font-weight:400;src:url(/fonts/SFMono/SFMono-Regular.woff2) format("woff2"),url(/fonts/SFMono/SFMono-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:SFMono;font-style:italic;font-weight:400;src:url(/fonts/SFMono/SFMono-RegularItalic.woff2) format("woff2"),url(/fonts/SFMono/SFMono-RegularItalic.woff) format("woff")}@font-face{font-display:swap;font-family:SFMono;font-style:normal;font-weight:500;src:url(/fonts/SFMono/SFMono-Medium.woff2) format("woff2"),url(/fonts/SFMono/SFMono-Medium.woff) format("woff")}@font-face{font-display:swap;font-family:SFMono;font-style:italic;font-weight:500;src:url(/fonts/SFMono/SFMono-MediumItalic.woff2) format("woff2"),url(/fonts/SFMono/SFMono-MediumItalic.woff) format("woff")}@font-face{font-display:swap;font-family:SFMono;font-style:normal;font-weight:600;src:url(/fonts/SFMono/SFMono-Semibold.woff2) format("woff2"),url(/fonts/SFMono/SFMono-Semibold.woff) format("woff")}@font-face{font-display:swap;font-family:SFMono;font-style:italic;font-weight:600;src:url(/fonts/SFMono/SFMono-SemiboldItalic.woff2) format("woff2"),url(/fonts/SFMono/SFMono-SemiboldItalic.woff) format("woff")}:root{accent-color:var(--accent-primary-color)}::-moz-selection{background:var(--selection-color)}::selection{background:var(--selection-color)}body{-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--body-bg-color);color:var(--text-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow-x:hidden;position:relative}a{color:currentColor}a:not(.article):focus,a:not(.article):hover{text-decoration-color:var(--underline-color);text-decoration-line:underline;text-decoration-thickness:.3ex;text-underline-offset:.3ex}#main>div>section:first-child{border-bottom:1px solid var(--tag-bg-color);margin-bottom:var(--space-s-m);padding:var(--space-l-xl) 0 var(--space-s)}#main>div>section:last-child{padding:var(--space-s-m) 0 var(--space-l-xl)}#main>div>section:not(:first-child):not(:last-child){padding:var(--space-s-m) 0}.tags{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--space-xs)}.cards{display:grid;gap:var(--space-m) var(--space-s);grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr))}section .cards{container-type:inline-size}@supports not (contain:inline-size){.cards .placeholder{display:none}}@container (max-width: 700px){.cards .placeholder:nth-child(n+1)~.placeholder,.cards .placeholder:nth-child(n+2){display:none}}@container (min-width: 700px) and (max-width: 1060px){.cards .placeholder:nth-child(2n+3),.cards .placeholder:nth-child(2n+3)~.placeholder{display:none}}@container (min-width: 1060px){.cards .placeholder:nth-child(3n+4),.cards .placeholder:nth-child(3n+4)~.placeholder{display:none}}.flow>*+*{-webkit-margin-before:var(--flow-space,1em);margin-block-start:var(--flow-space,1em)}.content-container{margin-inline:auto;max-width:85vw;width:min(90vw,75rem)}.gradient-text{-webkit-background-clip:text;background-clip:text;background-color:var(--accent-primary-color);background-image:-webkit-gradient(linear,left top,right top,from(var(--accent-primary-color)),to(var(--accent-secondary-color)));background-image:linear-gradient(to right,var(--accent-primary-color),var(--accent-secondary-color));color:transparent;font-family:var(--font-display)}.gradient-text svg{color:var(--accent-secondary-color)}.faded-text span{-webkit-background-clip:text;background-clip:text;background-image:-webkit-gradient(linear,left top,left bottom,from(var(--text-color)),to(hsl(var(--primary-hue),15%,40%)));background-image:linear-gradient(to bottom,var(--text-color),hsl(var(--primary-hue),15%,40%));color:transparent;padding-bottom:1px}.giscus{margin-block:var(--space-l-xl)}.prose>*{grid-column:content;max-width:100%}.prose :is(pre,blockquote,figure,div){grid-column:gutter}.prose :is(h2,h3,h4,h5,h6){justify-self:start}.prose *+:is(ul,ol){--flow-space:var(--space-xs)}.prose :is(ul,ol)+*{--flow-space:var(--space-m)}.prose :is(h2,h3,h4) *{--flow-space:var(--space-s)}.prose :is(blockquote,blockquote+*),.prose :is(div,div+*),.prose :is(pre,pre+*,figure,figure+*,h2,h3,h4){--flow-space:var(--space-m-l)}.prose :is(hr,hr+*):is(hr,hr+*){--flow-space:var(--space-l-xl)}.prose :is(h2,h3,h4,h5,h6){background-attachment:fixed;-webkit-background-clip:text;background-clip:text;background-color:var(--accent-primary-color);background-image:linear-gradient(210deg,var(--accent-primary-color),var(--accent-secondary-color));color:transparent;line-height:1.3}@-moz-document url-prefix(){.prose :is(h2,h3,h4,h5,h6){background-attachment:local}}.prose li>code,.prose p>code{background-attachment:fixed;-webkit-background-clip:text;background-clip:text;background-color:var(--accent-primary-color);background-image:linear-gradient(210deg,var(--accent-primary-color),var(--accent-secondary-color));color:transparent;display:inline-block}@-moz-document url-prefix(){.prose li>code,.prose p>code{background-attachment:local}}.prose li>code:after,.prose li>code:before,.prose p>code:after,.prose p>code:before{content:"`"}.prose [data-rehype-pretty-code-title]{background-color:var(--code-bg-color-2);border-top-left-radius:.25rem;border-top-right-radius:.25rem;font-size:var(--step--1);padding-block:var(--space-3xs);padding-inline:var(--space-m);position:relative}.prose [data-rehype-pretty-code-title]:before{background-attachment:fixed;background-image:linear-gradient(210deg,var(--accent-primary-color),var(--accent-secondary-color));border-top-left-radius:.375rem;border-top-right-radius:.375rem;content:"";inset:0;position:absolute;z-index:-1}.prose [data-rehype-pretty-code-title]+pre,.prose [data-rehype-pretty-code-title]+pre code{border-top-left-radius:0;border-top-right-radius:0}.prose [data-rehype-pretty-code-title]+pre:before{display:none}.prose pre{background-attachment:fixed;background-clip:padding-box;background-image:linear-gradient(210deg,var(--accent-primary-color),var(--accent-secondary-color));border-radius:.375rem;position:relative}.prose pre:not([data-language=""]):before{background-color:var(--code-lang-bg-color);border-radius:.25rem;content:attr(data-language);font-size:.75em;padding-inline:.5rem;position:absolute;right:.4rem;top:.4rem}.prose pre[data-language=bash] [data-line]:before,.prose pre[data-language=bash]:before{display:none}.prose pre:not([data-language]) code{padding-inline:var(--space-m-l)}.prose pre code{background-image:-webkit-gradient(linear,left top,right top,color-stop(60%,var(--code-bg-color-1)),to(var(--code-bg-color-2)));background-image:linear-gradient(to right,var(--code-bg-color-1) 60%,var(--code-bg-color-2));border-radius:.25rem;counter-reset:line;display:grid;font-size:.8em;font-weight:inherit;line-height:inherit;max-width:100%;overflow-x:auto;padding-block:var(--space-s)}.prose pre code [data-line]:before{color:var(--code-num-color);content:counter(line);counter-increment:line;display:inline-block;margin-right:2rem;text-align:right;width:1rem}.prose pre code[data-line-numbers-max-digits="2"]>[data-line]:before{width:2rem}.prose pre code[data-line-numbers-max-digits="3"]>[data-line]:before{width:3rem}.prose pre code [data-line]{padding-inline:var(--space-m-l)}.prose pre code .highlighted{background-color:var(--code-highlight-color);position:relative}.prose pre code .highlighted:after{background-attachment:fixed;background-image:linear-gradient(210deg,var(--accent-primary-color),var(--accent-secondary-color));content:"";height:100%;left:0;opacity:.5;position:absolute;top:0;width:3px}.prose pre code::-webkit-scrollbar{background-color:var(--code-scrollbar-color);border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;cursor:pointer;height:.5rem}.prose pre code:hover::-webkit-scrollbar{background-color:var(--code-scrollbar-hover-color);height:.5rem}.prose pre code::-webkit-scrollbar-thumb{border-radius:.25rem;cursor:pointer}.prose pre code:hover::-webkit-scrollbar-thumb{background-color:var(--code-scrollbar-thumb-color);cursor:pointer}.prose blockquote{background-attachment:fixed;background-image:linear-gradient(210deg,var(--accent-primary-color),var(--accent-secondary-color));background-origin:content-box;border:2px solid transparent;border-radius:.25rem;font-family:var(--font-display);font-size:var(--step-2);font-style:italic;line-height:1.1}.prose blockquote>*{background-color:var(--body-bg-color);border-radius:.25rem}.prose blockquote>p{padding:var(--space-m) var(--space-m-l)}.prose ol,.prose ul{-webkit-padding-start:1em;padding-inline-start:1em}.prose li+li{-webkit-margin-before:var(--space-2xs);margin-block-start:var(--space-2xs)}.prose figure img{border-radius:.25rem;margin-inline:auto}.prose figure img+figcaption{-webkit-margin-before:var(--space-3xs);font-size:var(--step--0-5);margin-block-start:var(--space-3xs);text-align:center}.prose .iframe-container{overflow:hidden;padding-top:56.25%;position:relative}.prose .iframe-container iframe{border-radius:.25rem;height:100%;left:0;position:absolute;top:0;width:100%}#skip-link{background-color:var(--body-bg-color);left:50%;position:fixed;top:-30em;-webkit-transform:translateX(-50%);transform:translate(-50%);z-index:1}#skip-link:focus,#skip-link:focus-visible{top:0}.bg-noise{inset:0;position:absolute}.bg-dots{background:linear-gradient(90deg,var(--body-bg-color) 7px,transparent 1%) 50%,linear-gradient(var(--body-bg-color) 7px,transparent 1%) 50%,var(--dots-bg-color);background-size:9px 9px;height:100%;opacity:.4;top:0;z-index:-1}.bg-dots,.bg-halo{left:0;margin-inline:auto;position:absolute;right:0;width:min(90rem,100%)}.bg-halo{background:-webkit-gradient(linear,left top,left bottom,color-stop(25.8%,var(--accent-primary-color)),to(transparent));background:linear-gradient(180deg,var(--accent-primary-color) 25.8%,transparent 100%);border-radius:50%;-webkit-filter:blur(200px);filter:blur(200px);height:400px;mix-blend-mode:color-dodge;top:-300px;-webkit-transform:translateZ(0);transform:translateZ(0)}
