body { font-family: 'Nunito', sans-serif; }
h1, h2, .display { font-family: 'Bricolage Grotesque', sans-serif; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
@keyframes toastIn { 0% { opacity: 0; transform: translate(-50%, 20px) scale(.9); } 100% { opacity: 1; transform: translate(-50%, 0) scale(1); } }
.toast-anim { animation: toastIn .25s ease-out; }
@keyframes drawerIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
.drawer-anim { animation: drawerIn .3s cubic-bezier(.2,.8,.2,1); }
@keyframes pop { 0% { transform: scale(1); } 50% { transform: scale(1.25); } 100% { transform: scale(1); } }
.pop { animation: pop .3s ease; }
@keyframes confettiFall { to { transform: translateY(110vh) rotate(720deg); opacity: 0; } }
@keyframes shakeX { 0%,100% { transform: translateX(0); } 20% { transform: translateX(-6px); } 40% { transform: translateX(6px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(4px); } }
.shake { animation: shakeX .45s ease; }
@keyframes shimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
.shimmer { background: linear-gradient(90deg, #ffffff55 25%, #d1fae566 37%, #ffffff55 63%); background-size: 800px 100%; animation: shimmer 1.4s infinite linear; }
@keyframes imgShimmer { 0% { background-position: -300px 0; } 100% { background-position: 300px 0; } }
.img-shimmer { background: linear-gradient(90deg, rgba(209,250,229,.35) 25%, rgba(167,243,208,.6) 37%, rgba(209,250,229,.35) 63%); background-size: 600px 100%; animation: imgShimmer 1.2s infinite linear; }
@keyframes goldGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(250,204,21,.5); } 50% { box-shadow: 0 0 12px 2px rgba(250,204,21,.8); } }
.gold-glow { animation: goldGlow 2s ease-in-out infinite; }
@keyframes cardIn { 0% { opacity: 0; transform: translateY(16px) scale(.96); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
.admin-card-in { animation: cardIn .35s cubic-bezier(.2,.8,.2,1); }