@keyframes ycFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@keyframes ycBreath {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 24px 34px rgba(87, 59, 25, 0.24)); }
  50% { transform: scale(1.018); filter: drop-shadow(0 30px 42px rgba(87, 59, 25, 0.30)); }
}

@keyframes ycShimmer {
  0% { transform: translateX(-160%) rotate(18deg); opacity: 0; }
  35% { opacity: 0.42; }
  100% { transform: translateX(190%) rotate(18deg); opacity: 0; }
}

@keyframes ycPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201, 155, 82, 0.28); }
  50% { box-shadow: 0 0 0 12px rgba(201, 155, 82, 0); }
}

@keyframes ycMascotBreathe {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.012); }
}

@keyframes ycBubblePop {
  0% { opacity: .72; box-shadow: 0 10px 30px rgba(68, 42, 12, 0.08); }
  100% { opacity: 1; box-shadow: 0 18px 45px rgba(68, 42, 12, 0.12); }
}

@keyframes ycOrbitDrift {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); opacity: 0.92; }
  50% { transform: translate3d(0, -10px, 0) rotate(2deg); opacity: 1; }
}

.yc-cover-card:hover .yc-cover-shine {
  animation: ycShimmer 1.2s ease;
}

.mascot-widget:hover .mascot-img {
  animation-duration: 2.4s;
}
