:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:#4d4899;--brand-strong:#3e397f;--brand-soft:#efeffb;--brand-line:#d2d1e6;--ink:#1e1d2b;--ink-2:#4f4e5f;--ink-3:#686779;--ground:#fff;--ground-2:#f8f8fc;--line:#e2e1ea;--selection:#c9c6f1;--frame:#222130;--on-brand:#fff;--error:#ba2626;--macro-p:#2f935a;--macro-c:#d36f17;--macro-f:#2087b6;--shadow-device:0 30px 60px -20px #17171c47, 0 12px 24px -12px #17171c2e;--radius:14px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-caption:13px;--fs-small:14px;--fs-label:16px;--fs-body:17px;--fs-large:1.125rem;--fs-subtitle:1.25rem;--gutter:20px;--max:1120px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#9484eb;--brand-strong:#afa3f5;--brand-soft:#22203c;--brand-line:#3e3c5d;--ink:#efeef6;--ink-2:#bab9ca;--ink-3:#a1a0b1;--ground:#12111c;--ground-2:#191825;--line:#302f41;--selection:#353172;--frame:#09090c;--on-brand:#110f24;--error:#f17e7e;--macro-p:#64d894;--macro-c:#faaf4c;--macro-f:#62d0f8;--shadow-device:0 30px 60px -20px #0009, 0 12px 24px -12px #00000080}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--ground);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}a{color:var(--brand);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--brand-strong)}img{max-width:100%;height:auto;display:block}h1,h2,h3{letter-spacing:-.022em;text-wrap:balance;margin:0;line-height:1.12}p{text-wrap:pretty;margin:0}figure{margin:0}code{font-family:var(--mono);font-size:.88em}.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--gutter);z-index:10;background:var(--ground);padding:8px 12px;top:12px}.site-header{z-index:5;background:color-mix(in srgb, var(--ground) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid #0000;transition:border-color .2s ease-out;position:sticky;top:0}.site-header[data-scrolled]{border-bottom-color:var(--line)}.site-header .wrap{align-items:center;gap:24px;height:64px;display:flex}.wordmark{color:var(--ink);font-weight:700;font-size:var(--fs-subtitle);letter-spacing:-.03em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark:hover{color:var(--ink)}.wordmark img{width:28px;height:28px}.nav{font-size:var(--fs-small);align-items:center;gap:22px;margin-left:auto;display:flex}.nav a{color:var(--ink-2);text-decoration:none}.nav a:hover{color:var(--ink)}.nav .lang{border:1px solid var(--line);font-size:var(--fs-caption);letter-spacing:.02em;border-radius:999px;padding:4px 10px;font-weight:600}.nav-github{align-items:center;gap:6px;display:inline-flex}.nav-github svg{width:18px;height:18px}@media (width<=760px){.nav .nav-section{display:none}}@media (pointer:coarse){.nav a:not(.lang),.site-footer nav a{align-items:center;min-height:44px;display:inline-flex}.nav .lang{position:relative}.nav .lang:after{content:"";position:absolute;inset:-7px -4px}}.hero{background:linear-gradient(180deg, var(--ground) 0%, var(--ground-2) 100%);padding:56px 0 88px;overflow-x:clip}.hero .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px;display:grid}.hero h1{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(2.1rem,1.3rem + 2.8vw,3.3rem);font-weight:750}.hero h1 span{color:var(--brand)}.hero .lede{max-width:34em;color:var(--ink-2);margin-top:20px;font-size:clamp(1.06rem,1rem + .3vw,1.2rem)}.hero-shots{min-height:670px;position:relative}.device{background:var(--frame);width:280px;box-shadow:var(--shadow-device);border-radius:16%/7.4%;display:flow-root;position:relative}.device img,.device .shot-missing{aspect-ratio:390/844;object-fit:cover;object-position:top;background:var(--ground-2);border-radius:13%/6%;width:88.8%;height:auto;margin:5.6%;display:block}.shot-missing{color:var(--ink-3);font-size:var(--fs-small);text-align:center;place-items:center;padding:24px;display:grid}.hero-shots .device{position:absolute}.hero-shots .device--front{z-index:2;top:0;right:12%}.hero-shots .device--back{width:258px;top:44px;right:50%;transform:rotate(-4deg)}.shot-caption{font-size:var(--fs-caption);color:var(--ink-3);margin-top:12px}.hero-shots .shot-caption{z-index:3;text-align:center;width:280px;margin:0;position:absolute;bottom:0;right:12%}@media (width<=900px){.hero{padding-top:32px}.hero .wrap{grid-template-columns:minmax(0,1fr);gap:56px}.hero-shots{justify-content:center;gap:16px;min-height:0;padding-bottom:40px;display:flex}.hero-shots .device{width:min(46vw,250px);position:relative;inset:auto}.hero-shots .device--back{margin-top:40px;transform:none}.hero-shots .shot-caption{width:auto;left:0;right:0}}.interest{max-width:480px;margin-top:32px}.interest fieldset{border:0;margin:0;padding:0}.interest legend{font-weight:650;font-size:var(--fs-label);margin-bottom:10px;padding:0}.choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice{cursor:pointer;display:block;position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice span{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--ground);flex-direction:column;gap:2px;height:100%;padding:12px 14px 12px 42px;transition:border-color .15s ease-out,background-color .15s ease-out;display:flex}.choice span:before{content:"";border:1.5px solid var(--ink-3);background:var(--ground);border-radius:6px;width:18px;height:18px;transition:background-color .15s ease-out,border-color .15s ease-out;position:absolute;top:15px;left:14px}.choice span:after{content:"";border:solid var(--on-brand);border-width:0 2px 2px 0;width:6px;height:10px;transition:transform .15s ease-out;position:absolute;top:18px;left:20px;transform:rotate(45deg)scale(0)}.choice strong{font-size:var(--fs-label);line-height:1.35}.choice small{font-size:var(--fs-caption);color:var(--ink-3);line-height:1.4}.choice:hover span{border-color:var(--brand-line)}.choice input:checked+span{border-color:var(--brand);background:var(--brand-soft)}.choice input:checked+span:before{background:var(--brand);border-color:var(--brand)}.choice input:checked+span:after{transform:rotate(45deg)scale(1)}.choice input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}.submit-row{margin-top:12px;display:flex}.button{border-radius:var(--radius);background:var(--brand);height:48px;color:var(--on-brand);font:inherit;font-size:var(--fs-label);white-space:nowrap;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-weight:650;text-decoration:none;transition:background-color .15s ease-out,transform .15s ease-out;display:inline-flex;box-shadow:0 6px 14px -8px #17171c59}.button:hover{background:var(--brand-strong);color:var(--on-brand)}.button:active{transform:translateY(1px)}.button[aria-disabled=true]{opacity:.6;cursor:progress}.form-note{font-size:var(--fs-small);color:var(--ink-3);margin-top:10px}.form-note--lead{color:var(--ink-2);margin-top:12px;margin-bottom:20px}.form-status{font-size:var(--fs-small);margin-top:10px;font-weight:550}.form-status:empty{display:none}.form-status[data-tone=error]{color:var(--error)}.form-status[data-tone=ok]{color:var(--brand)}.form-status[data-tone=note]{color:var(--ink-2);font-weight:400}@media (width<=480px){.choices{grid-template-columns:1fr}.button{width:100%}}.section{padding:112px 0}.section--tint{background:var(--ground-2)}.section-head{max-width:40rem;margin-bottom:56px}.section-head h2,.prose h2{font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem);font-weight:720}.section-head p{font-size:var(--fs-large);color:var(--ink-2);margin-top:16px}.prose{max-width:40rem}.prose p{font-size:var(--fs-large);color:var(--ink-2);margin-top:18px}.prose p:first-of-type{margin-top:22px}.origin .wrap{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:64px;display:grid}.sheet{border:1px solid var(--line);border-radius:var(--radius);background:var(--ground);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;overflow:hidden;transform:rotate(1.2deg)}.sheet table{border-collapse:collapse;width:100%}.sheet th,.sheet td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:7px 10px}.sheet th{background:var(--ground-2);color:var(--ink-3);font-weight:600}.sheet td.num{text-align:right}.sheet .err{color:var(--error);font-family:var(--mono)}.fx{border-bottom:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-caption);color:var(--ink-2);grid-template-columns:3.2rem auto minmax(0,1fr);align-items:center;gap:10px;padding:7px 10px;display:grid}.fx-ref{border-right:1px solid var(--line);color:var(--ink-3);padding-right:10px}.fx-sign{color:var(--ink-3);font-style:italic}.fx-formula{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fx [data-f]{display:none}.fx [data-f=E4]{display:inline}.sheet--live:has([data-c=B2]:is(:hover,:focus-visible)) .fx [data-f=B2]{display:inline}.sheet--live:has([data-c=C2]:is(:hover,:focus-visible)) .fx [data-f=C2]{display:inline}.sheet--live:has([data-c=D2]:is(:hover,:focus-visible)) .fx [data-f=D2]{display:inline}.sheet--live:has([data-c=E2]:is(:hover,:focus-visible)) .fx [data-f=E2]{display:inline}.sheet--live:has([data-c=B3]:is(:hover,:focus-visible)) .fx [data-f=B3]{display:inline}.sheet--live:has([data-c=C3]:is(:hover,:focus-visible)) .fx [data-f=C3]{display:inline}.sheet--live:has([data-c=D3]:is(:hover,:focus-visible)) .fx [data-f=D3]{display:inline}.sheet--live:has([data-c=E3]:is(:hover,:focus-visible)) .fx [data-f=E3]{display:inline}.sheet--live:has([data-c=B4]:is(:hover,:focus-visible)) .fx [data-f=B4]{display:inline}.sheet--live:has([data-c=C4]:is(:hover,:focus-visible)) .fx [data-f=C4]{display:inline}.sheet--live:has([data-c=D4]:is(:hover,:focus-visible)) .fx [data-f=D4]{display:inline}.sheet--live:has([data-c=E4]:is(:hover,:focus-visible)) .fx [data-f=E4]{display:inline}.sheet--live:has([data-c=B5]:is(:hover,:focus-visible)) .fx [data-f=B5]{display:inline}.sheet--live:has([data-c=C5]:is(:hover,:focus-visible)) .fx [data-f=C5]{display:inline}.sheet--live:has([data-c=D5]:is(:hover,:focus-visible)) .fx [data-f=D5]{display:inline}.sheet--live:has([data-c]:is(:hover,:focus-visible)):not(:has([data-c=E4]:is(:hover,:focus-visible))) .fx [data-f=E4]{display:none}.sheet--live td[data-c]{cursor:cell}.sheet--live td[data-c]:is(:hover,:focus-visible),.sheet--live td[data-c=E4]{outline:2px solid var(--brand);outline-offset:-2px}.sheet--live:has(td[data-c]:is(:hover,:focus-visible)) td[data-c=E4]:not(:hover,:focus-visible){outline:none}@media (width<=900px){.origin .wrap{grid-template-columns:minmax(0,1fr);gap:40px}.sheet{overflow-x:auto;transform:none}}.steps{gap:96px;display:grid}.step{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:64px;display:grid}.step:nth-child(2n) .step-text{order:2}.step .device{margin:0 auto}.step h3{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);font-weight:700}.step p{max-width:30em;font-size:var(--fs-large);color:var(--ink-2);margin-top:14px}.step .shot-caption{text-align:center}@media (width<=760px){.steps{gap:72px}.step{grid-template-columns:minmax(0,1fr);gap:28px}.step:nth-child(2n) .step-text{order:0}.step .device{width:min(72vw,280px)}}.macro-legend{font-size:var(--fs-small);color:var(--ink-2);flex-wrap:wrap;gap:8px 18px;margin-top:18px;padding:0;list-style:none;display:flex}.macro-legend li{align-items:center;gap:7px;display:inline-flex}.macro-legend i{border-radius:50%;width:9px;height:9px}.step--wide{grid-template-columns:minmax(0,1fr);gap:40px}.step--wide .step-text{max-width:36rem}.duo{align-items:flex-end;gap:32px;display:flex}.browser{background:var(--ground-2);min-width:0;box-shadow:var(--shadow-device);border-radius:12px;flex:1;overflow:hidden}.browser img{aspect-ratio:16/10;object-fit:cover;object-position:top;width:100%}.duo .device--small{flex:none;width:22%;margin:0}@media (width<=760px){.browser{display:none}.duo{justify-content:center}.duo .device--small{width:min(72vw,280px)}}.features{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px;margin:0;display:grid}.feature{border-top:1px solid var(--line);padding:28px 0}.feature dt{font-weight:680;font-size:var(--fs-large);align-items:center;gap:12px;display:flex}.feature dt svg{width:22px;height:22px;color:var(--brand);flex:none}.feature dd{color:var(--ink-2);margin:8px 0 0 34px}@media (width<=760px){.features{grid-template-columns:minmax(0,1fr)}}.data-flows{border-bottom:1px solid var(--line);max-width:52rem;margin:0;padding:0;list-style:none}.data-flows li{border-top:1px solid var(--line);grid-template-columns:13rem minmax(0,1fr);gap:24px;padding:18px 0;display:grid}.data-flows b{font-weight:650}.data-flows .is-local b{color:var(--brand)}.data-flows span{color:var(--ink-2)}.stack{max-width:52rem;font-size:var(--fs-small);color:var(--ink-2);margin-top:28px}.stack code{background:var(--ground-2);color:var(--ink);border-radius:6px;padding:1px 6px}@media (width<=760px){.data-flows li{grid-template-columns:minmax(0,1fr);gap:4px}}.try-now{border-top:1px solid var(--brand-line);background:var(--brand-soft);padding:40px 0}.try-now .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 48px;display:flex}.try-now h2{font-size:var(--fs-subtitle);font-weight:700}.try-now p{color:var(--ink-2);margin-top:4px}.faq{max-width:46rem}.faq details{border-top:1px solid var(--line)}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{font-weight:650;font-size:var(--fs-large);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary svg{width:20px;height:20px;color:var(--ink-3);flex:none;transition:transform .2s ease-out}.faq details[open] summary svg{transform:rotate(45deg)}.faq details p{max-width:40em;color:var(--ink-2);padding:0 0 24px}.closing{text-align:center}.closing .wrap{flex-direction:column;align-items:center;display:flex}.closing h2{max-width:18em;font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem);font-weight:720}.closing p{max-width:34em;font-size:var(--fs-large);color:var(--ink-2);margin-top:16px}.closing .button{margin-top:28px}.site-footer{border-top:1px solid var(--line);font-size:var(--fs-small);color:var(--ink-3);padding:40px 0 56px}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px 32px;display:flex}.site-footer a{color:var(--ink-2)}.site-footer nav{flex-wrap:wrap;gap:8px 20px;display:flex}.legal{padding:72px 0 96px}.legal h1{font-size:clamp(1.9rem,1.3rem + 2vw,2.6rem);font-weight:720}.legal .prose h2{font-size:var(--fs-subtitle);margin-top:40px;font-weight:650}.legal .prose p{font-size:var(--fs-body);margin-top:12px}.legal .prose a{color:var(--ink)}@media (prefers-reduced-motion:no-preference){.hero-shots .device{animation:.9s cubic-bezier(.16,1,.3,1) both settle}.hero-shots .device--back{animation-delay:.12s}@keyframes settle{0%{filter:blur(6px);translate:0 28px}}}
