@charset "UTF-8";
html, body {
  height: 100%;
}

@keyframes down {
  from {
    background-position: center 12.5vmin;
    background-position: center 37.5vmin;
  }
  to {
    background-position: center 37.5vmin;
    background-position: center calc(15vmin);
  }
}
body {
  align-items: center;
  background-color: midnightblue;
  background-image: radial-gradient(circle at 18.75vmin 0, transparent, transparent 6.25vmin, rgba(0, 255, 255, 0.1) 6.25vmin, rgba(0, 255, 255, 0.1) 12.5vmin, transparent 12.5vmin), radial-gradient(circle at 37.5vmin 22.5vmin, transparent, transparent 6.25vmin, rgba(0, 255, 255, 0.1) 6.25vmin, rgba(0, 255, 255, 0.1) 12.5vmin, transparent 12.5vmin), radial-gradient(circle at 0 22.5vmin, transparent, transparent 6.25vmin, rgba(0, 255, 255, 0.1) 6.25vmin, rgba(0, 255, 255, 0.1) 12.5vmin, transparent 12.5vmin);
  background-position: center 12.5vmin;
  background-size: 37.5vmin 22.5vmin;
  display: flex;
  justify-content: center;
  margin: 0;
  overflow: hidden;
}
body.animate {
  animation: down 1s linear infinite;
}

.🐙 {
  background-color: mediumvioletred;
  background-image: radial-gradient(circle at center 15vmin, rgba(255, 255, 255, 0.125), rgba(255, 255, 255, 0) 33%);
  border-radius: 100%;
  box-shadow: inset 0 4vmin 4vmin rgba(0, 0, 0, 0.125);
  height: 50vmin;
  margin-top: -10vmin;
  position: relative;
  width: 50vmin;
}
.🐙::before {
  background-image: radial-gradient(circle at 7.5vmin 6vmin, #fffc 1vmin, transparent 1.1vmin), radial-gradient(circle at 32.5vmin 6vmin, #fffc 1vmin, transparent 1.1vmin), radial-gradient(circle at 7.5vmin center, black 4.9vmin, transparent 5vmin), radial-gradient(circle at 32.5vmin center, black 4.9vmin, transparent 5vmin), radial-gradient(circle at 7.5vmin 8vmin, rgba(255, 255, 255, 0.33) 4.5vmin, transparent 5vmin), radial-gradient(circle at 32.5vmin 8vmin, rgba(255, 255, 255, 0.33) 4.5vmin, transparent 5vmin), radial-gradient(circle at 7.5vmin center, #b01376 5.5vmin, #991066 7.3vmin, #991066 7.4vmin, transparent 7.5vmin), radial-gradient(circle at 32.5vmin center, #b01376 5.5vmin, #991066 7.3vmin, #991066 7.4vmin, transparent 7.5vmin);
  bottom: 10vmin;
  content: '';
  height: 15vmin;
  left: 5vmin;
  position: absolute;
  width: 40vmin;
}
.animate .🐙 {
  animation: bounce 1s infinite alternate;
}

@keyframes bounce {
  from {
    margin-top: -10vmin;
  }
  to {
    margin-top: 0;
  }
}
.⚪️ {
  background-image: radial-gradient(circle at 3vmin 3vmin, transparent calc(3vmin - 4px), rgba(255, 255, 255, 0.8) calc(3vmin - 3px), rgba(255, 255, 255, 0.8) calc(3vmin - 1px), transparent 3vmin), radial-gradient(circle at 9vmin 9vmin, transparent calc(2vmin - 4px), rgba(255, 255, 255, 0.8) calc(2vmin - 3px), rgba(255, 255, 255, 0.8) calc(2vmin - 1px), transparent 2vmin), radial-gradient(circle at 3vmin 15vmin, transparent calc(1vmin - 4px), rgba(255, 255, 255, 0.8) calc(1vmin - 3px), rgba(255, 255, 255, 0.8) calc(1vmin - 1px), transparent 1vmin);
  height: 20vmin;
  right: 8vmin;
  position: absolute;
  top: 10vmin;
  width: 20vmin;
  z-index: -2;
}
.⚪️:nth-child(2) {
  bottom: 10vmin;
  left: 10vmin;
  top: auto;
}
.animate .⚪️ {
  animation: float 5s linear infinite;
}
.animate .⚪️:nth-child(2) {
  animation-delay: 2s;
  top: calc(100% + 20vmin);
}

@keyframes float {
  from {
    background-position: 0 0;
    top: calc(100% + 20vmin);
    transform: scale(1);
  }
  50% {
    background-position: 5vmin 5vmin, 7vmin 8vmin, 5vmin 0;
    transform: scale(2);
  }
  to {
    background-position: 0 0;
    top: -20vmin;
    transform: scale(1.5);
  }
}
.arm {
  background-color: mediumvioletred;
  border-radius: 4vmin;
  bottom: 0;
  height: 16vmin;
  position: absolute;
  right: 50%;
  width: 8vmin;
  z-index: -1;
}
.arm::before, .arm::after {
  background-color: #ef6cbf;
  border-radius: 100%;
  bottom: 1vmin;
  box-shadow: inset 1vmin 0vmin 0 #820e57;
  content: '';
  height: 2.5vmin;
  position: absolute;
  right: 0;
  width: 2.5vmin;
}
.arm::after {
  bottom: 6vmin;
}
.arm {
  background-image: linear-gradient(rgba(0, 0, 0, 0.25), transparent 67%), linear-gradient(to left, rgba(0, 0, 0, 0.25) 50%, transparent 50%);
}
.arm:nth-child(n + 5) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.25), transparent 67%), linear-gradient(to right, rgba(0, 0, 0, 0.25) 50%, transparent 50%);
  left: 50%;
}
.arm:nth-child(n + 5)::before, .arm:nth-child(n + 5)::after {
  left: 0;
  box-shadow: inset -1vmin 0vmin 0 #820e57;
}
.arm:first-child, .arm:last-child, .arm:nth-child(2), .arm:nth-child(7) {
  background-color: #991066;
}
.arm:first-child::before, .arm:first-child::after, .arm:last-child::before, .arm:last-child::after, .arm:nth-child(2)::before, .arm:nth-child(2)::after, .arm:nth-child(7)::before, .arm:nth-child(7)::after {
  background-color: mediumvioletred;
  box-shadow: inset 1vmin 0vmin 0 #540938;
}
.arm:last-child::before, .arm:last-child::after, .arm:nth-child(7)::before, .arm:nth-child(7)::after {
  box-shadow: inset -1vmin 0vmin 0 #540938;
}
.arm:first-child {
  margin-bottom: 10vmin;
  transform: translateX(-22vmin) rotate(60deg);
}
.arm:nth-child(2) {
  margin-bottom: 1vmin;
  transform: translateX(-18vmin) rotate(45deg);
}
.arm:nth-child(3) {
  margin-bottom: -6vmin;
  transform: translateX(-11vmin) rotate(30deg);
}
.arm:nth-child(4) {
  margin-bottom: -10vmin;
  transform: translateX(-1.5vmin) rotate(15deg);
}
.arm:nth-child(5) {
  margin-bottom: -10vmin;
  transform: translateX(1.5vmin) rotate(-15deg);
}
.arm:nth-child(6) {
  margin-bottom: -6vmin;
  transform: translateX(11vmin) rotate(-30deg);
}
.arm:nth-child(7) {
  margin-bottom: 1vmin;
  transform: translateX(18vmin) rotate(-45deg);
}
.arm:last-child {
  margin-bottom: 10vmin;
  transform: translateX(22vmin) rotate(-60deg);
}
.animate .arm {
  animation: 500ms linear infinite alternate;
}
.animate .arm:first-child {
  animation-name: arm1;
}
.animate .arm:nth-child(2) {
  animation-name: arm2;
}
.animate .arm:nth-child(3) {
  animation-name: arm3;
}
.animate .arm:nth-child(4) {
  animation-name: arm4;
}
.animate .arm:nth-child(5) {
  animation-name: arm5;
}
.animate .arm:nth-child(6) {
  animation-name: arm6;
}
.animate .arm:nth-child(7) {
  animation-name: arm7;
}
.animate .arm:last-child {
  animation-name: arm8;
}

