@font-face {
    font-family: "Pyrah";
    src: url("fonts/Pyrah-Regular.otf") format("opentype");
}@font-face {
    font-family: "Scala";
    src: url("fonts/ScalaHands.otf") format("opentype");
}
@font-face {
    font-family: "Telegraf";
    src: url("fonts/Telegraf-Regular.otf") format("opentype");
}
@font-face {
    font-family: "TelegrafBold";
    src: url("fonts/Telegraf-UltraBold.otf") format("opentype");
}
@font-face {
    font-family: "Univers";
    src: url("fonts/Unive.otf") format("opentype");
}
@font-face {
    font-family: "Modernist";
    src: url("fonts/Sk-Modernist-Regular.otf") format("opentype");
}
@font-face {
    font-family: "Resist";
    src: url("fonts/ResistSansText-Light/font.woff2") format("woff2"), url("fonts/ResistSansText-Light/font.woff") format("woff");
}
@font-face {
    font-family: "ResistMedium";
    src: url("fonts/ResistSansDisplay-MediumOblique/font.woff2") format("woff2"), url("fonts/ResistSansDisplay-MediumOblique/font.woff") format("woff");
}
@viewport {
    width: device-width ;
    /*    zoom: 1.0 ;*/
}

::selection {
    color: dimgray;
    background: transparent;
}
:root {
    --contentHeight: 80vh;
}
details[open] > .descr{
    animation-name: slideDown;
    animation-duration: 0.5s;
    /*        animation-fill-mode: forwards;*/
}
details[open] summary{
    cursor: url("elements/moins.png") 12 12, pointer;
}
@keyframes slideDown {
    from {
        opacity: 0;
        height: 0;
        padding: 0;
    }
    to {
        opacity: 1;
        height: var(--contentHeight);
    }
}

html{
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

body{
    position: absolute;
    box-sizing: border-box;
    height: 100%;
    width: 100vw;
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
    /*    background-color: rgb(250,250,250);*/
    text-rendering: optimizeLegibility;
    text-rendering: optimizeSpeed;
    /*    -webkit-overflow-scrolling: touch;*/
    overflow-x: hidden;
    overflow-y: scroll !important;
    /*    scroll-snap-type: y mandatory;*/
}

body[language="fr"] [version="en"]{
    visibility: hidden;
    display:none;
}
body[language="en"] [version="fr"]{
    visibility: hidden;
    display:none;
}

#langue{
    position: fixed;
    bottom: 5vh;
    right: 2vw;
    padding-right: 0vw;
    z-index: 3;
    cursor: pointer;
    transition: 0.2s;
}
#langue:hover{
    padding-right: 0.5vw;
}

h1, h2, h3, h4{
    margin: 0;
    font-weight: normal;
    line-height: 100%;
}
h1{
    font-family: "Pyrah";
    font-size: 2vw;

}
h2{
    font-family: "Pyrah";
    font-size: 2vw;
    /*    letter-spacing: -0.1vw;*/
}
h3{
    font-size: 1vw;
    font-family: "Pyrah";
    /*
    hyphens: auto;
    -ms-hyphenate-limit-chars: 6 3 2; 
    hyphenate-limit-chars: 6 3 2;
    -ms-hyphenate-limit-lines: 2;
    -webkit-hyphenate-limit-lines: 2; 
    hyphenate-limit-lines: 2;
    hyphenate-limit-last: always;
    hyphenate-limit-zone: 8%
    */

}
h4{
    font-size: 1vw;
    letter-spacing: 0.02vw;
    font-family: "Pyrah";
}

#nom{
    position: relative;
    margin-bottom: 1vh;
    z-index:2;
    width: 30vw;
}
#menu{
    position: absolute;
    top: 5vh;
    left: 5vw;
}
.menu_elem{
    position: relative;
    margin-right: 0.5vw;
    display: inline-flex;
    cursor: pointer;
}
.info{
    position: relative;
    margin-top: 2vh;
    z-index:2;
    width: 28vw;
    line-height: 110%;
    opacity: 0;
    transition: 0.2s;
}
.actif{
    opacity: 1;
}

#bas{
    position: absolute;
    display: block;
    height: 10vh;
    left: 5vw;
    /*    transform: translateX(50%);*/
    /*    transform: translateX(50%);*/
    bottom: 6vh;
    z-index: 3;
    cursor: pointer;
    padding: 0;
    animation: MoveUpDown 1s ease-in-out infinite;
    transition: 0.2s;
}

