.video-bg {
  --video-ratio: 100%;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  background-image: var(--video-img);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}
.video-bg .spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: opacity 0.5s ease-out;
}
.video-bg .video-iframe-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.5s 0.2s ease-in-out;
  width: var(--video-width, 100%);
  height: var(--video-height, 100%);
}
.video-bg .video-iframe-wrapper.video-initialized {
  opacity: 1;
}
.video-bg .video-iframe-wrapper.video-initialized + .spinner {
  opacity: 0;
}
.video-bg.video-contain:before {
  content: '';
  width: 100%;
  display: block;
  padding-bottom: var(--video-ratio);
}
.video-bg.video-contain .video-iframe-wrapper {
  width: 100%;
  height: 100%;
}
