.slider-wrapper {
  --thumb-diameter: 2em;
  --thumb-radius: calc(var(--thumb-diameter) / 2);
  --track-border-width: 1px;
  --value: 50;
  --pos: calc(
    var(--thumb-radius) + 0.01 * var(--value) * (100% - var(--thumb-diameter))
  );
  width: 80%;
  margin: 0rem auto 3rem auto;
  text-align: center;
  font-size: 1.25em;
}

.slider-tooltip {
  --tooltip-background: rgb(255, 255, 255);
  --tooltip-border-width: 1px;
  --tooltip-border-color: #080;
  --tooltip-hight-arrow: 1em;
  display: block;
  width: fit-content;
  margin: auto;
  margin-bottom: 2em;
  margin-left: calc(var(--pos) + var(--track-border-width));
  padding: 0.5em 1em;
  min-width: 2em;
  border: var(--tooltip-border-width) solid var(--tooltip-border-color);
  border-radius: 5px;
  font-weight: 700;
  white-space: nowrap;
  color: #4a0;
  background-color: var(--tooltip-background);
  box-shadow: 0 0.25em 0.75em #0006;
  transition: 0.25s;
  translate: calc(-50%);
}

.slider-tooltip::after {
  content: "";
  position: absolute;
  top: calc(100% + var(--tooltip-border-width));
  left: 50%;
  width: var(--tooltip-hight-arrow);
  height: var(--tooltip-hight-arrow);
  border: inherit;
  border-top: none;
  border-left: none;
  background-color: inherit;
  box-shadow: none;
  transform: translate(-50%, -50%) rotate(45deg);
}

input[type="range"].slider {
  --track-height: 0.7rem;
  --track-background: linear-gradient(
    rgb(255, 255, 255),
    rgba(255, 255, 255, 0.863)
  );
  --thumb-background: #000;
  --thumb-border: 2px solid #fff;
  --effect-over: 0 0 0 0.75em #4a02;
  --effect-active: 0 0 0 0.75em #5f03;
  display: block;
  -webkit-appearance: none;
  box-sizing: content-box;
  width: 100%;
  height: var(--track-height);
  margin: 0;
  border: var(--track-border-width) solid #aaa;
  border-radius: 5px;
  font-size: 1em;
  outline: none;
  opacity: 0.9;
  background: #ccc8;
  background-image: var(--track-background);
  background-position: 0 center;
  background-repeat: no-repeat;
  background-size: var(--pos) var(--track-height);
  box-shadow: 0 0 1em #ccc;
  cursor: pointer;
}
input[type="range"].slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  box-sizing: border-box;
  width: var(--thumb-diameter);
  height: var(--thumb-diameter);
  border: var(--thumb-border);
  border-radius: 50%;
  background: var(--thumb-background);
  box-shadow: 0 0 0.5em #888;
  cursor: ew-resize;
}
input[type="range"].slider::-moz-range-thumb {
  box-sizing: border-box;
  width: var(--thumb-diameter);
  height: var(--thumb-diameter);
  border: var(--thumb-border);
  border-radius: 50%;
  background: var(--thumb-background);
  box-shadow: 0 0 0.5em #888;
  cursor: ew-resize;
}
input[type="range"]::-webkit-slider-thumb:hover {
  box-shadow: var(--effect-over);
}
input[type="range"]::-moz-range-thumb:hover {
  box-shadow: var(--effect-over);
}

@media only screen and (max-width: 767px) {
  .slider-tooltip {
    font-size: 1rem;
  }

  slider-wrapper {
    width: 60%;
  }
}
