.track-wrapper {
  position: relative;
}

.track {
  touch-action: pan-y pinch-zoom;
  user-select: none;
  overflow-x: clip;
}

.track-slide {
  cursor: grab;
  transition: transform 0.2s ease;
}

.track-slide.dragging {
  cursor: grabbing;
}

.dots {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 3rem);

  display: flex;
  justify-content: center;

  background-color: white;
  padding: 0.1rem 0.3rem;
  border-radius: 1rem;
}

.dot {
  position: relative;
  width: 10px;
  height: 10px;
  cursor: pointer;
  padding: 0.3rem;
}

.dot::before {
  content: "";
  display: block;

  width: 10px;
  height: 10px;

  background: #ccc;
  border-radius: 50%;
}

.dot.active::before {
  background: #666;
}

.track-left, .track-right {
  position: absolute;
  padding: 1rem;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: white;
  box-shadow: 0 3px 10px 0 rgba(8,9,14,.25);

  top: 50%;
  transform: translate(0, -50%);

}

.track-left:hover, .track-right:hover {
  cursor: pointer;
}

.track-left::before, .track-right::before {
  transform: skew(-40deg);
  border-bottom-left-radius: 8px;
  border-top-left-radius: 2px;
  border-top-right-radius: 16px;
  content: "";

  display: block;
  margin: 0 auto;
  height: 8px;
  width: 2px;
  background-color: #08090e;
}

.track-left::after, .track-right::after {
  transform: skew(40deg);
  border-bottom-left-radius: 8px;
  border-top-left-radius: 2px;
  border-top-right-radius: 16px;
  content: "";

  display: block;
  margin: 0 auto;
  height: 8px;
  width: 2px;
  background-color: #08090e;
}

.track-left {
  left: -2rem;
}

.track-right {
  right: -2rem;
  transform: rotate(180deg);
}
