:root{
  --prestige-bg-1:#051216;
  --prestige-bg-2:#0b1d22;
  --prestige-bg-3:#142a31;
  --prestige-gold:#d8be91;
  --prestige-gold-strong:#e4cca2;
  --prestige-gold-soft:rgba(216,190,145,.16);
  --prestige-white-soft:rgba(255,255,255,.75);
  --prestige-track:rgba(255,255,255,.08);
  --prestige-shadow:0 0 36px rgba(216,190,145,.18), 0 20px 70px rgba(0,0,0,.45);
}

.prestige-loader-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 30%, rgba(216,190,145,.08), transparent 28%),
    radial-gradient(circle at 10% 10%, rgba(0,129,141,.12), transparent 24%),
    radial-gradient(circle at 90% 80%, rgba(0,129,141,.10), transparent 24%),
    linear-gradient(135deg, var(--prestige-bg-1), var(--prestige-bg-2) 45%, var(--prestige-bg-3));
  overflow:hidden;
  transition:opacity .45s ease, visibility .45s ease;
  opacity:1;
  visibility:visible;
}

.prestige-loader-overlay.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.prestige-loader-overlay::before{
  content:"";
  position:absolute;
  inset:-20%;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.03) 50%, transparent 100%);
  transform:rotate(8deg);
  animation:prestigeAmbientSweep 8s linear infinite;
  opacity:.45;
}

.prestige-loader-overlay::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at center, rgba(255,255,255,.05) 0 1px, transparent 1.5px);
  background-size:22px 22px;
  opacity:.05;
  mix-blend-mode:screen;
  pointer-events:none;
}

.prestige-loader-stage{
  position:relative;
  width:min(90vw, 980px);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:22px;
  padding:32px 24px;
}

.prestige-logo-shell{
  position:relative;
  width:min(82vw, 780px);
  padding:20px 26px;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.06);
  box-shadow:var(--prestige-shadow);
  backdrop-filter: blur(4px);
  animation:prestigeFloat 4.5s ease-in-out infinite;
}

.prestige-logo-wrap{
  position:relative;
  display:block;
  overflow:hidden;
}

.prestige-logo{
  position:relative;
  display:block;
  width:100%;
  height:auto;
  opacity:0;
  transform:translateY(10px) scale(.985);
  filter: drop-shadow(0 0 24px rgba(216,190,145,.18));
  animation:prestigeLogoIn 1s cubic-bezier(.2,.8,.2,1) .15s forwards;
}

.prestige-logo-wrap::after{
  content:"";
  position:absolute;
  top:-20%;
  left:-18%;
  width:26%;
  height:140%;
  background:linear-gradient(
    100deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.06) 20%,
    rgba(255,255,255,.9) 48%,
    rgba(255,255,255,.06) 76%,
    rgba(255,255,255,0) 100%
  );
  filter:blur(8px);
  opacity:.55;
  transform:translateX(-160%) skewX(-18deg);
  mix-blend-mode:screen;
  animation:prestigeShine 2.8s cubic-bezier(.2,.7,.2,1) .8s infinite;
}

.prestige-status{
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--prestige-white-soft);
  font-family:Inter, Segoe UI, Roboto, Arial, sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
}

.prestige-dots{
  display:inline-flex;
  gap:6px;
}

.prestige-dots span{
  width:6px;
  height:6px;
  border-radius:999px;
  background:var(--prestige-gold);
  opacity:.28;
  animation:prestigePulse 1.4s infinite ease-in-out;
}

.prestige-dots span:nth-child(2){ animation-delay:.2s; }
.prestige-dots span:nth-child(3){ animation-delay:.4s; }

.prestige-progress{
  position:relative;
  width:min(70vw, 420px);
  height:8px;
  border-radius:999px;
  overflow:hidden;
  background:var(--prestige-track);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}

.prestige-progress-fill{
  position:absolute;
  inset:0 auto 0 0;
  width:0%;
  border-radius:inherit;
  background:
    linear-gradient(90deg, rgba(216,190,145,.45), rgba(228,204,162,.95), rgba(216,190,145,.55));
  box-shadow:0 0 22px rgba(216,190,145,.45);
  transition:width .22s ease-out;
}

.prestige-progress-fill::after{
  content:"";
  position:absolute;
  right:-18px;
  top:50%;
  width:40px;
  height:180%;
  transform:translateY(-50%);
  background:radial-gradient(circle, rgba(255,255,255,.8), rgba(255,255,255,0) 70%);
  opacity:.55;
}

.prestige-percent{
  font-family:Inter, Segoe UI, Roboto, Arial, sans-serif;
  font-size:13px;
  color:rgba(255,255,255,.78);
  letter-spacing:.08em;
}

.prestige-spark{
  position:absolute;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--prestige-gold);
  box-shadow:0 0 12px rgba(216,190,145,.8);
  opacity:0;
  animation:prestigeSpark 3.2s linear infinite;
}

.prestige-spark.s1{ top:18%; left:12%; animation-delay:.15s; }
.prestige-spark.s2{ top:26%; right:16%; animation-delay:1.1s; }
.prestige-spark.s3{ bottom:24%; left:18%; animation-delay:1.85s; }
.prestige-spark.s4{ bottom:17%; right:11%; animation-delay:2.4s; }

@keyframes prestigeLogoIn{
  0%{ opacity:0; transform:translateY(10px) scale(.985); filter:blur(8px) drop-shadow(0 0 0 rgba(216,190,145,0)); }
  100%{ opacity:1; transform:translateY(0) scale(1); filter:blur(0) drop-shadow(0 0 24px rgba(216,190,145,.18)); }
}

@keyframes prestigeShine{
  0%{ transform:translateX(-170%) skewX(-18deg); opacity:0; }
  18%{ opacity:.5; }
  50%{ opacity:.8; }
  82%{ opacity:.45; }
  100%{ transform:translateX(580%) skewX(-18deg); opacity:0; }
}

@keyframes prestigePulse{
  0%, 80%, 100%{ opacity:.22; transform:translateY(0) scale(.92); }
  40%{ opacity:1; transform:translateY(-1px) scale(1.1); }
}

@keyframes prestigeFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-5px); }
}

@keyframes prestigeAmbientSweep{
  0%{ transform:translateX(-25%) rotate(8deg); }
  100%{ transform:translateX(25%) rotate(8deg); }
}

@keyframes prestigeSpark{
  0%{ opacity:0; transform:translate3d(0, 10px, 0) scale(.5); }
  18%{ opacity:.9; }
  55%{ opacity:.55; }
  100%{ opacity:0; transform:translate3d(0, -26px, 0) scale(1.35); }
}

@media (max-width: 640px){
  .prestige-loader-stage{ gap:18px; }
  .prestige-logo-shell{ padding:16px 18px; border-radius:22px; }
  .prestige-status{ font-size:11px; letter-spacing:.14em; gap:10px; }
  .prestige-progress{ width:min(78vw, 340px); }
}