@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translate(0,0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0,0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0,0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0,0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translate(0,0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translate(0,0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0,0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0,0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes scalePulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes scaleUp{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes bounce{0%,to{transform:translate(0,0)}50%{transform:translateY(-10px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulsing{0%{box-shadow:0 0 #3b82f6b3}70%{box-shadow:0 0 0 10px #3b82f600}to{box-shadow:0 0 #3b82f600}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes float{0%,to{transform:translate(0,0)}50%{transform:translateY(-10px)}}@keyframes shake{0%,to{transform:translate(0,0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes glow{0%,to{text-shadow:0 0 5px #ffffff4d;box-shadow:0 0 5px #ffffff4d}50%{text-shadow:0 0 20px #fffc;box-shadow:0 0 20px #fffc}}@keyframes flipIn{0%{opacity:0;transform:perspective(400px)rotateY(90deg)}to{opacity:1;transform:perspective(400px)rotateY(0)}}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.animate-fade-in{animation:.2s ease-out forwards fadeIn}.animate-fade-out{animation:.2s ease-in forwards fadeOut}.animate-fade-in-up{animation:.25s ease-out forwards fadeInUp}.animate-fade-in-down{animation:.25s ease-out forwards fadeInDown}.animate-fade-in-left{animation:.25s ease-out forwards fadeInLeft}.animate-fade-in-right{animation:.25s ease-out forwards fadeInRight}.animate-slide-in-down{animation:.25s ease-out forwards slideInDown}.animate-slide-in-up{animation:.25s ease-out forwards slideInUp}.animate-slide-in-left{animation:.25s ease-out forwards slideInLeft}.animate-slide-in-right{animation:.25s ease-out forwards slideInRight}.animate-scale-in{animation:.2s ease-out forwards scaleIn}.animate-scale-out{animation:.2s ease-in forwards scaleOut}.animate-scale-pulse{animation:2s ease-in-out infinite scalePulse}.animate-bounce-in{animation:.5s ease-out forwards bounceIn}.animate-bounce{animation:1s ease-in-out infinite bounce}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-pulsing{animation:2s ease-out infinite pulsing}.animate-spin{animation:.8s linear infinite spin}.animate-rotate{animation:2s linear infinite rotate}.animate-shake{animation:.4s ease-in-out shake}.animate-flip-in{animation:.4s ease-out forwards flipIn}.animate-glow{animation:2s ease-in-out infinite glow}.animate-float{animation:3s ease-in-out infinite float}.transition-fast{transition:all .15s cubic-bezier(.4,0,.2,1)}.transition-base{transition:all .2s cubic-bezier(.4,0,.2,1)}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.transition-slow{transition:all .4s cubic-bezier(.4,0,.2,1)}.btn-hover-scale{transition:transform .15s cubic-bezier(.4,0,.2,1)}.btn-hover-scale:hover{transform:scale(1.05)}.btn-hover-scale:active{transform:scale(.95)}.btn-hover-lift{transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.card-hover-lift{transition:all .25s cubic-bezier(.4,0,.2,1)}.card-hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.card-hover-scale{transition:all .25s cubic-bezier(.4,0,.2,1)}.card-hover-scale:hover{transform:scale(1.02)}.link-hover-color{transition:color .2s}.link-hover-underline{transition:color .2s;position:relative}.link-hover-underline:after{content:"";background-color:currentColor;width:0;height:2px;transition:width .2s;position:absolute;bottom:-2px;left:0}.link-hover-underline:hover:after{width:100%}.input-focus-ring{transition:all .2s}.input-focus-ring:focus{transform:scale(1.02);box-shadow:0 0 0 3px #3b82f61a}.icon-bounce{transition:transform .2s}.icon-bounce:hover{animation:.6s bounce}.icon-rotate-hover{transition:transform .3s}.icon-rotate-hover:hover{transform:rotate(90deg)}.product-image-hover{transition:transform .4s cubic-bezier(.4,0,.2,1)}.product-image-hover:hover{transform:scale(1.08)}.product-card-enter{animation:.3s ease-out forwards fadeInUp}.skeleton-loading{will-change:background-position;background:linear-gradient(90deg,#c8c8c833 0%,#c8c8c84d 50%,#c8c8c833 100%) 0 0/1000px 100%;animation:1.5s linear infinite shimmer}.dark .skeleton-loading{background:linear-gradient(90deg,#64646433 0%,#6464644d 50%,#64646433 100%)}.badge-pulse{animation:2s ease-out infinite pulsing}.loader-spin{animation:1s linear infinite spin}.loader-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.text-shimmer{background:linear-gradient(90deg,currentColor 0% 20%,#ffffff4d 50%,currentColor 80% 100%) 0 0/200%;-webkit-text-fill-color:transparent;will-change:background-position;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite shimmer}.animation-delay-100{animation-delay:.1s}.animation-delay-200{animation-delay:.2s}.animation-delay-300{animation-delay:.3s}.animation-delay-500{animation-delay:.5s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.gpu-accelerated{will-change:transform,opacity;transform:translateZ(0)}.smooth-scroll{scroll-behavior:smooth}.content-visibility-auto{content-visibility:auto;contain-intrinsic-size:auto 300px}
