/* Intersection Observer Fade-Up Transition Layout Engine */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}
.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Interactive Shimmer States for External Core Aggregators */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.skeleton-card {
  height: 220px; border-radius: 12px;
  background: linear-gradient(90deg, var(--surface) 25%, #18181C 50%, var(--surface) 75%);
  background-size: 200% 100%; animation: shimmer 1.6s infinite linear;
  border: 1px solid var(--border);
}

/* Accessibility Enforcement Engine */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-delay: 0s !important;
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0s !important;
    scroll-behavior: auto !important;
    transform: none !important;
  }
  .reveal { opacity: 1; transform: none; }
}
