body {
  background: black; 
  cursor: none;  
}

@font-face {
    font-family: "VintagePropagandist";
    src: url("../typo/vvpp/vp.ttf") format("truetype");
}





/* ************************************* */
/* ************************************ */
/* *********************************** */
.cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: white;
    mix-blend-mode: difference;
    pointer-events: none;
    transform: translate(-50%, -50%);
    z-index: 9999;
}


/* ************************************* */
/* ************************************ */
/* *********************************** */

.bande-titre {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    height: 32px;

    background: yellow;
    padding: 4px 14px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(1rem, 2vw, 24px);

    z-index: 1000;

    box-sizing: border-box;
}





/*.titre-site {
    color: black;
    text-decoration: none;
}
*/
.titre-site {
    position: absolute;
    top: 50%;

    transform: translateY(-50%);

    color: black;
    text-decoration: none;

    padding: 0 4px;
}



#gauche {
    left: 8px;
}

#droite {
    right: 8px;
}



.bande-titre:hover .titre-site {
    background: #111;
    color: whitesmoke;
}


.titre-chapitre {
    position: absolute;

    left: 50%;
    top: 50%;

    transform: translate(-50%, -50%);

    background: #111;
    color: whitesmoke;

    padding: 0 6px;

    text-align: center;
    white-space: nowrap;
}


















/* ************************************* */
/* ************************************ */
/* *********************************** */


.menu-gauche {
    position: fixed;

    left: 50%;
    bottom: 15px;

    transform: translateX(-50%);

    display: flex;
    flex-direction: row;

    gap: 20px;

    z-index: 1000;
}

/*.menu-gauche a {
    display: block;

    width: 20px;
    padding: 5px;

    text-align: center;

    background: whitesmoke;
    color: black;

    text-decoration: none;

    border: 1px solid #999;
    border-radius: 2px;

    font-family: Arial, sans-serif;
}*/


.menu-gauche a,
.menu-gauche .bouton-biblio {

    display: block;

    width: 20px;
    padding: 5px;

    text-align: center;

    background: whitesmoke;
    color: black;

    text-decoration: none;

    border: 1px solid #999;
    border-radius: 2px;

    font-family: Arial, sans-serif;

    cursor: pointer;
}

/*.menu-gauche a:hover {
    background: yellow;
}
*/
.menu-gauche a:hover,
.menu-gauche .bouton-biblio:hover {
    background: yellow;
}


/* Bouton de la page courante */
.menu-gauche a.active {
    background: black;
    color: white;
}








/* ************************************* */
/* ************************************ */
/* *********************************** */
.imageFond {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -10;
}




/* ************************************* */
/* ************************************ */
/* *********************************** */

/* invisible trigger points */
.apparitions-img {
    height: 1px;
}

/* Container for scrollytelling images */
.imagesScrolly {
    position: fixed;     /* anchor to viewport */
    width: 100%;         /* full viewport width */
    height: 100%;        /* full viewport height */
    pointer-events: none;
    top: 0;
    left: 0;
    z-index: 1000;
}

/* All images positioned absolutely inside viewport */
.imagesScrolly img {
    position: fixed;     /* fix each image independently */
    width: 150px;        /* adjust size as needed */
    opacity: 0;          /* hidden by default */
    transition: opacity 0.2s ease;
}

/* Four corners, slightly inset from edges 
#img1 { top: 16%; left: 27%; }       
#img2 { top: 32%; left: 27%; }     
#img3 { top: 50%; left: 27%; }   
#img4 { top: 66%; left: 27%; }  
#img5 { top: 16%; left: 27%; }   
#img6 { top: 16%; left: 27%; }   
#img7 { top: 40%; left: 27%; }    

/* ************************************* */
/* ************************************ */
/* *********************************** */

#img1, #img2 {
    top: 100px;
    left: 100px;
    width: 300px;
}












/* POPUPS ************************ */
/* ************************************* */
/* ************************************ */
/* *********************************** */

.popupRecits {
    position: absolute;
 /*   min-height: 20px;
    max-height: 650px;*/
top: 30px;
height: calc(100vh - 74px);
    /*width: 650px;*/
    width: clamp(350px, 40vw, 650px); /* (minimum, idéal :50 % de la largeur de la fenêtre, maximum) */

    padding: 20px;
    border: 1px solid #ccc;
    border-radius: 3px;
    box-shadow: 2px 2px 8px rgba(0,0,0,0.25);

    overflow-y: auto;        /* scroll vertical si le contenu dépasse */
    overflow-x: hidden;      /* optionnel : empêche le scroll horizontal */
        /* Firefox */
    scrollbar-width: none;
    /* IE / ancien Edge */
    -ms-overflow-style: none;
}


.popupRecits::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Edge */
}


.popupRecits p {
    font-family: "Times New Roman", Times, serif;
    margin: 0;
    /*font-size: 22px;  */ 
    font-size: clamp(28px, 1.5vw, 30px);  /*(minimum, taille adaptative, maximum) */      
    line-height: 1.2;        
    white-space: pre-line; /* garde les sauts de ligne du html */
}

.popupRecits p + p {
    text-indent: 1.5em;
}


