* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  min-height: 100vh;
  gap: 2rem;
}

.img-container {
  overflow: hidden;
}

.img-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease-out;
  cursor: pointer;
}

.img-container img:hover {
  transform: scale(1.2);
}

.modal {
  background: rgba(0, 0, 0, 0.6);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: 0.25s ease-in-out;
}

.modal.open {
  opacity: 1;
  pointer-events: all;
}

.full-img {
  position: absolute;
  height: 70%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.5);
}

.full-img.open {
  transform: translate(-50%, -50%) scale(1);
}

.modal p {
  color: white;
  font-size: 2rem;
  position: absolute;
  bottom: 5%;
  left: 50%;
  transform: translate(-50%, -5%);
}
