: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}code,pre{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}}.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;font-size:clamp(2.4rem,1.4rem + 3.6vw,4rem);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%;padding:3.2%;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:100%;height:auto}.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-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)}@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)}.sheet figcaption{color:var(--ink-3);font-size:var(--fs-caption);border-top:1px solid var(--line);padding:10px 12px}@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)}}.built{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 96px;display:grid}.built-col h3{font-size:var(--fs-subtitle);font-weight:700}.built-col>p{color:var(--ink-2);margin-top:8px}.flows{margin:20px 0 0;padding:0;list-style:none}.flows li{border-top:1px solid var(--line);font-size:var(--fs-small);grid-template-columns:9.5rem minmax(0,1fr);gap:12px;padding:12px 0;display:grid}.flows li>b{font-weight:650}.flows li>span{color:var(--ink-2)}.stack{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){.built{grid-template-columns:minmax(0,1fr)}.flows li{grid-template-columns:minmax(0,1fr);gap:2px}}.selfhost{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:64px;display:grid}.selfhost ul{color:var(--ink-2);margin:22px 0 0;padding-left:1.1em}.selfhost li+li{margin-top:8px}.terminal{color:#e5e4f1;font-size:var(--fs-small);background:#161523;border-radius:16px;margin:0;padding:22px 24px;line-height:1.75;overflow-x:auto;box-shadow:0 18px 40px -24px #17171c73}.terminal .c{color:#9291ac}.terminal .p{color:#a396ee;-webkit-user-select:none;user-select:none}@media (width<=900px){.selfhost{grid-template-columns:minmax(0,1fr);gap:32px}}.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}}}
