 /* Fade + slide-up animation */
    
 /**/
 @keyframes fadeUp {
      0% { opacity: 0; transform: translateY(20px); }
      100% { opacity: 1; transform: translateY(0); }
    }

    .animate-card {
      animation: fadeUp 0.8s ease-in-out;
    }

    .fade-in {
      animation: fadeUp 1s ease-in-out;
    }

    .fade-in-delay {
      animation: fadeUp 1.2s ease-in-out;
    }

    /* Input focus animation */
    .input-animate:focus {
      box-shadow: 0 0 8px rgba(13,110,253,0.5);
      transition: box-shadow 0.3s ease;
    }

    /* Button hover animation */
    .btn-animate {
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .btn-animate:hover {
      transform: scale(1.03);
      box-shadow: 0 6px 15px rgba(0,0,0,0.15);
    }
    
    /* ===== Background Gradient animé ===== */
    .bg-animated {
      background: linear-gradient(-45deg, #6a11cb, #2575fc, #2d0e66, #ee0979);
      background-size: 400% 400%;
      animation: gradientBG 15s ease infinite;
      position: relative;
      overflow: hidden;
    }

    @keyframes gradientBG {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }

    /* ===== Bubbles shapes ===== */
    .background-shapes span {
      position: absolute;
      display: block;
      width: 60px;
      height: 60px;
      background: rgba(255,255,255,0.2);
      border-radius: 50%;
      animation: move 20s linear infinite;
      bottom: -100px;
    }

    .background-shapes span:nth-child(1) {
      left: 20%;
      animation-duration: 25s;
      width: 80px; height: 80px;
    }
    .background-shapes span:nth-child(2) {
      left: 50%;
      animation-duration: 20s;
    }
    .background-shapes span:nth-child(3) {
      left: 70%;
      animation-duration: 30s;
      width: 100px; height: 100px;
    }

    @keyframes move {
      0% { transform: translateY(0) scale(1); opacity: 0.5; }
      50% { transform: translateY(-400px) scale(1.2); opacity: 0.8; }
      100% { transform: translateY(-800px) scale(1); opacity: 0; }
    }