.sd-loading-page{
  min-height: 82vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  color: white;
}

.sd-loading-card{
  width: min(520px, 92vw);
  padding: 34px 30px;
  border-radius: 24px;
  text-align: center;
  background:
    radial-gradient(circle at top, rgba(40,167,69,.18), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 70px rgba(0,0,0,.45);
}

.sd-loading-logo{
  width: 118px;
  height: auto;
  object-fit: contain;
  margin-bottom: 22px;
  opacity: .96;
}

.sd-loading-spinner{
  width: 58px;
  height: 58px;
  margin: 0 auto 22px;
  border-radius: 999px;
  border: 4px solid rgba(255,255,255,.16);
  border-top-color: #2ecc71;
  animation: sdLoadingSpin .85s linear infinite;
  box-shadow: 0 0 28px rgba(46,204,113,.24);
}

@keyframes sdLoadingSpin{
  to { transform: rotate(360deg); }
}

.sd-loading-title{
  font-size: 22px;
  font-weight: 850;
  margin: 0 0 8px;
}

.sd-loading-subtitle{
  font-size: 14px;
  line-height: 1.45;
  opacity: .76;
  max-width: 420px;
  margin: 0 auto;
}

.sd-loading-small{
  font-size: 12px;
  opacity: .48;
  margin-top: 14px;
}




.sd-loading-page{
  min-height: 82vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  color: white;
}

.sd-loading-card{
  width: min(560px, 92vw);
  padding: 34px 30px;
  border-radius: 24px;
  text-align: center;
  background:
    radial-gradient(circle at top, rgba(40,167,69,.20), transparent 44%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 70px rgba(0,0,0,.48);
}

.sd-loading-logo{
  width: 118px;
  height: auto;
  object-fit: contain;
  margin-bottom: 18px;
  opacity: .96;
}

.sd-loading-spinner{
  width: 52px;
  height: 52px;
  margin: 0 auto 20px;
  border-radius: 999px;
  border: 4px solid rgba(255,255,255,.16);
  border-top-color: #2ecc71;
  animation: sdLoadingSpin .85s linear infinite;
  box-shadow: 0 0 28px rgba(46,204,113,.24);
}

@keyframes sdLoadingSpin{
  to { transform: rotate(360deg); }
}

.sd-loading-title{
  font-size: 23px;
  font-weight: 850;
  margin: 0 0 10px;
}

.sd-loading-subtitle{
  font-size: 14px;
  line-height: 1.45;
  opacity: .82;
  max-width: 450px;
  margin: 0 auto 18px;
}

.sd-loading-stage-main{
  font-weight: 800;
  font-size: 15px;
  color: #f4fff7;
}

.sd-loading-stage-sub{
  font-size: 13px;
  opacity: .68;
  margin-top: 3px;
}

.sd-xp-wrap{
  margin: 22px auto 14px;
  width: min(460px, 100%);
}

.sd-xp-topline{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
  font-size: 12px;
  letter-spacing: .3px;
  text-transform: uppercase;
}

.sd-xp-label{
  opacity: .68;
  font-weight: 800;
}

.sd-xp-percent{
  font-weight: 900;
  color: #9be79b;
  text-shadow: 0 0 10px rgba(46,204,113,.45);
}

.sd-xp-bar{
  position: relative;
  width: 100%;
  height: 18px;
  padding: 3px;
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow:
    inset 0 2px 8px rgba(0,0,0,.45),
    0 10px 30px rgba(0,0,0,.30);
  overflow: hidden;
}

.sd-xp-fill{
  height: 100%;
  min-width: 0%;
  border-radius: 999px;
  background:
    linear-gradient(90deg, #1fae55 0%, #2ecc71 48%, #a3ffbf 100%);
  box-shadow:
    0 0 18px rgba(46,204,113,.55),
    inset 0 1px 0 rgba(255,255,255,.35);
  transition: width .35s cubic-bezier(.22,.9,.28,1);
  position: relative;
  overflow: hidden;
}

.sd-xp-fill::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      120deg,
      transparent 0%,
      transparent 35%,
      rgba(255,255,255,.42) 50%,
      transparent 65%,
      transparent 100%
    );
  transform: translateX(-100%);
  animation: sdXpShine 1.25s linear infinite;
}

@keyframes sdXpShine{
  to { transform: translateX(100%); }
}

.sd-loading-small{
  font-size: 12px;
  opacity: .58;
  margin-top: 12px;
}

.sd-loading-errors{
  margin-top: 10px;
}

.sd-loading-error-soft{
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,193,7,.12);
  border: 1px solid rgba(255,193,7,.25);
  color: #ffd666;
  font-size: 12px;
}



.sd-loading-stage-now{
  margin-top: 8px;
  font-size: 12px;
  font-weight: 800;
  color: #9be79b;
  text-transform: uppercase;
  letter-spacing: .35px;
}

.sd-loading-stage-last{
  margin-top: 4px;
  font-size: 12px;
  opacity: .58;
}