@keyframes MoveUpDown {
    0%, 100% {
        transform: translateY(0%);
        /*      bottom: 6.5vh;*/
    }
    50% {
        transform: translateY(-30%);
        /*    bottom: 5vh;*/
    }
}
#bas:hover{
    animation-play-state: paused;
}

#monet{
    position: absolute;
    right: 5vw;
    /*    transform: translateX(-50%);*/
    top:12vh;
    height: 76vh;
    width: auto;
    /*    align-self: flex-end;*/
}
#horloge{
    
    position: absolute;
    z-index: 5;
    margin: 0;
    top: 5vh;
    right: 5vw;
    /*    transform: translateX(-50%);*/
    text-align: center;
}
#countdown{
    display: none;
    position: absolute;
    z-index: 5;
    margin: 0;
    top: 5vh;
    right: 5vw;
    text-align: center;
}

.blinking{
    animation:blinkingText 1s ease-in-out infinite;
}
@keyframes blinkingText{
    50%{    opacity: 0; }

    100%{   opacity: 1;    }
}

.loader{
    z-index: 6;
    position: fixed;
    width: 100vw;
    left: 0vw;
    top: 0vh;
    height: 100vh;
    margin: 0;
    /*    background-color:rgb(216,212,179);*/
    border-left: 1px solid rgb(216,212,179);
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    background-color:white;
    opacity:1;
    filter:alpha(opacity=100);
    pointer-events: none;
    color: black;
    text-align: center;
    font-family: "Pyrah";
    /*    line-height: 100vh;*/
}
.loader img{
    position: relative;
    top: 35%;
    height: 30%;
    width: auto;
}
.loader span{
    position: relative;
    top: 40%;
    line-height: 10px;
}


#side_bar{
    width: 5vw;
    height: 100vh;
    position: fixed;
    top: 0px;
    right: -15vh;
    transition: 0.2s;
    color: black;
    z-index: 3;
}
#vic{
    position: fixed;
    right: -10vh;
    bottom: 50%;
    letter-spacing: inherit;
    z-index: 3;
    cursor: pointer;
    padding: 0;
    transform: rotate(90deg) translateX(50%) translateY(-50%);
    transform-origin: right top;
    transition: 0.5s;
    mix-blend-mode: overlay;
}
#boutons{
    position: absolute;
    z-index: 3;
    right: 2.5vw;
    top: 5vh;
}
.img_filtre{
    height: 3vh;
}
#liste_boutons{
    display: none;
}
.bouton_{
    position: absolute;
    left: 1vw;
    transition: 0.2s;
    top: 1.5vh;
}
.bouton_:hover{
    opacity: 0.5;
}
.bouton, .bouton_, #filtre {
    cursor: url("elements/plus.png") 12 12, pointer;
}
.bouton[etat="visible"]{
    cursor: url("elements/moins.png") 12 12, pointer;
}
.active, .bouton:focus{
    animation: MoveUpDown 1s ease-in-out infinite;
}
.bouton h4{
    display: none;
    position: absolute;
    right: 120%;
    transform: translateY(50%);
}
.bouton:hover h4{
    display: block;
}
#intro{
    position: relative;
    width: 100vw;
    height: 100vh;
    margin: 0;
    position: relative;
    overflow: auto;
    color: black;
    cursor: default;
    scroll-snap-align: start;
}
#img_outro{
    height: 40vh;
    pointer-events: none;
    position: absolute;
    left: 50vw;
    top: 50vh;
    transform: translate(-50%, -50%);
    z-index: 0;
}
#img_outro_mobile{
    display: none;
    height: 70%;
    pointer-events: none;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
}
p::after{
    /*    content:"_";*/
}

a{
    text-decoration: none; 
    color: black;
}
.diago{
    height: 2vh;
    margin-left: 0.5vw;
}
.diago_contact{
    width: 5vw;
    margin-left: 1vw;
}
.show {
    display: inline-block;
}
.hide {
    display: none;
}
#projets{
    position: relative;
    left: 0vw;
    width: 100vw;
    border-bottom: 1px solid black;
    scroll-snap-type: y mandatory;
}
.projet{
    position: relative;
    
    left: 0vw;
    width: 100%;
    margin: 0;
    display: inline-block;
    border-top: 1px solid black;
    scroll-snap-align: start;
    background-color: white;
}
/*
#topbar{
    z-index: 4;
    border-bottom: 1px solid black;
}
*/
.invisible{
    display: none;
}
details{
    position: relative;
    align-items: flex-start;
}
.descr{
    align-items: baseline;
    position: relative;
    line-height: 130%;
    letter-spacing: 0.02vw;
    overflow: hidden;
}

