/* ----------------- GENERAL ----------------- */
@font-face {
    font-family: 'Rammetto One';
    src: url('/assets/fonts/RammettoOne-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Change One';
    src: url('/assets/fonts/ChangaOne-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Helvetica';
    src: url('/assets/fonts/Helvetica.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Helvetica Bold';
    src: url('/assets/fonts/Helvetica-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Helvetica Rounded';
    src: url('/assets/fonts/helvetica-rounded-bold-5871d05ead8de.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

:root {
    --main-color: rgb(36, 49, 66);
    --main-color-alpha: rgba(84, 121, 152, 0.1);
    --font-color: #FFFFFF;

    --font-title: 'Rammetto One';
    --font-text: 'Helvetica';
    --font-special: 'Helvetica Rounded';
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: var(--main-color);
    color: var(--font-color);
    text-align: center;
}

main {
    padding: 0 50px 50px;
}

h1 {
    font-family: var(--font-title), cursive;
    font-size: 3.5rem;
}

h2 {
    font-family: var(--font-title), cursive;
    font-size: 2.5rem;
    margin-bottom: 25px;
}

h3 {
    font-family: var(--font-title), cursive;
    font-size: 2rem;
    margin-bottom: 25px;
}

p, li, a {
    font-family: var(--font-text), sans-serif;
    font-size: 1.2rem;
}

br {
    margin-bottom: 10px;
}

.acrylic-background {
    background-color: var(--main-color-alpha);
    box-shadow: rgba(0, 0, 0, 0.4) 0 0 20px;
    backdrop-filter: blur(30px);

    transition: box-shadow 0.2s ease-out,
    backdrop-filter 0.2s ease-out,
    scale 0.2s ease-out;
}

.acrylic-background-hover:hover {
    backdrop-filter: blur(100px);
    box-shadow: black 0 0 20px;
    scale: 1.01;

    transition: box-shadow 0.2s ease-out,
    backdrop-filter 0.2s ease-out,
    scale 0.2s ease-out;
}

.button {
    display: inline-block;
    padding: 10px 20px;

    min-width: 200px;

    text-decoration: none;
    color: var(--font-color);

    box-shadow: black 0 0 10px;

    border-radius: 20px;
    transition: all 0.2s ease-out;
}
.button:hover {
    box-shadow: black 0 0 15px;
    transform: translateY(-2px);

    transition: all 0.2s ease-out;
}

.tile {
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    width: 30%;
    min-height: 700px;
    max-width: 500px;
    margin: 20px;

    border-radius: 10px;

    a {
        color: var(--font-color);
        text-decoration: none;

        padding: 20px;

        width: 100%;
        height: 100%;
    }

    h3 {
        height: 50px;
    }

    img {
        width: 100%;
        height: 230px;

        margin-bottom: 20px;
        border-radius: 10px;

        overflow: hidden;
        object-fit: cover;
        object-position: center;
    }

    p {
        justify-content: center;
        text-align: justify;
    }
}


/* ----------------- BACKGROUND ----------------- */
.video-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    z-index: -1;

    video {
        width: 100dvw;
        height: 100dvh;
        object-fit: cover;
        display: block;
    }
}

.video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
}

/* ----------------- HEADER ----------------- */
header {
    position: fixed;

    height: 75px;
    width: 96%;
    top: -100px;
    left: 2%;
    z-index: 2;

    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;

    border-radius: 20px;

    transform: translateY(-100px);

    h1 {
        font-size: 2rem;
    }

    img {
        width: 50px;
        height: 50px;
        margin-right: 20px;
        border-radius: 100%;
    }
}

header.acrylic-background {
    transition: transform 0.5s ease-in-out,
    box-shadow 0.2s ease-out,
    backdrop-filter 0.2s ease-out,
    scale 0.2s ease-out;
    will-change: transform;
}

#accueil {
    height: calc(100dvh - 50px);
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    position: relative;

    img {
        width: 250px;
        height: 250px;
        margin-bottom: 20px;

        border-radius: 100%;
    }
}

/* ----------------- MAIN ----------------- */
main {
    margin-bottom: 50px;
}

section {
    min-height: 100dvh;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    div {
        padding: 20px;
        border-radius: 10px;
        width: 100%;
    }

    ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: stretch;
    }
}

#github_button {
    margin-top: 30px;

    color: black;
    background-color: white;
}

#github_button::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-right: 6px;
    background-size: contain;
    vertical-align: middle;
    background-repeat: no-repeat;
    position: relative;
    top: -1px;
    background-image: url("/assets/images/github.svg");
}

