@import url('https://fonts.googleapis.com/css2?family=Impact&family=Anton&display=swap');

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.brutal-title {
  font-family: 'Anton', 'Impact', sans-serif;
  text-shadow: 4px 4px 0px rgba(0, 0, 0, 0.5);
  letter-spacing: -2px;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(1deg); }
}

@keyframes shake-hard {
  0%, 100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-8px) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  75% { transform: translateX(-8px) rotate(-2deg); }
}

@keyframes shake-violent {
  0%, 100% { transform: translateX(0) rotate(0); }
  10% { transform: translateX(-10px) rotate(-3deg); }
  20% { transform: translateX(10px) rotate(3deg); }
  30% { transform: translateX(-10px) rotate(-3deg); }
  40% { transform: translateX(10px) rotate(3deg); }
  50% { transform: translateX(-10px) rotate(-3deg); }
  60% { transform: translateX(10px) rotate(3deg); }
  70% { transform: translateX(-10px) rotate(-3deg); }
  80% { transform: translateX(10px) rotate(3deg); }
  90% { transform: translateX(-10px) rotate(-3deg); }
}

.shake {
  animation: shake 0.5s infinite;
}

.shake-hard {
  animation: shake-hard 0.4s infinite;
}

.shake-violent {
  animation: shake-violent 0.3s infinite;
}

@keyframes scale-in {
  from {
    transform: scale(0.5);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.scale-in {
  animation: scale-in 0.3s ease-out;
}

@keyframes completion-pop {
  0% {
    transform: scale(0.5) rotate(-10deg);
    opacity: 0;
  }
  50% {
    transform: scale(1.1) rotate(5deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
}

.completion-pop {
  animation: completion-pop 0.5s ease-out;
}

/* Grime texture overlay - intensity changes with gratitude mode */
body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.03;
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' /%3E%3C/svg%3E");
  transition: opacity 0.5s ease;
}

/* Slightly cleaner texture in gratitude mode */
body.gratitude-active::before {
  opacity: 0.02;
}

/* Mobile responsiveness */
@media (max-width: 640px) {
  .brutal-title {
    font-size: 2.5rem;
    letter-spacing: -1px;
  }
}

/* Smooth color transitions */
* {
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

/* Gentle nod animation for gratitude detection */
@keyframes nod {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

.nod-animation {
  animation: nod 0.6s ease-in-out;
}