/* ================================================================
   MAMA BHANJA — Premium Loading Screen  v2
   Oil-dark stage · Amber/gold energy · Four-ring logo system
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@300;400;700;800&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body  { margin: 0; }
html  { overflow-x: hidden; overflow-y: scroll; }

/* ── Stage ─────────────────────────────────────────────────────── */
#loading-bg {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse 80% 60% at 50% 50%,
    #0E1016 0%, #07090D 55%, #04050A 100%);
  overflow: hidden;
  z-index: 9999;
}

/* Fine diagonal mesh texture */
#loading-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(
      45deg,
      rgba(245,158,11,0.018) 0px,
      rgba(245,158,11,0.018) 1px,
      transparent 1px,
      transparent 28px
    );
  pointer-events: none;
}

/* ── Radial spotlight ───────────────────────────────────────────── */
.spotlight {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 55% 45% at 50% 50%,
    rgba(245,158,11,0.07) 0%,
    rgba(245,158,11,0.02) 45%,
    transparent 70%);
  animation: spot-pulse 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes spot-pulse {
  0%,100% { opacity:.7; transform:scale(1);   }
  50%      { opacity:1;  transform:scale(1.12);}
}

/* ── Ambient orbs ───────────────────────────────────────────────── */
.orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}
.orb-tl {
  width: 560px; height: 560px;
  background: radial-gradient(circle, rgba(245,158,11,.09) 0%, transparent 65%);
  top: -180px; left: -150px;
  animation: orb-drift 7s ease-in-out infinite;
}
.orb-br {
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(234,88,12,.07) 0%, transparent 65%);
  bottom: -150px; right: -130px;
  animation: orb-drift 9s ease-in-out infinite reverse;
}
@keyframes orb-drift {
  0%,100% { transform:scale(1)   translateY(0);  }
  50%      { transform:scale(1.2) translateY(-20px); }
}

/* ── Floating oil-drop particles ────────────────────────────────── */
.particles { position:absolute; inset:0; overflow:hidden; pointer-events:none; }

.p {
  position: absolute;
  bottom: -20px;
  opacity: 0;
  border-radius: 50% 50% 50% 50% / 58% 58% 42% 42%;
  animation: float linear infinite;
}

.p1  { width:5px;  height:7px;  background:rgba(252,211,77,.70); left:4%;   animation-duration:7.2s; animation-delay:0s;   }
.p2  { width:4px;  height:5px;  background:rgba(245,158,11,.55); left:10%;  animation-duration:9.1s; animation-delay:1.3s; }
.p3  { width:6px;  height:8px;  background:rgba(245,158,11,.45); left:18%;  animation-duration:8.0s; animation-delay:2.1s; }
.p4  { width:4px;  height:6px;  background:rgba(234,88,12,.60);  left:27%;  animation-duration:6.4s; animation-delay:0.7s; }
.p5  { width:7px;  height:9px;  background:rgba(252,211,77,.55); left:36%;  animation-duration:10s;  animation-delay:3.2s; }
.p6  { width:5px;  height:7px;  background:rgba(245,158,11,.50); left:46%;  animation-duration:7.8s; animation-delay:1.6s; }
.p7  { width:4px;  height:5px;  background:rgba(234,88,12,.45);  left:56%;  animation-duration:8.6s; animation-delay:2.8s; }
.p8  { width:6px;  height:8px;  background:rgba(252,211,77,.60); left:64%;  animation-duration:6.9s; animation-delay:0.4s; }
.p9  { width:5px;  height:7px;  background:rgba(245,158,11,.55); left:74%;  animation-duration:9.4s; animation-delay:4.1s; }
.p10 { width:4px;  height:6px;  background:rgba(234,88,12,.50);  left:82%;  animation-duration:7.3s; animation-delay:1.9s; }
.p11 { width:6px;  height:8px;  background:rgba(252,211,77,.45); left:88%;  animation-duration:8.2s; animation-delay:3.5s; }
.p12 { width:4px;  height:5px;  background:rgba(245,158,11,.60); left:95%;  animation-duration:6.7s; animation-delay:0.9s; }

@keyframes float {
  0%   { bottom:-20px; opacity:0;   transform:translateX(0)    scale(1);   }
  12%  {               opacity:.85;                                         }
  85%  {               opacity:.55;                                         }
  100% { bottom:108%;  opacity:0;   transform:translateX(22px) scale(.35); }
}

/* ── Core content ───────────────────────────────────────────────── */
.core {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}

/* ── Logo ring system ────────────────────────────────────────────── */
.logo-system {
  position: relative;
  width: 170px;
  height: 170px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid transparent;
}

/* Ring 1 — outermost, slow */
.r1 {
  inset: 0;
  border-color: rgba(245,158,11,.18);
  border-top-color: rgba(245,158,11,.75);
  animation: spin 3.6s linear infinite;
}
.r1::before {
  content:'';
  position:absolute;
  top:-5px; left:50%;
  transform:translateX(-50%);
  width:10px; height:10px;
  background:#F59E0B;
  border-radius:50%;
  box-shadow:0 0 10px #F59E0B, 0 0 24px rgba(245,158,11,.7), 0 0 40px rgba(245,158,11,.3);
}

/* Ring 2 — dashed accent */
.r2 {
  inset: 14px;
  border: 1px dashed rgba(245,158,11,.15);
  animation: spin 8s linear infinite reverse;
}

