@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap";:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--c-bg: #f8f7ff;--c-bg-subtle: #f1f0ff;--c-bg-muted: #e8e6ff;--c-bg-sunken: #ddd9ff;--c-border: #d4d0f0;--c-border-strong: #bfbae8;--c-text: #1a1535;--c-text-secondary: #3d3660;--c-text-muted: #6b63a0;--c-text-faint: #9990c8;--c-accent: #7c3aed;--c-accent-hover: #6d28d9;--c-accent-soft: #f3f0ff;--c-accent-border: #c4b5fd;--c-on-accent: #ffffff;--c-success: #059669;--c-success-soft: #ecfdf5;--c-warning: #b45309;--c-warning-soft: #fffbeb;--c-danger: #dc2626;--c-danger-soft: #fef2f2;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--sh-xs: 0 1px 2px rgba(124, 58, 237, .06);--sh-sm: 0 1px 2px rgba(124, 58, 237, .06), 0 1px 3px rgba(124, 58, 237, .04);--sh-md: 0 1px 3px rgba(124, 58, 237, .06), 0 8px 24px -14px rgba(124, 58, 237, .18);--sh-lg: 0 2px 6px rgba(124, 58, 237, .06), 0 24px 56px -24px rgba(124, 58, 237, .22);--ring: 0 0 0 3px rgba(124, 58, 237, .2);--ease: cubic-bezier(.32, .72, 0, 1);--dur: .18s;--transition: all var(--dur) var(--ease);--max-w: 1120px;--gutter: 24px;--header-h: 64px;--primary: var(--c-accent);--secondary: var(--c-accent-hover);--accent: var(--c-text);--background: var(--c-bg);--surface: var(--c-bg-subtle);--surface-light: var(--c-bg-muted);--text: var(--c-text);--text-muted: var(--c-text-muted);--glass-border: var(--c-border);--primary-glow: rgba(124, 58, 237, .12);--grad-primary: var(--c-accent);--shadow-sm: var(--sh-sm);--shadow-md: var(--sh-md);--shadow-lg: var(--sh-lg);--c-celestial-1: #7c3aed;--c-celestial-2: #0ea5e9;--c-celestial-3: #a855f7;--c-celestial-glow: rgba(124, 58, 237, .15);--c-celestial-glow-teal: rgba(14, 165, 233, .12)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}body{font-family:var(--font-sans);font-size:16px;line-height:1.6;background-color:var(--c-bg);color:var(--c-text);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:600;line-height:1.2;letter-spacing:-.022em;color:var(--c-text);text-wrap:balance}p{text-wrap:pretty}a{color:inherit}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}code,pre,kbd{font-family:var(--font-mono)}::selection{background:var(--c-accent-soft);color:var(--c-accent-hover)}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--c-border-strong);border:3px solid var(--c-bg);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--c-text-faint)}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:96px}.section-tight{padding-block:64px}.eyebrow{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-muted)}.section-head{max-width:640px;margin-bottom:48px}.section-head.is-centered{margin-inline:auto;text-align:center}.section-title{font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem);font-weight:600;letter-spacing:-.028em;margin-bottom:12px}.section-subtitle{font-size:1.0625rem;line-height:1.6;color:var(--c-text-muted)}.text-highlight,.text-gradient{color:var(--c-accent)}.btn-primary,.btn-secondary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding-inline:20px;border:1px solid transparent;border-radius:var(--r-md);font-size:.9375rem;font-weight:500;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:var(--c-on-accent)!important;box-shadow:0 4px 20px #7c3aed4d}.btn-primary:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 6px 28px #7c3aed73}.btn-secondary{background:#fff;border-color:var(--c-accent-border);color:var(--c-accent)!important;box-shadow:var(--sh-xs)}.btn-secondary:hover{background:var(--c-accent-soft);border-color:var(--c-accent)}.btn-ghost{background:transparent;color:var(--c-text-secondary)!important}.btn-ghost:hover{background:var(--c-bg-muted);color:var(--c-text)!important}.btn-primary:disabled,.btn-secondary:disabled{opacity:.55;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.35}}.animate-fade-in{animation:fadeIn .5s var(--ease) both}.animate-slide-up{animation:slideUp .55s var(--ease) both}.animate-spin{animation:spin 1s linear infinite}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 768px){:root{--gutter: 20px}.section{padding-block:64px}.section-tight{padding-block:48px}.section-head{margin-bottom:32px}}body.no-ads .adsbygoogle,body.no-ads .google-auto-placed,body.no-ads iframe,body.no-ads #google_ads_iframe_proxy,body.no-ads google-on-screen-pop-up-banner,body.no-ads [id^=aswift],body.no-ads [class^=aswift],body.no-ads [id^=google_ads],body.no-ads [class^=google_ads]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.cc-header{position:sticky;top:0;z-index:1000;width:100%;background:#f8f7ffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #d4d0f0}.cc-nav-container{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter);height:var(--header-h);display:flex;align-items:center;gap:32px}.cc-logo{display:inline-flex;align-items:center;gap:10px;font-size:1.0625rem;font-weight:600;letter-spacing:-.02em;color:#7c3aed;text-decoration:none;flex-shrink:0}.cc-logo img{height:26px;width:auto}.cc-logo:hover{color:#6d28d9;opacity:.85}.cc-desktop-nav{display:none;align-items:center;gap:4px;height:100%;flex:1}@media (min-width: 1024px){.cc-desktop-nav{display:flex}}.cc-nav-item{position:relative;height:100%;display:flex;align-items:center}.cc-nav-link{display:inline-flex;align-items:center;gap:5px;height:34px;padding-inline:12px;border-radius:var(--r-sm);font-size:.9375rem;font-weight:500;color:var(--c-text-secondary);cursor:default;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.cc-nav-item:hover .cc-nav-link{background:var(--c-bg-muted);color:#7c3aed}.cc-chevron{width:14px;height:14px;color:var(--c-text-faint);transition:transform var(--dur) var(--ease)}.cc-nav-item:hover .cc-chevron{transform:rotate(180deg);color:var(--c-text-muted)}.cc-dropdown{position:absolute;top:calc(100% - 4px);left:0;min-width:250px;padding:8px;background:#f8f7ff;border:1px solid #d4d0f0;border-radius:var(--r-xl);box-shadow:var(--sh-md);display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur)}.cc-nav-item:hover .cc-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.cc-dropdown.cc-mega{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:500px;gap:2px}.cc-nav-item:last-child .cc-dropdown{left:auto;right:0}.cc-dropdown a,.cc-dropdown .cc-tutorial-link{padding:10px 14px;border-radius:var(--r-md);font-size:.875rem;font-weight:500;color:var(--c-text-secondary);text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}.cc-dropdown a:hover,.cc-dropdown .cc-tutorial-link:hover{background:#f3f0ff;color:#7c3aed;transform:translate(2px)}.cc-nav-right{display:flex;align-items:center;gap:16px;margin-left:auto;flex-shrink:0}.cc-editor-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding-inline:16px;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff!important;border-radius:var(--r-sm);font-size:.875rem;font-weight:500;text-decoration:none;white-space:nowrap;box-shadow:0 4px 16px #7c3aed4d;transition:box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}.cc-editor-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 6px 24px #7c3aed73}.cc-hamburger{width:36px;height:36px;margin-right:-8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:var(--r-sm);cursor:pointer;z-index:10002}.cc-hamburger:hover{background:var(--c-bg-muted)}@media (min-width: 1024px){.cc-hamburger{display:none}}.cc-hamburger span{width:17px;height:1.5px;background:var(--c-text);border-radius:2px;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}.cc-hamburger.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.cc-hamburger.active span:nth-child(2){opacity:0}.cc-hamburger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.cc-mobile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;width:100%;height:100dvh;background:var(--c-bg);display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s}.cc-mobile-overlay.active{opacity:1;visibility:visible;transform:translateY(0)}.cc-mobile-header{height:var(--header-h);padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--c-border);flex-shrink:0}.cc-close-menu{width:36px;height:36px;margin-right:-8px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--r-sm);color:var(--c-text);cursor:pointer;transition:background-color var(--dur) var(--ease)}.cc-close-menu:hover{background:var(--c-bg-muted)}.mobile-wrapper{flex:1;overflow-y:auto;padding:8px var(--gutter) 32px;overscroll-behavior:contain}.mobile-group{border-bottom:1px solid var(--c-border)}.mobile-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 4px;background:none;border:none;font-size:1rem;font-weight:500;letter-spacing:-.01em;color:var(--c-text);text-align:left;cursor:pointer}.cc-arrow{width:18px;height:18px;flex-shrink:0;color:var(--c-text-faint);transition:transform .22s var(--ease)}.mobile-group.open .cc-arrow{transform:rotate(180deg);color:var(--c-text)}.mobile-content{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s var(--ease)}.mobile-group.open .mobile-content{grid-template-rows:1fr}.mobile-content>*{overflow:hidden;min-height:0}.mobile-inner{display:flex;flex-direction:column;padding-bottom:12px}.mobile-content a,.mobile-content .cc-tutorial-link{display:block;padding:11px 12px;border-radius:var(--r-sm);font-size:.9375rem;color:var(--c-text-muted);text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.mobile-content a:hover,.mobile-content a:active{background:var(--c-bg-muted);color:var(--c-text)}.mobile-footer{padding:20px var(--gutter);border-top:1px solid var(--c-border);flex-shrink:0}.mobile-footer p{font-size:.8125rem;color:var(--c-text-faint)}.cc-footer{background:#1c1c2e;border-top:none}.cc-footer-stats{border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff0a}.cc-footer-stats-inner{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter);padding-block:28px;display:flex;align-items:center;gap:0;flex-wrap:wrap}.footer-stat{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px;padding-inline:24px;text-align:center}.footer-stat:first-child{padding-left:0}.footer-stat__num{font-size:1.75rem;font-weight:800;letter-spacing:-.04em;line-height:1;background:linear-gradient(135deg,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-stat__label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c}.footer-stat-sep{width:1px;height:40px;background:#ffffff1f;flex-shrink:0}.cc-footer-container{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter);padding-top:64px;display:grid;grid-template-columns:1.6fr repeat(4,minmax(0,1fr));gap:48px 32px}.footer-logo{font-size:1.125rem;font-weight:800;letter-spacing:-.03em;color:#fff;margin-bottom:14px}.cc-footer-brand p{font-size:.875rem;line-height:1.7;color:#ffffffb3;max-width:300px;margin-bottom:16px}.footer-made-with{display:flex!important;align-items:center;font-size:.8125rem!important;font-weight:500;color:#ffffff8c!important;margin-bottom:0!important}.footer-heart{font-size:.875rem;line-height:1;animation:heartbeat 2.4s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}20%{transform:scale(1.25)}40%{transform:scale(1)}60%{transform:scale(1.15)}80%{transform:scale(1)}}.cc-footer-col h4{font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffff73;margin-bottom:18px}.cc-footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}.cc-footer-col a{display:inline-block;font-size:.875rem;color:#ffffffbf;text-decoration:none;transition:color var(--dur) var(--ease),transform var(--dur) var(--ease)}.cc-footer-col a:hover{color:#fff;transform:translate(2px)}.cc-footer-bottom{max-width:var(--max-w);margin:52px auto 0;padding-inline:var(--gutter)}.footer-bottom-container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:22px;border-top:1px solid rgba(255,255,255,.08);font-size:.8125rem;color:#ffffff73}.footer-bottom-links{display:flex;gap:20px}.footer-bottom-links a{color:#ffffff73;text-decoration:none;transition:color var(--dur) var(--ease)}.footer-bottom-links a:hover{color:#fff}@media (max-width: 1024px){.cc-footer-container{grid-template-columns:repeat(2,minmax(0,1fr))}.cc-footer-brand{grid-column:1 / -1}}@media (max-width: 768px){.footer-stat{flex:1 1 40%}.footer-stat-sep{display:none}.cc-footer-stats-inner{gap:20px 0}}@media (max-width: 640px){.cc-footer-container{grid-template-columns:1fr;gap:32px;padding-top:48px}.footer-bottom-container{flex-direction:column;align-items:flex-start}.footer-stat{flex:1 1 45%;text-align:left;padding-inline:0}}
