::view-transition-old(root), ::view-transition-new(root) {
  animation-duration: 0.15s;
}

@keyframes zoomIn {
  from {
    transform: scale(0.5);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes zoomOut {
  from {
    transform: scale(1);
    opacity: 1;
  }
  to {
    transform: scale(0.5);
    opacity: 0;
  }
}

::view-transition-new(zoom) {
  animation: zoomIn 0.4s ease forwards;
}

::view-transition-old(zoom) {
  animation: zoomOut 0.4s ease forwards;
}

::view-transition-new(navbar),
::view-transition-old(navbar) {
  height: 100%;
  overflow: clip;
  animation-duration: 0.3s;
}

.animated-popover {
  &[open] {
    @starting-style {
      transform: translateY(20px);
      opacity: 0;
    }

    transform: translateY(0);
    opacity: 1;
  }

  &:popover-open {
    @starting-style {
      transform: translateY(20px);
      opacity: 0;
    }

    transform: translateY(0);
    opacity: 1;
  }

  transform: translateY(-50px);
  opacity: 0;
  transition: transform 0.5s, opacity 0.5s, display 0.5s allow-discrete;
}

.loader {
  width: 60px;
  aspect-ratio: 4;
  animation: l2 1.5s steps(3) infinite;
  background: radial-gradient(circle closest-side,#000 90%,#0000) 0/calc(100%/3) 100% no-repeat;
}
.dark .loader {
  background: radial-gradient(circle closest-side,#fff 90%,#0000) 0/calc(100%/3) 100% no-repeat;
}

@keyframes l2 {
  to {
    background-position: 150%;
  }
}

.animate-dash {
  animation: dash 0.5s linear forwards;
}

@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}
