.mockup-stage{position:relative}@keyframes assemble{0%{opacity:0;transform:translateY(16px) scale(.97)}5%{opacity:1;transform:translateY(0) scale(1)}88%{opacity:1;transform:translateY(0) scale(1)}96%{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:0;transform:translateY(16px) scale(.97)}}.mockup-shell{animation:assemble 10s ease-in-out infinite;animation-delay:0s;animation-fill-mode:both}.mockup-el{animation:assemble 10s ease-in-out infinite;animation-fill-mode:both}.mockup-el.d1{animation-delay:.9s}.mockup-el.d2{animation-delay:1.5s}.mockup-el.d3{animation-delay:2.1s}.mockup-el.d4{animation-delay:2.7s}.mockup-el.d5{animation-delay:3.3s}.mockup-el.d6{animation-delay:3.9s}@keyframes popBadge{0%,4.4%{opacity:0;transform:scale(.6)}5.2%{opacity:1;transform:scale(1.15)}5.8%{transform:scale(1)}88%{opacity:1;transform:scale(1)}96%,to{opacity:0;transform:scale(.8)}}.mockup-badge{animation:popBadge 10s ease-in-out infinite;animation-fill-mode:both}@keyframes cursorBuild{0%{opacity:0}4%{opacity:1}30%{transform:translate(0)}34%{transform:translate(210px,40px)}52%{transform:translate(210px,40px)}56%{transform:translate(40px,120px)}74%{transform:translate(40px,120px)}78%,92%{opacity:1;transform:translate(0)}96%,to{opacity:0}}.mockup-cursor{animation:cursorBuild 10s ease-in-out infinite;animation-fill-mode:both}@keyframes shineSweep{0%,30%{transform:translateX(-130%) skewX(-18deg)}48%,to{transform:translateX(230%) skewX(-18deg)}}.mockup-shine{animation:shineSweep 10s ease-in-out infinite;animation-fill-mode:both}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.mockup-float{animation:floatY 6s ease-in-out infinite}.mockup-countdown{font-variant-numeric:tabular-nums;letter-spacing:.04em}@media (prefers-reduced-motion:reduce){.mockup-badge,.mockup-cursor,.mockup-el,.mockup-float,.mockup-shell,.mockup-shine{animation:none!important;opacity:1!important}}