@keyframes float-particle{0%,to{opacity:.15;transform:translateY(0)}50%{opacity:.35;transform:translateY(-30px)}}@keyframes shake{0%,to{transform:translate(0)scale(1)}10%{transform:translate(-3px)scale(1.15)}25%{transform:translate(3px)scale(1.15)}40%{transform:translate(-3px)scale(1.1)}55%{transform:translate(3px)scale(1.05)}70%{transform:translate(-3px)scale(1.02)}85%{transform:translate(1px)scale(1)}}@keyframes bounce-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(12px)}}@keyframes pulse-heart{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}@keyframes draw-line{to{stroke-dashoffset:0}}@keyframes shimmer-sweep{0%{left:-100%}to{left:160%}}.menu-card:hover .price-value{animation:.3s ease-in-out shake}.menu-card .card-shimmer{pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:50%;height:100%;transition:none;position:absolute;top:0;left:-100%;transform:skew(-20deg)}.menu-card:hover .card-shimmer{animation:.8s ease-in-out shimmer-sweep}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.grain-overlay:before{content:"";pointer-events:none;z-index:999;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}