.popupRecits p.petit {
    font-family: "Times New Roman", Times, serif;

    font-size: clamp(18px, 0.9vw, 20px);
    line-height: 1.2;

    width: 66%;
    margin-left: auto;
    margin-right: 0;
    text-indent: 1.5em;
}



.popupRecits p.merle {
    text-align: center;
     font-family: "VintagePropagandist", serif;
}


.popupRecits p.escargot {
    text-align: left;
     font-family: "VintagePropagandist", serif;
}


.popupRecits img {
    max-width: 100%;   /* empêche l’image de dépasser */
    height: auto;
    display: block;
    margin: 10px 0;
}


.popupNotes {
    font-size: 15px;
    line-height: 1.1;
}


/* Couleurs + placement */
.popupRecits {     
    background: whitesmoke;
    left: 50%;
    transform: translateX(-50%); }



/*  ************************ */
/* ************************************* */
/* ************************************ */
/* *********************************** */


.image-recits {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 15px auto;
}

.imagesScrolly img {
    position: fixed;

    opacity: 0;

   /* transition: opacity 0.2s ease;*/

    max-width: 180px;
    height: auto;
}



/*  Enrichissement typo ************************ */
/* ************************************* */
/* ************************************ */
/* *********************************** */





.texte-centrer {
    text-align: center;
}


.lien-ref {
  color: green;
}


.appel-note {
    cursor: pointer;
    font-size: 1.1em;
    background: yellow;
}


.appel-note:hover {
    background: black;
    color: white;
}




/* Conteneur général des notes */

#notes {
    position: fixed;
    top: 0;
    left: 0;

    width: 100vw;
    height: 100vh;

    pointer-events: none;

    z-index: 950;
}

/* Chaque note */

.note-cachee {
    display: none;

    position: fixed;

    left: 0;
    width: 100vw;

    background: whitesmoke;

    padding: 2px 0;

    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;

    box-sizing: border-box;

    pointer-events: auto;
}

/* Texte de la note */

.note-cachee {
    font-family: "Times New Roman", Times, serif;
    font-size: 12px;
    line-height: 1.2;
}

/* Petit bloc de texte à droite */

.note-cachee {
    padding-left: 72%;
    padding-right: 20px;
}

/* Retrait de première ligne */

.note-cachee p,
.note-cachee {
    text-indent: 1.5em;
}

/*  ************************ */
/* ************************************* */
/* ************************************ */
/* *********************************** */



@keyframes vibration {
    0%   { transform: translate(0, 0); }
    20%  { transform: translate(-2px, 1px); }
    40%  { transform: translate(2px, -1px); }
    60%  { transform: translate(-2px, 0px); }
    80%  { transform: translate(2px, 1px); }
    100% { transform: translate(0, 0); }
}

.vibre {
    display: inline-block;
    animation: vibration 0.08s infinite;
}



/*@keyframes notification-glisse {

    0% {
        opacity: 1;
        transform: translateX(0);
    }

    80% {
        opacity: 1;
        transform: translateX(400px);
    }

    100% {
        opacity: 0;
        transform: translateX(500px);
    }
}

.notification-glisse {
    animation: notification-glisse 8s linear infinite;
}*/

/*  ************************ */
/* ************************************* */
/* ************************************ */
/* *********************************** */


.ouvre-popup2 {
    cursor: pointer;
    text-decoration: underline;
    color: green;
}


#popup2 {

    position: fixed;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);

    width: 100vw;
    height: 100vh;

    overflow-y: auto;

    /* dégradé fond */
    background: linear-gradient(
        180deg,
        #ff7a00 0%,
        #000000 100%
    );

    z-index: 10000;

    font-size: 50px;
    white-space: pre-line;

    /* marges internes */
    padding-left: 2vw;
    padding-right: 2vw;
    padding-top: 1vh;
    padding-bottom: 4vh;

    box-sizing: border-box;

    color: #ffe600;

    text-shadow:
        0 0 5px rgba(255, 230, 0, 0.8),
        0 0 15px rgba(255, 180, 0, 0.6),
        0 0 30px rgba(255, 120, 0, 0.4);

    /* état fermé */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.8s ease,
        visibility 0s linear 0.8s;
}




#popup2.ouvert {

    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transition:
        opacity 0.8s ease,
        visibility 0s linear 0s;
}














#escargot {
    position: fixed;

    width: 180px;
    height: auto;

    left: 10px;
    top: 10px;

    pointer-events: none;

    z-index: 1000;
}


#mcluhanspider,
#russelspider {
    position: fixed;

    width: 120px;
    height: auto;

    pointer-events: none;

    z-index: 1000;
}

#mcluhanspider {
    left: 10px;
    top: 10px;
}

#russelspider {
    left: 300px;
    top: 200px;
}
















#biblio-cachee {

    display: none;

    position: fixed;

    top: 0;
    right: 40px;

    width: 320px;
    height: 100vh;

    overflow-y: auto;

    background: whitesmoke;

    padding: 20px;

    box-sizing: border-box;

    border-left: 1px solid #ccc;

    z-index: 960;
}



#biblio-cachee .biblio {

    font-family: "Times New Roman", Times, serif;

    font-size: 14px;

    line-height: 1.2;
}

#biblio-cachee p {

    margin-bottom: 1.5em;
    margin-top: 2em;

    text-indent: 1.5em;
    white-space: pre-line;
}
