@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:.5s cubic-bezier(.2,.8,.2,1) both rise;animation-delay:calc(var(--i,0) * 40ms)}.reveal-on .rise:not([data-revealed]){animation-play-state:paused}@keyframes tap-ring{0%{opacity:.9;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(3.4)}}@keyframes nudge{0%,to{transform:translate(0)}50%{transform:translate(3px,-3px)}}@keyframes app-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes fill{0%{width:0%}to{width:100%}}@keyframes flap{0%,to{transform:rotate(0)}50%{transform:rotate(-12deg)}}@keyframes panel-from-right{0%{opacity:0;transform:translate(32px)scale(.985)}}@keyframes panel-from-left{0%{opacity:0;transform:translate(-32px)scale(.985)}}.panel-right{animation:.45s cubic-bezier(.2,.8,.2,1) both panel-from-right}.panel-left{animation:.45s cubic-bezier(.2,.8,.2,1) both panel-from-left}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.lift{animation:linear both lift;animation-timeline:view();animation-range:entry entry 70%}@keyframes lift{0%{opacity:.4;transform:translateY(40px)scale(.965)}}.drift{animation:linear both drift;animation-timeline:view()}@keyframes drift{0%{transform:translateY(28px)}to{transform:translateY(-28px)}}}}.hero-anim{transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1)}[data-play="0"] .hero-anim{opacity:0;transform:translateY(14px)}[data-pressed="1"] .tap-card{transform:scale(.94)rotate(2deg)}.tap-card{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.pulse-rings:before,.pulse-rings:after{content:"";aspect-ratio:1;border:1.5px solid color-mix(in oklab, var(--lime) 45%, transparent);border-radius:50%;width:70%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.6)}[data-play="1"] .pulse-rings:before{animation:2.6s ease-out infinite tap-ring}[data-play="1"] .pulse-rings:after{animation:2.6s ease-out 1.3s infinite tap-ring}@keyframes glow{0%{opacity:.4;transform:scale(.9)}to{opacity:1;transform:scale(1.05)}}.tap-glow{animation:1.2s ease-in-out infinite alternate glow}.scan{animation:.7s cubic-bezier(.2,.8,.2,1) forwards fill}@keyframes pulse{50%{opacity:.3}}.tap-dot{animation:1s ease-in-out infinite pulse}.offscreen{content-visibility:auto;contain-intrinsic-size:auto 900px}.face-hidden{backface-visibility:hidden}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}[data-marketing] :is(a,button,[role=tab],[tabindex]){touch-action:manipulation}[data-marketing] :is(button,[role=tab]){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html:has([data-marketing]){scroll-behavior:smooth}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.rise,.panel-right,.panel-left{animation-name:fade-in!important}html:has([data-marketing]){scroll-behavior:auto}}.link-line{position:relative}.link-line:after{content:"";inset-inline:0;transform-origin:100%;background:currentColor;height:2px;transition:transform .35s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:-4px;transform:scaleX(0)}.link-line:hover:after,.link-line[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.lift-cta{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}@media (hover:hover){.lift-cta:hover{box-shadow:0 18px 36px -16px color-mix(in oklab, var(--fg) 65%, transparent);transform:translateY(-3px)scale(1.02)}}.lift-cta:active{transform:scale(.97)}@keyframes dot-ring{0%{opacity:.45;transform:scale(1)}70%,to{opacity:0;transform:scale(2.4)}}.dot-pulse{position:relative}.dot-pulse:after{content:"";border-radius:inherit;background:inherit;animation:2s ease-out infinite dot-ring;position:absolute;inset:0}@keyframes nav-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@supports (animation-timeline:scroll()){.nav-progress{animation:linear both nav-progress;animation-timeline:scroll(root)}}@keyframes word-in{0%{opacity:0;filter:blur(8px);transform:translateY(70%)}}.word-in{animation:.7s cubic-bezier(.2,.8,.2,1) both word-in;display:inline-block}@keyframes float{50%{transform:translateY(-14px)}}.float-a{animation:5s ease-in-out infinite float}.float-b{animation:6s ease-in-out -2s infinite float}.float-c{animation:7s ease-in-out -4s infinite float}@keyframes marquee{to{transform:translate(-50%)}}.marquee{width:max-content;animation:marquee var(--dur,40s) linear infinite;display:flex}.marquee-rev{animation-direction:reverse}@media (hover:hover){.lane:hover .marquee{animation-play-state:paused}}.lane:focus-within .marquee{animation-play-state:paused}.flip{perspective:1400px}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.8,.2,1);display:block;position:relative}@media (hover:hover){.flip:hover .flip-inner{transform:rotateY(180deg)}}.flip:focus-visible .flip-inner,.flip[data-flipped] .flip-inner{transform:rotateY(180deg)}.flip-side{backface-visibility:hidden;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0;overflow:hidden}.flip-back{transform:rotateY(180deg)}.shape-ticket{-webkit-mask:radial-gradient(16px at 0,#0000 98%,#000) 0/51% 100% no-repeat,radial-gradient(16px at 100%,#0000 98%,#000) 100%/51% 100% no-repeat;mask:radial-gradient(16px at 0,#0000 98%,#000) 0/51% 100% no-repeat,radial-gradient(16px at 100%,#0000 98%,#000) 100%/51% 100% no-repeat}.shape-receipt{-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/28px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/28px 100%}.shape-blob{border-radius:48% 52% 40% 60%/44% 40% 60% 56%}@keyframes eq{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}.eq>span{animation:1.1s ease-in-out infinite alternate eq}.hover-rise{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}@media (hover:hover){.hover-rise:hover{box-shadow:0 34px 60px -36px color-mix(in oklab, var(--fg) 65%, transparent);transform:translateY(-5px)}}@keyframes pop{0%{opacity:0;transform:scale(.6)translateY(10px)}}.pop{animation:.5s cubic-bezier(.2,.8,.2,1) both pop}@keyframes ripple-out{0%{opacity:.9;scale:.5}to{opacity:0;scale:3.2}}.ripple-out{animation:.9s ease-out both ripple-out}@keyframes flash{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--lime) 90%, transparent)}to{box-shadow:0 0 0 8px #0000}}.flash{animation:.9s ease-out .25s flash}@keyframes steam{0%{opacity:0;transform:translateY(4px)scaleY(.6)}50%{opacity:.9}to{opacity:0;transform:translateY(-10px)scaleY(1)}}.steam{animation:1.8s ease-out infinite steam}.progress{animation:6s linear infinite fill}.fan>*{transition:transform .7s cubic-bezier(.2,.8,.2,1);position:absolute;top:50%;left:50%}.fan>:first-child{transform:translate(-50%,-50%)rotate(-10deg)translate(-40px,10px)}.fan>:nth-child(2){transform:translate(-50%,-50%)rotate(6deg)translate(30px,-10px)}.fan>:nth-child(3){transform:translate(-50%,-50%)rotate(-3deg)translate(-10px,40px)}.fan>:nth-child(4){transform:translate(-50%,-50%)rotate(12deg)translate(60px,30px)}.fan[data-open]>:first-child{transform:translate(-50%,-50%)rotate(-14deg)translate(-31%,-70px)}.fan[data-open]>:nth-child(2){transform:translate(-50%,-50%)rotate(10deg)translate(32%,-90px)}.fan[data-open]>:nth-child(3){transform:translate(-50%,-50%)rotate(-6deg)translate(-40%,110px)}.fan[data-open]>:nth-child(4){transform:translate(-50%,-50%)rotate(14deg)translate(45%,90px)}@media (hover:hover){.fan:hover>:first-child{transform:translate(-50%,-50%)rotate(-14deg)translate(-31%,-70px)}.fan:hover>:nth-child(2){transform:translate(-50%,-50%)rotate(10deg)translate(32%,-90px)}.fan:hover>:nth-child(3){transform:translate(-50%,-50%)rotate(-6deg)translate(-40%,110px)}.fan:hover>:nth-child(4){transform:translate(-50%,-50%)rotate(14deg)translate(45%,90px)}}.accordion{transition:grid-template-rows .5s cubic-bezier(.2,.8,.2,1);display:grid}@keyframes zone{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.8)}}.zone{animation:1.6s ease-out infinite zone}@keyframes card-glide{0%,to{opacity:0;transform:translate(120px,120px)rotate(14deg)}25%{opacity:1}55%,70%{opacity:1;transform:none}}.card-glide{animation:3s cubic-bezier(.6,0,.2,1) infinite card-glide}@keyframes bounce-soft{0%,to{transform:translateY(0)}40%{transform:translateY(-10px)}}.bounce-soft{animation:1.6s cubic-bezier(.2,.8,.2,1) infinite bounce-soft}@keyframes screen-in{0%{opacity:0;transform:translateY(24px)scale(.97)}}.screen-in{animation:.6s cubic-bezier(.2,.8,.2,1) both screen-in}html[data-paused] :is(.marquee,.float-a,.float-b,.float-c,.eq>span,.progress,.zone,.steam,.card-glide,.bounce-soft,.tap-glow,.tap-dot,.ripple-out,.scan,[class*=infinite]),html[data-paused] .dot-pulse:after,html[data-paused] .pulse-rings:before,html[data-paused] .pulse-rings:after{animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.dot-pulse:after,.pulse-rings:before,.pulse-rings:after,.tap-glow,.tap-dot,.ripple-out,.scan,.float-a,.float-b,.float-c,.eq>span,.progress,.zone,.steam,.card-glide,.bounce-soft{animation:none!important}.word-in,.pop,.screen-in{animation-name:fade-in!important}.marquee{animation:none}.lane{overflow-x:auto!important}.flip-inner,.fan>*{transition:none}}
