.App:focus,button:focus {
    outline: none
}

.in-game-score {
    display: flex;
    justify-content: center;
    text-align: center
}

.valid-words-remaining-container {
    margin-right: 20px
}

.in-game-score .score-count {
    font-size: 2em;
    margin-bottom: 15px
}

.show-undo-link {
    color: #00e;
    text-decoration: underline;
    cursor: pointer
}

.valid-words-remaining-count-at-row {
    position: absolute;
    width: 60px;
    left: calc(50% + 104px)
}

.valid-words-remaining-count-at-row.show-link-to-words-remaining {
    text-decoration: underline;
    color: #00f;
    cursor: pointer
}

.letter-box {
    border: 2px solid #d3d6da;
    border-radius: 3px;
    margin: 2px;
    font-size: 1.3rem;
    font-weight: 700;
    height: 2rem;
    width: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase
}

.filled-box {
    border: 2px solid black
}

.letter-row {
    display: flex
}

.letter-box-miss {
    border: 2px solid #787c7e;
    background-color: #787c7e;
    color: #fff
}

.letter-box-success {
    border: 2px solid #6aaa64;
    background-color: #6aaa64;
    color: #fff
}

.letter-box-partial-success {
    border: 2px solid #c9b458;
    background-color: #c9b458;
    color: #fff
}

.letter-box-death {
    border: 2px solid #ec4646;
    background-color: #ec4646;
    color: #fff
}

.letter-box-disqualified {
    border: 2px solid #a8a8a8;
    background-color: #a8a8a8;
    color: #a8a8a8;
    transition: 3s
}

.letter-box-win {
    animation-name: Bounce;
    animation-duration: 1s
}

.letter-box[data-animation=pop] {
    animation-name: PopIn;
    animation-duration: .1s
}

@keyframes PopIn {
    0% {
        transform: scale(.8);
        opacity: 0
    }

    40% {
        transform: scale(1.1);
        opacity: 1
    }
}

.letter-box[data-animation=flip-in] {
    animation-name: FlipIn;
    animation-duration: .2s;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards
}

@keyframes FlipIn {
    0% {
        transform: rotateX(0)
    }

    to {
        transform: rotateX(-90deg)
    }
}

.letter-box[data-animation=flip-out] {
    animation-name: FlipOut;
    animation-duration: .2s;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards
}

@keyframes FlipOut {
    0% {
        transform: rotateX(-90deg)
    }

    to {
        transform: rotateX(0)
    }
}

.letter-box[data-animation=flip-game-over-begin] {
    animation-name: FlipGameOverBegin;
    animation-duration: .2s;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards
}

@keyframes FlipGameOverBegin {
    0% {
        transform: rotateX(0)
    }

    to {
        transform: rotateX(-90deg)
    }
}

.letter-box[data-animation=flip-game-over-end] {
    animation-name: FlipGameOverEnd;
    animation-duration: .2s;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards
}

@keyframes FlipGameOverEnd {
    0% {
        transform: rotateX(-90deg)
    }

    to {
        transform: rotateX(0)
    }
}

@keyframes Bounce {
    0%,20% {
        transform: translateY(0)
    }

    40% {
        transform: translateY(-30px)
    }

    50% {
        transform: translateY(5px)
    }

    60% {
        transform: translateY(-15px)
    }

    80% {
        transform: translateY(2px)
    }

    to {
        transform: translateY(0)
    }
}

#game-board {
    display: flex;
    align-items: center;
    flex-direction: column
}

#keyboard-cont {
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    align-items: center
}

#keyboard-cont div {
    display: flex
}

.special-buttons {
    margin-bottom: 20px;
    text-transform: none
}

.second-row {
    margin: .5rem 0
}

.keyboard-button {
    height: 50px;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 700;
    padding: .5rem;
    margin: 0 2px;
    cursor: pointer;
    text-transform: uppercase;
    border: 2px solid #d3d6da;
    background-color: #d3d6da;
    color: #000
}

#undo-button,#show-undo-results,#random-starting-word {
    text-transform: none;
    height: 40px
}

.keyboard-button-success {
    border: 2px solid #6aaa64;
    background-color: #6aaa64;
    color: #fff
}

.keyboard-button-partial-success {
    border: 2px solid #c9b458;
    background-color: #c9b458;
    color: #fff
}

.keyboard-button-miss {
    border: 2px solid #787c7e;
    background-color: #787c7e;
    color: #fff
}

.keyboard-button-miss .delete-icon path {
    fill: #fff
}

