/* Responsive overrides — linked last, desktop untouched outside queries. */
@media (max-width: 768px) {
  .about, .projects, .github, .contact { padding: 1.5rem 1rem; }
  .landing, .about, .contact, .github { min-height: 100svh; }
  .projects-title, .contact-title, .about-title { font-size: 2rem; }
  .caption-bubble { max-width: calc(100vw - 2rem); }
  /* Captions stay 24px per spec, only taps grow to 44px */

  .nav-list { gap: 1rem; overflow-x: auto; max-width: 100%; }
  .nav-item span { display: none; }
  .nav-item { min-width: 44px; min-height: 44px; justify-content: center; }

  .about-content { grid-template-columns: 1fr; }
  .about-image { width: 100%; max-width: 280px; height: auto; margin: 0 auto; }
  .ribbon, .ribbon-list { height: 64px; }
  .ribbon-item { height: 48px; }

  .browser-dots, .browser-controls, .browser-address-bar, .browser-menu { display: none; }
  .browser-tabs { overflow-x: auto; }
  .browser-tab { white-space: nowrap; min-height: 44px; }
  .projects-content-wrapper { grid-template-columns: 1fr; }
  /* ponytail: hide photo + ? + bubble together, captions needless without image */
  .projects-content-wrapper .caption-wrap { display: none; }
  .browser-content { padding: 1.5rem 1rem; }

  .github-header, .github-user-info, .github-stats { flex-direction: column; align-items: center; text-align: center; }
  .github-stats { gap: 1rem; }
  .repo-card { flex-basis: 100%; }
  .github-repos[data-count="4"] .repo-card { flex-basis: 100%; }
  .github-filter, #language-filters { flex-wrap: wrap; }
  .filter-btn, .pagination-btn { min-height: 44px; }
  .github-pagination { flex-wrap: wrap; }

  .contact-cards { flex-direction: column; }
  .contact-card { min-height: auto; flex-direction: column; text-align: center; }
  .contact-icon-wrapper { flex: none; justify-content: center; }
  .contact-icon { width: 48px; height: 48px; }
}

@media (max-width: 480px) {
  .landing-title { font-size: clamp(2.5rem, 12vw, 4rem); -webkit-text-stroke-width: 1px; }
}

@media (prefers-reduced-motion: reduce) {
  .ribbon-track { animation: none; }
}
