/*
  MDC Website v2.0 — Build 2.7
  File: 07-animations.css
  Purpose: Motion system for reveal effects, hero visual polish, hover states, and accessibility-safe animation.
*/
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms ease, transform 700ms ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-up { transform: translateY(34px); }
.reveal-scale { transform: scale(.96); }
.reveal-scale.is-visible { transform: scale(1); }
.hero-premium { position: relative; overflow: hidden; }
.hero-orb { position: absolute; border-radius: 999px; filter: blur(14px); opacity: .32; pointer-events: none; animation: mdcFloat 9s ease-in-out infinite; }
.hero-orb-one { width: 18rem; height: 18rem; background: rgba(213,166,66,.32); top: 6rem; right: 8%; }
.hero-orb-two { width: 15rem; height: 15rem; background: rgba(22,134,95,.28); bottom: 5rem; left: 8%; animation-delay: -3s; }
@keyframes mdcFloat { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-22px,0); } }
.service-card-lift, .impact-tile, .testimonial-card, .stacked-cards article { transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.service-card-lift:hover, .impact-tile:hover, .testimonial-card:hover, .stacked-cards article:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: rgba(213,166,66,.45); }
.primary-nav a { position: relative; }
.primary-nav a::after { content: ""; position: absolute; left: 0; bottom: -.4rem; width: 0; height: 2px; background: var(--color-gold-500); transition: width var(--transition); }
.primary-nav a:hover::after, .primary-nav a.active::after { width: 100%; }
.btn { transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); }
.btn:hover { transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.001ms !important; }
  .reveal { opacity: 1; transform: none; }
}
