@charset "UTF-8";
/* =========================================
 * FX CSS - CSS FX ANIMATIONS
 *
 * @package    FX CSS MINI
 * @version    v2.0.0
 * @copyright  2026 JosebaMirena.com
 * @license    MIT
 *             ../LICENSE
 * @author     florin
 * 
 * DOCUMENTATION:
 * ../README
 */
@charset "UTF-8";.fx-fade-in{animation:fx-ani-fadeIn 1s both}@keyframes fx-ani-fadeIn{0%{opacity:0}100%{opacity:1}}.fx-fade-in-up{animation:fx-ani-fadeInUp 1s both}@keyframes fx-ani-fadeInUp{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}.fx-fade-in-down{animation:fx-ani-fadeInDown 1s both}@keyframes fx-ani-fadeInDown{0%{opacity:0;transform:translateY(-30px)}100%{opacity:1;transform:translateY(0)}}.fx-fade-in-left{animation:fx-ani-fadeInLeft 1s both}@keyframes fx-ani-fadeInLeft{0%{opacity:0;transform:translateX(-30px)}100%{opacity:1;transform:translateX(0)}}.fx-fade-in-right{animation:fx-ani-fadeInRight 1s both}@keyframes fx-ani-fadeInRight{0%{opacity:0;transform:translateX(30px)}100%{opacity:1;transform:translateX(0)}}.fx-zoom-in{animation:fx-ani-zoomIn 1s both}@keyframes fx-ani-zoomIn{0%{opacity:0;transform:scale(.3)}100%{opacity:1;transform:scale(1)}}.fx-zoom-in-up{animation:fx-ani-zoomInUp 1s both}@keyframes fx-ani-zoomInUp{0%{opacity:0;transform:scale(.3) translateY(30px)}100%{opacity:1;transform:scale(1) translateY(0)}}.fx-zoom-in-down{animation:fx-ani-zoomInDown 1s both}@keyframes fx-ani-zoomInDown{0%{opacity:0;transform:scale(.3) translateY(-30px)}100%{opacity:1;transform:scale(1) translateY(0)}}.fx-zoom-in-left{animation:fx-ani-zoomInLeft 1s both}@keyframes fx-ani-zoomInLeft{0%{opacity:0;transform:scale(.3) translateX(-30px)}100%{opacity:1;transform:scale(1) translateX(0)}}.fx-zoom-in-right{animation:fx-ani-zoomInRight 1s both}@keyframes fx-ani-zoomInRight{0%{opacity:0;transform:scale(.3) translateX(30px)}100%{opacity:1;transform:scale(1) translateX(0)}}.fx-bounce-in{animation:fx-ani-bounceIn 1s both}@keyframes fx-ani-bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.fx-bounce-in-up{animation:fx-ani-bounceInUp 1s both}@keyframes fx-ani-bounceInUp{0%{opacity:0;transform:translateY(100px)}60%{opacity:1;transform:translateY(-20px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}.fx-bounce-in-down{animation:fx-ani-bounceInDown 1s both}@keyframes fx-ani-bounceInDown{0%{opacity:0;transform:translateY(-100px)}60%{opacity:1;transform:translateY(20px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}.fx-bounce-in-left{animation:fx-ani-bounceInLeft 1s both}@keyframes fx-ani-bounceInLeft{0%{opacity:0;transform:translateX(-100px)}60%{opacity:1;transform:translateX(20px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}.fx-bounce-in-right{animation:fx-ani-bounceInRight 1s both}@keyframes fx-ani-bounceInRight{0%{opacity:0;transform:translateX(100px)}60%{opacity:1;transform:translateX(-20px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}.fx-slide-in-up{animation:fx-ani-slideInUp 1s both}@keyframes fx-ani-slideInUp{0%{transform:translateY(100px);opacity:0}100%{transform:translateY(0);opacity:1}}.fx-slide-in-down{animation:fx-ani-slideInDown 1s both}@keyframes fx-ani-slideInDown{0%{transform:translateY(-100px);opacity:0}100%{transform:translateY(0);opacity:1}}.fx-slide-in-left{animation:fx-ani-slideInLeft 1s both}@keyframes fx-ani-slideInLeft{0%{transform:translateX(-100px);opacity:0}100%{transform:translateX(0);opacity:1}}.fx-slide-in-right{animation:fx-ani-slideInRight 1s both}@keyframes fx-ani-slideInRight{0%{transform:translateX(100px);opacity:0}100%{transform:translateX(0);opacity:1}}.fx-rotate-in{animation:fx-ani-rotateIn 1s both;transform-origin:center}@keyframes fx-ani-rotateIn{0%{opacity:0;transform:rotate(-200deg)}100%{opacity:1;transform:rotate(0)}}.fx-rotate-in-down-left{animation:fx-ani-rotateInDownLeft 1s both}@keyframes fx-ani-rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg);transform-origin:left bottom}100%{opacity:1;transform:rotate(0);transform-origin:left bottom}}.fx-rotate-in-down-right{animation:fx-ani-rotateInDownRight 1s both}@keyframes fx-ani-rotateInDownRight{0%{opacity:0;transform:rotate(45deg);transform-origin:right bottom}100%{opacity:1;transform:rotate(0);transform-origin:right bottom}}.fx-rotate-in-up-left{animation:fx-ani-rotateInUpLeft 1s both}@keyframes fx-ani-rotateInUpLeft{0%{opacity:0;transform:rotate(45deg);transform-origin:left bottom}100%{opacity:1;transform:rotate(0);transform-origin:left bottom}}.fx-rotate-in-up-right{animation:fx-ani-rotateInUpRight 1s both}@keyframes fx-ani-rotateInUpRight{0%{opacity:0;transform:rotate(-90deg);transform-origin:right bottom}100%{opacity:1;transform:rotate(0);transform-origin:right bottom}}.fx-flip-in-x{animation:fx-ani-flipInX 1s both;backface-visibility:visible}@keyframes fx-ani-flipInX{0%{opacity:0;transform:perspective(400px) rotateX(90deg)}100%{opacity:1;transform:perspective(400px) rotateX(0)}}.fx-flip-in-y{animation:fx-ani-flipInY 1s both;backface-visibility:visible}@keyframes fx-ani-flipInY{0%{opacity:0;transform:perspective(400px) rotateY(90deg)}100%{opacity:1;transform:perspective(400px) rotateY(0)}}.fx-light-speed-in{animation:fx-ani-lightSpeedIn 1s both}@keyframes fx-ani-lightSpeedIn{0%{opacity:0;transform:translateX(100%) skewX(-30deg)}60%{opacity:1;transform:translateX(-20%) skewX(30deg)}80%{transform:translateX(5%) skewX(-15deg)}100%{transform:translateX(0) skewX(0)}}.fx-roll-in{animation:fx-ani-rollIn 1s both}@keyframes fx-ani-rollIn{0%{opacity:0;transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;transform:translateX(0) rotate(0)}}.fx-pulse{animation:fx-ani-pulse 1s both}@keyframes fx-ani-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}.fx-flash{animation:fx-ani-flash 1s both}@keyframes fx-ani-flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}.fx-shake{animation:fx-ani-shake 1s both}@keyframes fx-ani-shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.fx-swing{animation:fx-ani-swing 1s both;transform-origin:top center}@keyframes fx-ani-swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}100%{transform:rotate(0)}}.fx-tada{animation:fx-ani-tada 1s both}@keyframes fx-ani-tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}.fx-hello{animation:fx-ani-hello 1s both}@keyframes fx-ani-hello{0%,100%{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}}.fx-rubber-band{animation:fx-ani-rubberBand 1s both}@keyframes fx-ani-rubberBand{0%{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}100%{transform:scale(1)}}.fx-spin-in{animation:fx-ani-spinIn 1s both}@keyframes fx-ani-spinIn{0%{opacity:0;transform:rotate(-360deg) scale(.3)}50%{opacity:.8;transform:rotate(-180deg) scale(1.1)}100%{opacity:1;transform:rotate(0) scale(1)}}.fx-spiral-in{animation:fx-ani-spiralIn 1.2s both}@keyframes fx-ani-spiralIn{0%{opacity:0;transform:rotate(720deg) scale(.1) translateX(-200px)}60%{opacity:.8;transform:rotate(360deg) scale(1.1) translateX(20px)}100%{opacity:1;transform:rotate(0) scale(1) translateX(0)}}.fx-spin-3d{animation:fx-ani-spin3D 1s both}@keyframes fx-ani-spin3D{0%{opacity:0;transform:perspective(400px) rotateY(90deg) scale(.5)}50%{opacity:.8;transform:perspective(400px) rotateY(-10deg) scale(1.1)}100%{opacity:1;transform:perspective(400px) rotateY(0) scale(1)}}.fx-bounce-spin{animation:fx-ani-bounceSpin 1.2s both}@keyframes fx-ani-bounceSpin{0%{opacity:0;transform:rotate(0) scale(.3)}40%{opacity:1;transform:rotate(360deg) scale(1.4)}60%{transform:rotate(360deg) scale(.9)}80%{transform:rotate(360deg) scale(1.05)}100%{transform:rotate(360deg) scale(1)}}.fx-drop-spin{animation:fx-ani-dropSpin 1s both}@keyframes fx-ani-dropSpin{0%{opacity:0;transform:translateY(-200px) rotate(180deg)}70%{opacity:.9;transform:translateY(20px) rotate(-10deg)}85%{transform:translateY(-5px) rotate(5deg)}100%{opacity:1;transform:translateY(0) rotate(0)}}.fx-blur-in{animation:fx-ani-blurIn 1s both}@keyframes fx-ani-blurIn{0%{opacity:0;filter:blur(20px);transform:scale(1.2)}100%{opacity:1;filter:blur(0);transform:scale(1)}}.fx-glow-in{animation:fx-ani-glowIn 1.2s both}@keyframes fx-ani-glowIn{0%{opacity:0;filter:brightness(0) blur(10px)}50%{opacity:.8;filter:brightness(1.5) blur(5px)}100%{opacity:1;filter:brightness(1) blur(0)}}.fx-float-in{animation:fx-ani-floatIn 1s both}@keyframes fx-ani-floatIn{0%{opacity:0;transform:translateY(50px) scale(.8)}60%{opacity:1;transform:translateY(-10px) scale(1.02)}80%{transform:translateY(5px) scale(.99)}100%{transform:translateY(0) scale(1)}}.fx-bounce-entrance{animation:fx-ani-bounceEntrance 1s both}@keyframes fx-ani-bounceEntrance{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.fx-perspective-in{animation:fx-ani-perspectiveIn 1.2s both}@keyframes fx-ani-perspectiveIn{0%{opacity:0;transform:perspective(500px) translateZ(-200px) rotateX(45deg)}50%{opacity:.8;transform:perspective(500px) translateZ(50px) rotateX(-10deg)}100%{opacity:1;transform:perspective(500px) translateZ(0) rotateX(0)}}.fx-shine{position:relative;overflow:hidden}.fx-shine::before{content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgb(255 255 255 / .3),transparent);transform:skewX(-25deg);transition:left 0.5s ease}.fx-shine:hover::before,.fx-shine:focus::before{left:125%}.fx-btn-slide{position:relative;overflow:hidden;z-index:1}.fx-btn-slide::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--bs-primary);transition:left 0.3s ease;z-index:-1}.fx-btn-slide:hover::before{left:0}.fx-scale{transform:scale(1);transition:transform 0.3s ease}.fx-scale:hover,.fx-scale:focus{transform:scale(1.2)}.fx-gray img{filter:grayscale(100%);opacity:.5;transition:all 0.6s ease}.fx-gray:hover img{filter:grayscale(0%);opacity:1}.fx-image-zoom{overflow:hidden}.fx-image-zoom img{transition:transform 0.6s cubic-bezier(.4,0,.2,1)}.fx-image-zoom:hover img{transform:scale(1.1)}.fx-scroll-progress{position:fixed;top:0;left:0;width:0%;height:4px;background:linear-gradient(90deg,var(--bs-primary),var(--bs-info));z-index:9999;transition:width 0.1s ease}[data-fx-blur]{opacity:0;filter:blur(10px);transition:all 0.8s ease}[data-fx-blur].fx-visible{opacity:1;filter:blur(0)}.fx-heartbeat{animation:fx-ani-heartbeat 1.5s ease-in-out infinite}@keyframes fx-ani-heartbeat{0%{transform:scale(1)}14%{transform:scale(1.1)}28%{transform:scale(1)}42%{transform:scale(1.1)}70%{transform:scale(1)}}.fx-hoverbeat:hover,.fx-hoverbeat:focus{animation:fx-ani-heartbeat 1.5s ease-in-out infinite}.fx-text-flip-horizontal{animation:fx-ani-flip-horizontal 0.8s ease forwards;transform-style:preserve-3d;display:inline-block}@keyframes fx-ani-flip-horizontal{0%{transform:perspective(400px) rotateY(90deg);opacity:0}40%{transform:perspective(400px) rotateY(-10deg)}70%{transform:perspective(400px) rotateY(10deg)}100%{transform:perspective(400px) rotateY(0);opacity:1}}.fx-text-flip-vertical{animation:fx-ani-flip-vertical 0.8s ease forwards;transform-style:preserve-3d;display:inline-block}@keyframes fx-ani-flip-vertical{0%{transform:perspective(400px) rotateX(90deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}100%{transform:perspective(400px) rotateX(0);opacity:1}}.fx-underline{position:relative;text-decoration:none}.fx-underline::after{content:'';position:absolute;width:0;height:4px;bottom:-4px;left:0;background-color:currentColor;transition:width 0.3s ease}.fx-underline:hover::after,.fx-underline.active::after,.fx-underline[aria-current="page"]::after,.ani-under:hover .fx-underline::after{width:100%}.fx-underline.fx-center::after{left:50%;transform:translateX(-50%)}.fx-underline.fx-light::after{background-color:#ebebeb}.fx-underline.fx-gray::after{background-color:#999}.fx-underline.fx-dark::after{background-color:#333}.fx-underline.fx-thick::after{height:3px;bottom:-3px}[dir="rtl"] .fx-underline::after{left:auto;right:0}.fx-underline.fx-right::after{left:auto;right:0}[dir="rtl"] .fx-underline.fx-right::after{right:auto;left:0}.fx-dl-100{animation-delay:0.1s}.fx-dl-200{animation-delay:0.2s}.fx-dl-300{animation-delay:0.3s}.fx-dl-400{animation-delay:0.4s}.fx-dl-500{animation-delay:0.5s}.fx-dl-600{animation-delay:0.6s}.fx-dl-700{animation-delay:0.7s}.fx-dl-800{animation-delay:0.8s}.fx-dl-900{animation-delay:0.9s}.fx-dl-1000{animation-delay:1s}.fx-du-fast{animation-duration:0.3s}.fx-du-normal{animation-duration:0.6s}.fx-du-slow{animation-duration:1s}.fx-du-very-slow{animation-duration:2s}.fx-it-infinite{animation-iteration-count:infinite}.fx-it-once{animation-iteration-count:1}.fx-it-twice{animation-iteration-count:2}.fx-it-thrice{animation-iteration-count:3}.fx-fn-ease{animation-timing-function:ease}.fx-fn-ease-in{animation-timing-function:ease-in}.fx-fn-ease-out{animation-timing-function:ease-out}.fx-fn-ease-in-out{animation-timing-function:ease-in-out}.fx-fn-linear{animation-timing-function:linear}.fx-fn-bounce{animation-timing-function:cubic-bezier(.68,-.55,.265,1.55)}.fx-fn-elastic{animation-timing-function:cubic-bezier(.68,-.55,.265,2.55)}