/* ==========================================================================
   NIHAL ASHPAK SHAIKH — PORTFOLIO
   response.css — Part 1
   Large desktop, tablet, mobile menu, hero, grids
   ========================================================================== */

/* --------------------------------------------------------------------------
   01. LARGE DESKTOP → SMALL DESKTOP  (≤ 1100px)
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {

  .skills-grid,
  .hobbies-grid,
  .project-grid,
  .about-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .hero-grid {
    grid-template-columns: 1.1fr 0.9fr;
    gap: 40px;
  }

  .hero-title {
    font-size: clamp(2.1rem, 5vw, 3.4rem);
  }

  .footer-content {
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 34px;
  }
}

/* --------------------------------------------------------------------------
   02. TABLET  (≤ 900px)
   -------------------------------------------------------------------------- */

/* ---- Mobile Navigation ---- */
@media (max-width: 900px) {

  .navbar {
    padding: 14px 0;
  }

  .menu-btn {
    display: flex;
  }

  .nav-links {
    position: fixed;
    top: 74px;
    right: 5%;
    left: 5%;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 14px;
    border-radius: var(--radius);
    background: rgba(8, 10, 18, 0.94);
    backdrop-filter: blur(22px) saturate(160%);
    -webkit-backdrop-filter: blur(22px) saturate(160%);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-14px) scale(0.98);
    transition: opacity .4s var(--ease),
                visibility .4s var(--ease),
                transform .4s var(--ease);
    z-index: 999;
  }

  .nav-links.open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
  }

  .nav-links a {
    padding: 13px 18px;
    text-align: center;
    font-size: 0.94rem;
    border-radius: var(--radius-sm);
  }

  /* ---- Hero ---- */
  .hero {
    padding-top: 120px;
    padding-bottom: 60px;
    min-height: auto;
  }

  .hero-grid {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 50px;
  }

  .hero-content {
    order: 2;
    margin-inline: auto;
  }

  .hero-image-wrapper {
    order: 1;
  }

  .hero-badge {
    margin-inline: auto;
  }

  .hero-description {
    margin-inline: auto;
  }

  .hero-actions {
    justify-content: center;
  }

  .hero-image-card {
    width: min(320px, 74vw);
  }

  /* ---- Section headers centered on tablet ---- */
  .section-header:not(.text-center) {
    max-width: 640px;
  }

  /* ---- Footer stack ---- */
  .footer-content {
    grid-template-columns: 1fr;
    gap: 38px;
    text-align: left;
  }

  .footer-brand p {
    max-width: 100%;
  }

  .footer-bottom {
    justify-content: center;
    text-align: center;
  }
}

/* --------------------------------------------------------------------------
   03. SMALL TABLET / LARGE PHONE  (≤ 720px)
   -------------------------------------------------------------------------- */
@media (max-width: 720px) {

  .solver-grid {
    grid-template-columns: 1fr;
  }

  .section {
    padding: 70px 0;
  }

  .section-tag {
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    padding-left: 28px;
  }

  .section-tag::before {
    width: 18px;
  }

  .section-title {
    font-size: clamp(1.65rem, 5vw, 2.2rem);
  }

  .section-sub {
    font-size: 0.94rem;
  }
}

/* END OF PART 1 — CONTINUES IN PART 2 */




















/* ==========================================================================
   response.css — Part 2
   Phone, small phone, touch devices, landscape
   ========================================================================== */

/* --------------------------------------------------------------------------
   04. PHONE  (≤ 620px)
   -------------------------------------------------------------------------- */
