@keyframes fadeIn { 
  from { 
    opacity: 0; 
    transform: translateY(4px);
  } 
  to { 
    opacity: 1; 
    transform: translateY(0);
  } 
}

.fade-in { 
  animation: fadeIn 240ms ease-out both; 
}

.drawer-backdrop { 
  background: rgba(15,23,42,0.35); 
}

.dark .drawer-backdrop { 
  background: rgba(2,6,23,0.6); 
}

.services-list-collapsed { 
  grid-template-rows: 0fr; 
}

#servicesCarouselTrack { 
  scroll-snap-type: x mandatory; 
}

#servicesCarouselTrack > div { 
  scroll-snap-align: start; 
}

#showcaseCarouselTrack { 
  scroll-snap-type: x mandatory; 
  touch-action: pan-x;
}

#showcaseCarouselTrack > div { 
  scroll-snap-align: start; 
}

#showcaseCarousel {
  touch-action: pan-x;
}

.carousel-track-initial { 
  transform: translateX(0); 
}

#typingCursor {
  animation: blink 1s infinite;
}

@keyframes blink {
  0%, 50% { 
    opacity: 1; 
  }
  51%, 100% { 
    opacity: 0; 
  }
}

.hero-bg-image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

