@keyframes dockPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(240, 199, 74, 0.7), 0 0 18px rgba(240, 199, 74, 0.35); }
  50% { box-shadow: 0 0 0 6px rgba(240, 199, 74, 0.35), 0 0 28px rgba(240, 199, 74, 0.72); }
}

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

@keyframes cloudDrift {
  0% { transform: translateX(-6vw); }
  100% { transform: translateX(6vw); }
}

@keyframes sway {
  0%, 100% { rotate: -1deg; }
  50% { rotate: 2deg; }
}

@keyframes shimmer {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(75, 216, 255, 0)); }
  50% { filter: drop-shadow(0 0 18px rgba(75, 216, 255, 0.65)); }
}

@keyframes focusSparkle {
  0%, 100% {
    filter: drop-shadow(0 0 0 rgba(240, 199, 74, 0));
    transform: scale(1);
  }
  50% {
    filter: drop-shadow(0 0 24px rgba(240, 199, 74, 0.85));
    transform: scale(1.08);
  }
}

@keyframes sparkleWipe {
  from { transform: translateX(-110%) skewX(-12deg); }
  to { transform: translateX(110%) skewX(-12deg); }
}

.sway {
  animation: sway 5.5s ease-in-out infinite;
}

.sway.slow {
  animation-duration: 7s;
}

.shimmer {
  animation: shimmer 2.2s ease-in-out infinite;
}

.floaty {
  animation: floaty 3.5s ease-in-out infinite;
}
