/* Custom CSS */
body {
  background-color: #020617;
  color: #e2e8f0;
  font-family: "Inter", sans-serif;
}

.nav-indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  background-color: #4caf50;
  transition: all 0.3s ease;
  z-index: 10;
}

.nav-item {
  position: relative;
  padding-bottom: 8px;
}

.nav-item.active .nav-text {
  color: #4caf50;
}

.nav-text {
  transition: all 0.3s ease;
}

.nav-item:hover .nav-text {
  color: #4caf50;
}

.hero-pattern {
  background-image: radial-gradient(
    circle at 25% 25%,
    rgba(76, 175, 80, 0.1) 0%,
    transparent 50%
  );
}

.contact-wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200%;
  height: 100px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z' opacity='.25' fill='%234CAF50'%3E%3C/path%3E%3Cpath d='M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z' opacity='.5' fill='%234CAF50'%3E%3C/path%3E%3Cpath d='M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,942.2,90.86c56.12-4.38,112.3-20.78,156.2-37.67C1105.43,42.9,1161.06,22.3,1200,5.63V0Z' fill='%234CAF50'%3E%3C/path%3E%3C/svg%3E");
  background-size: 50% 100%;
  animation: wave 8s linear infinite;
  opacity: 0.1;
}

.contact-card {
  position: relative;
  overflow: hidden;
  border: 1px solid #334155;
  transition: all 0.3s ease;
}

.contact-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px -5px rgba(76, 175, 80, 0.2);
}

.contact-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    135deg,
    rgba(76, 175, 80, 0.1) 0%,
    transparent 50%
  );
  z-index: 1;
}

.project-card {
  position: relative;
  overflow: hidden;
  border: 1px solid #334155;
  transition: all 0.3s ease;
}

.project-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px -5px rgba(76, 175, 80, 0.2);
}

.project-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    135deg,
    rgba(76, 175, 80, 0.1) 0%,
    transparent 50%
  );
  z-index: 1;
}

.project-card::before {
  pointer-events: none;
}

.blob {
  position: absolute;
  width: 300px;
  height: 300px;
  background: linear-gradient(
    135deg,
    rgba(76, 175, 80, 0.1) 0%,
    rgba(76, 175, 80, 0.05) 100%
  );
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
  filter: blur(30px);
  z-index: 0;
  animation: blob 7s infinite;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .hero-content {
    padding-top: 100px;
  }

  .hero-title {
    font-size: 2.5rem;
  }

  .hero-subtitle {
    font-size: 1.1rem;
  }

  .nav-indicator {
    display: none;
  }
}

@media (max-width: 640px) {
  .hero-title {
    font-size: 2rem;
  }

  .hero-buttons {
    flex-direction: column;
    gap: 12px;
  }

  .hero-buttons a {
    width: 100%;
    text-align: center;
  }

  .contact-grid {
    grid-template-columns: 1fr;
  }
}

/* Skill Cards */
.skill-card {
  transition: all 0.3s ease;
}
.skill-card:hover {
  transform: translateY(-3px);
  border-color: rgba(76, 175, 80, 0.3);
}

/* Timeline */
.timeline-dot {
  transition: all 0.3s ease;
}
.timeline-item:hover .timeline-dot {
  transform: translateX(-50%) translateY(-50%) scale(1.2);
  box-shadow: 0 0 0 6px rgba(76, 175, 80, 0.2);
}

/* Parallax effect */
@media (min-width: 768px) {
  .parallax-bg {
    background-attachment: fixed;
  }
}

.animate-gradient-shift {
  background-size: 300% 300%;
  animation: gradient 15s ease infinite;
}

@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.timeline-item {
  transition: all 0.4s ease;
}

@media (max-width: 640px) {
  .timeline::before {
    left: 18px;
  }
}

.timeline-item {
  position: relative;
  z-index: 10;
}
