/* Ported from the reference build by tools/port/css.mjs. Do not edit; edit the generator or override in assets/css/theme/. */
.totop[data-c-main-back-to-top] {
  z-index: 90;
  backdrop-filter: blur(12px);
  width: 52px;
  height: 52px;
  color: var(--ink);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s var(--ease-out),
    translate 0.45s var(--ease-spring),
    scale 0.45s var(--ease-spring),
    visibility 0s linear 0.3s,
    background-color var(--dur);
  background: #ffffffd9;
  border-radius: 50%;
  place-items: center;
  text-decoration: none;
  display: grid;
  position: fixed;
  bottom: clamp(1rem, 2vw, 1.75rem);
  right: clamp(1rem, 2vw, 1.75rem);
  translate: 0 14px;
  scale: 0.9;
  box-shadow:
    inset 0 0 0 1px #ffffffe6,
    0 14px 30px -12px #16131b59;
}
@media (width<=640px) {
  .totop[data-c-main-back-to-top] {
    width: 42px;
    height: 42px;
    bottom: 0.75rem;
    right: 0.75rem;
  }
  .totop__icon[data-c-main-back-to-top] svg {
    width: 16px;
    height: 16px;
  }
}
.totop[data-c-main-back-to-top].is-visible {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
  translate: none;
  scale: 1;
}
.totop[data-c-main-back-to-top]:hover {
  background: var(--white);
  scale: 1.06;
}
.totop__ring[data-c-main-back-to-top] {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  rotate: -90deg;
}
.totop__track[data-c-main-back-to-top] {
  fill: none;
  stroke: #16131b14;
  stroke-width: 3px;
}
.totop__bar[data-c-main-back-to-top] {
  fill: none;
  stroke: url(#totop-grad);
  stroke-width: 3px;
  stroke-linecap: round;
}
.totop__icon[data-c-main-back-to-top] {
  transition: translate 0.4s var(--ease-spring);
  display: grid;
}
.totop[data-c-main-back-to-top]:hover .totop__icon[data-c-main-back-to-top] {
  translate: 0 -3px;
}
@media (prefers-reduced-motion: reduce) {
  .totop[data-c-main-back-to-top],
  .totop__icon[data-c-main-back-to-top] {
    transition: opacity 0.2s linear;
  }
}
