Пропадает background в анимации

Всем привет! Пытаюсь сделать эффект волн на css. Но возникает проблема. Background-image просто пропадает, если это так можно назвать. Заметил, что пропадает, когда картинка доходит до конца своего размера (width). Делал по видосу, у чела все прекрасно работает, а у меня в утиль... Как это исправить?

body {
  margin: 0;
  overflow: hidden;
  padding: 0;
}

section {
  width: 100%;
  height: 100vh;
  /*background: linear-gradient(120deg, white 50%, black 50%);*/
  /*background: white;*/
  overflow: hidden;
}

.wave {
  width: 100%;
  height: 100px;
  background-image: url(https://picsum.photos/2000/100);
  position: absolute;
  bottom: 0;
  left: 0;
  /*left: 185px;*/
  /*top: 90px;*/
  /*rotate: -60deg;*/
  background-size: 2000px 100px;
}

.wave1 {
  animation: anim 30s ease-in-out infinite;
}

.wave2 {
  animation: anim 25s ease-in-out infinite;
  opacity: .1;
}

.wave3 {
  animation: anim2 20s ease-in-out infinite;
  opacity: .5;
}

.wave4 {
  animation: anim2 35s ease-in-out infinite;
  opacity: .8;
}

@keyframes anim {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: 2000px;
  }
}

@keyframes anim2 {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: -2000px;
  }
}
<div>
  <section>
    <div class="wave wave1"></div>
    <div class="wave wave2"></div>
    <div class="wave wave3"></div>
    <div class="wave wave4"></div>
  </section>
</div>


Ответы (1 шт):

Автор решения: UModeL

Такие простые изображения лучше делать через SVG, чтобы не тащить растровую картинку.

body {
  margin: 0;
  padding: 0;
}

section {
  position: relative;
  height: 100vh; width: 100%;
  overflow: hidden;
  background: radial-gradient(circle closest-side at 70% 30%, #dda 50%, #112 60%);
}

.wave {
  position: absolute;
  bottom: 0; left: 0;
  height: 10vmax; width: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 970 90' preserveAspectRatio='none'%3E%3Cpath d='M0 90c65 0 106-63 155-62s69 45 114 44S345-2 422 0s102 69 151 68 75-45 111-45 69 51 100 51 53-30 79-29 52 45 107 45H0Z' fill='%23aee'/%3E%3C/svg%3E");
  background-position: 0 100%;
  background-repeat: repeat-x;
  opacity: .2;
}
.wave1 {
  background-size: 100vmax 100%;
  animation: anim 35s ease-in-out infinite;
}
.wave2 {
  background-size: 100vmax 95%;
  animation: anim2 30s ease-in-out infinite;
}
.wave3 {
  background-size: 100vmax 85%;
  animation: anim 25s ease-in-out infinite;
}
.wave4 {
  background-size: 100vmax 70%;
  animation: anim2 20s ease-in-out infinite;
}

@keyframes anim {
  0%, 100% { background-position-x: 0; }
  50% { background-position-x: 100vmax; }
}
@keyframes anim2 {
  0%, 100% { background-position-x: 100vmax; }
  50% { background-position-x: 0; }
}
<section>
  <div class="wave wave1"></div>
  <div class="wave wave2"></div>
  <div class="wave wave3"></div>
  <div class="wave wave4"></div>
</section>

→ Ссылка