
body
{ 
    margin: 0; 
    padding: 0; 
    overflow: hidden; 
    background-color: #000;
    font-family: "Trebuchet MS", "Tahoma", sans-serif;
}
canvas 
{ 
    background-color: #fc5c5c; 
    display: block;
}

.hud {
    position: fixed;
    top: 14px;
    left: 14px;
    right: 14px;
    z-index: 20;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    pointer-events: none;
}

.hud__bloc {
    min-width: 150px;
    background: rgba(26, 20, 16, 0.88);
    border: 1px solid rgba(255, 159, 67, 0.65);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    padding: 8px 10px;
    border-radius: 4px;
}

.hud__bloc--action {
    pointer-events: auto;
}

.hud__label {
    display: block;
    font-size: 11px;
    letter-spacing: 1px;
    color: #ffd9a3;
    text-transform: uppercase;
}

.hud__valeur {
    display: block;
    margin-top: 3px;
    font-weight: 700;
    color: #fff4df;
}

.hud__btn {
    width: 100%;
    border: 1px solid #ffb36b;
    background: #7b2f18;
    color: #fff0d8;
    font-weight: 700;
    padding: 8px 10px;
    cursor: pointer;
}

.hud__btn:hover {
    background: #95391d;
}

.hidden {
    display: none;
}

.fin-partie {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.72);
}

.fin-partie.hidden {
    display: none;
}

.fin-partie__cadre {
    width: min(420px, 90vw);
    background: rgba(21, 16, 13, 0.96);
    border: 2px solid #d1752f;
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.7);
    padding: 22px;
    text-align: center;
    color: #f7ecd9;
}

.fin-partie__cadre h2 {
    margin: 0 0 12px;
    color: #ffb36b;
}

.fin-partie__cadre p {
    margin: 6px 0;
    font-weight: 700;
}

.fin-partie__cadre button {
    margin-top: 14px;
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #ffb36b;
    background: #7b2f18;
    color: #fff0d8;
    font-weight: 700;
    cursor: pointer;
}

.fin-partie__cadre button:hover {
    background: #95391d;
}

.accueil {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 30% 20%, rgba(255, 90, 90, 0.2), rgba(0, 0, 0, 0.8)),
        linear-gradient(180deg, rgba(20, 20, 20, 0.9), rgba(9, 9, 9, 0.95));
}

.accueil--cache {
    display: none;
}

.accueil__cadre {
    width: min(460px, 90vw);
    background: rgba(21, 16, 13, 0.94);
    border: 2px solid #d1752f;
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.65);
    padding: 24px;
    text-align: center;
    color: #f7ecd9;
}

.accueil__cadre h1 {
    margin: 0 0 10px;
    color: #ffb36b;
    letter-spacing: 1px;
}

.accueil__cadre p {
    margin: 0 0 18px;
    opacity: 0.9;
}

.accueil__cadre input {
    width: 100%;
    padding: 11px 12px;
    box-sizing: border-box;
    border: 1px solid #b5672d;
    background: #2c221d;
    color: #fff1dc;
    font-size: 16px;
}

.accueil__cadre button {
    margin-top: 12px;
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #ffb36b;
    background: #7b2f18;
    color: #fff0d8;
    font-weight: 700;
    cursor: pointer;
}

.accueil__cadre button:hover {
    background: #95391d;
}
/* --- ANIMATION VECTORIELLE (VISEUR) --- */
#viseur-container {
    position: absolute;
    width: 60px;
    height: 60px;
    pointer-events: none; 
    top: -100px;
    left: -100px;
    transition: transform 0.1s ease-out;
    z-index: 1000; /* Toujours au-dessus du jeu */
}

.viseur-ligne {
    stroke: #00ffcc; 
    stroke-width: 3;
    stroke-linecap: round;
    fill: none;
    transition: all 0.15s ease-out; 
}

.viseur-centre {
    fill: #ff003c; 
    transition: all 0.15s ease-out; 
}

.viseur-actif {
    transform: scale(0.8) rotate(45deg) !important; 
}

.viseur-actif .viseur-centre {
    fill: #ffffff; 
    r: 10; 
    transition: all 0.1s ease;
}