* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: Arial, Helvetica, sans-serif;
}

body {
  min-height: 100vh;

  display: flex;

  align-items: center;

  justify-content: center;

  color: white;

  background: linear-gradient(270deg, #0f2027, #203a43, #2c5364, #1c1c1c);

  background-size: 800% 800%;

  animation: bgAnimation 15s ease infinite;
}

@keyframes bgAnimation {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

.container {
  width: 750px;

  padding: 40px;

  text-align: center;

  background: rgba(255, 255, 255, 0.05);

  border-radius: 25px;

  backdrop-filter: blur(15px);

  border: 1px solid rgba(255, 255, 255, 0.1);

  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
}

.subtitle {
  color: #b5c4cc;

  margin-bottom: 25px;
}

/* GRID */

.trabalhos {
  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));

  gap: 15px;

  margin-top: 20px;
}

.item {
  position: relative;

  cursor: pointer;
}

.item img {
  width: 100%;

  border-radius: 12px;

  transition: 0.4s;
}

.item:hover img {
  transform: scale(1.05);
}

.item span {
  position: absolute;

  bottom: 0;

  left: 0;

  width: 100%;

  padding: 10px;

  background: rgba(0, 0, 0, 0.6);

  text-align: center;

  opacity: 0;

  border-radius: 0 0 12px 12px;

  transition: 0.4s;
}

.item:hover span {
  opacity: 1;
}

/* MODAL */

#modal {
  display: none;

  position: fixed;

  top: 0;
  left: 0;

  width: 100%;
  height: 100%;

  background: rgba(0, 0, 0, 0.9);

  backdrop-filter: blur(8px);

  justify-content: center;

  align-items: center;

  z-index: 999;
}

#modal img {
  max-width: 90%;

  max-height: 90%;

  border-radius: 12px;

  animation: zoomIn 0.3s;
}

@keyframes zoomIn {
  from {
    transform: scale(0.8);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}

/* SETAS */

.seta {
  position: absolute;

  top: 50%;

  transform: translateY(-50%);

  font-size: 40px;

  color: white;

  cursor: pointer;

  padding: 10px;
}

.esquerda {
  left: 30px;
}

.direita {
  right: 30px;
}

.seta:hover {
  color: #00bfff;
}

/* FECHAR */

.fechar {
  position: absolute;

  top: 30px;

  right: 40px;

  font-size: 30px;

  cursor: pointer;

  color: white;
}

/* BOTÃO */

.link {
  display: inline-block;

  margin-top: 25px;

  padding: 12px 20px;

  background: rgba(255, 255, 255, 0.05);

  border-radius: 12px;

  text-decoration: none;

  color: white;

  transition: 0.3s;
}

.link:hover {
  background: rgba(255, 255, 255, 0.15);

  transform: translateY(-3px);
}

/* FOOTER */

.footer {
  position: fixed;

  bottom: 15px;

  width: 100%;

  text-align: center;

  font-size: 13px;

  color: #b5c4cc;
}

/* RESPONSIVO */

@media (max-width: 700px) {
  .container {
    width: 95%;

    padding: 25px;
  }

  .trabalhos {
    grid-template-columns: repeat(2, 1fr);
  }

  .seta {
    font-size: 28px;
  }
}
