/* Card polish */
.project-card {
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.project-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(0,0,0,.08);
}

/* Image grid */
.thumb {
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1/1;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/* Modal appear */
#project-modal:not(.hidden) .relative {
  animation: modalIn .18s ease-out;
}
@keyframes modalIn {
  from { transform: translateY(8px) scale(.98); opacity:.9; }
  to   { transform: translateY(0)   scale(1);   opacity:1; }
}
