/* ── AOS Custom Easings ── */
[data-aos="fade-up"]    { transform: translateY(30px); }
[data-aos="fade-down"]  { transform: translateY(-30px); }
[data-aos="fade-right"] { transform: translateX(-30px); }
[data-aos="fade-left"]  { transform: translateX(30px); }
[data-aos] { opacity: 0; transition-property: opacity, transform; }
[data-aos].aos-animate  { opacity: 1; transform: none; }

/* ── Counter Animation ── */
.counter-num { display: inline-block; }

/* ── Hover lift ── */
.hover-lift { transition: var(--transition-base); }
.hover-lift:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

/* ── Pulse dot ── */
.pulse-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--color-gold);
  display: inline-block;
  animation: pulseDot 2s ease-in-out infinite;
}
@keyframes pulseDot {
  0%,100% { box-shadow: 0 0 0 0 rgba(212,160,23,.4); }
  50% { box-shadow: 0 0 0 8px rgba(212,160,23,.0); }
}

/* ── Shimmer skeleton ── */
.skeleton {
  background: linear-gradient(90deg, var(--color-light) 25%, var(--color-border) 50%, var(--color-light) 75%);
  background-size: 200% 100%;
  animation: skeletonShimmer 1.5s infinite;
  border-radius: 4px;
}
@keyframes skeletonShimmer { from{background-position:200% 0} to{background-position:-200% 0} }

/* ── Page transitions ── */
.page-enter { animation: pageEnter .45s ease both; }
@keyframes pageEnter { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
