.initial-loading { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: linear-gradient(135deg, #0c0c0c 0%, #151313 100%); z-index: 99999; display: flex; align-items: center; justify-content: center; opacity: 1; transition: opacity 0.6s ease-out; } .initial-loading.fade-out { opacity: 0; pointer-events: none; } .initial-loading-content { display: flex; flex-direction: column; align-items: center; gap: 2rem; } .initial-svg { width: 250px; height: 250px; animation: initialFloat 2s ease-in-out infinite, initialScale 1.5s ease-in-out infinite; } .initial-path { fill: url(#initial-gradient); filter: url(#initial-glow); stroke: #ffffff; stroke-width: 2; animation: pathPulse 1.5s ease-in-out infinite; } /* Loading dots animation */ .initial-loading-text { text-align: center; } .loading-dots { display: flex; gap: 8px; justify-content: center; } .loading-dots span { width: 12px; height: 12px; background: #ff0000; border-radius: 50%; animation: dotBounce 1.4s ease-in-out infinite; } .loading-dots span:nth-child(1) { animation-delay: 0s; } .loading-dots span:nth-child(2) { animation-delay: 0.2s; } .loading-dots span:nth-child(3) { animation-delay: 0.4s; } /* Animations */ @keyframes initialFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-30px); } } @keyframes initialScale { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } } @keyframes pathPulse { 0%, 100% { opacity: 1; stroke-width: 2; } 50% { opacity: 0.7; stroke-width: 3; } } @keyframes dotBounce { 0%, 80%, 100% { transform: scale(0); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } } /* Smooth scroll prevention */ body:has(.initial-loading:not(.fade-out)) { overflow: hidden; }