:root {
    --key-height: 200px;
    --key-width: 40px;
    --key-padding: 8px;
    --key-border-width: 1px;

    --keyboard-padding: 10px;
}

body {
    margin: 10px;
    background: #333;
}

#keyboardOuterWrapper {
    /*display: flex;*/
    /*justify-content: center;*/
}
    #keyboardInnerWrapper {
        /*display: flex;*/
        /*flex-direction: column;*/

        width: fit-content;
        background: #0b0b0b;
        color: #EEE;
        padding: var(--keyboard-padding);
        border-radius: var(--keyboard-padding);
    }
        #keyboardControls {
            padding-bottom: var(--keyboard-padding);
        }
            #keyboardControls tr>td:nth-child(1) {
                text-align: right;
                font-weight: bold;
                padding-right: 10px;
                user-select: none;
            }
            #inputScaleOffset {
                width: 35px;
            }
        #keyboard {
            display: flex;
            align-items: start;
        }
            .key {
                position: relative;
                display: inline-block;
                text-align: center;
                padding: var(--key-height) 0 var(--key-padding) 0;
                min-width: var(--key-width);
                user-select: none;
                border: var(--key-border-width) solid #0000;
                background: #EEE;
                color: #111;
                z-index: 1;

                translate: 40px 0; /* animation start */
                opacity: 0; /* animation start */

                animation-name: slide-in-top;
                animation-duration: 1.8s;
                animation-delay: 0.5s;
                animation-fill-mode: forwards;
            }
                .key:hover {
                    background: #AAA;
                }
            .keySharp {
                border: var(--key-border-width) solid #333;
                background: #222;
                color: #EEE;
                z-index: 2;
                padding-top:  calc((var(--key-height) / 2) - var(--key-padding));
                margin-inline: calc(-1 * ((var(--key-width) / 2) + var(--key-border-width)));
            }
                .keySharp:hover {
                    background: #222;
                }
            .markedPlayable:before {
                content: attr(data-before-content);
                background: #F0F1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                display: flex;
                justify-content: center;
                align-items: end;
                line-height: 125px;
                transition: color 0.1s;
                color: transparent;
            }
            .markedPlayable:hover:before {
                color: revert;
            }



@keyframes slide-in-top {
    0%   {translate: 0 40px; opacity: 0;    border-color: #0000}
    20%  {translate: 0 80px; opacity: 0.33; border-color: #0000}
    60%  {translate: 0 0;    opacity: 1;    border-color: #0000}
    100% {translate: 0 0;    opacity: 1;    border-color: #000F}
}