:root,:root[data-theme=dark]{color-scheme:dark;--theme-color:#000;--paper:#000;--paper-2:#05070b;--surface:#0a0a0a;--surface-2:#111217;--surface-3:#181a22;--ink:#fafafa;--ink-2:#d4d4d8;--muted:#a6a6a6;--faint:#8a8d96;--line:#2e2e2e;--line-strong:#3b3d46;--hairline:#1a1b1f;--control-fill:#ffffff09;--accent:#5b7cfa;--accent-soft:#5b7cfa1a;--accent-ring:#5b7cfa52;--good:#7cc49a;--warn:#e6a95a;--bad:#e98b83;--primary:#fafafa;--primary-hover:#d4d4d8;--on-primary:#000;--composer-fill:#0a0a0ad1;--composer-line:#2e2e2e99;--composer-shadow:0 25px 50px -12px #0000006b, 0 0 0 1px #ffffff06;--glass-fill:#14161e8f;--glass-fill-quiet:#0e0f1570;--glass-fill-strong:#0c0d12cc;--glass-line:#ffffff14;--glass-line-hover:#ffffff29;--glass-shadow:inset 0 1px 0 #ffffff0f, 0 18px 40px -24px #000000b3;--glass-shadow-lift:inset 0 1px 0 #ffffff17, 0 26px 50px -24px #000c;--aura-1:#5b7cfa42;--aura-2:#2dbeaa29;--aura-3:#f08c6e21}:root[data-theme=light]{color-scheme:light;--theme-color:#f6f7fa;--paper:#f6f7fa;--paper-2:#eef1f6;--surface:#fff;--surface-2:#f5f6f9;--surface-3:#eceff4;--ink:#101217;--ink-2:#33363d;--muted:#5d626d;--faint:#646973;--line:#d9dce3;--line-strong:#c7cbd4;--hairline:#e4e7ed;--control-fill:#10121709;--accent:#4568e8;--accent-soft:#4568e817;--accent-ring:#4568e840;--good:#23724a;--warn:#8a5a13;--bad:#b3372d;--primary:#101217;--primary-hover:#33363d;--on-primary:#fff;--composer-fill:#ffffffe0;--composer-line:#bec2cbb3;--composer-shadow:0 25px 50px -12px #1f29372e, 0 0 0 1px #10121705;--glass-fill:#ffffff9e;--glass-fill-quiet:#ffffff6b;--glass-fill-strong:#fafbfdd6;--glass-line:#10121714;--glass-line-hover:#10121729;--glass-shadow:inset 0 1px 0 #fffc, 0 18px 40px -26px #1f293747;--glass-shadow-lift:inset 0 1px 0 #ffffffe6, 0 26px 50px -24px #1f293757;--aura-1:#7896ff24;--aura-2:#50c8b91f;--aura-3:#ffaa8c24}:root{--font-display:-apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-sans:var(--font-body);--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--r-xs:8px;--r-sm:10px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--t-fast:.12s;--t-base:.2s;--t-slow:.42s;--ease-out:cubic-bezier(.22, .68, .24, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--glass-blur:blur(20px) saturate(150%);--content:1120px;--gutter:clamp(16px, 4vw, 40px);--nav-h:64px;--reveal-delay:0s}*,:before,:after{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth;min-width:320px;scroll-padding-top:calc(var(--nav-h) + 16px)}body{min-width:320px;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:0 0;margin:0;font-size:16px;line-height:1.55;overflow-x:hidden}h1,h2,h3,h4{text-wrap:balance}p,li,dd,dt,figcaption,blockquote{text-wrap:pretty}a{color:inherit}img,svg{max-width:100%}::selection{background:var(--accent-ring);color:var(--ink)}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{z-index:1000;border-radius:var(--r-xs);background:var(--primary);color:var(--on-primary);padding:8px 12px;font-size:13px;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap,.shell{width:min(var(--content), calc(100% - var(--gutter) * 2));margin-inline:auto}.eyebrow,.micro{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:500;line-height:1.5}.mono{font-family:var(--font-mono);letter-spacing:.02em;font-size:12px}.btn{border:1px solid var(--line);min-height:36px;color:var(--ink);font:inherit;letter-spacing:-.005em;white-space:nowrap;cursor:pointer;border-radius:var(--r-pill);transition:background-color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out), transform var(--t-base) var(--ease-spring);background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--glass-line-hover);background:var(--control-fill);transform:translateY(-1px)}.btn:active{background:var(--surface-2);transition-duration:var(--t-fast);transform:translateY(0)scale(.97)}.btn-primary{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.btn-primary:hover{border-color:var(--primary-hover);background:var(--primary-hover)}.btn-primary:active{background:var(--primary-hover)}.btn-ghost{color:var(--muted);border-color:#0000}.btn-ghost:hover{color:var(--ink);border-color:#0000}.btn:disabled,.btn[aria-disabled=true]{opacity:.48;cursor:not-allowed}.btn:disabled:hover{border-color:var(--line);background:0 0;transform:none}.glass{border:1px solid var(--glass-line);background:var(--glass-fill);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.btn:hover,.btn:active{transform:none}}.apple-mark[data-astro-cid-7l2ewrv2]{flex:none;display:block}:root,:root[data-theme=dark]{--cta-sheen:#5b7cfa52;--cta-rim:#5b7cfa}:root[data-theme=light]{--cta-sheen:#ffffff38;--cta-rim:#ffffffd9}.cta{--cta-h:48px;--cta-pad:4px;isolation:isolate;min-height:var(--cta-h);padding:0 calc(var(--cta-h) + 6px) 0 22px;border-radius:var(--r-pill);background:var(--primary);color:var(--on-primary);letter-spacing:-.005em;white-space:nowrap;cursor:pointer;transition:transform var(--t-fast) var(--ease-out);align-items:center;font-size:15px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.cta--sm{--cta-h:36px;--cta-pad:3px;padding-left:14px;font-size:14px}.cta:active{transform:scale(.98)}.cta:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cta__label{z-index:2;position:relative}.cta__knob{top:var(--cta-pad);right:var(--cta-pad);bottom:var(--cta-pad);z-index:0;width:calc(var(--cta-h) - 2 * var(--cta-pad));padding-right:calc((var(--cta-h) - 2 * var(--cta-pad) - 16px) / 2);border-radius:var(--r-pill);background:var(--accent);color:var(--on-primary);justify-content:flex-end;align-items:center;transition:width .56s cubic-bezier(.3,1.45,.5,1);display:flex;position:absolute}.cta__knob svg{flex:none;display:block}.cta:hover .cta__knob,.cta:focus-visible .cta__knob{width:calc(100% - 2 * var(--cta-pad))}.cta:after{content:"";z-index:1;border-radius:inherit;background-color:var(--cta-sheen);pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(110deg,#0000 38%,#000 50%,#0000 62%);mask-image:linear-gradient(110deg,#0000 38%,#000 50%,#0000 62%);-webkit-mask-position:150% 0;mask-position:150% 0;-webkit-mask-size:250% 100%;mask-size:250% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.cta:hover:after,.cta.is-shine:after{animation:cta-shine .9s var(--ease-in-out) 1}@keyframes cta-shine{0%{-webkit-mask-position:150% 0;mask-position:150% 0}to{-webkit-mask-position:-50% 0;mask-position:-50% 0}}.cta__rim{z-index:3;border:1.5px solid var(--cta-rim);border-radius:inherit;opacity:var(--cta-spec,0);mask-image:radial-gradient(80px circle at var(--cta-x,50%) var(--cta-y,50%), #000 0, transparent 100%);-webkit-mask-image:radial-gradient(80px circle at var(--cta-x,50%) var(--cta-y,50%), #000 0, transparent 100%);pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.cta,.cta__knob{transition:none}.cta:hover:after,.cta.is-shine:after{animation:none}}.nav[data-astro-cid-wpvy4v7s]{z-index:500;padding-top:8px;position:sticky;top:0}.nav__inner[data-astro-cid-wpvy4v7s]{height:calc(var(--nav-h) - 8px);border:1px solid var(--glass-line);border-radius:var(--r-pill);background:var(--glass-fill);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);transition:background-color var(--t-base) var(--ease-out), box-shadow var(--t-base) var(--ease-out);justify-content:space-between;align-items:center;gap:24px;padding-inline:14px 8px;display:flex}html.scrolled .nav__inner[data-astro-cid-wpvy4v7s]{background:var(--glass-fill-strong);box-shadow:var(--glass-shadow-lift)}.brand[data-astro-cid-wpvy4v7s]{color:var(--ink);align-items:center;gap:9px;text-decoration:none;display:inline-flex}.brand__word[data-astro-cid-wpvy4v7s]{font-family:var(--font-display);letter-spacing:-.02em;font-size:15px;font-weight:600}.nav__links[data-astro-cid-wpvy4v7s]{flex:1;justify-content:space-between;align-items:center;gap:24px;display:flex}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s]{align-items:center;gap:4px;margin:0 auto;padding:0;list-style:none;display:flex}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{border-radius:var(--r-pill);min-height:32px;color:var(--muted);transition:color var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out), transform var(--t-base) var(--ease-spring);align-items:center;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);background:var(--control-fill);transform:translateY(-1px)}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:active{transform:scale(.96)}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--ink);background:var(--accent-soft)}.nav__tools[data-astro-cid-wpvy4v7s]{align-items:center;gap:6px;display:flex}@media (width>=1120px){.nav__inner[data-astro-cid-wpvy4v7s]{position:relative}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s]{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.nav__tools[data-astro-cid-wpvy4v7s]{margin-left:auto}}.iconbtn[data-astro-cid-wpvy4v7s]{border-radius:var(--r-pill);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:color var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out), transform var(--t-slow) var(--ease-spring);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid}.iconbtn[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);background:var(--control-fill);transform:rotate(20deg)}.iconbtn[data-astro-cid-wpvy4v7s] .icon-moon[data-astro-cid-wpvy4v7s]{display:none}.iconbtn[data-astro-cid-wpvy4v7s][aria-pressed=true] .icon-sun[data-astro-cid-wpvy4v7s]{display:block}.iconbtn[data-astro-cid-wpvy4v7s][aria-pressed=false] .icon-sun[data-astro-cid-wpvy4v7s]{display:none}.iconbtn[data-astro-cid-wpvy4v7s][aria-pressed=false] .icon-moon[data-astro-cid-wpvy4v7s]{display:block}.nav__burger[data-astro-cid-wpvy4v7s]{border:1px solid var(--glass-line);border-radius:var(--r-pill);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:0 10px;display:none}.nav__burger[data-astro-cid-wpvy4v7s] span[data-astro-cid-wpvy4v7s]{background:var(--ink);height:1.5px;transition:transform var(--t-base) var(--ease-out);border-radius:2px;display:block}.nav__burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:first-child{transform:translateY(3.25px)rotate(45deg)}.nav__burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:last-child{transform:translateY(-3.25px)rotate(-45deg)}@media (width<=940px){.nav__burger[data-astro-cid-wpvy4v7s]{display:flex}.nav__links[data-astro-cid-wpvy4v7s]{top:calc(var(--nav-h) + 6px);left:var(--gutter);right:var(--gutter);border:1px solid var(--glass-line);border-radius:var(--r-xl);background:var(--glass-fill-strong);box-shadow:var(--glass-shadow-lift);-webkit-backdrop-filter:var(--glass-blur);flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 18px;display:none;position:absolute}.nav__links[data-astro-cid-wpvy4v7s].is-open{animation:menu-drop var(--t-base) var(--ease-spring);display:flex}@keyframes menu-drop{0%{opacity:0;transform:translateY(-6px)scale(.98)}}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s]{flex-direction:column;align-items:stretch;gap:0;margin:0}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{border-bottom:1px solid var(--hairline);border-radius:0;min-height:48px;padding:0 4px;font-size:16px;display:flex}.nav__links[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{box-shadow:inset 2px 0 0 var(--accent);background:0 0;padding-left:12px}.nav__tools[data-astro-cid-wpvy4v7s]{margin-top:16px}.nav__tools[data-astro-cid-wpvy4v7s] .nav__cta{flex:1}}.pw{height:clamp(96px,17vw,210px);font-family:var(--font-display);touch-action:pan-y;opacity:0;transition:opacity var(--t-slow) var(--ease-out);margin-top:clamp(2rem,5vw,3.5rem);position:relative}.pw.is-on{opacity:1}.pw canvas{width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.pw{transition:none}}@media print{.pw{display:none}}.foot[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--glass-line);border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--glass-fill-quiet);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);padding:clamp(3.5rem,7vw,5.5rem) 0 2.25rem;position:relative}.foot__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(240px,1.65fr) repeat(3,minmax(0,1fr));gap:clamp(2rem,5vw,4rem);display:grid}.brand[data-astro-cid-jo6i4kqk]{color:var(--ink);align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.brand[data-astro-cid-jo6i4kqk]:hover{text-decoration:none}.brand__word[data-astro-cid-jo6i4kqk]{font-family:var(--font-display);letter-spacing:-.02em;font-size:1rem;font-weight:600}.foot__brand[data-astro-cid-jo6i4kqk] .mono[data-astro-cid-jo6i4kqk]{color:var(--faint);font-family:var(--font-body);letter-spacing:0;margin:0;font-size:13px}.foot__tag[data-astro-cid-jo6i4kqk]{color:var(--muted);max-width:32ch;margin:1rem 0 .4rem;font-size:.9rem;line-height:1.6}.foot__col[data-astro-cid-jo6i4kqk] h2[data-astro-cid-jo6i4kqk]{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 .95rem;font-size:.72rem;font-weight:600}.foot__col[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.foot__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--muted);transition:color var(--t-fast) var(--ease-out), transform var(--t-base) var(--ease-spring);padding-block:.15rem;font-size:.88rem;text-decoration:none;display:inline-block}.foot__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--ink);text-decoration:none;transform:translate(3px)}.foot__base[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--hairline);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;margin-top:3rem;padding-top:1.4rem;font-size:.82rem;display:flex}.foot__base[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0}@media (width<=820px){.foot__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.foot__brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}@media (width<=460px){.foot__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr}}.aura{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.aura__wash{filter:blur(72px);will-change:transform;width:62vmax;height:62vmax;animation:aura-float 32s var(--ease-in-out) infinite alternate;border-radius:50%;position:absolute}.aura__wash--1{background:var(--aura-1);top:-28vmax;left:-14vmax}.aura__wash--2{background:var(--aura-2);animation-duration:38s;animation-direction:alternate-reverse;top:18vh;right:-30vmax}.aura__wash--3{background:var(--aura-3);animation-duration:44s;bottom:-34vmax;left:12vw}@keyframes aura-float{0%{transform:translate(0,0)scale(1)}50%{transform:translate(8vmax,6vmax)scale(1.12)}to{transform:translate(-6vmax,10vmax)scale(.94)}}.aura[data-still] .aura__wash{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.aura__wash{animation:none}}@media print{.aura{display:none}}
