:root{color-scheme:light dark;--bg:light-dark(#f6f7fb,#0a0c13);--bg-soft:light-dark(#eef0f7,#0e111a);--surface:light-dark(#fff,#121622);--surface-2:light-dark(#f3f4fa,#171b29);--border:light-dark(#e2e5ef,#222839);--border-strong:light-dark(#cdd2e1,#313852);--text:light-dark(#121624,#e8eaf2);--text-soft:light-dark(#363d52,#c3c8d8);--muted:light-dark(#5b6277,#8f97ad);--accent:light-dark(#4f46e5,#8b8cff);--accent-2:light-dark(#0891b2,#22d3ee);--accent-soft:light-dark(#4f46e514,#8b8cff1f);--ring:light-dark(#4f46e566,#8b8cff80);--g1:light-dark(#6366f1,#818cf8);--g2:light-dark(#a855f7,#c084fc);--g3:light-dark(#06b6d4,#22d3ee);--grad:linear-gradient(120deg, var(--g1) 0%, var(--g2) 50%, var(--g3) 100%);--shadow-sm:0 1px 2px light-dark(#1018280f,#0006);--shadow:0 18px 40px -18px light-dark(#10182838,#000000bf);--header-bg:light-dark(#f6f7fbc7,#0a0c13b8);--code-bg:light-dark(#f6f8fa,#0d1017);--mark-bg:light-dark(#facc1559,#facc1538);--radius:14px;--radius-sm:9px;--container:1120px;--gutter:clamp(16px, 4vw, 28px);--header-h:64px;--ease:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:16px;line-height:1.65;display:flex}main{flex:1}img,svg,video{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-display), var(--font-sans), sans-serif;letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.15}p{text-wrap:pretty;margin:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:6px}::selection{background:var(--accent-soft);color:var(--text)}code,kbd,pre{font-family:var(--font-mono), ui-monospace, monospace}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);padding:8px 14px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(64px,9vw,112px)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 32px;margin-bottom:clamp(28px,4vw,44px);display:flex}.eyebrow{font-family:var(--font-mono), monospace;letter-spacing:.04em;color:var(--accent);align-items:center;gap:8px;margin-bottom:10px;font-size:.8rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--grad);border-radius:2px;width:18px;height:2px}.section-title{font-size:clamp(1.75rem,3.6vw,2.5rem)}.section-sub{color:var(--muted);max-width:56ch;margin-top:10px}.gradient-text{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.btn{border:1px solid var(--border);background:var(--surface);height:44px;color:var(--text);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease), border-color .2s, box-shadow .25s var(--ease), background-color .2s;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding-inline:18px;font-size:.95rem;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.btn-primary{color:#fff;background:var(--grad);transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-position .5s var(--ease);background-position:0 0;background-size:160% 100%;border:0}.btn-primary:hover{background-position:100% 0;box-shadow:0 14px 30px -12px #7c3aed8c}.btn-icon{width:44px;padding:0}.chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:.82rem;line-height:1.5;display:inline-flex}a.chip,button.chip{cursor:pointer;font:inherit;font-size:.82rem;transition:border-color .2s,color .2s,background-color .2s}a.chip:hover,button.chip:hover{border-color:var(--accent);color:var(--accent)}.chip[aria-pressed=true],.chip[aria-current=page]{background:var(--accent);color:light-dark(#fff,#0a0c13);border-color:#0000}.chip .count{opacity:.7;font-variant-numeric:tabular-nums}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);position:relative}.card-glow{transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s}.card-glow:before{content:"";border-radius:inherit;background:var(--grad);-webkit-mask-composite:xor;opacity:0;transition:opacity .35s var(--ease);pointer-events:none;padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.card-glow:hover,.card-glow:focus-within{box-shadow:var(--shadow);border-color:#0000;transform:translateY(-4px)}.card-glow:hover:before,.card-glow:focus-within:before{opacity:1}.lang-dot{background:var(--lang,var(--muted));border-radius:50%;flex:none;width:10px;height:10px}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:.85rem;display:flex}.meta>span{align-items:center;gap:6px;display:inline-flex}.link-arrow{color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.link-arrow .icon{transition:transform .25s var(--ease)}.link-arrow:hover .icon{transform:translate(4px)}.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--delay,0s);transform:translateY(18px)}.js [data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js [data-reveal]{transform:none}}.prose{color:var(--text-soft);overflow-wrap:break-word;font-size:1.0625rem;line-height:1.8}.prose>*+*{margin-top:1.15em}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{color:var(--text);scroll-margin-top:calc(var(--header-h) + 24px);margin-top:2em}.prose h2{font-size:1.6rem}.prose h3{font-size:1.25rem}.prose h2+*,.prose h3+*{margin-top:.7em}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--ring);text-underline-offset:3px;transition:text-decoration-color .2s}.prose a:hover{text-decoration-color:currentColor}.prose strong{color:var(--text)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin-inline:0;padding:4px 0 4px 18px;font-style:italic}.prose hr{background:var(--border);border:0;height:1px;margin-block:2.5em}.prose img{border-radius:var(--radius-sm);border:1px solid var(--border);width:auto;height:auto;max-height:640px;box-shadow:var(--shadow-sm);margin-inline:auto}.prose p:has(>img:only-child){margin-block:1.6em}.prose mark{background:var(--mark-bg);color:inherit;border-radius:4px;padding:0 3px}.prose :not(pre)>code{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.15em .4em;font-size:.88em}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:8px 12px}.prose pre{border-radius:var(--radius-sm);border:1px solid var(--border);tab-size:4;padding:18px 20px;font-size:.88rem;line-height:1.7;position:relative;overflow-x:auto;background-color:var(--code-bg)!important}.astro-code,.astro-code span{color:light-dark(var(--shiki-light),var(--shiki-dark))}.prose .code-wrap{position:relative}.prose .copy-code{border:1px solid var(--border);background:var(--surface);color:var(--muted);font:500 .75rem var(--font-mono), monospace;cursor:pointer;opacity:0;border-radius:6px;padding:3px 10px;transition:opacity .2s,color .2s;position:absolute;top:8px;right:8px}.prose .code-wrap:hover .copy-code,.prose .copy-code:focus-visible{opacity:1}.prose .copy-code:hover{color:var(--accent)}@media (hover:none){.prose .copy-code{opacity:1}}@view-transition{navigation:auto}.btn kbd{border:1px solid var(--border);color:var(--muted);border-radius:5px;padding:1px 6px;font-size:.72rem;font-weight:500}@media (hover:none){.btn kbd{display:none}}:root:root{--pf-text:var(--text);--pf-text-secondary:var(--text-soft);--pf-text-muted:var(--muted);--pf-background:var(--surface);--pf-border:var(--border);--pf-border-focus:var(--accent);--pf-hover:var(--surface-2);--pf-mark:var(--text);--pf-skeleton:var(--surface-2);--pf-skeleton-shine:var(--border);--pf-outline-focus:var(--accent);--pf-shadow-lg:var(--shadow);--pf-modal-backdrop:light-dark(#10182859,#0009);--pf-font:var(--font-sans), system-ui, sans-serif;--pf-border-radius:10px;--pf-result-title-font-size:15px;--pf-result-excerpt-font-size:14px}:root[data-theme] :is(pagefind-modal,pagefind-modal-header,pagefind-modal-body,pagefind-modal-footer,pagefind-input,pagefind-results,pagefind-summary,pagefind-keyboard-hints){color-scheme:inherit}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);color:var(--muted);padding-block:28px;font-size:.875rem}.inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}p[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-soft);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--border-strong)}.links[data-astro-cid-jo6i4kqk]{gap:4px;display:flex}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{border-radius:999px;place-items:center;width:36px;height:36px;transition:color .2s,background-color .2s;display:grid}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--text);background:var(--accent-soft)}.logo[data-astro-cid-f7espo7c]{transition:transform .4s var(--ease);flex:none}a:hover>.logo[data-astro-cid-f7espo7c]{transform:rotate(-8deg)scale(1.05)}.site-header[data-astro-cid-nen7h5rs]{z-index:50;height:var(--header-h);background:var(--header-bg);-webkit-backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid #0000;transition:border-color .3s,box-shadow .3s;position:sticky;top:0}.site-header[data-astro-cid-nen7h5rs][data-scrolled]{border-bottom-color:var(--border)}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:24px;height:100%;display:flex}.brand[data-astro-cid-nen7h5rs]{font-family:var(--font-mono), monospace;letter-spacing:-.01em;align-items:center;gap:10px;font-size:.95rem;font-weight:600;display:inline-flex}.nav[data-astro-cid-nen7h5rs]{gap:4px;margin-left:auto;display:flex}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);border-radius:999px;padding:8px 12px;font-size:.92rem;font-weight:500;transition:color .2s,background-color .2s;position:relative}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:var(--accent-soft)}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--text)}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]:after{content:"";background:var(--grad);border-radius:2px;height:2px;position:absolute;bottom:2px;left:12px;right:12px}.actions[data-astro-cid-nen7h5rs]{align-items:center;gap:4px;display:flex}.icon-btn[data-astro-cid-nen7h5rs]{width:40px;height:40px;color:var(--muted);cursor:pointer;transition:color .2s, background-color .2s, transform .3s var(--ease);background:0 0;border:0;border-radius:999px;place-items:center;display:inline-grid}.icon-btn[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:var(--accent-soft)}[data-astro-cid-nen7h5rs][data-theme-toggle]:active{transform:rotate(30deg)}.icon-btn[data-astro-cid-nen7h5rs] .i-moon,.icon-btn[data-astro-cid-nen7h5rs] .i-close,.menu-btn[data-astro-cid-nen7h5rs],[data-theme=light] .icon-btn[data-astro-cid-nen7h5rs] .i-sun{display:none}[data-theme=light] .icon-btn[data-astro-cid-nen7h5rs] .i-moon{display:block}@media (width<=820px){.actions[data-astro-cid-nen7h5rs]{margin-left:auto}.menu-btn[data-astro-cid-nen7h5rs]{display:inline-grid}.nav[data-astro-cid-nen7h5rs]{top:var(--header-h);padding:8px var(--gutter) 16px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;flex-direction:column;gap:2px;position:absolute;left:0;right:0;transform:translateY(-8px)}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-radius:var(--radius-sm);padding:12px;font-size:1rem}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]:after{width:24px;bottom:6px;left:12px;right:auto}.site-header[data-astro-cid-nen7h5rs][data-open] .nav[data-astro-cid-nen7h5rs]{opacity:1;visibility:visible;transform:none}.site-header[data-astro-cid-nen7h5rs][data-open] .icon-btn[data-astro-cid-nen7h5rs] .i-menu{display:none}.site-header[data-astro-cid-nen7h5rs][data-open] .icon-btn[data-astro-cid-nen7h5rs] .i-close{display:block}}
