LAUNCHING SOON.

Days
Hours
Minutes
Seconds
/* styles.css */ @font-face { font-family: 'Rostex'; src: url('Rostex-Regular.otf') format('opentype'); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Rostex', sans-serif; background: black; color: white; overflow: hidden; } canvas { position: fixed; top: 0; left: 0; z-index: 0; } .container { position: relative; z-index: 1; height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; opacity: 0; animation: fadeIn 2s ease forwards; } @keyframes fadeIn { to { opacity: 1; } } /* Typing Text */ h1 { font-size: 2.5rem; letter-spacing: 4px; margin-bottom: 20px; color: white !important; -webkit-text-fill-color: white !important; background: none !important; text-shadow: 0 0 10px rgba(255,255,255,0.8), 0 0 20px rgba(255,255,255,0.6), 0 0 40px rgba(255,255,255,0.4); animation: glowPulse 2.5s ease-in-out infinite alternate; } @keyframes glowPulse { from { text-shadow: 0 0 5px rgba(255,255,255,0.6), 0 0 10px rgba(255,255,255,0.5), 0 0 20px rgba(255,255,255,0.3); } to { text-shadow: 0 0 15px rgba(255,255,255,1), 0 0 30px rgba(255,255,255,0.8), 0 0 60px rgba(255,255,255,0.6); } } /* Cursor effect */ h1::after { content: '|'; margin-left: 5px; animation: blink 1s infinite; } @keyframes blink { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0; } } #countdown { font-size: 2rem; display: flex; gap: 20px; } .time { display: flex; flex-direction: column; } .number { font-size: 2.5rem; } .label { font-size: 0.8rem; opacity: 0.7; } /* NOTE: Typing animation requires JS below: const textElement = document.querySelector('h1'); const phrases = [ "Launching soon.", "Victory stands like granite." ]; let index = 0; let charIndex = 0; let currentText = ''; let isDeleting = false; function typeEffect() { const fullText = phrases[index]; if (isDeleting) { currentText = fullText.substring(0, charIndex--); } else { currentText = fullText.substring(0, charIndex++); } textElement.textContent = currentText; let speed = isDeleting ? 50 : 100; if (!isDeleting && charIndex === fullText.length) { speed = 7000; // wait 7 seconds isDeleting = true; } else if (isDeleting && charIndex === 0) { isDeleting = false; index = (index + 1) % phrases.length; } setTimeout(typeEffect, speed); } typeEffect(); */
0