You wish to allow JavaScript to flee this app. body { overflow: hidden; } .middle { align-items: middle; trace: flex; flex-direction: column; height: 100vh; justify-narrate material: middle; width: 100vw; } @keyframes go-in { from { opacity: 0; } to { opacity: 1; } } .go-in { animation-extend: 750ms; animation-direction: ordinary; animation-length: 500ms; animation-own-mode: forwards; animation-iteration-count: 1; animation-name: go-in; animation-timing-characteristic: ease-in-out; opacity: 0; } @keyframes spin { from { turn out to be: rotate(0deg); } to { turn out to be: rotate(360deg); } } .spinner { animation-length: var(--transitionDurationSlow, 600ms); animation-iteration-count: quite so a lot of; animation-name: spin; animation-timing-characteristic: linear; border-coloration: var(--colorNeutral600Transparent, rgba(125, 134, 153, 0.25)); border-radius: 100%; border-sort: solid; border-top-coloration: rgba(125, 134, 153, 0.9); border-width: var(--borderWidthHeavy, 3px); trace: block; height: var(--spacingXxlarge, 48px); width: var(--spacingXxlarge, 48px); }