@keyframes card-in {
    from { opacity: 0; transform: translateY(26px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes hero-in {
    from { opacity: 0; transform: translateY(-14px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes bump {
    0% { transform: scale(1); }
    40% { transform: scale(1.45); }
    100% { transform: scale(1); }
}
@keyframes shimmer {
    from { background-position: -400px 0; }
    to { background-position: 400px 0; }
}
.table-header-hero { animation: hero-in 0.5s ease both; }
.menu-list .menu-card { animation: card-in 0.55s cubic-bezier(0.22, 0.9, 0.3, 1) both; }
.menu-list .menu-card:nth-child(1) { animation-delay: 0.02s; }
.menu-list .menu-card:nth-child(2) { animation-delay: 0.06s; }
.menu-list .menu-card:nth-child(3) { animation-delay: 0.1s; }
.menu-list .menu-card:nth-child(4) { animation-delay: 0.14s; }
.menu-list .menu-card:nth-child(5) { animation-delay: 0.18s; }
.menu-list .menu-card:nth-child(6) { animation-delay: 0.22s; }
.menu-list .menu-card:nth-child(7) { animation-delay: 0.26s; }
.menu-list .menu-card:nth-child(8) { animation-delay: 0.3s; }
.menu-list .menu-card:nth-child(9) { animation-delay: 0.34s; }
.menu-list .menu-card:nth-child(10) { animation-delay: 0.38s; }
.menu-list .menu-card:nth-child(n+11) { animation-delay: 0.42s; }
.menu-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--primary); }
.menu-thumb { overflow: hidden; background: linear-gradient(90deg, var(--light-2) 25%, #fff 50%, var(--light-2) 75%); background-size: 800px 100%; animation: shimmer 1.6s linear infinite; }
.menu-thumb img { transition: transform 0.45s ease; }
.menu-card:hover .menu-thumb img { transform: scale(1.08); }
.btn-add-cart { transition: transform 0.15s ease, box-shadow 0.3s ease, filter 0.3s ease; }
.btn-add-cart:hover { filter: brightness(1.07); }
.btn-add-cart:active { transform: scale(0.94); }
.cat-pill { transition: transform 0.2s ease, background 0.25s ease, color 0.25s ease; }
.cat-pill:active { transform: scale(0.92); }
.cart-float { animation: hero-in 0.5s ease 0.3s both; }
#cart-count.bump { display: inline-block; animation: bump 0.4s ease; }
.navbar { transition: box-shadow 0.3s ease; }
.brand-logo { height: 42px; width: auto; vertical-align: middle; }
.nav-brand { display: flex; align-items: center; }
.loader-logo-img { height: 76px; width: auto; }
.footer-logo-img { height: 42px; width: auto; }
.logo-chip { display: inline-block; line-height: 0; background: var(--chip-bg, transparent); padding: var(--chip-pad, 0); border-radius: 12px; }
.login-box .logo-chip { background: var(--login-chip-bg, var(--primary-dark)); padding: var(--login-chip-pad, 10px 20px); }
.login-logo-img { height: 46px; width: auto; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
