* { margin: 0; } .first-loading-wrp { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100vh; background: radial-gradient(ellipse at 30% 20%, rgba(96, 165, 250, 0.06), transparent 50%), radial-gradient(ellipse at 70% 80%, rgba(167, 139, 250, 0.06), transparent 50%), #06090f; } .first-loading-wrp .loading-wrp { padding: 48px; display: flex; justify-content: center; align-items: center; position: relative; } .loading-wrp::before { content: ''; position: absolute; width: 80px; height: 80px; border-radius: 50%; border: 1px solid rgba(96, 165, 250, 0.12); animation: ringPulse 2s ease-in-out infinite; } .loading-wrp::after { content: ''; position: absolute; width: 100px; height: 100px; border-radius: 50%; border: 1px solid rgba(167, 139, 250, 0.06); animation: ringPulse 2s ease-in-out infinite 0.4s; } @keyframes ringPulse { 0%, 100% { transform: scale(0.8); opacity: 0.2; } 50% { transform: scale(1.2); opacity: 0.6; } } .dot { animation: dotRotate 1.4s infinite linear; transform: rotate(45deg); position: relative; display: inline-block; font-size: 40px; width: 40px; height: 40px; box-sizing: border-box; } .dot i { width: 16px; height: 16px; position: absolute; display: block; border-radius: 100%; transform: scale(0.7); transform-origin: 50% 50%; opacity: 0.25; animation: dotBreathe 1s infinite linear alternate; } .dot i:nth-child(1) { top: 0; left: 0; background-color: #60a5fa; box-shadow: 0 0 14px rgba(96, 165, 250, 0.6); } .dot i:nth-child(2) { top: 0; right: 0; background-color: #a78bfa; box-shadow: 0 0 14px rgba(167, 139, 250, 0.6); animation-delay: 0.25s; } .dot i:nth-child(3) { right: 0; bottom: 0; background-color: #60a5fa; box-shadow: 0 0 14px rgba(96, 165, 250, 0.6); animation-delay: 0.5s; } .dot i:nth-child(4) { bottom: 0; left: 0; background-color: #a78bfa; box-shadow: 0 0 14px rgba(167, 139, 250, 0.6); animation-delay: 0.75s; } @keyframes dotRotate { to { transform: rotate(405deg); } } @keyframes dotBreathe { 0% { opacity: 0.25; transform: scale(0.7); } 100% { opacity: 1; transform: scale(1); } }