@media (max-width: 800px) {
  #capabilities.section {
    padding: 72px 0 64px;
  }

  #capabilities .section-heading {
    gap: 14px;
    margin-bottom: 30px;
  }

  #capabilities .section-heading h2 {
    font-size: 39px;
    line-height: 1.05;
    letter-spacing: -2.6px;
  }

  #capabilities .section-heading > p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
  }

  .cap-grid {
    display: flex;
    gap: 12px;
    width: calc(100vw - 16px);
    margin-right: calc(16px - 100vw);
    padding: 2px 16px 14px 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .cap-grid::-webkit-scrollbar {
    display: none;
  }

  .cap-card {
    flex: 0 0 min(78vw, 330px);
    min-height: 315px;
    padding: 24px;
    scroll-snap-align: start;
  }

  .cap-card:hover {
    transform: none;
  }

  .cap-icon {
    width: 44px;
    height: 44px;
    margin: 28px 0 24px;
  }

  .cap-card h3 {
    margin: 0 0 10px;
    font-size: 21px;
  }

  .cap-card p {
    min-height: 0;
    margin: 0;
    line-height: 1.55;
  }

  .cap-card ul {
    margin-top: 20px;
    padding-top: 14px;
    line-height: 1.8;
  }

  .technical-block {
    margin-top: 38px;
    padding: 26px 0 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
  }

  .technical-intro {
    gap: 12px;
    padding-bottom: 24px;
    border: 0;
  }

  .technical-intro h3 {
    font-size: 31px;
    line-height: 1.08;
    letter-spacing: -2px;
  }

  .technical-intro p {
    font-size: 13px;
    line-height: 1.55;
  }

  .technical-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: visible;
  }

  .technical-grid article {
    position: relative;
    min-height: 132px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease;
  }

  .technical-grid article::after {
    content: "+";
    position: absolute;
    top: 15px;
    right: 16px;
    color: #8068ff;
    font-size: 18px;
    line-height: 1;
  }

  .technical-grid article.expanded {
    grid-column: 1 / -1;
    min-height: 0;
    background: var(--surface2);
    border-color: rgba(128, 104, 255, .45);
  }

  .technical-grid article.expanded::after {
    content: "−";
  }

  .technical-grid h4 {
    max-width: 125px;
    margin: 35px 0 0;
    font-size: 15px;
    line-height: 1.25;
  }

  .technical-grid p {
    display: none;
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.55;
  }

  .technical-grid article.expanded h4 {
    max-width: none;
    margin-top: 26px;
  }

  .technical-grid article.expanded p {
    display: block;
  }

  #work.section {
    padding-top: 76px;
  }
}

@media (max-width: 370px) {
  .technical-grid h4 {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cap-grid {
    scroll-behavior: auto;
  }
}
