:root {
  --bt-loader-bg: #050505;
  --bt-loader-text: #f5f7f6;
  --bt-loader-muted: rgba(245, 247, 246, 0.64);
  --bt-loader-accent: #ff7a18;
  --bt-loader-accent-strong: #ff9634;
  --bt-loader-track: rgba(245, 247, 246, 0.11);
  --bt-loader-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --bt-layer-page-loader: 2147483600;
}

html {
  background-color: var(--bt-loader-bg);
}

html.bt-page-loader-active {
  overflow: hidden;
}

.bt-page-loader,
.bt-page-loader * {
  box-sizing: border-box;
}

.bt-page-loader {
  position: fixed;
  inset: 0;
  z-index: var(--bt-layer-page-loader);
  display: grid;
  min-width: 100%;
  min-height: 100%;
  min-height: 100dvh;
  place-items: center;
  padding:
    max(24px, env(safe-area-inset-top))
    max(20px, env(safe-area-inset-right))
    max(24px, env(safe-area-inset-bottom))
    max(20px, env(safe-area-inset-left));
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 37%, rgba(255, 122, 24, 0.055), transparent 29%),
    var(--bt-loader-bg);
  color: var(--bt-loader-text);
  font-family: "Montserrat", "Segoe UI", "Inter", Arial, sans-serif;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 420ms var(--bt-loader-ease),
    visibility 0s linear 0s;
}

/* Keep the authenticated App navigation usable while page-owned data loads. */
.bt-page-loader[data-navigation="ready"] {
  z-index: var(--bt-layer-page-loader);
}

html.bt-page-loader-active :is(.bt-auth-shell, .bt-auth-localbar, .bt-app-header) {
  z-index: 2147483601;
}

html.bt-page-loader-active .bt-auth-localbar {
  position: relative;
}

html.bt-page-loader-active .bt-auth-shell__backdrop {
  z-index: 2147483602;
}

html.bt-page-loader-active .bt-auth-shell__drawer {
  z-index: 2147483603;
}

.bt-page-loader[data-state="leaving"],
.bt-page-loader[data-state="hidden"] {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 420ms var(--bt-loader-ease),
    visibility 0s linear 420ms;
}

.bt-page-loader__stage {
  display: grid;
  width: min(760px, 100%);
  max-width: 100%;
  margin-inline: auto;
  justify-self: center;
  justify-items: center;
  transform: translateY(-1.5vh);
}

.bt-page-loader__visual {
  position: relative;
  display: grid;
  width: clamp(220px, 22vw, 286px);
  margin-inline: auto;
  aspect-ratio: 1;
  justify-self: center;
  place-items: center;
}

.bt-page-loader__progress {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform: rotate(-90deg);
}

.bt-page-loader__progress-track,
.bt-page-loader__progress-value {
  fill: none;
}

.bt-page-loader__progress-track {
  stroke: var(--bt-loader-track);
  stroke-width: 2.2;
}

.bt-page-loader__progress-value {
  stroke: var(--bt-loader-accent-strong);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-dasharray: 282.743;
  stroke-dashoffset: 282.743;
  filter: drop-shadow(0 0 2px var(--bt-loader-accent)) drop-shadow(0 0 7px rgba(255, 122, 24, 0.58));
  transition: stroke-dashoffset 100ms linear;
}

.bt-page-loader__percentage {
  position: relative;
  color: var(--bt-loader-accent-strong);
  font-size: clamp(54px, 5.5vw, 76px);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.055em;
  line-height: 1;
  text-shadow: 0 0 24px rgba(255, 122, 24, 0.13);
}

.bt-page-loader__copy {
  width: min(680px, 100%);
  margin-top: clamp(30px, 4.8vh, 44px);
  margin-inline: auto;
  justify-self: center;
  text-align: center;
}

.bt-page-loader__title,
.bt-page-loader__subtitle {
  margin: 0;
  text-wrap: balance;
}

