body { margin: 0; padding: 0; background-color: #222; font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } span { position: absolute; } .lil-gui { --background-color: rgba(33, 37, 41, 30%); --width: 200px; } @supports (backdrop-filter: blur()) { .lil-gui { backdrop-filter: blur(15px); } } .lil-gui.autoPlace { top: inherit; bottom: 15px; left: 15px; } .lil-gui.root > .title { font-size: 1.5em; } .lil-gui .controller.disabled { opacity: .8; } canvas { cursor: grab; } #messagesSpan { position: absolute; top: 10%; left: 50%; width: 50%; transform: translate(-50%, 0); color: rgba(255, 255, 255, 0.8); font-weight: 400; line-height: 1.5; font-size: 3vmin; text-align: center; } #messagesSpan div { opacity: 0; overflow: hidden; user-select: none; } h1 { font-size: calc(1.375rem + 1.5vw); } @keyframes show-level-animation { from { opacity: 0; transform: translateY(200%); } 50% { opacity: 100%; transform: translateY(0) scaleY(1); line-height: var(--bs-body-line-height); } to { opacity: 0; transform: translateY(-100%) scaleY(0); line-height: 0; } } #messagesSpan div.show-level-animation { animation: show-level-animation; animation-timing-function: (0.4, 0, 0.6, 1); animation-duration: 2s; } @keyframes zoom-in-animation { from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); line-height: var(--bs-body-line-height); } 30% { opacity: 1; transform: scale3d(1, 1, 1); } 80% { opacity: 1; transform: scale3d(1, 1, 1); line-height: var(--bs-body-line-height); } to { opacity: 0; transform: scale3d(1.5, 0, 1); line-height: 0; } } @keyframes rotate-in-animation { 0% { opacity:0; transform:rotate(200deg); line-height: var(--bs-body-line-height); } 30% { opacity:1; transform:translateZ(0); transform: scale3d(1, 1, 1); } 80% { opacity: 1; transform: scale3d(1, 1, 1); line-height: var(--bs-body-line-height); } to { opacity: 0; transform: scale3d(1.5, 0, 1); line-height: 0; } } #messagesSpan div.rotate-in-animation { animation-name: rotate-in-animation; animation-timing-function: cubic-bezier(.25,.46,.45,.94); animation-duration: 1s; } #messagesSpan div.zoom-in-animation { animation-name: zoom-in-animation; animation-timing-function: cubic-bezier(.25,.46,.45,.94); transform-origin:center; animation-duration: 1s; } @keyframes game-over-animation { from { opacity: 0; transform: translateY(200%); } to { opacity: 100%; transform: translateY(0) scaleY(1); line-height: var(--bs-body-line-height); } } #messagesSpan div.game-over-animation { animation: game-over-animation; animation-timing-function: (0.4, 0, 0.6, 1); animation-duration: 2s; } .pause canvas { filter: blur(10px); } #pauseSpan { display: none; } .pause #pauseSpan { display: flex; position:absolute; top: 0; left: 0; filter: blur(2px); width: 100%; height: 100%; z-index: 10; color: rgba(255, 255, 255, 20%); justify-content: center; align-items: center; font-size: 20vh; font-weight: 800; letter-spacing: .1em; user-select: none; }