/* home_styles.css */
html, body {
    min-height: 100%;
    margin: 0;
}

body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
}


/* Style pour le fond étoilé */
.star-background {
    background: #000;
    background-image:
        radial-gradient(2px 2px at 20px 30px, #eee, rgba(0,0,0,0)),
        radial-gradient(4px 4px at 40px 70px, #fff, rgba(0,0,0,0)),
        radial-gradient(2px 2px at 140px 200px, #eee, rgba(0,0,0,0)),
        radial-gradient(3px 3px at 250px 180px, #fff, rgba(0,0,0,0)),
        radial-gradient(4px 4px at 300px 90px, #fff, rgba(0,0,0,0));
    background-size: 400px 400px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2; /* Sous planet-foreground */
}

#planet-foreground {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.white-diagonal-bg {
  position: fixed;
  top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  background:
    url('../images/bigdata.avif') center/cover no-repeat;
  clip-path: polygon(13% 0, 100% 0, 100% 100%, 17% 100%);
  /* Ajuste les points pour la diagonale selon ton besoin */
  pointer-events: none; /* Pour ne pas gêner les clics */
  opacity: 0.92; /* Ajuste si nécessaire */
}

.rocket-container {
    position: fixed;
    top: 2%;
    left: 20px;
    width: 70px; /* Largeur fixe de la fusée */
    height: 600px; /* Hauteur fixe de la fusée */
    display: flex;
    flex-direction: column; /* Organise les enfants verticalement */
}

/* Conteneur des étages */
.stages-container {
    width: 100%;
    bottom: 10%;
    height: 80%; /* Ajuste la hauteur automatiquement */
    display: flex;
    flex-direction: row;
}

.stage-button {
    position: absolute;
    width: 100%;
    border: none;
    box-sizing: border-box;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s ease;
    border-radius: 10px; /* Bords arrondis */
    display: flex; /* Pour centrer les icônes horizontalement */
    justify-content: center;
}

.stage-button:hover {
    transform: scale(1.05);
    z-index: 1;
}

/* Conteneur du nez */

.nose {
    position: absolute;
    bottom: 77.5%;
    left: 28%; /* (100% - 45%) / 2 pour centrer */
    width: 65%;
    height: 20%; /* Occupe les 70% supérieurs */
    background: linear-gradient(to right, #1a1a1a, #333333 50%, #4d4d4d);
    clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
    box-shadow: inset -3px -3px 8px rgba(0, 0, 0, 0.7),
                inset 3px 3px 8px rgba(255, 255, 255, 0.1),
                -3px -3px 8px rgba(0, 0, 0, 0.5),
                3px 3px 8px rgba(255, 255, 255, 0.05);
}

.nose-button {
    position: absolute;
    bottom: 77.5%;
    left: 16%;
    width: 68%;
    height: 22%;
    border: none;
    box-sizing: border-box;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s ease;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    background: linear-gradient(to right, #1a1a1a, #333333 50%, #4d4d4d);
    clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
    box-shadow: inset -3px -3px 8px rgba(0, 0, 0, 0.7),
                inset 3px 3px 8px rgba(255, 255, 255, 0.1),
                -3px -3px 8px rgba(0, 0, 0, 0.5),
                3px 3px 8px rgba(255, 255, 255, 0.05);
}

.nose-button:hover {
    transform: scale(1.05);
    z-index: 1;
}
/* Pour le nez avec un effet violet */
.nose, .nose-button {
    box-shadow:
        inset 0 0 15px rgba(165, 0, 255, 0.7),
        inset 0 0 7px rgba(69, 0, 255, 0.9);
}
/* Styles communs pour tous les étages */
.stage1, .stage2, .stage3 {
    align-items: center;
   background: linear-gradient(to right, #1a1a1a, #333333 50%, #4d4d4d);
    box-shadow: inset -3px -3px 8px rgba(0, 0, 0, 0.7),
                inset 3px 3px 8px rgba(255, 255, 255, 0.1),
                -3px -3px 8px rgba(0, 0, 0, 0.5),
                3px 3px 8px rgba(255, 255, 255, 0.05);
    border-radius: 3px; /* Coins beaucoup moins arrondis pour un aspect plus industriel */
}

/* Étape 1 : Base de la fusée */
.stage1 {
    height: 25%;
    bottom: 5.5%;
    background: linear-gradient(to right, #0d0d0d, #262626 50%, #404040);
        box-shadow:
        inset 0 -20px 30px -5px rgba(255, 165, 0, 0.7),
        inset 0 -10px 15px -2px rgba(255, 69, 0, 0.9);
}

/* Étape 2 : Milieu de la fusée */
.stage2 {
    height: 24%;
    bottom: 30.5%;
    width: 87%;
    left: 6.5%;
    background: linear-gradient(to right, #141414, #2e2e2e 50%, #474747); /* Très sombre */
        box-shadow:
        inset 0 0 15px rgba(0, 165, 255, 0.7),
        inset 0 0 7px rgba(0, 69, 255, 0.9);
}

/* Étape 3 : Haut de la fusée */
.stage3 {
    height: 23%;
    bottom: 54.5%;
    width: 73%;
    left: 13.5%;
    background: linear-gradient(to right, #1a1a1a, #333333 50%, #4d4d4d); /* Sombre mais légèrement plus clair */
box-shadow:
        inset 0 0 15px rgba(0, 255, 165, 0.7),
        inset 0 0 7px rgba(0, 255, 69, 0.9);

}

/* Conteneur principal pour les champs et le satellite */
.fields-container {
    position: absolute;
    bottom: 17%;
    width: 45%;
    height: 35%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1;
    transform: rotate(70deg);
}

/* Champs stylisés */
.fields {
    position: relative;
    overflow: visible; /* Changez hidden à visible */
}

/* Champ vert */
.field1 {
    position: absolute;
    top: 0; /* Positionnement vertical dans fields-container */
    left: 0; /* Positionnement horizontal dans fields-container */
    width: 50%; /* Largeur du champ */
    height: 50%; /* Hauteur du champ */
    transform-origin: bottom right; /* Pivot en bas à droite */
    transform: rotate(70deg) perspective(150px) rotateX(-35deg) rotateY(35deg);
}

/* Champ jaune */
.field2 {
    position: absolute;
    top: 50%; /* Placé juste en dessous du champ vert */
    left: 50%; /* Alignement par le coin supérieur droit du champ vert */
    width: 50%; /* Largeur du champ */
    height: 50%; /* Hauteur du champ */
    transform: rotate(70deg) perspective(150px) rotateX(35deg) rotateY(-35deg);
}

/* Stries verticales dans les champs verts et jaunes */
.field1 .stripe {
    position: absolute;
    top: 0;
    height: 100%;
    background: linear-gradient(
        to bottom,
        #3a9639 0%,
        #4caf50 30%,
        #45a049 70%,
        #3a9639 100%
    );
    box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
    transform: skewY(-2deg); /* Légère inclinaison */
}
.field2 .stripe {
    position: absolute;
    height: 100%;
    background: linear-gradient(
        to bottom,
        #e6d335 0%,
        #ffeb3b 30%,
        #fdd835 70%,
        #e6d335 100%
    );
    box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
    border-radius: 30% 0 0 30%;
    transform: skewY(2deg); /* Légère inclinaison dans l'autre sens */
}

.field1 .stripe,
.field2 .stripe {
    width: 3%; /* Largeur des stries ajustée pour plus de finesse */
}

/* Stries vertes (field1) avec effet cylindrique amélioré */
.field1 .stripe.s1 {
    --random-offset: 2%;
    --random-offset-x: -1%;
    transform: skewY(-4deg) rotate(-2deg) translateZ(2px) translate(var(--random-offset-x), var(--random-offset));
    left: 5%;
    width: 2.7%;
    border-radius: 40% 10% 10% 40% / 5%;
}

.field1 .stripe.s2 {
    --random-offset: -1.5%;
    --random-offset-x: 3%;
    transform: skewY(-3deg) rotate(-1deg) translateZ(1.5px) translate(var(--random-offset-x), var(--random-offset));
    left: 20%;
    width: 2.8%;
    border-radius: 35% 10% 10% 35% / 5%;
}

.field1 .stripe.s3 {
    --random-offset: 2%;
    --random-offset-x: 2%;
    transform: skewY(-2deg) rotate(-0.5deg) translateZ(1px) translate(var(--random-offset-x), var(--random-offset));
    left: 35%;
    width: 2.9%;
    border-radius: 25% 10% 10% 25% / 5%;
}

.field1 .stripe.s4 {
    --random-offset: -1%;
    --random-offset-x: -1%;
    transform: skewY(-1deg) rotate(0deg) translateZ(0.5px) translate(var(--random-offset-x), var(--random-offset));
    left: 55%;
    width: 3%;
    border-radius: 15% 10% 10% 15% / 5%;
}

.field1 .stripe.s5 {
    --random-offset: 1%;
    --random-offset-x: 2%;
    transform: skewY(0deg) rotate(0.5deg) translateZ(0px) translate(var(--random-offset-x), var(--random-offset));
    left: 70%;
    width: 2.9%;
    border-radius: 10% 20% 20% 10% / 5%;
}

.field1 .stripe.s6 {
    --random-offset: -1%;
    --random-offset-x: -1%;
    transform: skewY(1deg) rotate(1deg) translateZ(-0.5px) translate(var(--random-offset-x), var(--random-offset));
    left: 95%;
    width: 2.8%;
    border-radius: 10% 30% 30% 10% / 5%;
}

/* Stries jaunes (field2) avec effet cylindrique amélioré */
.field2 .stripe.s1 {
    --random-offset: -2%;
    --random-offset-x: 2%;
    transform: skewY(4deg) rotate(-2deg) translateZ(-0.5px) translate(var(--random-offset-x), var(--random-offset));
    left: 10%;
    width: 2.8%;
    border-radius: 10% 30% 30% 10% / 5%;
}

.field2 .stripe.s2 {
    --random-offset: 2%;
    --random-offset-x: -2%;
    transform: skewY(3deg) rotate(-1deg) translateZ(0px) translate(var(--random-offset-x), var(--random-offset));
    left: 25%;
    width: 2.9%;
    border-radius: 10% 25% 25% 10% / 5%;
}

.field2 .stripe.s3 {
    --random-offset: -1%;
    --random-offset-x: -2%;
    transform: skewY(2deg) rotate(-0.5deg) translateZ(0.5px) translate(var(--random-offset-x), var(--random-offset));
    left: 40%;
    width: 3%;
    border-radius: 10% 20% 20% 10% / 5%;
}

.field2 .stripe.s4 {
    --random-offset: 2%;
    --random-offset-x: 1%;
    transform: skewY(1deg) rotate(0deg) translateZ(1px) translate(var(--random-offset-x), var(--random-offset));
    left: 55%;
    width: 2.9%;
    border-radius: 10% 15% 15% 10% / 5%;
}

.field2 .stripe.s5 {
    --random-offset: -2%;
    --random-offset-x: -1%;
    transform: skewY(0deg) rotate(0.5deg) translateZ(1.5px) translate(var(--random-offset-x), var(--random-offset));
    left: 70%;
    width: 2.8%;
    border-radius: 10% 25% 25% 10% / 5%;
}

.field2 .stripe.s6 {
    --random-offset: 1%;
    --random-offset-x: 2%;
    transform: skewY(-1deg) rotate(1deg) translateZ(2px) translate(var(--random-offset-x), var(--random-offset));
    left: 95%;
    width: 2.7%;
    border-radius: 10% 40% 40% 10% / 5%;
}

/* Ajoutez ces styles à vos stries vertes */
.field1 .stripe {
    background: linear-gradient(
        to right,
        rgba(0,0,0,0.18),
        transparent 30%,
        transparent 70%,
        rgba(0,0,0,0.18)
    ),
    linear-gradient(
        to bottom,
        #3a9639 0%,
        #4caf50 30%,
        #45a049 70%,
        #3a9639 100%
    );
    box-shadow: inset 2px 0 3px rgba(0,0,0,0.2),
                inset -1px 0 2px rgba(255,255,255,0.1);
}

/* Ajoutez ces styles à vos stries jaunes */
.field2 .stripe {
    background: linear-gradient(
        to right,
        rgba(0,0,0,0.18),
        transparent 30%,
        transparent 70%,
        rgba(0,0,0,0.18)
    ),
    linear-gradient(
        to bottom,
        #e6d335 0%,
        #ffeb3b 30%,
        #fdd835 70%,
        #e6d335 100%
    );
    box-shadow: inset -2px 0 3px rgba(0,0,0,0.2),
                inset 1px 0 2px rgba(255,255,255,0.1);
}
/* Variation d'opacité pour les stries vertes */
.field1 .stripe.s1 { opacity: 0.9; }
.field1 .stripe.s2 { opacity: 0.92; }
.field1 .stripe.s3 { opacity: 0.95; }
.field1 .stripe.s4 { opacity: 0.98; }
.field1 .stripe.s5 { opacity: 0.95; }
.field1 .stripe.s6 { opacity: 0.9; }

/* Variation d'opacité pour les stries jaunes */
.field2 .stripe.s1 { opacity: 0.9; }
.field2 .stripe.s2 { opacity: 0.92; }
.field2 .stripe.s3 { opacity: 0.95; }
.field2 .stripe.s4 { opacity: 0.98; }
.field2 .stripe.s5 { opacity: 0.95; }
.field2 .stripe.s6 { opacity: 0.9; }

/* Satellite positionné au-dessus des champs */
.satellite {
    position:absolute;
    top: -20%;
    right: 135%;
    font-size: 1.5em;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}
.satellite::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(
        circle at 30% 30%,
        rgba(255,255,255,0.5) 5%,
        transparent 30%
    );
    pointer-events: none;
}




/* Effet de jonction entre le nez et l'étage supérieur */
.stage3::after {
    content: '';
    bottom: 110%; /* Placement sous le nez pour masquer la jonction */
    left: calc(50% - 20px); /* Alignement avec le nez */
    width: 40px;
    background: linear-gradient(to right, #4d4d4d, #8c8c8c); /* Dégradé pour simuler une jonction métallique sombre */
    border-radius: 50%; /* Arrondi pour une transition fluide entre le nez et l'étage supérieur */
}

.icons {
    width: 70%;
    height: 70%;
    display: flex;
    flex-direction: column;
    justify-content: center; /* changed to center */
    align-items: center;
    color: rgba(0,0,0,.8); /* pour un noir plus prononcé */
    font-size: 1.5em; /* Réduction de la taille des icônes */
    text-shadow: none; /* Supprimer l'ombre pour ressembler à l'image */
}


/* Style pour le coureur */
.runner {
    font-size: 1.5em;
    margin-top: 5px;
}

.bubbles {
    display: flex;
    justify-content: space-around;
    width: 100%;
    flex-direction: column; /* Ajouter cette ligne pour empiler verticalement */
    align-items: center; /* Centre les bulles horizontalement */
    height: 100px; /* Ajouter une hauteur pour espacer les bulles */
}

.bubble {
    width: 12px; /* Reduction de la taille des bulles */
    height: 12px; /* Reduction de la taille des bulles */
    border-radius: 50%;
    box-shadow: 0 0 5px rgba(0,0,0,0.3);
}

.red { background-color: red; }
.green { background-color: green; }
.blue { background-color: blue; }
.yellow { background-color: yellow; }

.booster {
    position: absolute;
    bottom: 0; /* Aligne le booster au bas du conteneur parent */
    left: 0;
    width: 100%; /* Prend toute la largeur du parent */
    height: 10%; /* Occupe 10% de la hauteur du parent */
}
.blade {
    position: absolute;
    bottom: 0;
    width: 17%;
    height: 97%;
    /* Nouveau dégradé métallique avec brunissement au centre */
    background: linear-gradient(to right, #333333, #707070, #a0a0a0);
    border-radius: 0.2%;
    transform-origin: bottom center;
    aspect-ratio: 1;
    clip-path: polygon(
        50% 0%,
        calc(100% - var(--radius)) calc(100% - var(--radius)),
        var(--radius) calc(100% - var(--radius)),
        50% 0%
    );
    mask: radial-gradient(var(--radius), #000 98%, transparent 101%) space no-repeat,
          conic-gradient(from -30deg at 50% calc(200% - 3*var(--radius)/2), #000 60deg, transparent 0);
    mask-composite: intersect;
    mask-size: cover;
    background-clip: content-box;
    /* Ajout d'un effet de brillance métallique */
    box-shadow:
        inset 0 0 10px rgba(255, 255, 255, 0.3),
        inset 0 0 5px rgba(255, 255, 255, 0.5);
    filter: brightness(80%);
     display: none;
}

/* Positionnement des lames avec effet de brunissement personnalisé pour chaque lame */
.blade:nth-child(3) {
    transform: rotate(20deg);
    left: -5%; /* Ajustez cette valeur */
    transform-origin: bottom center;
     display: block;
}

.blade:nth-child(4) {
    transform: rotate(10deg);
    left: 10%;
    background: linear-gradient(
        to right,
        #4d4d4d,
        #707070 30%,
        #8a7060 50%,
        #a0a0a0 70%,
        #d0d0d0
    );
         display: block;
}

.blade:nth-child(5) {
    transform: rotate(3deg);
    left: 40%;
    /* Lame centrale avec plus de brunissement (proche de la flamme) */
    background: linear-gradient(to right, #4d4d4d, #705040, #907060);
    filter: brightness(85%);
         display: block;
}
.blade:nth-child(9) {
    transform: rotate(-3deg);
    left: 47%;
    /* Lame centrale avec plus de brunissement (proche de la flamme) */
    background: linear-gradient(to right, #4d4d4d, #705040, #907060);
    filter: brightness(85%);
         display: block;
}

.blade:nth-child(6) {
    transform: rotate(-10deg);
    left: 80%;
    background: linear-gradient(
        to right,
        #4d4d4d,
        #707070 30%,
        #8a7060 50%,
        #a0a0a0 70%,
        #d0d0d0
    );
         display: block;
}

.blade:nth-child(7) {
    transform: rotate(-20deg);
    left: 90%;
         display: block;
}
/* Lames extérieures (plus métalliques) */
.blade:nth-child(3),
.blade:nth-child(7) {
    background: linear-gradient(to right, #333333, #555555, #777777);
    filter: brightness(75%);
}

/* Amélioration de la flamme pour qu'elle illumine les lames */
.center-flame {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 20%;
    height: 100%;
    background: radial-gradient(circle, rgba(255,165,0,1) 0%, rgba(255,69,0,1) 70%, rgba(255,0,0,0.5) 100%);
    /* Ajout d'un effet de lueur pour illuminer les lames */
    box-shadow: 0 0 20px 5px rgba(255, 69, 0, 0.6);
    /* Animation subtile pour la flamme */
    animation: flameFlicker 0.5s infinite alternate;
}

@keyframes flameFlicker {
    0% { opacity: 0.9; }
    100% { opacity: 1; }
}


/* Style commun à la box */
.info-box {
    position: fixed;
    background: linear-gradient(white, #f0f0f0);
    border: 1px solid #ccc;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    padding: 10px;
    border-radius: 8px;
    font-family: Arial, sans-serif;
    font-size: 14px;
    color: #333;
    transition: all 1s ease; /* Transition fluide entre les états */
}

/* Style pour l'état initial */
.info-box.initial {
    bottom: 50px; /* Position initiale en bas à droite */
    right: 50px;
    width: 360px;
    height: 540px;
}

/* Style pour l'état centré */
.info-box.centered {
    bottom: 65px; /* La partie basse de l'encadré est à 30px du bas de la page */
    left: calc(50% - 540px); /* Centré horizontalement (600px de largeur totale) */
    width: 1080px; /* Largeur finale */
    height: 500px; /* Hauteur finale */
    font-size: calc(14px * 1.5); /* Augmente la taille du texte de 1,5 fois */
}
h2 {
    font-size: 2em;
    text-align: center;
    color: black; /* Couleur du texte */
    text-shadow:
        2px 2px 0 white,
        -2px -2px 0 white,
        2px -2px 0 white,
        -2px 2px 0 white,
        2px 0 0 white,
        -2px 0 0 white,
        0 2px 0 white,
        0 -2px 0 white; /* Liseré blanc */
    padding: 15px;
}



.tooltiptext {
    visibility: hidden;
    opacity: 0;
    position: relative; /* Take it out of document flow completely */
    width: 0;      /* Keep consistent width before and after hover */
    background-color: #222;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 8px 10px;
    z-index: 9999;
    left: 110%;        /* Position outside the element */
    top: 50%;
    transform: translateY(-50%);
    transition: opacity 0.3s, visibility 0.3s;
    font-size: 0.95em; /* Keep consistent font size */
    line-height: normal;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    white-space: pre-line;
}

.stage-button:hover .tooltiptext,
.nose-button:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
    /* No dimension changes on hover - only visibility/opacity */
}

/* Special positioning for nose tooltip */
.nose-button .tooltiptext {
    width: 120px;     /* Wider than 20px to fit text */
    left: 50%;        /* Center horizontally */
    bottom: 110%;     /* Position above the nose */
    top: auto;        /* Override the top: 50% from general tooltip */
    transform: translateX(-50%); /* Center precisely */
    white-space: normal;
}

.text-cylindrique {
  position: absolute;
  top: 10%;
  left: 15%;
  font-size: 24px;
  font-weight: 700;
  font-family: 'Industry', Arial, sans-serif;
  color: transparent; /* Déplacez cette ligne avant les propriétés background-clip */
  text-transform: uppercase;
  z-index: 3;

background:
  radial-gradient(circle at 15% 25%, transparent 85%, rgba(50,50,50,0.8) 90%, transparent 95%) 0 0/12px 12px,
  radial-gradient(circle at 75% 60%, transparent 85%, rgba(70,70,70,0.7) 90%, transparent 95%) 0 0/10px 10px,
  radial-gradient(circle at 30% 20%, transparent 8%, white 9%, white 10%, transparent 11%) 0 0/8px 8px,
  radial-gradient(circle at 70% 50%, transparent 8%, white 9%, white 10%, transparent 11%) 0 0/10px 10px,
  linear-gradient(to right, rgba(180,180,180,0.9), white 30%, white 70%, rgba(150,150,150,0.9));

  -webkit-background-clip: text;
  background-clip: text;

}


/* Styles spécifiques pour A3 (étage inférieur, cylindre large) */
#text-a3 {
  top: 10%;
  left: 15%;
  transform: perspective(150px) rotateY(-35deg);
  transform-origin: right center;
}

/* Styles spécifiques pour A2 (étage intermédiaire, cylindre moyen) */
#text-a2 {
  top: 12%;
  left: 4.2%;
  transform: perspective(120px) rotateY(-40deg);
  transform-origin: right center;
}

/* Styles spécifiques pour A1 (étage supérieur, cylindre étroit) */
#text-a1 {
  top: 15%;
  left: -7.8%;
  transform: perspective(100px) rotateY(-45deg);
  transform-origin: right center;
}

/* Styles spécifiques pour A0 (nez, perspective vers un point) */
#text-a0 {
  top: 50%;
  left: 22%;
  transform: perspective(80px) rotateY(-50deg) rotateX(10deg);
  transform-origin: center center;
  font-size: 20px; /* Plus petit pour le nez */
}




.runner::before {
  top: -5px;
  left: 10px;
}

.runner::after {
  bottom: -5px;
  right: 10px;
}

/* Flexion plus prononcée pour chaque cylindre selon la hauteur */
.stage1 .icons {
  transform: perspective(300px) rotateY(-15deg);
}

.stage2 .icons {
  transform: perspective(250px) rotateY(-20deg);
}

.stage3 .icons {
  transform: perspective(200px) rotateY(-25deg);
}

.nose .icons {
  transform: perspective(150px) rotateY(-30deg) rotateX(5deg);
}

/* Ajustement spécifique pour les bulles */
.bubbles {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  height: 100px;
  gap: 8px; /* Espacement entre les bulles */
  transform: perspective(200px) rotateY(-25deg); /* Flexion pour suivre la courbure */
}

/* Effet de perspective sur les bulles individuelles */
.bubble {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  box-shadow: 0 0 5px rgba(0,0,0,0.3);
  position: relative;
    transform: translateZ(0px);
}


.satellite {
  position: absolute;
  top: -65%;
  right: 185%;
  font-size: 1.5em;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateY(-15deg);
}

/* Variation de la transformation pour chaque bulle avec compression vers la gauche */
.bubble.red {
  transform: perspective(200px) rotateY(-25deg) translateZ(2px) translateX(-1px) scaleX(0.85);
  transform-origin: left center;
  background: linear-gradient(to right,
    color-mix(in oklab, red, black 30%) 0%,
    red 70%);
  box-shadow: inset -2px 0 3px rgba(0,0,0,0.3);
}

.bubble.green {
  transform: perspective(200px) rotateY(-25deg) translateZ(1px) scaleX(0.88);
  transform-origin: left center;
  background: linear-gradient(to right,
    color-mix(in oklab, green, black 30%) 0%,
    green 70%);
  box-shadow: inset -2px 0 3px rgba(0,0,0,0.3);
}

.bubble.blue {
  transform: perspective(200px) rotateY(-25deg) translateZ(0px) scaleX(0.9);
  transform-origin: left center;
  background: linear-gradient(to right,
    color-mix(in oklab, blue, black 30%) 0%,
    blue 70%);
  box-shadow: inset -2px 0 3px rgba(0,0,0,0.3);
}

.bubble.yellow {
  transform: perspective(200px) rotateY(-25deg) translateZ(-1px) translateX(1px) scaleX(0.92);
  transform-origin: left center;
  background: linear-gradient(to right,
    color-mix(in oklab, yellow, black 30%) 0%,
    yellow 70%);
  box-shadow: inset -2px 0 3px rgba(0,0,0,0.3);
}

/* Ajout de points pour l'effet peinture sur chaque bulle */
.bubble::before, .bubble::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  opacity: 0.7;
}

.bubble.red::before {
  width: 3px;
  height: 3px;
  background-color: darkred;
  top: 20%;
  left: 30%;
}

.bubble.red::after {
  width: 2px;
  height: 2px;
  background-color: #ff6666;
  bottom: 25%;
  right: 35%;
}

.bubble.green::before {
  width: 3px;
  height: 3px;
  background-color: darkgreen;
  top: 25%;
  left: 35%;
}

.bubble.green::after {
  width: 2px;
  height: 2px;
  background-color: lightgreen;
  bottom: 30%;
  right: 25%;
}

.bubble.blue::before {
  width: 3px;
  height: 3px;
  background-color: darkblue;
  top: 30%;
  left: 25%;
}

.bubble.blue::after {
  width: 2px;
  height: 2px;
  background-color: lightblue;
  bottom: 35%;
  right: 30%;
}

.bubble.yellow::before {
  width: 3px;
  height: 3px;
  background-color: #b3a600;
  top: 35%;
  left: 20%;
}

.bubble.yellow::after {
  width: 2px;
  height: 2px;
  background-color: #ffff99;
  bottom: 20%;
  right: 40%;
}

.cv-section {
    background: linear-gradient(120deg, #f8fafc 0%, #e0e7ef 100%);
    padding: 40px 0;
    min-height: 80vh;
    text-align: center;
}

.cv-buttons {
    margin-top: 30px;
}

.cv-btn {
    display: inline-block;
    margin: 10px 20px;
    padding: 18px 36px;
    background: #2563eb;
    color: #fff;
    border-radius: 32px;
    text-decoration: none;
    font-size: 1.2em;
    font-weight: 600;
    box-shadow: 0 4px 16px rgba(37,99,235,0.08);
    transition: background 0.2s, transform 0.2s;
}

.cv-btn:hover {
    background: #1e40af;
    transform: translateY(-2px) scale(1.04);
}