/* Ring 3 — counter fast */
.r3 {
  inset: 26px;
  border-color: rgba(234,88,12,.14);
  border-bottom-color: rgba(234,88,12,.65);
  animation: spin 2.4s linear infinite reverse;
}
.r3::after {
  content:'';
  position:absolute;
  bottom:-5px; left:50%;
  transform:translateX(-50%);
  width:8px; height:8px;
  background:#EA580C;
  border-radius:50%;
  box-shadow:0 0 8px #EA580C, 0 0 18px rgba(234,88,12,.6);
}

/* Ring 4 — innermost glow ring */
.r4 {
  inset: 38px;
  border: 1px solid rgba(252,211,77,.08);
  box-shadow: inset 0 0 20px rgba(245,158,11,.04);
  animation: spin 12s linear infinite;
}

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

/* Oil drop */
.drop-wrap {
  width: 80px;
  height: 95px;
  position: relative;
  z-index: 2;
  animation: drop-levitate 3.2s ease-in-out infinite;
  filter:
    drop-shadow(0 0 14px rgba(245,158,11,.60))
    drop-shadow(0 0 36px rgba(245,158,11,.28))
    drop-shadow(0 0 70px rgba(245,158,11,.12));
}
.drop-wrap svg { width:100%; height:100%; }

@keyframes drop-levitate {
  0%,100% {
    transform:translateY(0) scale(1);
    filter:
      drop-shadow(0 0 14px rgba(245,158,11,.60))
      drop-shadow(0 0 36px rgba(245,158,11,.28));
  }
  50% {
    transform:translateY(-8px) scale(1.04);
    filter:
      drop-shadow(0 0 24px rgba(245,158,11,.90))
      drop-shadow(0 0 60px rgba(245,158,11,.45))
      drop-shadow(0 0 100px rgba(245,158,11,.18));
  }
}

/* ── Brand text ─────────────────────────────────────────────────── */
.brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  animation: brand-enter .8s cubic-bezier(.22,1,.36,1) forwards .25s;
  opacity: 0;
}

@keyframes brand-enter {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0);    }
}

.brand-eyebrow {
  font-family: 'Barlow', 'Arial Narrow', sans-serif;
  font-size: .58rem;
  font-weight: 400;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: rgba(245,158,11,.50);
}

.brand-title {
  font-family: 'Barlow', 'Arial Black', sans-serif;
  font-size: clamp(2.2rem, 5.5vw, 3.6rem);
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1;
  color: #fff;
  text-shadow:
    0 0 30px rgba(245,158,11,.30),
    0 0 80px rgba(245,158,11,.10);
  /* Gold bottom border accent */
  border-bottom: 2px solid transparent;
  border-image: linear-gradient(90deg, transparent, rgba(245,158,11,.55), transparent) 1;
  padding-bottom: 8px;
}

.brand-sub {
  font-family: 'Barlow', 'Inter', sans-serif;
  font-size: .62rem;
  font-weight: 300;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(245,158,11,.60);
}

/* ── Progress bar ───────────────────────────────────────────────── */
.progress-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 280px;
  animation: fade-in .6s ease forwards 1s;
  opacity: 0;
}

@keyframes fade-in {
  to { opacity:1; }
}

.progress-track {
  position: relative;
  width: 100%;
  height: 2px;
  background: rgba(245,158,11,.10);
  border-radius: 4px;
  overflow: hidden;
}

.progress-fill {
  position: absolute;
  inset-block: 0;
  left: 0;
  width: 0;
  border-radius: 4px;
  background: linear-gradient(90deg, #92400E, #F59E0B, #FCD34D, #F59E0B, #92400E);
  background-size: 250% 100%;
  animation:
    bar-grow  3s cubic-bezier(.4,0,.2,1) infinite 1.1s,
    bar-shift 1.8s linear infinite 1.1s;
  box-shadow: 0 0 10px rgba(245,158,11,.8), 0 0 24px rgba(245,158,11,.35);
}

@keyframes bar-grow {
  0%   { width:0;   }
  65%  { width:82%; }
  80%  { width:68%; }
  100% { width:92%; }
}
@keyframes bar-shift {
  0%   { background-position:0%   0%; }
  100% { background-position:250% 0%; }
}

/* Progress foot */
.progress-foot {
  display: flex;
  align-items: center;
  gap: 8px;
}

.progress-label {
  font-family: 'Inter', sans-serif;
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(245,158,11,.42);
  animation: label-breathe 2s ease-in-out infinite 1.5s;
}
@keyframes label-breathe {
  0%,100% { color:rgba(245,158,11,.42); }
  50%      { color:rgba(245,158,11,.72); }
}

/* Dot pulse */
.dot-pulse {
  display: flex;
  align-items: center;
  gap: 3px;
}
.dot-pulse span {
  display: block;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: rgba(245,158,11,.55);
  animation: dot-blink 1.4s ease-in-out infinite 1.2s;
}
.dot-pulse span:nth-child(2) { animation-delay:1.4s; }
.dot-pulse span:nth-child(3) { animation-delay:1.6s; }
@keyframes dot-blink {
  0%,80%,100% { opacity:.25; transform:scale(.8); }
  40%          { opacity:1;   transform:scale(1.2); }
}
