/* ================= Motion & micro-interactions ================= */
@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(24px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes pulseGlow{
  0%,100%{ box-shadow:0 0 0 0 rgba(198,156,46,.35); }
  50%{ box-shadow:0 0 0 10px rgba(198,156,46,0); }
}

.mobile-nav-overlay{
  animation:fadeInUp .3s ease;
}

.counter{ display:inline-block; font-variant-numeric:tabular-nums; }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:2000;
  background:rgba(5,11,24,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox figure{
  max-width:88vw; max-height:82vh;
  margin:0;
  animation:fadeInUp .35s ease;
}
.lightbox img{ max-width:88vw; max-height:74vh; border-radius:8px; box-shadow:var(--shadow-lg); }
.lightbox figcaption{ color:var(--color-white); text-align:center; margin-top:14px; font-size:.95rem; }
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.25);
  color:var(--color-white);
  width:46px; height:46px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  font-size:1.3rem;
  transition:background var(--transition);
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{ background:var(--color-gold-500); color:var(--color-navy-950); }
.lightbox-close{ top:24px; right:24px; }
.lightbox-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lightbox-next{ right:24px; top:50%; transform:translateY(-50%); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}
