:root{--ink: #0a0a0a;--ink-2: #525252;--ink-3: #8a8a8a;--ink-4: #b5b5b5;--line: #ececec;--line-2: #f3f3f3;--surface: #ffffff;--surface-2: #f7f7f7;--surface-3: #f0f0f0;--surface-4: #e8e8e8;--accent: #0a0a0a;--accent-soft:#1a1a1a;--warn-bg: #fff7ed;--warn-line: #fed7aa;--warn-ink: #7c2d12;--good: #15803d;--bad: #b91c1c;--shadow-1: 0 1px 2px rgba(0,0,0,.04);--shadow-2: 0 1px 2px rgba(0,0,0,.04), 0 8px 28px rgba(0,0,0,.08);--shadow-3: 0 24px 56px rgba(0,0,0,.18);--radius-1: 8px;--radius-2: 12px;--radius-3: 16px;--radius-4: 22px;--ease: cubic-bezier(.32, .72, 0, 1);--container: 1120px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--surface);color:var(--ink);font-family:Geist,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.011em;min-height:100%}a{color:inherit;text-decoration:none}a:hover{color:var(--ink)}button{font-family:inherit;cursor:pointer;border:0;background:transparent;color:inherit;padding:0}img,svg{display:block;max-width:100%}::selection{background:var(--ink);color:var(--surface)}.container{max-width:var(--container);margin:0 auto;padding:0 24px}.section{padding:80px 0;border-bottom:1px solid var(--line)}.section--tight{padding:56px 0}.section--loose{padding:120px 0}.section--ink{background:var(--ink);color:var(--surface);border-bottom:0}.section--ink h1,.section--ink h2{color:var(--surface)}.section--ink p,.section--ink li{color:#ffffffc7}.section--ink a{color:var(--surface)}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.08}h1{font-size:clamp(40px,6vw,72px)}h2{font-size:clamp(28px,3.6vw,44px)}h3{font-size:22px}h4{font-size:16px;color:var(--ink-2);font-weight:500}p{margin:0;font-size:16px;line-height:1.6;color:var(--ink-2)}.eyebrow{display:inline-block;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}.lead{font-size:clamp(18px,1.6vw,22px);color:var(--ink-2);line-height:1.55;max-width:680px}.banner{background:var(--ink);color:var(--surface);font-size:13px;text-align:center;padding:10px 24px;border-bottom:1px solid var(--ink);letter-spacing:.01em}.banner strong{font-weight:600}.banner a{color:var(--surface);border-bottom:1px solid rgba(255,255,255,.4);margin-left:8px}.banner a:hover{border-color:var(--surface)}.banner__dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#f59e0b;margin-right:8px;vertical-align:middle;animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.55}}.nav{position:sticky;top:0;z-index:40;background:#ffffffdb;backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line)}.nav__inner{max-width:var(--container);margin:0 auto;padding:16px 24px;display:flex;align-items:center;gap:28px}.nav__brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:17px}.nav__links{display:flex;gap:22px;margin-left:auto}.nav__link{color:var(--ink-2);font-size:14px;font-weight:500;transition:color .16s var(--ease)}.nav__link:hover,.nav__link--active{color:var(--ink)}.nav__cta{margin-left:12px;padding:9px 16px;background:var(--ink);color:var(--surface);border-radius:999px;font-size:13px;font-weight:500;transition:transform .16s var(--ease),background .16s var(--ease)}.nav__cta:hover{color:var(--surface);background:var(--accent-soft);transform:translateY(-1px)}@media (max-width: 720px){.nav__links{display:none}}.wordmark{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:inherit;letter-spacing:-.01em}.wordmark__mark{display:inline-flex;align-items:center;justify-content:center}.wordmark__mark svg{display:block}.wordmark__dot--active{transform-origin:24px 10px;animation:dot-pulse 2.4s cubic-bezier(.45,.05,.55,.95) infinite}.wordmark__halo{transform-origin:24px 10px;animation:halo-expand 2.4s cubic-bezier(.45,.05,.55,.95) infinite;opacity:0}.wordmark__lines{animation:lines-breathe 4.8s ease-in-out infinite}@keyframes dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.78);opacity:.7}}@keyframes halo-expand{0%{transform:scale(.9);opacity:.55}80%{transform:scale(2.1);opacity:0}to{transform:scale(2.1);opacity:0}}@keyframes lines-breathe{0%,to{opacity:.42}50%{opacity:.78}}.wordmark--lg{font-size:28px}.hero{padding:88px 0 64px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%)}.hero__title{font-size:clamp(44px,6.8vw,84px);letter-spacing:-.025em;margin:8px 0 24px;max-width:880px}.hero__title em{font-style:normal;background:linear-gradient(180deg,var(--ink) 50%,var(--ink-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__sub{max-width:640px}.hero__ctas{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;font-size:14px;font-weight:500;transition:transform .16s var(--ease),background .16s var(--ease),color .16s var(--ease);white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--ink);color:var(--surface)}.btn--primary:hover{background:var(--accent-soft);color:var(--surface)}.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn--ghost:hover{border-color:var(--ink-4);color:var(--ink)}.btn--lg{padding:14px 24px;font-size:15px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:40px}.card{border:1px solid var(--line);border-radius:var(--radius-3);padding:28px;background:var(--surface);transition:border-color .2s var(--ease),transform .2s var(--ease)}.card:hover{border-color:var(--ink-4);transform:translateY(-2px)}.card h3{margin-bottom:8px}.card p{font-size:15px;line-height:1.55}.card__icon{width:36px;height:36px;border-radius:10px;background:var(--surface-3);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;font-family:Geist Mono,monospace;font-size:14px;color:var(--ink)}.carousel{margin:56px 0;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent)}.carousel__track{display:flex;gap:56px;width:max-content;animation:scroll-x 42s linear infinite}.carousel__item{display:inline-flex;align-items:center;gap:12px;padding:6px 4px;font-family:Geist,system-ui,sans-serif;font-size:15px;font-weight:500;color:var(--ink-3);white-space:nowrap;text-decoration:none;transition:color .2s var(--ease),transform .2s var(--ease);border-radius:8px;cursor:pointer}.carousel__logo{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3);transition:color .2s var(--ease),transform .2s var(--ease)}.carousel__item:hover{color:var(--ink);transform:translateY(-1px)}.carousel__item:hover .carousel__logo{color:var(--ink);transform:scale(1.06)}.carousel__item:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.carousel__name{letter-spacing:-.01em}.carousel:hover .carousel__track{animation-play-state:paused}.compare-group__head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:14px}.compare-group__title{font-size:22px;font-weight:600;letter-spacing:-.015em}.compare-group__sub{font-size:14px;color:var(--ink-3)}@keyframes scroll-x{0%{transform:translate(0)}to{transform:translate(-50%)}}.compare{width:100%;border-collapse:collapse;margin-top:32px;font-size:13px;table-layout:fixed}.compare th,.compare td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;word-break:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.compare thead th{font-weight:500;color:var(--ink-2);font-size:11px;letter-spacing:.05em;text-transform:uppercase;line-height:1.35}.compare tbody td:first-child{font-weight:500;color:var(--ink);font-size:13.5px;line-height:1.4}.compare col.compare__cap{width:22%}.compare col.compare__provider{width:13%}.compare .pill{display:inline-block;font-size:11.5px;padding:4px 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);line-height:1.35;white-space:normal;max-width:100%}.compare .pill--good{background:#ecfdf5;color:var(--good)}.compare .pill--bad{background:#fef2f2;color:var(--bad)}.compare .pill--mid{background:#fff7ed;color:var(--warn-ink)}.compare-wrap{border:1px solid var(--line);border-radius:var(--radius-3);margin-top:32px;overflow-x:visible}.compare-wrap .compare{margin-top:0}@media (max-width: 800px){.compare,.compare thead,.compare tbody,.compare tr,.compare th,.compare td{display:block;width:100%}.compare thead,.compare colgroup{display:none}.compare tbody tr{padding:4px 14px 12px;border-bottom:6px solid var(--surface-2)}.compare tbody tr:last-child{border-bottom:0}.compare tbody td{border-bottom:1px solid var(--line);padding:8px 0;display:grid;grid-template-columns:minmax(100px,38%) 1fr;gap:8px;align-items:start}.compare tbody td:first-child{grid-template-columns:1fr;font-size:15px;padding:14px 0 6px;border-bottom:1px solid var(--line)}.compare tbody td:not(:first-child):before{content:attr(data-provider);color:var(--ink-3);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding-top:4px}.compare tbody td:last-child{border-bottom:0}}.roadmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:40px}.roadmap__col h3{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:18px}.roadmap__col h3:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ink-4)}.roadmap__col--shipped h3:before{background:var(--good)}.roadmap__col--building h3:before{background:#f59e0b}.roadmap__col--planned h3:before{background:var(--ink-4)}.roadmap__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.roadmap__list li{font-size:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-2);color:var(--ink-2);line-height:1.5}.roadmap__list li strong{color:var(--ink);font-weight:500}.footer{padding:56px 0 40px;background:var(--surface-2);border-top:1px solid var(--line)}.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}.footer__brand p{font-size:14px;max-width:320px;margin-top:14px}.footer h5{margin:0 0 12px;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.footer__links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.footer__links a{font-size:14px;color:var(--ink-2)}.footer__links a:hover{color:var(--ink)}.footer__bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-3)}@media (max-width: 720px){.footer__grid{grid-template-columns:1fr 1fr}}.page-head{padding:80px 0 40px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border-bottom:1px solid var(--line)}.page-head .lead{margin-top:16px}.split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}@media (max-width: 880px){.split{grid-template-columns:1fr}}.kv{display:grid;grid-template-columns:200px 1fr;gap:16px 24px;margin-top:16px;font-size:14px}.kv dt{color:var(--ink-3);font-weight:500}.kv dd{margin:0;color:var(--ink)}.code-card{border:1px solid #1a1a1a;border-radius:var(--radius-2);overflow:hidden;background:#0a0a0a;box-shadow:0 1px 2px #0000000a,0 12px 32px #0000001a}.code-card__chrome{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#141414;border-bottom:1px solid #1f1f1f;font-family:Geist Mono,monospace;font-size:11px;color:#ffffff8c;letter-spacing:.04em}.code-card__dots{display:inline-flex;gap:6px}.code-card__dots span{width:9px;height:9px;border-radius:50%;background:#2a2a2a}.code-card__title{margin-left:6px}.code-card__lang{margin-left:auto;text-transform:uppercase}.code{font-family:Geist Mono,SF Mono,Menlo,monospace;background:#0a0a0a;color:#e6e6e6;padding:18px 20px;font-size:12.5px;line-height:1.75;white-space:pre;overflow-x:auto;margin:0;letter-spacing:0;font-feature-settings:"calt","liga"}.code-card .code{border:0;border-radius:0}:not(.code-card)>.code{border:1px solid #1a1a1a;border-radius:var(--radius-2);background:#0a0a0a;color:#e6e6e6;box-shadow:0 1px 2px #0000000a,0 12px 32px #0000001a}.code .tok-c{color:#ffffff6b;font-style:italic}.code .tok-p{color:#ffffff8c;font-weight:500}.code .tok-k{color:#fff;font-weight:600}.code .tok-s{color:#fff}.code .tok-n{color:#ffffffc7}.code .tok-a{color:#ffffff8c}.code .tok-r{color:#ffffffd9}.callout{margin:28px 0;padding:18px 20px;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius-2);color:var(--warn-ink);font-size:14px}.callout strong{font-weight:600}.form{display:flex;flex-direction:column;gap:14px;max-width:420px;margin-top:24px}.form input,.form select,.form textarea{font-family:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);color:var(--ink);outline:none;transition:border-color .16s var(--ease)}.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--ink-3)}.fade-in{animation:fadeIn .6s var(--ease) both}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.wordmark__mark:before,.wordmark__mark:after,.carousel__track,.banner__dot,.fade-in{animation:none!important}}
