body { margin: 0; } html { background: var(--initial-loader-bg, #fff); min-block-size: calc(100% + env(safe-area-inset-top)); overflow-x: hidden; overflow-y: auto; } #loading-bg { position: absolute; z-index: 999; display: block; background: var(--initial-loader-bg, #fff); block-size: 100vh; inline-size: 100vw; } .loading-logo { position: absolute; inset-block-start: 40%; inset-inline-start: calc(50% - 50px); } .loading { position: absolute; box-sizing: border-box; border: 3px solid transparent; border-radius: 50%; block-size: 55px; inline-size: 55px; inset-block-start: 80%; inset-inline-start: calc(50% - 27.5px); } .loading .effect-1, .loading .effect-2, .loading .effect-3 { position: absolute; box-sizing: border-box; border: 3px solid transparent; border-radius: 50%; block-size: 100%; border-inline-start: 3px solid var(--initial-loader-color, #eee); inline-size: 100%; } .loading .effect-1 { animation: rotate 1s ease infinite; } .loading .effect-2 { animation: rotate-opacity 1s ease infinite 0.1s; } .loading .effect-3 { animation: rotate-opacity 1s ease infinite 0.2s; } .loading .effects { transition: all 0.3s ease; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(1turn); } } @keyframes rotate-opacity { 0% { opacity: 0.1; transform: rotate(0deg); } 100% { opacity: 1; transform: rotate(1turn); } }