html, body { width: 100%; height: 100%; } @media (prefers-color-scheme: dark) { body { display: flex; margin: 0; padding: 0; font-family: '-apple-system', sans-serif; align-items: center; justify-content: center; background-color: black; perspective: 100vw; -webkit-text-smoothing: anti-aliased; } } @media (prefers-color-scheme: light) { body { display: flex; margin: 0; padding: 0; font-family: '-apple-system', sans-serif; align-items: center; justify-content: center; background-color: white; perspective: 100vw; -webkit-text-smoothing: anti-aliased; } } digit { position: relative; width: 7vw; height: 11vw; margin: 0 0.25vw; -webkit-backface-visibility: hidden; } /* Flip Flaps ------------------------------------------------*/ @media (prefers-color-scheme: dark) { flap-top, flap-top-flip, flap-bottom, flap-bottom-flip { box-sizing: border-box; position: absolute; display: flex; width: 100%; height: 50%; left: 0; justify-content: center; overflow: hidden; color: #e1e1e1; background-color: rgb(12,12,12); box-shadow: inset 0 1px 0 0 rgba(255,255,255,0.04); -webkit-backface-visibility: hidden; } } @media (prefers-color-scheme: light) { flap-top, flap-top-flip, flap-bottom, flap-bottom-flip { box-sizing: border-box; position: absolute; display: flex; width: 100%; height: 50%; left: 0; justify-content: center; overflow: hidden; color: #323232; background-color: rgb(200,200,200); box-shadow: inset 0 1px 0 0 rgba(0,0,0,0.04); -webkit-backface-visibility: hidden; } } flap-top, flap-top-flip { top: 0; border-radius: 0.4vw 0.4vw 0 0; } flap-bottom, flap-bottom-flip { bottom: 0; border-radius: 0 0 0.4vw 0.4vw; } flap-top-flip { display: none; transform-origin: 100% 100%; animation: flip-top-down var(--anim) ease-in; } flap-bottom-flip { display: none; transform-origin: 100% 0%; animation: flip-bottom-down var(--anim) ease-out; } flap-top > n, flap-top-flip > n { top: 0; } flap-bottom > n, flap-bottom-flip > n { bottom: 0; } @media screen and (min-width: 800px) { flap-top, flap-top-flip { transform: translateY(-1px); } flap-bottom, flap-bottom-flip { transform: translateY(1px); } flap-top > n, flap-top-flip > n { top: 1px; } flap-bottom > n, flap-bottom-flip > n { bottom: 1px; } } @media screen and (min-width: 1280px) { flap-top, flap-top-flip { transform: translateY(-2px); } flap-bottom, flap-bottom-flip { transform: translateY(2px); } flap-top > n, flap-top-flip > n { top: 2px; } flap-bottom > n, flap-bottom-flip > n { bottom: 2px; } } /* Number ------------------------------------------------*/ n { position: absolute; left: 0; width: 100%; height: 11vw; font-size: 9vw; font-weight: 200; line-height: 118%; text-align: center; font-variant-numeric: tabular-nums; -webkit-backface-visibility: hidden; transform: translate3d(0, 0, 0) } /* Animations ------------------------------------------------*/ @media (prefers-color-scheme: light) { @keyframes flip-top-down { 0% { transform: rotateX(0); } 100% { transform: rotateX(-90deg); color: gray; background-color: gray; } } @keyframes flip-bottom-down { 0% { color: black; background-color: rgb(220,220,220); transform: rotateX(90deg); } 100% { transform: rotateX(0deg); } } @media screen and (min-width: 800px) { @keyframes flip-top-down { 0% { transform: translateY(-1px) rotateX(0); } 100% { transform: translateY(-1px) rotateX(-90deg); color: gray; background-color: gray; } } @keyframes flip-bottom-down { 0% { color: black; background-color: rgb(220,220,220); transform: translateY(1px) rotateX(90deg); } 100% { transform: translateY(1px) rotateX(0deg); } } } @media screen and (min-width: 1280px) { @keyframes flip-top-down { 0% { transform: translateY(-2px) rotateX(0); } 100% { transform: translateY(-2px) rotateX(-90deg); color: gray; background-color: gray; } } @keyframes flip-bottom-down { 0% { color: black; background-color: rgb(220,220,220); transform: translateY(2px) rotateX(90deg); } 100% { transform: translateY(2px) rotateX(0deg); } } } } @media (prefers-color-scheme: dark) { @keyframes flip-top-down { 0% { transform: rotateX(0); } 100% { transform: rotateX(-90deg); color: black; background-color: black; } } @keyframes flip-bottom-down { 0% { color: white; background-color: rgb(30,30,30); transform: rotateX(90deg); } 100% { transform: rotateX(0deg); } } @media screen and (min-width: 800px) { @keyframes flip-top-down { 0% { transform: translateY(-1px) rotateX(0); } 100% { transform: translateY(-1px) rotateX(-90deg); color: black; background-color: black; } } @keyframes flip-bottom-down { 0% { color: white; background-color: rgb(30,30,30); transform: translateY(1px) rotateX(90deg); } 100% { transform: translateY(1px) rotateX(0deg); } } } @media screen and (min-width: 1280px) { @keyframes flip-top-down { 0% { transform: translateY(-2px) rotateX(0); } 100% { transform: translateY(-2px) rotateX(-90deg); color: black; background-color: black; } } @keyframes flip-bottom-down { 0% { color: white; background-color: rgb(30,30,30); transform: translateY(2px) rotateX(90deg); } 100% { transform: translateY(2px) rotateX(0deg); } } } }