@keyframes fin{from{opacity:0}to{opacity:1}}
@keyframes fout{from{opacity:1}to{opacity:0}}
@keyframes rip{from{opacity:.55;transform:scale(.3)}to{opacity:0;transform:scale(2.4)}}
@keyframes pls{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes wave{0%,100%{transform:rotate(0)}50%{transform:rotate(-24deg)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(720deg)}}
.story svg text{font-family:'IBM Plex Sans',system-ui,sans-serif}
.story svg .disp{font-family:'Space Grotesk',system-ui,sans-serif}
.story svg .mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.rp{transform-box:fill-box;transform-origin:center}
.scene.on .pulse{animation:pls 1.4s ease-in-out infinite}
.scene.on .bob{animation:bob 2s ease-in-out infinite}
.wv{transform-box:fill-box;transform-origin:0% 100%}
.scene.on .wv{animation:wave 1.2s ease-in-out infinite}
.hand{transform-box:fill-box;transform-origin:50% 90%}
.scene.on .spin{animation:spin 2.4s 0.6s ease-in-out both}
.spin{transform-box:fill-box;transform-origin:50% 100%}
@media (prefers-reduced-motion:reduce){.scene *{animation:none!important}}
.scene.on .fi-15{animation:fin .5s 1.5s both}
.scene.on .fi-21{animation:fin .5s 2.1s both}
.rp-14{opacity:0}.scene.on .rp-14{animation:rip .7s 1.4s ease-out both}
.rp-31{opacity:0}.scene.on .rp-31{animation:rip .7s 3.1s ease-out both}
.cur-cp1{transform:translate(232px,226px)}.scene.on .cur-cp1{animation:mv-cp1 2.9s ease-in-out both}@keyframes mv-cp1{0.00%{transform:translate(470px,290px)}44.83%{transform:translate(110px,140px)}100.00%{transform:translate(232px,226px)}}
.rp-20{opacity:0}.scene.on .rp-20{animation:rip .7s 2s ease-out both}
.cur-cp2{transform:translate(450px,266px)}.scene.on .cur-cp2{animation:mv-cp2 1.8s ease-in-out both}@keyframes mv-cp2{0.00%{transform:translate(480px,320px)}100.00%{transform:translate(450px,266px)}}
.scene.on .fi-8{animation:fin .5s 0.8s both}
.scene.on .fi-11{animation:fin .5s 1.1s both}
.rp-22{opacity:0}.scene.on .rp-22{animation:rip .7s 2.2s ease-out both}
.cur-al1{transform:translate(493.2px,98px)}.scene.on .cur-al1{animation:mv-al1 2.1s ease-in-out both}@keyframes mv-al1{0.00%{transform:translate(520px,300px)}57.14%{transform:translate(493.2px,62px)}100.00%{transform:translate(493.2px,98px)}}
.cur-al2{transform:translate(430px,262px)}.scene.on .cur-al2{animation:mv-al2 1.8s ease-in-out both}@keyframes mv-al2{0.00%{transform:translate(470px,330px)}100.00%{transform:translate(430px,262px)}}
.cur-al3{transform:translate(346px,262px)}.scene.on .cur-al3{animation:mv-al3 1.8s ease-in-out both}@keyframes mv-al3{0.00%{transform:translate(500px,320px)}100.00%{transform:translate(346px,262px)}}
.rp-17{opacity:0}.scene.on .rp-17{animation:rip .7s 1.7s ease-out both}
.rp-38{opacity:0}.scene.on .rp-38{animation:rip .7s 3.8s ease-out both}
.scene.on .fi-22{animation:fin .5s 2.2s both}
.cur-al4{transform:translate(346px,278px)}.scene.on .cur-al4{animation:mv-al4 3.6s ease-in-out both}@keyframes mv-al4{0.00%{transform:translate(500px,330px)}41.67%{transform:translate(322px,142px)}100.00%{transform:translate(346px,278px)}}
.scene.on .fi-6{animation:fin .5s 0.6s both}
.scene.on .fi-12{animation:fin .5s 1.2s both}
.scene.on .fi-16{animation:fin .5s 1.6s both}
.cur-lk1{transform:translate(401.2px,150px)}.scene.on .cur-lk1{animation:mv-lk1 2.2s ease-in-out both}@keyframes mv-lk1{0.00%{transform:translate(520px,300px)}54.55%{transform:translate(391.2px,64px)}100.00%{transform:translate(401.2px,150px)}}
.rp-13{opacity:0}.scene.on .rp-13{animation:rip .7s 1.3s ease-out both}
.rp-30{opacity:0}.scene.on .rp-30{animation:rip .7s 3s ease-out both}
.cur-lk2{transform:translate(500px,122px)}.scene.on .cur-lk2{animation:mv-lk2 2.8s ease-in-out both}@keyframes mv-lk2{0.00%{transform:translate(340px,300px)}42.86%{transform:translate(530px,68px)}100.00%{transform:translate(500px,122px)}}
.rp-12{opacity:0}.scene.on .rp-12{animation:rip .7s 1.2s ease-out both}
.cur-lk3{transform:translate(246px,203px)}.scene.on .cur-lk3{animation:mv-lk3 2.8s ease-in-out both}@keyframes mv-lk3{0.00%{transform:translate(420px,330px)}39.29%{transform:translate(156px,156px)}100.00%{transform:translate(246px,203px)}}
.rp-28{opacity:0}.scene.on .rp-28{animation:rip .7s 2.8s ease-out both}
.cur-lk4{transform:translate(484px,308px)}.scene.on .cur-lk4{animation:mv-lk4 2.6s ease-in-out both}@keyframes mv-lk4{0.00%{transform:translate(300px,340px)}53.85%{transform:translate(300px,252px)}100.00%{transform:translate(484px,308px)}}
.rp-19{opacity:0}.scene.on .rp-19{animation:rip .7s 1.9s ease-out both}
.cur-lk5{transform:translate(492px,196px)}.scene.on .cur-lk5{animation:mv-lk5 1.7s ease-in-out both}@keyframes mv-lk5{0.00%{transform:translate(360px,330px)}100.00%{transform:translate(492px,196px)}}
.scene.on .fi-5{animation:fin .5s 0.5s both}
.rp-18{opacity:0}.scene.on .rp-18{animation:rip .7s 1.8s ease-out both}
.scene.on .fi-23{animation:fin .5s 2.3s both}
.cur-lk6{transform:translate(480px,232px)}.scene.on .cur-lk6{animation:mv-lk6 1.6s ease-in-out both}@keyframes mv-lk6{0.00%{transform:translate(500px,330px)}100.00%{transform:translate(480px,232px)}}
.cur-pp1{transform:translate(290px,292px)}.scene.on .cur-pp1{animation:mv-pp1 2s ease-in-out both}@keyframes mv-pp1{0.00%{transform:translate(520px,330px)}100.00%{transform:translate(290px,292px)}}
.cur-pp2{transform:translate(360px,206px)}.scene.on .cur-pp2{animation:mv-pp2 1.6s ease-in-out both}@keyframes mv-pp2{0.00%{transform:translate(470px,320px)}100.00%{transform:translate(360px,206px)}}
.fo-8{opacity:0}.scene.on .fo-8{animation:fout .4s 0.8s both}
.fo-19{opacity:0}.scene.on .fo-19{animation:fout .4s 1.9s both}
.scene.on .fi-19{animation:fin .5s 1.9s both}
.rp-16{opacity:0}.scene.on .rp-16{animation:rip .7s 1.6s ease-out both}
.cur-ts1{transform:translate(330px,200px)}.scene.on .cur-ts1{animation:mv-ts1 1.5s ease-in-out both}@keyframes mv-ts1{0.00%{transform:translate(520px,320px)}100.00%{transform:translate(330px,200px)}}
.scene.on .fi-24{animation:fin .5s 2.4s both}
.scene.on .fi-32{animation:fin .5s 3.2s both}
.fo-14{opacity:0}.scene.on .fo-14{animation:fout .4s 1.4s both}
.scene.on .fi-14{animation:fin .5s 1.4s both}
.scene.on .fi-20{animation:fin .5s 2s both}
.cur-ts3{transform:translate(316px,156px)}.scene.on .cur-ts3{animation:mv-ts3 1.1s ease-in-out both}@keyframes mv-ts3{0.00%{transform:translate(520px,330px)}100.00%{transform:translate(316px,156px)}}
.scene.on .fi-10{animation:fin .5s 1s both}
.scene.on .fi-4{animation:fin .5s 0.4s both}
