.card {
    cursor: pointer;
    position: relative;
    overflow: hidden; /* image with border-radius */

    line-height: 1.3;

    padding: 10px calc(15px + 1.3em); /* account for tick/cross */
    min-height: calc(20px + 1.3em); /* account for tick/cross */

    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
    border: 1px solid var(--lightGrayHover);
    border-radius: 6px;
}

/* utility class for something resembling a card */
.card-stem {
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
    border: 1px solid var(--lightGrayHover);
    border-radius: 6px;
    padding: 10px;
}

@media screen and (hover:hover) {
    .card:hover {
        border-color: var(--blue);
    }
}

.card.correct {
    border-color: var(--greenHover);

    animation: var(--animation-pulse);
}

.card.correct:not(.fill) {
    background-color: var(--green);
    color: white;
}

.card.correct::after {
    content: '';
    background-image: url("https://umimeto.org/asset/global/img/correct.svg"); /* preloaded */
    background-color: var(--green);
}

.card.correct.fill::before {
    content: '';
    background-color: var(--green);
}

.card.wrong {
    border-color: var(--redHover);

    animation: var(--animation-shake);
}

.card.wrong:not(.fill) {
    background-color: var(--red);
    color: white;
}

.card.wrong::after {
    content: '';
    background-image: url("https://umimeto.org/asset/global/img/wrong.svg"); /* preloaded */
    background-color: var(--red);
}

.card.wrong.fill::before {
    content: '';
    background-color: var(--red);
}

.card::after {
    position: absolute;
    z-index: 3;
    bottom: calc(5px + .15em);
    right: calc(5px + .15em);

    height: 1em;
    width: 1em;

    background-position: center;
    background-size: 1em 1em;
    background-repeat: no-repeat;

    padding: 5px;
    box-sizing: content-box;
    border-radius: 3px;
}

.card.fill::before {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0.2;
}
