.project-modal__overlay {
  position: fixed;
  inset: 0;
  max-width: 1440px;
  min-height: 100dvh;
  margin: 0 auto;
  z-index: 100;
  overflow-y: auto;
  background-color: var(--color-bg);
}

.project-modal {
  max-height: 95vh;
  width: 90%;
  max-width: 1440px;
  background: linear-gradient(to top right, #1c1c1c 0%, #1c1c1c 32%, #202c29 42%, #1c3632 52%, #16403a 62%, #104943 72%, #0b4d42 100%);
  border-radius: var(--br-25);
  border: var(--border);
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 999;
  overflow-y: auto;
}

.project-modal__wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(clamp(200px, 50%, 402px), 1fr));
  height: 100%;
  padding: clamp(var(--spacing-sm), 4vw, var(--spacing-2xl)) clamp(var(--spacing-sm), 4vw, var(--spacing-2xl));
  gap: var(--spacing-lg);
}

.project-modal__content {
  display: flex;
  flex-direction: column;
}

.project-modal__subtitle {
  margin-top: var(--spacing-sm);
  font-size: clamp(var(--fs-lg), 5vw, var(--fs-xl));
  font-family: var(--fira);
  color: var(--color-primary);
}

.project-modal__description {
  margin-top: var(--spacing-sm);
  max-width: 48ch;
  overflow-wrap: break-word;
  font-size: clamp(var(--fs-sm), 4vw, var(--fs-md));
  font-family: var(--karla);
  color: var(--color-text);
}

.project-modal__skills {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  column-gap: var(--spacing-md);
}

.project-modal__skill {
  display: flex;
  align-items: center;
  gap: var(--spacing-xxs);
  margin-top: var(--spacing-md);
}

.project-modal__actions {
  margin-top: var(--spacing-lg);
  display: flex;
  gap: var(--spacing-lg);
}

.project-modal__skill > img {
  height: clamp(20px, 4vh, 32px);
  filter: brightness(0) saturate(100%) invert(72%) sepia(100%) saturate(309%) hue-rotate(109deg) brightness(86%) contrast(87%);
}

.project-modal__preview {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: end;
}

.project-modal__close {
  width: fit-content;
  border: none;
  margin: 0;
  padding: 0;
}

.project-modal__close::after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  mask: url("../../assets/icons/close.svg") no-repeat center;
  mask-size: contain;
  background-color: var(--color-text);
  transition:
    transform 125ms ease-in-out,
    background-color 125ms ease-in-out;
}

.project-modal__close:hover:after {
  transform: scale(1.3);
  background-color: var(--color-primary);
}

.project-modal__preview > img {
  width: clamp(250px, 85vw, 650px);
  height: auto;
  margin: var(--spacing-lg) 0 var(--spacing-2xl) 0;
  align-self: center;
}

.project-modal__next {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  margin: 0;
  padding: 0;
  border: none;
  color: var(--color-primary);
  font-family: var(--karla);
}

.project-modal__next:hover {
  color: var(--color-text);
}

.project-modal__next:hover::after {
  transform: scale(1.1) translateX(5px);
}

.project-modal__next::after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 28px;
  margin-left: var(--spacing-xs);
  mask: url("../../assets/icons/arrow-forward.svg") no-repeat center;
  mask-size: contain;
  background-color: var(--color-primary);
  transition:
    transform 125ms ease-in-out,
    scale 125ms ease-in-out;
}

.project-modal__number {
  font-size: clamp(var(--fs-5xl), 10vw, var(--fs-6xl));
  font-family: var(--karla);
  color: var(--color-primary);
}

.project-modal__title {
  font-size: var(--fs-5xl);
  font-family: var(--fira);
  font-size: clamp(var(--fs-3xl), 10vw, var(--fs-4xl));
}

.project-modal__skill > p {
  font-size: var(--fs-xs);
  font-family: var(--karla);
}

.project-modal__actions > button {
  font-size: clamp(var(--fs-sm), 4vw, var(--fs-md));
  font-family: var(--karla);
  color: var(--color-text);
  padding: clamp(var(--spacing-xs), 2vw, var(--spacing-sm)) clamp(var(--spacing-sm), 2vw, var(--spacing-lg));
  transition:
    border-color 125ms ease-in-out,
    color 125ms ease-in-out;
}

.project-modal__actions > button:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.project-modal__actions > button:hover:after {
  transform: scale(1.1) translateX(3px) translateY(-3px);
}

.project-modal__actions > button:after {
  content: "";
  display: inline-block;
  width: 22px;
  height: 12px;
  margin-left: 5px;
  mask: url("../../assets/icons/arrow-outward.svg") no-repeat center;
  mask-size: contain;
  background-color: var(--color-primary);
  transition:
    transform 125ms ease-in-out,
    scale 125ms ease-in-out;
}

.project-modal__next--mobile {
  display: none;
}

@media (max-width: 1024px) {
  .project-modal__content {
    order: 2;
  }

  .project-modal__next {
    display: none;
  }

  .project-modal__next--mobile {
    display: inline-flex;
  }

  .project-modal__preview > img {
    margin: var(--spacing-lg) 0 0 0;
  }

  .project-modal__actions {
    display: flex;
    flex-wrap: wrap;
  }

  .project-modal__next-wrapper {
    flex: 1 1 100%;
    display: flex;
    justify-content: flex-end;
  }
}

@media (max-width: 600px) {
  .project-modal__actions {
    justify-content: center;
  }
}
