/* TripYatra premium Lottie loading screen */
:root {
  --tripy-loader-ink: #0d1b3d;
  --tripy-loader-muted: #5f6f8d;
}

html.tripy-premium-loading,
body.tripy-premium-loading {
  overflow: hidden !important;
  overscroll-behavior: none;
}

body.tripy-premium-loading .tripy-public-footer,
body.tripy-premium-loading #tripy-web-service-fab,
body.tripy-premium-loading #tripy-web-service-menu,
body.tripy-premium-loading .tripy-web-fab,
body.tripy-premium-loading .tripy-web-fab-menu,
body.tripy-premium-loading .tripy-web-drawer {
  display: none !important;
}

body.tripy-premium-loading #tripy-web-app > .tripy-web-main,
body.tripy-premium-loading #tripy-web-app > main {
  visibility: hidden !important;
}

.tripy-premium-loader {
  position: fixed;
  inset: 0;
  z-index: 2147482000;
  display: grid;
  place-items: center;
  min-height: 100dvh;
  padding: max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 15%, rgba(53, 169, 255, 0.15), transparent 34%),
    radial-gradient(circle at 84% 82%, rgba(70, 224, 119, 0.13), transparent 36%),
    linear-gradient(145deg, #fbfdff 0%, #f3f8ff 48%, #f9fffb 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity 320ms ease, visibility 320ms ease;
}

.tripy-premium-loader::before,
.tripy-premium-loader::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(18px);
  opacity: 0.42;
  pointer-events: none;
  animation: tripy-loader-orbit 5.4s ease-in-out infinite alternate;
}

.tripy-premium-loader::before {
  width: min(38vw, 420px);
  height: min(38vw, 420px);
  top: -18%;
  right: -8%;
  background: rgba(40, 96, 255, 0.13);
}

.tripy-premium-loader::after {
  width: min(34vw, 360px);
  height: min(34vw, 360px);
  bottom: -16%;
  left: -7%;
  background: rgba(23, 205, 104, 0.12);
  animation-delay: -1.8s;
}

.tripy-premium-loader__content {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  width: min(92vw, 520px);
  text-align: center;
}

.tripy-premium-loader__animation-wrap {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(180px, 24vw, 248px);
  aspect-ratio: 1;
}

.tripy-premium-loader__animation {
  width: 100%;
  height: 100%;
}

.tripy-premium-loader__animation svg,
.tripy-premium-loader__animation canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}


.tripy-premium-loader__text {
  margin: 2px 0 0;
  color: var(--tripy-loader-ink);
  font: 800 clamp(18px, 2.2vw, 24px)/1.25 "DM Sans", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: -0.025em;
}

.tripy-premium-loader__text::after {
  content: "";
  display: inline-block;
  width: 1.1em;
  text-align: left;
  animation: tripy-loader-dots 1.35s steps(4, end) infinite;
}

.tripy-premium-loader__hint {
  margin: 9px 0 0;
  color: var(--tripy-loader-muted);
  font: 600 13px/1.45 "DM Sans", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  opacity: 0.84;
}

.tripy-premium-loader.is-leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.tripy-premium-loader[data-loader-screen="home"] {
  transition-duration: 160ms;
}


@keyframes tripy-loader-orbit {
  from { transform: translate3d(-2%, -1%, 0) scale(0.94); }
  to { transform: translate3d(4%, 3%, 0) scale(1.08); }
}

@keyframes tripy-loader-dots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75%, 100% { content: "..."; }
}

@media (max-width: 640px) {
  .tripy-premium-loader__animation-wrap {
    width: clamp(154px, 48vw, 190px);
  }

  .tripy-premium-loader__text {
    font-size: 18px;
  }

  .tripy-premium-loader__hint {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tripy-premium-loader::before,
  .tripy-premium-loader::after,
  .tripy-premium-loader__text::after {
    animation-duration: 3s;
  }
}

/* Keep the reusable navigation loader dormant without background animation work. */
.tripy-premium-loader.is-leaving::before,
.tripy-premium-loader.is-leaving::after,
.tripy-premium-loader.is-leaving .tripy-premium-loader__text::after {
  animation: none !important;
}
