/* ==========================================================================
   BRUSH & ROLL - KEYFRAME ANIMATIONS & ACCESSIBILITY
   ========================================================================== */

/* 🌌 Blueprint lines drift keyframe (Subtle background movement) */
@keyframes blueprint-drift {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(50px, 50px);
  }
}

.blueprint-lines {
  animation: blueprint-drift 20s linear infinite;
}

/* 📈 Fade + Slide Up keyframes */
@keyframes fade-slide-up {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-slide-up {
  animation: fade-slide-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* 🏷 Brands Infinite Marquee Animation */
@keyframes marquee-scroll {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

.brands-marquee-track {
  animation: marquee-scroll 32s linear infinite;
}

/* Hover pauses marquee disabled to keep logos moving smoothly */

/* ✨ Card Effect Keyframes (used by card-effects.css) */

/* Sheen of light sweeping across a card */
@keyframes sheen-sweep {
  0% {
    transform: translateX(-160%) skewX(-18deg);
  }
  100% {
    transform: translateX(260%) skewX(-18deg);
  }
}

/* Slow background pattern drift */
@keyframes pattern-drift {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 30px 30px;
  }
}

/* Google star hover twinkle */
@keyframes star-twinkle {
  0% {
    transform: scale(1) rotate(0deg);
  }
  45% {
    transform: scale(1.3) rotate(-10deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}

/* Soft teal ring pulse (form success / focus accents) */
@keyframes success-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(42, 157, 143, 0.35);
  }
  100% {
    box-shadow: 0 0 0 18px rgba(42, 157, 143, 0);
  }
}

/* Pop-in for badges & skill pills */
@keyframes badge-pop {
  0% {
    opacity: 0;
    transform: scale(0.6);
  }
  70% {
    opacity: 1;
    transform: scale(1.08);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 🛡 Reduced Motion Media Query */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-delay: -1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    background-attachment: initial !important;
    scroll-behavior: auto !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
    transform: none !important;
  }

  /* Force all revealed elements to show immediately without offset */
  .reveal,
  .js-enabled .reveal,
  .gsap-enabled .reveal,
  .stagger-children > *,
  .js-enabled .stagger-children > *,
  .gsap-enabled .stagger-children > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* Brands Section overrides for static presentation */
  .brands-marquee-track {
    animation: none !important;
    transform: none !important;
    flex-wrap: wrap;
    justify-content: center;
    width: 100% !important;
    padding-left: 0 !important;
    gap: var(--spacing-md) !important;
  }

  /* Hide duplicated items to avoid double elements when static */
  .brands-marquee-track [aria-hidden="true"] {
    display: none !important;
  }

  /* Hide gradient masks when stationary */
  .brands-marquee-container::before,
  .brands-marquee-container::after {
    display: none !important;
  }

  /* Parallax landscape layers disable */
  .parallax-landscape,
  .landscape-layer {
    position: absolute !important;
    transform: none !important;
    opacity: 1 !important;
  }
  .landscape-mountains, .landscape-hills {
    display: none !important; /* simplify background under reduced motion */
  }
  .wave-path {
    transform: none !important;
    transition: none !important;
  }
  .hero-image {
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

