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

@media (max-width: 1024px) {
  :root { --sp-9: 5rem; }

  .hero .container { grid-template-columns: 1fr; }
  .cube-stage { height: 280px; order: -1; }
  .hero-meta { gap: var(--sp-5); flex-wrap: wrap; }

  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr; }
  .icon-grid { grid-template-columns: repeat(4, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
  .nav-links { display: none; }
  .nav-toggle { display: flex; }

  .nav-links.mobile-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    top: 0;
    background: var(--ink-0);
    align-items: center;
    justify-content: center;
    gap: var(--sp-6);
    z-index: 105;
  }
  .nav-links.mobile-open a { font-size: var(--fs-lg); }

  .grid-2 { grid-template-columns: 1fr; }
  .grid-3 { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
  .skill-row { grid-template-columns: 120px 1fr 34px; }

  section { padding-block: var(--sp-8); }
}

@media (max-width: 560px) {
  :root {
    --fs-4xl: 2.75rem;
    --fs-3xl: 2.25rem;
    --fs-2xl: 1.9rem;
  }

  .hero { min-height: auto; padding-top: var(--sp-9); padding-bottom: var(--sp-7); }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { justify-content: center; }
  .hero-meta { gap: var(--sp-4); }

  .icon-grid { grid-template-columns: repeat(3, 1fr); }
  .site-footer .container { flex-direction: column; align-items: flex-start; gap: var(--sp-5); }
  .footer-links { flex-wrap: wrap; }

  #cursor-glow { display: none; }
  .upload-zone { max-width: 100%; }
}