.bt-page-loader__title {
  color: var(--bt-loader-text);
  font-size: clamp(29px, 3vw, 42px);
  font-weight: 750;
  letter-spacing: -0.035em;
  line-height: 1.15;
}

.bt-page-loader__subtitle {
  margin-top: 12px;
  color: var(--bt-loader-muted);
  font-size: clamp(15px, 1.35vw, 19px);
  font-weight: 450;
  line-height: 1.5;
}

.bt-page-loader__tip-window {
  position: relative;
  width: min(680px, 100%);
  min-height: 96px;
  margin-top: clamp(42px, 6.5vh, 62px);
  margin-inline: auto;
  justify-self: center;
  overflow: hidden;
}

.bt-page-loader__tip {
  position: absolute;
  inset: 0;
  display: grid;
  width: 100%;
  align-content: start;
  justify-items: center;
  gap: 8px;
  margin: 0;
  color: var(--bt-loader-muted);
  font: 500 clamp(14px, 1.18vw, 16px) / 1.55 "Montserrat", "Segoe UI", "Inter", Arial, sans-serif;
  text-align: center;
  text-wrap: balance;
  opacity: 0;
  transform: translate3d(0, 10px, 0);
  transition:
    opacity 220ms ease-out,
    transform 320ms var(--bt-loader-ease);
  will-change: opacity, transform;
}

.bt-page-loader__tip.is-current {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.bt-page-loader__tip.is-leaving {
  opacity: 0;
  transform: translate3d(0, -10px, 0);
}

.bt-page-loader__tip-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  color: var(--bt-loader-text);
  font-weight: 700;
}

.bt-page-loader__tip-label::before {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--bt-loader-accent);
  box-shadow: 0 0 14px rgba(255, 122, 24, 0.72);
  content: "";
}

.bt-page-loader__tip > [data-bt-page-loader-tip] {
  width: min(54ch, 100%);
  text-align: center;
  text-wrap: balance;
}

.bt-page-loader__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 479px) {
  .bt-page-loader__stage {
    transform: translateY(-1vh);
  }

  .bt-page-loader__visual {
    width: clamp(190px, 62vw, 224px);
  }

  .bt-page-loader__percentage {
    font-size: clamp(48px, 16vw, 60px);
  }

  .bt-page-loader__copy {
    margin-top: 30px;
  }

  .bt-page-loader__title {
    font-size: clamp(27px, 8.5vw, 32px);
  }

  .bt-page-loader__subtitle {
    margin-top: 9px;
    font-size: 15px;
  }

  .bt-page-loader__tip-window {
    min-height: 116px;
    margin-top: 40px;
  }

  .bt-page-loader__tip {
    padding-inline: 4px;
  }
}

@media (max-height: 660px) {
  .bt-page-loader__visual {
    width: clamp(170px, 40vh, 206px);
  }

  .bt-page-loader__percentage {
    font-size: clamp(44px, 10vh, 56px);
  }

  .bt-page-loader__copy {
    margin-top: 18px;
  }

  .bt-page-loader__title {
    font-size: clamp(25px, 5.2vh, 30px);
  }

  .bt-page-loader__subtitle {
    margin-top: 6px;
    font-size: 14px;
  }

  .bt-page-loader__tip-window {
    min-height: 90px;
    margin-top: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bt-page-loader,
  .bt-page-loader__tip,
  .bt-page-loader__progress-value {
    transition-duration: 1ms;
  }
}

@media (forced-colors: active) {
  .bt-page-loader {
    background: Canvas;
    color: CanvasText;
  }

  .bt-page-loader__progress-track {
    stroke: GrayText;
  }

  .bt-page-loader__progress-value {
    stroke: Highlight;
    filter: none;
  }

  .bt-page-loader__percentage,
  .bt-page-loader__title,
  .bt-page-loader__tip-label {
    color: CanvasText;
  }

  .bt-page-loader__tip-label::before {
    background: Highlight;
    box-shadow: none;
  }
}
