/* Alumet — animation keyframes + rules, extracted from app.css for clarity.
 * Loaded alongside app.css; visual output is unchanged. */

@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}
@keyframes scale-down{0%{transform:scale(.9)}to{transform:scale(1)}}
@keyframes scale-up{0%{transform:scale(1.1)}to{transform:scale(1)}}
@keyframes slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes slide-bottom-medium{0%{transform:translateY(50px)}to{transform:translateY(0)}}
@keyframes slide-bottom-small{0%{transform:translateY(10px)}to{transform:translateY(0)}}
@keyframes slide-left{0%{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes slide-left-medium{0%{transform:translateX(-50px)}to{transform:translateX(0)}}
@keyframes slide-left-small{0%{transform:translateX(-10px)}to{transform:translateX(0)}}
@keyframes slide-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes slide-right-medium{0%{transform:translateX(50px)}to{transform:translateX(0)}}
@keyframes slide-right-small{0%{transform:translateX(10px)}to{transform:translateX(0)}}
@keyframes slide-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}
@keyframes slide-top-medium{0%{transform:translateY(-50px)}to{transform:translateY(0)}}
@keyframes fade{0%{opacity:0}to{opacity:1}}
@keyframes slide-top-small{0%{transform:translateY(-10px)}to{transform:translateY(0)}}
@keyframes spin{to{transform:rotate(1turn)}}
@keyframes text-gradient{0%{background-position:100% 0}50%{background-position:0 0}to{background-position:-100% 0}}
@keyframes blowUpContent{0%{opacity:1;transform:scale(1)}99.9%{opacity:0;transform:scale(2)}to{transform:scale(0)}}
@keyframes blowUpContentTwo{0%{opacity:0;transform:scale(2)}to{opacity:1;transform:scale(1)}}
@keyframes blowUpModal{0%{transform:scale(0)}to{transform:scale(1)}}
@keyframes blowUpModalTwo{0%{opacity:1;transform:scale(1)}50%{opacity:0;transform:scale(.5)}to{opacity:0;transform:scale(0)}}
@keyframes beat{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}

.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}
.animate-beat{animation:beat .3s ease forwards}
.animate-fade{animation:fade .5s forwards}
.animate-scale-down{animation:fade .5s forwards,scale-down .5s ease forwards}
.animate-scale-up{animation:fade .5s forwards,scale-up .5s ease forwards}
.animate-slide-bottom{animation:fade .5s forwards,slide-bottom .5s ease forwards}
.animate-slide-bottom-medium{animation:fade .5s forwards,slide-bottom-medium .5s ease forwards}
.animate-slide-bottom-small{animation:fade .5s forwards,slide-bottom-small .5s ease forwards}
.animate-slide-left{animation:fade .5s forwards,slide-left .5s ease forwards}
.animate-slide-left-medium{animation:fade .5s forwards,slide-left-medium .5s ease forwards}
.animate-slide-left-small{animation:fade .5s forwards,slide-left-small .5s ease forwards}
.animate-slide-right{animation:fade .5s forwards,slide-right .5s ease forwards}
.animate-slide-right-medium{animation:fade .5s forwards,slide-right-medium .5s ease forwards}
.animate-slide-right-small{animation:fade .5s forwards,slide-right-small .5s ease forwards}
.animate-slide-top{animation:fade .5s forwards,slide-top .5s ease forwards}
.animate-slide-top-medium{animation:fade .5s forwards,slide-top-medium .5s ease forwards}
.animate-slide-top-small{animation:fade .5s forwards,slide-top-small .5s ease forwards}
.animate-spin{animation:spin 1s linear infinite}
.animate-text-gradient{animation:text-gradient 8s linear infinite}
.group-hover\:animate-beat{animation:beat .3s ease forwards}