.chapeau{
    width: 25vw;
    height: 79vh;
    position: absolute;
    padding-left: 2vw;
    padding-top: 3vh;
    padding-bottom: 1vh;
    line-height: 110%;
    cursor: default;
    overflow: auto;
    display: inline;
}
.slideshow:hover>.numeroSlide{
    opacity: 1;
}
.numeroSlide{
    position: absolute;
    
    bottom: -1vh;
    left: 50%;
    transform: translateY(-50%);
    text-align: right;
    width: auto;
    opacity: 0;
    transition: 0.2s;
    background-color: white;
}
.fleche {
    cursor: pointer;
    position: absolute;
    height: 100%;
    width: 50%;
    user-select: none;
    z-index: 1;
}
.next {
    right: 0px;
}
.next{
    /*
    transition: 0.6s ease;
    background-image: linear-gradient(to right, transparent, rgba(1,0,0,1));
    */
    cursor: url("elements/fleche_d.png") 50 50, pointer;
}
.prev{
    cursor: url("elements/fleche_g.png") 50 50, pointer;
}

.slideshow{
    position: relative;
    float: right;
    width: 70%;
    height: 100%;
}
.slideshow .slides:nth-child(3){
    display: block;
}
section{
    overflow: hidden;
    cursor: url("elements/roll.png") 25 25, pointer;
}
.loader3D{
    position: absolute;
    top: 0%;
    left: 0%;
}
.slides{
    display: none;
    max-height: 80vh;
    margin: auto;
}
.onlyslide{
    display: block;
    max-height: 80vh;
    margin: auto;
}
details video, details img{
/*        cursor: url("elements/close_b.png") 12 12, pointer;*/
}
details video, details img{
    position: relative;
    z-index: 0;
    max-width: 100%;
}
img:active, img:focus{
    outline:0;
}
summary{
    padding-top: 2vh;
    padding-bottom: 3vh;
    margin-left: 1vw;
}
summary:focus {outline:0;}
summary::-webkit-details-marker {
    display: none;
}
/*
#voeux summary{
    cursor: url("MINIATURES/mini_voeux_2021_1.png") 40 60, pointer;
}
#epee summary{
    cursor: url("MINIATURES/mini_Epee_garde.jpg") 40 50, pointer;
}
#manifeste summary{
    cursor: url("manifeste apprenstissage_transp.png") 40 50, pointer;
}
*/
/*
#csf{
cursor: url("PROJETS/CSF_WEB/csf_0.jpg") 120 120, pointer;
}
*/
summary h2, summary h4{
    display: inline-block;
}
.titre_proj{
    position: absolute;
    left: 4vw;
    transition: 0.2s;
}
.type{
    position: absolute;
    left: 40vw;
}
.date{
    position: absolute;
    right: 5vw;
}
.projet:hover .titre_proj{
    margin-left: 2vw;
}
details[open] > summary, span{
        cursor: url("elements/close.png") 12 12, pointer;
}
details[open]{
    height: 80vh;
}
details summary { list-style-type: none; } /* Firefox */
details summary::-webkit-details-marker { display: none; } /* Chrome */
details summary::marker { display: none; }

#footer{
    position: relative;
    width: 100vw;
    height: 100vh;
    /*    background-color: rgb(20, 20, 20);*/
    /*    color: rgb(250, 250, 250);*/
    margin: 0;
    /*    margin-top: 2vh;*/
    cursor: default;
    /*    scroll-snap-align: start;*/
}
#seeyou{
    position: absolute;
    left: 10vw;
    top: 10vh;
}
#annexe{
    position: absolute;
    right: 10vw;
    top: 10vh;
    text-align: right;
}
#contact{
    position: absolute;
    bottom: 10vh;
    left: 10vw;
}
#copyright{
    position: absolute;
    bottom: 2vh;
    right: 2vw;
}
#typo{
    position: absolute;
    bottom: 2vh;
    left: 2vw;
}
.souligne .hover { 
    position: relative;
}
.souligne .hover:before, .souligne .hover:after {
    content: "";
    position: absolute;
    bottom: -2px;
    width: 0px;
    height: 1px;
    transition-duration: 0.3s;
    opacity: 0;
    background-color: black;
}
.souligne .hover:before, .souligne .hover:after {
    left: 0;
}
.souligne:hover .hover:before, .souligne:hover .hover:after {
    width: 100%;
    opacity: 1;
}