@import"https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css";.medium-zoom-overlay{position:fixed;inset:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}[data-callout=note]{--rc-color-light: var(--callout-note-color-light, rgb(142, 150, 170));--rc-color-dark: var(--callout-note-color-dark, rgb(101, 117, 133))}[data-callout=tip]{--rc-color-light: var(--callout-tip-color-light, rgb(100, 108, 255));--rc-color-dark: var(--callout-tip-color-dark, rgb(100, 108, 255))}[data-callout=important]{--rc-color-light: var(--callout-important-color-light, rgb(159, 122, 234));--rc-color-dark: var(--callout-important-color-dark, rgb(159, 122, 234))}[data-callout=warning]{--rc-color-light: var(--callout-warning-color-light, rgb(234, 179, 8));--rc-color-dark: var(--callout-warning-color-dark, rgb(234, 179, 8))}[data-callout=caution]{--rc-color-light: var(--callout-caution-color-light, rgb(244, 63, 94));--rc-color-dark: var(--callout-caution-color-dark, rgb(244, 63, 94))}.callout{--rc-color-default: #888;width:100%;padding:16px 16px 8px;border:1px solid transparent;border-radius:8px;margin:16px 0;background-color:rgb(from var(--rc-color-light, var(--rc-color-default)) r g b / .14);line-height:24px;font-size:14px}.dark .callout{background-color:rgb(from var(--rc-color-dark, var(--rc-color-default)) r g b / .16)}.callout-title{display:flex;align-items:flex-start;gap:6px;font-size:inherit}.callout-title::-webkit-details-marker{display:none}.callout-title-icon{display:flex;align-items:center;flex:0 0 auto}.callout-title-text{font-weight:600}.callout-content p{margin:8px 0}.callout[data-collapsible=true] .callout-title{cursor:pointer;margin:0 0 8px}.callout[data-collapsible=true] .callout-fold-icon{display:flex;align-items:center;padding-inline-end:8px}.callout[data-collapsible=true]>.callout-title .callout-fold-icon svg{transform:rotate(-90deg);transition:transform .1s ease-in-out}.callout[data-collapsible=true][open]>.callout-title .callout-fold-icon svg{transform:none}.callout-title-icon:after,.callout-fold-icon:after{content:"​"}.callout-title-icon svg,.callout-fold-icon svg{width:16px;height:16px;stroke-width:2.2}:root{--color-text-primary: light-dark(#0a0a0a, #d5d5d6);--color-text-secondary: light-dark(#52525b, #a1a1aa);--color-text-muted: light-dark(#6b7280, #9ca3af);--color-heading: light-dark(#0a0a0a, #d5d5d6);--color-link: light-dark(#0a0a0a, #e5e7eb);--color-link-hover: light-dark(#1f2937, #f3f4f6);--color-anchor: light-dark(#6366f1, #818cf8);--color-bg-inline-code: light-dark(#f1f3f5, #1e1e20);--color-text-inline-code: light-dark(#3b4252, #c9d1d9);--color-bg-polaroid: #ffffff;--color-border-light: light-dark(#e9edf2, #2b2b30);--color-border-medium: light-dark(#555, #555);--color-border-blockquote: light-dark(#e6ebf2, #3a3a40);--shadow-polaroid: 0 5px 15px rgb(0 0 0 / .15);--shadow-polaroid-hover: 0 8px 20px rgb(0 0 0 / .2);--shadow-polaroid-dark: 0 5px 15px rgb(0 0 0 / .3);--font-family-handwritten: "Comic Sans MS", cursive;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 2.5rem;--space-3xl: 3rem;--radius-sm: .25rem;--radius-md: .375rem;--transition-fast: .3s ease;--transition-medium: .3s ease-in-out}.markdown{color:var(--color-text-secondary);font-size:1rem;line-height:1.75;:is(p,li,blockquote){text-wrap:wrap}>:first-child{margin-block-start:0}>:last-child{margin-block-end:0}}.markdown{:is(h1,h2,h3,h4,h5,h6){color:var(--color-heading);font-family:var(--font-sans);font-weight:600;scroll-margin-top:6rem;&:is(:hover,:focus) .header-anchor{opacity:.6}}& h1{font-size:clamp(1.75em,4vw,2em);margin-block:0 1em;line-height:1.1111111}& h2{font-size:clamp(1.375em,3vw,1.5em);margin-block:1.5em .75em;line-height:1.3333333}& h3{font-size:clamp(1.175em,2.5vw,1.25em);margin-block:1.25em .5em;line-height:1.6}:is(h4,h5,h6){font-size:clamp(1em,2vw,1.125em);margin-block:1em .375em;line-height:1.4}:is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6){margin-block-start:.75em}& h1+h2,h2+h3,h3+h4,h4+h5,h5+h6{margin-block-start:.5em}& h2+h2,h3+h3,h4+h4{margin-block-start:1em}}.markdown{& p{margin-block:1.25em;font-size:1em}:is(strong,b){font-weight:600;color:var(--color-text-primary)}:is(em,i){color:inherit;font-size:1.05em}& a:not(.card-github){color:var(--color-link);text-decoration:none;border-block-end:1px solid var(--color-border-light);transition:border-color var(--transition-medium);&:hover{border-block-end-color:var(--color-border-medium)}& code{color:inherit}}}.markdown{:is(ol,ul){margin-block:1.25em;list-style:none}& li{margin-block:.5em;position:relative;padding-inline-start:1.25em}& ol>li:before{content:counter(list-item) ".";position:absolute;inset-inline-start:0;font-weight:400}& ul>li:before{content:"";position:absolute;inset-inline-start:.2em;inset-block-start:.675em;inline-size:.4em;block-size:.4em;background-color:var(--color-text-secondary);border-radius:50%;opacity:.8}:is(ul,ol) :is(ul,ol){margin-block:.75em}}.markdown{& ul.contains-task-list{padding-inline-start:0;>li:before{display:none}}& li.task-list-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding-inline-start:0;& input[type=checkbox]{margin-block-start:.3em;inline-size:1em;block-size:1em;border:1px solid var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;&:checked{background-color:var(--color-anchor);border-color:var(--color-anchor)}}}}.markdown{& blockquote{font-weight:500;font-style:italic;color:inherit;border-inline-start:.25rem solid var(--color-border-blockquote);margin-block:1.6em;padding-inline-start:1em;quotes:"“" "”" "‘" "’";>*{opacity:.7;&:first-child{margin-block-start:0}&:last-child{margin-block-end:0}}& p:first-of-type:before{content:open-quote}& p:last-of-type:after{content:close-quote}}}.markdown{:where(code):not(:where(pre *,a *)){background-color:var(--color-bg-inline-code);color:var(--color-text-inline-code);padding-block:.1rem;padding-inline:.3rem;font-family:var(--font-geist-mono);font-size:.875em;word-wrap:break-word;font-weight:500}& pre{overflow-x:auto;font-size:.9375em;line-height:1.7142857;margin-block:1.7142857em;border-radius:var(--radius-md);padding:.8571429em 1.1428571em;& code{background-color:transparent;border:none!important;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;&:before,&:after{content:none}}}}.markdown{& img{margin-block:var(--space-xl);margin-inline:auto;will-change:transform,filter;transition:filter var(--transition-fast);&.medium-zoom-image{transition:filter var(--transition-fast),transform var(--transition-fast)!important}&:not(.noDarken){filter:none}&:hover:not(.medium-zoom-image--opened):not(.noDarken){filter:none!important}}& video{margin-block:var(--space-xl)}& figure{margin-block:var(--space-xl);>*{margin-block:0}& img{margin-block:0}& figcaption{color:var(--color-text-muted);font-size:.875em;line-height:1.4285714;margin-block-start:.8571429em;text-align:center}}}.dark .markdown img:not(.noDarken){filter:brightness(.75) contrast(1.1)}.markdown{& table{width:100%;table-layout:auto;text-align:left;font-size:.9375em;line-height:1.7142857;border-collapse:collapse}& thead{color:var(--color-text-primary);font-weight:600;border-block-end:1px solid var(--color-border-light);& th{vertical-align:bottom;padding:.5714286em;white-space:nowrap;&:first-child{padding-inline-start:0}&:last-child{padding-inline-end:0}}}& tbody{& tr{border-block-end:1px solid var(--color-border-light);&:last-child{border-block-end:none}}& td{vertical-align:top;padding:.5714286em;&:first-child{padding-inline-start:0;white-space:nowrap}&:last-child{padding-inline-end:0}}}}image-div-polaroid{display:flex;justify-content:center;align-items:center;margin-block:var(--space-xl)}image-figure-polaroid{display:inline-block;background:var(--color-bg-polaroid);padding:var(--space-md);padding-block-end:var(--space-xl);box-shadow:var(--shadow-polaroid);transform:rotate(-1deg);transition:all var(--transition-fast);inline-size:min(55%,300px);min-inline-size:300px;&:hover{transform:rotate(0) scale(1.02);box-shadow:var(--shadow-polaroid-hover)}& img{border-radius:3px;filter:contrast(1.1) saturate(1.1)!important}& p{margin-block-start:var(--space-md);font-family:var(--font-family-handwritten);font-size:1rem;color:#666;text-align:center}}.dark image-figure-polaroid{box-shadow:var(--shadow-polaroid-dark)}.markdown hr{border:none;border-block-start:1px solid var(--color-border-light);margin-block:var(--space-xl) auto}.markdown a.header-anchor{float:inline-start;margin-inline-start:-1.5em;border:none!important;opacity:0;font-size:.7em;text-decoration:none;color:var(--color-anchor);transition:opacity var(--transition-fast);&:is(:hover,:focus){text-decoration:none;color:var(--color-anchor);opacity:1}}.markdown .footnotes{margin-block-start:var(--space-3xl);font-size:.875em;color:var(--color-text-secondary);opacity:.9;&:before{content:"";display:block;inline-size:100%;margin-block-end:1.5em;border-block-start:1px solid var(--color-border-light)}& li{margin-block:.5em;& p{margin:0}}.data-footnote-backref{text-decoration:none;opacity:.7;cursor:pointer;border:none;&:hover{opacity:1}}}.markdown{& details{margin-block:1.25em;&:not(.expressive-code *){margin-block:1.25em}& summary{padding-inline-start:1px;cursor:pointer}}& li details{margin-block:.5em}}.medium-zoom-overlay,.medium-zoom-image--opened{z-index:300}.callout{padding-inline-start:16px;font-size:15px;border-radius:0;& p{margin-block:var(--space-md)}}.markdown .callout[data-callout=note]{--accent: #64748b}.markdown .callout[data-callout=tip]{--accent: #3b82f6}.markdown .callout[data-callout=important]{--accent: #8b5cf6}.markdown .callout[data-callout=warning]{--accent: #f59e0b}.markdown .callout[data-callout=caution]{--accent: #ef4444}.markdown .callout :where(code):not(:where(pre *,a *)){background:color-mix(in srgb,var(--accent, #6b7280) 12%,transparent);color:inherit;padding-block:.1rem;padding-inline:.3rem}.dark .markdown .callout :where(code):not(:where(pre *,a *)){background:color-mix(in srgb,var(--accent, #9ca3af) 14%,transparent)}.callout-title-icon{padding-inline-end:2px}.expressive-code{margin-block:1em;.copy button{inline-size:2rem!important;block-size:2rem!important;&:before{display:none}&:after{inline-size:1rem!important;block-size:1rem!important;opacity:.5!important}&:is(:hover,:active):after{opacity:1!important}}.copy .feedback{font-size:14px;border-width:0}.ec-section summary{.code{display:flex;align-items:center}& svg{display:inline-block}}.gutter .ln{padding-inline:1ch!important}}@media(width<=768px){image-figure-polaroid{margin-inline:10%}.markdown{font-size:.9375rem;& a.header-anchor{font-size:.75em}& table{display:block;inline-size:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.875em;:is(th,td){min-inline-size:8em;padding:.5em}& td{word-break:break-word}}& pre{margin-block:1.5em;padding:1em;font-size:.875em}& blockquote{margin-block:1.25em;padding-inline-start:.875em}:is(img,video){margin-block:1.5em}}}@container (width <= 600px){.markdown{& h1{font-size:1.75em}& h2{font-size:1.375em}& h3{font-size:1.175em}}}.img-light{display:block}.img-dark,.dark .img-light{display:none}.dark .img-dark{display:block}.markdown .katex-display{overflow-x:auto;overflow-y:hidden;max-inline-size:100%;padding-block:.5em;>.katex{max-inline-size:100%;>.katex-html{max-inline-size:100%;overflow-x:auto;overflow-y:hidden;padding-inline:.25em}}}.new-tab-icon{margin-inline-start:.1rem;margin-block-end:.3rem;font-size:.6em}.external-link-cursor{cursor:var(--external-link-cursor)}.rds-badge{display:inline-block;padding:.125rem .375rem;border-radius:var(--radius-sm);margin-inline-end:.5rem;color:#fff;font-size:.75rem;line-height:1rem;text-transform:uppercase;background-color:#a8a29e;&[data-badge=n]{background-color:#f87171}}.dark .rds-badge{color:#000}.dark .rds-badge[data-badge=n]{background-color:#fecaca}:is([data-link=github-acct],[data-link=github-repo],[data-link=custom-url],[data-link=npm-pkg])>img{display:inline-block;inline-size:1em;block-size:1em;border-radius:0;margin:0;margin-inline-end:.3em;margin-block-end:.1em}.rds-video{z-index:150;position:relative;inline-size:100%;aspect-ratio:16 / 9;margin-block:var(--space-xl);transform:scale(1)!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}image-figure-polaroid{transition:none}}.markdown a{overflow-wrap:anywhere;word-break:break-word;white-space:normal}.markdown pre,.markdown code{white-space:pre-wrap;word-break:break-word}[data-lqip]{--lqip-c: attr(data-lqip type(<color>), white)}[style*="--lqip:"]{--lqip-c: var(--lqip)}[style*="--lqip:"],[data-lqip]{--lqip-c0: color( from var(--lqip-c) srgb calc(round(down, r * 255 / pow(2, 4)) / 15) calc(mod(round(down, r * 255), pow(2, 4)) / 15) calc(round(down, g * 255 / pow(2, 5)) / 7) / 1 );--lqip-c1: color( from var(--lqip-c) srgb calc(mod(round(down, g * 255 / 2), pow(2, 4)) / 15) calc(((mod(round(down, g * 255), 2) * pow(2, 3)) + (round(down, b * 255 / pow(2, 5)))) / 15) calc(mod(round(down, b * 255 / pow(2, 2)), pow(2, 3)) / 7) / 1 );--lqip-c2: color( from var(--lqip-c) srgb calc((((mod(round(down, b * 255), pow(2, 2)) * 2)) + round(down, alpha * 255 / pow(2, 7))) / 7) calc(mod(round(down, alpha * 255 / pow(2, 3)), pow(2, 4)) / 15) calc(mod(round(down, alpha * 255), pow(2, 3)) / 7) / 1 );background:radial-gradient(150% 75% at 80% 100%,var(--lqip-c2),rgb(from var(--lqip-c2) r g b / 98%) 10%,rgb(from var(--lqip-c2) r g b / 92%) 20%,rgb(from var(--lqip-c2) r g b / 82%) 30%,rgb(from var(--lqip-c2) r g b / 68%) 40%,rgb(from var(--lqip-c2) r g b / 32%) 60%,rgb(from var(--lqip-c2) r g b / 18%) 70%,rgb(from var(--lqip-c2) r g b / 8%) 80%,rgb(from var(--lqip-c2) r g b / 2%) 90%,transparent),radial-gradient(100% 75% at 40% 50%,var(--lqip-c1),rgb(from var(--lqip-c1) r g b / 98%) 10%,rgb(from var(--lqip-c1) r g b / 92%) 20%,rgb(from var(--lqip-c1) r g b / 82%) 30%,rgb(from var(--lqip-c1) r g b / 68%) 40%,rgb(from var(--lqip-c1) r g b / 32%) 60%,rgb(from var(--lqip-c1) r g b / 18%) 70%,rgb(from var(--lqip-c1) r g b / 8%) 80%,rgb(from var(--lqip-c1) r g b / 2%) 90%,transparent),var(--lqip-c0)}.github-card-wrapper{margin:1.5rem 0;display:block}.card-github{display:block;padding:1rem;border:1px solid hsl(var(--border));border-radius:4px;background:hsl(var(--background));text-decoration:none;color:inherit;transition:all .2s ease;box-shadow:none}.card-github:hover{background:hsl(var(--accent));border-color:hsl(var(--border));box-shadow:none}.gc-titlebar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.gc-titlebar-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.gc-owner{display:flex;align-items:center;gap:.5rem;min-width:0}.gc-avatar{width:24px;height:24px;border-radius:50%;background-color:#e1e4e8;background-size:cover;background-position:center;flex-shrink:0}.gc-user{font-weight:500;font-size:1rem;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gc-divider{color:hsl(var(--muted-foreground) / .6);font-weight:300;font-size:1rem;flex-shrink:0}.gc-repo{font-weight:600;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.github-logo{flex-shrink:0;color:hsl(var(--muted-foreground));display:flex;align-items:center}.github-logo svg{width:22px;height:22px}.gc-description{color:hsl(var(--muted-foreground));font-size:.9375rem;line-height:1.5;margin-bottom:.75rem;min-height:1.5em}.gc-infobar{display:flex;align-items:center;gap:1rem;font-size:.8125rem;color:hsl(var(--muted-foreground));flex-wrap:wrap}.gc-stars,.gc-forks,.gc-license{display:flex;align-items:center;gap:.375rem}.gc-stars svg,.gc-forks svg,.gc-license svg{flex-shrink:0;width:17px;height:17px}.card-github.fetch-waiting{opacity:.7;pointer-events:none}.card-github.fetch-waiting .gc-description:after{content:"...";animation:dots 1.5s steps(3,end) infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.card-github.fetch-error{border-color:#cf222e4d;background-color:#cf222e0d}.card-github.fetch-error .gc-description{color:#cf222e}.github-card-error{padding:.75rem 1rem;background-color:#cf222e1a;border-left:3px solid rgb(207 34 46);color:#cf222e;font-size:.875rem;border-radius:4px;margin:1rem 0}.dark .gc-avatar{background-color:#30363d}.dark .card-github.fetch-error{border-color:#f851494d;background-color:#f851491a}.dark .card-github.fetch-error .gc-description{color:#f85149}.dark .github-card-error{background-color:#f851491a;border-left-color:#f85149;color:#f85149}@media(max-width:640px){.gc-titlebar-left{flex-wrap:wrap}}.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}@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}}
