/* ==================================================
 * Animations
 * ================================================== */

/* アニメーション定義 */
@keyframes shake-spin {
  0% { transform: rotate(0deg); }
  5% { transform: rotate(-10deg); }
  15% { transform: rotate(10deg); }
  20% { transform: rotate(0deg); }
  30% { transform: rotate(0deg); }
  100% { transform: rotate(1080deg); }
}

.animate-intro-shake-spin {
  animation: shake-spin 2s ease-in-out;
}

@keyframes fade-in-up {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.animate-fade-in {
  animation: fade-in-up 0.5s ease-out forwards;
}

.paragraph-fade-in {
  opacity: 0;
  animation: fade-in-up 0.35s ease-out forwards;
  animation-delay: min(var(--delay, 0s), 1s);
}

@keyframes pulse-example-button {
  0%, 100% {
    transform: scale(1);
    background-color: white;
  }
  50% {
    transform: scale(1.05);
    background-color: var(--color-bg-dim);
  }
}

.animate-pulse-once {
  animation: pulse-example-button 0.3s ease-in-out 0.3s 1;
}