@keyframes arm1 {
  from {
    transform: translateX(-22vmin) rotate(60deg);
  }
  to {
    transform: translateX(-22vmin) rotate(75deg);
  }
}
@keyframes arm2 {
  from {
    transform: translateX(-18vmin) rotate(45deg);
  }
  to {
    transform: translateX(-18vmin) rotate(60deg);
  }
}
@keyframes arm3 {
  from {
    transform: translateX(-11vmin) rotate(30deg);
  }
  to {
    transform: translateX(-11vmin) rotate(45deg);
  }
}
@keyframes arm4 {
  from {
    transform: translateX(-1.5vmin) rotate(15deg);
  }
  to {
    transform: translateX(-1.5vmin) rotate(30deg);
  }
}
@keyframes arm5 {
  from {
    transform: translateX(1.5vmin) rotate(-15deg);
  }
  to {
    transform: translateX(1.5vmin) rotate(-30deg);
  }
}
@keyframes arm6 {
  from {
    transform: translateX(11vmin) rotate(-30deg);
  }
  to {
    transform: translateX(11vmin) rotate(-45deg);
  }
}
@keyframes arm7 {
  from {
    transform: translateX(18vmin) rotate(-45deg);
  }
  to {
    transform: translateX(18vmin) rotate(-60deg);
  }
}
@keyframes arm8 {
  from {
    transform: translateX(22vmin) rotate(-60deg);
  }
  to {
    transform: translateX(22vmin) rotate(-75deg);
  }
}
.aniToggle input {
  display: none;
}
.aniToggle input:checked ~ label {
  background-color: rgba(199, 21, 133, 0.9);
}
.aniToggle input:checked ~ label::after {
  content: ' on';
}
.aniToggle label {
  background-color: #333;
  border-radius: 1rem;
  color: #fff;
  cursor: pointer;
  font-family: monospace;
  padding: 0.5rem;
  position: absolute;
  right: 1vmin;
  top: 1vmin;
}
.aniToggle label::after {
  content: ' off';
  font-weight: bold;
}
