/* Loading follows real requests. The shell remains available for interrupted navigation. */
.tw-route-loader {
  color: var(--tw-paper, #f5f5f5);
  font-family: var(--font-poppins, Satoshi, sans-serif);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 32px 24px;
}
.tw-route-loader {
  position: fixed;
  inset: 0;
  z-index: 12000;
  background: color-mix(in srgb, var(--tw-ink, #0a0a0a) 86%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 280ms ease,
    visibility 0s linear 280ms;
}
.tw-route-loader[data-visible="true"] {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}
@starting-style {
  .tw-route-loader[data-visible="true"] {
    opacity: 0;
  }
}
.tw-loading-artwork {
  width: min(100%, 340px);
  overflow-wrap: anywhere;
}
.tw-loading-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  animation: tw-loading-breathe calc(1.8s / var(--cms-motion-speed, 1))
    ease-in-out infinite;
}
.tw-loading-brand img {
  display: block;
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 50%;
}
.tw-loading-brand > span {
  font: 500 clamp(22px, 5vw, 30px)/1.12
    var(--font-montserrat, "Clash Display", sans-serif);
  letter-spacing: -0.03em;
}
.tw-loading-brand small {
  display: block;
  margin-top: 8px;
  font: 400 12px/1.5 var(--font-poppins, Satoshi, sans-serif);
  letter-spacing: 0.12em;
}
.tw-loading-trail {
  display: block;
  width: 128px;
  height: 2px;
  margin: 32px auto 22px;
  overflow: hidden;
  background: #ffffff20;
  border-radius: 2px;
}
.tw-loading-trail i {
  display: block;
  height: 100%;
  width: 44%;
  border-radius: inherit;
  background: var(--tw-accent, #ff4d1f);
  animation: tw-loading-travel calc(1.6s / var(--cms-motion-speed, 1))
    ease-in-out infinite;
}
.tw-loading-artwork p {
  margin: 0;
  min-height: 3em;
  font-size: 13px;
  line-height: 1.5;
  color: inherit;
  opacity: 0.65;
}
.tw-route-loader:not([data-visible="true"]) .tw-loading-brand,
.tw-route-loader:not([data-visible="true"]) .tw-loading-trail i {
  animation-play-state: paused;
}
@keyframes tw-loading-breathe {
  0%,
  100% {
    opacity: 0.45;
    transform: translateY(2px);
  }
  50% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes tw-loading-travel {
  0% {
    transform: translateX(-110%);
  }
  100% {
    transform: translateX(330%);
  }
}
.tw-route-loader[data-motion="false"],
.tw-route-loader[data-motion="false"] * {
  animation: none;
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .tw-route-loader,
  .tw-loading-brand,
  .tw-loading-trail i {
    animation: none;
    transition: none;
  }
  .tw-loading-trail i {
    width: 100%;
  }
}
