/* ============================================================
   RESPONSIVE STYLES
   ============================================================ */

@media (max-width: 1080px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-portrait{ max-width:380px; }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .stat-row{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .gallery-grid{ columns:2; }
}

@media (max-width: 900px){
  .nav-links{ display:none; }
  .nav-toggle{ display:flex; }
  .nav-links.mobile-open{
    display:flex; flex-direction:column;
    position:fixed; top:var(--nav-h); left:0; right:0; bottom:0;
    background:var(--paper); padding:20px 28px; gap:4px;
    border-top:1px solid var(--line);
    overflow-y:auto;
    z-index:999;
  }
  .nav-links.mobile-open a{ padding:14px 6px; font-size:1rem; border-bottom:1px solid var(--line); border-radius:0; }
  .two-col{ grid-template-columns:1fr; }
  .grid-2, .grid-3{ grid-template-columns:1fr; }
}

@media (max-width: 640px){
  .container{ padding:0 20px; }
  section{ padding:60px 0; }
  .hero{ padding:56px 0 64px; }
  h1{ font-size:2.2rem; }
  h2{ font-size:1.6rem; }
  .stat-row{ grid-template-columns:1fr 1fr; }
  .grid-4{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:28px; }
  .newsletter{ flex-direction:column; align-items:flex-start; padding:32px; }
  .newsletter form{ width:100%; flex-direction:column; }
  .newsletter input{ min-width:0; width:100%; }
  .gallery-grid{ columns:1; }
  .resume-preview{ padding:28px; }
  .pub-card{ flex-direction:column; gap:8px; }
  .pub-type{ width:auto; }
  .contrib-grid{ grid-template-columns:repeat(14,1fr); }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}

@media (prefers-color-scheme: dark){
  /* handled via data-theme toggle in JS; default stays light unless user selects dark */
}
