<div class="box"></div>
body {
  padding: 0;
  margin: 0;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 0;
  overflow: hidden;
}

body:after {
  content: "";
    background-color: rgb(40, 40, 40);
  background-image: url('data:image/svg+xml,%3Csvg width="52" height="26" viewBox="0 0 52 26" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%239C92AC" fill-opacity="0.4"%3E%3Cpath d="M10 10c0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6h2c0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4v2c-3.314 0-6-2.686-6-6 0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6zm25.464-1.95l8.486 8.486-1.414 1.414-8.486-8.486 1.414-1.414z" /%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
  display: block;
  position: absolute;
  z-index: -1;
  left: -100px;
  right: -100px;
  top: 0;
  bottom: 0;
   animation: bg 1s linear infinite;
}

@keyframes bg {
  from {
    transform: translate(0);
  }

  to {
   transform: translate(52px);
  }
}

.box {
  width: 60vw;
  height: 50vh;
   background: radial-gradient(circle closest-side, rgba(0, 0, 0, 0) 30px, rgb(255, 255, 255) 31px, rgb(255, 255, 255) 30px);
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.