body {
  background-size: cover;
  display: flex;
}

#controls {
  background-color: #f6f0ff;
  background-image: url("data:image/svg+xml,%3Csvg width='64' height='64' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm33.414-6l5.95-5.95L45.95.636 40 6.586 34.05.636 32.636 2.05 38.586 8l-5.95 5.95 1.414 1.414L40 9.414l5.95 5.95 1.414-1.414L41.414 8zM40 48c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zM9.414 40l5.95-5.95-1.414-1.414L8 38.586l-5.95-5.95L.636 34.05 6.586 40l-5.95 5.95 1.414 1.414L8 41.414l5.95 5.95 1.414-1.414L9.414 40z' fill='%23A531DC' fill-opacity='0.2'  fill-rule='evenodd'/%3E%3C/svg%3E"), linear-gradient(220.55deg, #A531DC 0%, #4300B1 50%);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
  color: white;
  display: flex;
  flex-direction: column;
  height: 100vh;
  gap: 12px;
  padding: 24px;
  text-align: center;
  padding: 12px;
  text-shadow: 1px 1px 1px black;
  overflow: auto;
  width: 300px;
}

.animation {
  background-image: linear-gradient(rgba(0, 0, 0, 0.4666666667), rgba(0, 0, 0, 0.4666666667)), url("data:image/svg+xml,%3Csvg width='64' height='64' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm33.414-6l5.95-5.95L45.95.636 40 6.586 34.05.636 32.636 2.05 38.586 8l-5.95 5.95 1.414 1.414L40 9.414l5.95 5.95 1.414-1.414L41.414 8zM40 48c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zM9.414 40l5.95-5.95-1.414-1.414L8 38.586l-5.95-5.95L.636 34.05 6.586 40l-5.95 5.95 1.414 1.414L8 41.414l5.95 5.95 1.414-1.414L9.414 40z' fill='%23A531DC' fill-opacity='0.1'  fill-rule='evenodd'/%3E%3C/svg%3E"), linear-gradient(220.55deg, #A531DC 0%, #4300B1 100%);
  border-radius: 6px;
  border: solid 1px rgba(208, 121, 238, 0.6666666667);
  display: grid;
  gap: 12px;
  grid-template-areas: "icon name enabled" "icon name enabled" "desc desc desc";
  grid-template-columns: 32px 1fr min-content;
  padding: 12px;
}
.animation__icon {
  align-self: center;
  filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.7)) drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5));
  grid-area: icon;
}
.animation__title {
  align-self: center;
  font-size: 16px;
  grid-area: name;
  margin: 0;
}
.animation__enabled-wrapper {
  align-self: flex-start;
  grid-area: enabled;
  justify-self: flex-end;
}
.animation__enabled-wrapper label {
  font-size: 0;
}
.animation__description {
  grid-area: desc;
}
.animation img {
  width: 32px;
}
.animation__enabled-wrapper {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  grid-area: enabled;
  position: relative;
}

.viewport {
  position: relative;
  width: 100%;
}

input[type=checkbox] {
  opacity: 0;
  position: absolute;
}
input[type=checkbox] ~ label {
  background-color: rgba(208, 121, 238, 0.0666666667);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23fff' d='M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z'/%3E%3C/svg%3E");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 12px;
  border: solid 1px #D079EE;
  border-radius: 16px;
  cursor: pointer;
  height: 32px;
  line-height: 32px;
  width: 60px;
}
input[type=checkbox] ~ label::before {
  background-color: white;
  border-radius: 50%;
  content: "";
  display: block;
  height: 24px;
  margin: 3px;
  transition: transform 0.15s;
  width: 24px;
}
input[type=checkbox]:checked ~ label {
  background-color: #D079EE;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23fff' d='M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E");
  background-position: 12px center;
}
input[type=checkbox]:checked ~ label::before {
  transform: translateX(28px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
  font-family: "Karla", sans-serif;
}

h1 {
  font-size: 24px;
  margin: 0;
}

p {
  font-size: 18px;
  margin: 0;
}