/* カードをめくるテンポを保ち、発光や常時点滅は使わない。 */
@keyframes popIn {
  0% { transform: scale(.75); opacity: 0; }
  65% { transform: scale(1.04); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
.pop-anim { animation: popIn .45s ease-out forwards; }

/* 特別な状態は、淡い金色の線と紙の色で示す。 */
.fever-active { border-top-color: var(--color-gold) !important; }
.card.card-gold {
  border-color: #ccb36d;
  border-top-color: var(--color-gold);
  background: #fffdf5;
  box-shadow: 0 4px 0 #f3ecd6;
}
.card-gold .card-category-badge { color: var(--text-gold); }

@keyframes comboBounce {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}
.combo-pulse { animation: comboBounce .3s ease-out; }

@keyframes floatUp {
  0% { transform: translate(-50%, 0) scale(.95); opacity: 0; }
  20% { transform: translate(-50%, -10px) scale(1); opacity: 1; }
  100% { transform: translate(-50%, -50px); opacity: 0; }
}
.float-score { position: fixed; pointer-events: none; z-index: 1000; font-weight: 700; font-size: 1.4rem; color: var(--color-blue); background: #ffffffed; padding: 0 6px; border-radius: 3px; animation: floatUp .85s ease-out forwards; }
.float-gold { color: var(--text-gold); background: #fffaf0f2; font-size: 1.6rem; }

.game-toast {
  position: absolute;
  top: 110px;
  left: 50%;
  transform: translateX(-50%) translateY(-10px);
  width: calc(100% - 32px);
  max-width: 396px;
  padding: 12px 14px;
  border: 1px solid var(--border-subtle);
  border-left: 3px solid var(--color-blue);
  border-radius: 4px;
  background: #fff;
  color: var(--text-main);
  font-size: .8rem;
  line-height: 1.7;
  font-weight: 500;
  text-align: left;
  white-space: pre-line;
  pointer-events: none;
  z-index: 500;
  opacity: 0;
  transition: opacity .2s ease, transform .2s ease;
  box-shadow: 0 6px 22px rgba(23, 63, 104, .12);
}
.game-toast.visible { transform: translateX(-50%) translateY(0); opacity: 1; }
.toast-success { border-left-color: var(--color-gold); background: #fffdf5; }
.toast-wrong { border-left-color: var(--color-down); background: #fffafb; }

@media (prefers-reduced-motion: reduce) {
  .pop-anim, .combo-pulse, .float-score { animation: none; }
  .float-score { opacity: 1; }
  .screen, .card, .stamp, .game-toast, .time-bar-fill, .fever-bar-fill, button { transition: none !important; }
}
