.contact{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 100%;
    position: relative;
    font-family: "Source Sans 3", sans-serif;
    color: #fff;
}

.contact-overlay{
    position: absolute;
    height: 100%;
    width: 100%;
    overflow: hidden;
    z-index: -1;
}

.contact-overlay .cube-grid{
    right: 300px;
    bottom: 400px;
    filter: brightness(0.4);
    position: absolute;
    transform: skewY(-20deg);
}

.cube-grid .cube{
    position: relative;
    z-index: 2;
}

.cube-grid .cube:nth-child(2){
    z-index: 1;
    translate: -60px -60px;
    animation: grid-backside-gap 10s infinite ease-in-out;
}

.cube-grid .cube:nth-child(3){
    z-index: 3;
    translate: 60px 60px;
    animation: grid-front-gap 10s infinite ease-in-out;
}

.cube-grid .cube div{
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 30px;
    translate: calc(-70px * var(--x));
    animation: grid-gap-change 10s infinite ease-in-out;
}

.cube-grid .cube div span{
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    background: #ffc400;
    z-index: calc(1 * var(--i));
}

.cube-grid .cube div span::before{
    content: '';
    position: absolute;
    left: -40px;
    width: 40px;
    height: 100%;
    background-color: #deaa00;
    transform-origin: right;
    transform: skewY(45deg);
}

.cube-grid .cube div span::after{
    content: '';
    position: absolute;
    top: -40px;
    left: 0;
    width: 100%;
    height: 40px;
    background-color: #d3a200;
    transform-origin: bottom;
    transform: skewX(45deg);
}

.contact-dots{
    position: absolute;
    z-index: -1;
    display: flex;
    align-items: center;
    gap: 40px;
    right: calc(50% - 40px);
    top: 0;
}

.contact-dots .dot-col{
    display: block;
    position: relative;
}

.contact-dots .dot-col .dot{
    display: block;
    height: 3px;
    width: 3px;
    background: #484848;
    border-radius: 50%;
    margin-top: 40px;
}

.contact-content{
    height: 100%;
    width: 100%;
    position: absolute;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.contact-col{
    height: 100%;
    width: 50%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.contact-left{
    align-items: center;
    perspective: 1000px;
}

.cv-screen{
    position: relative;
    height: 500px;
    width: 400px;
    background: #ffffff06;
    border-radius: 15px;
    border-top: 30px solid #000a;
    border-left: 0.1px solid #fff4;
    border-bottom: 0.1px solid #fff4;
    backdrop-filter: blur(15px);
    transform-style: preserve-3d;
    transform: rotateY(30deg);
    transition: 0.5s;
    transform-origin: left;
    padding: 20px;
}

.cv-screen:hover{
    transform: scale(1.1);
}

.cv-screen::before, .cv-screen::after{
    height: 8px;
    width: 8px;
    background: #46c8ff;
    border-radius: 50%;
    position: absolute;
    content: '';
    top: -18px;
    left: 55px;
}

.cv-screen::after{
    left: 25px;
    box-shadow: 15px 0 0 #46c8ff;
}

.contact-right p{
    font-size: 18px;
    padding-bottom: 15px;
    line-height: 28px;
    text-shadow: 2px 2px 4px #111;
}

.contact-right h2{
    font-size: 38px;
    transition: 0.5s;
    cursor: default;
    text-shadow: 2px 2px 4px #111;
}

.contact-right h2:hover{
    color: #46c8ff;
}

.cv-screen{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.cv-screen img{
    width: 30%;
}

.cv-screen h3{
    font-size: 38px;
    text-align: center;
    transition: 0.5s;
}

.cv-screen h3:hover{
    color: #ffc400;
}

.cv-screen a{
    color: #f9306c;
    text-decoration: none;
}

.cv-screen a:hover{
    text-decoration: underline;
}