@keyframes floatY {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -10px, 0);
  }
}

@keyframes subtleRotate {
  0%,
  100% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(4deg);
  }
}

@keyframes shimmerSweep {
  0% {
    background-position: -220% 0;
  }
  100% {
    background-position: 220% 0;
  }
}

@keyframes fadeUpSoft {
  0% {
    opacity: 0;
    transform: translate3d(0, 34px, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes pulseSoft {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(203, 169, 122, 0.22);
  }
  50% {
    box-shadow: 0 0 0 14px rgba(203, 169, 122, 0);
  }
}

@keyframes glowShift {
  0%,
  100% {
    opacity: 0.45;
    transform: scale(1);
  }
  50% {
    opacity: 0.78;
    transform: scale(1.08);
  }
}

@keyframes lineGrow {
  0% {
    transform: scaleX(0.2);
    opacity: 0.2;
  }
  50% {
    transform: scaleX(1);
    opacity: 1;
  }
  100% {
    transform: scaleX(0.2);
    opacity: 0.2;
  }
}

.hero-glow-one {
  animation: glowShift 7s ease-in-out infinite;
}

.hero-glow-two {
  animation: glowShift 9s ease-in-out infinite reverse;
}

.parallax-card.visual-card-side {
  animation: floatY 6.5s ease-in-out infinite;
}

.parallax-card.visual-card-bottom {
  animation: floatY 8s ease-in-out infinite reverse;
}

.wireframe-box {
  animation: subtleRotate 9s ease-in-out infinite;
}

.shimmer-text,
.visual-tag,
.panel-kicker,
.eyebrow {
  position: relative;
  overflow: hidden;
}

.shimmer-text::after,
.visual-tag::after,
.panel-kicker::after,
.eyebrow::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.14) 35%,
    rgba(255, 255, 255, 0.48) 50%,
    transparent 65%
  );
  background-size: 220% 100%;
  animation: shimmerSweep 3.8s linear infinite;
  pointer-events: none;
}

.hero-actions .btn-primary,
.cta-panel .btn-primary,
.whatsapp-float {
  animation: pulseSoft 3.4s ease-in-out infinite;
}

.reveal-up.active.delay-1,
.reveal-left.active.delay-1,
.reveal-right.active.delay-1,
.reveal-scale.active.delay-1 {
  animation: fadeUpSoft 0.85s ease forwards;
  animation-delay: 0.08s;
}

.reveal-up.active.delay-2,
.reveal-left.active.delay-2,
.reveal-right.active.delay-2,
.reveal-scale.active.delay-2 {
  animation: fadeUpSoft 0.85s ease forwards;
  animation-delay: 0.16s;
}

.scroll-progress {
  transform-origin: left center;
}

.animated-divider {
  width: 120px;
  height: 2px;
  margin: 18px auto 0;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  animation: lineGrow 3s ease-in-out infinite;
}

.hero-slide {
  will-change: opacity, transform;
}

.portfolio-card,
.service-card,
.value-card,
.process-card,
.job-card,
.team-card,
.glass-panel,
.testimonial-card,
.stat-card {
  will-change: transform;
}

.portfolio-card:hover img,
.image-board-main:hover img,
.visual-card:hover img {
  transform: scale(1.04);
  transition: transform 0.9s ease;
}

.portfolio-card img,
.image-board-main img,
.visual-card img {
  transition: transform 0.9s ease;
}

.contact-icon i,
.service-icon i {
  transition: transform 0.35s ease, color 0.35s ease;
}

.service-card:hover .service-icon i,
.contact-info-item:hover .contact-icon i {
  transform: translateY(-3px) scale(1.08);
  color: var(--primary-2);
}

.filter-btn,
.faq-question i,
.back-to-top,
.social-links a,
.inline-link::after {
  will-change: transform;
}

.social-links a:hover,
.back-to-top:hover {
  transform: translateY(-3px);
}

.filter-btn:active,
.btn:active,
.social-links a:active,
.back-to-top:active {
  transform: translateY(0);
}

.site-nav,
.menu-toggle span,
.site-header,
.brand-mark,
.contact-info-item,
.service-card,
.value-card,
.process-card,
.job-card,
.portfolio-card,
.team-card,
.glass-panel,
.testimonial-card,
.stat-card,
.btn,
.filter-btn,
.faq-item,
.form-control,
.back-to-top,
.social-links a {
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    background-color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.service-card:hover,
.value-card:hover,
.process-card:hover,
.job-card:hover,
.team-card:hover,
.glass-panel:hover,
.testimonial-card:hover,
.stat-card:hover,
.contact-info-item:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.section-dark .service-card:hover,
.section-dark .value-card:hover,
.section-dark .process-card:hover,
.section-dark .job-card:hover {
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.24);
}

.hero-copy .eyebrow,
.page-hero-content .eyebrow,
.section-heading .eyebrow {
  animation: fadeUpSoft 0.9s ease both;
}

.hero-copy h1,
.page-hero-content h1 {
  animation: fadeUpSoft 0.95s ease both;
  animation-delay: 0.08s;
}

.hero-copy p,
.page-hero-content p {
  animation: fadeUpSoft 1s ease both;
  animation-delay: 0.16s;
}

.hero-actions,
.hero-points {
  animation: fadeUpSoft 1.05s ease both;
  animation-delay: 0.24s;
}

@media (hover: none) {
  .service-card:hover,
  .value-card:hover,
  .process-card:hover,
  .job-card:hover,
  .team-card:hover,
  .glass-panel:hover,
  .testimonial-card:hover,
  .stat-card:hover,
  .contact-info-item:hover,
  .portfolio-card:hover {
    transform: none;
  }

  .portfolio-card:hover img,
  .image-board-main:hover img,
  .visual-card:hover img {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-glow-one,
  .hero-glow-two,
  .parallax-card.visual-card-side,
  .parallax-card.visual-card-bottom,
  .wireframe-box,
  .hero-actions .btn-primary,
  .cta-panel .btn-primary,
  .whatsapp-float,
  .shimmer-text::after,
  .visual-tag::after,
  .panel-kicker::after,
  .eyebrow::after,
  .animated-divider,
  .hero-copy .eyebrow,
  .page-hero-content .eyebrow,
  .section-heading .eyebrow,
  .hero-copy h1,
  .page-hero-content h1,
  .hero-copy p,
  .page-hero-content p,
  .hero-actions,
  .hero-points {
    animation: none !important;
  }
}