@keyframes shipFloat {
  0%,100% { transform: translateX(-50%) translateY(0px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-6px) rotate(1deg); }
}

@keyframes waveMove {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(20px); }
}

@keyframes smokeRise {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  100% { transform: translateY(-40px) scale(1.8); opacity: 0; }
}

#ship {
  animation: shipFloat 2s ease-in-out infinite;
}

.wave1 {
  animation: waveMove 1.8s linear infinite alternate;
}

.wave2 {
  animation: waveMove 1.2s linear infinite alternate-reverse;
}

.smoke {
  animation: smokeRise 2s infinite;
}