.dark {
  --primary: hsl(224, 56%, 32%);
  --other: hsl(0, 0%, 0%);

  font-size: 18px;
  font-family: Open Sans;
  display: flex;
  flex-direction: row;
  align-items: center;
}

.dark label {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  cursor: pointer;
  position: relative;
}

.dark input {
  opacity: 0;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

.design {
  width: 22px;
  height: 22px;

  border: 1px solid var(--other);
  border-radius: 100%;
  margin-right: 10px;

  position: relative;
}

.design::before,
.design::after {
  content: "";
  display: block;

  width: inherit;
  height: inherit;

  border-radius: inherit;

  position: absolute;
  transform: scale(0);
  transform-origin: center center;
}

.design:before {
  background: var(--primary);
  opacity: 0;
  transition: .3s;
}

.design::after {
  background: var(--primary);
  opacity: .4;
  transition: .6s;
}

.text {
  color: var(--other);
}

.dark input:checked+.design::before {
  opacity: 1;
  transform: scale(.6);
}

.dark input:hover+.design,
.dark input:focus+.design {
  border: 1px solid var(--primary);
}

.dark input:hover+.design:before,
.dark input:focus+.design:before {
  background: var(--primary);
}

.dark input:hover~.text {
  color: var(--other);
}

.dark input:focus+.design::after,
.dark input:active+.design::after {
  opacity: .1;
  transform: scale(2.2);
}