/* ----- Extra Small Devices (≤480px) ----- */
@media (max-width: 480px) {
  .top-bar {
    flex-direction: column;
    padding: 10px;
    height: auto;
    text-align: center;
    gap: 10px;
  }

  nav a {
    margin: 5px;
    display: block;
  }

  .grid-container {
    flex-direction: column;
  }

  .section-intro-top,
  .section-intro-bottom {
    flex-direction: column;
    gap: 10px;
  }

  .intro,
  .portrait,
  .bio,
  .contact-box,
  .project-panel,
  .socials {
    width: 100%;
    flex: none;
  }

  .intro {
    height: auto;
    padding: 20px;
  }

  .intro h1 {
    position: static;
    font-size: 1.8rem;
    line-height: 1.4;
  }

  .intro-icon-vector {
    position: static;
    display: block;
    margin: 0 auto 10px;
  }

  .portrait img {
    height: 200px;
    max-height: 400px;
    object-fit: contain;
  }

  .bio,
  .bio p {
    position: static;
    text-align: center;
    padding: 10px;
  }

  .bio img {
    display: block;
    margin: 0 auto 10px;
  }

  .contact-box p,
  .socials a {
    font-size: 0.85rem;
  }

  .theme-switcher {
    flex-direction: row;
    bottom: 10px;
    right: 10px;
    gap: 6px;
  }
}

/* ----- Small Devices (≤768px) ----- */
@media (max-width: 768px) {
  .grid-container {
    flex-direction: column;
  }

  .section-intro-top,
  .section-intro-bottom {
    flex-direction: column;
    gap: 15px;
  }

  .top-bar {
    flex-direction: column;
    height: auto;
    text-align: center;
    padding: 15px;
    gap: 10px;
  }

  .intro h1 {
    font-size: 2rem;
  }

  .bio,
  .bio p {
    position: static;
    padding: 0 15px;
    text-align: center;
  }

  .project-panel {
    width: 100%;
  }

  .socials {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    height: auto;
    padding: 15px 0;
  }
}

/* ----- Medium Devices (≤1024px) ----- */
@media (max-width: 1024px) {
  .top-bar {
    padding: 15px;
  }

  nav a {
    font-size: 0.9rem;
  }

  .intro h1 {
    font-size: 2.5rem;
  }

  .bio p {
    padding-right: 20px;
  }

  .portrait {
    height: auto;
  }

  .portrait img {
    object-fit: cover;
    height: 100%;
  }

  .project-panel {
    padding: 15px;
  }
}

/* ----- Large Devices (≤1280px) ----- */
@media (max-width: 1280px) {
  .intro h1 {
    font-size: 2.8rem;
  }

  .bio {
    font-size: 0.9rem;
  }

  .project-image-wrapper {
    height: 250px;
  }
}

/* ----- Extra Large Devices (>1280px) ----- */
/* Không cần chỉnh nhiều ở đây nếu bạn đã tối ưu width/height bằng % và flex */
/* Nhưng bạn có thể tăng font size nếu muốn trông sang trọng hơn */
@media (min-width: 1281px) {
  .intro h1 {
    font-size: 3.25rem;
  }

  .project-image-wrapper {
    height: 300px;
  }

  .bio {
    font-size: 1rem;
  }
}
