/* =========================================================
   RESPONSIVE — desktop-first breakpoints
   ========================================================= */

/* ---- Laptop / small desktop ---- */
@media (max-width: 1100px) {
  .stack-grid { grid-template-columns: repeat(2, 1fr); }
  .project-grid { grid-template-columns: repeat(2, 1fr); }
  .writing-grid { grid-template-columns: repeat(2, 1fr); }
  .pr-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-strip { grid-template-columns: repeat(4, 1fr); }
}

/* ---- Tablet ---- */
@media (max-width: 900px) {
  .container { padding: 0 24px; }

  .nav-links, .nav-actions { display: none; }
  .nav-toggle { display: flex; }
  .nav-links.open {
    display: flex; position: absolute; top: 72px; left: 0; right: 0; flex-direction: column;
    background: rgba(5,7,12,.97); backdrop-filter: blur(14px); padding: 20px 24px; gap: 18px;
    border-bottom: 1px solid var(--border);
  }
  .nav-actions.open {
    display: flex; position: absolute; top: calc(72px + 230px); left: 0; right: 0; flex-direction: column;
    background: rgba(5,7,12,.97); padding: 0 24px 20px; gap: 10px; border-bottom: 1px solid var(--border);
  }

  .hero { padding: 140px 0 80px; }
  .hero-inner { grid-template-columns: 1fr; gap: 56px; text-align: center; }
  .hero-desc { margin-left: auto; margin-right: auto; }
  .hero-cta, .hero-socials { justify-content: center; }
  .hero-visual { order: -1; }

  .about-grid { grid-template-columns: 1fr; }
  .about-stats { grid-template-columns: repeat(2, 1fr); }

  .stack-grid { grid-template-columns: repeat(2, 1fr); }

  .timeline::before { left: 8px; }
  .timeline-item { grid-template-columns: 1fr; gap: 10px; padding-left: 26px; }
  .timeline-item::before { left: 3px; top: 6px; }
  .timeline-date { order: -1; }

  .project-grid { grid-template-columns: 1fr; }
  .writing-grid { grid-template-columns: 1fr; }
  .pr-grid { grid-template-columns: 1fr; }
  .github-cta { flex-direction: column; align-items: flex-start; }

  .gallery-strip { grid-template-columns: repeat(3, 1fr); }

  .footer-inner { flex-direction: column; text-align: center; }
}

/* ---- Mobile ---- */
@media (max-width: 560px) {
  .container { padding: 0 18px; }
  .section { padding: 76px 0; }

  .hero-title { font-size: clamp(2.1rem, 9vw, 2.6rem); }
  .hero-cta { flex-direction: column; align-items: stretch; }
  .hero-cta .btn { justify-content: center; }

  .about-stats { grid-template-columns: 1fr; }
  .stack-grid { grid-template-columns: 1fr; }

  .orbit-ring { width: 200px; height: 200px; }
  .avatar-core { width: 120px; height: 120px; }

  .term-body { padding: 16px 16px; max-height: 320px; }
  .term-titlebar, .term-inputbar, .term-statusbar { padding-left: 16px; padding-right: 16px; }
  .term-statusbar { flex-direction: column; gap: 4px; }

  .contact-box { padding: 46px 22px; }
  .contact-actions { flex-direction: column; align-items: stretch; }
  .contact-actions .btn { justify-content: center; }

  .gallery-strip { grid-template-columns: repeat(2, 1fr); }

  .scroll-top { bottom: 16px; right: 16px; width: 40px; height: 40px; }
}
