.root {
  --_y-shift: 50%;
  --_bg-light: transparent;
  --_bg-dark: transparent;

  overflow: hidden;
  border-radius: inherit;

  &::before {
    pointer-events: none;
    content: '';

    position: absolute;
    inset: 0;

    background-image: radial-gradient(closest-side at 50% var(--_y-shift), var(--_bg-light) 25%, var(--_bg-dark) 125%);
  }

  &.withLinearGradient {
    &::before {
      background-image:
        radial-gradient(circle at 50% var(--_y-shift), #ffffff44, #ffffff00 9.5rem),
        linear-gradient(var(--_bg-light), var(--_bg-dark));
    }
  }
}

.canvas {
  pointer-events: none;

  position: relative;

  width: 100%;
  height: 100%;

  opacity: 0;
  object-fit: cover;

  transition: opacity 0.15s ease-out;

  &.showing {
    opacity: 1;
  }
}
