html, body {
  margin: 0;
  padding: 0;
  overflow: hidden;
  font-family: Helvetica, sans-serif;
  background-color: #555;

#imgs {
  position: relative;
  margin: auto;
  width: 100%;
  height: 100%;
}
img {
  display: block;
  position: absolute;
  width: 100%;
}
.zoomable {
  transform-origin: center center;
  transition: transform 0.05s ease-out;
  touch-action: none;
}

.hidden {
  display: none !important;
}

.ctrls {
  position: absolute;
  background-color: rgba(85, 85, 85, 0.5);
}
.ctrl {
  position: relative;
}
label {
  display: block;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #fff;
}
.right {
  top: 0;
  right: 0;
  height: 100%;
}
.right .switch {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  padding: 25px 0 25px 42px;
}
.right .switch .label {
  padding: 3px 0 0 10px;
}

.right .sliders {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row wrap;
  justify-content: flex-start;
  align-items: stretch;
  margin: 0 20px 0 20px;
}
.right .sliders .ctrl {
  position: relative;
  display: flex;
  flex-direction: column;
}
.right .sliders .ctrl .label {
  width: 80px;
  height: 250px;
}
.right .sliders label {
  margin-top: 60px;
  transform: rotate(90deg);
}
.right .sliders .ctrl .input {
  display: block;
  text-align: center;
}
input[type=range] {
  direction: rtl;
  writing-mode: vertical-lr;
  height: calc(100% - 250px);
}
.top {
  top: 0;
  left: 0;
  padding: 25px 30px 20px 25px;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
}
.top > div {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  padding-bottom: 10px;
}
.top .label {
  padding: 3px 0 0 10px;
}
input[type=checkbox] {
  -webkit-appearance: none;
  position: relative;
  border-radius: 25px;
  background-color: #ccc;
  transition: background .3s;
  outline: none;
  cursor: pointer;
}
input[type=checkbox]::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 30%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  height: 1.25rem;
  width: 1.25rem;
  background-color: rgb(255, 255, 255);
  transition: left .3s;
}
input[type=checkbox]:checked {
  background-color: rgb(141, 221, 141);
}
input[type=checkbox]:checked::after {
  left: 70%;
}

.bottom {
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 25px 30px 20px 25px;
  white-space: nowrap;
}
.bottom input {
  height: 60px;
  width: 400px;
  font-weight: bold;
  font-size: 20pt;
  letter-spacing: 2px;
  text-transform: uppercase;
  background-color: #000;
  color: #ccc;
  border: none;
  border-radius: 30px;
  padding: 5px 30px;
}
.bottom .share {
}
.bottom .share svg {
  width: 60px;
  height: 60px;
}
.bottom .share svg path {
  fill: #ddd;
  stroke: #ccc;
  stroke-width: 1.5px;
}

label {
  font-weight: bold;
  font-size: 20pt;
}
input[type=checkbox] {
  width: 50px;
  height: 30px;
}
input[type=checkbox]::after {
  height: 1.25rem;
  width: 1.25rem;
}

input[type=range]:focus {
  outline: none;
}
input[type=range] {
	appearance: none;
	width: 30px;
	border-radius: 25px;
	background-color: #ccc;
}
input[type='range']::-webkit-slider-thumb {
	appearance: none;
	background-color: white;
	width: 20px;
	height: 20px;
	border-radius: 15px;
	cursor: pointer;
}
input[type=range]::-webkit-slider-runnable-track {
  padding: 5px 0;
}

@media screen and (width < 1000px) {
  label {
    font-weight: bold;
    font-size: 12pt;
  }
  input[type=checkbox] {
    width: 37px;
    height: 20px;
  }
  .top {
    padding: 25px 30px 15px 25px;
  }
  .right .switch {
    padding-left: 25px;
  }
  .right .sliders label {
    margin-top: 30px;
  }
  .right .sliders .ctrl .label {
    width: 40px;
    height: 40px;
  }
  input[type=range] {
    height: calc(100% - 160px);
  }
}
