/* ============================================================
   動畫：轉場、回饋、星星、彩帶；減少動畫時由 base.css 覆寫
   ============================================================ */
@keyframes screen-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes modal-in {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toast-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes feedback-in {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes star-pop {
  0% { transform: scale(.55) rotate(-12deg); }
  65% { transform: scale(1.16) rotate(3deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes visual-glow {
  0% { box-shadow: inset 0 0 0 0 rgba(240, 185, 77, 0); }
  35% { box-shadow: inset 0 0 0 5px rgba(240, 185, 77, .65); }
  100% { box-shadow: inset 0 0 0 0 rgba(240, 185, 77, 0); }
}
@keyframes confetti-fall {
  0% { opacity: 1; transform: translate3d(0, -20px, 0) rotate(var(--rot, 0deg)); }
  100% { opacity: 0; transform: translate3d(var(--drift, 30px), 104vh, 0) rotate(calc(var(--rot, 0deg) + 680deg)); }
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}
@keyframes float-soft {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
.shake { animation: shake .34s ease-in-out; }
.float-soft { animation: float-soft 3.4s ease-in-out infinite; }
.cheat-glow {
  height: 8px;
  background: linear-gradient(90deg, var(--leaf), var(--sun), var(--rose), var(--sky), var(--leaf));
  background-size: 220% 100%;
  animation: cheat-slide 2.6s linear infinite;
}
@keyframes cheat-slide {
  from { background-position: 0 0; }
  to { background-position: 220% 0; }
}
.modal-cheat { text-align: center; border-color: var(--sun); overflow: hidden; }
.modal-cheat h2 { color: var(--leaf-dark); font-size: clamp(1.6rem, 5vw, 2.2rem); }
.modal-cheat .modal-body { padding: 24px; }
.modal-cheat .btn { margin-top: 8px; }
