@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

html, body {
    overflow-x: hidden;
    font-family: 'Roboto', sans-serif;
    color: #EFEFD0;
    background-color: #010204;
    margin: 0;
    padding: 0;
}

canvas {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
  }
  
a {
    text-decoration: none;
    color: inherit;
}

.mc-div {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    width: 100vw;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
}


.section {
    height: 100vh;
    width: 100vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

/* ------------------------------------------------------------- */

#home  { /* home component with name, logo , orbit-menu */
    display: flex;
    flex-direction: column;
}


    .name-title { /* "Eralo svg container" */
        height : 40vh;
    }

        .name-title #movingRect { /* component of name that creates the "shining" effect */
            fill: #c48c37;    
        }


    .logo-container { /*container for animated logo*/
        flex: 2;
        height:  40vh;
        padding : 20vh 20vw
    }

        .logo { 
            width: 100%;
            height: 100%; 
            overflow: visible;
            margin: 10%;
        }

        .interact { /* invisible circle added to interact and spin logo */
            fill: transparent;
            cursor: pointer;
        }


    .menu { /* individual menu elements */
        position: absolute;
        white-space: nowrap;
        font-family: "Montserrat", sans-serif;
        font-size: 1.5rem;
        cursor: pointer;
    }

    @media (max-width: 768px) {
        .menu {
          font-size: 1rem;
        }
      
        .logo-container {
          margin-right: 5vh; /* réduit l’espace sur mobile */
        }
      }

/* ------------------------------------------------------------- */

#infos {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-image: linear-gradient(to bottom, #00000000, #000000e6 80%);
}
    .infos-container {
        display: flex;
        flex-direction: row;
        align-items: center;
        max-height: 85vh;
    }
  
        /* initial state */
        .info-logo,
        .info-separator,
        .info-desc {
            opacity: 0;
            transition: transform 0.7s ease, opacity 0.7s ease;
        }
        
        .info-logo {
            height: min(60vh, 80vw); /* le carré le plus grand possible sans dépasser */
            width: auto;             /* s'adapte pour rester carré */
            aspect-ratio: 1 / 1;
            object-fit: cover;
            border-radius: 5vw;
            margin: 2vh 2vw;
            transform: translateX(-300px);
        }
        .info-separator {
            width: 10vw;
            transform: translateX(-300px);
            font-size: 20rem;
            font-family: 'Montserrat', sans-serif;
            font-weight: 100;
            line-height: 1;
        }
        
        .info-desc {
            width: 30vw;
            margin-left: 5rem;
            padding: 2rem;
            transform: translateX(300px);
            text-align: center;
            word-wrap: break-word;
            overflow-wrap: break-word;
            font-style: italic;
        }
        
        /*visible state*/
        .info-visible {
            opacity: 1;
            transform: translateX(0);
        }

    @media (max-width: 850px) { /*vertical layout for phones*/
        .infos-container {
            flex-direction: column;
            height: auto;
            padding: 2rem;
        }
        
        .info-logo {
            height: 40vh;
            max-height: 40vw;
            width: 40vh;
            max-width: 40vw;
        }
        
        .info-separator {
            font-size: 5rem;
            height: 5vh;
            width: auto;
        }
        
        .info-desc {
            width: 80vw;
            margin-left: 0;
            padding: 1rem;
        }
    }

    .socials-container{
       display: flex;
    }

    .socials{
       width: 5vw;
       margin: 3vh 5vw;
    }

/* ------------------------------------------------------------- */

#projets {
display: flex;
justify-content: center;
align-items: center;
background-image: linear-gradient(to bottom, #000000e6, #000000 80%);
height: auto;
min-height: 100vh;
}


.project-card-wrapper {
    display : flex;
    flex-wrap: wrap;
    perspective: 2000px;
    justify-content: center;
}

    .project-card{
        position: relative;
        display: flex;
        flex-direction: row;
        justify-content: left;
        vertical-align: center;
        align-items: center;
        min-height: 20vh;
        max-height: 80vh;
        width: 30rem;
        max-width: 80vw;
        margin: 3rem;
        padding: 1rem;
        border: .2rem rgb(88, 79, 0) solid;
        border-radius: 20px;
        overflow: visible;
        transform-style: preserve-3d;

        transition: transform 0.4s, box-shadow 0.4s ;
    }

    .project-card:hover {
        /*transform: scale(1.025); - Managed by JS*/
        box-shadow: 0 0 100px -30px #f9e49e9e;  
    }
        
    .project-card:hover .project-card-bg-gif {
        opacity: 1;
    }
        .project-card-logo {
            height: 10rem;
            border-radius: 10px;

            position: relative;
            transform-style: preserve-3d;
            transition: transform 0.3s ease;
            will-change: transform;

            transform: translateZ(20px);
        }

        .project-card-desc {
            margin-left: 2rem;

            position: relative;
            transform-style: preserve-3d;
            transition: transform 0.3s ease;
            text-align: center;
            will-change: transform;
            text-shadow: 1px 1px 4px rgba(0,0,0,0.8);

            transform: translateZ(10px);

            font-style: italic;
        }


        .project-card-bg-gif {
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            object-fit: cover;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.4s ease;

            filter: blur(4px);
        }



/* ------------------------------------------------------------- */

@keyframes animate-border-gradient {
    0% {
      transform: rotate(0deg);
      transform-origin: bottom;
    }
    100% {
      transform: rotate(360deg) ;
      transform-origin: bottom;
    }
  }


  