.viewbox svg.outer {
  background-color: white;
  border: 1px solid #ddd;
}
.viewbox .inner .separator {
  stroke: #4cd2da;
  stroke-width: 2;
}
.viewbox .outer > .separator {
  stroke: #aaa;
  stroke-width: 1;
}
.viewbox .inner .labels {
  fill: #4cd2da;
}
.viewbox .outer > .labels {
  fill: #ccc;
}
.viewbox .guide-trigger {
  background-color: #2cb2ba;
  color: white;
  padding: 0.5em 1em;
  border-radius: 5px;
  border: none;
  font-size: 1.5em;
  color: #eee;
  text-align: center;
  display: block;
  width: 100%;
  cursor: pointer;
  margin-bottom: 14em;
  -webkit-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
}
.viewbox .guide-trigger:hover {
  background-color: transparent;
}

.underline {
  position: relative;
  display: inline-block;
  text-decoration: none !important;
}
.underline::before {
  position: absolute;
  left: 0;
  bottom: 0px;
  height: 3px;
  width: 100%;
  content: "";
  border-bottom: 3px solid black;
}
.underline.sp::before {
  border-color: #7828fa;
}
.underline.cp::before {
  border-color: #37dc93;
}
.underline.ep::before {
  border-color: #f66755;
}

.guidelines {
  display: none;
}

#bezierCurve circle:hover,
#bezierCurveQ circle:hover {
  cursor: hand;
}

svg.path circle,
svg.path line {
  opacity: 0;
}
svg.path.modif circle,
svg.path.modif line {
  opacity: 1;
}

.playground {
  background-color: white;
}

.layered-animations {
  position: relative;
  /* z-index: 0; */
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 60%;
  height: 60%;
}
.dark .layered-animations {
  filter: invert(1);
}

.layered-animations .shape {
  position: absolute;
  overflow: visible;
  width: 23vw;
  height: 23vw;
  /* stroke-width: 0.25px; */
  /* stroke: transparent; */
  fill: transparent;
  /* filter: drop-shadow(0 0 0.5rem rgba(0, 0, 0, 0.5)); */
}

.layered-animations .small.shape {
  width: 3rem;
  height: 3rem;
  /* stroke: white; */
  /* stroke-width: 1px; */
  fill: transparent;
  stroke-width: 2px;
  stroke: #333333;
}
