.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 4rem;
}

.portfolio-item {
  position: relative;
  height: 320px;
  overflow: hidden;
  cursor: pointer;
}

.portfolio-item:nth-child(2),
.portfolio-item:nth-child(5) { height: 400px; }

.portfolio-item { overflow: hidden; }

.portfolio-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 0.6s ease;
  will-change: transform;
}

.portfolio-item:hover img { transform: scale(1.06); filter: brightness(1.05); }

.portfolio-item::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(26,26,26,0.85) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.portfolio-item:hover::after { opacity: 1; }

.portfolio-overlay {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s ease;
  display: flex; flex-direction: column;
  justify-content: flex-end;
  padding: 2rem;
  transform: translateY(6px);
  z-index: 2;
}

.portfolio-item:hover .portfolio-overlay {
  opacity: 1;
  transform: translateY(0);
}

.portfolio-overlay h4 {
  font-family: var(--font-heading);
  color: var(--warm-white);
  font-size: 1.2rem;
  margin-bottom: 0.3rem;
  transform: translateY(8px);
  transition: transform 0.5s ease, opacity 0.5s ease;
  opacity: 0;
}

.portfolio-overlay span {
  font-family: var(--font-alt);
  color: var(--gold);
  font-size: 0.85rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  transform: translateY(8px);
  transition: transform 0.5s ease 0.05s, opacity 0.5s ease 0.05s;
  opacity: 0;
}

.portfolio-item:hover .portfolio-overlay h4,
.portfolio-item:hover .portfolio-overlay span {
  transform: translateY(0);
  opacity: 1;
}

@media (max-width: 768px) {
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-item,
  .portfolio-item:nth-child(2),
  .portfolio-item:nth-child(5) { height: 280px; }
}
