*,:before,:after{scrollbar-width:none}::-webkit-scrollbar{display:none}@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{text-size-adjust:none;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;min-block-size:100dvh;line-height:1.6}img,picture,video,canvas,svg{max-inline-size:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}}@layer base{:root{--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.563rem;--text-3xl:1.953rem;--text-4xl:2.441rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--content-max:84rem;--sidebar-width:13rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-pill:9999px;--pink:#fa4af9;--purple:#a855f7;--aqua:#06b6d4;--violet:#7c3aed;--fuchsia:#f4e;--ultramarine:#1a0f91;--ultramarine-light:#2218a8;--ultramarine-deep:#120a6e;--cyan-bright:#40e8ff;--color-text-on-dark:#bcc6ec;--color-text-on-dark-muted:#9f9ad6;--color-text-on-dark-bright:#eef0ff;--color-text-on-pink:#120a6e;--color-text-on-pink-muted:#1a1080;--color-pill-on-pink:#ffffff40;--color-text-inverse:#fff;--tracking-label:.08em}:root[data-theme=light],:root:not([data-theme]){color-scheme:light;--color-text:var(--ultramarine);--color-text-muted:#4840a8;--color-bg:#fff;--color-bg-surface:#f3f1ff;--color-bg-code-inline:#e8e2ff;--color-text-code-inline:var(--pink);--color-border:#d8d2f0;--color-accent:var(--ultramarine);--color-accent-hover:var(--pink);--color-link:var(--ultramarine);--color-link-hover:var(--pink)}:root[data-theme=dark]{color-scheme:dark;--color-text:#eef0ff;--color-text-muted:#bcc6ec;--color-bg:var(--ultramarine);--color-bg-surface:var(--ultramarine-light);--color-bg-code-inline:var(--ultramarine-deep);--color-text-code-inline:var(--pink);--color-border:#3d30cc;--color-accent:var(--fuchsia);--color-accent-hover:var(--pink);--color-link:var(--cyan-bright);--color-link-hover:var(--fuchsia)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{font-family:system-ui,-apple-system,sans-serif;font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg)}a{color:var(--color-link);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--color-link) 40%, transparent);text-underline-offset:.15em;&:hover{color:var(--color-link-hover);text-decoration-color:var(--color-link-hover)}}code{background-color:var(--color-bg-code-inline);color:var(--color-text-code-inline);border-radius:var(--radius-sm);padding:.2em .4em;font-family:ui-monospace,Cascadia Code,JetBrains Mono,monospace;font-size:.875em;font-weight:500}pre{padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);white-space:pre-wrap;word-wrap:break-word;border:none;position:relative;overflow-x:auto;& code{color:inherit;font-size:var(--text-sm);white-space:inherit;word-wrap:inherit;background:0 0;border-radius:0;padding:0;font-weight:400}}.copy-btn{background-color:color-mix(in srgb, var(--color-text) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-text) 15%, transparent);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-family:system-ui,sans-serif;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;font-weight:600;transition:background-color .15s,color .15s;position:absolute;inset-block-start:var(--space-2);inset-inline-end:var(--space-2);&:hover{background-color:color-mix(in srgb, var(--color-text) 20%, transparent);color:var(--color-text)}&.copied{color:var(--aqua)}}@media (hover:hover){.copy-btn{opacity:0;transition:opacity .15s,background-color .15s,color .15s}pre:hover .copy-btn{opacity:1}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}h1,h2,h3,h4{scroll-margin-block-start:4rem;font-weight:700;line-height:1.25}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl);margin-block-start:var(--space-12)}h3{font-size:var(--text-2xl);margin-block-start:var(--space-8)}h4{font-size:var(--text-xl);margin-block-start:var(--space-6)}}@layer layout{.skip-link{background:var(--color-accent);color:var(--color-text-inverse);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:100;position:absolute;inset-block-start:-100%;inset-inline-start:var(--space-4);&:focus{inset-block-start:var(--space-4)}}.site-header{z-index:10;background-color:color-mix(in srgb, var(--color-bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);padding-block:var(--space-3);padding-inline:var(--space-6);position:sticky;inset-block-start:0;& nav{max-inline-size:var(--content-max);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}}.site-logo{align-items:center;gap:var(--space-2);font-size:var(--text-xl);color:var(--pink);font-weight:800;text-decoration:none;display:inline-flex;&:hover{color:var(--fuchsia);text-decoration:none}}.site-nav{gap:var(--space-2);list-style:none;display:flex;& a{padding-block:var(--space-1);padding-inline:var(--space-4);border-radius:var(--radius-pill);color:var(--color-text-muted);background-color:var(--color-bg-surface);font-size:var(--text-sm);align-items:center;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex;&:hover{color:var(--pink);background-color:color-mix(in srgb, var(--pink) 12%, var(--color-bg-surface))}&[aria-current=page],&[aria-current=true]{color:var(--color-accent);background-color:color-mix(in srgb, var(--color-accent) 15%, var(--color-bg-surface))}}}.gradient-rule{background:linear-gradient(90deg, var(--aqua), var(--purple), var(--pink));block-size:2px}.site-footer{padding-block:var(--space-8);padding-inline:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}@media (width<48rem){.site-header{padding-inline:var(--space-4);& nav{gap:var(--space-3);flex-wrap:wrap}}.site-nav{gap:var(--space-4);flex-wrap:wrap}}}@layer components{.prose{max-inline-size:80ch;line-height:1.75;&>*+*{margin-block-start:var(--space-4)}& h2{color:var(--pink)}& h1,& h2,& h3{text-wrap:balance}& p{text-wrap:pretty}& ul,& ol{padding-inline-start:var(--space-6)}& li+li{margin-block-start:var(--space-2)}& table{border-collapse:collapse;inline-size:100%;font-size:var(--text-sm);& th,& td{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);text-align:start}& th{background-color:var(--color-bg-surface);font-weight:600}& td strong{color:var(--pink)}}& .heading-anchor{opacity:0;color:var(--color-text-muted);margin-inline-start:var(--space-2);font-weight:400;text-decoration:none;transition:opacity .15s;&:after{content:"";vertical-align:middle;background-color:currentColor;block-size:.75em;inline-size:.75em;display:inline-block;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");mask-size:contain;mask-repeat:no-repeat}&:hover{color:var(--pink)}}& :is(h2,h3,h4):hover .heading-anchor{opacity:1}& blockquote{border-inline-start:3px solid var(--color-accent);color:var(--color-text-muted);padding-inline-start:var(--space-4);font-style:italic}& .callout{margin-block:var(--space-6);padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-bg-surface);border-inline-start-width:4px;&>*+*{margin-block-start:var(--space-3)}}& .callout-warning{border-color:color-mix(in srgb, var(--pink) 35%, var(--color-border));border-inline-start-color:var(--pink);background-color:color-mix(in srgb, var(--pink) 8%, var(--color-bg))}& .callout-title{font-weight:800;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--pink);margin-block-end:var(--space-2);display:block}& details{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);& summary{cursor:pointer;font-weight:600}&>*+*{margin-block-start:var(--space-3)}}}}.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}.theme-toggle[data-astro-cid-z4jru4n3]{border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-2);cursor:pointer;color:var(--color-text-muted);background:0 0;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:inline-flex}.theme-toggle[data-astro-cid-z4jru4n3]:hover{color:var(--color-accent);border-color:var(--color-accent)}:root[data-theme=dark] .icon-sun[data-astro-cid-z4jru4n3]{display:block}:root[data-theme=dark] .icon-moon[data-astro-cid-z4jru4n3],:root[data-theme=light] .icon-sun[data-astro-cid-z4jru4n3],:root:not([data-theme]) .icon-sun[data-astro-cid-z4jru4n3]{display:none}:root[data-theme=light] .icon-moon[data-astro-cid-z4jru4n3],:root:not([data-theme]) .icon-moon[data-astro-cid-z4jru4n3]{display:block}
