@media(min-width:1024px){.hx-container:has([class*=hero])~* .sidebar-container,[class*=hero]~* .sidebar-container,body:has([class*=hero]) .sidebar-container{display:none !important}.hx-container:has([class*=hero])~* .max-xl\:hx-hidden,[class*=hero]~* .max-xl\:hx-hidden,body:has([class*=hero]) .max-xl\:hx-hidden{display:none !important}}@media(min-width:1024px){.hx-container:has([class*=hero])~* .hx-flex>article,.hx-container:has([class*=hero])~* .hx-flex>main,.hx-container:has([class*=hero])~* .hx-flex>.hx-w-full,[class*=hero]~* .hx-flex>article,[class*=hero]~* .hx-flex>main,[class*=hero]~* .hx-flex>.hx-w-full,body:has([class*=hero]) .hx-flex>article,body:has([class*=hero]) .hx-flex>main,body:has([class*=hero]) .hx-flex>.hx-w-full{max-width:100% !important;flex:1 1 100% !important}}@media(min-width:1024px){body.home,body:has([class*=hero]),.hx-container:has([class*=hero]){--hextra-sidebar-width:0px !important;--hextra-toc-width:0px !important;--hextra-content-max-width:1200px !important}body.home aside,body.home .sidebar-container,body.home [class*=toc],body:has([class*=hero]) aside,body:has([class*=hero]) .sidebar-container,body:has([class*=hero]) [class*=toc]{display:none !important}}@media(min-width:1024px){body.home main,body.home article,body:has([class*=hero]) main,body:has([class*=hero]) article{max-width:var(--hextra-content-max-width,1200px) !important;margin:0 auto !important;padding:0 2rem 5rem !important}body.home .hx-container,body:has([class*=hero]) .hx-container{max-width:100% !important}}.st-hero{margin-top:1.5rem;padding:3rem 2rem;border-radius:1.5rem;border:1px solid #e5e7eb;background:linear-gradient(180deg,#eef2ff 0%,#f8fafc 60%)}html.dark .st-hero{border-color:#262626;background:linear-gradient(180deg,#131a2e 0%,#111111 60%)}.st-hero-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center;max-width:72rem;margin:0 auto}@media(min-width:1024px){.st-hero{padding:4.5rem 3rem}.st-hero-grid{grid-template-columns:1.1fr 1fr;gap:3.5rem}}.st-compare-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:start;margin:1.5rem 0}@media(min-width:900px){.st-compare-grid{grid-template-columns:1fr 1fr}}.st-compare-col{display:flex;flex-direction:column;gap:.5rem}.st-compare-label{font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#6b7280;padding:0 .25rem}.st-compare-label.st-compare-label--highlight{color:#4f46e5}html.dark .st-compare-label.st-compare-label--highlight{color:#818cf8}.st-badge{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid #c7d2fe;background:#eef2ff;color:#4338ca;padding:.3rem .85rem;font-size:.75rem;font-weight:600;letter-spacing:.01em}html.dark .st-badge{border-color:#3730a3;background:#1e1b4b;color:#a5b4fc}.st-hero-title{margin:1.1rem 0 0;font-size:2.5rem;font-weight:800;line-height:1.15;letter-spacing:-.02em;color:#0f172a}html.dark .st-hero-title{color:#f8fafc}@media(min-width:640px){.st-hero-title{font-size:3rem}}.st-hero-tagline{margin:1.1rem 0 0;max-width:34rem;font-size:1.15rem;line-height:1.65;color:#475569}html.dark .st-hero-tagline{color:#a1a1aa}.st-hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2rem}.st-btn{display:inline-flex;align-items:center;gap:.4rem;border-radius:.6rem;padding:.65rem 1.3rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.st-btn-primary{background:#4f46e5;color:#fff;border:1px solid #4f46e5}.st-btn-primary:hover{background:#4338ca}.st-btn-secondary{background:0 0;color:#334155;border:1px solid #cbd5e1}.st-btn-secondary:hover{background:#f1f5f9}html.dark .st-btn-secondary{color:#e2e8f0;border-color:#3f3f46}html.dark .st-btn-secondary:hover{background:#1c1c1c}.st-hero-panel{overflow:hidden;border-radius:1rem;border:1px solid #e2e8f0;background:#fff;box-shadow:0 20px 40px -20px rgba(15,23,42,.25)}html.dark .st-hero-panel{border-color:#27272a;background:#18181b;box-shadow:none}.st-hero-panel-bar{display:flex;align-items:center;gap:.4rem;padding:.7rem 1rem;border-bottom:1px solid #e2e8f0}html.dark .st-hero-panel-bar{border-color:#27272a}.st-dot{width:.6rem;height:.6rem;border-radius:9999px}.st-dot-red{background:#f87171}.st-dot-yellow{background:#fbbf24}.st-dot-green{background:#4ade80}.st-hero-panel-code pre{margin:0 !important;border:none !important;border-radius:0 !important;background:0 0 !important}.st-hero-image{display:block;width:100%;max-width:22rem;margin:0 auto;border-radius:1rem}body.home h2,body:has([class*=hero]) h2{margin-top:3.5rem;font-size:1.6rem}.st-license{display:flex;align-items:flex-start;gap:1rem;margin:3rem 0 1rem;padding:1.5rem 1.75rem;border-radius:1rem;border:1px solid #e0e7ff;background:#f5f7ff}html.dark .st-license{border-color:#27272a;background:#16161a}.st-license-icon{flex:none;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:9999px;background:#e0e7ff;color:#4338ca}html.dark .st-license-icon{background:#1e1b4b;color:#a5b4fc}.st-license-icon svg{width:1.25rem;height:1.25rem}.st-license-title{margin:0 0 .25rem;font-size:1rem;font-weight:700;color:#0f172a}html.dark .st-license-title{color:#f8fafc}.st-license-text{margin:0;font-size:.925rem;line-height:1.6;color:#475569}html.dark .st-license-text{color:#a1a1aa}.hextra-footer{background:0 0 !important;border-top:1px solid #e5e7eb}html.dark .hextra-footer{border-top-color:#27272a}.hextra-footer>div{max-width:1200px !important;margin-left:auto !important;margin-right:auto !important}.st-footer{padding:3rem 0 2rem}.st-footer-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}@media(min-width:768px){.st-footer-grid{grid-template-columns:1.5fr repeat(3,1fr);gap:2rem}}.st-footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.st-footer-logo{font-size:1.15rem;font-weight:800;letter-spacing:-.01em;color:#0f172a;text-decoration:none}html.dark .st-footer-logo{color:#f8fafc}.st-footer-tagline{margin:0;max-width:20rem;font-size:.875rem;line-height:1.6;color:#64748b}html.dark .st-footer-tagline{color:#a1a1aa}.st-footer-github{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:9999px;border:1px solid #e2e8f0;color:#475569;transition:background-color .15s ease,color .15s ease}.st-footer-github:hover{background:#f1f5f9;color:#0f172a}html.dark .st-footer-github{border-color:#27272a;color:#a1a1aa}html.dark .st-footer-github:hover{background:#1c1c1c;color:#f8fafc}.st-footer-col{display:flex;flex-direction:column;gap:.65rem}.st-footer-heading{margin-bottom:.25rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#0f172a}html.dark .st-footer-heading{color:#f8fafc}.st-footer-col a{font-size:.875rem;color:#64748b;text-decoration:none;transition:color .15s ease}.st-footer-col a:hover{color:#4338ca}html.dark .st-footer-col a{color:#a1a1aa}html.dark .st-footer-col a:hover{color:#a5b4fc}.st-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid #e2e8f0;font-size:.8rem;color:#94a3b8}html.dark .st-footer-bottom{border-color:#27272a;color:#71717a}.st-footer-dot{opacity:.6}:root{--st-brand:#4f46e5;--st-brand-strong:#4338ca;--st-ink:#0f172a;--st-muted:#64748b;--st-border:#e5e7eb;--st-surface:#ffffff;--st-surface-2:#f8fafc}html.dark{--st-brand:#818cf8;--st-brand-strong:#a5b4fc;--st-ink:#f8fafc;--st-muted:#a1a1aa;--st-border:#27272a;--st-surface:#18181b;--st-surface-2:#131316}.st-section-head{max-width:42rem;margin:4.5rem auto 2.25rem;text-align:center}.st-section-eyebrow{display:inline-block;margin-bottom:.65rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--st-brand)}.st-section-title{margin:0 !important;padding:0 !important;border:none !important;font-size:2rem;font-weight:800;line-height:1.2;letter-spacing:-.02em;color:var(--st-ink)}.st-section-subtitle{margin:.85rem auto 0;max-width:38rem;font-size:1.05rem;line-height:1.6;color:var(--st-muted)}.st-logos{margin:3rem 0 1rem}.st-logos-title{margin:0 0 1.5rem;text-align:center;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--st-muted)}.st-marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.st-marquee-track{display:flex;width:max-content;gap:3rem;padding:.25rem 1.5rem;animation:st-marquee 42s linear infinite}.st-marquee:hover .st-marquee-track{animation-play-state:paused}@keyframes st-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.st-marquee-track{animation:none;flex-wrap:wrap;justify-content:center}}.st-logo-item{flex:none;font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:#94a3b8;opacity:.8;white-space:nowrap;transition:color .2s ease,opacity .2s ease}.st-logo-item:hover{color:var(--st-ink);opacity:1}html.dark .st-logo-item{color:#52525b}.st-stats{margin:3rem 0;padding:2.25rem 1.5rem;border-radius:1.25rem;border:1px solid var(--st-border);background:radial-gradient(120% 140% at 50% 0%,rgba(79,70,229,6%),transparent 60%),var(--st-surface-2)}html.dark .st-stats{background:radial-gradient(120% 140% at 50% 0%,rgba(129,140,248,.1),transparent 60%),var(--st-surface-2)}.st-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.75rem 1rem;text-align:center}@media(min-width:768px){.st-stats-grid{grid-template-columns:repeat(4,1fr)}}.st-stat{display:flex;flex-direction:column;gap:.35rem}.st-stat-value{font-size:2.25rem;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--st-brand)}.st-stat-label{font-size:.85rem;line-height:1.4;color:var(--st-muted)}.st-spotlight{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center;margin:2.5rem 0}@media(min-width:900px){.st-spotlight{grid-template-columns:1fr 1fr;gap:3.5rem}.st-spotlight--flip .st-spotlight-copy{order:2}}.st-spotlight-eyebrow{display:inline-block;margin-bottom:.6rem;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--st-brand)}.st-spotlight-title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--st-ink)}.st-spotlight-body{margin:.75rem 0 0;font-size:1rem;line-height:1.65;color:var(--st-muted)}.st-spotlight-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:1.1rem;font-size:.9rem;font-weight:600;color:var(--st-brand);text-decoration:none}.st-spotlight-link:hover{color:var(--st-brand-strong)}.st-spotlight-panel .st-hero-panel-code pre{font-size:.82rem}.st-compare-table-wrap{margin:2rem 0}.st-table-scroll{overflow-x:auto;border:1px solid var(--st-border);border-radius:1rem}.st-table{display:table !important;width:100% !important;min-width:720px;table-layout:fixed;border-collapse:collapse;overflow:visible !important;font-size:.9rem}.st-table th.st-table-feature,.st-table td.st-table-feature{width:32%}.st-table th:not(.st-table-feature),.st-table td.st-cell-center{width:17%}.st-table thead th{padding:1rem 1.1rem;text-align:center;font-weight:600;color:var(--st-muted);background:var(--st-surface-2);border-bottom:1px solid var(--st-border);white-space:nowrap}.st-table th.st-table-feature{text-align:left}.st-table th.st-table-primary{color:var(--st-brand);font-weight:800}.st-table tbody td{padding:.85rem 1.1rem;border-bottom:1px solid var(--st-border);color:var(--st-ink)}.st-table tbody tr:last-child td{border-bottom:none}.st-table td.st-table-feature{font-weight:500}.st-table td.st-cell-center{text-align:center}.st-table tbody td:nth-child(2),.st-table thead th:nth-child(2){background:rgba(79,70,229,5%)}html.dark .st-table tbody td:nth-child(2),html.dark .st-table thead th:nth-child(2){background:rgba(129,140,248,8%)}.st-mark{font-weight:700}.st-mark-yes{color:#16a34a}.st-mark-partial{color:#d97706}.st-mark-no{color:#cbd5e1}html.dark .st-mark-yes{color:#4ade80}html.dark .st-mark-partial{color:#fbbf24}html.dark .st-mark-no{color:#52525b}.st-table-legend{margin:.9rem 0 0;text-align:center;font-size:.8rem;color:var(--st-muted)}.st-testimonials{margin:2rem 0}.st-testimonials-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media(min-width:900px){.st-testimonials-grid{grid-template-columns:repeat(3,1fr)}}.st-quote-card{display:flex;flex-direction:column;gap:.9rem;margin:0;padding:1.6rem;border-radius:1rem;border:1px solid var(--st-border);background:var(--st-surface)}html.dark .st-quote-card{background:var(--st-surface)}.st-quote-stars{color:#f59e0b;font-size:.9rem;letter-spacing:.1em}.st-quote-text{margin:0;font-size:.95rem;line-height:1.6;color:var(--st-ink);border:none;padding:0;font-style:normal}.st-quote-meta{display:flex;align-items:center;justify-content:flex-start;gap:.7rem;margin-top:auto;text-align:left}.st-quote-person{display:flex;flex-direction:column;min-width:0}.st-quote-avatar{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;flex:none;border-radius:9999px;background:linear-gradient(135deg,var(--st-brand),#a855f7);color:#fff;font-weight:700;font-size:.9rem}.st-quote-name{display:block;font-size:.875rem;font-weight:700;color:var(--st-ink)}.st-quote-role{display:block;font-size:.8rem;color:var(--st-muted)}.st-final-cta{margin:4rem 0 2rem}.st-final-cta-inner{position:relative;overflow:hidden;padding:3.5rem 2rem;border-radius:1.5rem;text-align:center;background:radial-gradient(120% 120% at 0% 0%,rgba(168,85,247,.55),transparent 55%),linear-gradient(135deg,#4f46e5,#4338ca);box-shadow:0 30px 60px -30px rgba(79,70,229,.6)}.st-final-cta-title{margin:0;font-size:2rem;font-weight:800;letter-spacing:-.02em;color:#fff}.st-final-cta-subtitle{margin:.85rem auto 0;max-width:34rem;font-size:1.05rem;line-height:1.6;color:rgba(255,255,255,.85)}.st-final-cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem}.st-final-btn-primary{background:#fff;color:var(--st-brand-strong);border:1px solid #fff}.st-final-btn-primary:hover{background:#f1f5f9}.st-final-btn-secondary{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.4)}.st-final-btn-secondary:hover{background:rgba(255,255,255,.22)}.st-compare-col{min-width:0}.st-codecard{border:1px solid var(--st-border);border-radius:.75rem;overflow:hidden;background:var(--st-surface)}.st-codecard-tabs{display:flex;align-items:center;gap:.25rem;padding:.55rem .7rem 0;border-bottom:1px solid var(--st-border)}.st-codecard-tab{padding:.4rem .8rem;border:1px solid var(--st-border);border-bottom-color:var(--st-surface-2);border-radius:.4rem .4rem 0 0;margin-bottom:-1px;font-size:.78rem;font-weight:500;line-height:1.2;color:var(--st-ink);background:var(--st-surface-2)}.st-codecard :is(.highlight,pre){margin:0 !important;border:none !important;border-radius:0 !important;background:0 0 !important;overflow-x:auto !important}.st-compare-col .hextra-scrollbar{overflow:visible;border:1px solid var(--st-border);border-bottom:none;border-radius:.75rem .75rem 0 0;background:var(--st-surface)}html.dark .st-compare-col .hextra-scrollbar{background:var(--st-surface)}.st-compare-col .hextra-scrollbar>div{margin-top:0 !important;display:flex;align-items:center;gap:.25rem;padding:.55rem .7rem 0;border-bottom:1px solid var(--st-border) !important}.st-compare-col .hextra-tabs-toggle{margin:0 !important;padding:.4rem .8rem !important;border:1px solid transparent !important;border-radius:.4rem .4rem 0 0 !important;font-size:.78rem !important;font-weight:500 !important;line-height:1.2 !important;color:var(--st-muted) !important;background:0 0 !important;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.st-compare-col .hextra-tabs-toggle:hover{color:var(--st-ink) !important;background:var(--st-surface-2) !important}.st-compare-col .hextra-tabs-toggle[data-state=selected]{color:var(--st-ink) !important;background:var(--st-surface-2) !important;border-color:var(--st-border) !important;border-bottom-color:var(--st-surface-2) !important;margin-bottom:-1px !important}.st-compare-col .hextra-scrollbar+div{border:1px solid var(--st-border);border-top:none;border-radius:0 0 .75rem .75rem;background:var(--st-surface);overflow:hidden}html.dark .st-compare-col .hextra-scrollbar+div{background:var(--st-surface)}.st-compare-col .hextra-tabs-panel{padding:0 !important;margin:0 !important;border-radius:0 !important}.st-compare-col .hextra-tabs-panel :is(.highlight,pre){margin:0 !important;border:none !important;border-radius:0 !important;background:0 0 !important;overflow-x:auto !important}