#textWorld-button {
    margin-top: 20px;
    background-color: rgb(70, 70, 70);
}

#textWorld-button::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    margin-right: 6px;
    background-size: contain;
    vertical-align: middle;
    background-repeat: no-repeat;
    position: relative;
    top: -1px;
    background-image: url("/assets/images/text.svg");
}

#CV-button {
    margin-top: 20px;
    background-color: #FFF;
    color : black;
}

#CV-button::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    margin-right: 6px;
    background-size: contain;
    vertical-align: middle;
    background-repeat: no-repeat;
    position: relative;
    top: -1px;
    background-image: url("/assets/images/cv.svg");
}


/* ----------------- FOOTER ----------------- */
footer {
    border-radius: 20px 20px 0 0;
    width: 96%;
    height: 300px;

    position: fixed;

    top: 100dvh;
    left: 2%;
    z-index: 2;

    display: flex;
    flex-direction: column;

    transform: translateY(50px);

    a {
        color: var(--font-color);
        cursor: text;
        text-decoration: none;
    }

    p {
        margin: 10px;
    }

    div {
        margin-top: 15px;
    }

    h4 {
        font-family: var(--font-title), cursive;
        font-size: 1.5rem;

        margin-bottom: 10px;
    }

    ul {
        list-style: none;
    }

    li {
        margin: 5px;

        a:hover {
            text-decoration: underline;

            cursor: pointer;
        }
    }

    div div {
        margin-top: 0
    }
}

footer.acrylic-background {
    transition: transform 0.5s ease-in-out,
    box-shadow 0.2s ease-out,
    backdrop-filter 0.2s ease-out,
    scale 0.2s ease-out;
    will-change: transform;
}

/* ----------------- CV-SPECIFIC ----------------- */
#CV {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    margin: 0;
}

#CV_bg_image {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 100vh;
    z-index: -1;

    filter: blur(5px);

}

#downloadCV {
    margin: 20px 0;
    background-color: #FFF;
    color : black;

    border: none;
}

#cv_buttons_div {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 30px;
}

#englishCV, #frenchCV {
    margin: 20px 0;
    background-color: #FFF;
    color : black;

    border: none;
}
#englishCV::before, #frenchCV::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-right: 4px;
    background-size: contain;
    vertical-align: middle;
    background-repeat: no-repeat;
    position: relative;
    top: 3px;
}
#englishCV::before {
    background-image: url("/assets/images/cv/en_flag.svg");
}
#frenchCV::before {
    background-image: url("/assets/images/cv/fr_flag.svg");
}

