.projects .bento {
    padding: 15px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(8, 1fr);
    gap: 10px;
    height: 90vh;
}

.projects .card {
    background-position: center;
    background-size: cover;
    border-radius: 20px;
    transition: all .2s;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(3px);
}

.projects .card svg,
.projects .card img {
    height: 8vh;
    filter: drop-shadow(2px 4px 6px black);
}

.projects .card:hover svg {
    animation: slide-out-blurred-bottom 0.5s ease-in-out forwards;
}

.projects .card:hover {
    cursor: pointer;
}
.projects .card::after {
    position: absolute;
    top: -101%;
    height: 101%;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    transition: all .2s;
    font-family: 'Montserrat';
    font-weight: 600;
}

.projects .card:hover::after {
    top: 0;
}

.identite-graphique {
    background-color: rgb(216, 151, 151, .2);
    border: 2px solid #D92626;
    grid-row: 1 / 3;
    grid-column: 1 / 3;
}

.identite-graphique:after {
    content: "Identité graphique";
    color: #D92626;
}

.gallery-three {
    background-color: rgb(216, 181, 151, .2);
    border: 2px solid #D97926;
    grid-column: 3 / 5;
    grid-row: 1;
}

.gallery-three:after {
    content: "3D";
    color: #D97926;
}

.portfolio {
    background-color: rgb(151, 171, 216, .2);
    border: 2px solid #265DD9;
    grid-column: 3;
    grid-row: 2 / 4;
}

.portfolio:after {
    content: "Portfolio";
    color: 	#265DD9;
}

.audit-seo {
    background-color: rgb(191, 216, 151, .2);
    border: 2px solid #94D926;
    grid-column: 4;
    grid-row: 2 / 5;
}

.audit-seo:after {
    content: "Audit SEO";
    color: #94D926;
}

.guesshit {
    background-color: rgb(161, 216, 151, .2);
    border: 2px solid #42D926;
    grid-column: 1 / 4;
    grid-row: 4 / 6;
}

.guesshit:after {
    content: "GuessHit (blind test)";
    color: #42D926;
}

.atolcd {
    background-color: rgb(151, 216, 171, .2);
    border: 2px solid #26D95D;
    grid-column: 2 / 5;
    grid-row: 6 / 8;
}

.atolcd:after {
    content: "Alternance (AtolCD)";
    color: #26D95D;
}

.weather {
    background-color: rgb(151, 216, 201, .2);
    border: 2px solid #26D9B0;
}

.weather:after {
    content: "WeatherApp";
    color: #26D9B0;
}

.planet {
    background-color: rgb(151, 201, 216, .2);
    border: 2px solid #26B0D9;
}

.planet:after {
    content: "Planète 3D";
    color: #26B0D9;
}

.photos {
    background-color: rgb(216, 211, 151, .2);
    border: 2px solid #D9CB26;
    grid-column: 1;
    grid-row: 6 / 8;
}

.photos:after {
    content: "Galerie photo";
    color: 	#D9CB26;
}

.plateaubad {
    background-color: rgb(191, 151, 216, .2);
    border: 2px solid #9426D9;
}

.plateaubad:after {
    content: "Refonte graphique";
    color: #9426D9;
}

.cesim {
    background-color: rgb(216, 151, 211, .2);
    border: 2px solid #D926CB;
}

.cesim:after {
    content: "Cesim";
    color: #D926CB;
}

.pokedex {
    background-color: rgb(216, 151, 181, .2);
    border: 2px solid #D92679;
    grid-column: 2 / 5;
    grid-row: 8;
}

.pokedex:after {
    content: "Pokedex";
    color: #D92679;
}

/* ----------------------------------------------
 * Generated by Animista on 2025-4-16 11:31:28
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-out-blurred-bottom
 * ----------------------------------------
 */
 @-webkit-keyframes slide-out-blurred-bottom {
    0% {
      -webkit-transform: translateY(0) scaleY(1) scaleX(1);
              transform: translateY(0) scaleY(1) scaleX(1);
      -webkit-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      -webkit-filter: blur(0);
              filter: blur(0);
      opacity: 1;
    }
    100% {
      -webkit-transform: translateY(1000px) scaleY(2) scaleX(0.2);
              transform: translateY(1000px) scaleY(2) scaleX(0.2);
      -webkit-transform-origin: 50% 100%;
              transform-origin: 50% 100%;
      -webkit-filter: blur(40px);
              filter: blur(40px);
      opacity: 0;
    }
  }
  @keyframes slide-out-blurred-bottom {
    0% {
      -webkit-transform: translateY(0) scaleY(1) scaleX(1);
              transform: translateY(0) scaleY(1) scaleX(1);
      -webkit-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      -webkit-filter: blur(0);
              filter: blur(0);
      opacity: 1;
    }
    100% {
      -webkit-transform: translateY(1000px) scaleY(2) scaleX(0.2);
              transform: translateY(1000px) scaleY(2) scaleX(0.2);
      -webkit-transform-origin: 50% 100%;
              transform-origin: 50% 100%;
      -webkit-filter: blur(40px);
              filter: blur(40px);
      opacity: 0;
    }
  }
  