@keyframes slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes slide-out { from { transform: translateX(0); } to { transform: translateX(100%); } }
.animate-slide-in { animation: slide-in 0.3s cubic-bezier(.4,0,.2,1); }
.animate-slide-out { animation: slide-out 0.3s cubic-bezier(.4,0,.2,1); }
.menu-overlay {
  transition: opacity 0.3s cubic-bezier(.4,0,.2,1);
  opacity: 1;
}
.menu-overlay.menu-overlay-fadeout {
  opacity: 0;
  pointer-events: none;
}

@keyframes balance {
  0%   { transform: rotate(-4deg) translateY(0); }
  20%  { transform: rotate(-2deg) translateY(-4px);}
  50%  { transform: rotate(3deg)  translateY(2px);}
  80%  { transform: rotate(-2deg) translateY(-4px);}
  100% { transform: rotate(-4deg) translateY(0);}
}
.balance-animate {
  animation: balance 2.5s ease-in-out infinite;
  will-change: transform;
}

section{
  overflow: hidden;
}