<svg>
  <filter id="wavy">
    <feTurbulence id="turbulence" type="turbulence" numOctaves="1" result="NOISE"></feTurbulence>
    <feDisplacementMap in="SourceGraphic" in2="NOISE" scale="5"/>
    <animate xlink:href="#turbulence" attributeName="baseFrequency" dur="60s" keyTimes="0;0.5;1"
    values="0.01 0.02;0.1 0.2;0.01 0.02" repeatCount="indefinite"></animate>
  </filter>
</svg>
<body>
  <section id="main">
    <div class="image"></div>
  </section>
</body>
body {
  margin: 0px;
  padding: 0px;
  font-family: "Poppins", sans-serif;
  background: #22232e;
}
* {
  box-sizing: border-box;
  scroll-behavior: smooth;
}
#main {
  width: 100%;
  height; auto;
  background: #22232e;
  display: flex;
  align-items: center;
  justify-content: center;
}
.image{
  background-image: url(https://omjsblog.files.wordpress.com/2023/11/1.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 350px;
  height: 200px;
  position: relative;
}
.image::before{
  content: '';
  position: absolute;
  top: 105%;
  left: 0;
  width: 350px;
  height: 200px;
  margin-left: -2px;
  background-image: url(https://omjsblog.files.wordpress.com/2023/11/1.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scaleY(-1);
  opacity: 0.2;
  filter: url(#wavy);
}
.image::after{
  content: '';
  position: absolute;
  top: 105%;
  left: 0;
  width: 351px;
  height: 200px;
  background-image: linear-gradient(transparent, #22232e 50%);
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.