@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";html{box-sizing:border-box;scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}html body *{animation-duration:0s!important;animation-delay:0s!important}}*,*:after,*:before{box-sizing:inherit}blockquote,body,figure,h1,h2,h3,h4,h5,h6,hr,li,ol,p,pre,ul{margin:0;padding:0}ul:where([class]){list-style:none}button,input,select,textarea{color:inherit;letter-spacing:inherit;font:inherit}input[type=text],textarea{width:100%}fieldset{padding:0;border:none}legend{margin-bottom:.5rem;max-width:100%}button,input,textarea{border:1px solid gray}button{padding:.75em 1em;border-radius:0;background-color:transparent;line-height:1}button *{pointer-events:none}button:hover{cursor:pointer}embed,iframe,img,object,svg,video{display:block;max-width:100%}table{width:100%;table-layout:fixed}[hidden]{display:none!important}noscript{display:block;margin-top:1em;margin-bottom:1em}[tabindex="-1"]{outline:none!important;box-shadow:none!important}:root{--primary-100: hsl(270, 100%, 90%);--primary-200: hsl(270, 95%, 80%);--primary-300: hsl(270, 90%, 70%);--primary-400: hsl(270, 85%, 60%);--primary-500: hsl(270, 80%, 50%);--secondary-100: hsl(185, 100%, 85%);--secondary-200: hsl(185, 95%, 70%);--secondary-300: hsl(185, 90%, 55%);--secondary-400: hsl(185, 85%, 45%);--secondary-500: hsl(185, 80%, 35%);--terminal-100: hsl(120, 100%, 85%);--terminal-200: hsl(120, 100%, 70%);--terminal-300: hsl(120, 100%, 55%);--terminal-400: hsl(120, 90%, 45%);--terminal-500: hsl(120, 85%, 35%);--neutral-100: hsl(220, 15%, 98%);--neutral-200: hsl(220, 12%, 95%);--neutral-300: hsl(220, 10%, 90%);--neutral-400: hsl(220, 10%, 65%);--neutral-500: hsl(220, 10%, 50%);--neutral-600: hsl(220, 12%, 35%);--neutral-700: hsl(250, 20%, 18%);--neutral-800: hsl(255, 25%, 12%);--neutral-900: hsl(260, 30%, 8%);--dark-100: hsl(265, 50%, 6%);--pink-accent-100: hsl(320, 100%, 85%);--pink-accent-200: hsl(320, 95%, 72%);--pink-accent-300: hsl(320, 90%, 60%);--pink-accent-400: hsl(320, 85%, 50%);--pink-accent-500: hsl(320, 80%, 40%);--callout-note: hsl(270, 90%, 65%);--callout-warning: hsl(35, 100%, 55%);--callout-tip: hsl(120, 100%, 45%);--callout-important: hsl(280, 100%, 60%);--callout-info: hsl(185, 95%, 50%);--callout-danger: hsl(340, 100%, 55%);--callout-success: hsl(140, 85%, 40%);--callout-example: hsl(195, 85%, 55%);--callout-quote: hsl(260, 40%, 55%);--callout-flag: hsl(320, 100%, 60%)}@font-face{font-family:Open Sans;src:local("Open Sans ExtraBold"),local("OpenSans-ExtraBold"),url(/fonts/OpenSans-ExtraBold.woff2) format("woff2"),url(/fonts/OpenSans-ExtraBold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Open Sans;src:local("Open Sans Bold"),local("OpenSans-Bold"),url(/fonts/OpenSans-Bold.woff2) format("woff2"),url(/fonts/OpenSans-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Open Sans;src:local("Open Sans Italic"),local("OpenSans-Italic"),url(/fonts/OpenSans-Italic.woff2) format("woff2"),url(/fonts/OpenSans-Italic.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Open Sans;src:local("Open Sans Regular"),local("OpenSans-Regular"),url(/fonts/OpenSans-Regular.woff2) format("woff2"),url(/fonts/OpenSans-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}body{font-family:var(--font-family-default);text-shadow:rgba(0,0,0,.01) 0 0 1px;text-rendering:optimizeLegibility;font-synthesis:none;font-size:1rem;line-height:1.5rem;-webkit-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body a:not(.button){color:var(--action-color);text-decoration:underline}body a:not(.button):visited{color:var(--action-color)}body a:not(.button):hover,body a:not(.button):focus{color:var(--action-color-state);text-decoration:none}body :where(main) a{word-wrap:break-word;word-break:break-word}body :where(h1,h2){font-family:var(--font-family-special)}body h1,body h2{font-weight:800}body h3,body h4,body h5,body h6{font-weight:600}body h1{font-size:2.25rem;line-height:3.375rem}@media (min-width: 48em){body h1{font-size:3rem;line-height:3.625rem}}body h2{font-size:1.875rem;line-height:2.8125rem}@media (min-width: 48em){body h2{font-size:2.25rem;line-height:3.375rem}}body h3{font-size:1.5rem;line-height:2.25rem}@media (min-width: 48em){body h3{font-size:1.875rem;line-height:2.8125rem}}body h4{font-size:1.25rem;line-height:1.875rem}@media (min-width: 48em){body h4{font-size:1.5rem;line-height:2.25rem}}body h5{font-size:1.125rem;line-height:1.6875rem}@media (min-width: 48em){body h5{font-size:1.25rem;line-height:1.875rem}}body h6{font-size:1rem;line-height:1.5rem}@media (min-width: 48em){body h6{font-size:1.125rem;line-height:1.6875rem}}ul:not([class]),ol:not([class]){margin-left:1rem}ul:not([class]) ul,ul:not([class]) ol,ol:not([class]) ul,ol:not([class]) ol{padding:.5rem 1rem 0}ul:not([class]) li,ol:not([class]) li{margin-bottom:.5rem}ul:not([class])>li::marker{display:block;color:var(--primary-800)}ol.incremented,ol.incremented ol{counter-reset:item}ol.incremented ol,ol.incremented ul{margin:.75rem 0 0 1rem}ol.incremented li{display:block;margin-bottom:.5rem}@media (min-width: 48em){ol.incremented li{margin-bottom:.75rem}}ol.incremented li:before{content:counters(item,".") ". ";counter-increment:item}ol.incremented li:last-child{margin-bottom:0}ol.incremented li p{display:inline}ol.incremented ul li:before{content:""}.container{margin:0 auto;padding:0 1rem;max-width:100%}@media (min-width: 48em){.container{padding:0 2rem}}@media (min-width: 75em){.container{padding:0 1rem;max-width:1200px}}.container.stretch{max-width:100%}.button{display:inline-block;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;text-align:center;border-radius:6px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;font-family:JetBrains Mono,SF Mono,Consolas,monospace;letter-spacing:.025em;color:#fff;background:linear-gradient(135deg,var(--primary-400),var(--primary-500));border:2px solid var(--primary-400);box-shadow:0 4px 15px #9942f04d}.button:hover,.button:focus{transform:translateY(-2px);box-shadow:0 6px 20px #9942f066,0 0 30px #9942f033;text-decoration:none}.button:visited{color:#fff}.button.color-secondary{background:linear-gradient(135deg,var(--secondary-300),var(--secondary-400));border-color:var(--secondary-300);box-shadow:0 4px 15px #06e4f94d}.button.color-secondary:hover,.button.color-secondary:focus{box-shadow:0 6px 20px #06e4f966,0 0 30px #06e4f933}.button.color-accent{background:linear-gradient(135deg,var(--pink-accent-300),var(--pink-accent-400));border-color:var(--pink-accent-300);box-shadow:0 4px 15px #ff33bb4d}.button.color-accent:hover,.button.color-accent:focus{box-shadow:0 6px 20px #f3b6,0 0 30px #f3b3}.button.color-neutral{background:linear-gradient(135deg,var(--neutral-500),var(--neutral-600));border-color:var(--neutral-500);box-shadow:0 4px 15px #0003}.button.color-neutral:hover,.button.color-neutral:focus{box-shadow:0 6px 20px #0000004d}.button.color-info{background:linear-gradient(135deg,hsl(185,95%,50%),hsl(185,85%,40%));border-color:#06e4f9;box-shadow:0 4px 15px #06e4f94d}.button.color-info:hover,.button.color-info:focus{box-shadow:0 6px 20px #06e4f966,0 0 30px #06e4f933}.button.color-success{background:linear-gradient(135deg,var(--terminal-300),var(--terminal-400));border-color:var(--terminal-300);box-shadow:0 4px 15px #00e6004d}.button.color-success:hover,.button.color-success:focus{box-shadow:0 6px 20px #00e60066,0 0 30px #00e60033}.button.color-warning{color:var(--neutral-900);background:linear-gradient(135deg,hsl(35,100%,55%),hsl(35,90%,45%));border-color:#ff9f1a;box-shadow:0 4px 15px #ff9f1a4d}.button.color-warning:hover,.button.color-warning:focus{box-shadow:0 6px 20px #ff9f1a66,0 0 30px #ff9f1a33}.button.color-error{background:linear-gradient(135deg,hsl(340,100%,55%),hsl(340,90%,45%));border-color:#ff1a66;box-shadow:0 4px 15px #ff1a664d}.button.color-error:hover,.button.color-error:focus{box-shadow:0 6px 20px #ff1a6666,0 0 30px #ff1a6633}.button.size-tiny{padding:.25rem .5rem;font-size:.75rem;line-height:1.125rem}.button.size-small{padding:.375rem .75rem;font-size:.875rem;line-height:1.3125rem}.button.size-large{padding:.875rem 1.5rem;font-size:1.125rem;line-height:1.6875rem}.button.size-huge{padding:1rem 2rem;font-size:1.25rem;line-height:1.875rem}.button.behavior-full{display:block;width:100%}.button.type-secondary{background:transparent;color:var(--primary-400)}.button.type-secondary:hover,.button.type-secondary:focus{background:hsla(270,85%,60%,.1)}.button.type-secondary.color-secondary{color:var(--secondary-300)}.button.type-secondary.color-secondary:hover,.button.type-secondary.color-secondary:focus{background:hsla(185,95%,50%,.1)}.button.type-secondary.color-accent{color:var(--pink-accent-300)}.button.type-secondary.color-accent:hover,.button.type-secondary.color-accent:focus{background:hsla(320,100%,60%,.1)}.button.type-secondary.color-success{color:var(--terminal-300)}.button.type-secondary.color-success:hover,.button.type-secondary.color-success:focus{background:hsla(120,100%,45%,.1)}.button.type-secondary.color-error{color:#ff1a66}.button.type-secondary.color-error:hover,.button.type-secondary.color-error:focus{background:hsla(340,100%,55%,.1)}.button.has-icon{display:flex;align-items:center;gap:.5rem}.button.has-icon [astro-icon]{width:30px}.darkmode .button.type-secondary{color:var(--primary-300)}.darkmode .button.type-secondary.color-secondary{color:var(--secondary-200)}.darkmode .button.type-secondary.color-accent{color:var(--pink-accent-200)}.darkmode .button.type-secondary.color-success{color:var(--terminal-200)}.space-content>*+*,.space-content>dl>*+*{margin-top:1.5rem;margin-bottom:0}.space-content>h2{margin-top:3rem}@media (min-width: 75em){.space-content>h2{margin-top:4rem}}.space-content>h3{margin-top:2rem}@media (min-width: 75em){.space-content>h3{margin-top:3rem}}.space-content>h4{margin-top:1.5rem}@media (min-width: 75em){.space-content>h4{margin-top:2rem}}.space-content>h5{margin-top:1rem}@media (min-width: 75em){.space-content>h5{margin-top:1.5rem}}.space-content>h6{margin-top:1rem}@media (min-width: 75em){.space-content>h6{margin-top:1.5rem}}.space-content>*:first-child{margin-top:0}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;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}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}blockquote{margin-top:1rem;margin-bottom:1rem;border-radius:.5rem;border-left-width:4px;padding:1rem;margin-left:0;margin-right:0;color:var(--font-color)}blockquote.info{background:linear-gradient(135deg,hsla(185,95%,50%,.1),hsla(185,95%,50%,.04));border-color:#06e4f9;color:var(--font-color)}blockquote.warning{background:linear-gradient(135deg,hsla(35,100%,55%,.1),hsla(35,100%,55%,.04));border-color:#ff9f1a;color:var(--font-color)}blockquote.danger{background:linear-gradient(135deg,hsla(340,100%,55%,.1),hsla(340,100%,55%,.04));border-color:#ff1a66;color:var(--font-color)}blockquote.tip{background:linear-gradient(135deg,hsla(120,100%,45%,.08),hsla(120,100%,45%,.03));border-color:#00e600;color:var(--font-color)}blockquote.note{background:linear-gradient(135deg,hsla(270,90%,65%,.1),hsla(270,90%,65%,.04));border-color:#a655f6;color:var(--font-color)}blockquote.flag{background:linear-gradient(135deg,hsla(320,100%,60%,.12),hsla(320,100%,60%,.05));border-color:#f3b;color:var(--font-color)}.flag-toggle{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--pink-accent-400)}.flag-toggle:hover{color:var(--pink-accent-300)}.flag-content.show{display:block}.prose h3,.prose h4,.prose h5,.prose h6{display:flex;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;gap:.5rem}.prose h3:hover,.prose h4:hover,.prose h5:hover,.prose h6:hover{color:var(--primary-400)}.prose h3:before,.prose h4:before,.prose h5:before,.prose h6:before{content:"›";font-size:1.125rem;line-height:1.75rem;font-weight:700;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;color:var(--primary-400);transform:rotate(90deg)}.prose h3.collapsed:before,.prose h4.collapsed:before,.prose h5.collapsed:before,.prose h6.collapsed:before{transform:rotate(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.my-12{margin-top:3rem;margin-bottom:3rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mt-12{margin-top:3rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.py-8{padding-top:2rem;padding-bottom:2rem}.text-2xl{font-size:1.5rem;line-height:2rem}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.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)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.blog-content .prose{max-width:75ch;margin:0 auto;color:var(--font-color);line-height:1.75}.blog-content .prose h2{color:var(--font-color);margin-top:2.5em;margin-bottom:1em;font-weight:700;font-size:1.75rem;border-bottom:2px solid var(--primary-400);padding-bottom:.5rem;transition:all .2s ease}.blog-content .prose h2:hover{color:var(--primary-400)}.blog-content .prose h3{color:var(--font-color);margin-top:2em;margin-bottom:.75em;font-weight:600;font-size:1.375rem}.blog-content .prose h4{color:var(--font-color);margin-top:1.5em;margin-bottom:.5em;font-weight:600;font-size:1.125rem}.blog-content .prose p{margin-bottom:1.25em;line-height:1.8}.blog-content .prose a{color:var(--primary-400);text-decoration:underline;text-decoration-color:var(--primary-300);text-decoration-thickness:2px;text-underline-offset:2px;transition:all .2s ease}.blog-content .prose a:hover{color:var(--primary-500);text-decoration-color:var(--primary-400)}.blog-content .prose a code{color:var(--primary-400)}.blog-content .prose ul,.blog-content .prose ol{margin-bottom:1.5em;padding-left:1.5em}.blog-content .prose ul li,.blog-content .prose ol li{margin-bottom:.5em;line-height:1.75}.blog-content .prose ul li::marker,.blog-content .prose ol li::marker{color:var(--primary-400);font-weight:700}.blog-content .prose ul ul,.blog-content .prose ul ol,.blog-content .prose ol ul,.blog-content .prose ol ol{margin-top:.5em;margin-bottom:.5em}.blog-content .prose ul{list-style-type:disc}.blog-content .prose :not(pre)>code{background-color:var(--neutral-200);padding:.2em .5em;border-radius:4px;font-size:.9em;font-family:JetBrains Mono,SF Mono,Consolas,monospace;color:var(--terminal-400);border:1px solid var(--neutral-400);font-weight:500}.blog-content .prose pre{background:linear-gradient(135deg,hsl(265,30%,10%),hsl(270,25%,13%));padding:1.5rem;border-radius:8px;border:2px solid var(--primary-400);margin:2em 0;overflow-x:auto;box-shadow:0 0 20px #7f00ff1a,0 0 40px #7f00ff0d,0 8px 24px #0000004d;position:relative;transition:all .3s ease}.blog-content .prose pre:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);pointer-events:none;border-radius:6px;z-index:1}.blog-content .prose pre:hover{border-color:var(--pink-accent-400);box-shadow:0 0 30px #ff00aa26,0 0 60px #ff00aa14,0 12px 32px #0006}.blog-content .prose pre code{background-color:transparent!important;padding:0!important;border:none!important;font-size:.9rem;line-height:1.7;color:#f8f8f2!important;font-family:JetBrains Mono,SF Mono,Consolas,monospace;position:relative;z-index:2}.blog-content .prose table{width:100%;border-collapse:collapse;margin:2em 0;font-size:.9em;box-shadow:0 4px 12px #0000001a;border-radius:8px;overflow:hidden}.blog-content .prose table thead{background:linear-gradient(135deg,var(--primary-400),var(--primary-500));color:#fff}.blog-content .prose table thead th{padding:1rem 1.25rem;text-align:left;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.85em}.blog-content .prose table tbody{background-color:var(--neutral-100)}.blog-content .prose table tbody tr{border-bottom:1px solid var(--neutral-300);transition:all .2s ease}.blog-content .prose table tbody tr:nth-child(2n){background-color:var(--neutral-200)}.blog-content .prose table tbody tr:hover{background-color:var(--primary-100);transform:scale(1.01)}.blog-content .prose table tbody tr:last-child{border-bottom:none}.blog-content .prose table tbody td{padding:.875rem 1.25rem}.blog-content .prose table tbody td code{background-color:var(--neutral-300);padding:.2em .4em;font-size:.85em;border-radius:3px}.blog-content .prose blockquote{margin:2em 0;padding:1.25rem 1.5rem;border-left:4px solid var(--primary-400);background-color:var(--primary-100);border-radius:6px;font-style:normal;box-shadow:0 2px 8px #0000000d}.blog-content .prose blockquote p{margin:0}.blog-content .prose blockquote p strong:first-child{display:inline-block;margin-right:.5em;font-weight:600;text-transform:uppercase;font-size:.9em;letter-spacing:.5px}.blog-content .prose blockquote p+p{margin-top:.75em}.blog-content .prose hr{border:none;border-top:2px solid var(--primary-300);margin:3em 0;position:relative}.blog-content .prose hr:after{content:"◆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--background);padding:0 1rem;color:var(--primary-400);font-size:1.2em}.blog-content .prose input[type=checkbox]{margin-right:.75em;accent-color:var(--primary-400);cursor:pointer;width:1.1em;height:1.1em}.blog-content .prose img{border-radius:8px;box-shadow:0 4px 12px #0000001a;margin:2em auto;max-width:100%;height:auto;display:block}.blog-content .prose strong{color:var(--font-color);font-weight:600}.blog-content .prose em{color:var(--font-color);font-style:italic}.callout{margin:2em 0;padding:1.25rem 1.5rem;border-radius:8px;border-left:4px solid;position:relative;transition:all .3s ease}.callout:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.02) 2px,rgba(0,0,0,.02) 4px);pointer-events:none;border-radius:8px}.callout:before{content:attr(data-callout-title);display:block;font-weight:700;text-transform:uppercase;font-size:.8em;letter-spacing:.75px;margin-bottom:.75rem;font-family:JetBrains Mono,SF Mono,Consolas,monospace}.callout p{margin:0}.callout p+p{margin-top:.75em}.callout.callout-note{background:linear-gradient(135deg,hsla(270,90%,65%,.12),hsla(270,90%,65%,.05));border-color:#a655f6;box-shadow:0 0 20px #a655f61a,inset 0 1px #a655f61a}.callout.callout-note:before{color:#a655f6}.callout.callout-warning{background:linear-gradient(135deg,hsla(35,100%,55%,.12),hsla(35,100%,55%,.05));border-color:#ff9f1a;box-shadow:0 0 20px #ff9f1a26,inset 0 1px #ff9f1a1a}.callout.callout-warning:before{color:#ff9500}.callout.callout-tip{background:linear-gradient(135deg,hsla(120,100%,45%,.1),hsla(120,100%,45%,.04));border-color:#00e600;box-shadow:0 0 25px #00e60026,inset 0 1px #00e6001a}.callout.callout-tip:before{color:#00e600;text-shadow:0 0 10px hsla(120,100%,45%,.5)}.callout.callout-important{background:linear-gradient(135deg,hsla(280,100%,60%,.12),hsla(280,100%,60%,.05));border-color:#b3f;box-shadow:0 0 25px #b3f3,inset 0 1px #bb33ff26}.callout.callout-important:before{color:#b3f;animation:pulse-glow 2s ease-in-out infinite}.callout.callout-info{background:linear-gradient(135deg,hsla(185,95%,50%,.1),hsla(185,95%,50%,.04));border-color:#06e4f9;box-shadow:0 0 20px #06e4f926,inset 0 1px #06e4f91a}.callout.callout-info:before{color:#06cee0}.callout.callout-danger{background:linear-gradient(135deg,hsla(340,100%,55%,.12),hsla(340,100%,55%,.05));border-color:#ff1a66;box-shadow:0 0 30px #ff1a6633,inset 0 1px #ff1a6626}.callout.callout-danger:before{color:#ff1a66;text-shadow:0 0 15px hsla(340,100%,55%,.6)}.callout.callout-success{background:linear-gradient(135deg,hsla(140,85%,40%,.1),hsla(140,85%,40%,.04));border-color:#0fbd49;box-shadow:0 0 20px #0fbd491f,inset 0 1px #0fbd491a}.callout.callout-success:before{color:#0da540}.callout.callout-example{background:linear-gradient(135deg,hsla(195,85%,55%,.1),hsla(195,85%,55%,.04));border-color:#2bbdee;box-shadow:0 0 15px #2bbdee1a,inset 0 1px #2bbdee14}.callout.callout-example:before{color:#13b6ec}.callout.callout-quote{background:linear-gradient(135deg,hsla(260,40%,55%,.1),hsla(260,40%,55%,.04));border-color:#7d5eba;box-shadow:0 0 15px #7d5eba14;font-style:italic}.callout.callout-quote:before{color:#7d5eba}.callout.callout-flag{background:linear-gradient(135deg,hsla(320,100%,60%,.15),hsla(320,100%,60%,.08));border-color:#f3b;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 25px #ff33bb26}.callout.callout-flag:before{color:#ff1ab2;content:"Click to reveal"}.callout.callout-flag>*{filter:blur(6px);transition:filter .3s ease}.callout.callout-flag:before{filter:none}.callout.callout-flag:hover{border-color:#f6c;box-shadow:0 0 35px #ff33bb40}.callout.callout-flag.revealed:before{content:"Flag"}.callout.callout-flag.revealed>*{filter:blur(0)}@keyframes pulse-glow{0%,to{text-shadow:0 0 10px hsla(280,100%,60%,.4)}50%{text-shadow:0 0 20px hsla(280,100%,60%,.8)}}.code-block-wrapper{position:relative;margin:2em 0}.copy-button{position:absolute;top:.75rem;right:.75rem;padding:.4rem .8rem;background:hsla(270,50%,30%,.9);border:1px solid var(--primary-400);border-radius:4px;color:var(--neutral-200);font-size:.75rem;font-family:inherit;cursor:pointer;opacity:0;transition:all .2s ease;z-index:10}.copy-button:hover{background:var(--primary-500);border-color:var(--pink-accent-400)}.copy-button.copied{background:var(--pink-accent-500);border-color:var(--pink-accent-400)}.copy-button .copy-text{display:inline-block}.code-block-wrapper:hover .copy-button{opacity:1}.code-block-wrapper pre{margin:0}.darkmode .blog-content .prose :not(pre)>code{background-color:var(--neutral-800);border-color:var(--neutral-700);color:var(--terminal-200)}.darkmode .blog-content .prose table thead{background:linear-gradient(135deg,var(--primary-500),var(--primary-400))}.darkmode .blog-content .prose table tbody{background-color:var(--neutral-900)}.darkmode .blog-content .prose table tbody tr{border-color:var(--neutral-700)}.darkmode .blog-content .prose table tbody tr:nth-child(2n){background-color:var(--neutral-800)}.darkmode .blog-content .prose table tbody tr:hover{background-color:var(--primary-500)}.darkmode .blog-content .prose blockquote{background-color:var(--neutral-800);border-left-color:var(--primary-400)}.darkmode .blog-content .prose pre{background:linear-gradient(135deg,hsl(265,35%,8%),hsl(270,30%,10%));border-color:var(--primary-500)}.darkmode .blog-content .prose .callout.callout-note{background:linear-gradient(135deg,hsla(270,90%,65%,.1),hsla(270,90%,65%,.04))}.darkmode .blog-content .prose .callout.callout-warning{background:linear-gradient(135deg,hsla(35,100%,55%,.1),hsla(35,100%,55%,.04))}.darkmode .blog-content .prose .callout.callout-tip{background:linear-gradient(135deg,hsla(120,100%,45%,.08),hsla(120,100%,45%,.03))}.darkmode .blog-content .prose .callout.callout-important{background:linear-gradient(135deg,hsla(280,100%,60%,.1),hsla(280,100%,60%,.04))}.darkmode .blog-content .prose .callout.callout-info{background:linear-gradient(135deg,hsla(185,95%,50%,.08),hsla(185,95%,50%,.03))}.darkmode .blog-content .prose .callout.callout-danger{background:linear-gradient(135deg,hsla(340,100%,55%,.1),hsla(340,100%,55%,.04))}.darkmode .blog-content .prose .callout.callout-success{background:linear-gradient(135deg,hsla(140,85%,40%,.08),hsla(140,85%,40%,.03))}.darkmode .blog-content .prose .callout.callout-example{background:linear-gradient(135deg,hsla(195,85%,55%,.08),hsla(195,85%,55%,.03))}.darkmode .blog-content .prose .callout.callout-quote{background:linear-gradient(135deg,hsla(260,40%,55%,.08),hsla(260,40%,55%,.03))}.darkmode .blog-content .prose .callout.callout-flag{background:linear-gradient(135deg,hsla(320,100%,60%,.12),hsla(320,100%,60%,.05))}@media (prefers-reduced-motion: reduce){.callout-important:before{animation:none}}[data-astro-cid-3qc6hvr2]:focus,[data-astro-cid-3qc6hvr2]:focus-visible{outline:2px dotted black;outline-color:#000;outline-offset:0;box-shadow:0 0 0 2px #fff}[data-astro-cid-3qc6hvr2]:focus:not(:focus-visible){outline:none;box-shadow:none}.responsive-toggle[data-astro-cid-3qc6hvr2]{display:none;padding:0;margin-top:6px;border:none}.responsive-toggle[data-astro-cid-3qc6hvr2] svg[data-astro-cid-3qc6hvr2]{width:30px}.responsive-toggle[data-astro-cid-3qc6hvr2] svg[data-astro-cid-3qc6hvr2] path[data-astro-cid-3qc6hvr2]{transition:fill .2s ease-in-out}.responsive-toggle[data-astro-cid-3qc6hvr2]:hover svg[data-astro-cid-3qc6hvr2] path[data-astro-cid-3qc6hvr2]{fill:var(--primary-400)}.accordion__wrapper{list-style:none;padding:0}.accordion__item,.accordion__header{width:100%}.accordion__header{display:flex;justify-content:space-between;border:2px solid #202020;padding:1rem}.accordion__item .accordion__header{border-bottom:0}.accordion__item .accordion__header:focus{outline-offset:-6px;box-shadow:inset 0 0 0 2px #fff}.accordion__item:only-of-type .accordion__header,.accordion__item:last-of-type .accordion__header{border:2px solid #202020}.accordion__item:only-of-type .accordion__panel,.accordion__item:last-of-type .accordion__panel{border-bottom:2px solid #202020}.header__toggle-indicator{width:20px}.accordion__panel{visibility:hidden;overflow:hidden;height:0;border-left:2px solid #202020;border-right:2px solid #202020;transition:height .3s ease-in-out,visibility 0s .3s}.panel__inner{padding:2rem 1rem}.is-active .accordion__header{border:2px solid #202020}.is-active .accordion__panel{visibility:visible;height:auto;transition:height .3s ease-in-out,visibility 0s 0s}.breadcrumbs ol{padding:0;margin:0;list-style:none}.breadcrumbs__item{display:inline}.breadcrumbs__item:after{content:"/";margin:0 .5rem}.breadcrumbs__item:last-child:after{content:""}.card{display:flex;flex-direction:column;border:2px solid black;border-radius:.5rem;max-width:60ch;min-height:100%;position:relative;overflow:hidden;transition:box-shadow .15s ease-in-out}.card:hover,.card:focus-within{box-shadow:0 0 0 .25rem}.card:focus-within a:focus{text-decoration:none;box-shadow:none;outline:none}.card__image{height:10rem}.card__image img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.card__content{display:flex;flex-direction:column;flex-grow:1;padding:1rem}.card__content a{text-decoration:none}.card__content a:focus{text-decoration:underline}.card__content a:after{content:"";position:absolute;inset:0}.card__content:last-child{margin-top:auto;padding-top:2rem}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0}}@keyframes astroFadeOut{to{opacity:0}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}dialog::backdrop{background-color:#00000080;filter:blur(6px)}:where(.modal){color:#000;background-color:#fff;border:.5rem solid black;border-radius:1rem;padding:0}.modal__inner{width:clamp(30ch,70%,75ch);border-radius:1rem;width:100%}.modal__content{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:2rem}.modal__close{width:100%}.modal__close button{border:none;background-color:#d3d3d3;border-bottom-left-radius:.4rem;border-bottom-right-radius:.4rem;color:#000;text-align:right;transition:background-color .15s ease-in-out;width:100%;margin:0;padding:.5rem}.modal__close button:hover,.modal__close button:focus{background-color:gray;text-decoration:underline}dialog[open],dialog[open]::backdrop{animation:fadein .3s ease-in-out}@keyframes fadein{0%{opacity:0}to{opacity:1}}.notification{display:flex;align-items:center;gap:.75rem;padding:1rem;color:var(--neutral-900, #202427);background-color:var(--neutral-200, #f6f8f9);border:2px solid var(--neutral-600, #858d93);border-radius:.25rem}.notification.type-info{color:var(--info-900, #035486);background-color:var(--info-100, #e0f7ff);border-color:var(--info-600, #1a91d1)}.notification.type-success{color:var(--success-900, #014b3e);background-color:var(--success-100, #eefcf6);border-color:var(--success-500, #28a980)}.notification.type-warning{color:var(--warning-900, #8e2a0b);background-color:var(--warning-100, #fffbeb);border-color:var(--warning-600, #dc901e)}.notification.type-error{color:var(--error-900, #5e0317);background-color:var(--error-100, #ffe0e0);border-color:var(--error-500, #df2a39)}.notification [data-icon]{flex-shrink:0;width:40px;height:auto}.pagination .pagination__list{display:flex;align-items:center;gap:1rem}.pagination a,.pagination .disabled{display:block;border-width:2px;border-style:solid;border-radius:3px}.pagination a{border-color:currentColor;transition:background-color .15s ease-in-out}.pagination a:hover,.pagination a:focus-visible{background-color:orange}.pagination a:focus-visible svg path{stroke:#222}.pagination .disabled{border-color:gray;opacity:.5}.skip-links a{color:var(--action-color, #222);background-color:var(--background, #fff);border-bottom-right-radius:6px;padding:1rem 3.25rem;position:absolute;display:block;z-index:9999;top:-100vh;left:0}.skip-links a:hover,.skip-links a:focus{top:0;outline-offset:2px}#main-navigation>.container{display:flex;justify-content:center;flex-wrap:wrap}#main-navigation.is-desktop .desktop-menu{visibility:visible;position:static}#main-navigation.is-desktop .mobile-menu{display:none}#main-navigation.is-desktop .darkmode-toggle{margin-top:-6px}#main-navigation.is-mobile{flex-direction:column}#main-navigation.is-mobile .mobile-menu{display:none}#main-navigation.is-mobile .mobile-menu.show{display:block}#main-navigation.is-mobile .desktop-menu{visibility:hidden;z-index:-99;position:absolute;left:0}#main-navigation.is-mobile .responsive-toggle{display:block}#main-navigation .wrapper{display:flex;align-items:center;gap:1rem}#main-navigation nav>ul{display:flex;gap:.5rem;list-style-type:none;align-items:center}#main-navigation nav>ul a,#main-navigation nav>ul button{text-decoration:none;font-family:JetBrains Mono,SF Mono,monospace;font-size:.95rem;font-weight:500;line-height:1.5;padding:.5rem .875rem;border-radius:8px;transition:all .3s ease;color:var(--neutral-600)}#main-navigation nav>ul a:hover,#main-navigation nav>ul button:hover{color:var(--pink-accent-300);background:hsla(320,100%,60%,.1);box-shadow:0 0 20px #f3b3}#main-navigation nav>ul .is-active a{color:var(--pink-accent-300);background:hsla(320,100%,60%,.08);box-shadow:0 0 15px #ff33bb26;font-weight:600}#main-navigation :global(.darkmode) nav>ul a,#main-navigation :global(.darkmode) nav>ul button{color:var(--neutral-300)}#main-navigation :global(.darkmode) nav>ul a:hover,#main-navigation :global(.darkmode) nav>ul button:hover{color:var(--pink-accent-200);background:hsla(320,100%,60%,.15);box-shadow:0 0 25px #ff33bb40}#main-navigation :global(.darkmode) nav>ul .is-active a{color:var(--pink-accent-200);background:hsla(320,100%,60%,.1);box-shadow:0 0 20px #f3b3}#main-navigation .mobile-menu{flex-basis:100%;padding:2rem 0}#main-navigation .mobile-menu>ul{flex-direction:column}#main-navigation .mobile-menu>ul ul{position:relative;margin-top:1rem}#main-navigation .mobile-menu a,#main-navigation .mobile-menu button{display:block;width:100%;padding:.5rem 0}#main-navigation .has-dropdown{position:relative}#main-navigation .has-dropdown>button{display:flex;align-items:center;gap:.5rem;padding:0;margin-top:-1px;border:none;color:var(--action-color)}#main-navigation .has-dropdown>button:hover{color:var(--action-color-state)}#main-navigation .has-dropdown>button:hover:after{border-color:var(--action-color-state)}#main-navigation .has-dropdown>button:after{content:"";width:.85rem;height:.75em;margin-top:-.25rem;border-style:solid;border-width:.2em .2em 0 0;border-color:var(--action-color);transform:rotate(135deg);transition:all .2s ease}#main-navigation .has-dropdown>button.show:after{margin-top:.25rem;transform:rotate(-45deg)}#main-navigation .has-dropdown>button.show~ul{display:flex;flex-direction:column;gap:1rem}#main-navigation .has-dropdown ul{display:none;position:absolute;z-index:100;min-width:260px;inset:125% 0 auto;padding:1rem;background-color:var(--neutral-background);border:2px solid var(--primary-500);border-radius:8px;box-shadow:0 10px 40px #0006,0 0 20px #9942f01a}#main-navigation .has-dropdown ul:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.02) 2px,rgba(0,0,0,.02) 4px);pointer-events:none;border-radius:6px}#main-navigation .has-dropdown ul.dropdown-align-right{left:auto;right:0}#main-navigation .has-dropdown ul a{padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}#main-navigation .has-dropdown ul a:hover{background:hsla(270,85%,60%,.1)}.darkmode #main-navigation .has-dropdown ul{background-color:var(--neutral-800);border-color:var(--primary-400);box-shadow:0 10px 40px #0009,0 0 30px #9942f026}.darkmode-toggle{padding:.5rem;border:none;border-radius:8px;transition:all .3s ease}.darkmode-toggle svg{width:24px;margin-top:2px;transition:all .3s ease}.darkmode-toggle svg path{fill:var(--neutral-500);transition:fill .3s ease}.darkmode-toggle:hover{background:hsla(320,100%,60%,.1);box-shadow:0 0 20px #f3b3}.darkmode-toggle:hover svg path{fill:var(--pink-accent-300)}.darkmode-toggle:hover svg{filter:drop-shadow(0 0 10px hsla(320,100%,60%,.5))}.darkmode-toggle:focus{outline:2px dotted black;outline-color:#000;outline-offset:0;box-shadow:0 0 0 2px #fff}.darkmode-toggle:focus:not(:focus-visible){outline:none;box-shadow:none}:global(.darkmode) .darkmode-toggle svg path{fill:var(--neutral-400)}:global(.darkmode) .darkmode-toggle:hover{background:hsla(320,100%,60%,.15);box-shadow:0 0 25px #ff33bb40}:global(.darkmode) .darkmode-toggle:hover svg path{fill:var(--pink-accent-200)}*:focus,*:focus-visible{outline:2px dotted black;outline-color:#000;outline-offset:0;box-shadow:0 0 0 2px #fff}*:focus:not(:focus-visible){outline:none;box-shadow:none}header .type-icon a{display:block}header .type-icon a [astro-icon]{margin-top:-4px;width:30px}header .type-icon a [astro-icon] path{fill:var(--action-color);transition:fill .2s ease-in-out}header .type-icon a:hover [astro-icon] path{fill:var(--action-color-state)}.footer-section[data-astro-cid-sz7xmlte]{padding:2rem 0;border-top:1px solid var(--neutral-200)}.darkmode .footer-section[data-astro-cid-sz7xmlte]{border-color:var(--neutral-700)}.container[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;align-items:center;gap:1rem}.social-links[data-astro-cid-sz7xmlte]{display:flex;gap:1.5rem}.social-link[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--neutral-600);background:transparent;transition:all .3s ease}.social-link[data-astro-cid-sz7xmlte]:hover{color:var(--primary-400);transform:translateY(-2px);box-shadow:0 0 20px #9942f04d}.social-link[data-astro-cid-sz7xmlte] svg{width:24px;height:24px}.darkmode .social-link[data-astro-cid-sz7xmlte]{color:var(--neutral-400)}.darkmode .social-link[data-astro-cid-sz7xmlte]:hover{color:var(--pink-accent-300);box-shadow:0 0 20px #ff33bb4d}.copyright[data-astro-cid-sz7xmlte]{font-size:.875rem;color:var(--neutral-500);font-family:JetBrains Mono,SF Mono,monospace;letter-spacing:.02em;margin:0}.darkmode .copyright[data-astro-cid-sz7xmlte]{color:var(--neutral-400)}:root{--radius-small: 3px;--radius-large: 6px;--gap-default: 2rem;--font-measure: 70ch;--font-family-default: "Open Sans", sans-serif;--font-family-special: "Open Sans", sans-serif;--font-family-mono: "JetBrains Mono", "SF Mono", "Consolas", monospace;--font-color: var(--neutral-900);--action-color: var(--primary-300);--action-color-state: var(--primary-500);--background: var(--neutral-300);--primary-background: var(--primary-100);--neutral-background: var(--neutral-200)}.darkmode{--font-color: var(--neutral-100);--action-color: var(--secondary-100);--action-color-state: var(--secondary-500);--background: var(--dark-100);--primary-background: var(--primary-500);--neutral-background: var(--neutral-900)}html,body{height:100%;overflow-x:hidden;scroll-behavior:smooth}body{display:flex;flex-direction:column;color:var(--font-color);background-color:var(--background);position:relative;transition:background-color .3s ease,color .3s ease}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 20% 30%,hsla(270,85%,60%,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,hsla(320,100%,60%,.06) 0%,transparent 50%),radial-gradient(ellipse at 60% 20%,hsla(185,95%,50%,.04) 0%,transparent 40%),radial-gradient(2px 2px at 20px 30px,hsla(0,0%,100%,.3),transparent),radial-gradient(2px 2px at 40px 70px,hsla(0,0%,100%,.2),transparent),radial-gradient(1px 1px at 90px 40px,hsla(0,0%,100%,.25),transparent),radial-gradient(1px 1px at 130px 80px,hsla(0,0%,100%,.15),transparent),radial-gradient(1px 1px at 160px 120px,hsla(270,100%,80%,.2),transparent);background-size:100% 100%,100% 100%,100% 100%,200px 100px,200px 100px,200px 100px,200px 100px,200px 100px;opacity:.5;pointer-events:none;z-index:-2}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.015'/%3E%3C/svg%3E");pointer-events:none;z-index:-1}body main{flex:1 0 auto;position:relative}body footer{flex-shrink:0}.darkmode body:before{background:radial-gradient(ellipse at 20% 30%,hsla(270,85%,60%,.12) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,hsla(320,100%,60%,.08) 0%,transparent 50%),radial-gradient(ellipse at 60% 20%,hsla(185,95%,50%,.06) 0%,transparent 40%),radial-gradient(2px 2px at 20px 30px,hsla(0,0%,100%,.4),transparent),radial-gradient(2px 2px at 40px 70px,hsla(0,0%,100%,.3),transparent),radial-gradient(1px 1px at 90px 40px,hsla(0,0%,100%,.35),transparent),radial-gradient(1px 1px at 130px 80px,hsla(0,0%,100%,.2),transparent),radial-gradient(1px 1px at 160px 120px,hsla(270,100%,80%,.25),transparent);opacity:.8}pre{padding:1rem;border-radius:.35rem;border:2px solid var(--action-color)}body .pagination a:hover,body .pagination a:focus-visible{background-color:var(--action-color-state)}body .pagination a:hover svg path,body .pagination a:focus-visible svg path{stroke:#fff}a,button{transition:all .2s ease}a:focus-visible,button:focus-visible{outline:3px solid var(--primary-400);outline-offset:2px;border-radius:4px;box-shadow:0 0 15px #9942f066}.heading-content-hidden{display:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
