.project{
  .banner{
      position: relative;
      display: flex;
      height: 50vh;
      overflow: hidden;
      
      .cover{
        position: absolute;
        top: 0;
        left: 0;
        z-index: -1;
        width: 100%;
        height: 100%;
        object-fit: cover;
        scale: 1.2;
        filter: brightness(0.4) blur(6px);
      }

      .title{
        position: relative;
        margin: auto;
        padding: 4rem 10vw;
        width: 80vw;

        & .splitterline{
          position: absolute;
          left: 0;
          display: flex;
          width: 100%;
          height: 1.5rem;
          justify-content: center;
          align-items: center;

          &:first-of-type{
            top: 0;

            & .line{
              max-width: calc(50% - .5rem);
              height: 1px;
              background-color: var(--color3);
              animation: lineappear 2s ease-out forwards;
            }
          }

          &:last-of-type{
            bottom: 0;

            & .line{
              max-width: calc(50% - 10rem);
              height: 1px;
              background-color: var(--color3);
              animation: lineappear 2s ease-out forwards;
            }
          }

          & .decoration{
            width: 1rem;
            height: 1.5rem;
            border-left: 1px solid var(--color3);
            border-right: 1px solid var(--color3);
            background-color: transparent;
            animation: decoappear 1s ease-out forwards;
            
            &.subtitle{
              width: 20rem;
            }
          }
        }
        
        h1{
          font-size: 8rem;
          text-transform: uppercase;
          margin: 0;
          text-align: center;
          color: var(--color3);
        }
        
        h2{
          text-align: center;
          font-weight: 300;
          border-left: 1px solid var(--color3);
          border-right: 1px solid var(--color3);
        }
      }
  }

  .main-content{
      display: flex;
      flex-direction: column;
      gap: 1rem;
      position: relative;
      margin: 6rem 10vw;
      padding: 4rem 20vw;
      border-top: 1px solid var(--color3);
      border-bottom: 1px solid var(--color3);
      text-align: center;
      animation: contentappear 3s ease-out forwards;

      &::before{
        content: '';
        position: absolute;
        top: -6rem;
        left: 50%;
        z-index: -1;
        width: 1px;
        height: 6rem;
        background-color: var(--color3);
      }

      & h2{
        font-size: 3rem;
        color: var(--color3);
        margin-bottom: 1rem;
        animation: textappear 3s ease-out forwards;
      }
      
      & .description{
        margin-bottom: 1rem;
        animation: textappear 3s ease-out forwards;
        
        & p{
          margin-bottom: 1rem;
        }
      }
      
      & .softwares{
        animation: textappear 3s ease-out forwards;

        & .prefix{
          font-weight: 700;
          color: var(--color3);
        }
      }

      & .link{
        margin-top: 1rem;
        animation: textappear 3s ease-out forwards;

        & a{
          display: block;
          position: relative;
          left: 50%;
          width: 12rem;
          text-align: center;
          font-size: 1.5rem;
          font-weight: 600;
          transform: translateX(-50%);
          transform-origin: bottom center;
          transition: all 0.25s ease-out;

          &::before {
            content: "";
            pointer-events: none;
            position: absolute;
            bottom: -0.6rem;
            left: 0;
            display: block;
            width: 100%;
            height: 1px;
            border-radius: 1rem;
            background-color: var(--color3);
            transform: scaleX(0);
            transform-origin: bottom center;
            transition: all 0.25s ease-out;
          }

          &:hover {
            color: var(--color3);
            transform: translateX(-50%) scale(1.05);

            &::before {
              transform: scaleX(1);
            }
          }
        }
      }
  }

  .module{
      position: relative;
      display: grid;
      gap: 12.5%;
      align-items: center;
      grid-template-columns: repeat(2, 1fr);
      padding: 6rem;
      margin: 0 10vw;
      margin-bottom: 6rem;
      animation: contentappear 3s ease-out forwards;

      &::before{
        content: '';
        position: absolute;
        top: -1px;
        width: 60%;
        height: 1px;
        background-color: var(--color3);
      }
      &::after{
        content: '';
        position: absolute;
        bottom: 0;
        width: 60%;
        height: 1px;
        background-color: var(--color3);
      }
      
      &:last-of-type{
        &::after{
          width: 100%;
        }
      }
      
      &.left{
        border-right: 1px solid var(--color3);
        
        &::before, &::after{
          right: -1px;
        }

        & .description{
          grid-column: 2;
          grid-row: 1;
        }
        & .module-image{
          grid-column: 1;
          grid-row: 1;
        }
      }
      
      &.right{
        border-left: 1px solid var(--color3);
        
        &::before, &::after{
          left: -1px;
        }
      }
      
      & .deco-link{
        position: absolute;
        top: -6rem;
        left: 50%;
        width: 1px;
        height: 6rem;
        background-color: var(--color3);
      }

      & .description{
        width: 90%;
        animation: textappear 3s ease-out forwards;

        & h3{
          margin-bottom: 2.5rem;
          font-size: 3rem;
          color: var(--color3);
        }
      }

      & .module-image{
        max-width: 100%;
        height: 100%;
        object-fit: cover;
        background-color: var(--obsidian);
        animation: textappear 3s ease-out forwards;
      }
  }

  & .video-container{
    position: relative;
    margin: 0 10vw;
    margin-top: 12rem;
    padding: 6rem;
    border-top: 1px solid var(--color3);
    animation: contentappear 3s ease-out forwards;

    &::before{
      content: '';
      position: absolute;
      top: -12rem;
      left: 50%;
      width: 1px;
      height: 12rem;
      background-color: var(--color3);
    }

    & .video-title{
      font-size: 5rem;
      text-transform: uppercase;
      text-align: center;
      color: var(--color3);
      margin-bottom: 6rem;
      animation: textappear 3s ease-out forwards;
    }

    & .video{
      width: 100%;
      aspect-ratio: 16/9;
      animation: textappear 3s ease-out forwards;
    }
  }
}

@keyframes lineappear{
  0%{
    width: 0;
  }
  30%{
    width: 0;
  }
  100%{
    width: 100%;
  }
}

@keyframes decoappear{
  0%{
    transform: scaleY(0);
  }
  30%{
    transform: scaleY(0);
  }
  100%{
    transform: scaleY(1);
  }
}

@keyframes contentappear{
  0%{
    opacity: 0;
  }
  30%{
    opacity: 0;
  }
  100%{
    opacity: 1;
  }
}

@keyframes textappear{
  0%{
    transform: translateY(1rem);
  }
  30%{
    transform: translateY(1rem);
  }
  100%{
    transform: none;
  }
}