#page {
    width: 21cm;
    height: 29.7cm;
    margin: auto;
    padding: 5mm 5mm 5mm 0;
    background: white;
    box-shadow: 0 0 10px 2px black;

    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;

    overflow: hidden;

    img {
        height: 100px;
        width: 100px;
        border-radius: 100%;

        margin-bottom: 10px;
    }

    > section {
        width: auto;
        height: auto;
        min-height: auto;
        max-height: none;
        min-width: auto;
        max-width: none;

        color: black;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }

    #side {
        height: 100%;
        width: 30%;

        padding: 5mm;

        border-radius: 0 20px 20px 0;

        background: black url('/assets/images/cv/ps2.png') no-repeat center center;
        background-size: cover;

        * {
            color: white;
            text-decoration: none;

            padding: 0;
            margin: 0;
        }

        div {
            height: 100%;
            width: 100%;

            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: space-evenly;
        }

        h1 {
            color: white;
            font-size: 1.4rem;
            margin-bottom: 15px;
        }

        h2 {
            font-size: 1.2rem;
            margin-bottom: 7px;

            text-decoration: underline;

            font-family: var(--font-special), sans-serif;
        }

        p {
            font-size: 1rem;
            margin-bottom: 5px;

            align-self: flex-start;
        }

        p::before {
            content: "";
            display: inline-block;
            width: 20px;
            height: 20px;
            margin-right: 4px;
            background-size: contain;
            vertical-align: middle;
            transform: translateY(-1.625px);
        }
        #phone::before {
            background-image: url("/assets/images/cv/phone.svg");
        }
        #mail::before {
            background-image: url("/assets/images/cv/mail.svg");
        }
        #drive::before {
            background-image: url("/assets/images/cv/car.svg");
        }
        #github::before {
            background-image: url("/assets/images/cv/github.svg");
        }
        #website::before {
            background-image: url("/assets/images/cv/globe.svg");
        }

        ul {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 100%;

            gap: 3px;

            list-style: none;

            li {
                font-size: 1rem;
                width: 100%;
                text-align: left;
                padding-left: 15px;
            }
            li::before {
                content: "-";
                position: absolute;
                display: inline-block;
                margin-right: 4px;
                transform: translateX(-15px);
            }
            li:first-child {
                margin-top: 10px;
                text-align: left;
                padding-left: 0;
            }
            li:first-child::before {
                content: "";
            }
        }
    }

    #body {
        height: 100%;
        width: 70%;

        h1 {
            color: black;
            font-size: 2.1rem;

            line-height: 2.8rem;

            margin: 20px 0 10px 0;
        }

        .h1_en {
            font-size: 2.9rem;
        }

        h2 {
            font-size: 1.8rem;
            margin-bottom: 10px;
            margin-left: 20px;

            align-self: flex-start;

            text-decoration: underline;

            font-family: var(--font-special), sans-serif;
        }

        ul {
            width: 100%;
            height: 60%;

            display: flex;
            flex-wrap: wrap;
            justify-content: space-evenly;
            align-items: stretch;


            li {
                width: 47%;

                border-radius: 10px;

                padding: 10px;
                margin-bottom: 10px;

                list-style: none;

                background-image: url("/assets/images/cv/ruins_tree_night.png");

                h3 {
                    font-size: 1.1rem;
                    margin-bottom: 10px;

                    font-family: var(--font-special), sans-serif;

                    color: white;
                }

                img {
                    width: 100%;
                    height: 100px;

                    margin-bottom: 10px;

                    border-radius: 10px;

                    overflow: hidden;
                    object-fit: cover;
                    object-position: center;
                }

                p {
                    font-size: 0.8rem;

                    text-align: justify;

                    color: white;

                    br {
                        margin: 0;
                    }
                }

                .p_en {
                    font-size: 0.86rem;
                }
            }

            li:nth-child(1) {
                background-position: 50% 60%;
            }
            li:nth-child(2) {
                background-position: 50% 70%;
            }
        }

        ol {
            width: 100%;
            height: auto;

            list-style: none;

            li {
                font-size: 1rem;
                line-height: 1rem;
                margin-bottom: 5px;
                padding-left: 40px;
                padding-right: 20px;
                position: relative;

                text-align: justify;
            }
            li::before {
                content: "-";
                position: absolute;
                display: inline-block;
                transform: translateX(-15px);
            }

        }
    }
}

/* ----------------- PROJECT-SPECIFIC ----------------- */
#project_main {
    padding: 30px;

    margin-bottom: 100px;
}

#project_parent {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 50px;

    margin-bottom: 50px;
}

#titre_lien {

    h1 {
        text-align: left;
    }

    h4 {
        font-family: var(--font-special), cursive;
        font-size: 1.5rem;

        text-align: left;

        text-decoration: underline;
        margin-bottom: 10px;
    }

    ul {
        text-align: left;
        list-style: none;
        padding-left: 20px;

        li a {
            color: white;

            font-size: 1.4rem;
            text-decoration: none;
        }

        li a:hover {
            text-decoration: underline;
        }

        li::before {
            content: "-";
            position: absolute;
            display: inline-block;
            margin-right: 4px;
            transform: translateX(-15px);
        }
    }
}

