.board-container {
    display: inline-block;
    position: relative;
    --board-size-px: 480px;
    --frame-thickness-px: clamp(7px, calc(var(--board-size-px) * 0.035), 28px);
    --square-size-px: calc((var(--board-size-px) - (var(--frame-thickness-px) * 2)) / 8);

    .caption-files {
        position: absolute;
        bottom: calc(-1 * var(--frame-thickness-px));
        left: 0;
        width: 100%;
        height: var(--frame-thickness-px);
        z-index: 10;
        pointer-events: none;
    }

    .caption-ranks {
        position: absolute;
        top: 0;
        right: calc(-1 * var(--frame-thickness-px));
        width: var(--frame-thickness-px);
        height: 100%;
        z-index: 10;
        pointer-events: none;
    }

    .file-label, .rank-label {
        position: absolute;
        font-size: clamp(9px, calc(var(--frame-thickness-px) * 0.72), 15px);
        font-weight: bold;
        color: #f6d29d;
        text-align: center;
        z-index: 10;
        text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
    }

    .file-label {
        bottom: 0;
        width: var(--frame-thickness-px);
        height: var(--frame-thickness-px);
        line-height: var(--frame-thickness-px);
        transform: translateX(-50%);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .rank-label {
        right: 0;
        width: var(--frame-thickness-px);
        height: var(--frame-thickness-px);
        line-height: var(--frame-thickness-px);
        transform: translateY(-50%);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .board {
        position: relative;
        height: var(--board-size-px);
        width: var(--board-size-px);
        box-sizing: border-box;
        border-width: var(--frame-thickness-px);
        border-style: solid;
        border-color: transparent;
        border-image-source: url('../Files/Woods/Wood-004.png');
        border-image-slice: 20 fill;
        border-image-width: var(--frame-thickness-px);
        border-image-outset: 0;
        border-image-repeat: stretch;
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.6);
        margin-bottom: 5px;
    }

    .square {
        float: left;
        width: var(--square-size-px);
        height: var(--square-size-px);
        display: flex;
        align-items: center;
        justify-content: center;
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        z-index: 10;
        position: relative;
    }

    .square.marked {
        box-shadow: inset 0 0 14px 6px rgba(121, 170, 8, 0.859);
    }

    .square.possible-move {
        box-shadow: inset 0 0 14px 5px rgba(182,249,21, 0.5);
    }

    .square.pre-possible-move {
        box-shadow: inset 0 0 14px 5px rgba(100, 180, 255, 0.6);
    }

    .square.marked.possible-move {
        box-shadow: inset 0 0 14px 6px rgba(182,249,21, 0.65), inset 0 0 14px 5px rgba(0, 255, 65, 0.5);
    }

    .promote_layout {
        float: left;
        width: 110px;
        height: 110px;
        display: flex;
        align-items: center;
        justify-content: center;
        background-size: cover;
        z-index: 20
    }

    .promote {
        position: relative;
        top: 0;
        left: 0;
        width: var(--square-size-px);
        height: var(--square-size-px);
        cursor: pointer;
        align-items: center;
        justify-content: center;
        z-index: 999;
    }

    .figuraImage {
        width: var(--square-size-px);
        height: var(--square-size-px);
        cursor: grab;
        z-index: 100;
    }

    .field {
        width: 300px;
        height: 300px;
        border: 5px solid black;
        background-color: lightblue;
        display: flex;
        align-items: center;
        justify-content: center
    }
}
