#loader{
  position:fixed; inset:0; background:var(--bg-dark); z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transition: opacity .6s ease, visibility .6s ease;
}
#loader.is-hidden{ opacity:0; visibility:hidden; }

.loader-logo-wrap{ position:relative; width:110px; height:110px; display:flex; align-items:center; justify-content:center; }
.loader-logo-wrap img{
  width: 90px; position:relative; z-index:2;
  animation: pulseLogo 1.8s ease-in-out infinite;
}
.loader-ring{
  position:absolute; inset:0; border-radius:50%;
  border: 2px solid rgba(210,171,104,0.15);
  border-top-color: var(--gold);
  animation: spinRing 1.1s linear infinite;
}
.loader-glow{
  position:absolute; inset:-20px; border-radius:50%;
  background: radial-gradient(circle, rgba(210,171,104,0.25), transparent 70%);
  animation: pulseGlow 1.8s ease-in-out infinite;
}

@keyframes spinRing{ to{ transform: rotate(360deg); } }
@keyframes pulseLogo{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.08); opacity:.85; } }
@keyframes pulseGlow{ 0%,100%{ opacity:.5; } 50%{ opacity:1; } }

.loader-text{ margin-top:22px; font-size:12px; letter-spacing:3px; color:rgba(210,171,104,0.7); }

@media (prefers-reduced-motion: reduce){
  .loader-logo-wrap img, .loader-ring, .loader-glow{ animation: none; }
}
