/* Local Font Faces */
@font-face {
  font-family: 'Outfit';
  src: url('../fonts/Outfit-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/DMSans-VariableFont_opsz,wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/DMSans-Italic-VariableFont_opsz,wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

/* Custom styles */
body {
  font-family: 'DM Sans', ui-sans-serif, system-ui, sans-serif;
}

.gradient-text {
  background: linear-gradient(135deg, #000000 0%, #434343 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Animations */
.fade-in {
  animation: fadeIn 0.8s ease-in;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.section-appear {
  opacity: 0;
  animation: sectionAppear 1s ease-out forwards;
}

@keyframes sectionAppear {
  to { opacity: 1; }
}

/* Image effects */
.image-glow {
  box-shadow: 0 0 60px rgba(255, 255, 255, 0.1);
}

.image-float {
  animation: float 6s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-20px); }
}

/* Fix for descenders being cut off */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Outfit', ui-sans-serif, system-ui, sans-serif;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.3;
  padding-bottom: 0.2em;
  overflow: visible;
}

h1 {
  line-height: 1.25;
  padding-bottom: 0.25em;
  overflow: visible;
}

/* Tighter letter spacing for hero heading only */
header h1 {
  letter-spacing: -0.045em;
}

/* Ensure gradient text doesn't clip descenders */
.bg-clip-text {
  padding-bottom: 0.15em;
  display: inline-block;
}

/* Subtle pulse animation for divider */
.animate-pulse-slow {
  animation: pulseSlow 3s ease-in-out infinite;
}

@keyframes pulseSlow {
  0%, 100% {
    opacity: 0.5;
  }
  25% {
    opacity: 0.3;
  }
  50% {
    opacity: 0.5;
  }
  75% {
    opacity: 1.0;
  }
}

/* Subtle bounce animation for scroll indicator */
.animate-bounce-slow {
  animation: bounceSlow 2s ease-in-out infinite;
}

@keyframes bounceSlow {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(10px);
  }
}
