@font-face{font-family:Inter;src:url(/fonts/Inter-VariableFont_opsz,wght-subset.woff2) format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:Inter;src:url(/fonts/Inter-Italic-VariableFont_opsz,wght-subset.woff2) format("woff2");font-display:swap;font-weight:100 900;font-style:italic}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-VariableFont_wght.ttf) format("truetype");font-display:swap;font-weight:100 800;font-style:normal}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Italic-VariableFont_wght.ttf) format("truetype");font-display:swap;font-weight:100 800;font-style:italic}:root{--font-primary: "Inter";--font-mono: "JetBrains Mono";--width-container: 45.25rem;--width-error: 30rem;--text-xs: .875rem;--text-sm: .938rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.375rem;--text-3xl: 1.5rem;--text-4xl: 2rem;--text-5xl: 2.5rem;--text-6xl: 3.5rem;--leading-body: 1.5;--leading-heading: 1.4;--radius-surface: .625rem;--radius-on-surface: .438rem;--text: #fafafa;--bg: radial-gradient(circle at 50% -250%, #374151, #111827, #000);--surface: #272732;--on-surface: #525264;--on-surface-content: #3f3f4d;--article-link: #66b3ff;--article-link-hover: #99ccff;--article-link-visited-hover: #cf9fff;--article-link-active: #3399ff;--article-link-visited: #bb86fc;--article-link-visited-active: #a64dff;--px-0: 0px;--px-1: 1px;--px-2: .125rem;--px-4: .25rem;--px-6: .375rem;--px-8: .5rem;--px-10: .625rem;--px-12: .75rem;--px-14: .875rem;--px-16: 1rem;--px-18: 1.125rem;--px-20: 1.25rem;--px-24: 1.5rem;--px-28: 1.75rem;--px-32: 2rem;--px-36: 2.25rem;--px-40: 2.5rem;--px-44: 2.75rem;--px-48: 3rem;--px-56: 3.5rem;--px-64: 4rem;--px-80: 5rem;--px-96: 6rem;--px-112: 7rem;--px-128: 8rem;--px-144: 9rem;--px-160: 10rem;--px-176: 11rem;--px-192: 12rem;--px-208: 13rem;--px-224: 14rem;--px-240: 15rem;--px-256: 16rem;--px-288: 18rem;--px-320: 20rem;--px-384: 24rem}*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:var(--leading-body);-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--font-primary),Helvetica,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var( --default-font-variation-settings, normal );-webkit-tap-highlight-color:transparent;padding-left:calc(100vw - 100%)}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono),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 );font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse;font-family:var(--font-mono),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 );font-size:1em}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{color:var(--text);background-image:var(--bg);background-size:cover;background-repeat:no-repeat;background-attachment:fixed}body{font-size:var(--px-18);padding-inline:var(--px-24)}main{max-width:var(--width-container);margin-inline:auto}.truncate-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.btn{display:flex;align-items:center;justify-content:center;cursor:pointer;padding:var(--px-8) var(--px-12);border:2px solid var(--on-surface);border-radius:var(--px-8);transition:background-color .3s ease}@media (hover: hover) and (pointer: fine){.btn:hover{background-color:var(--surface)}}.btn:active{background-color:var(--on-surface)}.styled-link{color:var(--article-link);transition:all .2s ease;text-decoration:underline;text-decoration-color:transparent;-webkit-text-decoration-color:transparent;-moz-text-decoration-color:transparent}@media (hover: hover) and (pointer: fine){.styled-link:hover,.styled-link:focus{color:var(--article-link-hover);text-decoration-color:currentColor;-webkit-text-decoration-color:currentColor;-moz-text-decoration-color:currentColor}}@media (hover: none){.styled-link:hover{color:var(--article-link);text-decoration-color:transparent}}.styled-link:active{color:var(--article-link-active)}.socials-list{display:flex;gap:var(--px-4)}.table-wrapper{width:100%;margin-bottom:var(--px-24);font-size:var(--px-16);overflow-x:auto;-webkit-overflow-scrolling:touch}.expressive-code{margin-bottom:var(--px-20)}.article{font-size:var(--text-lg)}.article :where(h1,h2,h3,h4,h5,h6){margin:var(--px-40) 0 var(--px-24);font-weight:650;line-height:var(--leading-heading);scroll-margin-top:4em}.article h1{font-size:clamp(calc(var(--text-lg) * 1.75),2.5vw + var(--text-lg),calc(var(--text-lg) * 2.22222))}.article h2{font-size:clamp(var(--text-lg),2vw + var(--text-lg),calc(var(--text-lg) * 1.5))}.article h3{font-size:clamp(var(--text-lg),1.5vw + var(--text-lg),calc(var(--text-lg) * 1.25))}.article :where(h4,h5,h6){font-size:clamp(var(--text-lg),1vw + var(--text-lg),calc(var(--text-lg) * 1.1))}.article p{margin-bottom:var(--px-20)}.article a{color:var(--article-link);transition:all .2s ease;text-decoration:underline;text-decoration-color:transparent;-webkit-text-decoration-color:transparent;-moz-text-decoration-color:transparent}@media (hover: hover) and (pointer: fine){.article a:hover,.article a:focus{color:var(--article-link-hover);text-decoration-color:currentColor;-webkit-text-decoration-color:currentColor;-moz-text-decoration-color:currentColor}.article a:visited:hover,.article a:visited:focus{color:var(--article-link-visited-hover)}}@media (hover: none){.article a:hover{color:var(--article-link);text-decoration-color:transparent}}.article a:active{color:var(--article-link-active)}.article a:visited{color:var(--article-link-visited)}.article a:visited:active{color:var(--article-link-visited-active)}.article blockquote{margin:var(--px-16) 0;padding:0 var(--px-16);border-left:var(--px-4) solid;color:#9393a5}.article blockquote p{padding:0;margin:0}.article ul,.article ol{margin-top:0;margin-bottom:0;padding-left:var(--px-36);list-style:revert}@media (max-width: 24.125rem){.article ul,.article ol{padding-left:var(--px-32)}}.article ol ol,.article ul ol{list-style-type:lower-roman}.article ul ul ol,.article ul ol ol,.article ol ul ol,.article ol ol ol,.article ol[type="a s"]{list-style-type:lower-alpha}.article ol[type="A s"]{list-style-type:upper-alpha}.article ol[type="i s"]{list-style-type:lower-roman}.article ol[type="I s"]{list-style-type:upper-roman}.article ol[type="1"]{list-style-type:decimal}.article div>ol:not([type]){list-style-type:decimal}.article ul ul,.article ul ol,.article ol ol,.article ol ul{padding-left:var(--px-24);margin-top:var(--px-8);margin-bottom:0}.article li+li{margin-top:var(--px-12)}.article li>p{margin-top:1rem;margin-bottom:0}.article li:last-child{margin-bottom:var(--px-20)}.article table{width:100%;font-size:1em}.article :where(th,td){padding:var(--px-8);text-align:left}.article th,.article tr{border-bottom:1px solid var(--on-surface)}.article tr:last-child{border-bottom:none}.article img{max-width:100%;margin:var(--px-16) 0;border-radius:var(--radius-on-surface)}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