#couverture {

    img {
        border-radius: 20px;
        box-shadow: 0 0 15px 5px rgba(0,0,0,0.5);
        max-width: 100%;
        max-height: 50vh;
        min-height: 30vh;
    }
}

#carousel {
    position: relative;
    overflow: hidden;
    grid-column: span 2 / span 2;
    grid-row-start: 2;

    ul {
        display: flex;
        transition: transform 0.4s ease;
        list-style: none;
        padding: 0;
        margin: 0;
        align-items: center;
    }

    li {
        flex: 0 0 33%;
        padding: 10px;
    }

    img {
        width: 100%;
        border-radius: 10px;

        cursor: pointer;
    }

    .arrow {
        position: absolute;
        top: 50%;
        z-index: 2;
        transform: translateY(-50%);
        border:none;
        padding: 5px;

        cursor: pointer;

        box-shadow: none;
        border-radius: 100%;

        img {
            width: 40px;
            height: 40px;
        }
    }

    .left { left: 15px; }
    .right { right: 15px; }
}

#contenu {
    grid-column: span 2 / span 2;
    grid-row-start: 3;

    padding: 40px 20px;
    border-radius: 10px;

    p {
        text-align: left;
        font-size: 1.2rem;
    }
}

#lightbox {
    display: flex;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    justify-content: center;
    align-items: center;
    z-index: 3;

    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

#lightbox.active {
    opacity: 1;
    pointer-events: auto;
}

#lightbox img {
    max-width: 90%;
    max-height: 90%;
    border-radius: 10px;
}

#index_button {
    text-align: center;
    font-size: 1.2rem;
}

#index_button::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    margin-right: 6px;
    background-size: contain;
    vertical-align: middle;
    background-repeat: no-repeat;
    position: relative;
    top: -1px;
    background-image: url("/assets/images/arrow-left.svg");
}

.markdown {
    text-align: justify;

    h1 {
        font-family: var(--font-title), cursive;
        font-size: 2rem;

        margin-bottom: 20px;
    }

    h2 {
        font-family: var(--font-title), cursive;
        font-size: 1.5rem;

        margin-bottom: 10px;
    }

    h3 {
        font-family: var(--font-title), cursive;
        font-size: 1.2rem;

        margin-bottom: 6px;
    }

    p {
        font-family: var(--font-text), cursive;
        font-size: 1.2rem;

        margin-bottom: 20px;

        line-height: 1.3;
    }

    ul, ol {
        font-family: var(--font-text), cursive;
        font-size: 1.2rem;

        margin-left: 40px;
        margin-bottom: 20px;

        li {
            margin-bottom: 7px;
        }
    }

    hr {
        margin: 40px 0;
    }
}


/* ----------------- RESPONSIVE ----------------- */
@media screen and (max-width: 840px) {
    main {
        padding: 20px;
    }

    br {
        margin-bottom: 30px;
    }

    /* ----------------- MAIN ----------------- */
    .tile {
        width: 90%;
    }

    /* ----------------- PROJECT-SPECIFIC ----------------- */
    #project_main {
        padding: 20px;
    }

    #project_parent {
        display: flex;
        flex-direction: column;

        gap: 30px;
    }

    #carousel {
        li {
            flex: 0 0 50%;
        }

        .arrow {
            img {
                width: 50px;
                height: 50px;
            }
        }
    }
}

@media screen and (max-width: 412px) {
    main {
        padding: 10px;
    }

    h1 {
        font-size: 2rem;
    }

    h2 {
        font-size: 1.9rem;
    }

    h3 {
        font-size: 1.5rem;
    }

    .tile, .tile img {
        max-width: 100%;
        box-sizing: border-box;
    }

    #titre_lien {
        h4 {
            font-size: 1.5rem;
        }

        ul {
            li a {
                font-size: 1.2rem;
            }
        }
    }

    #carousel {
        li {
            flex: 0 0 100%;
        }

        .arrow {
            img {
                width: 50px;
                height: 50px;
            }
        }
    }
}