/* добавки / правки для переключателя и typing-bar */
#hud {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    gap: 12px;
    pointer-events: auto;
}

canvas {
    width: 100%;
    height: 100%;
    display: block;
    image-rendering: pixelated;
    background-color: #000;
    margin-bottom: var(--spacing-md);
}

#battle-container {
    width: 100%;
    max-width: 1370px;
    aspect-ratio: 4 / 1.5;
    margin: 0 auto;
    position: relative;
    margin-bottom: var(--spacing-md);
}

/* SOUND toggle — справа вверху */
#toggle-sound {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    background: var(--color-accent);
    color: var(--color-black);
    border: 2px solid var(--border-color-purple);
    border-radius: var(--border_radius_small);
    padding: var(--spacing-sm) var(--spacing-md);
    font-family: var(--font-pixel);
    font-size: var(--font-size-base);
    cursor: pointer;
    transition: background var(--transition-speed) var(--transition-func),
        transform var(--transition-speed) var(--transition-func);
    transform: translate(0px, calc(-1 * var(--spacing-xl)));
}

/* typing bar — теперь центрирует и позволяет смещать содержимое */
#typing-bar {
    /* position: absolute; */
    left: 0;
    right: 0;
    bottom: 12px;
    display: flex;
    justify-content: center;
    pointer-events: auto;
    display: none; /* скрываем блок по умолчанию */
}
#typing-text {
    background: linear-gradient(var(--color-bg), var(--color-bg)) padding-box,
        linear-gradient(180deg, var(--color-purple) 50%, var(--color-black) 113%) border-box;
    border: 3px solid transparent;
    border-radius: var(--border_radius);
    color: #000; /* по умолчанию черный текст */
    padding: 10px 16px;
    min-width: 60%;
    max-width: 90%;
    font-family: var(--font-pixel);
    font-size: clamp(16px, 2.2vw, 22px);
    overflow: hidden;
    position: relative;
    height: 2.2em;
}

/* Внутренний контейнер текста, который мы двигаем translateX */
#typing-inner {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;
    will-change: transform;
    font-family: monospace; /* лучше для расчётов и визуальной стабильности */
    font-size: inherit;
}

/* стили для символов */
.char {
    display: inline-block;
    padding: 0 1px;
    color: #000; /* черный для непройденных символов */
}
.char.correct {
    color: #0b0; /* зелёный */
    opacity: 0.95;
}
.char.space {
    display: inline-block;
    width: 10px; /* можно подстроить ширину */
    background-color: rgba(0, 0, 0, 0.05); /* лёгкий серый фон для пробела */
}

.char.current {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
    color: #f00; /* красный текущий */
}

/* моментальная ошибка */
#typing-text.error {
    animation: shake 0.25s;
    background: rgba(255, 0, 0, 0.08);
}
@keyframes shake {
    0% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-6px);
    }
    50% {
        transform: translateX(6px);
    }
    75% {
        transform: translateX(-4px);
    }
    100% {
        transform: translateX(0);
    }
}

/* скрытый измеритель (offscreen) */
#measure {
    position: absolute;
    left: -9999px;
    top: -9999px;
    visibility: hidden;
    white-space: nowrap;
    font-family: monospace;
    font-size: inherit;
}

.container {
    position: relative;
}

h1 {
    font-family: var(--font-title);
    font-size: var(--font-size-uxl);
    color: var(--color-black);
    margin-bottom: var(--spacing-sm);
    margin-top: var(--spacing-xl);
    text-align: center;
}

.game-description {
    font-family: var(--font-main);
    font-size: var(--font-size-base);
    color: var(--color-black);
    opacity: 0.8;
    text-align: center;
    margin-bottom: var(--spacing-md);
}

.back-button {
    font-size: var(--font-size-sm);
    font-weight: bold;
    text-decoration: none;
    color: var(--color-black);
    white-space: nowrap;
    opacity: 0.8;
}

.back-button:hover {
    text-decoration: underline;
}

.back-icon {
    margin-bottom: var(--spacing-md);
}

.left-section {
    position: absolute;
    top:0;
    left: 0;
    height: 100%;
    width: 50%;
    background-color: rgba(116, 116, 116, 0.281);
    transform: translate(-10px, 0);
}
