html, body, .loader-container { margin: 0; height: 100%; width: 100%; } .loader-container { position: relative; background-color: #373940; } .structure, .smoke { position: absolute; z-index: 1000; top: calc(50% - 65px); left: calc(50% - 100px); width: 200px; height: 130px; } .smoke { z-index: 999; } .structure { transform: translate3d(0, 0, 0); perspective: 1000px; animation: shake 0.42s cubic-bezier(0.36, 0.07, 0.19, 0.97) both infinite; } .text-container { position: absolute; top: calc(52% + 100px); left: calc(28% - 100px); width: 40rem; } .text-container h2 { width: 100%; text-align: center; color: #c9c9c9; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-shadow: 0 0 10px #57acb3; } #rocket-svg { position: absolute; top: -112px; transform: rotate(90deg); } #right-wing, #left-wing, #nose, #window-stroke, #middle-wing { fill: #878787; } #rocket-main-part { fill: #37b8c1; } #window-inner { fill: #212526; } .smoke span { position: absolute; width: 50px; border-bottom: 2px solid #fff; } .meteors-container { position: absolute; z-index: 998; width: 100%; height: 100%; overflow: hidden; } .meteors-container span { position: absolute; width: 75px; border-bottom: 2px solid #fff; } .smoke span:nth-child(1) { top: 28px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-0 ease-out 0.6s infinite; } @keyframes smokeAnim-0 { from { left: -50px; opacity: 1; } to { left: -241px; opacity: 0; } } .smoke span:nth-child(2) { top: 36px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-1 ease-out 0.4s infinite; } @keyframes smokeAnim-1 { from { left: -50px; opacity: 1; } to { left: -288px; opacity: 0; } } .smoke span:nth-child(3) { top: 44px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-2 ease-out 0.25s infinite; } @keyframes smokeAnim-2 { from { left: -50px; opacity: 1; } to { left: -218px; opacity: 0; } } .smoke span:nth-child(4) { top: 52px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-3 ease-out 0.4s infinite; } @keyframes smokeAnim-3 { from { left: -50px; opacity: 1; } to { left: -164px; opacity: 0; } } .smoke span:nth-child(5) { top: 60px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-4 ease-out 0.55s infinite; } @keyframes smokeAnim-4 { from { left: -50px; opacity: 1; } to { left: -256px; opacity: 0; } } .smoke span:nth-child(6) { top: 68px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-5 ease-out 0.4s infinite; } @keyframes smokeAnim-5 { from { left: -50px; opacity: 1; } to { left: -219px; opacity: 0; } } .smoke span:nth-child(7) { top: 76px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-6 ease-out 0.65s infinite; } @keyframes smokeAnim-6 { from { left: -50px; opacity: 1; } to { left: -173px; opacity: 0; } } .smoke span:nth-child(8) { top: 84px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-7 ease-out 0.3s infinite; } @keyframes smokeAnim-7 { from { left: -50px; opacity: 1; } to { left: -190px; opacity: 0; } } .smoke span:nth-child(9) { top: 92px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-8 ease-out 0.2s infinite; } @keyframes smokeAnim-8 { from { left: -50px; opacity: 1; } to { left: -112px; opacity: 0; } } .smoke span:nth-child(10) { top: 100px; left: -50px; box-shadow: 0px 0px 5px #fff; animation: smokeAnim-9 ease-out 0.5s infinite; } @keyframes smokeAnim-9 { from { left: -50px; opacity: 1; } to { left: -181px; opacity: 0; } } .meteors-container span:nth-child(1) { top: 16.6666666667%; left: 100%; box-shadow: 0px 0px 5px #fff; animation: meterosAnim-0 linear 0.35s infinite; } @keyframes meterosAnim-0 { 0% { left: 100%; } 75% { left: calc(0% - 75px); } 100% { left: calc(0% - 75px); } } .meteors-container span:nth-child(2) { top: 33.3333333333%; left: 100%; box-shadow: 0px 0px 5px #fff; animation: meterosAnim-1 linear 0.4s infinite; } @keyframes meterosAnim-1 { 0% { left: 100%; } 75% { left: calc(0% - 75px); } 100% { left: calc(0% - 75px); } } .meteors-container span:nth-child(3) { top: 50%; left: 100%; box-shadow: 0px 0px 5px #fff; animation: meterosAnim-2 linear 0.4s infinite; } @keyframes meterosAnim-2 { 0% { left: 100%; } 75% { left: calc(0% - 75px); } 100% { left: calc(0% - 75px); } } .meteors-container span:nth-child(4) { top: 66.6666666667%; left: 100%; box-shadow: 0px 0px 5px #fff; animation: meterosAnim-3 linear 0.4s infinite; } @keyframes meterosAnim-3 { 0% { left: 100%; } 75% { left: calc(0% - 75px); } 100% { left: calc(0% - 75px); } } .meteors-container span:nth-child(5) { top: 83.3333333333%; left: 100%; box-shadow: 0px 0px 5px #fff; animation: meterosAnim-4 linear 0.75s infinite; } @keyframes meterosAnim-4 { 0% { left: 100%; } 75% { left: calc(0% - 75px); } 100% { left: calc(0% - 75px); } } .meteors-container span:nth-child(6) { top: 100%; left: 100%; box-shadow: 0px 0px 5px #fff; animation: meterosAnim-5 linear 0.7s infinite; } @keyframes meterosAnim-5 { 0% { left: 100%; } 75% { left: calc(0% - 75px); } 100% { left: calc(0% - 75px); } } @keyframes shake { 10%, 90% { transform: translate3d(-1px, 1px, 0); } 20%, 80% { transform: translate3d(2px, 2px, 0); } 30%, 50%, 70% { transform: translate3d(-2px, -2px, 0); } 40%, 60% { transform: translate3d(2px, 2px, 0); } } @media screen and (max-width: 422px) { .text-container h2 { font-size: 28px; } }