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 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; }