/* Custom Cursor Glow */
@media (pointer: fine) {
  .custom-cursor-glow {
    position: fixed;
    top: -50px;
    left: -50px;
    width: 20px;
    height: 20px;
    background-color: rgba(207, 168, 110, 0.45); /* Gold color */
    border-radius: 50%;
    pointer-events: none;
    z-index: 10000;
    transform: translate(-50%, -50%);
    transition: width 0.25s ease, height 0.25s ease, background-color 0.25s ease, opacity 0.25s ease;
    mix-blend-mode: screen;
    filter: blur(2px);
    opacity: 0; /* Hidden by default - no tracking dot */
  }
  
  /* Magnified state when hovering over links/clickable elements */
  .custom-cursor-glow.hovering {
    width: 44px;
    height: 44px;
    background-color: rgba(207, 168, 110, 0.12);
    border: 1px solid rgba(207, 168, 110, 0.5);
    filter: blur(0px);
    opacity: 1; /* Visible as a halo on hover */
  }
}

/* Cinematic Page Transition Overlay */
.page-transition-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #080808;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 0.3s cubic-bezier(0.25, 1, 0.5, 1), visibility 0.3s;
  visibility: visible;
}
.page-transition-overlay.fade-out {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* Loader Content centering */
.loader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

/* Walking Logo Animation */
.walking-logo {
  width: 160px;
  height: 160px;
  object-fit: contain;
  animation: walkGait 1.6s infinite ease-in-out, logoPulse 2.0s infinite ease-in-out;
  filter: drop-shadow(0 0 20px rgba(207, 168, 110, 0.4));
}

/* Walking motion: up-down bounce and left-right tilt */
@keyframes walkGait {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  25% {
    transform: translateY(-12px) rotate(-3deg);
  }
  50% {
    transform: translateY(0) rotate(0deg);
  }
  75% {
    transform: translateY(-12px) rotate(3deg);
  }
}

/* Breathing glow pulse */
@keyframes logoPulse {
  0%, 100% {
    opacity: 0.85;
    filter: drop-shadow(0 0 15px rgba(207, 168, 110, 0.35));
  }
  50% {
    opacity: 1;
    filter: drop-shadow(0 0 35px rgba(207, 168, 110, 0.75));
  }
}

/* Loader text loading indicator */
.loader-text {
  color: #cfa86e;
  font-family: 'Noto Sans SC', sans-serif;
  font-size: 10px;
  font-weight: bold;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-top: -5px;
  margin-bottom: -5px;
  animation: textPulse 1.6s infinite ease-in-out;
}

@keyframes textPulse {
  0%, 100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

/* Loader Progress line */
.loader-line {
  width: 100px;
  height: 2px;
  background-color: rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
  border-radius: 1px;
}
.loader-line::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, #cfa86e, transparent);
  animation: loadingSlide 1.2s infinite ease-in-out;
}

@keyframes loadingSlide {
  0% { left: -100%; }
  100% { left: 100%; }
}

/* Cinematic Spotlight Card Effect */
.spotlight-card {
  position: relative;
  overflow: hidden;
}
.spotlight-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle 200px at var(--mouse-x, -999px) var(--mouse-y, -999px), rgba(207, 168, 110, 0.08), transparent 80%);
  pointer-events: none;
  z-index: 5;
  transition: opacity 0.3s;
  opacity: 0;
}
.spotlight-card:hover::before {
  opacity: 1;
}

/* Gold Windblown Sand Canvas Background */
#sand-particles-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  opacity: 0.55;
}
