.project-cover-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 52px 40px; }
.project-cover-grid > li { min-width: 0; }
.project-cover-link, .project-cover-pending { display: block; color: #414147; text-decoration: none; }
.project-cover-visual { position: relative; display: block; width: 100%; aspect-ratio: 3 / 2; overflow: hidden; background: #f2f3f4; }
.project-cover-visual img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 650ms cubic-bezier(.2, .65, .3, 1); }
.project-cover--future img { object-position: left center; }
.project-cover--robotics img { object-position: center center; }
.project-cover--fashion img { object-position: center 58%; }
.project-cover--sandriver img { object-position: center center; }
.project-cover--kalo { background: #fff; }
.project-cover--kalo img { object-fit: contain; }
.project-cover--theatre { background: #000; }
/* Fill the landscape frame and clip the source screenshot rim, without stretching the stage. */
.project-cover--theatre > img { position: relative; left: -3%; width: 106%; max-width: none; object-position: center 70%; }
.project-cover-grid h3 { min-height: 2.7em; margin-top: 18px; font-size: 17px; line-height: 1.35; font-weight: 500; letter-spacing: 0; overflow-wrap: break-word; transition: color 180ms ease; }
.project-cover-link:focus-visible { outline: 2px solid #25252a; outline-offset: 6px; }
.project-cover-link:focus-visible h3 { color: #08080a; }
.project-cover-link:focus-visible .project-cover-visual > img { transform: scale(1.02); }
/* Context marks remain separate from the photographs and never zoom with them. */
.project-award { position: absolute; left: 12px; bottom: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 80px; height: 84px; padding: 8px; background: #fffffff2; color: #242426; }
.project-cover-link .project-award img { position: static; width: auto; max-width: 100%; height: 68px; object-fit: contain; object-position: center; transform: none; transition: none; }
.project-cover-link .project-award--credited img { height: 53px; }
.project-award-credit { font-size: 10px; line-height: 1.2; font-weight: 500; letter-spacing: 0; }
@media (hover: hover) and (pointer: fine) {
  .project-cover-link:hover .project-cover-visual > img { transform: scale(1.02); }
  .project-cover-link:hover h3 { color: #08080a; }
}
@media (max-width: 1000px) {
  .project-cover-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 28px; }
}
@media (max-width: 600px) {
  .project-cover-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .project-cover-grid h3 { margin-top: 15px; font-size: 17px; min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .project-cover-visual img, .project-cover-grid h3 { transition: none; }
  .project-cover-link:hover .project-cover-visual > img,
  .project-cover-link:focus-visible .project-cover-visual > img { transform: none; }
}
