.font-body{font-family:var(--font-inter),system-ui,sans-serif}.font-heading{font-family:var(--font-poppins),system-ui,sans-serif}@keyframes pulse-slow{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes pulse-slower{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes scroll-indicator{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.5;transform:translateY(6px)}}@keyframes gradient{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.animate-pulse-slow{animation:pulse-slow 6s ease-in-out infinite}.animate-pulse-slower{animation:pulse-slower 8s ease-in-out infinite}.animate-float{animation:float 6s ease-in-out infinite}.animate-scroll-indicator{animation:scroll-indicator 2s ease-in-out infinite}.animate-gradient{background-size:200% 200%;animation:gradient 8s ease infinite}.animate-fade-in-up{animation:fade-in-up 1s ease-out forwards}.animate-twinkle{animation:twinkle 3s ease-in-out infinite}.glass-heavy{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.glass-light{background:rgba(255,255,255,.02);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.floating-particle{position:absolute;width:4px;height:4px;background:rgba(255,255,255,.6);border-radius:50%;animation:twinkle var(--duration,3s) ease-in-out infinite;animation-delay:var(--delay,0s)}.product-scrollbar::-webkit-scrollbar{width:6px}.product-scrollbar::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:3px}.product-scrollbar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}@media (max-width:768px){.animate-float{animation:float 8s ease-in-out infinite}.animate-pulse-slow,.animate-pulse-slower{animation-duration:10s}}@media (prefers-reduced-motion:reduce){.animate-fade-in-up,.animate-float,.animate-gradient,.animate-pulse-slow,.animate-pulse-slower,.animate-scroll-indicator,.animate-twinkle{animation:none}}