/* ============================================================
   PAGE LOADER OVERLAY
   Shows after 300ms delay if page hasn't fully loaded
   ============================================================ */

#page-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  background: #0b0b0e;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
  pointer-events: none;
}
#page-loader.visible { opacity: 1; visibility: visible; pointer-events: all; }
#page-loader.hiding  { opacity: 0; visibility: hidden; }

.loader-logo-wrap {
  position: relative;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loader-logo {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: contain;
  animation: loaderPulse 1.6s ease-in-out infinite;
  position: relative;
  z-index: 2;
}
.loader-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 3px solid transparent;
  border-top-color: #d30026;
  border-right-color: rgba(211,0,38,0.3);
  animation: loaderSpin 0.9s linear infinite;
}
.loader-ring-outer {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px solid transparent;
  border-bottom-color: rgba(211,0,38,0.15);
  border-left-color: rgba(139,0,93,0.12);
  animation: loaderSpin 1.8s linear infinite reverse;
}
.loader-text {
  font-family: Inter, Outfit, -apple-system, sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(255,255,255,0.35);
  letter-spacing: 2.5px;
  text-transform: uppercase;
  animation: loaderTextPulse 1.6s ease-in-out infinite;
}
#page-loader::before {
  content: '';
  position: absolute;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(211,0,38,0.06) 0%, transparent 70%);
  border-radius: 50%;
  animation: loaderGlow 2s ease-in-out infinite alternate;
}
@keyframes loaderSpin      { to { transform: rotate(360deg); } }
@keyframes loaderPulse     { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(0.91);opacity:0.78} }
@keyframes loaderTextPulse { 0%,100%{opacity:0.35} 50%{opacity:0.65} }
@keyframes loaderGlow      { from{transform:scale(0.8);opacity:0.5} to{transform:scale(1.2);opacity:1} }