/* Bizarre Dockyard — Animations */

@keyframes fadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}

@keyframes subtleGlitch {
  0%, 95%, 100% {
    transform: translate(0, 0);
  }
  96% {
    transform: translate(-2px, 1px);
  }
  97% {
    transform: translate(2px, -1px);
  }
  98% {
    transform: translate(-1px, -1px);
  }
  99% {
    transform: translate(1px, 1px);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* JoJo-inspired menacing saturation pulse */
@keyframes menacing {
  0%, 100% {
    filter: saturate(1) contrast(1);
  }
  50% {
    filter: saturate(1.2) contrast(1.1);
  }
}

/* Hero image hover — surreal Araki color shift */
.post-card-hero {
  transition: filter var(--transition-base), transform var(--transition-base);
}

.post-card-hero:hover {
  filter: hue-rotate(15deg) saturate(1.15);
}

.post-hero {
  transition: filter var(--transition-base);
}

.post-hero:hover {
  filter: hue-rotate(15deg) saturate(1.15);
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .post-card,
  .dossier-card,
  .registry-row,
  .post-list-item {
    opacity: 1;
  }

  .post-card-hero:hover,
  .post-hero:hover {
    filter: none;
  }
}
