/* ============================================
   Responsive Breakpoints
   ============================================ */

/* Tablet */
@media (max-width: 900px) {
  :root {
    --section-gap: 80px;
  }

  .hero__inner {
    flex-direction: column-reverse;
    text-align: center;
    gap: 40px;
  }

  .hero__bio {
    margin-left: auto;
    margin-right: auto;
  }

  .hero__actions {
    justify-content: center;
  }

  .hero__photo-wrapper img {
    width: 200px;
    height: 200px;
  }

  .projects-grid {
    columns: 1;
  }

  .skills-grid {
    columns: 1;
  }

  .video-grid {
    grid-template-columns: 1fr;
  }

  .timeline {
    padding-left: 28px;
  }

  .timeline__dot {
    left: -28px;
    width: 14px;
    height: 14px;
  }
}

/* Mobile */
@media (max-width: 640px) {
  :root {
    --section-gap: 64px;
    --container-pad: 18px;
  }

  .hero {
    min-height: auto;
    padding: 100px 0 60px;
  }

  .hero__photo-wrapper img {
    width: 150px;
    height: 150px;
  }

  .hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .section__header {
    margin-bottom: 36px;
  }

  .github-profiles {
    top: 72px;
    margin-top: -20px;
    gap: 6px;
  }

  .github-profiles__link {
    padding: 5px 10px;
    font-size: 0.72rem;
  }

  /* Nav adjustments for mobile */
  .nav {
    padding: 8px 12px;
  }

  .nav__bar {
    width: 100%;
    box-sizing: border-box;
    background: transparent;
    border: none;
    border-radius: 0;
    /* fade hints at scroll edges */
    mask-image: linear-gradient(to right, transparent, black 12px, black calc(100% - 12px), transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 12px, black calc(100% - 12px), transparent);
  }

  /* When JS moves the toggle into the nav, reset fixed positioning */
  .nav__theme-item .theme-toggle {
    position: static;
    width: 28px;
    height: 28px;
    margin: 0;
    flex-shrink: 0;
  }

  .nav__theme-item {
    display: flex;
    align-items: center;
    margin-left: 4px;
  }

  .nav__link {
    padding: 7px 10px;
    font-size: 0.78rem;
  }

  .card {
    padding: 20px;
  }

  .timeline__card {
    padding: 16px 18px;
  }

  .timeline {
    padding-left: 24px;
  }

  .timeline__dot {
    left: -24px;
    width: 12px;
    height: 12px;
  }

  .timeline__item {
    padding-bottom: 36px;
  }

  .game-card__body {
    padding: 20px;
  }

  .game-card__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

/* Small phones */
@media (max-width: 380px) {
  .hero__photo-wrapper img {
    width: 120px;
    height: 120px;
  }

  .btn {
    width: 100%;
    justify-content: center;
  }
}
