.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}body{min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}ul[role=list],ol[role=list]{padding:0;list-style:none}}@layer tokens{:root{--scale-xs:.64;--scale-sm:.8;--scale-lg:1.25;--scale-xl:1.563;--scale-2xl:1.953;--scale-3xl:2.441;--base-font-size:clamp(1rem, .95rem + .25vw, 1.125rem);--base-spacing:clamp(1rem, .9rem + .5vw, 1.25rem);--text-xs:calc(var(--scale-xs) * var(--base-font-size));--text-sm:calc(var(--scale-sm) * var(--base-font-size));--text-base:var(--base-font-size);--text-lg:calc(var(--scale-lg) * var(--base-font-size));--text-xl:calc(var(--scale-xl) * var(--base-font-size));--text-2xl:calc(var(--scale-2xl) * var(--base-font-size));--text-3xl:calc(var(--scale-3xl) * var(--base-font-size));--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:calc(var(--scale-xs) * var(--base-spacing));--space-sm:calc(var(--scale-sm) * var(--base-spacing));--space-md:var(--base-spacing);--space-lg:calc(var(--scale-lg) * var(--base-spacing));--space-xl:calc(var(--scale-xl) * var(--base-spacing));--space-2xl:calc(var(--scale-2xl) * var(--base-spacing));--space-3xl:calc(var(--scale-3xl) * var(--base-spacing));--content-width:min(65ch, 90vw);--border-width:max(.0625rem, .1vw);--border-width-thick:max(.125rem, .2vw);--radius-sm:clamp(.125rem, .1rem + .125vw, .25rem);--radius:clamp(.25rem, .2rem + .25vw, .5rem);--color-text:#e8e8e0;--color-text-muted:#8b8b8b;--color-text-subtle:#858585;--color-bg:#101113;--color-bg-subtle:#16151d;--color-border:#2a2a2a;--color-primary:#00ff41;--color-primary-hover:#0c3;--color-highlight:#eedb96;--color-highlight-hover:#f5e6b3;--color-text-rgb:232, 232, 224;--color-bg-rgb:16, 17, 19;--color-primary-rgb:0, 255, 65;--font-family-base:var(--font-inter);--font-family-mono:"JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;--font-family-display:var(--font-family-mono);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.6;--line-height-relaxed:1.75;--letter-spacing-tight:-.02em;--letter-spacing-tighter:-.01em;--word-spacing-tight:-.2em;--opacity-subtle:.2;--opacity-strong:.8;--blur-sm:4px;--focus-outline-offset:.2em;--focus-outline-width:var(--border-width-thick);--focus-outline-color:var(--color-primary);--rhythm-quarter:calc(var(--line-height-normal) * .25em);--rhythm-half:calc(var(--line-height-normal) * .5em);--rhythm-single:calc(var(--line-height-normal) * 1em);--rhythm-1-5x:calc(var(--line-height-normal) * 1.5em);--rhythm-double:calc(var(--line-height-normal) * 2em);--z-sticky:20;--transition-fast:.15s ease}}@layer base{html{font-family:var(--font-family-base);font-size:var(--text-base);line-height:var(--line-height-normal);letter-spacing:.01em;color:var(--color-text);background-color:var(--color-bg)}body{margin:0;padding:0}body:before{content:"";opacity:.03;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' /%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}:focus-visible{outline:var(--focus-outline-width) solid var(--focus-outline-color);outline-offset:var(--focus-outline-offset)}[aria-hidden=true]{user-select:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer utilities{.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}header[data-astro-cid-c75fxstf]{padding:var(--space-md) 0}div[data-astro-cid-c75fxstf]{max-width:var(--content-width);padding:0 var(--space-md);justify-content:space-between;align-items:center;margin:0 auto;display:flex}header[data-astro-cid-c75fxstf]>div[data-astro-cid-c75fxstf]>a[data-astro-cid-c75fxstf]{font-family:var(--font-family-display);color:var(--color-primary);font-weight:var(--font-weight-bold);font-size:var(--text-lg);letter-spacing:var(--letter-spacing-tight);transition:color var(--transition-fast);text-decoration:none}header[data-astro-cid-c75fxstf]>div[data-astro-cid-c75fxstf]>a[data-astro-cid-c75fxstf]:hover{color:var(--color-primary)}nav[data-astro-cid-c75fxstf]{gap:calc(var(--space-xs) * .5);display:flex}nav[data-astro-cid-c75fxstf] a[data-astro-cid-c75fxstf]{color:var(--color-text);transition:color var(--transition-fast)}nav[data-astro-cid-c75fxstf] a[data-astro-cid-c75fxstf]:hover{color:var(--color-primary)}nav[data-astro-cid-c75fxstf] svg[data-astro-cid-c75fxstf]{display:block}@media (width<=480px){header[data-astro-cid-c75fxstf]>div[data-astro-cid-c75fxstf]>a[data-astro-cid-c75fxstf]{font-size:calc(var(--text-base) * 1.1)}nav[data-astro-cid-c75fxstf] svg[data-astro-cid-c75fxstf]{width:20px;height:20px}}footer[data-astro-cid-jo6i4kqk]{border-top:var(--border-width) solid var(--color-border);padding:var(--space-xl) 0;margin-top:var(--space-3xl)}div[data-astro-cid-jo6i4kqk]{max-width:var(--content-width);padding:0 var(--space-md);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;margin:0 auto}p[data-astro-cid-jo6i4kqk]{line-height:var(--line-height-relaxed);margin:0}a[data-astro-cid-jo6i4kqk]{color:var(--color-primary);text-decoration:underline;text-decoration-color:rgb(var(--color-primary-rgb) / .4)}a[data-astro-cid-jo6i4kqk]:hover{text-decoration-color:var(--color-primary)}.prose{max-width:var(--content-width)}.prose h1{font-family:var(--font-family-display);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);word-spacing:var(--word-spacing-tight);margin-top:0;margin-bottom:var(--rhythm-single);letter-spacing:var(--letter-spacing-tight)}.prose h2{font-family:var(--font-family-display);font-size:var(--text-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);word-spacing:var(--word-spacing-tight);text-wrap:balance;margin-top:var(--rhythm-double);margin-bottom:var(--rhythm-half);letter-spacing:var(--letter-spacing-tight)}.prose h3{font-family:var(--font-family-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);word-spacing:var(--word-spacing-tight);margin-top:var(--rhythm-1-5x);margin-bottom:var(--rhythm-half);letter-spacing:var(--letter-spacing-tighter)}.prose h4,.prose h5,.prose h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);word-spacing:var(--word-spacing-tight);margin-top:var(--rhythm-single);margin-bottom:var(--rhythm-half)}.prose p{line-height:var(--line-height-normal);margin-bottom:var(--rhythm-single);max-width:70ch}.prose h1+p,.prose h2+p,.prose h3+p,.prose h4+p,.prose h5+p,.prose h6+p{margin-top:0}.prose a{color:var(--color-primary);text-decoration:underline;text-decoration-color:rgb(var(--color-primary-rgb) / .4);text-underline-offset:.2em;transition:text-decoration-color var(--transition-fast)}.prose a:hover{text-decoration-color:var(--color-primary)}.prose ul,.prose ol{margin-bottom:var(--rhythm-single);padding-left:var(--space-xl);max-width:70ch}.prose li{line-height:var(--line-height-normal)}.prose li+li{margin-top:var(--rhythm-quarter)}.prose code{font-family:var(--font-family-mono);background-color:var(--color-bg-subtle);color:var(--color-text);border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border);padding:.2em .4em;font-size:.875em}.prose pre{font-family:var(--font-family-mono);background-color:var(--color-bg-subtle);padding:var(--space-lg);border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border);-webkit-overflow-scrolling:touch;margin:var(--rhythm-1-5x) 0;white-space:pre;box-shadow:inset 0 0 0 1px rgb(var(--color-primary-rgb) / .05);font-size:.875em;line-height:1.5;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0;font-size:1em}.prose pre::-webkit-scrollbar{height:8px}.prose pre::-webkit-scrollbar-track{background:0 0}.prose pre::-webkit-scrollbar-thumb{background:var(--color-highlight);border-radius:var(--radius-sm)}.prose pre::-webkit-scrollbar-thumb:hover{background:var(--color-highlight-hover)}.prose pre code span[style*="color:#7F848E"]{color:#9198a1!important}.prose pre code span[style*="color:#E06C75"]{color:#e5757e!important}@media (width<=640px){.prose pre{padding:var(--space-md);margin-left:calc(-1 * var(--space-md));margin-right:calc(-1 * var(--space-md));border-left:none;border-right:none;border-radius:0;font-size:.8125em}.prose code{font-size:.8em}}.prose blockquote{border-left:calc(var(--border-width-thick) * 2) solid var(--color-highlight);padding-left:var(--space-lg);padding-top:var(--space-md);padding-bottom:var(--space-md);margin-left:0;margin-top:var(--rhythm-1-5x);margin-bottom:var(--rhythm-1-5x);color:var(--color-text-muted);font-style:italic;line-height:var(--line-height-relaxed);max-width:70ch}.prose img{border-radius:var(--radius);margin:var(--rhythm-single) 0}.prose [data-table-scroll]{margin:var(--rhythm-1-5x) 0;-webkit-overflow-scrolling:touch;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--line-height-normal)}.prose thead{border-bottom:var(--border-width-thick) solid var(--color-primary)}.prose th{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);text-align:left;padding:var(--space-sm) var(--space-md);color:var(--color-primary);white-space:nowrap}.prose td{padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width) solid var(--color-border)}.prose tbody tr:hover{background-color:var(--color-bg-subtle)}.prose .heading-anchor{left:calc(-1 * var(--space-lg));opacity:0;transition:opacity var(--transition-fast);padding-right:var(--space-xs);position:absolute}.prose .heading-anchor,.prose .heading-anchor:hover,.prose .heading-anchor:after{box-shadow:none;background:0 0;border:none;text-decoration:none}.prose .anchor-icon{color:var(--color-primary);font-family:var(--font-family-mono);font-weight:var(--font-weight-normal)}.prose :where(h1,h2,h3,h4,h5,h6){position:relative}.prose :where(h1,h2,h3,h4,h5,h6):hover .heading-anchor{opacity:1}@media (width<=768px){.prose .heading-anchor{opacity:1;padding-right:var(--space-xs);position:static}}body{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}main{max-width:var(--content-width);padding:var(--space-lg) var(--space-md) var(--space-xl);width:100%;margin:0 auto}main:focus{outline:none}[data-skip-link]{top:var(--space-sm);left:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-bg);color:var(--color-primary);border:var(--border-width) solid var(--color-primary);border-radius:var(--radius-sm);z-index:var(--z-sticky);position:absolute;transform:translateY(-200%)}[data-skip-link]:focus{transform:none}
