.first {
    display: flex;
    flex-direction: row;
    align-items: center; /* vertically center both left and right sections */
}

.left {
    width: 60%;
    padding-left: 200px;
    padding-top: 200px;
    padding-bottom: 200px;
}

.right {
    width: 40%;
    display: flex;              /* make it a flex container */
    justify-content: center;    /* horizontal centering */
    align-items: center;        /* vertical centering */
    padding: 10px 0 20px 0;            /* optional: adjust padding */
}

.right img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* typewritter css*/
.typewriter-text {
  font-family: 'Poppins', sans-serif;  /* apply font */
  font-size: clamp(1rem, 4vw, 2rem);   /* responsive size */
  font-weight: 500;
  white-space: normal;                 /* allow wrapping */
  word-break: break-word;
  display: inline-block;
  border-right: 2px solid #000;
  padding-right: 4px;
  animation: blink 0.7s step-end infinite;
  color: blue; /* fallback color */
}

@keyframes blink {
  50% { border-color: transparent; }
}

/* Special color for 'Shubh' */
.typewriter-text .shubh {
  color: #f7931e;
}



/* Fancy border */
.fancy-shape {
    width: 30vw;  /* viewport width ke hisaab se scale hoga */
    max-width: 320px; /* zyada bada na ho iske liye limit */
    min-width: 220px; /* chhota screen par bhi readable rahe */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.342);
    box-shadow: 15px 15px 30px rgba(0, 0, 255, 0.377), 
                inset 15px 15px 30px rgba(0, 0, 255, 0.377);
    border-radius: 45% 55% 54% 46% / 70% 48% 52% 30%;
}

.fancy-shape img {
    width: 100%;   /* container ke size ke hisaab se adjust hoga */
    height: auto;
    border-radius: 45% 55% 54% 46% / 70% 48% 52% 30%;
}





@media screen and (max-width: 768px) {
    .first{
        flex-direction: column;
    }
    .left, .right {
        width: 100%;
        padding: 20px;
    }
    .right img {
        width: 100%;
        height: auto;
    }
    
}
/* skill section*/
    .skills-section {
      display: flex;
      flex-direction: row ;
      align-items: center;
      justify-content: center;
      padding: 60px 10%;
      gap: 50px;
      flex-wrap: wrap;
    }

    .skills-text {
      flex: 1;
      min-width: 300px;
    }

    .skills-text h3 {
      color: #ff3b3b;
      margin-bottom: 10px;
      font-size: 18px;
    }

    .skills-text h1 {
      font-size: 36px;
      font-weight: bold;
      margin-bottom: 20px;
      color: #1c2141;
    }

    .skills-text p {
      font-size: 16px;
      line-height: 1.6;
      margin-bottom: 30px;
      color: #5d5d7e;
    }

    .skill {
      margin-bottom: 20px;
    }

    .skill-name {
      font-weight: bold;
      display: flex;
      justify-content: space-between;
      margin-bottom: 8px;
    }

    .progress-bar {
      background: #e0e0e0;
      border-radius: 10px;
      overflow: hidden;
      height: 12px;
    }

    .progress {
      width: 0; /* Start collapsed */
      height: 100%;
      border-radius: 10px;
      transition: width 1.2s ease;
    }

    .progress.html { background: #6a4d8a; }
    .progress.css { background: #1e3a8a; }
    .progress.laravel { background: #f43f3f; }

    .skills-image {
      flex: 1;
      min-width: 280px;
      box-shadow: 10px 10px 30px rgba(11, 11, 189, 0.59);
      border-radius: 12px;}

    .skills-image img {
      width: 100%;
      height: 500px;
      border-radius: 12px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    }

    /* ---------- Responsive ---------- */
    @media (max-width: 640px) {
      .skills-section {
        flex-direction: column;
        padding: 30px 5%;
        gap: 30px;
      }
      .skills-text h1 { font-size: 28px; }
      .skills-text p { font-size: 14px; }
    }

    @media (min-width: 641px) and (max-width: 1024px) {
      .skills-section {
        gap: 30px;
        padding: 40px 8%;
      }
      .skills-text h1 { font-size: 32px; }
      .skills-text p { font-size: 15px; }
    }

    @media (min-width: 1280px) {
      .skills-section {
        gap: 80px;
        padding: 80px 15%;
      }
      .skills-text h1 { font-size: 42px; }
      .skills-text p { font-size: 18px; }
    }