* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: #1a1a2e;
    overflow: hidden;
    font-family: 'Courier New', monospace;
    color: #eee;
}

#gameContainer {
    display: flex;
    height: 100vh;
    position: relative;
    justify-content: center;
    align-items: center;    
}

#gameCanvas {
    border: 4px solid cadetblue;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    background: #1a1a2e;
}

.hidden {
    display: none !important;
}

.upgrade-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(5, 8, 20, 0.72);
    backdrop-filter: blur(2px);
    z-index: 20;
}

.upgrade-dialog {
    width: min(560px, 92vw);
    border: 3px solid #8bd3ff;
    background: linear-gradient(170deg, rgba(17, 27, 52, 0.97), rgba(10, 16, 34, 0.98));
    box-shadow: 0 0 0 3px rgba(255, 238, 120, 0.25), 0 20px 45px rgba(0, 0, 0, 0.45);
    padding: 22px;
}

.upgrade-title {
    color: #ffe47f;
    font-size: 30px;
    letter-spacing: 2px;
    margin-bottom: 10px;
}

.upgrade-level-text {
    color: #d3f4ff;
    font-size: 16px;
    margin-bottom: 16px;
}

.upgrade-choices {
    display: grid;
    gap: 12px;
}

.upgrade-choice-button {
    border: 2px solid #78ffc7;
    background: linear-gradient(180deg, rgba(35, 58, 78, 0.96), rgba(18, 32, 49, 0.96));
    color: #ecfff8;
    text-align: left;
    cursor: pointer;
    padding: 14px;
    transition: transform 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}

.upgrade-choice-button:hover,
.upgrade-choice-button:focus-visible {
    transform: translateY(-2px);
    border-color: #ffe47f;
    box-shadow: 0 0 0 2px rgba(255, 228, 127, 0.25);
    outline: none;
}

.upgrade-choice-button.is-selected {
    transform: translateY(-2px);
    border-color: #ffe47f;
    box-shadow: 0 0 0 2px rgba(255, 228, 127, 0.25), 0 0 24px rgba(170, 255, 205, 0.28);
}

.upgrade-choice-title {
    display: block;
    font-weight: 700;
    color: #e7ff8d;
    font-size: 18px;
    margin-bottom: 4px;
}

.upgrade-choice-desc {
    display: block;
    color: #bfefff;
    font-size: 14px;
}