:root{--black:#000;--light:#f5f5f7;--white:#fff;--ink:#1d1d1f;--gray:#86868b;--gray-small:#6e6e73;--blue:#0071e3;--blue-dark:#2997ff;--font:-apple-system, "SF Pro Display", "SF Pro", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--gutter:clamp(20px, 5vw, 48px);--nav-h:52px;--max:1120px;--bg:var(--white);--fg:var(--ink);--muted:var(--gray-small);--link:var(--blue);--line:#0000001a;--card:var(--light)}.dark{--bg:var(--black);--fg:#f5f5f7;--muted:var(--gray);--link:var(--blue-dark);--line:#ffffff24;--card:#1c1c1e}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px);background:var(--bg)}html.home,.home body{background:var(--black)}body{min-height:100svh;font-family:var(--font);letter-spacing:-.022em;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;margin:0;font-size:17px;line-height:1.47;display:flex}main{flex:1 0 auto}h1,h2,h3,p,ul,ol,figure{margin:0}img,svg{display:block}img{max-width:100%;height:auto}a{color:var(--link);text-decoration:none}a:hover{text-underline-offset:.15em;text-decoration:underline}:focus-visible{outline:3px solid var(--link);outline-offset:3px;border-radius:6px}code{font-family:var(--mono);letter-spacing:0;font-size:.88em}.skip{z-index:100;background:var(--blue);color:#fff;border-radius:980px;padding:10px 18px;font-size:15px;font-weight:600;position:absolute;top:8px;left:12px;transform:translateY(-150%)}.skip:focus{text-decoration:none;transform:none}.nav{--nav-bg:#ffffffb8;--nav-fg:var(--ink);--nav-line:#00000014;z-index:50;height:var(--nav-h);padding:0 var(--gutter);background:var(--nav-bg);color:var(--nav-fg);border-bottom:1px solid var(--nav-line);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);position:sticky;top:0}.home .nav,.nav.dark{--nav-bg:#000000b8;--nav-fg:#f5f5f7;--nav-line:#ffffff1a;--link:var(--blue-dark)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.nav{--nav-bg:#fffffff5}.home .nav,.nav.dark{--nav-bg:#000000f0}}.nav-inner{max-width:var(--max);justify-content:space-between;align-items:center;gap:16px;height:100%;margin:0 auto;display:flex}.brand{color:inherit;letter-spacing:-.035em;align-items:center;gap:9px;padding:10px 0;font-size:19px;font-weight:700;display:inline-flex}.brand:hover{text-decoration:none}.brand .mark{width:20px;height:20px}.nav ul{gap:clamp(20px,4vw,36px);padding:0;list-style:none;display:flex}.nav ul a{color:inherit;letter-spacing:-.016em;opacity:.82;padding:12px 0;font-size:14px;display:inline-block}.nav ul a:hover,.nav ul a[aria-current=page]{opacity:1;text-decoration:none}.section{padding:clamp(96px, 13vw, 172px) var(--gutter);background:var(--bg);color:var(--fg);overflow:clip}.section.light{--bg:var(--light);--card:var(--white)}.wrap{max-width:var(--max);margin:0 auto}.center{text-align:center}.headline{letter-spacing:-.04em;text-wrap:balance;font-weight:700;line-height:1.05}.headline.xl{letter-spacing:-.045em;font-size:clamp(56px,11vw,160px)}.headline.lg{font-size:clamp(44px,7.4vw,104px)}.sub{letter-spacing:-.012em;color:var(--gray);text-wrap:balance;margin-top:clamp(14px,1.6vw,24px);font-size:clamp(24px,1.05rem + 1.05vw,34px);font-weight:500;line-height:1.25}.headline .s,.sub .s{display:inline-block}.sub code{color:var(--fg);font-size:.8em}.shot{margin-top:clamp(48px,7vw,96px)}.shot img{width:auto;max-width:100%;height:auto;max-height:min(84svh,780px);margin:0 auto}.shot.pair img{max-height:min(80svh,760px)}@media (width<=600px){.shot.pair{margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1)}}.split{text-align:center;align-items:center;gap:clamp(8px,2vw,24px);display:grid}.split .headline{letter-spacing:-.045em;font-size:clamp(48px,7vw,100px)}@media (width>=820px){.split{text-align:left;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px)}.split.flip .copy{order:2}.split .shot{margin-top:0}.split .sub .s{display:block}}.hero{text-align:center;padding-top:clamp(44px,5vw,72px);padding-bottom:0;overflow:hidden}.hero .lockup{font-size:clamp(52px,8vw,108px)}.hero .tagline{font-size:clamp(22px,.9rem + 1.5vw,36px)}.hero .cta{margin-top:clamp(24px,2.6vw,32px)}.showcase{aspect-ratio:2400/1500;width:min(1280px,100%);margin:clamp(20px,3vw,36px) auto 0;position:relative}.showcase:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#ffffff17,#0000);position:absolute;inset:12% 18% 0}.showcase .layer,.showcase img{width:100%;height:100%;position:absolute;inset:0}@media (width<=600px){.showcase{width:158%;margin-left:-29%}}.lockup{letter-spacing:-.045em;color:#fff;align-items:center;gap:.2em;font-size:clamp(60px,13vw,176px);font-weight:700;line-height:1;display:inline-flex}.lockup .mark{flex:none;width:.74em;height:.74em;overflow:visible}.lockup .name{margin:-.08em -.06em -.12em 0;padding:.08em .06em .12em 0;display:block}.tagline{letter-spacing:-.012em;color:var(--gray);margin-top:.55em;font-size:clamp(24px,1rem + 2.1vw,46px);font-weight:500;line-height:1.2}.cta{margin-top:clamp(20px,2.4vw,28px)}.pill{letter-spacing:-.022em;border-radius:980px;align-items:center;min-height:44px;padding:11px 22px;font-size:17px;font-weight:500;line-height:1.2;display:inline-flex}.pill.soon{color:#f5f5f7;background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff3d}.cta .badge{display:inline-block}.cta .badge img{width:auto;height:clamp(44px,4vw,54px)}.button{background:var(--blue);color:#fff;letter-spacing:-.022em;border-radius:980px;justify-content:center;align-items:center;min-height:44px;padding:11px 22px;font-size:17px;font-weight:500;line-height:1.2;display:inline-flex}.button:hover{background:#0077ed;text-decoration:none}.more{letter-spacing:-.02em;margin-top:clamp(24px,3vw,36px);font-size:clamp(17px,.9rem + .4vw,21px)}.more a:after{content:" ›";content:" ›" / ""}.stat-title{font-weight:700}.stat{letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:#fff;font-size:clamp(96px,17vw,260px);line-height:1.1;display:block}.stat-label{letter-spacing:-.015em;color:var(--gray);text-wrap:balance;margin-top:.45em;font-size:clamp(24px,1rem + 1.7vw,46px);font-weight:600;line-height:1.2;display:block}.stat-label.bright{color:#fff;margin-top:.3em}.tiles{text-align:left;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(12px,1.6vw,20px);margin-top:clamp(48px,6vw,80px);padding:0;list-style:none;display:grid}.tile{background:var(--card);border-radius:22px;padding:28px 28px 32px}.tile h3{letter-spacing:-.024em;font-size:21px;font-weight:700;line-height:1.2}.tile p{color:var(--muted);margin-top:8px;font-size:17px;line-height:1.42}.app-icon{width:clamp(96px,11vw,144px);height:auto;margin:0 auto clamp(20px,2.4vw,32px)}.closing .headline{letter-spacing:-.045em;font-size:clamp(60px,10vw,150px)}.doc{padding:clamp(56px, 9vw, 112px) var(--gutter) clamp(88px, 11vw, 150px)}.prose{max-width:692px;margin:0 auto}.prose h1{letter-spacing:-.038em;text-wrap:balance;font-size:clamp(40px,6.4vw,64px);font-weight:700;line-height:1.05}.prose .meta{color:var(--muted);margin-top:16px;font-size:15px}.prose .lede{border-bottom:1px solid var(--line);letter-spacing:-.02em;margin-top:28px;padding-bottom:36px;font-size:clamp(19px,1rem + .4vw,22px);line-height:1.4}.prose h2{letter-spacing:-.028em;margin:56px 0 16px;font-size:clamp(26px,1.2rem + 1vw,32px);font-weight:700;line-height:1.15}.prose .lede+h2{margin-top:40px}.prose h3{letter-spacing:-.022em;margin:36px 0 8px;font-size:19px;font-weight:700;line-height:1.3}.prose p+p,.prose p+ul,.prose ul+p{margin-top:1em}.prose ul{padding-left:1.25em}.prose li+li{margin-top:.6em}.prose p a,.prose li a{text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px}.prose code{background:var(--card);overflow-wrap:anywhere;border-radius:6px;padding:.08em .36em}.prose .fine{color:var(--muted);font-size:15px}.contact{background:var(--card);border-radius:22px;margin-top:40px;padding:28px}.contact h2{margin-top:0}.contact .address{color:var(--fg);overflow-wrap:anywhere;font-weight:600}.contact .button{margin-top:20px}.prose h2+.qa h3{margin-top:24px}.lost{text-align:center}.lost .mark{width:56px;height:56px;color:var(--fg);margin:0 auto 32px}.lost p{color:var(--muted);margin-top:16px;font-size:clamp(19px,1rem + .4vw,22px)}.lost .actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 24px;margin-top:32px;font-size:17px;display:flex}.footer{padding:20px var(--gutter) 32px;background:var(--light);color:var(--gray-small);letter-spacing:-.01em;font-size:13px;line-height:1.4}.footer-inner{max-width:var(--max);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 24px;margin:0 auto;display:flex}.footer ul{flex-wrap:wrap;gap:0 24px;padding:0;list-style:none;display:flex}.footer a{color:#424245;padding:10px 0;display:inline-block}.home .footer{background:var(--black);color:var(--gray);border-top:1px solid #ffffff24}.home .footer a{color:#d2d2d7}@media (prefers-color-scheme:dark){.doc-page{--bg:var(--black);--fg:#f5f5f7;--muted:var(--gray);--link:var(--blue-dark);--line:#ffffff24;--card:#1c1c1e}html.doc-page{background:var(--black)}.doc-page .nav{--nav-bg:#161617cc;--nav-fg:#f5f5f7;--nav-line:#ffffff1a}.doc-page .footer{color:var(--gray);background:#161617}.doc-page .footer a{color:#d2d2d7}}@media (prefers-reduced-motion:no-preference){.hero .mark .near{animation:bar-near .75s var(--ease) .17s both, fade-in .3s linear .17s both}.hero .mark .middle{animation:bar-middle .75s var(--ease) 80ms both, fade-in .3s linear 80ms both}.hero .mark .far{animation:bar-far .75s var(--ease) 0s both, fade-in .3s linear 0s both}.hero .name{animation:name-in .9s var(--ease) .5s both}.hero .enter{animation:rise-in .9s var(--ease) .8s both}.hero .enter+.enter{animation-delay:.95s}.hero .enter+.enter+.enter{animation-delay:1.1s}.showcase .back{animation:showcase-back 1.3s var(--ease) .35s both}.showcase .front{animation:showcase-front 1.2s var(--ease) .2s both}.showcase .lift{animation:showcase-lift 1s var(--ease) 1s both}@supports (animation-timeline:view()){.rise{animation:rise-in var(--ease) both;animation-timeline:view();animation-range:entry 10% cover 30%}}@supports (animation-timeline:scroll()){.showcase .back img{animation:linear both drift-back;animation-timeline:scroll(root);animation-range:0 100vh}.showcase .front img{animation:linear both drift-front;animation-timeline:scroll(root);animation-range:0 100vh}.showcase .lift img{animation:linear both drift-lift;animation-timeline:scroll(root);animation-range:0 100vh}}}@keyframes showcase-back{0%{opacity:0;transform:translateY(18%)}}@keyframes showcase-front{0%{opacity:0;transform:translateY(12%)}}@keyframes showcase-lift{0%{opacity:0;transform:translateY(-22%)scale(.97)}}@keyframes drift-back{to{transform:translateY(-3%)}}@keyframes drift-front{to{transform:translateY(-9%)}}@keyframes drift-lift{to{transform:translateY(-20%)}}@keyframes bar-near{0%{transform:translate(520px)}}@keyframes bar-middle{0%{transform:translate(380px)}}@keyframes bar-far{0%{transform:translate(260px)}}@keyframes fade-in{0%{opacity:0}}@keyframes name-in{0%{clip-path:inset(0 100% 0 0);transform:translate(-.3em)}to{clip-path:inset(0);transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