@media (max-width: 620px) {

  /* ---- Typography scale down ---- */
  body {
    font-size: 15px;
  }

  .container {
    width: 90%;
  }

  .section {
    padding: 60px 0;
  }

  .section-header {
    margin-bottom: 34px;
  }

  .section-title {
    font-size: clamp(1.55rem, 6vw, 2rem);
    line-height: 1.18;
  }

  /* ---- All grids → single column ---- */
  .skills-grid,
  .hobbies-grid,
  .project-grid,
  .about-grid,
  .social-grid,
  .footer-content {
    grid-template-columns: 1fr;
  }

  /* ---- Navbar ---- */
  .navbar {
    padding: 12px 0;
  }

  .logo {
    font-size: 1.15rem;
  }

  .nav-links {
    top: 66px;
  }

  .nav-links a {
    padding: 12px 16px;
    font-size: 0.9rem;
  }

  /* ---- Hero ---- */
  .hero {
    padding-top: 108px;
    padding-bottom: 40px;
  }

  .hero-grid {
    gap: 40px;
  }

  .hero-badge {
    font-size: 0.72rem;
    padding: 7px 14px 7px 12px;
    margin-bottom: 20px;
  }

  .hero-title {
    font-size: clamp(1.85rem, 8vw, 2.5rem);
    line-height: 1.12;
  }

  .hero-subtitle {
    font-size: clamp(0.94rem, 3.5vw, 1.05rem);
    line-height: 1.5;
    margin-bottom: 18px;
  }

  .hero-description {
    font-size: 0.93rem;
    line-height: 1.75;
    margin-bottom: 28px;
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    width: 100%;
  }

  .hero-actions .btn {
    width: 100%;
  }

  .hero-image-card {
    width: min(290px, 78vw);
  }

  /* ---- Buttons ---- */
  .btn {
    padding: 13px 24px;
    font-size: 0.85rem;
  }

  .btn-sm {
    padding: 11px 20px;
    font-size: 0.8rem;
  }

  /* ---- Cards ---- */
  .skill-card,
  .hobby-card,
  .project-card,
  .info-card {
    padding: 24px 22px;
  }

  .skill-icon,
  .info-icon {
    width: 46px;
    height: 46px;
    font-size: 1.25rem;
  }

  .skill-card h3,
  .hobby-card h3,
  .info-card h3 {
    font-size: 1rem;
  }

  .hobby-emoji {
    font-size: 1.8rem;
  }

  .project-card h4 {
    font-size: 1.05rem;
  }

  /* ---- Solver cards ---- */
  .solver-visual {
    height: 130px;
  }

  .solver-emoji {
    font-size: 2.2rem;
  }

  .solver-body {
    padding: 24px 22px 26px;
  }

  .solver-body h4 {
    font-size: 1.15rem;
  }

  .solver-body .btn {
    align-self: stretch;
    width: 100%;
  }

  .solver-features li {
    font-size: 0.83rem;
  }

  /* ---- Social grid (About page) ---- */
  .social-card {
    padding: 16px 18px;
    gap: 14px;
  }

  .social-card-icon {
    width: 42px;
    height: 42px;
  }

  .social-card-icon svg {
    width: 20px;
    height: 20px;
  }

  .social-card-info strong {
    font-size: 0.84rem;
  }

  /* ---- Footer ---- */
  .footer {
    padding: 56px 0 26px;
  }

  .footer-content {
    gap: 32px;
    padding-bottom: 34px;
  }

  .footer-brand p {
    font-size: 0.86rem;
  }

  .footer-links h4,
  .footer-socials h4 {
    margin-bottom: 14px;
  }

  .social-icons a {
    width: 100%;
    justify-content: center;
  }

  .footer-bottom {
    font-size: 0.78rem;
    text-align: center;
    justify-content: center;
    gap: 8px;
    padding-top: 22px;
  }
}

/* --------------------------------------------------------------------------
   05. VERY SMALL PHONE  (≤ 380px)
   -------------------------------------------------------------------------- */
@media (max-width: 380px) {

  body {
    font-size: 14.5px;
  }

  .hero-title {
    font-size: 1.65rem;
  }

  .hero-subtitle {
    font-size: 0.88rem;
  }

  .section-title {
    font-size: 1.4rem;
  }

  .logo {
    font-size: 1.05rem;
  }

  .nav-links a {
    font-size: 0.86rem;
    padding: 11px 14px;
  }

  .hero-image-card {
    width: min(250px, 82vw);
  }

  .btn {
    padding: 12px 20px;
    font-size: 0.82rem;
  }

  .project-tag {
    font-size: 0.62rem;
    padding: 5px 10px;
  }

  .project-tech span {
    font-size: 0.65rem;
    padding: 4px 9px;
  }

  .solver-label {
    font-size: 0.6rem;
  }

  .footer-bottom p {
    font-size: 0.72rem;
  }
}

/* --------------------------------------------------------------------------
   06. TOUCH DEVICES — disable hover-only effects
   -------------------------------------------------------------------------- */
@media (hover: none) {

  .hero-image-card::before,
  .hero-image-card::after {
    display: none;
  }

  .hero-image-card:hover .hero-image {
    transform: none;
  }

  .nav-links a:hover {
    background: transparent;
  }

  .nav-links a.active {
    background: linear-gradient(100deg, rgba(124, 92, 255, 0.9), rgba(0, 217, 255, 0.75));
  }

  .skill-card:hover,
  .hobby-card:hover,
  .project-card:hover,
  .info-card:hover,
  .solver-card:hover,
  .social-card:hover {
    transform: none;
  }

  .project-link:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   07. SHORT LANDSCAPE  (phone rotated)
   -------------------------------------------------------------------------- */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) {

  .hero {
    padding-top: 90px;
    padding-bottom: 40px;
    min-height: auto;
  }

  .nav-links {
    max-height: 80vh;
    overflow-y: auto;
  }

  .footer {
    padding: 50px 0 22px;
  }
}

/* --------------------------------------------------------------------------
   08. LARGE SCREENS  (≥ 1500px)
   -------------------------------------------------------------------------- */
@media (min-width: 1500px) {

  :root {
    --container: 1320px;
  }

  .hero-title {
    font-size: 4.6rem;
  }

  .section-title {
    font-size: 3.2rem;
  }

  .hero-image-card {
    width: 420px;
  }
}

/* END OF response.css */