:root {
  --p: orange;
  --s: teal;
  overflow: hidden;
  margin: 0;
  height: 100vh;
  
  &::before, &::after {
    --size: 4em;
    content: "";
    font-size: 1vmin;
    position: absolute;
    width: 50em;
    aspect-ratio: 1;
    top: 50%;
    left: calc(50% - min(55em, 50vw));
    translate: 0 -50%;
    background:
      var(--circles),
      radial-gradient(var(--p) var(--size), #0000 0);
    transition: top, left, translate;
    transition-duration: 1s;
  }
  
  &::before {
    --dist: calc(var(--size) * 1.7);
    --distNo: calc(var(--dist) * -1);
    --dist2: calc(var(--size) * 1.23);
    --dist2No: calc(var(--dist2) * -1);
    --circles: 
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) 0 var(--dist),
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) 0 var(--distNo),
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) var(--dist) 0,
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) var(--distNo) 0,
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) var(--dist2) var(--dist2),
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) var(--dist2) var(--dist2No),
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) var(--dist2No) var(--dist2),
      radial-gradient(var(--s) calc(var(--size) / 2), #0000 0) var(--dist2No) var(--dist2No);
  }
  
  &::after {
    left: calc(50% + min(55em, 50vw));
    translate: -100% -50%;
    --size2: calc(var(--size) * 2.1);
    --size2No: calc(var(--size) * -2);
    --dist: calc(var(--size) * 3);
    --distNo: calc(var(--dist) * -1);
    --dist2: calc(var(--size) * 1.23);
    --dist2No: calc(var(--dist2) * -1);
    --circles: 
      radial-gradient(var(--s) calc(var(--size2)), #0000 0) 15.5% -11% / 50% 50% no-repeat,
      radial-gradient(var(--s) calc(var(--size2)), #0000 0) 84.5% -11% / 50% 50% no-repeat,
      radial-gradient(var(--s) calc(var(--size2)), #0000 0) -16% 50% / 50% 50% no-repeat,
      radial-gradient(var(--s) calc(var(--size2)), #0000 0) 15.5% 111% / 50% 50% no-repeat,
      radial-gradient(var(--s) calc(var(--size2)), #0000 0) 84.5% 111% / 50% 50% no-repeat,
      radial-gradient(var(--s) calc(var(--size2)), #0000 0) 116% 50% / 50% 50% no-repeat
  }
  
  &:hover {
    &::before, &::after {
    left: 50%;
    top: 50%;
      translate: -50% -50%;
    }
  }
  
  @media(aspect-ratio < 1) {
    &::before {
      font-size: 1.2vmin;
      left: 50%;
      top: calc(50% - min(55em, 50vh));
      translate: -50% 0%;
    }
    
    &::after {
      font-size: 1.2vmin;
      left: 50%;
      top: calc(50% + min(55em, 50vh));
      translate: -50% -100%;
    }
  }
}
