@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(*),[data-astro-transition-scope]{animation:none!important}}.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-l6lhmie6]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:border-color var(--dur-instant) var(--ease-out), color var(--dur-instant) var(--ease-out), box-shadow var(--dur-instant) var(--ease-out);flex:none;place-items:center;display:grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{border-color:var(--border-strong);color:var(--text);box-shadow:var(--elev-2)}.icon[data-astro-cid-l6lhmie6]{grid-area:1/1;width:17px;height:17px}.icon--sun[data-astro-cid-l6lhmie6]{display:none}[data-theme=dark] .icon--sun[data-astro-cid-l6lhmie6]{display:block}[data-theme=dark] .icon--moon[data-astro-cid-l6lhmie6]{display:none}.site-header[data-astro-cid-wpvy4v7s]{z-index:70;transition:transform var(--dur-base) var(--ease-out-expo);background:0 0;position:sticky;top:0;transform:translateZ(0)}.site-header[data-astro-cid-wpvy4v7s].is-hidden{transform:translateY(-100%)}.header-bar[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;gap:var(--space-24);height:var(--nav-h);max-width:var(--page-wide);padding-inline:var(--gutter);border-radius:var(--radius-pill);transform-origin:top;transition:transform var(--dur-slow) var(--ease-out-expo), border-color var(--dur-base) var(--ease-out-expo), background-color var(--dur-base) var(--ease-out-expo), box-shadow var(--dur-base) var(--ease-out-expo);will-change:transform;border:1px solid #0000;margin-inline:auto;display:flex;transform:translateZ(0)}.site-header[data-astro-cid-wpvy4v7s].is-scrolled .header-bar[data-astro-cid-wpvy4v7s]{border-color:color-mix(in srgb, var(--accent) 26%, var(--border));background-color:color-mix(in srgb, var(--surface) 88%, transparent);box-shadow:0 12px 40px -16px #00000080, 0 0 22px -3px color-mix(in srgb, var(--accent) 22%, transparent);backdrop-filter:blur(10px)saturate(1.4);transform:translateY(.5rem)scale(.985)}.brand[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-8);flex:none;display:flex}.brand__mark[data-astro-cid-wpvy4v7s]{width:26px;height:26px;color:var(--text);transition:transform var(--dur-base) var(--ease-out-expo);place-items:center;display:grid}.brand__mark[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{width:20px;height:20px}.brand__name[data-astro-cid-wpvy4v7s]{color:var(--text);font-size:var(--text-sm);letter-spacing:-.03em;font-weight:600}.brand__dim[data-astro-cid-wpvy4v7s]{color:var(--text-3);font-weight:400}.nav__links[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-4);display:flex}.nav__link[data-astro-cid-wpvy4v7s]{padding:var(--space-8) var(--space-12);color:var(--text-3);font-size:var(--text-sm);letter-spacing:-.02em;transition:color var(--dur-fast) var(--ease-out);font-weight:500;position:relative}.nav__link[data-astro-cid-wpvy4v7s]:after{content:"";left:var(--space-12);right:var(--space-12);border-radius:var(--radius-full);background:var(--accent);transform-origin:0;height:1.5px;transition:transform var(--dur-base) var(--ease-out-expo);position:absolute;bottom:2px;transform:scaleX(0)}.nav__link[data-astro-cid-wpvy4v7s]:hover{color:var(--text)}.nav__link[data-astro-cid-wpvy4v7s]:hover:after{transform:scaleX(1)}.nav__link[data-astro-cid-wpvy4v7s].is-active{color:var(--accent)}.nav__link[data-astro-cid-wpvy4v7s].is-active:after{transform:scaleX(1)}.nav__actions[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-8);flex:none;display:flex}.burger[data-astro-cid-wpvy4v7s]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;flex-direction:column;justify-content:center;gap:4px;width:32px;height:32px;padding:0 7px;display:none;position:relative}.burger[data-astro-cid-wpvy4v7s]:before{content:"";position:absolute;inset:-6px}.burger[data-astro-cid-wpvy4v7s] span[data-astro-cid-wpvy4v7s]{background:var(--text);height:1.5px;transition:transform var(--dur-base) var(--ease-out-quint), opacity var(--dur-fast) var(--ease-out-quint);display:block}.burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:first-child{transform:translateY(5.5px)rotate(45deg)}.burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:nth-child(2){opacity:0;transform:scaleX(0)}.burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:nth-child(3){transform:translateY(-5.5px)rotate(-45deg)}.drawer[data-astro-cid-wpvy4v7s]{inset:var(--nav-h) 0 0;z-index:80;background:var(--bg);opacity:0;transition:opacity var(--dur-instant) var(--ease-out-expo);position:fixed;overflow-y:auto}.drawer[data-astro-cid-wpvy4v7s].is-open{opacity:1;transition-duration:.3s}.drawer__inner[data-astro-cid-wpvy4v7s]{max-width:var(--page-max);padding:var(--space-32) var(--gutter) var(--space-48);align-content:start;gap:2px;margin-inline:auto;display:grid}.drawer__link[data-astro-cid-wpvy4v7s],.drawer__group[data-astro-cid-wpvy4v7s],.drawer__cta[data-astro-cid-wpvy4v7s]{opacity:0;transition:opacity var(--dur-slow) var(--ease-out-expo), transform var(--dur-slow) var(--ease-out-expo);transition-delay:calc(80ms + var(--i,0) * 45ms);transform:translateY(14px)}.drawer[data-astro-cid-wpvy4v7s].is-open .drawer__link[data-astro-cid-wpvy4v7s],.drawer[data-astro-cid-wpvy4v7s].is-open .drawer__group[data-astro-cid-wpvy4v7s],.drawer[data-astro-cid-wpvy4v7s].is-open .drawer__cta[data-astro-cid-wpvy4v7s]{opacity:1;transform:none}.drawer__link[data-astro-cid-wpvy4v7s]{align-items:baseline;gap:var(--space-12);padding:var(--space-16) 0;color:var(--text);font-size:var(--text-display-md);letter-spacing:-.04em;border-bottom:1px solid var(--border);font-weight:600;display:flex}.drawer__idx[data-astro-cid-wpvy4v7s]{font-size:var(--text-caption);color:var(--accent);font-weight:400}.drawer__group[data-astro-cid-wpvy4v7s]{margin-top:var(--space-24);gap:var(--space-8);display:grid}.drawer__title[data-astro-cid-wpvy4v7s]{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--text-4)}.drawer__sub[data-astro-cid-wpvy4v7s]{color:var(--text-3);font-size:var(--text-sm)}.drawer__cta[data-astro-cid-wpvy4v7s]{margin-top:var(--space-32);justify-self:start}@media (width<=1080px){.nav__links[data-astro-cid-wpvy4v7s]{display:none}.burger[data-astro-cid-wpvy4v7s]{display:flex}.nav__secondary[data-astro-cid-wpvy4v7s]{display:none}}@media (width<=560px){.brand__dim[data-astro-cid-wpvy4v7s],.nav__actions[data-astro-cid-wpvy4v7s] .btn--primary[data-astro-cid-wpvy4v7s]{display:none}}@media (width>=1081px){.drawer[data-astro-cid-wpvy4v7s]{display:none}}@media (prefers-reduced-motion:reduce){.site-header[data-astro-cid-wpvy4v7s].is-hidden{transform:none}}:root{--footer-char:#2f8a71}:root[data-theme=dark]{--footer-char:#4fae91}.footer[data-astro-cid-jo6i4kqk]{isolation:isolate;border-top:1px solid var(--border);padding-block:var(--space-64) 0;margin-top:0;position:relative;overflow:hidden}.footer__hand[data-astro-cid-jo6i4kqk]{top:var(--space-64);z-index:0;opacity:.85;pointer-events:none;transition:transform .1s linear;position:absolute}.footer__hand--left[data-astro-cid-jo6i4kqk]{left:-40px}.footer__hand--right[data-astro-cid-jo6i4kqk]{right:-40px;transform:scaleX(-1)}.footer__inner[data-astro-cid-jo6i4kqk]{z-index:2;gap:var(--space-48) var(--space-32);grid-template-columns:1.6fr repeat(4,1fr);display:grid;position:relative}.brand[data-astro-cid-jo6i4kqk]{color:var(--text);letter-spacing:-.02em;align-items:center;gap:10px;font-weight:500;display:inline-flex}.brand__mark[data-astro-cid-jo6i4kqk]{width:22px;height:22px}.brand__dim[data-astro-cid-jo6i4kqk]{color:var(--text-3);margin-left:5px;font-weight:400}.footer__tagline[data-astro-cid-jo6i4kqk]{margin-top:var(--space-16);max-width:26rem;color:var(--text-3);font-size:var(--text-sm);line-height:1.6}.footer__socials[data-astro-cid-jo6i4kqk]{gap:var(--space-16);margin-top:var(--space-24);flex-wrap:wrap;padding:0;list-style:none;display:flex}.footer__socials[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-3);font-size:var(--text-sm)}.footer__socials[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.footer__col-title[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono), monospace;font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--text-4);margin-bottom:var(--space-16)}.footer__col[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:10px;padding:0;list-style:none;display:grid}.footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-3);font-size:var(--text-sm);transition:color var(--dur-instant) var(--ease-out)}.footer__base[data-astro-cid-jo6i4kqk]{z-index:2;justify-content:space-between;gap:var(--space-16);margin-top:var(--space-64);padding-top:var(--space-24);border-top:1px solid var(--border);color:var(--text-4);font-size:var(--text-caption);flex-wrap:wrap;display:flex;position:relative}.footer__loc[data-astro-cid-jo6i4kqk]{letter-spacing:.06em}.footer__wordmark[data-astro-cid-jo6i4kqk]{z-index:1;margin:var(--space-24) 0 -.24em;text-align:center;letter-spacing:-.05em;color:color-mix(in srgb, var(--accent) 16%, var(--surface-inset));user-select:none;font-size:clamp(5rem,17vw,15rem);font-weight:600;line-height:.8;position:relative}@media (width<=960px){.footer__inner[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,1fr)}.footer__brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}.footer__hand[data-astro-cid-jo6i4kqk]{display:none}}.aurora[data-astro-cid-qkyfhp7w]{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.aurora__field[data-astro-cid-qkyfhp7w]{position:absolute;inset:0;mask-image:linear-gradient(#000 0%,#0009 22%,#00000024 40%,#0000 54%)}.aurora__blob[data-astro-cid-qkyfhp7w]{border-radius:var(--radius-full);filter:blur(80px);will-change:transform;width:42vmax;height:42vmax;position:absolute}.aurora__blob--a[data-astro-cid-qkyfhp7w]{opacity:.16;background:radial-gradient(circle at 40% 40%, var(--accent), transparent 62%);animation:52s ease-in-out infinite alternate aurora-a;top:-22%;left:-6%}.aurora__blob--b[data-astro-cid-qkyfhp7w]{opacity:.1;background:radial-gradient(circle at 60% 40%, var(--tint-blue), transparent 62%);animation:64s ease-in-out infinite alternate aurora-b;top:-16%;right:-10%}.aurora__blob--c[data-astro-cid-qkyfhp7w]{opacity:.08;background:radial-gradient(circle at 50% 45%, var(--tint-teal), transparent 62%);animation:58s ease-in-out infinite alternate aurora-c;top:4%;left:34%}[data-theme=dark] .aurora__blob--a[data-astro-cid-qkyfhp7w]{opacity:.5}[data-theme=dark] .aurora__blob--b[data-astro-cid-qkyfhp7w]{opacity:.34}[data-theme=dark] .aurora__blob--c[data-astro-cid-qkyfhp7w]{opacity:.3}.aurora__vignette[data-astro-cid-qkyfhp7w]{background:radial-gradient(ellipse 120% 78% at 50% 8%, transparent 38%, color-mix(in srgb, var(--bg) 72%, transparent) 100%);position:absolute;inset:0}[data-theme=dark] .aurora__vignette[data-astro-cid-qkyfhp7w]{background:radial-gradient(ellipse 116% 74% at 50% 6%, transparent 32%, color-mix(in srgb, var(--bg) 88%, transparent) 100%)}@keyframes aurora-a{0%{transform:translate(0,0)scale(1)}to{transform:translate(10vw,5vh)scale(1.14)}}@keyframes aurora-b{0%{transform:translate(0,0)scale(1.08)}to{transform:translate(-11vw,7vh)scale(.92)}}@keyframes aurora-c{0%{transform:translate(0,0)scale(.94)}to{transform:translate(7vw,-5vh)scale(1.18)}}@media (prefers-reduced-motion:reduce){.aurora__blob[data-astro-cid-qkyfhp7w]{animation:none}}:root{--ink:#171717;--on-primary:#fff;--gray-body:#4d4d4d;--gray-mute:#888;--gray-hairline:#ebebeb;--gray-hairline-strong:#a1a1a1;--white:#fff;--canvas-soft:#fafafa;--canvas-soft-2:#f5f5f5;--blue-link:#0070f3;--blue-link-deep:#0761d1;--blue-link-bg:#d3e5ff;--red-error:#e00;--amber-warning:#f5a623;--violet:#7928ca;--cyan:#50e3c2;--pink-highlight:#ff0080;--grad-develop-start:#007cf0;--grad-develop-end:#00dfd8;--grad-preview-start:#7928ca;--grad-preview-end:#ff0080;--grad-ship-start:#ff4d4d;--grad-ship-end:#f9cb28;--green-600:#3ecf8e;--tint-blue:#60a5fa;--tint-teal:#5eead4;--card-a:#0f5c4d;--card-b:#17356b;--card-c:#0d4a58;--green-700:#136c5c;--green-800:#0f5c4d;--text-display-2xl:4.5rem;--text-display-xl:3rem;--text-display-figure:2.5rem;--text-display-lg:2rem;--text-display-md:1.5rem;--text-display-sm:1.25rem;--text-body-lg:1.125rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-body:1rem;--text-sm:.875rem;--text-caption:.75rem;--text-code:.8125rem;--text-micro:.6875rem;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-40:40px;--space-48:48px;--space-64:64px;--space-96:96px;--space-128:128px;--space-192:192px;--space-20:20px;--space-72:72px;--space-80:80px;--space-100:100px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill-sm:64px;--radius-pill:100px;--radius-full:9999px;--page-max:1200px;--page-wide:1400px;--gutter:clamp(20px, 4vw, 32px);--nav-h:72px;--section-y:clamp(72px, 9vw, 128px);--section-y-sm:clamp(48px, 6vw, 80px);--card-pad:clamp(20px, 2.5vw, 28px);--grid-gap:clamp(16px, 2.2vw, 24px);--head-gap:clamp(40px, 5vw, 64px)}:root,:root[data-theme=light]{color-scheme:light;--bg:#edf3f2;--surface:#f8fbfa;--surface-2:#e6eeec;--surface-inset:#dfe9e7;--border:#d3e0dd;--border-strong:#94a9a5;--text:var(--ink);--text-2:var(--gray-body);--text-3:#5c5c5c;--text-4:#6b6b6b;--accent:var(--green-700);--accent-hover:var(--green-800);--accent-soft:#136c5c1a;--accent-contrast:#fff;--link:var(--blue-link-deep);--elev-1:0 0 0 1px #00000014;--elev-2:0 0 0 1px #00000014, 0 1px 1px #00000005, 0 2px 2px #0000000a;--elev-3:0 0 0 1px #00000014, 0 2px 2px #0000000a, 0 8px 8px -8px #0000000a;--elev-4:0 0 0 1px #00000014, 0 2px 2px #0000000a, 0 8px 16px -4px #0000000a;--elev-5:0 0 0 1px #00000014, 0 1px 1px #00000005, 0 8px 16px -4px #0000000a, 0 24px 32px -8px #0000000f;--elev-nav:0 1px 0 0 var(--border)}:root[data-theme=dark]{color-scheme:dark;--bg:#04070a;--surface:#080d11;--surface-2:#0c1318;--surface-inset:#060a0d;--border:#17242a;--border-strong:#3d5359;--text:#f4f8f8;--text-2:#b9c4c4;--text-3:#94a3a3;--text-4:#7c8b8b;--accent:var(--green-600);--accent-hover:#35b87c;--accent-soft:#3ecf8e1f;--accent-contrast:#06170f;--link:#3291ff;--elev-1:0 0 0 1px var(--border);--elev-2:0 0 0 1px var(--border);--elev-3:0 0 0 1px var(--border);--elev-4:0 0 0 1px #2c3b38;--elev-5:0 0 0 1px #2c3b38, 0 24px 32px -8px #0009;--elev-nav:0 1px 0 0 var(--border)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 24px);background:var(--bg)}body{color:var(--text-2);font-family:var(--font-sans), system-ui, sans-serif;font-feature-settings:"ss01", "ss02", "cv01";font-size:var(--text-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:0 0;min-height:100vh;line-height:1.5}h1,h2,h3,h4{color:var(--text);font-family:var(--font-display), var(--font-sans), system-ui, sans-serif;text-wrap:balance;font-weight:600}h1{font-size:clamp(2.25rem, 5vw, var(--text-display-xl));letter-spacing:-.05em;line-height:1}h2{font-size:clamp(1.625rem, 3.4vw, var(--text-display-lg));letter-spacing:-.04em;line-height:1.25}h3{font-size:var(--text-display-sm);letter-spacing:-.015em;letter-spacing:-.03em;line-height:1.4}p{text-wrap:pretty}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}code,kbd,samp,.mono{font-family:var(--font-mono), ui-monospace, monospace}::selection{background:var(--ink);color:#f2f2f2}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-link{z-index:999;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-size:var(--text-sm);padding:10px 16px;font-weight:500;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-y)}.section--tight{padding-block:var(--section-y-sm)}.section--alt:before,.strip:before{content:"";z-index:0;pointer-events:none;background-image:radial-gradient(color-mix(in srgb, var(--accent) 30%, transparent) 1px, transparent 1.5px);opacity:.4;background-size:26px 26px;position:absolute;inset:0;mask-image:radial-gradient(80% 70%,#000 20%,#0000 78%)}:root[data-theme=light] .section--alt:before,:root[data-theme=light] .strip:before{opacity:.3}.strip{position:relative}.strip>*{z-index:1;position:relative}.section-head{max-width:46rem;margin-bottom:var(--head-gap)}.section-head .tag{margin-bottom:var(--space-12)}.section-head p{margin-top:var(--space-16);color:var(--text-3);font-size:var(--text-body-lg);max-width:40rem;line-height:1.55}.page-rail{gap:var(--space-48);display:grid}@media (width>=1080px){.page-rail{grid-template-columns:200px minmax(0,1fr);gap:clamp(40px,4vw,72px)}}.page-rail>*{min-width:0}.page-rail [id]{scroll-margin-top:calc(var(--nav-h) + var(--space-24))}.grid{gap:var(--grid-gap);display:grid}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1100px){.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.grid--2,.grid--3,.grid--4{grid-template-columns:minmax(0,1fr)}}.grid>*{min-width:0}.bento{gap:var(--grid-gap);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.bento>*{grid-column:span 2;min-width:0}.bento--4>:first-child{grid-column:span 4}.bento--4>:nth-child(2),.bento--4>:nth-child(3){grid-column:span 2}.bento--4>:nth-child(4){grid-column:span 4}.bento--8>:nth-child(4),.bento--8>:nth-child(5){grid-column:span 3}@media (width<=1100px){.bento>*,.bento--4>:nth-child(n),.bento--8>:nth-child(n){grid-column:span 3}}@media (width<=640px){.bento>*,.bento--4>:nth-child(n),.bento--8>:nth-child(n){grid-column:span 6}}.bento>:nth-child(3n+1){--card-hue:var(--green-600)}.bento>:nth-child(3n+2){--card-hue:var(--tint-blue)}.bento>:nth-child(3n+3){--card-hue:var(--tint-teal)}.tag{align-items:center;gap:var(--space-8);font-family:var(--font-mono), monospace;font-size:var(--text-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);font-weight:400;display:inline-flex}.tag:before{content:"";border-radius:var(--radius-full);background:var(--accent);flex:none;width:5px;height:5px}.pill{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-2);font-size:var(--text-sm);display:inline-flex}.btn{justify-content:center;align-items:center;gap:var(--space-8);height:40px;padding-inline:var(--space-16);border-radius:var(--radius-pill);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out), border-color var(--dur-instant) var(--ease-out), color var(--dur-instant) var(--ease-out), box-shadow var(--dur-instant) var(--ease-out), transform var(--dur-instant) var(--ease-out);white-space:nowrap;border:1px solid #0000;font-weight:500;line-height:1.43;display:inline-flex}.btn:active{transform:scale(.97)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:var(--elev-2)}.btn--ghost:hover{border-color:var(--border-strong);box-shadow:var(--elev-3)}.btn--lg{height:48px;padding-inline:var(--space-24);font-size:var(--text-body)}.btn--nav{height:32px;padding-inline:var(--space-12);border-radius:var(--radius-sm);font-size:var(--text-sm)}.card{--lift:0px;--rx:0deg;--ry:0deg;--mx:50%;--my:-20%;--card-hue:var(--green-600);--card-base:#060c10;--card-tint:var(--card-hue);--card-ink:var(--card-hue);--card-edge:#ffffff12;--text:#fff;--text-2:#e5e5e5;--text-3:#d4d4d4;--text-4:#c4c4c4;--accent:var(--card-ink);--accent-soft:color-mix(in srgb, var(--card-hue) 16%, transparent);--border:#ffffff2e;--border-strong:#ffffff4d;--surface-2:#ffffff14;--surface-inset:#ffffff0f;--link:#93c5fd;gap:var(--space-8);padding:var(--card-pad);border-radius:var(--radius-xl);color:#e5e5e5;background:radial-gradient(132% 98% at 2% -8%, color-mix(in srgb, var(--card-hue) 52%, transparent), color-mix(in srgb, var(--card-hue) 12%, transparent) 42%, transparent 68%),  radial-gradient(90% 70% at 108% 112%, color-mix(in srgb, var(--tint-blue) 14%, transparent), transparent 62%),  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='0.13'/%3E%3C/svg%3E"), var(--card-base);box-shadow:0 1px 1px #0006, 0 8px 24px -6px #00000080, 0 24px 64px -16px color-mix(in srgb, var(--card-hue) 16%, transparent);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translate3d(0, var(--lift), 0);transition:transform var(--dur-instant) linear, box-shadow var(--dur-base) var(--ease-out-expo);background-size:auto,auto,34px,auto;flex-direction:column;display:flex;position:relative;overflow:hidden}.card:not(:hover){transition:transform var(--dur-base) var(--ease-out-expo), box-shadow var(--dur-base) var(--ease-out-expo)}@property --card-angle{syntax:"<angle>";inherits:false;initial-value:235deg}.card:before{content:"";z-index:2;pointer-events:none;border-radius:inherit;background:conic-gradient(from var(--card-angle) at 50% 50%, transparent 0deg, color-mix(in srgb, var(--card-hue) 85%, transparent) 42deg, color-mix(in srgb, var(--card-hue) 45%, var(--card-edge)) 74deg, color-mix(in srgb, var(--card-hue) 40%, transparent) 118deg, var(--card-edge) 200deg, var(--card-edge) 300deg, transparent 360deg);-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-position:0 0,0 0;mask-size:auto,auto;mask-repeat:repeat,repeat;mask-clip:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.card:hover:before{animation:6s linear infinite card-edge}@keyframes card-edge{0%{--card-angle:235deg}to{--card-angle:595deg}}.card:hover{--lift:-4px;box-shadow:0 1px 1px #0006, 0 14px 32px -8px #0000008c, 0 32px 80px -20px color-mix(in srgb, var(--card-hue) 30%, transparent)}@media (prefers-reduced-motion:reduce){.card:hover{--lift:0px}.card{transform:none}.card:before{animation:none}.card>.card__sweep,.card__rule{transform:scaleX(1)}}:root[data-theme=light] .card{--card-base:#fff;--card-ink:color-mix(in srgb, var(--card-hue) 42%, #0a3a30);--card-edge:#10201e17;--text:var(--ink);--text-2:#454f4d;--text-3:#57625f;--text-4:#6b7573;--accent:var(--card-ink);--accent-soft:color-mix(in srgb, var(--card-hue) 14%, transparent);--border:#1028241f;--border-strong:#1028243d;--surface-2:#1028240a;--surface-inset:#10282408;--link:var(--blue-link-deep);background:radial-gradient(132% 98% at 2% -8%, color-mix(in srgb, var(--card-hue) 20%, transparent), color-mix(in srgb, var(--card-hue) 5%, transparent) 42%, transparent 68%), radial-gradient(90% 70% at 108% 112%, color-mix(in srgb, var(--tint-blue) 9%, transparent), transparent 62%), var(--card-base);background-size:auto,auto,auto;box-shadow:0 0 0 1px #10282412,0 1px 2px #1028240a,0 10px 28px -12px #10282429}:root[data-theme=light] .card:hover{box-shadow:0 0 0 1px color-mix(in srgb, var(--card-hue) 30%, #10282412), 0 2px 4px #1028240d, 0 20px 44px -14px color-mix(in srgb, var(--card-hue) 26%, #10282433)}:root[data-theme=light] .card[data-index]:after{color:color-mix(in srgb, var(--card-hue) 22%, var(--text-4));opacity:.16}:root[data-theme=light] .card[data-index]:hover:after{opacity:.26}.card[data-index]:after{content:attr(data-index);z-index:0;pointer-events:none;font-family:var(--font-display), var(--font-sans), sans-serif;font-size:var(--text-display-xl);letter-spacing:-.05em;color:var(--card-hue);opacity:.1;transition:opacity var(--dur-base) var(--ease-out-expo);font-weight:700;line-height:1.1;position:absolute;top:0;right:14px}.card[data-index]:hover:after{opacity:.2}.card>.card__sweep{inset-inline:0;z-index:3;transform-origin:0;pointer-events:none;background:linear-gradient(90deg, var(--card-hue), color-mix(in srgb, var(--card-hue) 40%, transparent) 55%, transparent);height:1px;transition:transform var(--dur-slow) var(--ease-out-expo);position:absolute;top:0;transform:scaleX(0)}.card:hover>.card__sweep{transform:scaleX(1)}.card__rule{width:100%;height:1px;margin-top:var(--space-16);transform-origin:0;background:linear-gradient(90deg, var(--card-hue), transparent);transition:transform var(--dur-slow) var(--ease-out-expo);transform:scaleX(0)}.card:hover .card__rule{transform:scaleX(1)}.card>.card__glow{z-index:0;pointer-events:none;opacity:0;border-radius:inherit;background:radial-gradient(58% 52% at var(--mx) var(--my), color-mix(in srgb, var(--card-hue) 22%, transparent), transparent 72%);transition:opacity var(--dur-base) var(--ease-out);position:absolute;inset:0}.card:hover>.card__glow{opacity:1}.card>*{z-index:1;position:relative}.card h3,.card h2{color:#fff}.card p{color:#e5e5e5}.card__icon{--chip:var(--card-hue,var(--accent));border-radius:var(--radius-lg);background:linear-gradient(150deg, color-mix(in srgb, var(--chip) 26%, transparent), color-mix(in srgb, var(--chip) 7%, transparent));width:40px;height:40px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--chip) 42%, transparent), 0 2px 12px -2px color-mix(in srgb, var(--chip) 28%, transparent);color:var(--text);margin-bottom:var(--space-8);transition:box-shadow var(--dur-base) var(--ease-out-expo);place-items:center;display:grid;position:relative}.card:hover .card__icon{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--chip) 62%, transparent), 0 4px 18px -2px color-mix(in srgb, var(--chip) 44%, transparent)}.card__icon svg{stroke-width:1.75px;width:19px;height:19px}.card h3{color:var(--text);font-size:var(--text-display-sm);letter-spacing:-.03em;font-weight:600}.card p{color:var(--text-3);font-size:var(--text-sm);line-height:1.6}.card__list{gap:var(--space-8);padding:var(--space-12);border:1px solid color-mix(in srgb, var(--card-tint,var(--border)) 22%, var(--border));background:color-mix(in srgb, var(--card-tint,transparent) 7%, transparent);border-radius:14px;flex-wrap:wrap;margin-top:auto;list-style:none;display:flex}.card__list li{font-family:var(--font-mono), monospace;font-size:var(--text-caption);color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);padding:2px 10px}.prose{max-width:44rem;color:var(--text-2);font-size:var(--text-body);line-height:1.7}.prose>*+*{margin-top:var(--space-24)}.prose>p:first-of-type{font-size:var(--text-body-lg);color:var(--text);line-height:1.6}.prose--numbered{counter-reset:prose-h2}.prose--numbered h2{counter-increment:prose-h2;align-items:baseline;gap:var(--space-12);padding-top:var(--space-24);border-top:1px solid var(--border);display:flex}.prose--numbered h2:before{content:counter(prose-h2, decimal-leading-zero);font-family:var(--font-mono), monospace;font-size:var(--text-caption);letter-spacing:.08em;color:var(--accent)}.prose h2{font-size:var(--text-display-md);letter-spacing:-.04em;margin-top:var(--space-48)}.prose h3{font-size:var(--text-display-sm);margin-top:var(--space-32)}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:var(--space-8)}.prose a{color:var(--link);text-underline-offset:3px;text-decoration:underline}.prose strong{color:var(--text);font-weight:500}.prose code{font-size:var(--text-code);background:var(--surface-inset);border:1px solid var(--border);border-radius:var(--radius-xs);padding:2px 6px}.prose blockquote{border-left:2px solid var(--border-strong);padding-left:var(--space-20);color:var(--text-3)}.prose hr{border:0;border-top:1px solid var(--border)}.field{gap:var(--space-8);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);color:var(--text);font-weight:500}.field input,.field select{height:40px}.field input,.field textarea,.field select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-12);font-size:var(--text-sm);color:var(--text);width:100%;transition:border-color var(--dur-instant) var(--ease-out), box-shadow var(--dur-instant) var(--ease-out)}.field input::placeholder,.field textarea::placeholder{color:var(--gray-mute)}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--text);outline:none}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:none}.field textarea{resize:vertical;min-height:140px;padding-block:var(--space-12);line-height:1.6}.faq-item{border-bottom:1px solid var(--border)}.faq-item summary{cursor:pointer;padding:var(--space-20) var(--space-40) var(--space-20) 0;color:var(--text);font-size:var(--text-body);transition:color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out-expo);font-weight:500;list-style:none;position:relative}.faq-item summary:hover{color:var(--accent);transform:translate(6px)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"";border-right:1.5px solid var(--text-4);border-bottom:1.5px solid var(--text-4);width:8px;height:8px;transition:transform var(--dur-fast) var(--ease-out-expo);position:absolute;top:50%;right:8px;transform:translateY(-70%)rotate(45deg)}.faq-item[open] summary:after{transform:translateY(-20%)rotate(-135deg)}.faq-item>p,.faq-item>div{padding-bottom:var(--space-24);color:var(--text-3);font-size:var(--text-sm);max-width:46rem;line-height:1.7}:root{--dur-instant:.12s;--dur-fast:.2s;--dur-base:.32s;--dur-slow:.45s;--ease-out:cubic-bezier(.22, .61, .36, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--dur:var(--dur-slow)}.js [data-reveal]{opacity:0;will-change:opacity, transform;transform:translateY(22px)}.js [data-reveal]:not(.is-settled){transition:opacity var(--dur) var(--ease-out-expo), transform var(--dur) var(--ease-out-expo), filter var(--dur) var(--ease-out-expo)}.js [data-reveal=left]{transform:translate(-32px)}.js [data-reveal=right]{transform:translate(32px)}.js [data-reveal=scale]{transform:scale(.94)}.js [data-reveal=blur]{filter:blur(12px);transform:translateY(16px)}.js [data-reveal=rise]{transform:translateY(48px)scale(.98)}.js [data-reveal=flip]{transform-origin:50% 100%;transform:perspective(1200px)rotateX(12deg)translateY(36px)}.js [data-reveal].is-in{opacity:1;filter:none;transform:none}.js [data-reveal].is-in,.js [data-stagger].is-in>*,.is-in .split-word>span,.split-ready .split-word>span{will-change:auto}.js [data-stagger]>*{opacity:0;will-change:opacity, transform;transform:translateY(24px)}.js [data-stagger]:not(.is-settled)>*{transition:opacity var(--dur) var(--ease-out-expo), transform var(--dur) var(--ease-out-expo);transition-delay:calc(var(--i,0) * 45ms)}.js [data-stagger].is-in>*{opacity:1;transform:none}.split-word{vertical-align:bottom;display:inline-block;overflow:hidden}.js .split-word>span{transition:transform .6s var(--ease-out-expo);transition-delay:calc(var(--i,0) * 32ms);will-change:transform;display:inline-block;transform:translateY(105%)}.is-in .split-word>span,.split-ready .split-word>span{transform:none}.link-wipe{display:inline-block;position:relative}.link-wipe:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform var(--dur-base) var(--ease-out-expo);background:currentColor;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.link-wipe:hover:after{transform-origin:0;transform:scaleX(1)}.scroll-rail{z-index:60;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.scroll-rail__fill{width:100%;height:100%;transform:scaleX(var(--p,0));transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--tint-teal), var(--tint-blue))}:root[data-theme=light] .scroll-rail{height:2px}:root[data-theme=light] .scroll-rail__fill{background:var(--accent)}.parallax{transform:translate3d(0, var(--py,0px), 0);will-change:transform}.count{font-variant-numeric:tabular-nums}.scroll-cue{border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);width:20px;height:32px;position:relative}.scroll-cue:after{content:"";border-radius:var(--radius-full);background:var(--accent);width:2.5px;height:6px;animation:cue 1.9s var(--ease-out-expo) infinite;margin-left:-1.25px;position:absolute;top:6px;left:50%}@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}70%{opacity:0;transform:translateY(10px)}to{opacity:0}}.float{animation:7s ease-in-out infinite float}.float--slow{animation-duration:11s;animation-delay:-3s}@keyframes float{50%{transform:translateY(-10px)}}.section{isolation:isolate;position:relative}.section>*{z-index:1;position:relative}.js .section{overflow:clip}@supports (animation-timeline:view()){.js .section-head{animation-name:head-rise;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 8% cover 42%}@keyframes head-rise{0%{opacity:.55;transform:translateY(26px)}to{opacity:1;transform:none}}.js .section-head .tag:after{content:"";height:1px;margin-top:var(--space-12);background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 20%, transparent));transform-origin:0;animation-name:rule-grow;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 10% cover 55%;display:block}@keyframes rule-grow{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.js .bento>*{animation-name:card-settle;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 4% cover 34%}@keyframes card-settle{0%{transform:translateY(28px)scale(.985)}to{transform:none}}}@media (prefers-reduced-motion:reduce){[data-reveal],[data-stagger]>*,.split-word>span{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.float,.scroll-cue:after,.section:after,.section-head,.section-head .tag:after,.bento>*{animation:none!important}.section-head,.bento>*,.section-head .tag:after{opacity:1!important;transform:none!important}.parallax{transform:none!important}}:root{--filter-glass3d:blur(11px) brightness(1.06) saturate(1.35);--color-glass3d:#fbfdfd9e;--sheen-glass3d:0 0% 100%;--shadow-hue-glass3d:205 20% 20%;--veil:#f3f7f6b8;--veil-strong:#f3f7f6eb}:root[data-theme=dark]{--filter-glass3d:blur(11px) brightness(.82) saturate(1.35);--color-glass3d:#0d1e21bd;--sheen-glass3d:205 20% 90%;--shadow-hue-glass3d:205 20% 10%;--veil:#09100f8c;--veil-strong:#09100fe0}.glass3d,.contact__form,.pill{--noise-glass3d:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='0.18'/%3E%3C/svg%3E");z-index:4;box-shadow:0 0 0 1px hsl(var(--shadow-hue-glass3d) / .08), .7px .8px 1.2px -.4px hsl(var(--shadow-hue-glass3d) / .06), 1.3px 1.5px 2.2px -.8px hsl(var(--shadow-hue-glass3d) / .06), 2.3px 2.6px 3.9px -1.2px hsl(var(--shadow-hue-glass3d) / .06), 3.9px 4.4px 6.6px -1.7px hsl(var(--shadow-hue-glass3d) / .06), 6.5px 7.2px 10.9px -2.1px hsl(var(--shadow-hue-glass3d) / .06), 8px 9px 14px -2.5px hsl(var(--shadow-hue-glass3d) / .1);background-color:#0000;position:relative;overflow:hidden}.glass3d:before,.contact__form:before,.pill:before{content:"";pointer-events:none;border-radius:inherit;z-index:3;backdrop-filter:var(--filter-glass3d);background-color:color-mix(in srgb, var(--card-tint,transparent) 4%, var(--color-glass3d));background-image:linear-gradient(160deg, color-mix(in srgb, var(--card-tint,var(--accent)) 5%, transparent), transparent 48%), var(--noise-glass3d);background-repeat:no-repeat,repeat;background-size:cover,120px;position:absolute;inset:0;overflow:hidden}.glass3d:after,.contact__form:after,.pill:after{content:"";pointer-events:none;border-radius:inherit;z-index:5;box-shadow:inset 2px 2px 1px -3px hsl(var(--sheen-glass3d) / .8), inset 4px 4px 2px -6px hsl(var(--sheen-glass3d) / .3), inset 1.5px 1.5px 1.5px -.75px hsl(var(--sheen-glass3d) / .15), inset 1.5px 1.5px .25px hsl(var(--sheen-glass3d) / .03), inset 0 0 .25px .5px hsl(var(--sheen-glass3d) / .03);position:absolute;inset:0;overflow:hidden}.glass3d>*,.contact__form>*,.pill>*{z-index:6;position:relative}@media (prefers-reduced-motion:reduce){.glass3d:before,.contact__form:before,.pill:before{background-image:none}}.section--alt{background:var(--veil);border-block:1px solid var(--border)}.strip{background:var(--veil)}.footer{background:var(--veil);-webkit-backdrop-filter:blur(10px)}.page[data-astro-cid-ju4pidww]{z-index:1;position:relative}.rays[data-astro-cid-wrnn6olm]{pointer-events:none;opacity:.42;position:absolute;inset:0;overflow:hidden}[data-theme=light] .rays[data-astro-cid-wrnn6olm]{opacity:.14}.rays__aurora[data-astro-cid-wrnn6olm],.rays__overlay[data-astro-cid-wrnn6olm]{--stripe-color:#fff;--rays-stripes:repeating-linear-gradient(100deg, var(--stripe-color) 0%, var(--stripe-color) 7%, transparent 10%, transparent 12%, var(--stripe-color) 16%);--rays-rainbow:repeating-linear-gradient(100deg, var(--tint-blue) 10%, #3ecf8e 15%, var(--tint-blue) 20%, var(--tint-teal) 25%, var(--tint-blue) 30%)}.rays__aurora[data-astro-cid-wrnn6olm]{--stripe-color:#000;background-image:var(--rays-stripes), var(--rays-rainbow);filter:blur(10px)opacity(38%)saturate(130%);background-position:50%,50%;background-size:300%,200%;position:absolute;inset:0;mask-image:radial-gradient(at 100% 0,#000 40%,#0000 70%)}[data-theme=dark] .rays__aurora[data-astro-cid-wrnn6olm]{filter:blur(10px)opacity(50%)saturate(200%)}.rays__overlay[data-astro-cid-wrnn6olm]{--stripe-color:#000;background-image:var(--rays-stripes), var(--rays-rainbow);mix-blend-mode:difference;will-change:transform;background-repeat:repeat,repeat;background-size:100% 100%,50% 100%;width:200%;animation:60s linear infinite rays-drift;position:absolute;top:0;bottom:0;left:0}[data-theme=light] .rays__overlay[data-astro-cid-wrnn6olm]{display:none}@keyframes rays-drift{0%{transform:translate(0,0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.rays__overlay[data-astro-cid-wrnn6olm]{animation:none}}
