@charset "UTF-8";
/* =========================================
 * FX CSS - CSS FX ANIMATIONS
 *
 * @package    FX CSS FULL
 * @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-btn-ripple{position:relative;overflow:hidden}.fx-btn-ripple::after{content:'';position:absolute;top:50%;left:50%;width:5px;height:5px;background:rgb(255 255 255 / .5);opacity:0;border-radius:100%;transform:scale(1,1) translate(-50%,-50%);transform-origin:50% 50%}.fx-btn-ripple:focus:not(:active)::after{animation:fx-ani-ripple 1s ease-out}@keyframes fx-ani-ripple{0%{transform:scale(0,0) translate(-50%,-50%);opacity:1}20%{transform:scale(25,25) translate(-50%,-50%);opacity:1}100%{transform:scale(40,40) translate(-50%,-50%);opacity:0}}.fx-scale{transform:scale(1);transition:transform 0.3s ease}.fx-scale:hover,.fx-scale:focus{transform:scale(1.2)}.fx-rotate{transition:transform 0.5s ease}.fx-rotate:hover{transform:rotate(360deg)}.fx-bounce{transition:transform 0.3s cubic-bezier(.68,-.55,.265,1.55)}.fx-bounce:hover{transform:translateY(-10px)}.fx-depth{transform:perspective(500px) translateZ(0);transition:transform 0.3s ease}.fx-depth:hover,.fx-depth:focus{transform:perspective(500px) translateZ(20px)}.fx-multi-shadow{box-shadow:0 1px 2px rgb(0 0 0 / .05),0 2px 4px rgb(0 0 0 / .05),0 4px 8px rgb(0 0 0 / .05),0 8px 16px rgb(0 0 0 / .05);transition:box-shadow 0.3s ease}.fx-multi-shadow:hover,.fx-multi-shadow:focus{box-shadow:0 2px 4px rgb(0 0 0 / .1),0 4px 8px rgb(0 0 0 / .1),0 8px 16px rgb(0 0 0 / .1),0 16px 32px rgb(0 0 0 / .1)}.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-polaroid{background:#fff;padding:15px 15px 40px 15px;box-shadow:0 4px 15px rgb(0 0 0 / .2);transform:rotate(0deg);transition:all 0.3s ease}[data-bs-theme="dark"] .fx-polaroid{background:#2d2d2d;box-shadow:0 4px 15px rgb(0 0 0 / .5)}.fx-polaroid:hover{transform:rotate(2deg) scale(1.05);box-shadow:0 10px 25px rgb(0 0 0 / .3)}.fx-image-reveal{position:relative;overflow:hidden}.fx-image-reveal::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgb(255 255 255 / .3),transparent);transition:left 0.6s ease}.fx-image-reveal:hover::after{left:100%}.fx-bg-fade{width:100%;display:inline-block}[data-bs-theme="dark"] .fx-bg-fade{background:linear-gradient(142deg,rgb(0 0 0 / .1) 0%,rgb(0 0 0 / .3) 50%,rgb(0 0 0 / .6) 100%)}[data-bs-theme="light"] .fx-bg-fade{background:linear-gradient(142deg,rgb(255 255 255 / .1) 0%,rgb(255 255 255 / .3) 50%,rgb(255 255 255 / .6) 100%)}.fx-parallax{background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover;transition:background-position 0.3s ease}.fx-multi-overlay{position:relative;isolation:isolate}.fx-multi-overlay::before{content:'';position:absolute;inset:0;background:linear-gradient(45deg,rgb(0 0 0 / .7) 0%,rgb(0 0 0 / .3) 50%,transparent 100%);z-index:1;pointer-events:none}.fx-noise-bg{position:relative}.fx-noise-bg::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.1'/%3E%3C/svg%3E");opacity:.15;pointer-events:none;z-index:1}.fx-neu-card{background:#e0e0e0;border-radius:20px;box-shadow:20px 20px 60px #bebebe,-20px -20px 60px #fff;transition:box-shadow 0.3s ease}[data-bs-theme="dark"] .fx-neu-card{background:#2d2d2d;box-shadow:20px 20px 60px #1a1a1a,-20px -20px 60px #404040}.fx-neu-card:hover{box-shadow:25px 25px 75px #bebebe,-25px -25px 75px #fff}[data-bs-theme="dark"] .fx-neu-card:hover{box-shadow:25px 25px 75px #1a1a1a,-25px -25px 75px #404040}.fx-gradient-border{position:relative;border:none!important;background:var(--bs-body-bg);z-index:0;border-radius:var(--bs-border-radius)}.fx-gradient-border::before{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,#ff0000,#ff7300,#fffb00,#48ff00,#00ffd5,#002bff,#7a00ff,#ff00c8,#ff0000);background-size:400%;border-radius:calc(var(--bs-border-radius) + 2px);z-index:-1;animation:fx-ani-gradient-shift 20s linear infinite;opacity:0;transition:opacity 0.3s ease}.fx-gradient-border:hover::before{opacity:1}@keyframes fx-ani-gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.fx-glass{background:rgb(255 255 255 / .2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgb(255 255 255 / .3);box-shadow:0 8px 32px 0 rgb(31 38 135 / .2)}[data-bs-theme="dark"] .fx-glass{background:rgb(0 0 0 / .3);border:1px solid rgb(255 255 255 / .1);box-shadow:0 8px 32px 0 rgb(0 0 0 / .4)}.fx-typewriter-border{width:fit-content;position:relative;padding-bottom:5px}.fx-typewriter-border::after{content:'';position:absolute;bottom:0;left:0;width:0;height:3px;background:var(--bs-primary);animation:fx-ani-typewriter 3s steps(30) infinite}@keyframes fx-ani-typewriter{0%,100%{width:0}50%{width:100%}}.fx-divider-icon{display:flex;align-items:center;text-align:center;color:var(--bs-secondary)}.fx-divider-icon::before,.fx-divider-icon::after{content:'';flex:1;border-bottom:2px solid var(--bs-border-color)}.fx-divider-icon::before{margin-right:1rem}.fx-divider-icon::after{margin-left:1rem}.fx-divider-icon i{transition:transform 0.3s ease}.fx-divider-icon:hover i{transform:rotate(180deg)}.fx-custom-cursor{cursor:none}.fx-cursor-dot,.fx-cursor-outline{pointer-events:none;position:fixed;top:0;left:0;border-radius:50%;opacity:0;transform:translate(-50%,-50%);transition:opacity 0.3s ease;z-index:99999}.fx-cursor-dot{width:8px;height:8px;background:var(--bs-primary)}.fx-cursor-outline{width:40px;height:40px;border:2px solid var(--bs-primary);transition:all 0.1s ease}.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-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)}[data-fx-scroll-reveal]{opacity:0;transition:all 1s cubic-bezier(.4,0,.2,1)}[data-fx-scroll-reveal="fade-up"]{transform:translateY(50px)}[data-fx-scroll-reveal="fade-down"]{transform:translateY(-50px)}[data-fx-scroll-reveal="fade-left"]{transform:translateX(-50px)}[data-fx-scroll-reveal="fade-right"]{transform:translateX(50px)}[data-fx-scroll-reveal="zoom-in"]{transform:scale(.8)}[data-fx-scroll-reveal="zoom-out"]{transform:scale(1.2)}[data-fx-scroll-reveal="rotate-in"]{transform:rotate(-10deg) scale(.9)}[data-fx-scroll-reveal].fx-revealed{opacity:1;transform:translate(0) scale(1) rotate(0)}[data-fx-cascade-reveal]{opacity:0;transition:all 0.6s ease;transition-delay:calc(var(--item-index) * 0.1s)}[data-fx-cascade-reveal="up"]{transform:translateY(30px)}[data-fx-cascade-reveal="down"]{transform:translateY(-30px)}[data-fx-cascade-reveal="left"]{transform:translateX(-30px)}[data-fx-cascade-reveal="right"]{transform:translateX(30px)}[data-fx-cascade-reveal].fx-revealed{opacity:1;transform:translate(0)}.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-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-text-perspective{transform:perspective(400px) rotateX(0deg) rotateY(0deg);transform-style:preserve-3d;transition:transform 0.5s cubic-bezier(.23,1,.32,1);display:inline-block}.fx-text-perspective:hover,.fx-text-perspective:focus{transform:perspective(400px) rotateX(10deg) rotateY(10deg)}.fx-text-holo{position:relative;color:#fff0;-webkit-text-stroke:1px var(--bs-primary);text-transform:uppercase;letter-spacing:3px;animation:fx-ani-holo-flicker 4s infinite}.fx-text-holo::before,.fx-text-holo::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.fx-text-holo::before{color:var(--bs-info);-webkit-text-stroke:0;z-index:-1;animation:fx-ani-holo-shift 3s infinite}.fx-text-holo::after{color:var(--bs-warning);-webkit-text-stroke:0;z-index:-2;animation:fx-ani-holo-shift 2s infinite reverse}@keyframes fx-ani-holo-flicker{0%,100%{opacity:1;text-shadow:0 0 10px rgb(0 255 255 / .5)}33%{opacity:.8;text-shadow:0 0 20px rgb(255 0 255 / .5)}66%{opacity:.9;text-shadow:0 0 30px rgb(255 255 0 / .5)}}@keyframes fx-ani-holo-shift{0%{transform:translate(0,0) skew(0deg)}20%{transform:translate(-2px,1px) skew(5deg)}40%{transform:translate(2px,-1px) skew(-5deg)}60%{transform:translate(-1px,2px) skew(3deg)}80%{transform:translate(1px,-2px) skew(-3deg)}100%{transform:translate(0,0) skew(0deg)}}.fx-text-neon{color:#fff;text-shadow:0 0 7px #fff,0 0 10px #fff,0 0 21px #fff,0 0 42px var(--bs-primary),0 0 82px var(--bs-primary),0 0 92px var(--bs-primary),0 0 102px var(--bs-primary),0 0 151px var(--bs-primary);animation:fx-ani-neon-pulse 1.5s ease-in-out infinite alternate}[data-bs-theme="light"] .fx-text-neon{color:#333;text-shadow:0 0 7px rgb(0 0 0 / .3),0 0 10px rgb(0 0 0 / .2),0 0 21px var(--bs-primary)}@keyframes fx-ani-neon-pulse{0%{text-shadow:0 0 7px #fff,0 0 10px #fff,0 0 21px #fff,0 0 42px var(--bs-primary),0 0 82px var(--bs-primary),0 0 92px var(--bs-primary)}100%{text-shadow:0 0 7px #fff,0 0 10px #fff,0 0 21px #fff,0 0 42px var(--bs-primary),0 0 82px var(--bs-primary),0 0 92px var(--bs-primary),0 0 102px var(--bs-primary),0 0 151px var(--bs-primary)}}.fx-text-outline{color:transparent!important;-webkit-text-stroke:2px var(--bs-body-color);transition:all 0.3s ease}.fx-text-outline:hover,.fx-text-outline:focus{color:var(--bs-body-color)!important;-webkit-text-stroke-color:#fff0}.fx-typewriter{overflow:hidden;white-space:nowrap;border-right:3px solid var(--bs-primary);width:0;animation:fx-ani-typewriter-typing 3.5s steps(40,end) forwards,fx-ani-typewriter-blink 0.75s step-end infinite}@keyframes fx-ani-typewriter-typing{from{width:0}to{width:100%}}@keyframes fx-ani-typewriter-blink{from,to{border-color:#fff0}50%{border-color:var(--bs-primary)}}.fx-text-blur-reveal{animation:fx-ani-blur-reveal 1.5s cubic-bezier(.4,0,.2,1) forwards;transform-origin:left}@keyframes fx-ani-blur-reveal{0%{opacity:0;filter:blur(20px);transform:scale(1.2)}100%{opacity:1;filter:blur(0);transform:scale(1)}}.fx-text-cascade{display:flex;flex-wrap:wrap;gap:.1em}.fx-text-cascade span{display:inline-block;opacity:0;animation:fx-ani-cascade-reveal 0.5s ease forwards;animation-delay:calc(var(--char-index) * 0.05s)}@keyframes fx-ani-cascade-reveal{0%{opacity:0;transform:translateY(50px) rotate(10deg)}100%{opacity:1;transform:translateY(0) rotate(0)}}.fx-text-wave span{display:inline-block;animation:fx-ani-wave 2s ease-in-out infinite;animation-delay:calc(var(--char-index) * 0.1s)}@keyframes fx-ani-wave{0%,100%{transform:translateY(0)}25%{transform:translateY(-10px)}75%{transform:translateY(5px)}}.fx-text-cube{position:relative;transform-style:preserve-3d;animation:fx-ani-cube-spin 8s infinite linear;display:inline-block}.fx-text-cube span{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bs-primary),var(--bs-info));color:#fff;padding:20px;border-radius:10px;backface-visibility:hidden}.fx-text-cube span:nth-child(1){transform:rotateY(0deg) translateZ(50px)}.fx-text-cube span:nth-child(2){transform:rotateY(90deg) translateZ(50px)}.fx-text-cube span:nth-child(3){transform:rotateY(180deg) translateZ(50px)}.fx-text-cube span:nth-child(4){transform:rotateY(-90deg) translateZ(50px)}.fx-text-cube span:nth-child(5){transform:rotateX(90deg) translateZ(50px)}.fx-text-cube span:nth-child(6){transform:rotateX(-90deg) translateZ(50px)}@keyframes fx-ani-cube-spin{from{transform:rotateX(0) rotateY(0)}to{transform:rotateX(360deg) rotateY(360deg)}}.fx-text-pinwheel{animation:fx-ani-pinwheel 3s ease-in-out infinite;display:inline-block}@keyframes fx-ani-pinwheel{0%{transform:rotate(0) scale(1)}25%{transform:rotate(90deg) scale(1.1)}50%{transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(.9)}100%{transform:rotate(360deg) scale(1)}}.fx-text-slide-left{animation:fx-ani-slide-from-left 0.8s cubic-bezier(.25,.46,.45,.94) forwards;transform:translateX(-100%)}.fx-text-slide-right{animation:fx-ani-slide-from-right 0.8s cubic-bezier(.25,.46,.45,.94) forwards;transform:translateX(100%)}.fx-text-slide-up{animation:fx-ani-slide-from-up 0.8s cubic-bezier(.25,.46,.45,.94) forwards;transform:translateY(-100%)}.fx-text-slide-down{animation:fx-ani-slide-from-down 0.8s cubic-bezier(.25,.46,.45,.94) forwards;transform:translateY(100%)}@keyframes fx-ani-slide-from-left{to{transform:translateX(0)}}@keyframes fx-ani-slide-from-right{to{transform:translateX(0)}}@keyframes fx-ani-slide-from-up{to{transform:translateY(0)}}@keyframes fx-ani-slide-from-down{to{transform:translateY(0)}}.fx-text-slide-bounce{animation:fx-ani-slide-bounce 1s cubic-bezier(.68,-.55,.265,1.55) forwards;transform:translateX(-100%)}@keyframes fx-ani-slide-bounce{0%{transform:translateX(-100%)}70%{transform:translateX(10%)}85%{transform:translateX(-5%)}95%{transform:translateX(2%)}100%{transform:translateX(0)}}.fx-text-spiral{animation:fx-ani-spiral 1.2s cubic-bezier(.4,0,.2,1) forwards;transform-origin:center}@keyframes fx-ani-spiral{0%{transform:rotate(720deg) scale(0);opacity:0}50%{transform:rotate(360deg) scale(.5);opacity:.5}100%{transform:rotate(0) scale(1);opacity:1}}.fx-text-wipe{position:relative;display:inline-block;overflow:hidden}.fx-text-wipe::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bs-primary);animation:fx-ani-wipe 1.5s ease forwards;z-index:1}@keyframes fx-ani-wipe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}100%{transform:translateX(100%)}}.fx-text-curtain{position:relative;display:inline-block;overflow:hidden}.fx-text-curtain::before,.fx-text-curtain::after{content:'';position:absolute;top:0;width:50%;height:100%;background:var(--bs-primary);z-index:1;animation:fx-ani-curtain 1.2s ease forwards}.fx-text-curtain::before{left:0}.fx-text-curtain::after{right:0;animation:fx-ani-curtain-right 1.2s ease forwards}@keyframes fx-ani-curtain{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@keyframes fx-ani-curtain-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}.fx-text-cinema-zoom{animation:fx-ani-cinema-zoom 2s ease forwards;transform-origin:center}@keyframes fx-ani-cinema-zoom{0%{transform:scale(.1) rotate(-5deg);opacity:0;filter:blur(10px)}50%{transform:scale(1.1) rotate(2deg);filter:blur(0)}75%{transform:scale(.95) rotate(-1deg)}100%{transform:scale(1) rotate(0);opacity:1}}.fx-text-scatter span{display:inline-block;opacity:0;animation:fx-ani-scatter 0.8s ease forwards;animation-delay:calc(var(--char-index) * 0.03s);transform-origin:center}@keyframes fx-ani-scatter{0%{opacity:0;transform:translate(calc(var(--char-index) * 15px - 75px),calc(var(--char-index) * 10px - 50px)) rotate(180deg) scale(0)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}.fx-text-matrix{position:relative;color:#fff0}.fx-text-matrix::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;color:lime;overflow:hidden;animation:fx-ani-matrix 2s steps(20) forwards;white-space:nowrap}@keyframes fx-ani-matrix{0%{width:0;text-shadow:0 0 10px lime}50%{text-shadow:0 0 20px lime}100%{width:100%;text-shadow:0 0 5px lime}}.fx-text-shadow-dance{animation:fx-ani-shadow-dance 3s ease-in-out infinite;text-shadow:2px 2px 0 var(--bs-primary)}@keyframes fx-ani-shadow-dance{0%{text-shadow:2px 2px 0 var(--bs-primary)}25%{text-shadow:-2px 2px 0 var(--bs-warning)}50%{text-shadow:-2px -2px 0 var(--bs-success)}75%{text-shadow:2px -2px 0 var(--bs-info)}100%{text-shadow:2px 2px 0 var(--bs-primary)}}.fx-text-multi-shadow{animation:fx-ani-multi-shadow 2s ease-in-out infinite alternate}@keyframes fx-ani-multi-shadow{0%{text-shadow:0 0 5px var(--bs-primary),0 0 10px var(--bs-primary),0 0 15px var(--bs-primary),0 0 20px var(--bs-primary)}100%{text-shadow:5px 5px 5px var(--bs-primary),10px 10px 10px var(--bs-warning),15px 15px 15px var(--bs-success),20px 20px 20px var(--bs-info)}}.fx-text-mask{background:linear-gradient(90deg,var(--bs-primary) 0%,var(--bs-info) 50%,var(--bs-primary) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:#fff0;animation:fx-ani-mask-shine 3s linear infinite}@keyframes fx-ani-mask-shine{to{background-position:200% center}}.fx-text-reveal-mask{position:relative;overflow:hidden;display:inline-block}.fx-text-reveal-mask::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--bs-primary),transparent);animation:fx-ani-reveal-mask 2s infinite}@keyframes fx-ani-reveal-mask{0%{left:-100%}100%{left:100%}}.fx-text-distort{transition:all 0.3s ease;display:inline-block}.fx-text-distort:hover,.fx-text-distort:focus{transform:perspective(500px) rotateX(20deg) rotateY(10deg) skew(5deg,2deg);letter-spacing:5px}.fx-text-glitch{position:relative;display:inline-block}.fx-text-glitch:hover,.fx-text-glitch:focus{animation:fx-ani-glitch 0.3s infinite}.fx-text-glitch:hover::before,.fx-text-glitch:hover::after,.fx-text-glitch:focus::before,.fx-text-glitch:focus::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;background:#fff0}.fx-text-glitch:hover::before,.fx-text-glitch:focus::before{color:#f0f;left:2px;text-shadow:-1px 0 cyan;z-index:-1;animation:fx-ani-glitch-offset 0.3s infinite}.fx-text-glitch:hover::after,.fx-text-glitch:focus::after{color:cyan;left:-2px;text-shadow:1px 0 #f0f;z-index:-2;animation:fx-ani-glitch-offset 0.3s infinite reverse}@keyframes fx-ani-glitch{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}100%{transform:translate(0)}}@keyframes fx-ani-glitch-offset{0%{transform:translate(0)}20%{transform:translate(2px,-2px)}40%{transform:translate(2px,2px)}60%{transform:translate(-2px,2px)}80%{transform:translate(-2px,-2px)}100%{transform:translate(0)}}.fx-masonry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-auto-rows:10px;gap:20px}.fx-masonry-item{grid-row-end:span 20}.fx-masonry-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.fx-masonry-item:hover img,.fx-masonry-item:focus img{transform:scale(1.02)}.fx-slide-in{animation:fx-ani-slideIn 0.5s ease-out}@keyframes fx-ani-slideIn{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}.fx-theme-transition{transition:background-color 0.3s ease,color 0.3s ease,border-color 0.3s ease,box-shadow 0.3s ease}[data-bs-theme="dark"] .fx-light-only{display:none!important}[data-bs-theme="light"] .fx-dark-only{display:none!important}.fx-alternate{animation-direction:alternate}.fx-reverse{animation-direction:reverse}.fx-alternate-reverse{animation-direction:alternate-reverse}.fx-forwards{animation-fill-mode:forwards}.fx-backwards{animation-fill-mode:backwards}.fx-both{animation-fill-mode:both}.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)}@media (prefers-reduced-motion:reduce){[class*="fx-"]{animation:none!important;transition:none!important;transform:none!important}[class*="fx-"]::before,[class*="fx-"]::after{animation:none!important;display:none!important}[data-fx-scroll-reveal],[data-fx-cascade-reveal]{opacity:1!important;transform:none!important}[data-reveal]{opacity:1!important;transform:none!important}}html[dir="rtl"] .fx-text-slide-left{animation:fx-ani-slide-from-right 0.8s cubic-bezier(.25,.46,.45,.94) forwards;transform:translateX(100%)}html[dir="rtl"] .fx-text-slide-right{animation:fx-ani-slide-from-left 0.8s cubic-bezier(.25,.46,.45,.94) forwards;transform:translateX(-100%)}html[dir="rtl"] .fx-text-flip-horizontal{animation:fx-ani-flip-vertical 0.8s ease forwards}.fx-text-cinematic{animation:fx-ani-cinematic 2s ease forwards;transform-style:preserve-3d;position:relative}@keyframes fx-ani-cinematic{0%{opacity:0;transform:perspective(500px) rotateX(90deg) scale(.5);filter:blur(10px)}50%{opacity:.5;transform:perspective(500px) rotateX(0) scale(1.1);filter:blur(0)}75%{transform:perspective(500px) rotateX(0) scale(.95)}100%{opacity:1;transform:perspective(500px) rotateX(0) scale(1)}}.fx-text-particle-spin span{display:inline-block;animation:fx-ani-particle-spin 1s cubic-bezier(.4,0,.2,1) forwards;opacity:0;animation-delay:calc(var(--char-index) * 0.05s)}@keyframes fx-ani-particle-spin{0%{opacity:0;transform:translate(calc(var(--char-index) * 10px - 50px),calc(var(--char-index) * 5px - 25px)) rotate(720deg) scale(0)}70%{transform:translate(0,0) rotate(-10deg) scale(1.1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}