@font-face{font-family:DM Sans;src:url(/assets/fonts/DMSans-Variable.woff2)format("woff2");font-weight:100 1000;font-display:swap}@font-face{font-family:DM Mono;src:url(/assets/fonts/DMMono-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:DM Mono;src:url(/assets/fonts/DMMono-Medium.woff2)format("woff2");font-weight:500;font-display:swap}:root{--bg:#0a0a0a;--panel:#111;--panel-2:#161616;--raised:#1c1c1c;--border:#ffffff12;--border-strong:#ffffff1f;--fg:#ededed;--muted:#8f8f8f;--dim:#5f5f5f;--select:#6d8cff;--select-soft:#6d8cff29;--ok:#4ade80;--warn:#fbbf24;--radius:10px;--radius-sm:6px;--font:"DM Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono:"DM Mono", ui-monospace, Menlo, monospace;--wrap:1120px;--ease:cubic-bezier(.2, .8, .2, 1);--ease-out:cubic-bezier(.23, 1, .32, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font:400 16px/1.6 var(--font);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit}a:focus-visible,.btn:focus-visible{outline:2px solid var(--select);outline-offset:3px}::selection{background:#6d8cff66}h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}.skip{z-index:200;border-radius:var(--radius-sm);color:#0a0a0a;font:500 14px/1.2 var(--font);transition:transform .15s var(--ease-out);background:#f5f5f5;padding:8px 12px;text-decoration:none;position:absolute;top:12px;left:16px;transform:translateY(-64px)}.skip:focus-visible{transform:none}.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}.wrap.wide{max-width:1400px}@media (max-width:480px){.wrap{padding:0 16px}}.top{border-bottom:1px solid var(--border);position:relative}.top .wrap{justify-content:space-between;align-items:center;gap:16px;height:56px;display:flex}.top nav{align-items:center;gap:10px;font-size:14px;display:flex}.top nav a{color:var(--muted);transition:color .15s var(--ease);text-decoration:none}.top nav a:hover{color:var(--fg)}.top nav .nav-link{padding:0 6px;font-weight:500}.top nav .nav-stars{border:1px solid var(--border-strong);min-width:92px;height:34px;color:var(--fg);font:500 14px/1 var(--font);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), scale .15s var(--ease-out);background:#ffffff08;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 12px;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff0a}.top nav .nav-stars:hover{color:var(--fg);background:#ffffff12;border-color:#fff3}.nav-stars .gh{color:#d4d4d4;width:16px;height:16px;transition:color .15s var(--ease);flex:none}.nav-stars:hover .gh{color:#fff}.nav-stars .count{font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.nav-stars .count[hidden],.nav-stars.has-stars .label{display:none}.nav-stars .star{width:12px;height:12px;color:var(--muted);transition:color .15s var(--ease);flex:none}.nav-stars:hover .star{color:#e3b341}.top nav .btn-nav{color:#0a0a0a;height:34px;font:500 14px/1 var(--font);transition:background-color .15s var(--ease), scale .15s var(--ease-out);background:#f5f5f5;border-radius:8px;align-items:center;gap:7px;padding:0 14px 0 12px;display:inline-flex;position:relative}.top nav .btn-nav:hover{color:#0a0a0a;background:#fff}.top nav .nav-stars:before,.top nav .btn-nav:before{content:"";position:absolute;inset:-4px}.top nav .nav-stars:active,.top nav .btn-nav:active,.btn:active{scale:.96}.btn-nav .apple{flex:none;width:14px;height:14px;margin-top:-2px}.top nav a:focus-visible{outline:2px solid var(--select);outline-offset:3px}.wordmark{color:var(--fg);align-items:center;gap:9px;text-decoration:none;display:inline-flex}.wordmark svg{flex:none;width:14px;height:17px}.wordmark span{letter-spacing:-.02em;background-image:linear-gradient(118deg, var(--fg) 0 40%, #fff 45%, #a9bcff 50%, #fff 55%, var(--fg) 60% 100%);color:#0000;background-position:100% 0;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;font-size:17px;font-weight:650;animation:1.4s cubic-bezier(.4,0,.2,1) .3s both sweep}@keyframes sweep{0%{background-position:100% 0}to{background-position:0 0}}.hero{text-align:center;isolation:isolate;padding:104px 0 40px;position:relative}.hero>.wrap{z-index:1;position:relative}.hero-fx{z-index:0;pointer-events:none;height:920px;position:absolute;top:0;left:0;right:0;overflow:hidden}.hero-fx:before{content:"";background:radial-gradient(34% 30% at 75% 28%,#5c78ff42,#5c78ff00 100%),radial-gradient(30% 28% at 24% 58%,#804dfa33,#804dfa00 100%),radial-gradient(40% 18% at 50% 9%,#29339e4d,#29339e00 100%);transition:opacity 1.4s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0,#000 10% 58%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 10% 58%,#0000 100%)}.hero-fx canvas{opacity:0;width:100%;height:100%;transition:opacity 1.4s;display:block;position:absolute;inset:0}.hero.fx-live .hero-fx canvas{opacity:1}.hero.fx-live .hero-fx:before{opacity:0}.hero h1{letter-spacing:-.035em;max-width:14ch;margin:0 auto;font-size:clamp(38px,7vw,68px);font-weight:650;line-height:1.04}.hero h1 .w{animation:rise .7s var(--ease-out) both;display:inline-block}.hero h1 .w:first-child{animation-delay:80ms}.hero h1 .w:nth-child(2){animation-delay:.15s}.hero h1 .w:nth-child(3){animation-delay:.22s}.hero h1 .w:nth-child(4){animation-delay:.29s}.hero h1 .w:nth-child(5){animation-delay:.36s}.hero h1 .w:nth-child(6){animation-delay:.43s}.hero h1 .w:nth-child(n+7){animation-delay:.5s}.hero .lede{animation:rise .6s var(--ease-out) .3s both}.hero .actions{animation:rise-small .5s var(--ease-out) .56s both}.hero .req{animation:rise-small .5s var(--ease-out) .66s both}.hero .shot-zoom{animation:settle .9s var(--ease-out) .4s both}@keyframes rise{0%{opacity:0;filter:blur(6px);transform:translateY(12px)}}@keyframes rise-small{0%{opacity:0;transform:translateY(8px)}}@keyframes settle{0%{opacity:0;transform:scale(.985)}}.hero .lede{color:#a3a3a3;max-width:580px;margin:22px auto 0;font-size:clamp(16px,2.2vw,19px)}.lede .who{white-space:nowrap;color:var(--fg)}.lede .pmark{vertical-align:-.06em;width:.78em;height:.78em;margin:0 .3em 0 .08em;display:inline-block}.actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:34px;display:flex}.btn{height:54px;font:500 16px/1 var(--font);color:var(--fg);transition:background-color .15s var(--ease), border-color .15s var(--ease), scale .15s var(--ease-out);background:#0a0a0a8c;border:1px solid #ffffff29;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:0 26px;text-decoration:none;display:inline-flex;position:relative}.btn:hover{background:#ffffff0f;border-color:#ffffff42}.btn svg{flex:none;width:18px;height:18px}.btn .apple{margin-top:-3px}.btn.primary{color:#0a0a0a;background:#f5f5f5;border-color:#f5f5f5;padding:0 28px 0 24px}.btn.primary:hover{background:#fff;border-color:#fff}.req{max-width:620px;color:var(--dim);font:400 12px/1.6 var(--mono);margin:14px auto 0}.shot{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--panel);margin:56px auto 0;overflow:hidden;box-shadow:0 40px 120px -40px #6d8cff38,0 20px 60px #0009}.shot-zoom{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.shot-zoom:focus-visible{outline:none}.shot-zoom .shot{transition:border-color .2s var(--ease)}.shot-zoom:hover .shot{border-color:#fff3}.shot-zoom:focus-visible .shot{outline:2px solid var(--select);outline-offset:3px}.zoom{z-index:100;cursor:zoom-out;-webkit-backdrop-filter:blur();background:#05050800;place-items:center;transition:background .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s;display:grid;position:fixed;inset:0}.zoom.open{-webkit-backdrop-filter:blur(8px);background:#050508d1}.zoom-img{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--panel);transform-origin:50%;will-change:transform;width:auto;height:auto;transition:transform .46s cubic-bezier(.32,.72,0,1);box-shadow:0 40px 160px -40px #6d8cff4d,0 30px 80px #000000b3}.film{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;display:grid}.film video{aspect-ratio:4/5;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--panel);cursor:pointer;width:100%;max-width:440px;height:auto;margin:0 auto;display:block}section{padding:136px 0}h2{letter-spacing:-.03em;margin:0;font-size:clamp(28px,4.2vw,40px);font-weight:650;line-height:1.12}h3{letter-spacing:-.01em;margin:0 0 8px;font-size:18px;font-weight:600;line-height:1.3}p{margin:0}.sub{color:var(--muted);max-width:600px;margin-top:14px}.sub a{text-decoration-line:underline;-webkit-text-decoration-color:var(--dim);text-decoration-color:var(--dim);text-underline-offset:3px;transition:color .15s var(--ease), text-decoration-color .15s var(--ease)}.sub a:hover{color:var(--fg);-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:88px;display:grid}.feature.flip .copy{order:2}figure{margin:0}.panel{justify-self:center;width:100%;max-width:460px}.panel.narrow{max-width:380px}.panel.wide{max-width:560px}.panel.capture{max-width:520px;margin:48px auto 0}.panel img{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--panel);width:100%;box-shadow:0 30px 90px -40px #6d8cff40}.copy.center{text-align:center}.copy.center .sub{margin-left:auto;margin-right:auto}.more{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:88px;display:grid}.more-list{margin:0;display:grid}.more-list>div{border-top:1px solid var(--border);padding:20px 0}.more-list>div:first-child{border-top:0;padding-top:0}.more-list dt{letter-spacing:-.01em;font-size:18px;font-weight:600}.more-list dd{color:var(--muted);margin:4px 0 0}.more-list>:nth-child(2){--stagger:1}.more-list>:nth-child(3){--stagger:2}.more-list>:nth-child(4){--stagger:3}.cta{text-align:center;border-top:1px solid var(--border)}.cta .sub{margin-left:auto;margin-right:auto}footer{border-top:1px solid var(--border);color:var(--dim);padding:32px 0 40px;font-size:14px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px 32px;display:flex}footer nav{flex-wrap:wrap;gap:8px 22px;display:flex}footer a{color:var(--muted);transition:color .15s var(--ease);text-decoration:none}footer a:hover{color:var(--fg)}.doc{max-width:720px;padding:64px 0 80px}.doc h1{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(32px,5vw,44px);font-weight:650;line-height:1.1}.doc h2{letter-spacing:-.02em;margin:44px 0 14px;font-size:22px}.doc p,.doc li{color:#c8c8c8}.doc p+p{margin-top:14px}.doc ul+p{margin-top:16px}.doc ul{gap:10px;margin:14px 0 0;padding-left:20px;display:grid}.doc strong{color:var(--fg);font-weight:600}.doc code{font:400 .88em var(--mono);background:var(--raised);border:1px solid var(--border);color:var(--fg);border-radius:4px;padding:1px 5px}.doc .meta{color:var(--dim);font:400 13px/1.5 var(--mono)}.doc a,.prose a{color:var(--select);text-underline-offset:3px;transition:text-decoration-color .15s var(--ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.doc a:hover,.prose a:hover{text-decoration-color:currentColor}.blog{max-width:720px;padding:64px 0 80px}.blog h1,.post h1{letter-spacing:-.03em;margin:0;font-size:clamp(32px,5vw,44px);font-weight:650;line-height:1.1}.posts{gap:16px;margin:40px 0 0;padding:0;list-style:none;display:grid}.post-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);transition:border-color .15s var(--ease), background-color .15s var(--ease);padding:24px;text-decoration:none;display:block}.post-card:hover{border-color:var(--border-strong);background:var(--panel-2)}.post-card:focus-visible{outline:2px solid var(--select);outline-offset:3px}.post-card h2{letter-spacing:-.02em;margin-top:8px;font-size:22px}.post-card .desc{color:var(--muted);margin-top:8px}.meta{color:var(--dim);font:400 13px/1.5 var(--mono)}.blog .feed{margin-top:28px;font-size:14px}.blog .feed a,.post .back a{color:var(--muted);text-decoration:none}.blog .feed a:hover,.post .back a:hover{color:var(--fg)}.post{max-width:720px;padding:56px 0 0}.post .back{margin-bottom:28px;font-size:14px}.post .meta{margin-bottom:12px}.draft-tag{border-radius:var(--radius-sm);background:var(--select-soft);color:var(--select);font:500 12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.04em;margin-right:10px;padding:1px 8px;display:inline-block}.draft-note{border:1px solid var(--select-soft);border-radius:var(--radius-sm);color:var(--muted);margin-bottom:20px;padding:12px 14px;font-size:14px}.post .lead{color:var(--muted);margin-top:16px;font-size:18px}.post .lead-img{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--panel);width:100%;margin-top:36px}.prose{margin-top:12px;font-size:17px}.prose p,.prose li{color:#c8c8c8}.prose p{margin-top:18px}.prose h2{letter-spacing:-.02em;margin:44px 0 0;font-size:24px}.prose h3{margin:32px 0 0}.prose ul,.prose ol{gap:10px;margin:18px 0 0;padding-left:22px;display:grid}.prose li::marker{color:var(--dim)}.prose strong{color:var(--fg);font-weight:600}.prose code{font:400 .86em var(--mono);background:var(--raised);border:1px solid var(--border);color:var(--fg);border-radius:4px;padding:1px 5px}.prose figure{margin:32px 0 0}.prose figure img{border-radius:var(--radius);border:1px solid var(--border-strong);width:100%}.prose figcaption{color:var(--dim);text-align:center;margin-top:10px;font-size:14px}.prose table{border-collapse:collapse;margin-top:24px;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;color:#c8c8c8;min-width:150px;padding:10px 14px 10px 0}.prose th{color:var(--fg);font-weight:600}.compare-list{margin:40px 0 0;padding:0;list-style:none}.compare-list li{border-bottom:1px solid var(--border);padding:18px 0}.compare-list a{color:var(--fg);cursor:pointer;font-weight:600;text-decoration:none}.compare-list a:hover{color:var(--select)}.compare-list p{color:var(--muted);margin-top:4px}.post-cta{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);text-align:center;max-width:720px;margin:56px 0 80px;padding:32px}.post-cta .sub{margin-left:auto;margin-right:auto}.post-cta .actions{margin-top:24px}.pricing .plan{padding:44px 0 0}.pricing .plan+.plan{border-top:1px solid var(--border);margin-top:48px}.plan>p{color:#c8c8c8}.plan-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 24px;margin-bottom:12px;display:flex}.plan-head h2{font-size:28px}.plan-price{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:650}.plan-price span{color:var(--muted);letter-spacing:0;font-size:15px;font-weight:400}.plan .actions{justify-content:flex-start;margin-top:28px}.plan-list{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.plan-list li{color:var(--muted);padding-left:22px;position:relative}.plan-list li:before{content:"";background:var(--select);border-radius:2px;width:8px;height:8px;position:absolute;top:.62em;left:0}.plan-list strong{color:var(--fg);font-weight:600}button.btn{cursor:pointer}.pro-dialog{border:1px solid var(--border-strong);background:var(--panel);width:min(480px,100% - 32px);color:var(--fg);border-radius:14px;padding:0;box-shadow:0 30px 80px #0009}.pro-dialog::backdrop{-webkit-backdrop-filter:blur(6px);background:#050508b8}.pro-dialog-body{padding:28px}.pro-dialog h2{letter-spacing:-.02em;font-size:22px}.pro-dialog p{color:#c8c8c8;margin-top:10px}.pro-dialog .pro-pick-label{color:var(--muted);margin-top:22px;font-size:14px}.pro-pick{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.pro-chip{border:1px solid var(--border-strong);height:34px;color:var(--fg);font:500 14px/1 var(--font);cursor:pointer;background:#ffffff08;border-radius:8px;padding:0 12px;transition:background .15s,border-color .15s}.pro-chip:hover{background:#ffffff12;border-color:#fff3}.pro-chip[aria-pressed=true]{background:var(--select-soft);border-color:var(--select)}.pro-chip:focus-visible,.pro-dialog button.btn:focus-visible{outline:2px solid var(--select);outline-offset:3px}.pro-dialog-actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.pro-dialog-actions .btn{border-radius:12px;height:46px;padding:0 20px;font-size:15px}[data-reveal]{transform-origin:50% 100%}[data-reveal=pending]{opacity:0;transform:perspective(1200px)translateY(40px)rotateX(6deg)}[data-reveal=pending].copy{filter:blur(6px);transform:translateY(16px)}[data-reveal=in]{transition:opacity .9s var(--ease-out), transform .9s var(--ease-out), filter .7s var(--ease-out);transition-delay:calc(var(--stagger,0) * .1s)}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:scroll()){.hero-copy{--lift:-72px;animation:linear both hero-copy-out;animation-timeline:scroll(root);animation-range:0 600px}.hero-fx{animation:linear both hero-ground;animation-timeline:scroll(root);animation-range:0 900px}}}@keyframes hero-copy-out{60%{opacity:1}to{opacity:0;transform:translateY(var(--lift))}}@keyframes hero-ground{to{transform:translateY(80px)}}@media (max-width:980px){.feature,.more,.film{grid-template-columns:1fr;gap:40px}.feature.flip .copy{order:0}}@media (max-width:720px){.hero{padding:64px 0 24px}.hero-copy{--lift:-24px}.shot{border-radius:var(--radius-sm);margin-top:40px}section{padding:72px 0}.top nav{gap:8px}}@media (max-width:560px){.post-cta{padding:24px 16px}.pro-dialog-body{padding:22px}.pro-dialog-actions .btn{flex:100%}.actions .btn{justify-content:center;width:100%}}@media (max-width:400px){.top .wrap{gap:8px}.top nav{gap:6px}.top nav .nav-link{padding:0 4px}.top nav .nav-stars{min-width:0;padding:0 9px}.nav-stars .label,.nav-stars .count{display:none}.top nav .btn-nav{gap:6px;padding:0 10px 0 9px}}@media (max-width:340px){.top nav .nav-stars{display:none}.top nav .btn-nav{padding:0 8px}}@media (prefers-reduced-motion:reduce){.wordmark span{background-position:0 0;animation:none}.btn,.top nav a,.post-card,.hero-fx:before,.hero-fx canvas,.zoom,.zoom-img{transition:none}.hero h1 .w,.hero .lede,.hero .actions,.hero .req,.hero .shot-zoom{animation:.2s linear both fade}.top nav .nav-stars:active,.top nav .btn-nav:active,.btn:active{scale:none}}@keyframes fade{0%{opacity:0}}
