.project-carousel { --project-gap: 20px; --project-width: clamp(260px, 31vw, 440px); }
.project-carousel-window { overflow-x: auto; padding: 12px 0 28px; }
.project-carousel-track { display: flex; width: max-content; }
.project-carousel-group { display: flex; flex: none; gap: var(--project-gap); padding-right: var(--project-gap); }
html[data-company="grs"] body.design-ironclad .project-carousel .project-photo {
  width: var(--project-width);
  height: auto;
  flex: none;
  border-radius: 12px;
  box-shadow: 0 7px 18px #162c4326;
  overflow: hidden;
  background: #fff;
}
.project-carousel .project-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.project-carousel .project-photo > span { padding: 14px 18px 18px; }
.project-carousel[data-enhanced="true"] .project-carousel-window { overflow: hidden; }
.project-carousel[data-enhanced="true"] .project-carousel-track { animation: projects-loop var(--projects-duration, 200s) linear infinite; will-change: transform; }
.project-carousel[data-modal-open="true"] .project-carousel-track { animation-play-state: paused; }
.project-carousel[data-focused="true"] .project-carousel-window { overflow-x: auto; }
.project-carousel[data-focused="true"] .project-carousel-track { animation: none; transform: none; }
.project-carousel[data-focused="true"] [aria-hidden="true"] { visibility: hidden; }
@keyframes projects-loop { to { transform: translateX(-50%); } }
@media (max-width: 600px) { .project-carousel { --project-width: 78vw; --project-gap: 16px; } }
@media (prefers-reduced-motion: reduce) {
  .project-carousel[data-enhanced="true"] .project-carousel-window { overflow-x: auto; }
  .project-carousel[data-enhanced="true"] .project-carousel-track { animation: none; transform: none; }
  .project-carousel [aria-hidden="true"] { display: none; }
}
