.fan-stage{--fan-scale:.62;--fan-w:820px;--fan-h:516px;--mx:0;--my:0;z-index:1;width:100%;height:calc(var(--fan-h) * var(--fan-scale));position:relative}@media (min-width:640px){.fan-stage{--fan-scale:.82}}@media (min-width:1024px){.fan-stage{--fan-scale:1}}.fan{width:var(--fan-w);height:var(--fan-h);transform:translateX(-50%) scale(var(--fan-scale));transform-origin:top;perspective:1400px;position:absolute;top:0;left:50%}.fan-tilt{transform-style:preserve-3d;transform-origin:50% 55%;position:absolute;inset:0}.fan-phone{transform-style:preserve-3d;position:absolute;top:0;left:50%}.fan-phone-centre{--depth:14;z-index:3;transform:translate(-50%)}.fan-phone-left{--depth:6;z-index:2;transform:translate(calc(-50% - 250px))translateY(44px)rotateY(18deg)rotate(-7deg)scale(.94)}.fan-phone-right{--depth:6;z-index:2;transform:translate(calc(250px - 50%))translateY(44px)rotateY(-18deg)rotate(7deg)scale(.94)}.swap{position:relative}.swap>.swap-b{opacity:0;position:absolute;inset:0}.widget-pill{white-space:nowrap;border-radius:999px;align-items:center;gap:8px;height:48px;padding:0 20px;font-size:15px;font-weight:600;line-height:1;display:inline-flex;box-shadow:0 6px 20px #0000002e,0 0 0 1px #00000014}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-track{width:max-content;display:flex}.bar{transform-origin:bottom}.ripple{opacity:0;pointer-events:none;border:2px solid #111;border-radius:999px;width:44px;height:44px;position:absolute}.flip-stage{perspective:1200px}.flip{transform-style:preserve-3d;position:relative}.flip-face{backface-visibility:hidden}.flip-face-back{position:absolute;inset:0 0 auto;transform:rotateY(180deg)}.flip-back{transform:rotateY(180deg)}.hero-flip{transform-style:preserve-3d;position:relative}.step-form{opacity:0}.scan-line{opacity:.7;top:50%}.sticker-scan{opacity:.5;top:50%}.chip-updating,.site-cursor{opacity:0}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);transform:translateY(16px)}.reveal.in{opacity:1;transform:translateY(0)}.float{animation:6s ease-in-out infinite float}.float-2{animation-delay:-2s}.float-3{animation-delay:-4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.fan-tilt{transform:rotateY(calc(var(--mx) * 5deg)) rotateX(calc(var(--my) * -3deg))}.fan-phone{translate:calc(var(--mx) * var(--depth) * 1px) calc(var(--my) * var(--depth) * .6px)}.flip{transition:transform .55s var(--ease-out)}.hero-flip{animation:hero-flip 10s var(--ease-out) infinite}@keyframes hero-flip{0%,42%{transform:rotateY(0)}50%,86%{transform:rotateY(180deg)}94%,to{transform:rotateY(0)}}.face-in{animation:face-in .35s var(--ease-out) both}@keyframes face-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.swap>.swap-b{animation:8s ease-in-out infinite swap}@keyframes swap{0%,35%{opacity:0}42%,85%{opacity:1}92%,to{opacity:0}}.upd-layer{animation:.6s ease-in-out both upd-layer}@keyframes upd-layer{0%{opacity:0}to{opacity:1}}.upd-chip{animation:2.2s ease-in-out both upd-chip}@keyframes upd-chip{0%{opacity:0;transform:translateY(6px)}14%,72%{opacity:1;transform:none}90%,to{opacity:0;transform:translateY(-4px)}}.add-badge{animation:9s ease-in-out infinite add-badge}@keyframes add-badge{0%,14%,20%,to{transform:scale(1)}17%{transform:scale(.94)}}.ripple.add-ripple{animation:9s ease-out infinite add-ripple}@keyframes add-ripple{0%,14%{opacity:0;transform:scale(.4)}17%{opacity:.7;transform:scale(.5)}28%,to{opacity:0;transform:scale(1.5)}}.add-pass{animation:add-pass 9s var(--ease-out) infinite}@keyframes add-pass{0%,17%{opacity:0;transform:translateY(-160px)scale(.92)}21%{opacity:1}40%,88%{opacity:1;transform:translateY(0)scale(1)}94%,to{opacity:0;transform:translateY(-160px)scale(.92)}}.add-tick{animation:add-tick 9s var(--ease-out) infinite}@keyframes add-tick{0%,42%{opacity:0;transform:translateY(8px)}46%,86%{opacity:1;transform:none}90%,to{opacity:0;transform:translateY(-4px)}}.back-light>div>div:last-child>div{animation:9s ease-in-out infinite light-row}.back-light>div>div:last-child>div:first-child{animation-delay:0s}.back-light>div>div:last-child>div:nth-child(2){animation-delay:1.2s}.back-light>div>div:last-child>div:nth-child(3){animation-delay:2.4s}.back-light>div>div:last-child>div:nth-child(4){animation-delay:3.6s}.back-light>div>div:last-child>div:nth-child(5){animation-delay:4.8s}@keyframes light-row{0%,19%{background:0 0}21%,30%{background:#e5e5ea}34%,to{background:0 0}}.step-form{animation:step-form 7s var(--ease-out) infinite}.step-pass{animation:step-pass 7s var(--ease-out) infinite}@keyframes step-form{0%,35%{opacity:1;transform:translateY(0)scale(1)}48%,90%{opacity:0;transform:translateY(-14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes step-pass{0%,38%{opacity:0;transform:translateY(18px)scale(.96)}52%,90%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(18px)scale(.96)}}.form-fill-1{animation:7s step-end infinite form-fill}.form-fill-2{animation:7s step-end .6s infinite form-fill}.form-fill-3{animation:7s step-end 1.2s infinite form-fill}@keyframes form-fill{0%,8%{width:0}12%,to{width:100%}}.scan-line{animation:2.4s ease-in-out infinite scan}@keyframes scan{0%{opacity:0;top:4%}10%{opacity:1}50%{top:92%}90%{opacity:1}to{opacity:0;top:4%}}.scan-done{animation:2.4s ease-in-out infinite scan-done}@keyframes scan-done{0%,55%{opacity:0;transform:translateY(10px)}65%,90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.notif{opacity:0}.in .notif{animation:notif-drop .7s var(--ease-out) both}@keyframes notif-drop{0%{opacity:0;transform:translateY(-28px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.sticker-scan{animation:7s ease-in-out infinite sticker-scan}@keyframes sticker-scan{0%{opacity:0;top:2%}10%{opacity:.5}60%{opacity:.5;top:97%}70%,to{opacity:0;top:97%}}.bubble{opacity:0}.in .bubble{animation:bubble-in .6s var(--ease-out) both}.in .bubble-2{animation:unfurl .7s var(--ease-out) .9s both}.in .bubble-3{animation-delay:1.7s}@keyframes bubble-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}@keyframes unfurl{0%{opacity:0;transform-origin:top;transform:translateY(-8px)scaleY(.6)}to{opacity:1;transform-origin:top;transform:none}}.site-cursor{animation:8s ease-in-out infinite site-cursor}@keyframes site-cursor{0%,8%{opacity:0;transform:translate(150px,230px)}12%{opacity:1}26%{transform:translate(282px,398px)}28%{transform:translate(282px,398px)scale(.9)}30%,76%{opacity:1;transform:translate(282px,398px)}84%,to{opacity:0;transform:translate(150px,230px)}}.site-pill{animation:8s ease-in-out infinite site-pill}@keyframes site-pill{0%,26%,30%,to{transform:scale(1)}28%{transform:scale(.96)}}.site-pop{animation:8s infinite site-pop}@keyframes site-pop{0%,28%{opacity:0;visibility:hidden;transform:translateY(6px)}31%,74%{opacity:1;visibility:visible;transform:none}77%,to{opacity:0;visibility:hidden;transform:translateY(6px)}}.bar{transform:scaleY(0)}.in .bar{animation:bar-grow .7s var(--ease-out) both;animation-delay:calc(var(--i,0) * 22ms)}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.row-in{opacity:0}.in .row-in{animation:bubble-in .5s var(--ease-out) both;animation-delay:calc(.4s + var(--i,0) * .16s)}.chip-updating{animation:8s ease-in-out infinite chip-updating}.chip-updated{animation:8s ease-in-out infinite chip-updated}@keyframes chip-updating{0%,30%{opacity:0;transform:translateY(6px)}33%,40%{opacity:1;transform:none}43%,to{opacity:0;transform:translateY(-6px)}}@keyframes chip-updated{0%,42%{opacity:0;transform:translateY(6px)}46%,80%{opacity:1;transform:none}86%,to{opacity:0;transform:translateY(-6px)}}.ripple{animation:3.2s ease-out infinite ripple}@keyframes ripple{0%,60%{opacity:0;transform:scale(.4)}65%{opacity:.7;transform:scale(.5)}to{opacity:0;transform:scale(1.4)}}.tap-row{animation:3.2s ease-out infinite tap-row}@keyframes tap-row{0%,62%{background:0 0}66%{background:var(--surface-3)}80%,to{background:0 0}}.marquee-track{animation:48s linear infinite marquee}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}}.fu-dot{background:var(--ink);color:#fff}.fu-slot{grid-template-rows:1fr;display:grid}@media (prefers-reduced-motion:no-preference){.fu-node{opacity:.4;transform:translateY(6px)}.in .fu-node{animation:fu-node .6s var(--ease-out) both;animation-delay:var(--t,0s)}@keyframes fu-node{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}.fu-dot{background:var(--surface-2);color:var(--ink)}.in .fu-dot{animation:.35s ease-out both fu-dot;animation-delay:calc(var(--t,0s) + .25s)}@keyframes fu-dot{0%{background:var(--surface-2);color:var(--ink)}to{background:var(--ink);color:#fff}}.fu-line{transform-origin:top;transform:scaleY(0)}.in .fu-line{animation:fu-line .6s var(--ease-out) both;animation-delay:var(--t,0s)}@keyframes fu-line{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.fu-notif{opacity:0}.in .fu-notif{animation:notif-drop .7s var(--ease-out) both;animation-delay:var(--t,0s)}.fu-slot{grid-template-rows:0fr}.in .fu-slot{animation:fu-slot .6s var(--ease-out) both;animation-delay:var(--t,0s)}@keyframes fu-slot{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}}