header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    height: 50px;
    color: #000;
    padding: 0 16px;
    margin-bottom: 16px
}

header .title {
    font-weight: 700;
    font-size: 20px;
    line-height: 100%;
    letter-spacing: .01em;
    text-align: center;
    left: 0;
    right: 0;
    pointer-events: none
}

button.icon {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 4px
}

#nav-button {
    padding-top: 2px
}

.menu-left {
    display: flex;
    margin: 0;
    padding: 0;
    align-items: center;
    width: 70px;
    justify-content: flex-start
}

.valid-word-remaining-result {
    display: flex
}

.valid-word-remaining-list {
    font-size: 1.6rem
}

.valid-word-remaining-result-letter {
    border: 2px solid #d3d6da;
    border-radius: 3px;
    margin: 2px;
    font-size: 1.6rem;
    font-weight: 700;
    height: 2.4rem;
    width: 2.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    text-align: center
}

.valid-letter-box-miss {
    border: 2px solid #787c7e;
    background-color: #787c7e;
    color: #fff
}

.valid-letter-box-success {
    border: 2px solid #6aaa64;
    background-color: #6aaa64;
    color: #fff
}

.valid-letter-box-partial-success {
    border: 2px solid #c9b458;
    background-color: #c9b458;
    color: #fff
}

.close-icon {
    width: 24px;
    height: 24px;
    position: absolute;
    top: 16px;
    right: 16px;
    cursor: pointer
}

.container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 16px
}

.container h1 {
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .5px;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 10px
}

#statistics1,#statistics2 {
    display: flex;
    margin-bottom: 30px
}

#guess-distribution {
    width: 80%
}

.statistic-container {
    flex: 1;
    margin-left: 12px
}

.statistic-container .statistic {
    font-size: 36px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    letter-spacing: .05em;
    font-variant-numeric: proportional-nums
}

.statistic-container .label {
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center
}

.graph-container {
    width: 100%;
    display: flex;
    align-items: center;
    padding-bottom: 12px;
    font-size: 14px;
    line-height: 20px
}

.graph-container .guess {
    width: 100px;
    text-align: right
}

.graph-container .graph {
    width: 100%;
    height: 100%;
    padding-left: 4px
}

.graph-container .graph .num-guesses {
    font-weight: 700;
    color: #fff
}

.graph-container .graph .graph-bar {
    height: 100%;
    width: 0%;
    position: relative;
    background-color: gray;
    display: flex;
    justify-content: center
}

.graph-container .graph .graph-bar.align-right {
    justify-content: flex-end;
    padding-right: 8px
}

.graph-container .graph .graph-bar.highlight {
    background-color: #6aaa64
}

.footer {
    display: flex;
    width: 100%
}

.countdown {
    border-right: 1px solid black;
    padding-right: 12px;
    width: 50%
}

.statistic.timer {
    font-variant-numeric: initial
}

.share {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-left: 12px;
    width: 50%
}

button#share-button {
    background-color: #6aaa64;
    color: #fff;
    font-family: inherit;
    font-weight: 700;
    border-radius: 4px;
    cursor: pointer;
    border: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    -webkit-tap-highlight-color: rgba(0,0,0,.3);
    width: 80%;
    font-size: 20px;
    height: 52px;
    -webkit-filter: brightness(100%)
}

button#share-button game-icon {
    width: 24px;
    height: 24px;
    padding-left: 8px
}

.InfoModal game-icon {
    position: fixed;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    cursor: pointer
}

.overlay {
    display: none;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    justify-content: center;
    align-items: center;
    background-color: #ffffff80;
    z-index: 3000
}

.overlay[modal-state=visible] {
    display: flex
}

.content {
    position: relative;
    border-radius: 8px;
    border: 1px solid #f6f7f8;
    background-color: #fff;
    color: #000;
    box-shadow: 0 4px 23px #0003;
    width: 90%;
    max-height: 90%;
    overflow-y: auto;
    animation: SlideIn .2s;
    max-width: 500px;
    padding: 16px;
    box-sizing: border-box
}

.content.closing {
    animation: SlideOut .2s
}

.CheatModal game-icon {
    position: fixed;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    cursor: pointer
}

@keyframes SlideIn {
    0% {
        transform: translateY(30px);
        opacity: 0
    }

    to {
        transform: translateY(0);
        opacity: 1
    }
}

@keyframes SlideOut {
    0% {
        transform: translateY(0);
        opacity: 1
    }

    90% {
        opacity: 0
    }

    to {
        opacity: 0;
        transform: translateY(60px)
    }
}

