:root{color-scheme:dark;--theme-bg: 210deg 6% 11%;--theme-link: 330deg 49% 67%;--theme-text: 220deg 3% 79%;--theme-accent: 159deg 64% 45%;--theme-accent-2: 0deg 0% 93%;--theme-quote: 102deg 100% 86%}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-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}h1{max-width:50ch}h2,h3,h4,h5,h6,p,pre{margin:0}a{color:inherit;text-decoration:inherit}a:hover{background-image:none;--tw-text-opacity: 1;color:hsl(var(--theme-link) / var(--tw-text-opacity));text-decoration-line:none}b,strong{font-weight:bolder}blockquote{margin:0;padding-left:3em;padding-right:3em;color:hsl(var(--theme-quote) / 1)}code,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}img,svg{display:block}img,video{max-width:100%;height:auto}ol,ul{list-style:none;margin:0;padding:0}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,[role=button]{cursor:pointer}:disabled{cursor:default}[hidden]{display:none}small{font-size:80%}summary{display:list-item}.cactus-link{background-size:100% 6px;background-position:bottom;background-repeat:repeat-x;background-image:linear-gradient(transparent,transparent 5px,hsl(var(--theme-text)) 5px,hsl(var(--theme-text)))}.cactus-link:hover{background-image:linear-gradient(transparent,transparent 4px,hsl(var(--theme-link)) 4px,hsl(var(--theme-link)))}.quote{margin:0;padding-left:2em;padding-right:2em;color:hsl(var(--theme-quote) / 1)}.-inset-x-4{left:-1rem;right:-1rem}.-me-16{margin-inline-end:-4rem}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.fixed{position:fixed}.z-90{z-index:90}.order-2{order:2}.col-span-1{grid-column:span 1 / span 1}.m-2{margin:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-16{margin-bottom:4rem}.me-0{margin-inline-end:0px}.me-0\.5{margin-inline-end:.125rem}.mr-8{margin-right:2rem}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.min-h-screen{min-height:100vh}.min-w-\[160px\]{min-width:160px}.w-full{width:100%}.w-10{width:2.5rem}.h-6{height:1.5rem}.w-6{width:1.5rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.flex-grow{flex-grow:1}.translate-y-28{--tw-translate-y: 7rem;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))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.gap-x-2{column-gap:.5rem}.gap-x-3{column-gap:.75rem}.gap-x-4{column-gap:1rem}.gap-x-10{column-gap:2.5rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.break-words{overflow-wrap:break-word}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border-2{border-width:2px}.border-transparent{border-color:transparent}.bg-bgColor{--tw-bg-opacity: 1;background-color:hsl(var(--theme-bg) / var(--tw-bg-opacity))}.bg-bgColor\/\[\.85\]{background-color:hsl(var(--theme-bg) / .85)}.bg-quote\/10{background-color:hsl(var(--theme-quote) / .1)}.bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity))}.object-cover{object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-16{padding-left:4rem;padding-right:4rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-4{padding-bottom:1rem}.pt-16{padding-top:4rem}.pt-20{padding-top:5rem}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.text-accent{--tw-text-opacity: 1;color:hsl(var(--theme-accent) / var(--tw-text-opacity))}.text-accent-2{--tw-text-opacity: 1;color:hsl(var(--theme-accent-2) / var(--tw-text-opacity))}.text-gray-350{color:#b9b9b9}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-quote{--tw-text-opacity: 1;color:hsl(var(--theme-quote) / var(--tw-text-opacity))}.text-textColor{--tw-text-opacity: 1;color:hsl(var(--theme-text) / var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.hover\:border-zinc-400:hover{--tw-border-opacity: 1;border-color:rgb(161 161 170 / var(--tw-border-opacity))}.hover\:text-accent:hover{--tw-text-opacity: 1;color:hsl(var(--theme-accent) / var(--tw-text-opacity))}.group .menu-open .group-\[\.menu-open\]\:z-50{z-index:50}.group .menu-open .group-\[\.menu-open\]\:flex{display:flex}.data-\[show\=true\]\:translate-y-0[data-show=true]{--tw-translate-y: 0px;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))}.data-\[show\=true\]\:opacity-100[data-show=true]{opacity:1}.dark .dark\:bg-zinc-700{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity))}@media(min-width:640px){.sm\:static{position:static}.sm\:z-auto{z-index:auto}.sm\:-ms-4{margin-inline-start:-1rem}.sm\:mb-2{margin-bottom:.5rem}.sm\:me-4{margin-inline-end:1rem}.sm\:mt-1{margin-top:.25rem}.sm\:end-8{inset-inline-end:2rem}.sm\:flex{display:flex}.sm\:h-12{height:3rem}.sm\:w-12{width:3rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.sm\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.sm\:divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.sm\:divide-accent>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:hsl(var(--theme-accent) / var(--tw-divide-opacity))}.sm\:rounded-none{border-radius:0}.sm\:bg-transparent{background-color:transparent}.sm\:py-0{padding-top:0;padding-bottom:0}.sm\:ps-\[4\.5rem\]{padding-inline-start:4.5rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.sm\:hover\:text-link:hover{--tw-text-opacity: 1;color:hsl(var(--theme-link) / var(--tw-text-opacity))}.sm\:hover\:underline:hover{text-decoration-line:underline}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:items-start{align-items:flex-start}}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;font-size:.875rem;line-height:1.75;color:var(--tw-prose-body);max-width:90ch}.prose-cactus{--tw-prose-body: hsl(var(--theme-text) / 1);--tw-prose-headings: hsl(var(--theme-accent-2) / 1);--tw-prose-links: hsl(var(--theme-text) / 1);--tw-prose-bold: hsl(var(--theme-text) / 1);--tw-prose-bullets: hsl(var(--theme-text) / 1);--tw-prose-quotes: hsl(var(--theme-quote) / 1);--tw-prose-code: hsl(var(--theme-text) / 1);--tw-prose-th-borders: #666 }.prose :where(.prose>:first-child){margin-top:0}.prose :where(.prose>:last-child){margin-bottom:0}.prose-sm :where(.prose-sm>:first-child){margin-top:0}.prose-sm :where(.prose-sm>:last-child){margin-bottom:0}.prose :where(p){margin-top:1.25em;margin-bottom:1.25em}.prose :where(a){color:var(--tw-prose-links);text-decoration:underline;font-weight:500;background-image:linear-gradient(transparent,transparent 5px,hsl(var(--theme-text)) 5px,hsl(var(--theme-text)));background-size:100% 6px;background-position:bottom;background-repeat:repeat-x}.prose :where(a):hover{background-image:linear-gradient(transparent,transparent 4px,hsl(var(--theme-link)) 4px,hsl(var(--theme-link)))}.prose :where(a){text-decoration-line:none}.prose :where(strong){color:var(--tw-prose-bold);font-weight:700}.prose :where(a strong){color:inherit}.prose :where(img){margin-top:2em;margin-bottom:2em}.prose :where(blockquote strong){color:inherit}.prose :where(blockquote){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:0;border-left-color:var(--tw-prose-quote-borders);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):before{content:open-quote}.prose :where(blockquote p:last-of-type):after{content:close-quote}.prose :where(blockquote code){color:inherit}.prose-sm :where(blockquote){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.prose :where(h1){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){font-weight:900;color:inherit}.prose :where(h2){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){font-weight:800;color:inherit}.prose :where(h3){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){font-weight:700;color:inherit}.prose :where(h4){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong){font-weight:700;color:inherit}.prose :where(h2+*){margin-top:0}.prose :where(h3+*){margin-top:0}.prose :where(h4+*){margin-top:0}.prose :where(h1 code){color:inherit}.prose :where(h2 code){color:inherit;font-size:.875em}.prose :where(h3 code){color:inherit;font-size:.9em}.prose :where(h4 code){color:inherit}.prose-sm :where(h1){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(h2 code){font-size:.9em}.prose-sm :where(h3 code){font-size:.8888889em}.prose-sm :where(h2+*){margin-top:0}.prose-sm :where(h3+*){margin-top:0}.prose-sm :where(h4+*){margin-top:0}.prose-headings\:font-semibold :is(:where(h1,h2,h3,h4,h5,h6,th)){font-weight:600}.prose-headings\:text-accent-2 :is(:where(h1,h2,h3,h4,h5,h6,th)){--tw-text-opacity: 1;color:hsl(var(--theme-accent-2) / var(--tw-text-opacity))}.prose-headings\:before\:absolute :is(:where(h1,h2,h3,h4,h5,h6,th)):before{content:var(--tw-content);position:absolute}.prose-headings\:before\:-ml-4 :is(:where(h1,h2,h3,h4,h5,h6,th)):before{content:var(--tw-content);margin-left:-1rem}.prose-headings\:before\:-ms-4 :is(:where(h1,h2,h3,h4,h5,h6,th)):before{content:var(--tw-content);margin-inline-start:-1rem}.prose-headings\:before\:text-accent :is(:where(h1,h2,h3,h4,h5,h6,th)):before{content:var(--tw-content);--tw-text-opacity: 1;color:hsl(var(--theme-accent) / var(--tw-text-opacity))}.prose :where(code){color:var(--tw-prose-code);font-weight:600;font-size:.875em;border:1px dotted #666;border-radius:2px}.prose :where(code):before{content:"`"}.prose :where(code):after{content:"`"}.prose :where(a code){color:inherit}.prose :where(pre){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:.8571429em 1.1428571em}.prose :where(pre code){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):before{content:none}.prose :where(pre code):after{content:none}.prose-sm :where(code){font-size:.875rem;font-weight:400}.prose-sm :where(pre){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.prose :where(ol){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]){list-style-type:upper-alpha}.prose :where(ol[type=a]){list-style-type:lower-alpha}.prose :where(ol[type=A s]){list-style-type:upper-alpha}.prose :where(ol[type=a s]){list-style-type:lower-alpha}.prose :where(ol[type=I]){list-style-type:upper-roman}.prose :where(ol[type=i]){list-style-type:lower-roman}.prose :where(ol[type=I s]){list-style-type:upper-roman}.prose :where(ol[type=i s]){list-style-type:lower-roman}.prose :where(ol[type="1"]){list-style-type:decimal}.prose :where(ul){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li)::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li)::marker{color:var(--tw-prose-bullets)}.prose :where(li){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li){padding-left:.375em}.prose :where(ul>li){padding-left:.375em}.prose :where(.prose>ul>li p){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol){margin-top:.75em;margin-bottom:.75em}.prose-sm :where(ol){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-left:1.5714286em}.prose-sm :where(ul){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-left:1.5714286em}.prose-sm :where(li){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li){padding-left:.4285714em}.prose-sm :where(ul>li){padding-left:.4285714em}.prose-sm :where(.prose-sm>ul>li p){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose-sm>ul>li>*:first-child){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>*:last-child){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>*:first-child){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>*:last-child){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol){margin-top:.5714286em;margin-bottom:.5714286em}.prose :where(thead th strong){color:inherit}.prose :where(thead th code){color:inherit}.prose :where(table){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead){border-bottom-width:none;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th){color:var(--tw-prose-headings);font-weight:700;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em;border-bottom:1px dashed #666}.prose-th\:before\:content-none :is(:where(th)):before{--tw-content: none;content:var(--tw-content)}.prose :where(tbody tr){border-bottom-width:none;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child){border-bottom-width:0}.prose :where(tbody td){vertical-align:baseline}.prose :where(tfoot){border-top-width:1px;border-top-color:var(--tw-prose-th-borders);border-top:1px dashed #666}.prose :where(tfoot td){vertical-align:top}.prose :where(thead th:first-child){padding-left:0}.prose :where(thead th:last-child){padding-right:0}.prose :where(tbody td,tfoot td){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child){padding-right:0}.prose-sm :where(table){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th){padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.prose-sm :where(thead th:first-child){padding-left:0}.prose-sm :where(thead th:last-child){padding-right:0}.prose-sm :where(tbody td,tfoot td){padding:.6666667em 1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child){padding-left:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child){padding-right:0}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@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}}
