/* ─── CUSTOM CURSOR ─── */
#cursor {
  position: fixed;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--gold);
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%,-50%);
  transition: width .2s ease, height .2s ease, opacity .2s;
}
#cursor-ring {
  position: fixed;
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid var(--gold);
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%,-50%);
  transition: left .08s ease, top .08s ease, width .25s ease, height .25s ease, border-color .2s;
  opacity: .7;
}

/* ─── SCROLL REVEAL ─── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s ease, transform .8s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .45s; }

/* ─── KEYFRAMES ─── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes scrollPulse {
  0%, 100% { opacity: .4; }
  50%       { opacity: 1; }
}

/* Hero entrance classes */
.anim-fade-up {
  opacity: 0;
  animation: fadeUp .9s ease forwards;
}
.anim-delay-1 { animation-delay: .3s; }
.anim-delay-2 { animation-delay: .5s; }
.anim-delay-3 { animation-delay: .7s; }
.anim-delay-4 { animation-delay: .9s; }
.anim-delay-5 { animation-delay: 1.1s; }
