:root {
    --halfHeight: 0.73em;
    --borderRadius: 0.10em;

    --bg-cl: #F2D7AD;
    --txt-cl: #3C1518;
    --fg-cl: #D83030;
    --sec-cl: #323832;
    --acc-cl: #DE994E;

    color: var(--txt-cl);

    font-family: "Oxygen", sans-serif;
    font-weight: 400;
}

p, h1, h2, h3, h4, h5 {
    margin: 0;
}

.oxygen-light {
    font-family: "Oxygen", sans-serif;
    font-weight: 300;
    font-style: normal;
}

.oxygen-regular {
    font-family: "Oxygen", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.oxygen-bold {
    font-family: "Oxygen", sans-serif;
    font-weight: 700;
    font-style: normal;
}


.bg-cl {
    color: var(--bg-cl)
}

.txt-cl {
    color: var(--txt-cl);
}

.fg-cl {
    color: var(--fg-cl);
}

.sec-cl {
    color: var(--sec-cl);
}

.acc-cl {
    color: var(--acc-cl);
}

.bg-bg {
    background: var(--bg-cl)
}

.txt-bg {
    background: var(--txt-cl);
}

.fg-bg {
    background: var(--fg-cl);
}

.sec-bg {
    background: var(--sec-cl);
}

.acc-bg {
    background: var(--acc-cl);
}

body {
    background-color: #F2D7AD;
}

.separator {
    display: inline-block;
    font-size: 4rem;
    margin: 0 5px;
    color: #D83030;
}

.flip-clock {
    text-align: center;
    perspective: 600px;
    margin: 0 auto;

    *,
    *:before,
    *:after { box-sizing: border-box; }
}

.flip-clock__piece {
    display: inline-block;
    margin: 0 0.2vw;

    @media (min-width: 1000px) {
        margin: 0 5px;
    }
}

.flip-clock__slot {
    font-size: 1rem;
    line-height: 1.5;
    display: block;
}

.flip-card {
    width: 1.2em;
    text-align: center;
    display: block;
    position: relative;
    padding-bottom: var(--halfHeight);
    font-size: 4.25rem;
    line-height: 0.95;
}

@media (min-width: 1000px) {
    .flip-clock__slot { font-size: 1.2rem; }
    .flip-card { font-size: 3rem; }
}


.flip-card__top,
.flip-card__bottom,
.flip-card__back-bottom,
.flip-card__back::before,
.flip-card__back::after {
    display: block;
    height: var(--halfHeight);
    color: #DE994E;
    background: #D83030;
    padding: 0.23em 0.25em 0.4em;
    border-radius: var(--borderRadius) var(--borderRadius) 0 0;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    width: 1.2em;
}

.flip-card__bottom,
.flip-card__back-bottom {
    color: #F2D7AD;
    position: absolute;
    top: 50%;
    left: 0;
    border-top: solid 1px #D83030;
    background: #D83030;
    border-radius: 0 0 var(--borderRadius) var(--borderRadius);
    pointer-events: none;
    overflow: hidden;
    z-index: 2;
}

.flip-card__back-bottom {
    z-index: 1;
}

.flip-card__bottom::after,
.flip-card__back-bottom::after {
    display: block;
    margin-top: calc(-1 * var(--halfHeight));
}

.flip-card__back::before,
.flip-card__bottom::after,
.flip-card__back-bottom::after {
    content: attr(data-value);
}

.flip-card__back {
    position: absolute;
    top: 0;
    height: 100%;
    left: 0%;
    pointer-events: none;
}

.flip-card__back::before {
    position: relative;
    overflow: hidden;
    z-index: -1;
}

.flip .flip-card__back::before {
    z-index: 1;
    animation: flipTop 0.3s cubic-bezier(.37,.01,.94,.35);
    animation-fill-mode: both;
    transform-origin: center bottom;
}

.flip .flip-card__bottom {
    transform-origin: center top;
    animation-fill-mode: both;
    animation: flipBottom 0.6s cubic-bezier(.15,.45,.28,1);
}

@keyframes flipTop {
    0% {
        transform: rotateX(0deg);
        z-index: 2;
    }
    0%, 99% {
        opacity: 1;
    }
    100% {
        transform: rotateX(-90deg);
        opacity: 0;
    }
}

@keyframes flipBottom {
    0%, 50% {
        z-index: -1;
        transform: rotateX(90deg);
        opacity: 0;
    }
    51% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: rotateX(0deg);
        z-index: 5;
    }
}

