@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutToRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes slideInFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-10px) rotate(1deg)}75%{transform:translateY(5px) rotate(-1deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-fade-in{animation:fadeIn var(--transition-base) ease forwards}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease forwards}.animate-fade-in-down{animation:fadeInDown var(--transition-slow) ease forwards}.animate-scale-in{animation:scaleIn var(--transition-base) ease forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:bounce 2s ease-in-out infinite}.animate-float{animation:float 6s ease-in-out infinite}.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}[data-animate]{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}[data-animate].in-view{opacity:1;transform:translateY(0)}[data-animate=fade]{transform:none}[data-animate=slide-left]{transform:translate(-30px)}[data-animate=slide-left].in-view{transform:translate(0)}[data-animate=slide-right]{transform:translate(30px)}[data-animate=slide-right].in-view{transform:translate(0)}[data-animate=scale]{transform:scale(.9)}[data-animate=scale].in-view{transform:scale(1)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:0 0 20px #e91e8c4d}.img-zoom-container{overflow:hidden}.img-zoom{transition:transform var(--transition-slow)}.img-zoom-container:hover .img-zoom{transform:scale(1.08)}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.3) 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .5s}.ripple:active:after{transform:scale(0);opacity:.3;transition:0s}.page-transition-enter{animation:fadeInUp .4s ease forwards}.page-transition-exit{animation:fadeIn .2s ease reverse forwards}.cart-drawer{position:fixed;top:0;right:0;width:100%;max-width:420px;height:100vh;background:var(--bg-primary);box-shadow:var(--shadow-xl);z-index:var(--z-modal);transform:translate(100%);transition:transform var(--transition-slow) cubic-bezier(.16,1,.3,1)}.cart-drawer.active{transform:translate(0)}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);opacity:0;visibility:hidden;transition:all var(--transition-base)}.loading-overlay.active{opacity:1;visibility:visible}.skeleton-loading{background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--bg-tertiary) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.count-animate{animation:countUp .3s ease forwards}@keyframes bellRing{0%{transform:rotate(0)}10%{transform:rotate(15deg)}20%{transform:rotate(-15deg)}30%{transform:rotate(10deg)}40%{transform:rotate(-10deg)}50%{transform:rotate(5deg)}60%{transform:rotate(-5deg)}70%{transform:rotate(0)}to{transform:rotate(0)}}.bell-ring{animation:bellRing .8s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
