.bento-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 260px;
    gap: 20px;
}

/* CARD */

.project-card {

    position: relative;

    display: block;

    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;

    overflow: hidden;

    padding: 28px;

    background: linear-gradient(90deg,
            #111 0%,
            #111 45%,
            rgba(17, 17, 17, 0.8) 60%,
            rgba(17, 17, 17, 0.3) 75%,
            transparent 100%);

}

.project-link {

    position: absolute;

    bottom: 20px;
    right: 20px;

    background: rgba(0, 0, 0, 0.7);

    padding: 8px 14px;

    border-radius: 20px;

    font-size: 14px;

    color: white;

    text-decoration: none;

    opacity: 0;

    transform: translateY(10px);

    transition: all .3s ease;

    z-index: 3;

}

/* HOVER */

.project-card:hover {
    border-color: #3CCB7F;
    transform: translateY(-6px);
    box-shadow: 0 0 25px rgba(60, 203, 127, 0.35);
}

.project-card:hover .project-link {

    opacity: 1;

    transform: translateY(0);

}


/* IMAGE */
.project-image::before {

    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 120px;
    height: 100%;

    background: linear-gradient(to right,
            #111 0%,
            rgba(17, 17, 17, 0.9) 30%,
            rgba(17, 17, 17, 0.4) 70%,
            transparent 100%);

    z-index: 1;

}

.project-image {

    position: absolute;

    top: 0;
    right: 0;

    width: 80%;
    height: 100%;

    opacity: 0;

    transition: opacity .4s ease, transform .4s ease;
    transform: translateX(40px);

}

.project-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    border-radius: 12px;

    position: relative;
    z-index: 0;

}

/* SHOW IMAGE ON HOVER */

.project-card:hover .project-image {
    opacity: 1;
}

/* TEXT */

.project-content {

    position: relative;

    z-index: 2;

    max-width: 55%;

}

.project-card h3 {
    font-size: 20px;
    margin-bottom: 6px;
}

.project-card p {
    font-size: 15px;
    opacity: 0.7;
}

/* MOBILE */
.project-card.active .project-image {
    opacity: 1;
}

.project-card.active .project-link {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width:768px) {

    .bento-grid {
        grid-template-columns: 1fr;
    }

}

/* DESKTOP BENTO */

@media (min-width:1024px) {

    .bento-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 240px;
        gap: 22px;
    }

    .project-card.featured {
        grid-column: span 2;
        grid-row: span 2;
    }

    .project-card.large {
        grid-row: span 2;
    }

}