@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .3s ease-out}@keyframes plisseWave{0%{transform:scaleY(1) translateY(0)}25%{transform:scaleY(.98) translateY(-2px)}50%{transform:scaleY(1.02) translateY(2px)}75%{transform:scaleY(.99) translateY(-1px)}to{transform:scaleY(1) translateY(0)}}.plisse-wave-animation{animation:plisseWave .8s ease-in-out}@keyframes waveLine{0%{transform:translateX(-100%) scaleX(0);opacity:0}50%{transform:translateX(0) scaleX(1);opacity:1}to{transform:translateX(100%) scaleX(0);opacity:0}}.wave-line{animation:waveLine .6s ease-out forwards}.plisse-pleats{background:repeating-linear-gradient(90deg,transparent,transparent 10px,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 11px,transparent 0,transparent 20px)}.plisse-folds{background:repeating-linear-gradient(90deg,transparent,transparent 18px,rgba(0,0,0,.02) 0,rgba(0,0,0,.05) 20px,hsla(0,0%,100%,.05) 22px,transparent 24px)}@keyframes curtainOpen{0%{clip-path:polygon(50% 0,50% 0,50% 100%,50% 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}.curtain-open{animation:curtainOpen .8s ease-out forwards}@keyframes curtainWave{0%,to{transform:perspective(1000px) rotateY(0deg)}25%{transform:perspective(1000px) rotateY(2deg)}50%{transform:perspective(1000px) rotateY(-2deg)}75%{transform:perspective(1000px) rotateY(1deg)}}.curtain-wave{animation:curtainWave 2s ease-in-out infinite;transform-origin:top center}@keyframes fabricRipple{0%{background-position:0 0}to{background-position:100% 100%}}.fabric-ripple{background:repeating-linear-gradient(0deg,transparent,transparent 8px,hsla(0,0%,100%,.03) 0,hsla(0,0%,100%,.03) 10px),repeating-linear-gradient(90deg,transparent,transparent 8px,rgba(0,0,0,.02) 0,rgba(0,0,0,.02) 10px);animation:fabricRipple 2s linear infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-bounce{animation:bounce .6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}.animate-pulse{animation:pulse 2s ease-in-out infinite}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slideUp{animation:slideUp .4s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-slideDown{animation:slideDown .4s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scaleIn{animation:scaleIn .3s ease-out}@keyframes typing{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.typing-dot{animation:typing .6s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.1s}.typing-dot:nth-child(3){animation-delay:.2s}@keyframes slideInRight{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.slide-in-right{animation:slideInRight .5s ease-out}.slide-in-left{animation:slideInLeft .5s ease-out}@keyframes socialPop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1.1)}}.social-icon:hover{animation:socialPop .3s ease-out forwards}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes priceFlash{0%{background-color:transparent}50%{background-color:rgba(0,123,255,.1)}to{background-color:transparent}}.price-flash{animation:priceFlash .5s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-animate{animation:dropdownFadeIn .2s ease-out}@keyframes starPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.star-animate{animation:starPop .3s ease-out forwards}.star-animate:first-child{animation-delay:0s}.star-animate:nth-child(2){animation-delay:.1s}.star-animate:nth-child(3){animation-delay:.2s}.star-animate:nth-child(4){animation-delay:.3s}.star-animate:nth-child(5){animation-delay:.4s}@keyframes badgePulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{transform:scale(1.1);box-shadow:0 0 0 6px rgba(239,68,68,0)}}.badge-pulse{animation:badgePulse 2s ease-in-out infinite}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3}.line-clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#007bff}.dark .custom-scrollbar::-webkit-scrollbar-track{background:#374151}.dark .custom-scrollbar::-webkit-scrollbar-thumb{background:#4b5563}.dark .custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#007bff}@keyframes rippleEffect{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}.ripple-container{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.3);pointer-events:none;animation:rippleEffect .6s ease-out}@keyframes glowPulse{0%,to{box-shadow:0 0 20px rgba(0,123,255,.3)}50%{box-shadow:0 0 40px rgba(0,123,255,.6)}}.btn-glow{transition:box-shadow .4s ease}.btn-glow:hover{box-shadow:0 0 30px rgba(0,123,255,.5)}.btn-glow-danger:hover{box-shadow:0 0 30px rgba(239,68,68,.5)}.btn-glow-success:hover{box-shadow:0 0 30px rgba(34,197,94,.5)}@keyframes shineEffect{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(200%) skewX(-15deg)}}.btn-shine{position:relative;overflow:hidden}.btn-shine:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent);transform:translateX(-100%) skewX(-15deg)}.btn-shine:hover:after{animation:shineEffect .6s ease-in-out}@keyframes cardLift{0%{transform:translateY(0);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}to{transform:translateY(-8px);box-shadow:0 20px 25px -5px rgba(0,0,0,.15)}}.card-lift{transition:transform .4s cubic-bezier(.43,.13,.23,.96),box-shadow .4s cubic-bezier(.43,.13,.23,.96)}.card-lift:hover{transform:translateY(-8px);box-shadow:0 20px 25px -5px rgba(0,0,0,.15)}.card-tilt{transform-style:preserve-3d;perspective:1000px;transition:transform .3s ease}.card-tilt:hover{transform:perspective(1000px) rotateX(2deg) rotateY(-2deg)}.link-underline{position:relative}.link-underline:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.43,.13,.23,.96)}.link-underline:hover:after{transform:scaleX(1)}.link-underline-right:after{transform-origin:right}.link-underline-center:after{transform-origin:center}.image-zoom-container{position:relative;overflow:hidden}.image-zoom-container img{transition:transform .8s ease}.image-zoom-container:hover img{transform:scale(1.1)}.image-zoom-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);opacity:0;transition:opacity .4s ease}.image-zoom-container:hover .image-zoom-overlay{opacity:1}.magnetic-hover{transition:transform .3s cubic-bezier(.43,.13,.23,.96)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.stagger-6{animation-delay:.6s}.stagger-7{animation-delay:.7s}.stagger-8{animation-delay:.8s}@keyframes blurInAnimation{0%{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}.animate-blur-in{animation:blurInAnimation .6s ease-out forwards}@keyframes textReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.text-reveal{animation:textReveal .4s ease-out forwards;animation-play-state:paused}.text-reveal.visible{animation-play-state:running}@keyframes clipRevealUp{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes clipRevealRight{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.clip-reveal-up{animation:clipRevealUp .8s cubic-bezier(.6,.01,.05,.95) forwards}.clip-reveal-right{animation:clipRevealRight .8s cubic-bezier(.6,.01,.05,.95) forwards}@keyframes floatAnimation{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:floatAnimation 3s ease-in-out infinite}@keyframes gradientBackground{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animated-gradient{background-size:200% 200%;animation:gradientBackground 4s ease infinite}@keyframes iconBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.1)}}.icon-bounce:hover{animation:iconBounce .4s ease-out}@keyframes checkmark{0%{stroke-dashoffset:100;opacity:0}to{stroke-dashoffset:0;opacity:1}}.checkmark-animate{stroke-dasharray:100;stroke-dashoffset:100;animation:checkmark .6s ease-out forwards}@keyframes backdropFadeIn{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(8px)}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.backdrop-animate{animation:backdropFadeIn .3s ease-out forwards}.modal-animate{animation:modalSlideUp .4s cubic-bezier(.43,.13,.23,.96) forwards}@keyframes inputFocusRing{0%{box-shadow:0 0 0 0 rgba(0,123,255,.4)}to{box-shadow:0 0 0 4px rgba(0,123,255,.2)}}.input-focus-animate:focus{animation:inputFocusRing .3s ease-out forwards}@keyframes shakeError{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.shake-error{animation:shakeError .5s ease-in-out}@keyframes counterPop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.counter-pop{animation:counterPop .3s ease-out}@keyframes accordionOpen{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.accordion-content{animation:accordionOpen .3s ease-out}@keyframes tooltipFade{0%{opacity:0;transform:translateY(5px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tooltip-animate{animation:tooltipFade .2s ease-out forwards}@keyframes mobileMenuSlide{0%{transform:translateX(100%)}to{transform:translateX(0)}}.mobile-menu-animate{animation:mobileMenuSlide .4s cubic-bezier(.6,.01,.05,.95) forwards}@keyframes pageEnter{0%{opacity:0;transform:translateY(20px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes pageExit{0%{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-20px);filter:blur(4px)}}.page-enter{animation:pageEnter .5s cubic-bezier(.6,.01,.05,.95) forwards}.page-exit{animation:pageExit .3s ease-out forwards}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}