* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Arial, sans-serif;
    background: radial-gradient(circle at top, #2f4d2c, #111a10 58%, #090d0a);
    color: #f4f8f4;
}

.shell {
    width: min(92vw, 1280px);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.hud-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: rgba(17, 28, 20, 0.8);
    border: 2px solid rgba(131, 201, 92, 0.8);
    border-radius: 12px;
    box-shadow: 0 0 14px rgba(101, 187, 100, 0.3);
}

.hud-panel h1 {
    margin: 0;
    font-size: clamp(1.4rem, 2vw, 2.5rem);
    color: #d6ffbb;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.stats {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    font-size: 1.05rem;
}

#gameCanvas {
    width: 100%;
    height: auto;
    border-radius: 18px;
    border: 3px solid rgba(130, 198, 90, 0.9);
    box-shadow: 0 0 30px rgba(104, 182, 89, 0.3);
    background: #1b2f1f;
    image-rendering: auto;
}

.controls {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
    padding: 10px 12px 14px;
    background: rgba(14, 24, 16, 0.76);
    border: 2px solid rgba(131, 201, 92, 0.6);
    border-radius: 12px;
}

.controls p {
    margin: 0;
    color: #dfead8;
    font-size: 0.95rem;
}

.game-overlay {
    position: fixed;
    inset: 0;
    z-index: 5;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(5, 12, 8, 0.84);
    backdrop-filter: blur(5px);
}

.game-overlay[hidden] {
    display: none;
}

.menu-panel {
    width: min(100%, 440px);
    max-height: min(90vh, 720px);
    overflow-y: auto;
    padding: 26px;
    background: #15251b;
    border: 1px solid rgba(131, 201, 92, 0.8);
    border-radius: 8px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.45);
}

.menu-panel h2,
.menu-panel h3 {
    margin: 0 0 18px;
    color: #d6ffbb;
}

#startForm {
    display: grid;
    gap: 10px;
}

#startForm label {
    color: #dfead8;
    font-size: 0.95rem;
}

#playerName {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #718875;
    border-radius: 4px;
    background: #0b150f;
    color: #f4f8f4;
    font: inherit;
}

.menu-panel button {
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid #99d479;
    border-radius: 4px;
    background: #456f3c;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.menu-panel button:hover {
    background: #568849;
}

.menu-panel button:focus-visible,
#playerName:focus-visible {
    outline: 3px solid #f2d56b;
    outline-offset: 2px;
}

.leaderboard {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(131, 201, 92, 0.35);
}

.leaderboard h3 {
    margin-bottom: 10px;
}

#leaderboardStatus {
    margin: 0 0 10px;
    color: #b9c7b6;
    font-size: 0.85rem;
}

#leaderboardList {
    display: grid;
    gap: 7px;
    margin: 0;
    padding-left: 24px;
    color: #e7efdf;
}

#leaderboardList li {
    padding-left: 3px;
    overflow-wrap: anywhere;
}

#emptyLeaderboard {
    margin: 0;
    color: #b9c7b6;
}

#finalScore {
    margin: 0 0 18px;
    color: #fff0ad;
    font-size: 1.1rem;
}

.menu-actions {
    display: grid;
    gap: 10px;
}

@media (max-width: 600px) {
    .menu-panel {
        padding: 20px;
    }
}
