:root {
  --hue: 0;
}

body {
  margin: 0;
  box-sizing: border-box;
  overflow: hidden;
  background-color: #111;
}

main {
  position: relative;
  height: 100dvh;
  margin: 0 auto;
  display: flex;
  justify-content: end;
  align-items: end;
}

#controls {
  padding: 1em;
}

#dvd {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 250px;
  color: oklch(69% 42% var(--hue));
  transition: filter 0.25s ease-in-out, color 0.25s ease-in-out;
}

#dvd.on {
  filter: drop-shadow(0 0 33px oklch(69% 42% var(--hue) / 100%));
}

/* From Uiverse.io by namecho */
.switch {
  cursor: pointer;
  --button-width: 1.66em;
  --button-height: 1em;
  --toggle-diameter: 0.8em;
  --button-toggle-offset: calc(
    (var(--button-height) - var(--toggle-diameter)) / 2
  );
  --toggle-shadow-offset: 10px;
  --toggle-wider: 1em;
  --color-grey: #3b3737;
  --color-green: oklch(69% 42% var(--hue));
}

.slider {
  display: inline-block;

  width: var(--button-width);
  height: var(--button-height);
  background-color: var(--color-grey);
  border-radius: calc(var(--button-height) / 2);
  position: relative;
  transition: 0.1s all ease-in-out;
}

.slider::after {
  content: "";
  display: inline-block;
  width: var(--toggle-diameter);
  height: var(--toggle-diameter);
  background-color: #2a2828;
  border-radius: calc(var(--toggle-diameter) / 2);
  position: absolute;
  top: var(--button-toggle-offset);
  transform: translateX(var(--button-toggle-offset));
  box-shadow: var(--toggle-shadow-offset) 0
    calc(var(--toggle-shadow-offset) * 4) rgba(0, 0, 0, 0.1);
  transition: 0.3s all ease-in-out;
}

.switch input[type="checkbox"]:checked + .slider {
  background-color: var(--color-green);
}

.switch input[type="checkbox"]:checked + .slider::after {
  transform: translateX(
    calc(
      var(--button-width) - var(--toggle-diameter) - var(--button-toggle-offset)
    )
  );
  box-shadow: calc(var(--toggle-shadow-offset) * -1) 0
    calc(var(--toggle-shadow-offset) * 4) rgba(0, 0, 0, 0.1);
}

.switch input[type="checkbox"] {
  display: none;
}

.switch input[type="checkbox"]:active + .slider::after {
  width: var(--toggle-wider);
}

.switch input[type="checkbox"]:checked:active + .slider::after {
  transform: translateX(
    calc(
      var(--button-width) - var(--toggle-wider) - var(--button-toggle-offset)
    )
  );
}
