* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: rgb(0, 0, 0);
    overflow-x: hidden;

        height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2em;
 
}

.container {
    width: 1000px;
    height: 800px;
    margin: auto;
    overflow: hidden;
    background-color: #fff800;
    pointer-events: all;
    position: relative;
}

/* ==================== DECORS ==================== */

/* ==================== PERSONNAGES ==================== */
.prince1,
.prince-2,
.prince-3 {
    width: 40%;
    position: absolute;
    bottom: 145px;
    z-index: 12;
    pointer-events: all;
}

.prince1 {
    left: 30%;
}

.prince-2,
.prince-3 {
    left: 0%;
}

.bus {
    position: absolute;
    width: 90%;
    bottom: 20%;
    left: 0;
    z-index: 5;
}

/* ==================== JEU ==================== */
#wrap {
    position: absolute;
    inset: 0;
    width: 1000px;
    height: 800px;
    opacity: 0;
    pointer-events: none;
    z-index: 100;
}

#game {
    position: relative;
    width: 1000px;
    height: 800px;
    z-index: 1;
}

#canvas {
    position: absolute;
    inset: 0;
    z-index: 1;
}

#crt-screen {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0.05;
    mix-blend-mode: multiply;
    pointer-events: none;
    z-index: 3;
}

#cadre-jeu {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 101%;
    z-index: 5;
    pointer-events: none;
    opacity: 0.95;
}

/* ==================== HUD ==================== */
#hud {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 150 !important;
    pointer-events: none;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    opacity: 0;
}

#hud-top {
    align-self: center;
    text-align: center;
}

#hud-bas {
    align-self: center;
    text-align: center;
    margin-top: auto;
}

.hud-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 340px;
}

.hud-label {
    font-size: 13px;
    color: #ffffff;
    font-weight: 900;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.hp-bar {
    width: 100%;
    height: 9px;
    background: white;
    overflow: hidden;
}

.hp-fill {
    height: 100%;
    transition: width 0.2s ease;
}

#player-fill {
    background: #fff800;
}

#prince-fill {
    background: #fff800;
}

/* ==================== OVERLAY ==================== */
#overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    z-index: 999 !important;
    background-color: #fff800;
}

#start-btn,
#skip-btn {
    appearance: none;
    border: none;
    background-color: #000000;
    color: white;
    width: 585px;
    padding-top: 20px;
    padding-bottom: 20px;
    font-weight: 700;
    font-size: 45px;
    cursor: pointer;
    z-index: 170;
}

#start-btn:hover,
#skip-btn:hover {
    color: #fff800;
    background-color: #000000;
}

/* ==================== SCENE REVEAL ==================== */
.reveal-scene {
    position: absolute;
    inset: 0;
    width: 1000px;
    height: 800px;
    overflow: hidden;
    pointer-events: none;
    z-index: 10;
}

.reveal-text-wrap {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    text-align: center;
}

.reveal-text {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    line-height: 1em;
    font-weight: 900;
    color: rgb(0, 0, 0);
    opacity: 1;
    width: 80%;
    text-align: center;
}

#reveal-t1 {
    clip-path: inset(0 100% 0 0);
}

#reveal-t2 {
    clip-path: inset(0 100% 0 0);
    opacity: 0;
    width: 80%;
}

#reveal-t3 {
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

/* ==================== PERSONNAGES SCENE REVEAL ==================== */
.reveal-taxi {
    position: absolute;
    width: 320px;
    bottom: 260px;
    left: -350px;
    z-index: 20;
}

.reveal-prince {
    position: absolute;
    width: 220px;
    bottom: 200px;
    left: -250px;
    z-index: 20;
}

.reveal-bus-reveal {
    position: absolute;
    width: 750px;
    bottom: 150px;
    right: -800px;
    z-index: 20;
}

#voiture {
    width: 70%;
    position: absolute;
    left: -80%;
}

#prince-1 {
    width: 35%;
    left: -50%;
}

#bus-1-reveal {
    top: 40%;
}

/* ==================== TEXTES FINAUX ==================== */
.text9,
.text10,
.text11,
.achat {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: black;
    font-size: 42px;
    font-weight: 900;
    width: 80%;
}

.text10 {
    width: 65%;
}

/* ==================== BOUTON ACHAT ==================== */
.achat {
    appearance: none;
    border: none;
    background-color: #000000;
    color: white;
    width: 585px;
    padding-top: 20px;
    padding-bottom: 20px;
    font-weight: 700;
    font-size: 45px;
    cursor: pointer;
    text-decoration: none;
    display: block;
}

.achat:hover {
    color: #fff800;
}

/* ==================== LIGNES DE BUS ==================== */
#lignes-wrap {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    z-index: 9;
}

#lignes-num {
    width: 220px;
    height: 140px;
    background-color: #000000;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Arial, sans-serif;
    font-size: 100px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    border-radius: 70px;
}

/* ==================== TYPOS MIX ==================== */
.t1-s1 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
}

.t1-s2 {
   font-family: 'Montserrat', sans-serif;
    font-weight: 600;

}

.t1-s3 {
    font-family: 'SignPainter HouseScript', cursive;
}

.t1-s4 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
}

.t1-s5 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
}

.t1-s6 {
    font-family: 'SignPainter HouseScript', cursive;
}

.t1-s7 {
    font-family: 'Times New Roman', serif;
}

.reveal-text span {
    vertical-align: baseline; /* forcer la même baseline */
    line-height: 1;
    display: inline;
}

.t1-s1, .t1-s2, .t1-s3, .t1-s4,
.t1-s5, .t1-s6, .t1-s7 {
    line-height: 1;
    vertical-align: baseline;
    padding: 0;
}


.text9, .text10, .text11{

    font-weight: 500;
    font-family: 'Montserrat', sans-serif;
}

.text9 span, .text10 span, .text11 span{



font-weight: 700;    
}

.text9{

    width: 70%;
}

.achat{

 
    font-family: 'Montserrat', sans-serif;

}


/* debug hover */

.reveal-scene {
    pointer-events: none; 

.reveal-text {
    pointer-events: all; 
}

.text9, .text10, .text11 {
    pointer-events: all;
}

.achat {
    pointer-events: all;
}


.reveal-taxi,
.reveal-prince,
.reveal-bus-reveal {
    pointer-events: all; 
}
}

.text11{

width: 70%;

}