body {
  background-color: #FAF9F5; /* Alabaster cream */
  font-family: 'Inter', sans-serif;
}

@keyframes bounceWild {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.25) rotate(8deg); }
}

@keyframes fadeSlide {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes pulseSoft {
  0%, 100% { box-shadow: 0 0 0 0 rgba(96, 128, 96, 0.4); }
  50% { box-shadow: 0 0 0 12px rgba(96, 128, 96, 0); }
}

@keyframes shake {
  10%, 90% { transform: translateX(-1px); }
  20%, 80% { transform: translateX(2px); }
  30%, 50%, 70% { transform: translateX(-4px); }
  40%, 60% { transform: translateX(4px); }
}

/* A life-heart bursting when a Connections guess is wrong: swells, then pops away. */
@keyframes heartPop {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.6); opacity: 1; }
  100% { transform: scale(0); opacity: 0; }
}

/* Elegant Custom Scrollbar for Autocomplete & Guess Log */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: rgba(230, 223, 211, 0.3);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb {
  background: rgba(140, 122, 107, 0.4);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(140, 122, 107, 0.6);
}