.undo-word-result {
    display: flex
}

.undo-word-list {
    font-size: 1.6rem
}

.undo-word-result-letter {
    border: 2px solid #d3d6da;
    border-radius: 3px;
    margin: 2px;
    font-size: 1.6rem;
    font-weight: 700;
    height: 2.4rem;
    width: 2.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    text-align: center
}

.undo-letter-box-miss {
    border: 2px solid #787c7e;
    background-color: #787c7e;
    color: #fff
}

.undo-letter-box-success {
    border: 2px solid #6aaa64;
    background-color: #6aaa64;
    color: #fff
}

.undo-letter-box-partial-success {
    border: 2px solid #c9b458;
    background-color: #c9b458;
    color: #fff
}

.settings-overlay {
    display: none;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    z-index: 3000
}

.settings-overlay[modal-state=visible] {
    display: flex
}

.settings-overlay-content {
    position: relative;
    color: #000;
    padding: 0 32px;
    max-width: 400px;
    width: 100%;
    overflow-y: auto;
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    animation: SettingsSlideIn .2s
}

.close-icon {
    width: 24px;
    height: 24px;
    position: absolute;
    top: 16px;
    right: 16px
}

@keyframes SettingsSlideIn {
    0% {
        transform: translateY(30px);
        opacity: 0
    }

    to {
        transform: translateY(0);
        opacity: 1
    }
}

.setting {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgb(211,214,218);
    padding: 16px 0
}

.text {
    padding-right: 8px
}

.title {
    font-size: 18px
}

.description {
    font-size: 12px;
    color: #080909
}

.switch {
    height: 20px;
    width: 32px;
    vertical-align: middle;
    background: rgb(135,138,140);
    border-radius: 999px;
    display: block;
    position: relative
}

.knob {
    display: block;
    position: absolute;
    left: 2px;
    top: 2px;
    height: calc(100% - 4px);
    width: 50%;
    border-radius: 8px;
    background: white;
    transform: translate(0);
    transition: transform .3s
}

game-switch[checked=true] .switch {
    background: #6aaa64
}

game-switch[checked=true] .knob {
    transform: translate(calc(100% - 4px))
}

game-switch[disabled=true] .switch {
    opacity: .5
}

.game-over-section {
    margin-top: 20px;
    animation: fadeIn 3s
}

@keyframes fadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.game-over-message {
    margin: 0 auto 10px;
    text-align: center;
    font-weight: 700
}

.share-button-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-left: 12px
}

button#share-button-home-page {
    background-color: #6aaa64;
    color: #fff;
    border: none
}

button#stats-button-home-page {
    background-color: #787c7e;
    color: #fff;
    border: none
}

button#share-button-home-page,button#stats-button-home-page {
    font-family: inherit;
    font-weight: 700;
    border-radius: 4px;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    -webkit-tap-highlight-color: rgba(0,0,0,.3);
    font-size: 15px;
    height: 40px;
    width: 100px;
    -webkit-filter: brightness(100%);
    margin: 5px
}

button#share-button-home-page game-icon,button#stats-button-home-page game-icon {
    width: 24px;
    height: 24px;
    padding-left: 8px
}

#game-toaster {
    z-index: 4000
}

.toaster {
    position: absolute;
    top: 124px;
    left: 50%;
    transform: translate(-50%);
    pointer-events: none;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 400px
}

.toast {
    position: relative;
    margin: 16px;
    background-color: #000;
    color: #fff;
    padding: 16px;
    border: none;
    border-radius: 4px;
    opacity: 1;
    font-weight: 700
}

.fade[toastpurpose=survived] {
    transition: opacity 1.5s cubic-bezier(.645,.045,.355,1);
    transition-delay: 2s;
    opacity: 0
}

.fade[toastpurpose=gameover] {
    transition: opacity 1.5s cubic-bezier(.645,.045,.355,1);
    transition-delay: 1s;
    opacity: 0
}

.fade[toastpurpose=tempeliminated] {
    transition: opacity 1.5s cubic-bezier(.645,.045,.355,1);
    transition-delay: 3.5s;
    opacity: 0
}

.fade[toastpurpose=eliminated] {
    transition: opacity 1.5s cubic-bezier(.645,.045,.355,1);
    transition-delay: 3s;
    opacity: 0
}

.fade[toastpurpose=error] {
    transition: opacity 2.5s cubic-bezier(.645,.045,.355,1);
    opacity: 0
}
