/* ═══════════════════════════════════════════════════════
   UnityCraft.org — animations.css
   ═══════════════════════════════════════════════════════ */

/* Scroll arrow bounce */
@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(10px); }
}

/* Hero eyebrow pulsing dot */
@keyframes heroPulse {
  0%   { box-shadow: 0 0 0 0 rgba(242,166,35,0.55); }
  70%  { box-shadow: 0 0 0 7px rgba(242,166,35,0); }
  100% { box-shadow: 0 0 0 0 rgba(242,166,35,0); }
}

/* Hero staggered entrance (only when motion is allowed) */
@media (prefers-reduced-motion: no-preference) {
  .hero__content > * { opacity: 0; transform: translateY(18px); animation: heroIn 0.7s cubic-bezier(0.22,0.61,0.36,1) forwards; }
  .hero__content > *:nth-child(1) { animation-delay: 0.10s; }
  .hero__content > *:nth-child(2) { animation-delay: 0.18s; }
  .hero__content > *:nth-child(3) { animation-delay: 0.26s; }
  .hero__content > *:nth-child(4) { animation-delay: 0.34s; }
  .hero__content > *:nth-child(5) { animation-delay: 0.42s; }
  .hero__content > *:nth-child(6) { animation-delay: 0.50s; }
}
@keyframes heroIn { to { opacity: 1; transform: none; } }

/* Gold shimmer for CTA background */
@keyframes shimmer {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Primary button: shimmering gold sheen sweeping across (alternate = seamless, no jump) */
@keyframes btnShimmer {
  from { background-position: 0% 50%; }
  to   { background-position: 100% 50%; }
}

/* Primary button: light reflection running around the border */
@keyframes btnBorderRun {
  to { --btn-angle: 360deg; }
}

/* Click ripple expanding from press point */
@keyframes btnRipple {
  to { transform: translate(-50%, -50%) scale(1); opacity: 0; }
}

/* Header transition on scroll */
.header { transition: background 0.4s ease, border-color 0.4s ease; }
.header--scrolled {
  background: linear-gradient(90deg, rgba(15,19,25,0.95) 0%, rgba(20,25,33,0.9) 100%) !important;
  border-bottom-color: rgba(255,255,255,0.1) !important;
}

/* Scroll-spy nav underline */
.nav-link { position: relative; }
.nav-link::after {
  content: ''; display: block; height: 2px; background: var(--accent);
  transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease;
}
.nav-link:hover::after,
.nav-link.active::after { transform: scaleX(1); }

/* Modal open/close transitions */
@keyframes modalIn  { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes overlayIn { from { opacity: 0; } to { opacity: 1; } }
.modal-overlay { animation: overlayIn 0.2s ease forwards; }
.modal-box     { animation: modalIn 0.25s ease forwards; }

/* Global focus style */
*:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .hero__scroll, .cta-section, .btn-primary { animation: none !important; }
  .btn-primary:hover::after, .hero__eyebrow::before { animation: none !important; }
  html { scroll-behavior: auto; }
}
