.timeline {
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Safari */
  -khtml-user-select: none;
  /* Konqueror HTML */
  -moz-user-select: none;
  /* Old versions of Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  user-select: none;
  flex-direction: row !important;
  background-color: #1c1329;
  font-variant-numeric: tabular-nums;
}
.timeline .timeLineLeft {
  display: flex;
  flex: 1 1;
  flex-direction: column !important;
}
.timeline .timeLineLeft .timeSlider {
  display: flex;
  flex-grow: 1;
  flex-shrink: 1;
  align-items: center;
  position: relative;
  background: #291c41;
  color: #2cbbdf;
  font-family: 'UniNeueBook';
  font-weight: bold;
  font-size: 1.1em;
  overflow: hidden;
  cursor: grab;
}
.timeline .timeLineLeft .timeSlider div.tagList {
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 50000px;
  height: 2.5em;
  margin: 0 0 0 50%;
  padding: 0;
}
.timeline .timeLineLeft .timeSlider div.tagList .timeCursor {
  position: absolute;
  bottom: 0;
  width: 0.625em;
  height: 0.625em;
  -ms-transform: translateX(-0.375em);
  transform: translateX(-0.375em);
  background: url('../img/icon-cursor2.svg') center top;
  background-size: 0.625em 0.625em;
}
.timeline .timeLineLeft .timeSlider div.tagList div.tag {
  display: inline;
  float: left;
  clear: none;
  text-align: center;
  margin: 0.5em 0 0 0;
}
.timeline .timeLineLeft .timeSlider div.tagList div.tag span {
  font-size: 0.9em;
  vertical-align: -0.25em;
}
.timeline .timeLineLeft .dateSlider {
  display: flex;
  flex-grow: 1;
  flex-shrink: 1;
  align-items: center;
  position: relative;
  background: #4e255d;
  color: white;
  font-family: 'UniNeueBook';
  font-size: 1em;
  overflow-x: hidden;
  cursor: grab;
}
.timeline .timeLineLeft .dateSlider div.tagList {
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 50000px;
  height: 2.5em;
  margin: 0 0 0 50%;
  padding: 0;
  overflow: hidden;
}
.timeline .timeLineLeft .dateSlider div.tagList .dateCursor {
  position: absolute;
  top: 0;
  left: 0;
  width: 0.625em;
  height: 0.625em;
  -ms-transform: translateX(-0.375em);
  transform: translateX(-0.375em);
  background: url('../img/icon-cursor.svg') center top;
  background-size: 0.625em 0.625em;
}
.timeline .timeLineLeft .dateSlider div.tagList div.tag {
  display: inline;
  float: left;
  clear: none;
  text-align: center;
  margin: 0.5em 0 0 0;
  margin-right: -2px;
  border-right: 2px solid #35254a;
}
.timeline .timeLineLeft .dateSlider div.tagList div.tag .day {
  font-size: 1.2em;
  line-height: 0;
}
.timeline .timeLineLeft .dateSlider div.tagList div.tag .weekday {
  margin-left: 0.2em;
  font-size: 0.8em;
}
.timeline .timeLineLeft .dateSlider div.tagList .tag:first-child {
  border-left: 2px solid #35254a;
  margin-left: -4px;
}
.timeline .overlay {
  display: flex;
  flex: 0 0 6.25em;
  flex-direction: column !important;
  gap: 4px;
  align-items: stretch;
  margin: 0;
  padding: 4px;
}
.timeline .overlay img {
  width: 100%;
  height: 100%;
}
.timeline .overlay .overlayTop {
  display: flex;
  flex: 1 1 30%;
  gap: 4px;
}
.timeline .overlay .overlayTop .button-minus {
  display: flex;
  flex: 1 1 37.5%;
  background: #39307f;
  border-radius: 2px;
  cursor: pointer;
}
.timeline .overlay .overlayTop .button-minus img {
  margin: auto;
  width: 25%;
}
.timeline .overlay .overlayTop .button-plus {
  display: flex;
  flex: 1 1 38.5%;
  background: #39307f;
  border-radius: 2px;
  cursor: pointer;
}
.timeline .overlay .overlayTop .button-plus img {
  margin: auto;
  width: 25%;
}
.timeline .overlay .overlayTop .button-interpolation {
  display: flex;
  flex: 1 1 23%;
  animation-name: int-inactive;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  border-radius: 2px;
  cursor: pointer;
}
.timeline .overlay .overlayTop .button-interpolation img {
  margin: auto;
  width: 70%;
}
.timeline .overlay .overlayTop .button-interpolation.active {
  animation-name: int-active;
  animation-duration: 0.125s;
  animation-fill-mode: forwards;
}
@keyframes int-active {
  from {
    background-color: #39307f;
  }
  to {
    background-color: #f2015b;
  }
}
@keyframes int-inactive {
  from {
    background-color: #f2015b;
  }
  to {
    background-color: #39307f;
  }
}
.timeline .overlay .overlayBottom {
  display: flex;
  flex: 1 1 70%;
  gap: 4px;
  margin: 0;
}
.timeline .overlay .overlayBottom .button-slower,
.timeline .overlay .overlayBottom .button-faster {
  display: flex;
  flex: 1 1 23%;
  border: none;
  border-radius: 2px;
  background: #233f84;
  color: black;
  cursor: pointer;
}
.timeline .overlay .overlayBottom .button-slower img,
.timeline .overlay .overlayBottom .button-faster img {
  margin: auto;
  width: 60%;
}
.timeline .overlay .overlayBottom .button-play {
  display: flex;
  flex: 1 1 54%;
  border: none;
  border-radius: 2px;
  background: #098bc3;
  color: black;
  text-align: center;
  cursor: pointer;
}
.timeline .overlay .overlayBottom .button-play img {
  margin: auto;
  width: 50%;
}
