/* Box sizing */
body {
    box-sizing: border-box;
  }
  
  /* Fonts */
  .font-playfair { 
    font-family: 'Playfair Display', serif; 
  }
  
  .font-inter { 
    font-family: 'Inter', sans-serif; 
  }
  
  /* Animations */
  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(30px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  @keyframes slideIn {
    from {
      opacity: 0;
      transform: translateX(-20px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }
  
  @keyframes pulse {
    0%, 100% { 
      opacity: 1;
      transform: scale(1);
    }
    50% { 
      opacity: 0.8;
      transform: scale(1.05);
    }
  }
  
  @keyframes float {
    0%, 100% { 
      transform: translateY(0px); 
    }
    50% { 
      transform: translateY(-10px); 
    }
  }
  
  /* Animation classes */
  .animate-fade-in {
    animation: fadeInUp 0.8s ease-out forwards;
  }
  
  .animate-slide-in {
    animation: slideIn 0.6s ease-out forwards;
  }
  
  .floating {
    animation: float 3s ease-in-out infinite;
  }
  
  /* Timeline dot hover */
  .timeline-dot {
    transition: all 0.3s ease;
  }
  
  .timeline-dot:hover {
    animation: pulse 1.5s infinite;
  }
  
  /* Section cards */
  .section-card {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .section-card:hover {
    transform: translateY(-4px);
  }
  
  /* Skill tags */
  .skill-tag {
    transition: all 0.3s ease;
  }
  
  .skill-tag:hover {
    transform: translateY(-2px);
  }
  
  /* Gradient background */
  .gradient-bg {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  }
  
  /* Organic shapes */
  .organic-shape {
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
  }
  
  /* Section expand/collapse */
  .section-expand {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), padding 0.4s ease;
  }
  
  .section-expand.active {
    max-height: 2000px;
  }