body {
  background: #212121;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  overflow: hidden;
}
.container {
  width: 7em;
  height: 7em;
  position: relative;
}
.button {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 4px solid #090909;
  background: transparent;
  background-image: linear-gradient(145deg, #171717, #444245);
  box-sizing: border-box;
  box-shadow: inset 2px 2px 0 #7d7c7e, inset -2px -2px 0px #1c1c1c;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: progress;
}
.container input {
  display: none;
}
.button::before {
  position: absolute;
  content: "";
  width: 7.25em;
  height: 7.25em;
  border-radius: inherit;
  background-color: transparent;
  background-image: linear-gradient(145deg, #262626, #606060);
  z-index: -1;
  box-shadow: 11px 11px 22px #141414, -11px -11px 22px #525252;
}
.button .icon {
  width: 60px;
  height: 60px;
  display: inline-block;
}
.button .icon svg {
  height: 100%;
  width: 100%;
  fill: #a5a5a5;
}
.container input:checked + .button {
  box-shadow: inset -2px -2px 0 #5e5e5e, inset 2px 2px 0 #1c1c1c;
  border: 4px solid #00d700;
  animation: animeBorder 0.7s linear alternate-reverse infinite;
  cursor: auto;
}
.container input:checked + .button .icon svg {
  fill: #00d700;
  animation: animeFill 0.7s linear alternate-reverse infinite;
  cursor: auto;
}
@keyframes animeFill {
  0% {
    fill: #00c200f3;
  }
  50%,
  100% {
    fill: #05ff05f3;
  }
}
@keyframes animeBorder {
  0% {
    border-color: #00af00e0;
  }
  50% {
    border-color: #00ff00e0;
  }
  100% {
    border-color: #12cb12e0;
  }
}
