body {
  margin: 0;
  font-size: 20px;
}

* {
  box-sizing: border-box;
}

.container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background: black;
  color: gray;
  font-family: arial, sans-serif;
  overflow: hidden;
}

.content {
  position: relative;
  width: 600px;
  max-width: 100%;
  margin: 20px;
  background: black;
  padding: 60px 40px;
  text-align: center;
  box-shadow: -10px 10px 67px -12px rgba(255, 0, 0, 0.7);
  opacity: 0;
  animation: apparition 0.8s 1.2s cubic-bezier(0.39, 0.575, 0.28, 0.995) forwards;
}
.content p {
  font-size: 1.3rem;
  margin-top: 0;
  margin-bottom: 0.6rem;
  letter-spacing: 0.1rem;
  color: #595959;
}
.content p:last-child {
  margin-bottom: 0;
}
.content button {
  display: inline-block;
  margin-top: 2rem;
  padding: 0.5rem 1rem;
  border: 3px solid #595959;
  background: transparent;
  font-size: 1rem;
  color: #595959;
  text-decoration: none;
  cursor: pointer;
  font-weight: bold;
}

.particle {
  position: absolute;
  display: block;
  pointer-events: none;
}
.particle:nth-child(1) {
  top: 54.041013269%;
  left: 32.0699708455%;
  font-size: 29px;
  filter: blur(0.02px);
  animation: 28s floatReverse infinite;
}
.particle:nth-child(2) {
  top: 7.8527607362%;
  left: 78.8177339901%;
  font-size: 15px;
  filter: blur(0.04px);
  animation: 38s float2 infinite;
}
.particle:nth-child(3) {
  top: 25.2427184466%;
  left: 95.703125%;
  font-size: 24px;
  filter: blur(0.06px);
  animation: 22s floatReverse2 infinite;
}
.particle:nth-child(4) {
  top: 79.0243902439%;
  left: 41.1764705882%;
  font-size: 20px;
  filter: blur(0.08px);
  animation: 37s floatReverse2 infinite;
}
.particle:nth-child(5) {
  top: 40.7272727273%;
  left: 20.487804878%;
  font-size: 25px;
  filter: blur(0.1px);
  animation: 29s floatReverse2 infinite;
}
.particle:nth-child(6) {
  top: 51.1459589867%;
  left: 28.1827016521%;
  font-size: 29px;
  filter: blur(0.12px);
  animation: 40s floatReverse infinite;
}
.particle:nth-child(7) {
  top: 88.2424242424%;
  left: 89.756097561%;
  font-size: 25px;
  filter: blur(0.14px);
  animation: 23s floatReverse2 infinite;
}
.particle:nth-child(8) {
  top: 61.7647058824%;
  left: 14.7637795276%;
  font-size: 16px;
  filter: blur(0.16px);
  animation: 30s float infinite;
}
.particle:nth-child(9) {
  top: 91.7073170732%;
  left: 11.7647058824%;
  font-size: 20px;
  filter: blur(0.18px);
  animation: 32s floatReverse2 infinite;
}
.particle:nth-child(10) {
  top: 21.7016029593%;
  left: 74.1839762611%;
  font-size: 11px;
  filter: blur(0.2px);
  animation: 27s float infinite;
}
.particle:nth-child(11) {
  top: 67.8966789668%;
  left: 28.6278381046%;
  font-size: 13px;
  filter: blur(0.22px);
  animation: 33s float infinite;
}
.particle:nth-child(12) {
  top: 55.1390568319%;
  left: 74.9756572541%;
  font-size: 27px;
  filter: blur(0.24px);
  animation: 29s float infinite;
}
.particle:nth-child(13) {
  top: 83.4951456311%;
  left: 37.109375%;
  font-size: 24px;
  filter: blur(0.26px);
  animation: 39s floatReverse infinite;
}
.particle:nth-child(14) {
  top: 76.7922235723%;
  left: 14.6627565982%;
  font-size: 23px;
  filter: blur(0.28px);
  animation: 23s float2 infinite;
}
.particle:nth-child(15) {
  top: 72.2891566265%;
  left: 20.3883495146%;
  font-size: 30px;
  filter: blur(0.3px);
  animation: 34s floatReverse2 infinite;
}
.particle:nth-child(16) {
  top: 62.8778718259%;
  left: 13.6319376826%;
  font-size: 27px;
  filter: blur(0.32px);
  animation: 38s float2 infinite;
}
.particle:nth-child(17) {
  top: 37.8181818182%;
  left: 42.9268292683%;
  font-size: 25px;
  filter: blur(0.34px);
  animation: 24s float infinite;
}
.particle:nth-child(18) {
  top: 72.5490196078%;
  left: 47.2440944882%;
  font-size: 16px;
  filter: blur(0.36px);
  animation: 31s floatReverse2 infinite;
}
.particle:nth-child(19) {
  top: 95.5665024631%;
  left: 5.9288537549%;
  font-size: 12px;
  filter: blur(0.38px);
  animation: 21s floatReverse2 infinite;
}
.particle:nth-child(20) {
  top: 48.4848484848%;
  left: 7.8048780488%;
  font-size: 25px;
  filter: blur(0.4px);
  animation: 23s floatReverse infinite;
}
.particle:nth-child(21) {
  top: 59.9758162031%;
  left: 36.0272638754%;
  font-size: 27px;
  filter: blur(0.42px);
  animation: 34s floatReverse2 infinite;
}
.particle:nth-child(22) {
  top: 43.3734939759%;
  left: 0.9708737864%;
  font-size: 30px;
  filter: blur(0.44px);
  animation: 27s float2 infinite;
}
.particle:nth-child(23) {
  top: 50.3022974607%;
  left: 96.3972736125%;
  font-size: 27px;
  filter: blur(0.46px);
  animation: 23s floatReverse2 infinite;
}
.particle:nth-child(24) {
  top: 85.6088560886%;
  left: 44.4225074038%;
  font-size: 13px;
  filter: blur(0.48px);
  animation: 32s float2 infinite;
}
.particle:nth-child(25) {
  top: 6.862745098%;
  left: 84.6456692913%;
  font-size: 16px;
  filter: blur(0.5px);
  animation: 23s floatReverse infinite;
}
.particle:nth-child(26) {
  top: 1.9464720195%;
  left: 15.6555772994%;
  font-size: 22px;
  filter: blur(0.52px);
  animation: 24s float2 infinite;
}
.particle:nth-child(27) {
  top: 57.2133168927%;
  left: 81.1078140455%;
  font-size: 11px;
  filter: blur(0.54px);
  animation: 29s floatReverse infinite;
}
.particle:nth-child(28) {
  top: 67.6470588235%;
  left: 0.9842519685%;
  font-size: 16px;
  filter: blur(0.56px);
  animation: 36s float infinite;
}
.particle:nth-child(29) {
  top: 85.7490864799%;
  left: 79.333986288%;
  font-size: 21px;
  filter: blur(0.58px);
  animation: 37s floatReverse2 infinite;
}
.particle:nth-child(30) {
  top: 22.4938875306%;
  left: 65.815324165%;
  font-size: 18px;
  filter: blur(0.6px);
  animation: 28s float2 infinite;
}
.particle:nth-child(31) {
  top: 32.4723247232%;
  left: 6.9101678184%;
  font-size: 13px;
  filter: blur(0.62px);
  animation: 21s float2 infinite;
}
.particle:nth-child(32) {
  top: 84.7290640394%;
  left: 24.7035573123%;
  font-size: 12px;
  filter: blur(0.64px);
  animation: 37s floatReverse2 infinite;
}
.particle:nth-child(33) {
  top: 90.1818181818%;
  left: 48.7804878049%;
  font-size: 25px;
  filter: blur(0.66px);
  animation: 29s floatReverse infinite;
}
.particle:nth-child(34) {
  top: 25.5214723926%;
  left: 31.5270935961%;
  font-size: 15px;
  filter: blur(0.68px);
  animation: 22s float2 infinite;
}
.particle:nth-child(35) {
  top: 25.5842558426%;
  left: 64.1658440276%;
  font-size: 13px;
  filter: blur(0.7px);
  animation: 39s float2 infinite;
}
.particle:nth-child(36) {
  top: 54.4349939247%;
  left: 76.2463343109%;
  font-size: 23px;
  filter: blur(0.72px);
  animation: 29s floatReverse2 infinite;
}
.particle:nth-child(37) {
  top: 93.4306569343%;
  left: 32.28962818%;
  font-size: 22px;
  filter: blur(0.74px);
  animation: 28s floatReverse infinite;
}
.particle:nth-child(38) {
  top: 74.4860943168%;
  left: 86.6601752678%;
  font-size: 27px;
  filter: blur(0.76px);
  animation: 22s floatReverse infinite;
}
.particle:nth-child(39) {
  top: 43.4032059186%;
  left: 40.5539070227%;
  font-size: 11px;
  filter: blur(0.78px);
  animation: 40s float infinite;
}
.particle:nth-child(40) {
  top: 47.2289156627%;
  left: 88.3495145631%;
  font-size: 30px;
  filter: blur(0.8px);
  animation: 24s floatReverse2 infinite;
}
.particle:nth-child(41) {
  top: 22.3572296476%;
  left: 42.0332355816%;
  font-size: 23px;
  filter: blur(0.82px);
  animation: 26s float2 infinite;
}
.particle:nth-child(42) {
  top: 94.6979038224%;
  left: 49.4559841741%;
  font-size: 11px;
  filter: blur(0.84px);
  animation: 37s floatReverse2 infinite;
}
.particle:nth-child(43) {
  top: 81.8742293465%;
  left: 29.6735905045%;
  font-size: 11px;
  filter: blur(0.86px);
  animation: 36s floatReverse2 infinite;
}
.particle:nth-child(44) {
  top: 26.9879518072%;
  left: 72.8155339806%;
  font-size: 30px;
  filter: blur(0.88px);
  animation: 21s float2 infinite;
}
.particle:nth-child(45) {
  top: 57.8431372549%;
  left: 20.6692913386%;
  font-size: 16px;
  filter: blur(0.9px);
  animation: 25s floatReverse2 infinite;
}
.particle:nth-child(46) {
  top: 36.9829683698%;
  left: 53.8160469667%;
  font-size: 22px;
  filter: blur(0.92px);
  animation: 30s floatReverse2 infinite;
}
.particle:nth-child(47) {
  top: 16.7281672817%;
  left: 28.6278381046%;
  font-size: 13px;
  filter: blur(0.94px);
  animation: 21s floatReverse2 infinite;
}
.particle:nth-child(48) {
  top: 83.698296837%;
  left: 8.8062622309%;
  font-size: 22px;
  filter: blur(0.96px);
  animation: 28s float2 infinite;
}
.particle:nth-child(49) {
  top: 16.7076167076%;
  left: 67.0611439842%;
  font-size: 14px;
  filter: blur(0.98px);
  animation: 30s floatReverse infinite;
}
.particle:nth-child(50) {
  top: 34.0218712029%;
  left: 30.303030303%;
  font-size: 23px;
  filter: blur(1px);
  animation: 33s floatReverse infinite;
}
.particle:nth-child(51) {
  top: 71.4113389626%;
  left: 84.5481049563%;
  font-size: 29px;
  filter: blur(1.02px);
  animation: 32s floatReverse2 infinite;
}
.particle:nth-child(52) {
  top: 49.156626506%;
  left: 16.5048543689%;
  font-size: 30px;
  filter: blur(1.04px);
  animation: 26s float2 infinite;
}
.particle:nth-child(53) {
  top: 27.1844660194%;
  left: 1.953125%;
  font-size: 24px;
  filter: blur(1.06px);
  animation: 40s floatReverse2 infinite;
}
.particle:nth-child(54) {
  top: 6.7878787879%;
  left: 78.0487804878%;
  font-size: 25px;
  filter: blur(1.08px);
  animation: 40s float infinite;
}
.particle:nth-child(55) {
  top: 48.84004884%;
  left: 85.3778213935%;
  font-size: 19px;
  filter: blur(1.1px);
  animation: 31s float2 infinite;
}
.particle:nth-child(56) {
  top: 39.61352657%;
  left: 12.6459143969%;
  font-size: 28px;
  filter: blur(1.12px);
  animation: 40s float infinite;
}
.particle:nth-child(57) {
  top: 81.2729498164%;
  left: 50.1474926254%;
  font-size: 17px;
  filter: blur(1.14px);
  animation: 22s floatReverse infinite;
}
.particle:nth-child(58) {
  top: 56.9325153374%;
  left: 33.4975369458%;
  font-size: 15px;
  filter: blur(1.16px);
  animation: 35s float infinite;
}
.particle:nth-child(59) {
  top: 40.2948402948%;
  left: 1.9723865878%;
  font-size: 14px;
  filter: blur(1.18px);
  animation: 26s floatReverse2 infinite;
}
.particle:nth-child(60) {
  top: 54.1205412054%;
  left: 10.8588351431%;
  font-size: 13px;
  filter: blur(1.2px);
  animation: 25s floatReverse2 infinite;
}
.particle:nth-child(61) {
  top: 73.2600732601%;
  left: 11.7762512267%;
  font-size: 19px;
  filter: blur(1.22px);
  animation: 25s floatReverse infinite;
}
.particle:nth-child(62) {
  top: 14.5631067961%;
  left: 9.765625%;
  font-size: 24px;
  filter: blur(1.24px);
  animation: 30s floatReverse infinite;
}
.particle:nth-child(63) {
  top: 82.4539877301%;
  left: 13.7931034483%;
  font-size: 15px;
  filter: blur(1.26px);
  animation: 23s floatReverse2 infinite;
}
.particle:nth-child(64) {
  top: 51.4563106796%;
  left: 62.5%;
  font-size: 24px;
  filter: blur(1.28px);
  animation: 32s floatReverse2 infinite;
}
.particle:nth-child(65) {
  top: 27.5522755228%;
  left: 12.8331688055%;
  font-size: 13px;
  filter: blur(1.3px);
  animation: 24s floatReverse2 infinite;
}
.particle:nth-child(66) {
  top: 41.4303329223%;
  left: 98.9119683482%;
  font-size: 11px;
  filter: blur(1.32px);
  animation: 26s float2 infinite;
}
.particle:nth-child(67) {
  top: 89.2121212121%;
  left: 34.1463414634%;
  font-size: 25px;
  filter: blur(1.34px);
  animation: 22s float2 infinite;
}
.particle:nth-child(68) {
  top: 85.3333333333%;
  left: 35.1219512195%;
  font-size: 25px;
  filter: blur(1.36px);
  animation: 24s floatReverse2 infinite;
}
.particle:nth-child(69) {
  top: 20.5882352941%;
  left: 88.5826771654%;
  font-size: 16px;
  filter: blur(1.38px);
  animation: 30s floatReverse infinite;
}
.particle:nth-child(70) {
  top: 40.245398773%;
  left: 80.7881773399%;
  font-size: 15px;
  filter: blur(1.4px);
  animation: 22s floatReverse infinite;
}
.particle:nth-child(71) {
  top: 54.7677261614%;
  left: 7.858546169%;
  font-size: 18px;
  filter: blur(1.42px);
  animation: 22s float2 infinite;
}
.particle:nth-child(72) {
  top: 41.1764705882%;
  left: 55.1181102362%;
  font-size: 16px;
  filter: blur(1.44px);
  animation: 36s float infinite;
}
.particle:nth-child(73) {
  top: 58.1997533909%;
  left: 90.9990108803%;
  font-size: 11px;
  filter: blur(1.46px);
  animation: 23s float2 infinite;
}
.particle:nth-child(74) {
  top: 25.5842558426%;
  left: 28.6278381046%;
  font-size: 13px;
  filter: blur(1.48px);
  animation: 24s floatReverse2 infinite;
}
.particle:nth-child(75) {
  top: 77.6412776413%;
  left: 14.7928994083%;
  font-size: 14px;
  filter: blur(1.5px);
  animation: 39s floatReverse infinite;
}
.particle:nth-child(76) {
  top: 4.914004914%;
  left: 42.4063116371%;
  font-size: 14px;
  filter: blur(1.52px);
  animation: 24s floatReverse infinite;
}
.particle:nth-child(77) {
  top: 82.8258221681%;
  left: 86.1900097943%;
  font-size: 21px;
  filter: blur(1.54px);
  animation: 39s floatReverse infinite;
}
.particle:nth-child(78) {
  top: 69.5652173913%;
  left: 97.2762645914%;
  font-size: 28px;
  filter: blur(1.56px);
  animation: 24s float2 infinite;
}
.particle:nth-child(79) {
  top: 80.6888068881%;
  left: 83.9091806515%;
  font-size: 13px;
  filter: blur(1.58px);
  animation: 38s float2 infinite;
}
.particle:nth-child(80) {
  top: 35.0791717418%;
  left: 16.6503428012%;
  font-size: 21px;
  filter: blur(1.6px);
  animation: 26s floatReverse infinite;
}

@keyframes apparition {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(180px);
  }
}
@keyframes floatReverse {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-180px);
  }
}
@keyframes float2 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(28px);
  }
}
@keyframes floatReverse2 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-28px);
  }
}