@keyframes ripple {
  to { transform: scale(4); opacity: 0; }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes softPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, .38); }
  50% { box-shadow: 0 0 0 12px rgba(212, 175, 55, 0); }
}

.pulse { animation: softPulse 2.4s ease-in-out infinite; }

@keyframes shineSweep {
  0% { transform: translateX(-140%) skewX(-18deg); }
  100% { transform: translateX(180%) skewX(-18deg); }
}

@keyframes liftGlow {
  0%, 100% { box-shadow: 0 18px 50px rgba(7, 26, 47, .14); }
  50% { box-shadow: 0 24px 70px rgba(212, 175, 55, .24); }
}

.card,
.btn,
.media,
.field input,
.field select,
.field textarea,
.main-nav a,
.site-footer a,
.filter-btn,
.socials a {
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease,
    background .28s ease,
    color .28s ease,
    filter .28s ease;
}

.card {
  position: relative;
}

.card::before,
.media::before {
  transition: opacity .35s ease, background .35s ease;
}

.card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.28) 50%, transparent 70%);
  transform: translateX(-140%) skewX(-18deg);
  opacity: 0;
}

.card:hover::after {
  opacity: 1;
  animation: shineSweep .9s ease;
}

.card:hover {
  animation: liftGlow 1.4s ease-in-out;
  border-color: rgba(212,175,55,.45);
}

.media:hover img,
.card:hover .media img {
  transform: scale(1.08);
  filter: saturate(1.12) contrast(1.04);
}

.media:hover::before,
.card:hover .media::before {
  background: linear-gradient(135deg, rgba(7,26,47,.35), rgba(212,175,55,.22));
}

.btn:hover {
  transform: translateY(-3px) scale(1.015);
}

.main-nav a:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 -2px 0 var(--gold);
}

.field input:hover,
.field select:hover,
.field textarea:hover,
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: rgba(212,175,55,.75);
  box-shadow: 0 0 0 4px rgba(212,175,55,.12);
  outline: none;
}

.filter-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(7,26,47,.14);
}

.site-footer a:hover {
  transform: translateX(4px);
}

.site-footer .socials a:hover,
.footer-socials a:hover,
.socials a:hover {
  transform: translateY(-3px) rotate(-4deg);
}

.float-btn:hover,
.back-top:hover {
  transform: translateY(-4px) scale(1.06);
}

.hero-slide.active img {
  animation: heroZoom 5.2s ease both;
}

@keyframes heroZoom {
  from { transform: scale(1.06); }
  to { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
