*, *::before, *::after {
  padding: 0;
  margin: 0 auto;
  box-sizing: border-box;
}

body {
  background-color: #000;
  color: #fff;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  perspective: 15em;
  overflow: hidden;
}

.ring {
  position: relative;
  transform-style: preserve-3d;
  -webkit-animation: ringRotate 45s infinite linear;
          animation: ringRotate 45s infinite linear;
}

.ball {
  position: absolute;
  width: 1em;
  height: 1em;
  transform-style: preserve-3d;
  -webkit-animation: ballLoop 180s infinite linear;
          animation: ballLoop 180s infinite linear;
}
.ball:nth-child(1) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
.ball:nth-child(1)::after {
  background-color: #ff6666;
}
.ball:nth-child(2) {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
.ball:nth-child(2)::after {
  background-color: #ff6b66;
}
.ball:nth-child(3) {
  -webkit-animation-delay: -1.8s;
          animation-delay: -1.8s;
}
.ball:nth-child(3)::after {
  background-color: #ff6f66;
}
.ball:nth-child(4) {
  -webkit-animation-delay: -2.7s;
          animation-delay: -2.7s;
}
.ball:nth-child(4)::after {
  background-color: #ff7466;
}
.ball:nth-child(5) {
  -webkit-animation-delay: -3.6s;
          animation-delay: -3.6s;
}
.ball:nth-child(5)::after {
  background-color: #ff7866;
}
.ball:nth-child(6) {
  -webkit-animation-delay: -4.5s;
          animation-delay: -4.5s;
}
.ball:nth-child(6)::after {
  background-color: #ff7d66;
}
.ball:nth-child(7) {
  -webkit-animation-delay: -5.4s;
          animation-delay: -5.4s;
}
.ball:nth-child(7)::after {
  background-color: #ff8266;
}
.ball:nth-child(8) {
  -webkit-animation-delay: -6.3s;
          animation-delay: -6.3s;
}
.ball:nth-child(8)::after {
  background-color: #ff8666;
}
.ball:nth-child(9) {
  -webkit-animation-delay: -7.2s;
          animation-delay: -7.2s;
}
.ball:nth-child(9)::after {
  background-color: #ff8b66;
}
.ball:nth-child(10) {
  -webkit-animation-delay: -8.1s;
          animation-delay: -8.1s;
}
.ball:nth-child(10)::after {
  background-color: #ff8f66;
}
.ball:nth-child(11) {
  -webkit-animation-delay: -9s;
          animation-delay: -9s;
}
.ball:nth-child(11)::after {
  background-color: #ff9466;
}
.ball:nth-child(12) {
  -webkit-animation-delay: -9.9s;
          animation-delay: -9.9s;
}
.ball:nth-child(12)::after {
  background-color: #ff9866;
}
.ball:nth-child(13) {
  -webkit-animation-delay: -10.8s;
          animation-delay: -10.8s;
}
.ball:nth-child(13)::after {
  background-color: #ff9d66;
}
.ball:nth-child(14) {
  -webkit-animation-delay: -11.7s;
          animation-delay: -11.7s;
}
.ball:nth-child(14)::after {
  background-color: #ffa266;
}
.ball:nth-child(15) {
  -webkit-animation-delay: -12.6s;
          animation-delay: -12.6s;
}
.ball:nth-child(15)::after {
  background-color: #ffa666;
}
.ball:nth-child(16) {
  -webkit-animation-delay: -13.5s;
          animation-delay: -13.5s;
}
.ball:nth-child(16)::after {
  background-color: #ffab66;
}
.ball:nth-child(17) {
  -webkit-animation-delay: -14.4s;
          animation-delay: -14.4s;
}
.ball:nth-child(17)::after {
  background-color: #ffaf66;
}
.ball:nth-child(18) {
  -webkit-animation-delay: -15.3s;
          animation-delay: -15.3s;
}
.ball:nth-child(18)::after {
  background-color: #ffb466;
}
.ball:nth-child(19) {
  -webkit-animation-delay: -16.2s;
          animation-delay: -16.2s;
}
.ball:nth-child(19)::after {
  background-color: #ffb966;
}
.ball:nth-child(20) {
  -webkit-animation-delay: -17.1s;
          animation-delay: -17.1s;
}
.ball:nth-child(20)::after {
  background-color: #ffbd66;
}
.ball:nth-child(21) {
  -webkit-animation-delay: -18s;
          animation-delay: -18s;
}
.ball:nth-child(21)::after {
  background-color: #ffc266;
}
.ball:nth-child(22) {
  -webkit-animation-delay: -18.9s;
          animation-delay: -18.9s;
}
.ball:nth-child(22)::after {
  background-color: #ffc666;
}
.ball:nth-child(23) {
  -webkit-animation-delay: -19.8s;
          animation-delay: -19.8s;
}
.ball:nth-child(23)::after {
  background-color: #ffcb66;
}
.ball:nth-child(24) {
  -webkit-animation-delay: -20.7s;
          animation-delay: -20.7s;
}
.ball:nth-child(24)::after {
  background-color: #ffd066;
}
.ball:nth-child(25) {
  -webkit-animation-delay: -21.6s;
          animation-delay: -21.6s;
}
.ball:nth-child(25)::after {
  background-color: #ffd466;
}
.ball:nth-child(26) {
  -webkit-animation-delay: -22.5s;
          animation-delay: -22.5s;
}
.ball:nth-child(26)::after {
  background-color: #ffd966;
}
.ball:nth-child(27) {
  -webkit-animation-delay: -23.4s;
          animation-delay: -23.4s;
}
.ball:nth-child(27)::after {
  background-color: #ffdd66;
}
.ball:nth-child(28) {
  -webkit-animation-delay: -24.3s;
          animation-delay: -24.3s;
}
.ball:nth-child(28)::after {
  background-color: #ffe266;
}
.ball:nth-child(29) {
  -webkit-animation-delay: -25.2s;
          animation-delay: -25.2s;
}
.ball:nth-child(29)::after {
  background-color: #ffe766;
}
.ball:nth-child(30) {
  -webkit-animation-delay: -26.1s;
          animation-delay: -26.1s;
}
.ball:nth-child(30)::after {
  background-color: #ffeb66;
}
.ball:nth-child(31) {
  -webkit-animation-delay: -27s;
          animation-delay: -27s;
}
.ball:nth-child(31)::after {
  background-color: #fff066;
}
.ball:nth-child(32) {
  -webkit-animation-delay: -27.9s;
          animation-delay: -27.9s;
}
.ball:nth-child(32)::after {
  background-color: #fff466;
}
.ball:nth-child(33) {
  -webkit-animation-delay: -28.8s;
          animation-delay: -28.8s;
}
.ball:nth-child(33)::after {
  background-color: #fff966;
}
.ball:nth-child(34) {
  -webkit-animation-delay: -29.7s;
          animation-delay: -29.7s;
}
.ball:nth-child(34)::after {
  background-color: #fffd66;
}
.ball:nth-child(35) {
  -webkit-animation-delay: -30.6s;
          animation-delay: -30.6s;
}
.ball:nth-child(35)::after {
  background-color: #fcff66;
}
.ball:nth-child(36) {
  -webkit-animation-delay: -31.5s;
          animation-delay: -31.5s;
}
.ball:nth-child(36)::after {
  background-color: #f7ff66;
}
.ball:nth-child(37) {
  -webkit-animation-delay: -32.4s;
          animation-delay: -32.4s;
}
.ball:nth-child(37)::after {
  background-color: #f3ff66;
}
.ball:nth-child(38) {
  -webkit-animation-delay: -33.3s;
          animation-delay: -33.3s;
}
.ball:nth-child(38)::after {
  background-color: #eeff66;
}
.ball:nth-child(39) {
  -webkit-animation-delay: -34.2s;
          animation-delay: -34.2s;
}
.ball:nth-child(39)::after {
  background-color: #eaff66;
}
.ball:nth-child(40) {
  -webkit-animation-delay: -35.1s;
          animation-delay: -35.1s;
}
.ball:nth-child(40)::after {
  background-color: #e5ff66;
}
.ball:nth-child(41) {
  -webkit-animation-delay: -36s;
          animation-delay: -36s;
}
.ball:nth-child(41)::after {
  background-color: #e0ff66;
}
.ball:nth-child(42) {
  -webkit-animation-delay: -36.9s;
          animation-delay: -36.9s;
}
.ball:nth-child(42)::after {
  background-color: #dcff66;
}
.ball:nth-child(43) {
  -webkit-animation-delay: -37.8s;
          animation-delay: -37.8s;
}
.ball:nth-child(43)::after {
  background-color: #d7ff66;
}
.ball:nth-child(44) {
  -webkit-animation-delay: -38.7s;
          animation-delay: -38.7s;
}
.ball:nth-child(44)::after {
  background-color: #d3ff66;
}
.ball:nth-child(45) {
  -webkit-animation-delay: -39.6s;
          animation-delay: -39.6s;
}
.ball:nth-child(45)::after {
  background-color: #ceff66;
}
.ball:nth-child(46) {
  -webkit-animation-delay: -40.5s;
          animation-delay: -40.5s;
}
.ball:nth-child(46)::after {
  background-color: #c9ff66;
}
.ball:nth-child(47) {
  -webkit-animation-delay: -41.4s;
          animation-delay: -41.4s;
}
.ball:nth-child(47)::after {
  background-color: #c5ff66;
}
.ball:nth-child(48) {
  -webkit-animation-delay: -42.3s;
          animation-delay: -42.3s;
}
.ball:nth-child(48)::after {
  background-color: #c0ff66;
}
.ball:nth-child(49) {
  -webkit-animation-delay: -43.2s;
          animation-delay: -43.2s;
}
.ball:nth-child(49)::after {
  background-color: #bcff66;
}
.ball:nth-child(50) {
  -webkit-animation-delay: -44.1s;
          animation-delay: -44.1s;
}
.ball:nth-child(50)::after {
  background-color: #b7ff66;
}
.ball:nth-child(51) {
  -webkit-animation-delay: -45s;
          animation-delay: -45s;
}
.ball:nth-child(51)::after {
  background-color: #b3ff66;
}
.ball:nth-child(52) {
  -webkit-animation-delay: -45.9s;
          animation-delay: -45.9s;
}
.ball:nth-child(52)::after {
  background-color: #aeff66;
}
.ball:nth-child(53) {
  -webkit-animation-delay: -46.8s;
          animation-delay: -46.8s;
}
.ball:nth-child(53)::after {
  background-color: #a9ff66;
}
.ball:nth-child(54) {
  -webkit-animation-delay: -47.7s;
          animation-delay: -47.7s;
}
.ball:nth-child(54)::after {
  background-color: #a5ff66;
}
.ball:nth-child(55) {
  -webkit-animation-delay: -48.6s;
          animation-delay: -48.6s;
}
.ball:nth-child(55)::after {
  background-color: #a0ff66;
}
.ball:nth-child(56) {
  -webkit-animation-delay: -49.5s;
          animation-delay: -49.5s;
}
.ball:nth-child(56)::after {
  background-color: #9cff66;
}
.ball:nth-child(57) {
  -webkit-animation-delay: -50.4s;
          animation-delay: -50.4s;
}
.ball:nth-child(57)::after {
  background-color: #97ff66;
}
.ball:nth-child(58) {
  -webkit-animation-delay: -51.3s;
          animation-delay: -51.3s;
}
.ball:nth-child(58)::after {
  background-color: #92ff66;
}
.ball:nth-child(59) {
  -webkit-animation-delay: -52.2s;
          animation-delay: -52.2s;
}
.ball:nth-child(59)::after {
  background-color: #8eff66;
}
.ball:nth-child(60) {
  -webkit-animation-delay: -53.1s;
          animation-delay: -53.1s;
}
.ball:nth-child(60)::after {
  background-color: #89ff66;
}
.ball:nth-child(61) {
  -webkit-animation-delay: -54s;
          animation-delay: -54s;
}
.ball:nth-child(61)::after {
  background-color: #85ff66;
}
.ball:nth-child(62) {
  -webkit-animation-delay: -54.9s;
          animation-delay: -54.9s;
}
.ball:nth-child(62)::after {
  background-color: #80ff66;
}
.ball:nth-child(63) {
  -webkit-animation-delay: -55.8s;
          animation-delay: -55.8s;
}
.ball:nth-child(63)::after {
  background-color: #7bff66;
}
.ball:nth-child(64) {
  -webkit-animation-delay: -56.7s;
          animation-delay: -56.7s;
}
.ball:nth-child(64)::after {
  background-color: #77ff66;
}
.ball:nth-child(65) {
  -webkit-animation-delay: -57.6s;
          animation-delay: -57.6s;
}
.ball:nth-child(65)::after {
  background-color: #72ff66;
}
.ball:nth-child(66) {
  -webkit-animation-delay: -58.5s;
          animation-delay: -58.5s;
}
.ball:nth-child(66)::after {
  background-color: #6eff66;
}
.ball:nth-child(67) {
  -webkit-animation-delay: -59.4s;
          animation-delay: -59.4s;
}
.ball:nth-child(67)::after {
  background-color: #69ff66;
}
.ball:nth-child(68) {
  -webkit-animation-delay: -60.3s;
          animation-delay: -60.3s;
}
.ball:nth-child(68)::after {
  background-color: #66ff68;
}
.ball:nth-child(69) {
  -webkit-animation-delay: -61.2s;
          animation-delay: -61.2s;
}
.ball:nth-child(69)::after {
  background-color: #66ff6c;
}
.ball:nth-child(70) {
  -webkit-animation-delay: -62.1s;
          animation-delay: -62.1s;
}
.ball:nth-child(70)::after {
  background-color: #66ff71;
}
.ball:nth-child(71) {
  -webkit-animation-delay: -63s;
          animation-delay: -63s;
}
.ball:nth-child(71)::after {
  background-color: #66ff75;
}
.ball:nth-child(72) {
  -webkit-animation-delay: -63.9s;
          animation-delay: -63.9s;
}
.ball:nth-child(72)::after {
  background-color: #66ff7a;
}
.ball:nth-child(73) {
  -webkit-animation-delay: -64.8s;
          animation-delay: -64.8s;
}
.ball:nth-child(73)::after {
  background-color: #66ff7e;
}
.ball:nth-child(74) {
  -webkit-animation-delay: -65.7s;
          animation-delay: -65.7s;
}
.ball:nth-child(74)::after {
  background-color: #66ff83;
}
.ball:nth-child(75) {
  -webkit-animation-delay: -66.6s;
          animation-delay: -66.6s;
}
.ball:nth-child(75)::after {
  background-color: #66ff88;
}
.ball:nth-child(76) {
  -webkit-animation-delay: -67.5s;
          animation-delay: -67.5s;
}
.ball:nth-child(76)::after {
  background-color: #66ff8c;
}
.ball:nth-child(77) {
  -webkit-animation-delay: -68.4s;
          animation-delay: -68.4s;
}
.ball:nth-child(77)::after {
  background-color: #66ff91;
}
.ball:nth-child(78) {
  -webkit-animation-delay: -69.3s;
          animation-delay: -69.3s;
}
.ball:nth-child(78)::after {
  background-color: #66ff95;
}
.ball:nth-child(79) {
  -webkit-animation-delay: -70.2s;
          animation-delay: -70.2s;
}
.ball:nth-child(79)::after {
  background-color: #66ff9a;
}
.ball:nth-child(80) {
  -webkit-animation-delay: -71.1s;
          animation-delay: -71.1s;
}
.ball:nth-child(80)::after {
  background-color: #66ff9f;
}
.ball:nth-child(81) {
  -webkit-animation-delay: -72s;
          animation-delay: -72s;
}
.ball:nth-child(81)::after {
  background-color: #66ffa3;
}
.ball:nth-child(82) {
  -webkit-animation-delay: -72.9s;
          animation-delay: -72.9s;
}
.ball:nth-child(82)::after {
  background-color: #66ffa8;
}
.ball:nth-child(83) {
  -webkit-animation-delay: -73.8s;
          animation-delay: -73.8s;
}
.ball:nth-child(83)::after {
  background-color: #66ffac;
}
.ball:nth-child(84) {
  -webkit-animation-delay: -74.7s;
          animation-delay: -74.7s;
}
.ball:nth-child(84)::after {
  background-color: #66ffb1;
}
.ball:nth-child(85) {
  -webkit-animation-delay: -75.6s;
          animation-delay: -75.6s;
}
.ball:nth-child(85)::after {
  background-color: #66ffb6;
}
.ball:nth-child(86) {
  -webkit-animation-delay: -76.5s;
          animation-delay: -76.5s;
}
.ball:nth-child(86)::after {
  background-color: #66ffba;
}
.ball:nth-child(87) {
  -webkit-animation-delay: -77.4s;
          animation-delay: -77.4s;
}
.ball:nth-child(87)::after {
  background-color: #66ffbf;
}
.ball:nth-child(88) {
  -webkit-animation-delay: -78.3s;
          animation-delay: -78.3s;
}
.ball:nth-child(88)::after {
  background-color: #66ffc3;
}
.ball:nth-child(89) {
  -webkit-animation-delay: -79.2s;
          animation-delay: -79.2s;
}
.ball:nth-child(89)::after {
  background-color: #66ffc8;
}
.ball:nth-child(90) {
  -webkit-animation-delay: -80.1s;
          animation-delay: -80.1s;
}
.ball:nth-child(90)::after {
  background-color: #66ffcd;
}
.ball:nth-child(91) {
  -webkit-animation-delay: -81s;
          animation-delay: -81s;
}
.ball:nth-child(91)::after {
  background-color: #66ffd1;
}
.ball:nth-child(92) {
  -webkit-animation-delay: -81.9s;
          animation-delay: -81.9s;
}
.ball:nth-child(92)::after {
  background-color: #66ffd6;
}
.ball:nth-child(93) {
  -webkit-animation-delay: -82.8s;
          animation-delay: -82.8s;
}
.ball:nth-child(93)::after {
  background-color: #66ffda;
}
.ball:nth-child(94) {
  -webkit-animation-delay: -83.7s;
          animation-delay: -83.7s;
}
.ball:nth-child(94)::after {
  background-color: #66ffdf;
}
.ball:nth-child(95) {
  -webkit-animation-delay: -84.6s;
          animation-delay: -84.6s;
}
.ball:nth-child(95)::after {
  background-color: #66ffe3;
}
.ball:nth-child(96) {
  -webkit-animation-delay: -85.5s;
          animation-delay: -85.5s;
}
.ball:nth-child(96)::after {
  background-color: #66ffe8;
}
.ball:nth-child(97) {
  -webkit-animation-delay: -86.4s;
          animation-delay: -86.4s;
}
.ball:nth-child(97)::after {
  background-color: #66ffed;
}
.ball:nth-child(98) {
  -webkit-animation-delay: -87.3s;
          animation-delay: -87.3s;
}
.ball:nth-child(98)::after {
  background-color: #66fff1;
}
.ball:nth-child(99) {
  -webkit-animation-delay: -88.2s;
          animation-delay: -88.2s;
}
.ball:nth-child(99)::after {
  background-color: #66fff6;
}
.ball:nth-child(100) {
  -webkit-animation-delay: -89.1s;
          animation-delay: -89.1s;
}
.ball:nth-child(100)::after {
  background-color: #66fffa;
}
.ball:nth-child(101) {
  -webkit-animation-delay: -90s;
          animation-delay: -90s;
}
.ball:nth-child(101)::after {
  background-color: #66ffff;
}
.ball:nth-child(102) {
  -webkit-animation-delay: -90.9s;
          animation-delay: -90.9s;
}
.ball:nth-child(102)::after {
  background-color: #66faff;
}
.ball:nth-child(103) {
  -webkit-animation-delay: -91.8s;
          animation-delay: -91.8s;
}
.ball:nth-child(103)::after {
  background-color: #66f6ff;
}
.ball:nth-child(104) {
  -webkit-animation-delay: -92.7s;
          animation-delay: -92.7s;
}
.ball:nth-child(104)::after {
  background-color: #66f1ff;
}
.ball:nth-child(105) {
  -webkit-animation-delay: -93.6s;
          animation-delay: -93.6s;
}
.ball:nth-child(105)::after {
  background-color: #66edff;
}
.ball:nth-child(106) {
  -webkit-animation-delay: -94.5s;
          animation-delay: -94.5s;
}
.ball:nth-child(106)::after {
  background-color: #66e8ff;
}
.ball:nth-child(107) {
  -webkit-animation-delay: -95.4s;
          animation-delay: -95.4s;
}
.ball:nth-child(107)::after {
  background-color: #66e3ff;
}
.ball:nth-child(108) {
  -webkit-animation-delay: -96.3s;
          animation-delay: -96.3s;
}
.ball:nth-child(108)::after {
  background-color: #66dfff;
}
.ball:nth-child(109) {
  -webkit-animation-delay: -97.2s;
          animation-delay: -97.2s;
}
.ball:nth-child(109)::after {
  background-color: #66daff;
}
.ball:nth-child(110) {
  -webkit-animation-delay: -98.1s;
          animation-delay: -98.1s;
}
.ball:nth-child(110)::after {
  background-color: #66d6ff;
}
.ball:nth-child(111) {
  -webkit-animation-delay: -99s;
          animation-delay: -99s;
}
.ball:nth-child(111)::after {
  background-color: #66d1ff;
}
.ball:nth-child(112) {
  -webkit-animation-delay: -99.9s;
          animation-delay: -99.9s;
}
.ball:nth-child(112)::after {
  background-color: #66cdff;
}
.ball:nth-child(113) {
  -webkit-animation-delay: -100.8s;
          animation-delay: -100.8s;
}
.ball:nth-child(113)::after {
  background-color: #66c8ff;
}
.ball:nth-child(114) {
  -webkit-animation-delay: -101.7s;
          animation-delay: -101.7s;
}
.ball:nth-child(114)::after {
  background-color: #66c3ff;
}
.ball:nth-child(115) {
  -webkit-animation-delay: -102.6s;
          animation-delay: -102.6s;
}
.ball:nth-child(115)::after {
  background-color: #66bfff;
}
.ball:nth-child(116) {
  -webkit-animation-delay: -103.5s;
          animation-delay: -103.5s;
}
.ball:nth-child(116)::after {
  background-color: #66baff;
}
.ball:nth-child(117) {
  -webkit-animation-delay: -104.4s;
          animation-delay: -104.4s;
}
.ball:nth-child(117)::after {
  background-color: #66b6ff;
}
.ball:nth-child(118) {
  -webkit-animation-delay: -105.3s;
          animation-delay: -105.3s;
}
.ball:nth-child(118)::after {
  background-color: #66b1ff;
}
.ball:nth-child(119) {
  -webkit-animation-delay: -106.2s;
          animation-delay: -106.2s;
}
.ball:nth-child(119)::after {
  background-color: #66acff;
}
.ball:nth-child(120) {
  -webkit-animation-delay: -107.1s;
          animation-delay: -107.1s;
}
.ball:nth-child(120)::after {
  background-color: #66a8ff;
}
.ball:nth-child(121) {
  -webkit-animation-delay: -108s;
          animation-delay: -108s;
}
.ball:nth-child(121)::after {
  background-color: #66a3ff;
}
.ball:nth-child(122) {
  -webkit-animation-delay: -108.9s;
          animation-delay: -108.9s;
}
.ball:nth-child(122)::after {
  background-color: #669fff;
}
.ball:nth-child(123) {
  -webkit-animation-delay: -109.8s;
          animation-delay: -109.8s;
}
.ball:nth-child(123)::after {
  background-color: #669aff;
}
.ball:nth-child(124) {
  -webkit-animation-delay: -110.7s;
          animation-delay: -110.7s;
}
.ball:nth-child(124)::after {
  background-color: #6695ff;
}
.ball:nth-child(125) {
  -webkit-animation-delay: -111.6s;
          animation-delay: -111.6s;
}
.ball:nth-child(125)::after {
  background-color: #6691ff;
}
.ball:nth-child(126) {
  -webkit-animation-delay: -112.5s;
          animation-delay: -112.5s;
}
.ball:nth-child(126)::after {
  background-color: #668cff;
}
.ball:nth-child(127) {
  -webkit-animation-delay: -113.4s;
          animation-delay: -113.4s;
}
.ball:nth-child(127)::after {
  background-color: #6688ff;
}
.ball:nth-child(128) {
  -webkit-animation-delay: -114.3s;
          animation-delay: -114.3s;
}
.ball:nth-child(128)::after {
  background-color: #6683ff;
}
.ball:nth-child(129) {
  -webkit-animation-delay: -115.2s;
          animation-delay: -115.2s;
}
.ball:nth-child(129)::after {
  background-color: #667eff;
}
.ball:nth-child(130) {
  -webkit-animation-delay: -116.1s;
          animation-delay: -116.1s;
}
.ball:nth-child(130)::after {
  background-color: #667aff;
}
.ball:nth-child(131) {
  -webkit-animation-delay: -117s;
          animation-delay: -117s;
}
.ball:nth-child(131)::after {
  background-color: #6675ff;
}
.ball:nth-child(132) {
  -webkit-animation-delay: -117.9s;
          animation-delay: -117.9s;
}
.ball:nth-child(132)::after {
  background-color: #6671ff;
}
.ball:nth-child(133) {
  -webkit-animation-delay: -118.8s;
          animation-delay: -118.8s;
}
.ball:nth-child(133)::after {
  background-color: #666cff;
}
.ball:nth-child(134) {
  -webkit-animation-delay: -119.7s;
          animation-delay: -119.7s;
}
.ball:nth-child(134)::after {
  background-color: #6668ff;
}
.ball:nth-child(135) {
  -webkit-animation-delay: -120.6s;
          animation-delay: -120.6s;
}
.ball:nth-child(135)::after {
  background-color: #6966ff;
}
.ball:nth-child(136) {
  -webkit-animation-delay: -121.5s;
          animation-delay: -121.5s;
}
.ball:nth-child(136)::after {
  background-color: #6e66ff;
}
.ball:nth-child(137) {
  -webkit-animation-delay: -122.4s;
          animation-delay: -122.4s;
}
.ball:nth-child(137)::after {
  background-color: #7266ff;
}
.ball:nth-child(138) {
  -webkit-animation-delay: -123.3s;
          animation-delay: -123.3s;
}
.ball:nth-child(138)::after {
  background-color: #7766ff;
}
.ball:nth-child(139) {
  -webkit-animation-delay: -124.2s;
          animation-delay: -124.2s;
}
.ball:nth-child(139)::after {
  background-color: #7b66ff;
}
.ball:nth-child(140) {
  -webkit-animation-delay: -125.1s;
          animation-delay: -125.1s;
}
.ball:nth-child(140)::after {
  background-color: #8066ff;
}
.ball:nth-child(141) {
  -webkit-animation-delay: -126s;
          animation-delay: -126s;
}
.ball:nth-child(141)::after {
  background-color: #8566ff;
}
.ball:nth-child(142) {
  -webkit-animation-delay: -126.9s;
          animation-delay: -126.9s;
}
.ball:nth-child(142)::after {
  background-color: #8966ff;
}
.ball:nth-child(143) {
  -webkit-animation-delay: -127.8s;
          animation-delay: -127.8s;
}
.ball:nth-child(143)::after {
  background-color: #8e66ff;
}
.ball:nth-child(144) {
  -webkit-animation-delay: -128.7s;
          animation-delay: -128.7s;
}
.ball:nth-child(144)::after {
  background-color: #9266ff;
}
.ball:nth-child(145) {
  -webkit-animation-delay: -129.6s;
          animation-delay: -129.6s;
}
.ball:nth-child(145)::after {
  background-color: #9766ff;
}
.ball:nth-child(146) {
  -webkit-animation-delay: -130.5s;
          animation-delay: -130.5s;
}
.ball:nth-child(146)::after {
  background-color: #9c66ff;
}
.ball:nth-child(147) {
  -webkit-animation-delay: -131.4s;
          animation-delay: -131.4s;
}
.ball:nth-child(147)::after {
  background-color: #a066ff;
}
.ball:nth-child(148) {
  -webkit-animation-delay: -132.3s;
          animation-delay: -132.3s;
}
.ball:nth-child(148)::after {
  background-color: #a566ff;
}
.ball:nth-child(149) {
  -webkit-animation-delay: -133.2s;
          animation-delay: -133.2s;
}
.ball:nth-child(149)::after {
  background-color: #a966ff;
}
.ball:nth-child(150) {
  -webkit-animation-delay: -134.1s;
          animation-delay: -134.1s;
}
.ball:nth-child(150)::after {
  background-color: #ae66ff;
}
.ball:nth-child(151) {
  -webkit-animation-delay: -135s;
          animation-delay: -135s;
}
.ball:nth-child(151)::after {
  background-color: #b366ff;
}
.ball:nth-child(152) {
  -webkit-animation-delay: -135.9s;
          animation-delay: -135.9s;
}
.ball:nth-child(152)::after {
  background-color: #b766ff;
}
.ball:nth-child(153) {
  -webkit-animation-delay: -136.8s;
          animation-delay: -136.8s;
}
.ball:nth-child(153)::after {
  background-color: #bc66ff;
}
.ball:nth-child(154) {
  -webkit-animation-delay: -137.7s;
          animation-delay: -137.7s;
}
.ball:nth-child(154)::after {
  background-color: #c066ff;
}
.ball:nth-child(155) {
  -webkit-animation-delay: -138.6s;
          animation-delay: -138.6s;
}
.ball:nth-child(155)::after {
  background-color: #c566ff;
}
.ball:nth-child(156) {
  -webkit-animation-delay: -139.5s;
          animation-delay: -139.5s;
}
.ball:nth-child(156)::after {
  background-color: #c966ff;
}
.ball:nth-child(157) {
  -webkit-animation-delay: -140.4s;
          animation-delay: -140.4s;
}
.ball:nth-child(157)::after {
  background-color: #ce66ff;
}
.ball:nth-child(158) {
  -webkit-animation-delay: -141.3s;
          animation-delay: -141.3s;
}
.ball:nth-child(158)::after {
  background-color: #d366ff;
}
.ball:nth-child(159) {
  -webkit-animation-delay: -142.2s;
          animation-delay: -142.2s;
}
.ball:nth-child(159)::after {
  background-color: #d766ff;
}
.ball:nth-child(160) {
  -webkit-animation-delay: -143.1s;
          animation-delay: -143.1s;
}
.ball:nth-child(160)::after {
  background-color: #dc66ff;
}
.ball:nth-child(161) {
  -webkit-animation-delay: -144s;
          animation-delay: -144s;
}
.ball:nth-child(161)::after {
  background-color: #e066ff;
}
.ball:nth-child(162) {
  -webkit-animation-delay: -144.9s;
          animation-delay: -144.9s;
}
.ball:nth-child(162)::after {
  background-color: #e566ff;
}
.ball:nth-child(163) {
  -webkit-animation-delay: -145.8s;
          animation-delay: -145.8s;
}
.ball:nth-child(163)::after {
  background-color: #ea66ff;
}
.ball:nth-child(164) {
  -webkit-animation-delay: -146.7s;
          animation-delay: -146.7s;
}
.ball:nth-child(164)::after {
  background-color: #ee66ff;
}
.ball:nth-child(165) {
  -webkit-animation-delay: -147.6s;
          animation-delay: -147.6s;
}
.ball:nth-child(165)::after {
  background-color: #f366ff;
}
.ball:nth-child(166) {
  -webkit-animation-delay: -148.5s;
          animation-delay: -148.5s;
}
.ball:nth-child(166)::after {
  background-color: #f766ff;
}
.ball:nth-child(167) {
  -webkit-animation-delay: -149.4s;
          animation-delay: -149.4s;
}
.ball:nth-child(167)::after {
  background-color: #fc66ff;
}
.ball:nth-child(168) {
  -webkit-animation-delay: -150.3s;
          animation-delay: -150.3s;
}
.ball:nth-child(168)::after {
  background-color: #ff66fd;
}
.ball:nth-child(169) {
  -webkit-animation-delay: -151.2s;
          animation-delay: -151.2s;
}
.ball:nth-child(169)::after {
  background-color: #ff66f9;
}
.ball:nth-child(170) {
  -webkit-animation-delay: -152.1s;
          animation-delay: -152.1s;
}
.ball:nth-child(170)::after {
  background-color: #ff66f4;
}
.ball:nth-child(171) {
  -webkit-animation-delay: -153s;
          animation-delay: -153s;
}
.ball:nth-child(171)::after {
  background-color: #ff66f0;
}
.ball:nth-child(172) {
  -webkit-animation-delay: -153.9s;
          animation-delay: -153.9s;
}
.ball:nth-child(172)::after {
  background-color: #ff66eb;
}
.ball:nth-child(173) {
  -webkit-animation-delay: -154.8s;
          animation-delay: -154.8s;
}
.ball:nth-child(173)::after {
  background-color: #ff66e7;
}
.ball:nth-child(174) {
  -webkit-animation-delay: -155.7s;
          animation-delay: -155.7s;
}
.ball:nth-child(174)::after {
  background-color: #ff66e2;
}
.ball:nth-child(175) {
  -webkit-animation-delay: -156.6s;
          animation-delay: -156.6s;
}
.ball:nth-child(175)::after {
  background-color: #ff66dd;
}
.ball:nth-child(176) {
  -webkit-animation-delay: -157.5s;
          animation-delay: -157.5s;
}
.ball:nth-child(176)::after {
  background-color: #ff66d9;
}
.ball:nth-child(177) {
  -webkit-animation-delay: -158.4s;
          animation-delay: -158.4s;
}
.ball:nth-child(177)::after {
  background-color: #ff66d4;
}
.ball:nth-child(178) {
  -webkit-animation-delay: -159.3s;
          animation-delay: -159.3s;
}
.ball:nth-child(178)::after {
  background-color: #ff66d0;
}
.ball:nth-child(179) {
  -webkit-animation-delay: -160.2s;
          animation-delay: -160.2s;
}
.ball:nth-child(179)::after {
  background-color: #ff66cb;
}
.ball:nth-child(180) {
  -webkit-animation-delay: -161.1s;
          animation-delay: -161.1s;
}
.ball:nth-child(180)::after {
  background-color: #ff66c6;
}
.ball:nth-child(181) {
  -webkit-animation-delay: -162s;
          animation-delay: -162s;
}
.ball:nth-child(181)::after {
  background-color: #ff66c2;
}
.ball:nth-child(182) {
  -webkit-animation-delay: -162.9s;
          animation-delay: -162.9s;
}
.ball:nth-child(182)::after {
  background-color: #ff66bd;
}
.ball:nth-child(183) {
  -webkit-animation-delay: -163.8s;
          animation-delay: -163.8s;
}
.ball:nth-child(183)::after {
  background-color: #ff66b9;
}
.ball:nth-child(184) {
  -webkit-animation-delay: -164.7s;
          animation-delay: -164.7s;
}
.ball:nth-child(184)::after {
  background-color: #ff66b4;
}
.ball:nth-child(185) {
  -webkit-animation-delay: -165.6s;
          animation-delay: -165.6s;
}
.ball:nth-child(185)::after {
  background-color: #ff66af;
}
.ball:nth-child(186) {
  -webkit-animation-delay: -166.5s;
          animation-delay: -166.5s;
}
.ball:nth-child(186)::after {
  background-color: #ff66ab;
}
.ball:nth-child(187) {
  -webkit-animation-delay: -167.4s;
          animation-delay: -167.4s;
}
.ball:nth-child(187)::after {
  background-color: #ff66a6;
}
.ball:nth-child(188) {
  -webkit-animation-delay: -168.3s;
          animation-delay: -168.3s;
}
.ball:nth-child(188)::after {
  background-color: #ff66a2;
}
.ball:nth-child(189) {
  -webkit-animation-delay: -169.2s;
          animation-delay: -169.2s;
}
.ball:nth-child(189)::after {
  background-color: #ff669d;
}
.ball:nth-child(190) {
  -webkit-animation-delay: -170.1s;
          animation-delay: -170.1s;
}
.ball:nth-child(190)::after {
  background-color: #ff6698;
}
.ball:nth-child(191) {
  -webkit-animation-delay: -171s;
          animation-delay: -171s;
}
.ball:nth-child(191)::after {
  background-color: #ff6694;
}
.ball:nth-child(192) {
  -webkit-animation-delay: -171.9s;
          animation-delay: -171.9s;
}
.ball:nth-child(192)::after {
  background-color: #ff668f;
}
.ball:nth-child(193) {
  -webkit-animation-delay: -172.8s;
          animation-delay: -172.8s;
}
.ball:nth-child(193)::after {
  background-color: #ff668b;
}
.ball:nth-child(194) {
  -webkit-animation-delay: -173.7s;
          animation-delay: -173.7s;
}
.ball:nth-child(194)::after {
  background-color: #ff6686;
}
.ball:nth-child(195) {
  -webkit-animation-delay: -174.6s;
          animation-delay: -174.6s;
}
.ball:nth-child(195)::after {
  background-color: #ff6682;
}
.ball:nth-child(196) {
  -webkit-animation-delay: -175.5s;
          animation-delay: -175.5s;
}
.ball:nth-child(196)::after {
  background-color: #ff667d;
}
.ball:nth-child(197) {
  -webkit-animation-delay: -176.4s;
          animation-delay: -176.4s;
}
.ball:nth-child(197)::after {
  background-color: #ff6678;
}
.ball:nth-child(198) {
  -webkit-animation-delay: -177.3s;
          animation-delay: -177.3s;
}
.ball:nth-child(198)::after {
  background-color: #ff6674;
}
.ball:nth-child(199) {
  -webkit-animation-delay: -178.2s;
          animation-delay: -178.2s;
}
.ball:nth-child(199)::after {
  background-color: #ff666f;
}
.ball:nth-child(200) {
  -webkit-animation-delay: -179.1s;
          animation-delay: -179.1s;
}
.ball:nth-child(200)::after {
  background-color: #ff666b;
}
@-webkit-keyframes ballLoop {
  from {
    transform: rotate(0deg) translateY(9em) rotateX(0deg) translateZ(3em) rotateX(5400deg) rotate(360deg);
  }
  to {
    transform: rotate(360deg) translateY(9em) rotateX(5400deg) translateZ(3em) rotateX(0deg) rotate(0deg);
  }
}
@keyframes ballLoop {
  from {
    transform: rotate(0deg) translateY(9em) rotateX(0deg) translateZ(3em) rotateX(5400deg) rotate(360deg);
  }
  to {
    transform: rotate(360deg) translateY(9em) rotateX(5400deg) translateZ(3em) rotateX(0deg) rotate(0deg);
  }
}
.ball::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-image: radial-gradient(circle at top, #0000, #000);
  -webkit-animation: ballComp 45s infinite linear;
          animation: ballComp 45s infinite linear;
  box-shadow: 0 0 1em #000;
}

@-webkit-keyframes ringRotate {
  from {
    transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
  to {
    transform: rotateX(360deg) rotateY(-360deg) rotateZ(720deg);
  }
}

@keyframes ringRotate {
  from {
    transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
  to {
    transform: rotateX(360deg) rotateY(-360deg) rotateZ(720deg);
  }
}
@-webkit-keyframes ballComp {
  from {
    transform: rotateZ(720deg) rotateY(-360deg) rotateX(360deg);
  }
  to {
    transform: rotateZ(0deg) rotateY(0deg) rotateX(0deg);
  }
}
@keyframes ballComp {
  from {
    transform: rotateZ(720deg) rotateY(-360deg) rotateX(360deg);
  }
  to {
    transform: rotateZ(0deg) rotateY(0deg) rotateX(0deg);
  }
}