:root{--color-bg:#fff;--color-bg-alt:#fafafa;--color-surface:#fff;--color-border:#e4e4e7;--color-text:#18181b;--color-text-muted:#52525b;--color-text-faint:#71717a;--color-primary:#7c3aed;--color-primary-dark:#6d28d9;--color-primary-tint:#f3e8ff;--color-accent:#10b981;--shadow-sm:0 1px 2px #18181b0a;--shadow-md:0 8px 24px #18181b0f;--shadow-lg:0 20px 48px #7c3aed1f;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--container-w:1280px;--gutter:clamp(20px, 4vw, 48px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0c0a10;--color-bg-alt:#131018;--color-surface:#18151f;--color-border:#2b2733;--color-text:#f4f4f5;--color-text-muted:#a1a1aa;--color-text-faint:#71717a;--color-primary:#a78bfa;--color-primary-dark:#8b5cf6;--color-primary-tint:#a78bfa24;--color-accent:#34d399;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000059;--shadow-lg:0 20px 48px #00000073}}:root[data-theme=dark]{--color-bg:#0c0a10;--color-bg-alt:#131018;--color-surface:#18151f;--color-border:#2b2733;--color-text:#f4f4f5;--color-text-muted:#a1a1aa;--color-text-faint:#71717a;--color-primary:#a78bfa;--color-primary-dark:#8b5cf6;--color-primary-tint:#a78bfa24;--color-accent:#34d399;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000059;--shadow-lg:0 20px 48px #00000073}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px}.skip-link{z-index:200;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;padding:10px 16px;font-weight:600;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-text);margin:0;line-height:1.15}p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}.container{width:100%;max-width:calc(var(--container-w) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.container-narrow{max-width:calc(820px + var(--gutter) * 2)}.section{padding:96px 0}.section-alt{background:var(--color-bg-alt)}@media (width<=900px){.section{padding:64px 0}}.hero-band{background-image:url(/hero-gradient.svg);background-position:top;background-repeat:no-repeat;background-size:cover}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary);background:var(--color-primary-tint);border-radius:999px;align-items:center;gap:8px;margin-bottom:20px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.about-lead{margin:18px 0 16px;font-size:17px}.btn{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 26px;font-size:15px;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 8px 20px #7c3aed47}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:0 10px 24px #7c3aed57}.btn-ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.prose{min-width:0;max-width:100%;color:var(--color-text);font-size:17px;line-height:1.7}.prose h2{margin:44px 0 14px;font-size:26px;font-weight:700}.prose h3{margin:32px 0 10px;font-size:20px;font-weight:700}.prose p{margin:0 0 18px}.prose a{color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-primary-tint);text-underline-offset:3px;font-weight:600}.prose a:hover{text-decoration-color:var(--color-primary)}.prose ul,.prose ol{margin:0 0 18px;padding-left:24px}.prose li{margin-bottom:8px}.prose li::marker{color:var(--color-primary)}.prose strong{font-weight:700}.prose code{overflow-wrap:anywhere;background:var(--color-primary-tint);color:var(--color-primary-dark);border-radius:6px;padding:2px 6px;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.prose pre{border-radius:var(--radius-md);border:1px solid var(--color-border);max-width:100%;margin:0 0 22px;padding:18px 20px;font-size:14px;line-height:1.6;overflow-x:auto}.prose pre code{overflow-wrap:normal;color:inherit;font-size:inherit;background:0 0;padding:0}.prose blockquote{border-left:3px solid var(--color-primary);color:var(--color-text-muted);margin:0 0 18px;padding:4px 0 4px 18px}.prose hr{border:0;border-top:1px solid var(--color-border);margin:36px 0}.prose table{border-collapse:collapse;width:100%;margin:0 0 22px;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);min-width:140px;padding:10px 12px}.prose th{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);border-bottom-width:2px;font-size:12px;font-weight:600}.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}.logo[data-astro-cid-qmbhzs4e]{width:auto}.nav[data-astro-cid-vi6cectr]{z-index:100;width:min(var(--container-w), calc(100% - var(--gutter) * 2));backdrop-filter:blur(18px);background:#ffffffc7;border:1px solid #18181b0d;border-radius:999px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 8px 8px 20px;display:grid;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 0 32px #7c3aed24}.nav-on-dark[data-astro-cid-vi6cectr]{background:#ffffffeb}.nav-brand[data-astro-cid-vi6cectr]{align-items:center;display:flex}.nav-links[data-astro-cid-vi6cectr]{justify-content:center;gap:2px;font-size:14px;font-weight:500;display:flex}.nav-item[data-astro-cid-vi6cectr]{position:relative}.nav-link[data-astro-cid-vi6cectr]{color:var(--color-text-muted);border-radius:999px;align-items:center;gap:6px;padding:9px 14px;transition:background .2s,color .2s;display:inline-flex}.nav-link[data-astro-cid-vi6cectr]:hover,.nav-has-menu[data-astro-cid-vi6cectr]:hover .nav-link[data-astro-cid-vi6cectr],.nav-menu-open[data-astro-cid-vi6cectr] .nav-link[data-astro-cid-vi6cectr]{color:var(--color-text);background:var(--color-bg-alt)}.nav-link[data-astro-cid-vi6cectr].active{color:var(--color-primary);font-weight:600}.nav-link[data-astro-cid-vi6cectr] svg[data-astro-cid-vi6cectr]{transition:transform .2s}.nav-has-menu[data-astro-cid-vi6cectr]:hover .nav-link[data-astro-cid-vi6cectr] svg[data-astro-cid-vi6cectr],.nav-menu-open[data-astro-cid-vi6cectr] .nav-link[data-astro-cid-vi6cectr] svg[data-astro-cid-vi6cectr]{transform:rotate(180deg)}.nav-menu[data-astro-cid-vi6cectr]{background:var(--color-surface);border:1px solid var(--color-border);opacity:0;visibility:hidden;border-radius:18px;width:340px;padding:8px;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%,6px);box-shadow:0 20px 48px #18181b1f}.nav-menu[data-astro-cid-vi6cectr]:before{content:"";height:12px;position:absolute;top:-12px;left:0;right:0}.nav-has-menu[data-astro-cid-vi6cectr]:hover .nav-menu[data-astro-cid-vi6cectr],.nav-menu-open[data-astro-cid-vi6cectr] .nav-menu[data-astro-cid-vi6cectr]{opacity:1;visibility:visible;transform:translate(-50%)}.nav-has-menu[data-astro-cid-vi6cectr].nav-menu-suppress:not(.nav-menu-open):hover .nav-menu[data-astro-cid-vi6cectr]{opacity:0;visibility:hidden}.nav-menu-item[data-astro-cid-vi6cectr]{border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;transition:background .15s;display:flex}.nav-menu-item[data-astro-cid-vi6cectr]:hover,.nav-menu-item[data-astro-cid-vi6cectr]:focus-visible{background:var(--color-primary-tint)}.nav-menu-item[data-astro-cid-vi6cectr].active .nav-menu-title[data-astro-cid-vi6cectr]{color:var(--color-primary)}.nav-menu-title[data-astro-cid-vi6cectr]{color:var(--color-text);font-size:14px;font-weight:600}.nav-menu-desc[data-astro-cid-vi6cectr]{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.nav-menu-all[data-astro-cid-vi6cectr]{border-top:1px solid var(--color-border);color:var(--color-primary);margin-top:4px;padding:10px 14px;font-size:13px;font-weight:600;display:block}.nav-actions[data-astro-cid-vi6cectr]{align-items:center;display:flex}.nav-cta[data-astro-cid-vi6cectr]{padding:10px 18px;font-size:14px}.btn[data-astro-cid-vi6cectr] svg[data-astro-cid-vi6cectr]{flex-shrink:0}.nav-actions[data-astro-cid-vi6cectr] .btn-primary[data-astro-cid-vi6cectr],.nav-mobile[data-astro-cid-vi6cectr] .btn-primary[data-astro-cid-vi6cectr]{box-shadow:none}.nav-toggle[data-astro-cid-vi6cectr]{background:0 0;border:none;flex-direction:column;gap:4px;padding:8px;display:none}.nav-toggle[data-astro-cid-vi6cectr] span[data-astro-cid-vi6cectr]{background:var(--color-text);width:20px;height:2px}.nav-mobile[data-astro-cid-vi6cectr]{display:none}@media (width<=900px){.nav[data-astro-cid-vi6cectr]{grid-template-columns:auto auto;justify-content:space-between;transition:border-radius .2s}.nav-links[data-astro-cid-vi6cectr],.nav-cta[data-astro-cid-vi6cectr]{display:none}.nav-toggle[data-astro-cid-vi6cectr]{display:flex}.nav[data-astro-cid-vi6cectr].nav-mobile-open{border-radius:28px;max-height:calc(100dvh - 40px);overflow-y:auto}.nav[data-astro-cid-vi6cectr].nav-mobile-open .nav-mobile[data-astro-cid-vi6cectr]{border-top:1px solid var(--color-border);flex-direction:column;grid-column:1/-1;gap:2px;margin-top:8px;padding:8px 12px 16px;display:flex}.nav-mobile-link[data-astro-cid-vi6cectr]{color:var(--color-text);padding:12px 10px;font-weight:600}.nav-mobile-sub[data-astro-cid-vi6cectr]{color:var(--color-text-muted);padding:8px 10px 8px 24px;font-size:14px}.nav-mobile-link[data-astro-cid-vi6cectr].active,.nav-mobile-sub[data-astro-cid-vi6cectr].active{color:var(--color-primary)}.nav-mobile[data-astro-cid-vi6cectr] .btn[data-astro-cid-vi6cectr]{margin-top:12px}}.footer[data-astro-cid-oenwriqq]{border-top:1px solid var(--color-border);padding:64px 0 32px}.footer-grid[data-astro-cid-oenwriqq]{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:40px;display:grid}.footer-brand[data-astro-cid-oenwriqq] p[data-astro-cid-oenwriqq]{max-width:340px;color:var(--color-text-muted);margin-top:14px;font-size:14px}.footer-email[data-astro-cid-oenwriqq]{color:var(--color-primary);margin-top:14px;font-size:14px;font-weight:600;display:inline-block}.footer-col-title[data-astro-cid-oenwriqq]{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:16px;font-size:12px;font-weight:600}.footer-col[data-astro-cid-oenwriqq] ul[data-astro-cid-oenwriqq]{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.footer-col[data-astro-cid-oenwriqq] a[data-astro-cid-oenwriqq],.footer-bottom[data-astro-cid-oenwriqq] a[data-astro-cid-oenwriqq]{color:var(--color-text-muted);font-size:14px}.footer-col[data-astro-cid-oenwriqq] a[data-astro-cid-oenwriqq]:hover,.footer-bottom[data-astro-cid-oenwriqq] a[data-astro-cid-oenwriqq]:hover{color:var(--color-primary)}.footer-bottom-links[data-astro-cid-oenwriqq]{gap:18px;display:flex}.footer-bottom[data-astro-cid-oenwriqq]{border-top:1px solid var(--color-border);color:var(--color-text-faint);justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;font-size:13px;display:flex}@media (width<=860px){.footer-grid[data-astro-cid-oenwriqq]{grid-template-columns:1fr 1fr}.footer-brand[data-astro-cid-oenwriqq]{grid-column:1/-1}}@media (width<=480px){.footer-grid[data-astro-cid-oenwriqq]{grid-template-columns:1fr}.footer-bottom[data-astro-cid-oenwriqq]{flex-direction:column}}
