/* slightly adapted from vivime.info*/

.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted var(--tooltip-underline);
  cursor: pointer;
}

.tooltip > tooltip {
  visibility: hidden;
  text-align: center;
  position: absolute;
  z-index: 1;

  background-color: var(--tooltip);
  color: var(--tooltip-text);
  padding: 5px 0;
  border-radius: 6px;
  user-select: none;

  width: 15em;
  margin: 0.5em 0 0 -7.5em;
  left: 50%;
  transform: translateX(-50%);

  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip > tooltip:after {
  content: ' ';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: var(--tooltip) transparent transparent transparent;
}

.tooltip:hover > tooltip {
  visibility: visible;
  opacity: 1;
}

[tooltip-position='bottom'] > tooltip {
  margin: 0;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}

[tooltip-position='bottom'] > tooltip:after {
  content: ' ';
  position: absolute;
  bottom: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent var(--tooltip) transparent;
}

@keyframes load-in {
  0% {
    opacity: 0%;
  }

  80% {
    opacity: 0%;
  }

  100% {
    opacity: 100%;
  }
}

@keyframes tooltip-in {
  0% {
    bottom: 50%;
    visibility: hidden;
  }

  100% {
    bottom: 100%;
    visibility: visible;
  }
}

@keyframes tooltip-out {
  0% {
    bottom: 100%;
    visibility: visible;
  }

  100% {
    bottom: 80%;
    visibility: hidden;
  }
}

@keyframes tooltip-in-bottom {
  0% {
    top: 150%;
    visibility: hidden;
  }

  100% {
    top: 100%;
    visibility: visible;
  }
}

@keyframes tooltip-out-bottom {
  0% {
    top: 100%;
    visibility: visible;
  }

  100% {
    top: 120%;
    visibility: hidden;
  }
}
