<!doctype html>
<html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<style>
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#fbf8f3}
#stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;overflow:hidden;transform-origin:center;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
:where(#stage *){position:absolute}
:where(#stage pre *){position:static}
#stage{background:#fbf8f3;color:#22223b}
.tt{left:0;width:1920px;top:120px;text-align:center;font-size:72px;font-weight:800;overflow:hidden;height:92px}
.tt span{left:0;width:1920px;top:0}
.ul{left:810px;top:224px;height:8px;width:0;border-radius:4px;background:#ff6b4a}
.st{top:390px;width:420px;height:420px}
.num{left:162px;top:0;width:96px;height:96px;border-radius:50%;background:#ff6b4a;color:#fff;display:grid;place-items:center;font-size:44px;font-weight:800}
.ic{left:110px;top:130px;width:200px;height:140px}
.lab{left:0;top:300px;width:420px;text-align:center;font-size:40px;font-weight:700}
.con{top:438px;height:0;border-top:4px dashed #22223b55;width:0}
.br{left:0;width:1920px;top:930px;text-align:center;font-size:36px;font-weight:800;color:#ff6b4a}
</style></head><body><div id="stage"><div class="tt"><span id="tt">How Ledgerly works</span></div><div class="ul" id="ul"></div>
<div class="st" id="s0" style="left:170px"><div class="num">1</div>
<svg class="ic" viewBox="0 0 200 140"><circle id="i0a" cx="50" cy="70" r="26" fill="#22223b"/><circle id="i0b" cx="150" cy="70" r="26" fill="#ff6b4a"/><line id="i0l" x1="76" y1="70" x2="124" y2="70" stroke="#22223b" stroke-width="8" stroke-linecap="round"/></svg><div class="lab">Connect your bank</div></div><div class="st" id="s1" style="left:730px"><div class="num">2</div>
<svg class="ic" viewBox="0 0 200 140"><circle cx="100" cy="70" r="56" fill="none" stroke="#22223b22" stroke-width="14"/><circle id="i1r" cx="100" cy="70" r="56" fill="none" stroke="#ff6b4a" stroke-width="14" stroke-linecap="round" transform="rotate(-90 100 70)"/><circle cx="100" cy="70" r="10" fill="#22223b"/></svg><div class="lab">Set your goals</div></div><div class="st" id="s2" style="left:1290px"><div class="num">3</div>
<svg class="ic" viewBox="0 0 200 140"><rect x="40" y="20" width="120" height="100" rx="14" fill="#fff" stroke="#22223b" stroke-width="6"/><rect id="i2a" x="60" y="44" width="80" height="10" rx="5" fill="#ff6b4a"/><rect id="i2b" x="60" y="66" width="60" height="10" rx="5" fill="#22223b"/><rect id="i2c" x="60" y="88" width="70" height="10" rx="5" fill="#22223b"/></svg><div class="lab">Get a weekly plan</div></div>
<div class="con" id="k0" style="left:530px"></div><div class="con" id="k1" style="left:1090px"></div>
<div class="br" id="br">Ledgerly</div></div>
<script>
var W=1920,H=1080,D=12;
var E={
o3:function(t){return 1-Math.pow(1-t,3)},
o4:function(t){return 1-Math.pow(1-t,4)},
oe:function(t){return t>=1?1:1-Math.pow(2,-10*t)},
io3:function(t){return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2},
io5:function(t){return t<.5?16*Math.pow(t,5):1-Math.pow(-2*t+2,5)/2},
ob:function(t){var c=1.2,d=c+1;return 1+d*Math.pow(t-1,3)+c*Math.pow(t-1,2)},
sp:function(t){return t>=1?1:1-Math.exp(-6*t)*Math.cos(9*t)}
};
function P(t,a,b){return Math.max(0,Math.min(1,(t-a)/(b-a)))}
function L(a,b,p){return a+(b-a)*p}
function $(s){return document.querySelector(s)}
function $$(s){return [].slice.call(document.querySelectorAll(s))}
function S(el,x,y,s,o,r){el.style.transform='translate('+(x||0)+'px,'+(y||0)+'px) scale('+(s==null?1:s)+')'+(r?' rotate('+r+'deg)':'');if(o!=null)el.style.opacity=o}
function rnd(i){var x=Math.sin(i*127.1+311.7)*43758.5453;return x-Math.floor(x)}
function fit(){var k=Math.min(innerWidth/W,innerHeight/H);$('#stage').style.transform='translate(-50%,-50%) scale('+k+')'}
addEventListener('resize',fit);fit();
function render(t){
var tt=E.oe(P(t,0,.9));$('#tt').style.transform='translateY('+(100*(1-tt))+'%)';
$('#ul').style.width=(300*E.o3(P(t,.6,1.5)))+'px';
var starts=[1.5,4.5,7.5],fin=E.io3(P(t,10.5,11.2));
starts.forEach(function(a,i){
var el=$('#s'+i);var q=E.o3(P(t,a+.3,a+.9));
var dim=(t>=starts[i+1]&&i<2)||(i===0&&t>=7.5)?.6:1; if(t>=10.5)dim=L(dim,1,fin);
el.style.opacity=(t>=a?1:0)*dim;
el.style.transform='scale('+L(1,.9,fin)+') translateY('+(-40*fin)+'px)';
el.querySelector('.num').style.transform='scale('+(t>=a?E.ob(P(t,a,a+.4)):0)+')';
el.querySelector('.lab').style.transform='translateY('+(30*(1-q))+'px)';el.querySelector('.lab').style.opacity=q;
});
var c0=P(t,2,3.2);$('#i0l').setAttribute('x2',76+48*c0);$('#i0b').setAttribute('r',26*E.ob(P(t,2.6,3.2)));
var r=$('#i1r'),C=2*Math.PI*56;r.setAttribute('stroke-dasharray',C);r.setAttribute('stroke-dashoffset',C*(1-.75*E.io3(P(t,5,6.5))));
['a','b','c'].forEach(function(k,j){var q=E.o3(P(t,8+j*.25,8.5+j*.25));var e=$('#i2'+k);e.setAttribute('opacity',q);e.setAttribute('transform','translate('+(-20*(1-q))+' 0)')});
[[0,4.5],[1,7.5]].forEach(function(k){var p=E.io3(P(t,k[1]-.3,k[1]+.4));$('#k'+k[0]).style.width=(200*p)+'px';$('#k'+k[0]).style.opacity=1-fin});
$('#br').style.opacity=P(t,11,11.5);
}
var live=true;
window.__addmotion={width:W,height:H,fps:30,duration:D,seek:function(t){live=false;render(Math.min(t,D))}};
var t0=performance.now();
(function f(n){if(!live)return;var c=((n-t0)/1000)%(D+0.6);render(Math.min(c,D));requestAnimationFrame(f)})(t0);
</script></body></html>