@font-face {
    font-family: 'Swiss721';
    src: url('../font/Swiss721Normal.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Swiss721';
    src: url('../font/Swiss721Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

.txtnav{
    font-family: 'IBM Plex Mono', sans-serif;
    margin-bottom: -2px;
}
/* Réinitialisation des styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root{
    --0 : 0.25rem;
    --1 : 0.5rem;
    --2 : 0.75rem;
    --3 : 1rem;
    --4 : 1.25rem;
    --5 : 1.75rem;
    --6 : 2.5rem;
    --7 : 3.75rem;
    --8 : 6.25rem;
    --9 : 10rem;
    --10 : 15rem;
}

::-webkit-scrollbar {
    display: none;
}


/*:root*/
body.dark {
    --darker: rgb(15, 14, 14);
    --dark1: rgba(217, 217, 217, 0.1);
    --dark2: rgba(217, 217, 217, .08);
    --dark3: rgba(217, 217, 217, .05);
    --grey: rgba(217, 217, 217, .68);
    --borderinput: rgba(217, 217, 217, .2);
    --borderinputhover: rgba(217, 217, 217, .4);
    --white: rgb(217, 217, 217);
    --txttag: rgb(217, 217, 217, 0.7);
    --darkline: rgba(217, 217, 217, .05);
    --darklinemenu: rgba(217, 217, 217, .08);
    --transparent: rgba(0, 0, 0, 0);
    --cursor: #E0E0E0FF;
    --darkmenu: rgb(23, 23, 23);
    --highlight: rgba(255, 214, 10, 0.7);
    --highlighttxt: rgb(253 224 71);
    --starcontact: rgba(234, 139, 139, 0.67);
    --hidetitleproject: rgba(15,14,14,0.5);
    --highlightback: rgba(253, 224, 71, 0.15);
    --fadeselecwork: rgba(15, 14, 14, 0.9);
    --filtercursor: none;
    --bordertagassets: rgba(217,217,217,0.2);
    --bordertagassetshover: rgba(217,217,217,0.6);
    --tiles: rgba(51,51,51,1);
    & .arrownav, .arrownav2 {
        filter: none;
    }
}
body.light {
    --darker: rgb(250, 245, 235); /* Fond principal chaud */
    --dark1: rgba(100, 70, 50, 0.1); /* Ombres légères */
    --dark2: rgba(100, 70, 50, 0.08); /* Ombres moyennes */
    --dark3: rgba(100, 70, 50, 0.05); /* Ombres subtiles */
    --borderinput: rgba(100, 70, 50, .2);
    --borderinputhover: rgba(100, 70, 50, .4);
    --grey: rgba(120, 90, 70, 0.68); /* Texte gris brun */
    --white: rgb(70, 50, 40); /* Texte principal brun foncé */
    --txttag: rgb(70, 50, 40, 0.7);
    --darkline: rgba(100, 70, 50, 0.1); /* Lignes de séparation */
    --darklinemenu: rgba(100, 70, 50, 0.15); /* Lignes du menu */
    --transparent: rgba(255, 255, 255, 0); /* Transparence */
    --cursor: #8A5A3DFF; /* Couleur du curseur */
    --starcontact: rgba(234, 139, 139, 0.9);
    --hidetitleproject: rgba(250, 245, 235,0.5);
    --darkmenu: rgb(240, 230, 220); /* Menu clair chaud */
    --highlight: rgba(255, 170, 100, 0.7); /* Couleur d'accentuation chaude */
    --highlighttxt: rgb(210, 130, 70); /* Texte d'accentuation chaude */
    --highlightback: rgba(255, 170, 100, 0.15); /* Fond d'accentuation chaude */
    --fadeselecwork: rgba(200, 190, 180, 0.9);
    --filtercursor: invert(1);
    --bordertagassets: rgba(100, 70, 50,0.2);
    --bordertagassetshover: rgba(100, 70, 50,0.6);
    --tiles: rgba(100, 70, 50,0.3);
    & .arrownav, .arrownav2 {
        filter: sepia(1) saturate(1.5) hue-rotate(-30deg) brightness(0.4);
    }
}

/*
body.light {
    --darker: rgb(255, 255, 255);
    --dark1: rgba(0, 0, 0, 0.1);
    --dark2: rgba(0, 0, 0, 0.08);
    --dark3: rgba(0, 0, 0, 0.05);
    --grey: rgba(0, 0, 0, 0.68);
    --white: rgb(0, 0, 0);
    --darkline: rgba(0, 0, 0, 0.05);
    --darklinemenu: rgba(0, 0, 0, 0.05);
    --transparent: rgba(0, 0, 0, 0);
    --cursor: #202020;
    --darkmenu: rgb(200, 200, 200);
    --highlight: rgba(255, 214, 10, 0.7);
    --highlighttxt: rgb(216, 188, 32);
    --highlightback: rgba(216, 188, 32, 0.15);
    & .arrownav, .arrownav2 {
        filter: brightness(0);
    }
}*/

::selection {
    background-color: var(--highlight); /* Couleur de fond lors de la sélection */
    color: #2e2e2e; /* Couleur du texte lors de la sélection */
}

/* Pour Firefox, utiliser cette pseudo-classe spécifique */
::-moz-selection {
    background-color: var(--highlight);
    color: #2e2e2e;
}

main {
    font-family: var(--font-family-sans-serif);
    background-color: var(--darker);
    min-height: 100vh;
    width: 100vw;
    overflow: hidden;
    position: relative;
    transition: background-color 0.1s ease;
}

.grain {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    pointer-events: none;
    z-index: 300;
    transform: translateZ(0);
}

.grain:before {
    content: "";
    top: -10rem;
    left: -10rem;
    width: calc(100% + 20rem);
    height: calc(100% + 20rem);
    z-index: 9999;
    position: fixed;
    background-image: url('../media/img/grain.png');
    background-repeat: repeat;
    background-size: 5%; /* Redimensionne l'image à 10% de sa taille originale */
    opacity: 0.04;
    pointer-events: none;
    animation: noise 1.3s steps(2) infinite;
}


@keyframes noise {
    0% { transform: translate3d(0, 9rem, 0); }
    10% { transform: translate3d(-1rem, -4rem, 0); }
    20% { transform: translate3d(-8rem, 2rem, 0); }
    30% { transform: translate3d(9rem, -9rem, 0); }
    40% { transform: translate3d(-2rem, 7rem, 0); }
    50% { transform: translate3d(-9rem, -4rem, 0); }
    60% { transform: translate3d(2rem, 6rem, 0); }
    70% { transform: translate3d(7rem, -8rem, 0); }
    80% { transform: translate3d(-9rem, 1rem, 0); }
    90% { transform: translate3d(6rem, -5rem, 0); }
    to { transform: translate3d(-7rem, 0, 0); }
}

.maincontent{
    position: relative;
    width: 100vw;
    z-index: 0;
    color: var(--white);
}

.nav {
    color: var(--white);
    position: relative;
    width: 100%;
    height: var(--8);
}

.letterspan{
    opacity: 0;
}
.nav1, .nav2 {
    margin-top: var(--6);
    position: absolute;
    height: auto;
    padding: 0;
    border: 0;
    top: 0;
}
.language{
    color: var(--grey);
}
.nav1 {
    margin-left: 11.6%;
    width: calc(50.85% - 11.6%);
    overflow: hidden;
    display: flex;
    justify-content: space-between;
}
.nav2 {
    margin-left: 58.6%;
    display: flex;
    justify-content: space-between;
    width: calc(97% - 58.6%);
}
.nav2-1, .nav2-2{
    display: flex;
    flex-direction: row;
}
.nav2-1{
    overflow: hidden;
}
.nav2-2>.navelement:first-child{
    overflow: hidden;
}
.nav2-2>.navelement:last-child{
    overflow: visible;
}
.nav1 > div{
    display: flex;
    flex-direction: row;
    align-items: flex-end;
}
.nav2-1 >div{
    margin-right: var(--5);
    display: flex;
    flex-direction: row;
    align-items: flex-end;
}
.nav2-2 >div{
    margin-left: var(--5);
    display: flex;
    flex-direction: row;
    align-items: flex-end;
}
.navelement {
    display: inline-block;
    position: relative;
    &:hover{
        color: var(--grey);
        transition: 0.2s;
    }
    height: 2rem;
    margin-top: -1rem;
}

.arrow {
    position: relative;
    display: inline-block;
    overflow: hidden;
    opacity: 0;
    width: 12px;
    height: 12px;
    margin-left: 0.5rem;
}
.arrownav {
    position: absolute;
    top: 0;
    left: 0;
    transform: scale(1);
    transform-origin: top right;
    transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);    width: 100%;
    height: auto;
}
.arrownav2 {
    position: absolute;
    bottom: 0;
    left: 0;
    transform: scale(0);
    transform-origin: bottom left;
    transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);    opacity: 0;
    width: 100%;
    height: auto;
}
.navelement:hover .arrownav {
    transform: scale(0);
    opacity: 0;
}

.navelement:hover .arrownav2 {
    transform: scale(1) translate(0%, 0%);
    opacity: 1;
}
.txtnav{
    white-space: nowrap;
    overflow: hidden;
    word-break: keep-all;
}
.txtnav span {
    display: inline-block; /* Permet les transformations verticales */
    transform: translateY(0); /* Assure que la transformation de y est bien appliquée */
}
.sun, .moon{
    fill: none;
    stroke: var(--white);
    stroke-width: 1px;
    aspect-ratio: 1;
    height: 2rem; /* Ajuster la hauteur pour qu'elle occupe tout l'espace parent */
    width: 2rem;  /* Assurez-vous que la largeur occupe toute la largeur du conteneur parent */
    position: relative; /* Position relative pour un meilleur contrôle du positionnement */
    top: 0.5rem;
    transition: all 0.3s ease;
    margin-right: 0.5rem;
}
.sun{
    &:hover{
        transform: rotate(-45deg);
        fill: var(--white);
    }
}
.moon{
    &:hover{
        transform: rotate(-45deg);
        fill: var(--white);
    }
}
.moon{
    display: none;
}
.container-grow{
    position: absolute;
    top: 0;
    left: 0;
}
.grow {
    display: block;
    width: 0;
    height: 0;
    position: fixed;
    border-radius: 50%;
    z-index: 9999;
    transform: translate(-50%, -50%);
    background-color: var(--darker);
    transition: width 1s ease, height 1s ease, opacity 2s ease;
    opacity: 0;
    pointer-events: none; /* Pour éviter les interactions pendant l'animation */
}

.animatetheme {
    animation: animtheme 0.9s ease forwards;
}

@keyframes animtheme {
    0% {
        width: 0;
        height: 0;
        opacity: 1;
    }
    85% {
        width: var(--anim-max);
        height: var(--anim-max);
        opacity: 1;
    }
    98% {
        width: calc(var(--anim-max) * 0.6);
        height: calc(var(--anim-max) * 0.6);
        opacity: 0;
    }
    100% {
        width: 0;
        height: 0;
    }
}


.date{
    font-family: 'IBM Plex Mono', sans-serif;
    display: flex;
    flex-direction: row;
}
.hour{
    font-family: 'IBM', sans-serif;
    margin-left: 0.5rem;
    transform: translateY(0.2rem);
}
.loc{
    margin-left: 0.5rem;
    transform: translateY(0.1rem);
    color: var(--grey);
}

/* fixed left */

.fixedleft{
    position: fixed;
    /*top: 1.5rem;*/
    top: 2.625rem;
    z-index: 501;
    width: 11.6%;
    display: flex;
    flex-direction: row;
    overflow: hidden;
    opacity: 0;
}
.logoname{
    width: 100%;
    text-align: center;
    font-family: "Swiss721";
    color: var(--grey);
    transition: 0.2s all;
}
.logoname span{
    font-size: 1.5rem;
    display: inline-block;
    opacity: 0; /* Initialement masqué */
    transform: translateY(20px); /* Initialement décalé vers le bas */
}
.logoname:hover{
    color: var(--white);
    transition: 0.2s all;
}
.favicon{
    filter: grayscale(100%) brightness(100%);
}
.menuandopen{
    position: fixed;
    opacity: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    /*margin-left: 11.6%;
    margin-right: 3%;*/
    padding-left: 11.6%;
    padding-right: 3%;
    top: 0;
    height: 13rem;
    padding-bottom: 6rem;
    background: linear-gradient(to bottom, var(--darker) 60%, rgba(0, 0, 0, 0) 100%);
    z-index: -1;
    width: 100%;
}
.availablefor{
    opacity: 0;
    transform: translateY(-50px);
    border-radius: 5px;
    padding: 0.5rem 1rem;
    margin-left: 0.85%;
    border: 1px solid var(--grey);
    color: var(--white);
    display: flex;
    justify-content: center;
    align-items: center;
    user-select: none;
}
.dotlumineux{
    position: relative;
    height: 0.5rem;
    margin-right: 0.5rem;
    width: 0.5rem;
    border-radius: 50%;
    background-color: var(--white);
    animation: wavedot 1.25s infinite cubic-bezier(0.65, 0, 0.35, 1); /* Quadratic-like easing */
}


@keyframes wavedot {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
    60% {
        opacity: 0;
    }
    80%{
        opacity: 1;
    }
    100% {
        opacity: 1;
    }
}

.lineintern {
    background: linear-gradient(to bottom, var(--darkline) 60%, rgba(0, 0, 0, 0) 100%);
    /*background-color: var(--darkline);*/
    flex: none;
    overflow: hidden;
    position: fixed;
    top: 0;
    height: 13rem;
    width: 1px;
    opacity: 0;
    /*z-index: 2;*/
}
.lineintern1 {
    left: 11.6%;
}
.lineintern2 {
    left: 50.85%;
}
.lineintern3 {
    left: 58.6%;
}
.lineintern4 {
    right: 3%;
}
@media (max-width: 480px) {
    .nav2-1{
        display: none;
    }
    .nav2{
        justify-content: end !important;
    }
    .availablefor{
        font-size: 0.75rem;
    }
    .fixedleft{
        width: auto;
        margin-left: 1rem;
    }
    .logoname span{
        font-size: 1rem;
    }
}
@media (max-width: 767px) {
    .nav2-1 .navelement:nth-child(2){
        display: none;
    }
}
@media (max-width: 991px) {
    .lineintern2 {
        display: none;
    }
    .lineintern3 {
        display: none;
    }
    .containerabout, .containerabout2{
        flex-direction: column !important;
    }
    .presentation, .skills{
        width: calc(100vw*0.854) !important;
    }
    .interests, .tools{
        width: calc(100vw*0.854) !important;
        margin-top: calc(var(--9)) !important;
    }
    .nav2-1 .navelement:last-child{
        display: none;
    }
}
@media (max-width: 1199px) {
    .date{
        display: none;
    }
}
@media (max-width: 1599px) {

}