/* ── LOADING OVERLAY ─────────────────────────────────────── */
#loading-overlay {
  position: fixed; inset: 0; z-index: var(--z-loading);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: var(--primary);
  transition: opacity 0.8s var(--ease-out), visibility 0.8s;
  opacity: 1; visibility: visible;
}
#loading-overlay.hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.loading-logo-wrap {
  position: relative;
  width: 120px; height: 120px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 2.5rem;
}
.loading-ring {
  position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 0deg, var(--accent) 0%, var(--accent-light) 40%, transparent 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent 62%, #000 63%);
          mask: radial-gradient(farthest-side, transparent 62%, #000 63%);
  animation: ringSpin 1.8s linear infinite;
}
@keyframes ringSpin { to { transform: rotate(360deg); } }

.loading-logo {
  width: 86px; height: 86px; border-radius: var(--radius-lg);
  object-fit: cover; position: relative; z-index: 1;
  animation: logoPulse 2s ease-in-out infinite;
}
@keyframes logoPulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.85; transform: scale(1.04); }
}

.loading-brand {
  font-family: var(--font-accent);
  font-size: 1rem; letter-spacing: 0.3em;
  color: var(--accent); margin-bottom: 0.4rem;
  text-transform: uppercase;
}
.loading-sub {
  font-family: var(--font-body);
  font-size: 0.72rem; letter-spacing: 0.15em;
  color: var(--text-muted); text-transform: uppercase;
  margin-bottom: 2.5rem;
}
.loading-bar {
  width: 200px; height: 2px; border-radius: 2px;
  background: rgba(201,168,76,0.12); overflow: hidden;
}
.loading-bar-inner {
  height: 100%;
  background: linear-gradient(90deg, var(--accent-dark), var(--accent), var(--accent-light));
  background-size: 200%;
  animation: shimmer 1.8s ease-in-out infinite, loadGrow 2s ease-out forwards;
}
@keyframes loadGrow {
  0%   { width: 0%; }
  60%  { width: 75%; }
  100% { width: 95%; }
}
@media (prefers-reduced-motion: reduce) {
  .loading-ring, .loading-logo, .loading-bar-inner { animation: none !important; }
  .loading-bar-inner { width: 80%; }
}
