div+css实现水中气泡上浮动画效果代码

代码语言:html

所属分类:动画

代码描述:div+css实现水中气泡上浮动画效果代码

代码标签: div css 水中 气泡 上浮 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  


  
  
<style>
body {
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: linear-gradient(180deg, #4291d1, #021d33);
}

.bubbles {
  position: absolute;
  width: 120vw;
  height: 100vh;
  left: -10vw;
}

.bubble {
  position: absolute;
  top: -5vmin;
}
.bubble:nth-child(1) {
  opacity: 0.57;
  width: 16px;
  height: 16px;
  left: 80.4vw;
  animation: fall-1 48s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(1) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-1 {
  7.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 9.3vw;
  }
}
.bubble:nth-child(2) {
  opacity: 0.01;
  width: 6px;
  height: 6px;
  left: 9.7vw;
  animation: fall-2 24s -19.5s ease-in infinite reverse;
}
.bubble:nth-child(2) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-2 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 92.1vw;
  }
}
.bubble:nth-child(3) {
  opacity: 0.18;
  width: 14px;
  height: 14px;
  left: 104.1vw;
  animation: fall-3 60s -3s ease-in infinite reverse;
}
.bubble:nth-child(3) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-3 {
  1.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 9.6vw;
  }
}
.bubble:nth-child(4) {
  opacity: 0.46;
  width: 8px;
  height: 8px;
  left: 109.8vw;
  animation: fall-4 12s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(4) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-4 {
  6.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 117.3vw;
  }
}
.bubble:nth-child(5) {
  opacity: 0.5;
  width: 14px;
  height: 14px;
  left: 0.4vw;
  animation: fall-5 60s -24s ease-in infinite reverse;
}
.bubble:nth-child(5) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-5 {
  5.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 20vw;
  }
}
.bubble:nth-child(6) {
  opacity: 0.63;
  width: 18px;
  height: 18px;
  left: 23.8vw;
  animation: fall-6 12s -31.5s ease-in infinite reverse;
}
.bubble:nth-child(6) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-6 {
  5.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 42.5vw;
  }
}
.bubble:nth-child(7) {
  opacity: 0.43;
  width: 16px;
  height: 16px;
  left: 55.8vw;
  animation: fall-7 36s -30s ease-in infinite reverse;
}
.bubble:nth-child(7) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-7 {
  5.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 7.3vw;
  }
}
.bubble:nth-child(8) {
  opacity: 0.6;
  width: 20px;
  height: 20px;
  left: 12.3vw;
  animation: fall-8 60s -15s ease-in infinite reverse;
}
.bubble:nth-child(8) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-8 {
  1.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 53.5vw;
  }
}
.bubble:nth-child(9) {
  opacity: 0.06;
  width: 14px;
  height: 14px;
  left: 31.4vw;
  animation: fall-9 48s -4.5s ease-in infinite reverse;
}
.bubble:nth-child(9) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-9 {
  4.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 36.5vw;
  }
}
.bubble:nth-child(10) {
  opacity: 0.41;
  width: 14px;
  height: 14px;
  left: 58vw;
  animation: fall-10 36s -9s ease-in infinite reverse;
}
.bubble:nth-child(10) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-10 {
  7.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 98.6vw;
  }
}
.bubble:nth-child(11) {
  opacity: 0.31;
  width: 16px;
  height: 16px;
  left: 48.7vw;
  animation: fall-11 36s -18s ease-in infinite reverse;
}
.bubble:nth-child(11) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-11 {
  2.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 30.9vw;
  }
}
.bubble:nth-child(12) {
  opacity: 0.27;
  width: 12px;
  height: 12px;
  left: 14.8vw;
  animation: fall-12 60s -33s ease-in infinite reverse;
}
.bubble:nth-child(12) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-12 {
  4.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 97.7vw;
  }
}
.bubble:nth-child(13) {
  opacity: 0.43;
  width: 8px;
  height: 8px;
  left: 61.8vw;
  animation: fall-13 12s -10.5s ease-in infinite reverse;
}
.bubble:nth-child(13) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-13 {
  4.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 59.3vw;
  }
}
.bubble:nth-child(14) {
  opacity: 0.24;
  width: 14px;
  height: 14px;
  left: 105.1vw;
  animation: fall-14 24s -12s ease-in infinite reverse;
}
.bubble:nth-child(14) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-14 {
  4.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 92.1vw;
  }
}
.bubble:nth-child(15) {
  opacity: 0.57;
  width: 18px;
  height: 18px;
  left: 2.5vw;
  animation: fall-15 36s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(15) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-15 {
  2.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 107.1vw;
  }
}
.bubble:nth-child(16) {
  opacity: 0.05;
  width: 16px;
  height: 16px;
  left: 114.4vw;
  animation: fall-16 60s -31.5s ease-in infinite reverse;
}
.bubble:nth-child(16) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-16 {
  4.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 66.5vw;
  }
}
.bubble:nth-child(17) {
  opacity: 0.51;
  width: 20px;
  height: 20px;
  left: 44.9vw;
  animation: fall-17 48s -18s ease-in infinite reverse;
}
.bubble:nth-child(17) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-17 {
  7.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 57.6vw;
  }
}
.bubble:nth-child(18) {
  opacity: 0.75;
  width: 14px;
  height: 14px;
  left: 43.9vw;
  animation: fall-18 60s -12s ease-in infinite reverse;
}
.bubble:nth-child(18) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-18 {
  0.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 16.7vw;
  }
}
.bubble:nth-child(19) {
  opacity: 0.26;
  width: 14px;
  height: 14px;
  left: 42.4vw;
  animation: fall-19 60s -9s ease-in infinite reverse;
}
.bubble:nth-child(19) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-19 {
  2.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 97.6vw;
  }
}
.bubble:nth-child(20) {
  opacity: 0.51;
  width: 8px;
  height: 8px;
  left: 37.8vw;
  animation: fall-20 24s -3s ease-in infinite reverse;
}
.bubble:nth-child(20) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-20 {
  7.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 114.6vw;
  }
}
.bubble:nth-child(21) {
  opacity: 0.21;
  width: 4px;
  height: 4px;
  left: 40.9vw;
  animation: fall-21 60s -30s ease-in infinite reverse;
}
.bubble:nth-child(21) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-21 {
  8.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 59.1vw;
  }
}
.bubble:nth-child(22) {
  opacity: 0.68;
  width: 20px;
  height: 20px;
  left: 33.2vw;
  animation: fall-22 12s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(22) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-22 {
  3.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 52.6vw;
  }
}
.bubble:nth-child(23) {
  opacity: 0.88;
  width: 8px;
  height: 8px;
  left: 76vw;
  animation: fall-23 60s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(23) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-23 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 55.3vw;
  }
}
.bubble:nth-child(24) {
  opacity: 0.25;
  width: 2px;
  height: 2px;
  left: 105.6vw;
  animation: fall-24 36s -27s ease-in infinite reverse;
}
.bubble:nth-child(24) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-24 {
  5.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 27.4vw;
  }
}
.bubble:nth-child(25) {
  opacity: 0.08;
  width: 8px;
  height: 8px;
  left: 115.7vw;
  animation: fall-25 48s -13.5s ease-in infinite reverse;
}
.bubble:nth-child(25) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-25 {
  0.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 9.2vw;
  }
}
.bubble:nth-child(26) {
  opacity: 0.55;
  width: 18px;
  height: 18px;
  left: 108.5vw;
  animation: fall-26 24s -4.5s ease-in infinite reverse;
}
.bubble:nth-child(26) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-26 {
  3.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 41.1vw;
  }
}
.bubble:nth-child(27) {
  opacity: 0.58;
  width: 14px;
  height: 14px;
  left: 98.5vw;
  animation: fall-27 60s -3s ease-in infinite reverse;
}
.bubble:nth-child(27) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-27 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 40.3vw;
  }
}
.bubble:nth-child(28) {
  opacity: 0.85;
  width: 18px;
  height: 18px;
  left: 31vw;
  animation: fall-28 48s -25.5s ease-in infinite reverse;
}
.bubble:nth-child(28) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-28 {
  3.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 94.1vw;
  }
}
.bubble:nth-child(29) {
  opacity: 0.44;
  width: 4px;
  height: 4px;
  left: 65.9vw;
  animation: fall-29 60s -25.5s ease-in infinite reverse;
}
.bubble:nth-child(29) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-29 {
  5.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 41.4vw;
  }
}
.bubble:nth-child(30) {
  opacity: 0.72;
  width: 10px;
  height: 10px;
  left: 88.9vw;
  animation: fall-30 24s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(30) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-30 {
  2.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 10.5vw;
  }
}
.bubble:nth-child(31) {
  opacity: 0.08;
  width: 4px;
  height: 4px;
  left: 24.4vw;
  animation: fall-31 60s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(31) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-31 {
  3% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 107.7vw;
  }
}
.bubble:nth-child(32) {
  opacity: 0.45;
  width: 14px;
  height: 14px;
  left: 3.1vw;
  animation: fall-32 24s -13.5s ease-in infinite reverse;
}
.bubble:nth-child(32) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-32 {
  2% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 5.1vw;
  }
}
.bubble:nth-child(33) {
  opacity: 0.09;
  width: 6px;
  height: 6px;
  left: 40.3vw;
  animation: fall-33 36s -31.5s ease-in infinite reverse;
}
.bubble:nth-child(33) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-33 {
  6.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 8.2vw;
  }
}
.bubble:nth-child(34) {
  opacity: 0.71;
  width: 10px;
  height: 10px;
  left: 34vw;
  animation: fall-34 24s -37.5s ease-in infinite reverse;
}
.bubble:nth-child(34) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-34 {
  5.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 39.3vw;
  }
}
.bubble:nth-child(35) {
  opacity: 0.07;
  width: 20px;
  height: 20px;
  left: 18.4vw;
  animation: fall-35 36s -15s ease-in infinite reverse;
}
.bubble:nth-child(35) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-35 {
  2.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 70.1vw;
  }
}
.bubble:nth-child(36) {
  opacity: 0.23;
  width: 18px;
  height: 18px;
  left: 55vw;
  animation: fall-36 36s -25.5s ease-in infinite reverse;
}
.bubble:nth-child(36) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-36 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 26.6vw;
  }
}
.bubble:nth-child(37) {
  opacity: 0.82;
  width: 6px;
  height: 6px;
  left: 50vw;
  animation: fall-37 24s -6s ease-in infinite reverse;
}
.bubble:nth-child(37) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-37 {
  6% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 68.1vw;
  }
}
.bubble:nth-child(38) {
  opacity: 0.55;
  width: 8px;
  height: 8px;
  left: 46.9vw;
  animation: fall-38 48s -37.5s ease-in infinite reverse;
}
.bubble:nth-child(38) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-38 {
  1.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 75.8vw;
  }
}
.bubble:nth-child(39) {
  opacity: 0.63;
  width: 14px;
  height: 14px;
  left: 66.3vw;
  animation: fall-39 48s -24s ease-in infinite reverse;
}
.bubble:nth-child(39) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-39 {
  0.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 113.3vw;
  }
}
.bubble:nth-child(40) {
  opacity: 0.17;
  width: 6px;
  height: 6px;
  left: 118.5vw;
  animation: fall-40 60s -3s ease-in infinite reverse;
}
.bubble:nth-child(40) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-40 {
  2.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 38.5vw;
  }
}
.bubble:nth-child(41) {
  opacity: 0.2;
  width: 14px;
  height: 14px;
  left: 58.2vw;
  animation: fall-41 36s -24s ease-in infinite reverse;
}
.bubble:nth-child(41) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-41 {
  6.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 106.8vw;
  }
}
.bubble:nth-child(42) {
  opacity: 0.32;
  width: 16px;
  height: 16px;
  left: 31.6vw;
  animation: fall-42 48s -34.5s ease-in infinite reverse;
}
.bubble:nth-child(42) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-42 {
  5.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 41.7vw;
  }
}
.bubble:nth-child(43) {
  opacity: 0.86;
  width: 18px;
  height: 18px;
  left: 108vw;
  animation: fall-43 48s -10.5s ease-in infinite reverse;
}
.bubble:nth-child(43) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-43 {
  3% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 56.8vw;
  }
}
.bubble:nth-child(44) {
  opacity: 0.6;
  width: 8px;
  height: 8px;
  left: 28.6vw;
  animation: fall-44 48s -12s ease-in infinite reverse;
}
.bubble:nth-child(44) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-44 {
  2% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 50.5vw;
  }
}
.bubble:nth-child(45) {
  opacity: 0.36;
  width: 20px;
  height: 20px;
  left: 85.5vw;
  animation: fall-45 48s -9s ease-in infinite reverse;
}
.bubble:nth-child(45) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-45 {
  0.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 30.8vw;
  }
}
.bubble:nth-child(46) {
  opacity: 0.61;
  width: 8px;
  height: 8px;
  left: 6.5vw;
  animation: fall-46 12s -37.5s ease-in infinite reverse;
}
.bubble:nth-child(46) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-46 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 17.4vw;
  }
}
.bubble:nth-child(47) {
  opacity: 0.64;
  width: 12px;
  height: 12px;
  left: 85.4vw;
  animation: fall-47 60s -27s ease-in infinite reverse;
}
.bubble:nth-child(47) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-47 {
  4.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 115.3vw;
  }
}
.bubble:nth-child(48) {
  opacity: 0.22;
  width: 2px;
  height: 2px;
  left: 88.5vw;
  animation: fall-48 48s -22.5s ease-in infinite reverse;
}
.bubble:nth-child(48) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-48 {
  1% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 40.2vw;
  }
}
.bubble:nth-child(49) {
  opacity: 0.79;
  width: 20px;
  height: 20px;
  left: 97.2vw;
  animation: fall-49 60s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(49) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-49 {
  3.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 84vw;
  }
}
.bubble:nth-child(50) {
  opacity: 0.81;
  width: 8px;
  height: 8px;
  left: 99.3vw;
  animation: fall-50 48s -19.5s ease-in infinite reverse;
}
.bubble:nth-child(50) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-50 {
  6.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 118.9vw;
  }
}
.bubble:nth-child(51) {
  opacity: 0.07;
  width: 14px;
  height: 14px;
  left: 0.4vw;
  animation: fall-51 36s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(51) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-51 {
  6.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 4.5vw;
  }
}
.bubble:nth-child(52) {
  opacity: 0.6;
  width: 8px;
  height: 8px;
  left: 46vw;
  animation: fall-52 60s -33s ease-in infinite reverse;
}
.bubble:nth-child(52) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-52 {
  2.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 61.8vw;
  }
}
.bubble:nth-child(53) {
  opacity: 0.9;
  width: 20px;
  height: 20px;
  left: 95.6vw;
  animation: fall-53 48s -18s ease-in infinite reverse;
}
.bubble:nth-child(53) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-53 {
  5.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 91.3vw;
  }
}
.bubble:nth-child(54) {
  opacity: 0.73;
  width: 14px;
  height: 14px;
  left: 30.1vw;
  animation: fall-54 48s -36s ease-in infinite reverse;
}
.bubble:nth-child(54) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-54 {
  8.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 1.8vw;
  }
}
.bubble:nth-child(55) {
  opacity: 0.54;
  width: 20px;
  height: 20px;
  left: 11vw;
  animation: fall-55 36s -22.5s ease-in infinite reverse;
}
.bubble:nth-child(55) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-55 {
  3% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 91.2vw;
  }
}
.bubble:nth-child(56) {
  opacity: 0.51;
  width: 10px;
  height: 10px;
  left: 13.6vw;
  animation: fall-56 24s -30s ease-in infinite reverse;
}
.bubble:nth-child(56) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-56 {
  1.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 76.6vw;
  }
}
.bubble:nth-child(57) {
  opacity: 0.73;
  width: 8px;
  height: 8px;
  left: 75.7vw;
  animation: fall-57 36s -30s ease-in infinite reverse;
}
.bubble:nth-child(57) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-57 {
  5.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 35.5vw;
  }
}
.bubble:nth-child(58) {
  opacity: 0.25;
  width: 10px;
  height: 10px;
  left: 15.7vw;
  animation: fall-58 36s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(58) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-58 {
  5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 38.7vw;
  }
}
.bubble:nth-child(59) {
  opacity: 0.47;
  width: 8px;
  height: 8px;
  left: 32.2vw;
  animation: fall-59 60s -15s ease-in infinite reverse;
}
.bubble:nth-child(59) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-59 {
  4.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 28.8vw;
  }
}
.bubble:nth-child(60) {
  opacity: 0.77;
  width: 6px;
  height: 6px;
  left: 82.4vw;
  animation: fall-60 12s -33s ease-in infinite reverse;
}
.bubble:nth-child(60) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-60 {
  2.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 78.1vw;
  }
}
.bubble:nth-child(61) {
  opacity: 0.61;
  width: 6px;
  height: 6px;
  left: 109.3vw;
  animation: fall-61 24s -33s ease-in infinite reverse;
}
.bubble:nth-child(61) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-61 {
  5.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 76.4vw;
  }
}
.bubble:nth-child(62) {
  opacity: 0.39;
  width: 8px;
  height: 8px;
  left: 61.8vw;
  animation: fall-62 48s -36s ease-in infinite reverse;
}
.bubble:nth-child(62) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-62 {
  2% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 93.6vw;
  }
}
.bubble:nth-child(63) {
  opacity: 0.19;
  width: 10px;
  height: 10px;
  left: 48.6vw;
  animation: fall-63 12s -27s ease-in infinite reverse;
}
.bubble:nth-child(63) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-63 {
  0.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 29.9vw;
  }
}
.bubble:nth-child(64) {
  opacity: 0.13;
  width: 8px;
  height: 8px;
  left: 53vw;
  animation: fall-64 48s -21s ease-in infinite reverse;
}
.bubble:nth-child(64) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-64 {
  2.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 107.2vw;
  }
}
.bubble:nth-child(65) {
  opacity: 0.67;
  width: 4px;
  height: 4px;
  left: 5.8vw;
  animation: fall-65 60s -21s ease-in infinite reverse;
}
.bubble:nth-child(65) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-65 {
  4.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 71.5vw;
  }
}
.bubble:nth-child(66) {
  opacity: 0.42;
  width: 2px;
  height: 2px;
  left: 6.3vw;
  animation: fall-66 36s -6s ease-in infinite reverse;
}
.bubble:nth-child(66) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-66 {
  4.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 20.3vw;
  }
}
.bubble:nth-child(67) {
  opacity: 0.74;
  width: 10px;
  height: 10px;
  left: 111vw;
  animation: fall-67 36s -33s ease-in infinite reverse;
}
.bubble:nth-child(67) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-67 {
  2.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 37.5vw;
  }
}
.bubble:nth-child(68) {
  opacity: 0.25;
  width: 4px;
  height: 4px;
  left: 0.2vw;
  animation: fall-68 12s -13.5s ease-in infinite reverse;
}
.bubble:nth-child(68) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-68 {
  6.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 110.8vw;
  }
}
.bubble:nth-child(69) {
  opacity: 0.28;
  width: 16px;
  height: 16px;
  left: 61.2vw;
  animation: fall-69 60s -34.5s ease-in infinite reverse;
}
.bubble:nth-child(69) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-69 {
  1.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 3vw;
  }
}
.bubble:nth-child(70) {
  opacity: 0.65;
  width: 4px;
  height: 4px;
  left: 110.3vw;
  animation: fall-70 48s -15s ease-in infinite reverse;
}
.bubble:nth-child(70) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-70 {
  5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 34vw;
  }
}
.bubble:nth-child(71) {
  opacity: 0.56;
  width: 4px;
  height: 4px;
  left: 58.4vw;
  animation: fall-71 60s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(71) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-71 {
  3.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 72vw;
  }
}
.bubble:nth-child(72) {
  opacity: 0.69;
  width: 14px;
  height: 14px;
  left: 61vw;
  animation: fall-72 60s -33s ease-in infinite reverse;
}
.bubble:nth-child(72) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-72 {
  0.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 104.2vw;
  }
}
.bubble:nth-child(73) {
  opacity: 0.18;
  width: 20px;
  height: 20px;
  left: 65.4vw;
  animation: fall-73 36s -6s ease-in infinite reverse;
}
.bubble:nth-child(73) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-73 {
  3.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 13.9vw;
  }
}
.bubble:nth-child(74) {
  opacity: 0.84;
  width: 12px;
  height: 12px;
  left: 14.8vw;
  animation: fall-74 48s -36s ease-in infinite reverse;
}
.bubble:nth-child(74) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-74 {
  7.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 118.2vw;
  }
}
.bubble:nth-child(75) {
  opacity: 0.22;
  width: 6px;
  height: 6px;
  left: 117.8vw;
  animation: fall-75 12s -4.5s ease-in infinite reverse;
}
.bubble:nth-child(75) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-75 {
  6.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 20.3vw;
  }
}
.bubble:nth-child(76) {
  opacity: 0.28;
  width: 8px;
  height: 8px;
  left: 113.8vw;
  animation: fall-76 60s -22.5s ease-in infinite reverse;
}
.bubble:nth-child(76) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-76 {
  8% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 31.9vw;
  }
}
.bubble:nth-child(77) {
  opacity: 0.29;
  width: 16px;
  height: 16px;
  left: 94.2vw;
  animation: fall-77 12s -3s ease-in infinite reverse;
}
.bubble:nth-child(77) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-77 {
  2.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 7.9vw;
  }
}
.bubble:nth-child(78) {
  opacity: 0.3;
  width: 4px;
  height: 4px;
  left: 28.9vw;
  animation: fall-78 24s -31.5s ease-in infinite reverse;
}
.bubble:nth-child(78) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-78 {
  2.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 87.4vw;
  }
}
.bubble:nth-child(79) {
  opacity: 0.14;
  width: 12px;
  height: 12px;
  left: 94.8vw;
  animation: fall-79 12s -36s ease-in infinite reverse;
}
.bubble:nth-child(79) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-79 {
  5.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 18.5vw;
  }
}
.bubble:nth-child(80) {
  opacity: 0.26;
  width: 6px;
  height: 6px;
  left: 9vw;
  animation: fall-80 60s -6s ease-in infinite reverse;
}
.bubble:nth-child(80) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-80 {
  1.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 68.9vw;
  }
}
.bubble:nth-child(81) {
  opacity: 0.68;
  width: 4px;
  height: 4px;
  left: 86.6vw;
  animation: fall-81 12s -15s ease-in infinite reverse;
}
.bubble:nth-child(81) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-81 {
  0.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 89.3vw;
  }
}
.bubble:nth-child(82) {
  opacity: 0.22;
  width: 14px;
  height: 14px;
  left: 108.9vw;
  animation: fall-82 24s -33s ease-in infinite reverse;
}
.bubble:nth-child(82) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-82 {
  7.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 5.6vw;
  }
}
.bubble:nth-child(83) {
  opacity: 0.44;
  width: 8px;
  height: 8px;
  left: 36.7vw;
  animation: fall-83 48s -12s ease-in infinite reverse;
}
.bubble:nth-child(83) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-83 {
  1.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 36.7vw;
  }
}
.bubble:nth-child(84) {
  opacity: 0.71;
  width: 4px;
  height: 4px;
  left: 81.1vw;
  animation: fall-84 12s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(84) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-84 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 43vw;
  }
}
.bubble:nth-child(85) {
  opacity: 0.46;
  width: 16px;
  height: 16px;
  left: 75.8vw;
  animation: fall-85 12s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(85) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-85 {
  2.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 19vw;
  }
}
.bubble:nth-child(86) {
  opacity: 0.19;
  width: 12px;
  height: 12px;
  left: 79.1vw;
  animation: fall-86 12s -34.5s ease-in infinite reverse;
}
.bubble:nth-child(86) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-86 {
  4.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 98.6vw;
  }
}
.bubble:nth-child(87) {
  opacity: 0.82;
  width: 12px;
  height: 12px;
  left: 104.8vw;
  animation: fall-87 12s -12s ease-in infinite reverse;
}
.bubble:nth-child(87) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-87 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 54.4vw;
  }
}
.bubble:nth-child(88) {
  opacity: 0.46;
  width: 10px;
  height: 10px;
  left: 15.6vw;
  animation: fall-88 12s -13.5s ease-in infinite reverse;
}
.bubble:nth-child(88) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-88 {
  3.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 64vw;
  }
}
.bubble:nth-child(89) {
  opacity: 0.09;
  width: 18px;
  height: 18px;
  left: 108.3vw;
  animation: fall-89 36s -34.5s ease-in infinite reverse;
}
.bubble:nth-child(89) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-89 {
  0.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 118.2vw;
  }
}
.bubble:nth-child(90) {
  opacity: 0.49;
  width: 10px;
  height: 10px;
  left: 100.7vw;
  animation: fall-90 48s -27s ease-in infinite reverse;
}
.bubble:nth-child(90) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-90 {
  7.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 27.2vw;
  }
}
.bubble:nth-child(91) {
  opacity: 0.26;
  width: 10px;
  height: 10px;
  left: 106.9vw;
  animation: fall-91 12s -33s ease-in infinite reverse;
}
.bubble:nth-child(91) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-91 {
  7.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 43.5vw;
  }
}
.bubble:nth-child(92) {
  opacity: 0.33;
  width: 4px;
  height: 4px;
  left: 5.5vw;
  animation: fall-92 36s -27s ease-in infinite reverse;
}
.bubble:nth-child(92) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-92 {
  8.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 118.1vw;
  }
}
.bubble:nth-child(93) {
  opacity: 0.37;
  width: 16px;
  height: 16px;
  left: 72vw;
  animation: fall-93 48s -9s ease-in infinite reverse;
}
.bubble:nth-child(93) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-93 {
  1% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 45.3vw;
  }
}
.bubble:nth-child(94) {
  opacity: 0.4;
  width: 6px;
  height: 6px;
  left: 108.2vw;
  animation: fall-94 12s -21s ease-in infinite reverse;
}
.bubble:nth-child(94) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-94 {
  1% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 51.2vw;
  }
}
.bubble:nth-child(95) {
  opacity: 0.23;
  width: 12px;
  height: 12px;
  left: 9.5vw;
  animation: fall-95 60s -3s ease-in infinite reverse;
}
.bubble:nth-child(95) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-95 {
  5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 39.2vw;
  }
}
.bubble:nth-child(96) {
  opacity: 0.26;
  width: 20px;
  height: 20px;
  left: 81.3vw;
  animation: fall-96 60s -19.5s ease-in infinite reverse;
}
.bubble:nth-child(96) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-96 {
  5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 111.1vw;
  }
}
.bubble:nth-child(97) {
  opacity: 0.52;
  width: 6px;
  height: 6px;
  left: 110vw;
  animation: fall-97 24s -24s ease-in infinite reverse;
}
.bubble:nth-child(97) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-97 {
  6.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 70.4vw;
  }
}
.bubble:nth-child(98) {
  opacity: 0.55;
  width: 12px;
  height: 12px;
  left: 84.8vw;
  animation: fall-98 48s -27s ease-in infinite reverse;
}
.bubble:nth-child(98) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-98 {
  7.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 61vw;
  }
}
.bubble:nth-child(99) {
  opacity: 0.02;
  width: 12px;
  height: 12px;
  left: 3.1vw;
  animation: fall-99 36s -18s ease-in infinite reverse;
}
.bubble:nth-child(99) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-99 {
  5.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 64.6vw;
  }
}
.bubble:nth-child(100) {
  opacity: 0.61;
  width: 18px;
  height: 18px;
  left: 58.9vw;
  animation: fall-100 48s -31.5s ease-in infinite reverse;
}
.bubble:nth-child(100) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-100 {
  1% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 46.7vw;
  }
}
.bubble:nth-child(101) {
  opacity: 0.28;
  width: 10px;
  height: 10px;
  left: 21.6vw;
  animation: fall-101 36s -37.5s ease-in infinite reverse;
}
.bubble:nth-child(101) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-101 {
  8.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 9vw;
  }
}
.bubble:nth-child(102) {
  opacity: 0.17;
  width: 16px;
  height: 16px;
  left: 70.8vw;
  animation: fall-102 36s -1.5s ease-in infinite reverse;
}
.bubble:nth-child(102) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-102 {
  4.8333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 85.4vw;
  }
}
.bubble:nth-child(103) {
  opacity: 0.85;
  width: 6px;
  height: 6px;
  left: 89.5vw;
  animation: fall-103 12s -18s ease-in infinite reverse;
}
.bubble:nth-child(103) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-103 {
  6% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 78.5vw;
  }
}
.bubble:nth-child(104) {
  opacity: 0.45;
  width: 4px;
  height: 4px;
  left: 7.1vw;
  animation: fall-104 36s -10.5s ease-in infinite reverse;
}
.bubble:nth-child(104) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-104 {
  0.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 115.6vw;
  }
}
.bubble:nth-child(105) {
  opacity: 0.79;
  width: 14px;
  height: 14px;
  left: 18.3vw;
  animation: fall-105 12s -7.5s ease-in infinite reverse;
}
.bubble:nth-child(105) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-105 {
  0.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 61vw;
  }
}
.bubble:nth-child(106) {
  opacity: 0.73;
  width: 6px;
  height: 6px;
  left: 20.7vw;
  animation: fall-106 36s -15s ease-in infinite reverse;
}
.bubble:nth-child(106) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-106 {
  1.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 49.1vw;
  }
}
.bubble:nth-child(107) {
  opacity: 0.56;
  width: 20px;
  height: 20px;
  left: 83.3vw;
  animation: fall-107 12s -15s ease-in infinite reverse;
}
.bubble:nth-child(107) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-107 {
  8% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 116.6vw;
  }
}
.bubble:nth-child(108) {
  opacity: 0.56;
  width: 8px;
  height: 8px;
  left: 92.5vw;
  animation: fall-108 48s -34.5s ease-in infinite reverse;
}
.bubble:nth-child(108) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-108 {
  6% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 118.2vw;
  }
}
.bubble:nth-child(109) {
  opacity: 0.15;
  width: 16px;
  height: 16px;
  left: 95.5vw;
  animation: fall-109 24s -28.5s ease-in infinite reverse;
}
.bubble:nth-child(109) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-109 {
  3.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 88vw;
  }
}
.bubble:nth-child(110) {
  opacity: 0.11;
  width: 20px;
  height: 20px;
  left: 0.8vw;
  animation: fall-110 36s -15s ease-in infinite reverse;
}
.bubble:nth-child(110) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-110 {
  7.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 50vw;
  }
}
.bubble:nth-child(111) {
  opacity: 0.34;
  width: 8px;
  height: 8px;
  left: 113.5vw;
  animation: fall-111 24s -16.5s ease-in infinite reverse;
}
.bubble:nth-child(111) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-111 {
  7.1666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 45vw;
  }
}
.bubble:nth-child(112) {
  opacity: 0.84;
  width: 20px;
  height: 20px;
  left: 46.1vw;
  animation: fall-112 24s -7.5s ease-in infinite reverse;
}
.bubble:nth-child(112) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-112 {
  7% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 26vw;
  }
}
.bubble:nth-child(113) {
  opacity: 0.37;
  width: 6px;
  height: 6px;
  left: 70.8vw;
  animation: fall-113 24s -30s ease-in infinite reverse;
}
.bubble:nth-child(113) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-113 {
  4.6666666667% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 99.5vw;
  }
}
.bubble:nth-child(114) {
  opacity: 0.5;
  width: 4px;
  height: 4px;
  left: 92.6vw;
  animation: fall-114 12s -9s ease-in infinite reverse;
}
.bubble:nth-child(114) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-114 {
  6.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 104.3vw;
  }
}
.bubble:nth-child(115) {
  opacity: 0.22;
  width: 16px;
  height: 16px;
  left: 93.7vw;
  animation: fall-115 48s -24s ease-in infinite reverse;
}
.bubble:nth-child(115) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-115 {
  2.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 97.5vw;
  }
}
.bubble:nth-child(116) {
  opacity: 0.25;
  width: 6px;
  height: 6px;
  left: 47.7vw;
  animation: fall-116 24s -3s ease-in infinite reverse;
}
.bubble:nth-child(116) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-116 {
  7% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 28.3vw;
  }
}
.bubble:nth-child(117) {
  opacity: 0.7;
  width: 8px;
  height: 8px;
  left: 94.3vw;
  animation: fall-117 36s -10.5s ease-in infinite reverse;
}
.bubble:nth-child(117) span {
  filter: drop-shadow(0 0 1px #fff);
}
@keyframes fall-117 {
  6.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 41.1vw;
  }
}
.bubble:nth-child(118) {
  opacity: 0.66;
  width: 14px;
  height: 14px;
  left: 20.6vw;
  animation: fall-118 48s -37.5s ease-in infinite reverse;
}
.bubble:nth-child(118) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-118 {
  4% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 42.9vw;
  }
}
.bubble:nth-child(119) {
  opacity: 0.54;
  width: 6px;
  height: 6px;
  left: 117.2vw;
  animation: fall-119 60s -15s ease-in infinite reverse;
}
.bubble:nth-child(119) span {
  filter: drop-shadow(0 0 2px #fff);
}
@keyframes fall-119 {
  2.5% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 59.2vw;
  }
}
.bubble:nth-child(120) {
  opacity: 0.79;
  width: 16px;
  height: 16px;
  left: 65.8vw;
  animation: fall-120 36s -24s ease-in infinite reverse;
}
.bubble:nth-child(120) span {
  filter: drop-shadow(0 0 3px #fff);
}
@keyframes fall-120 {
  3.3333333333% {
    transform: rotate(90deg) translateX(0);
  }
  to {
    transform: rotate(90deg) translateX(calc(100vh + 5vmin));
    left: 114.4vw;
  }
}
.bubble:nth-child(121) {
  opacity: 0.8;
  width: 6px;
  height: 6px;
  l.........完整代码请登录后点击上方下载按钮下载查看

网友评论0