/* Global Styles & Utilities */

/* Base Font Settings */
:root {
  --font-primary: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
}

body {
  font-family: var(--font-primary);
  -webkit-font-smoothing: antialiased; /* Smooth fonts on WebKit */
  -moz-osx-font-smoothing: grayscale; /* Smooth fonts on Firefox */
  background-color: #ffffff;
  color: #111111;
  overflow-x: hidden; /* Prevent horizontal scroll */
}

/* Custom Animation Utilities */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.animate-fade-in-up {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  opacity: 0; /* Initially hidden */
}

.animate-fade-in {
  animation: fadeIn 1.2s ease-out forwards;
}

/* Staggered Delays */
.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }

/* Image Hover Effects */
.img-hover-zoom {
  overflow: hidden;
}

.img-hover-zoom img {
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.img-hover-zoom:hover img {
  transform: scale(1.03); /* Subtle zoom */
}

/* Utility: Hide Scrollbar but keep functionality */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* Utility: Line Clamp for multi-line text truncation */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}