body { margin: 0; padding: 0; background: #000; overflow: hidden; height: 100vh; display: flex; justify-content: center; align-items: center; position: relative; width: 100%; } #vanta-bg { position: absolute; width: 100%; height: 100%; z-index: 1; } .content { position: absolute; z-index: 2; text-align: center; top: 50%; left: 50%; transform: translate(-50%, -50%); transition: all 1s ease-in-out; width: 80%; max-width: 600px; } .content.moved { top: 5%; transform: translate(-50%, 0); } .center-image { width: 100%; height: auto; max-width: 70%; max-height: 80vh; display: block; margin: 0 auto; transition: all 1s ease-in-out; } .content.moved .center-image { max-height: 30vh; } .loader { position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); z-index: 2; width: 5vw; height: 5vw; min-width: 30px; min-height: 30px; border-radius: 50%; background: transparent; box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); opacity: 1; transition: opacity 0.5s ease; } .loader.hidden { opacity: 0; pointer-events: none; } .loader::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0.5vw solid transparent; border-top: 0.5vw solid #00ccff; border-right: 0.5vw solid #00ccff; border-radius: 50%; animation: spin 1.5s linear infinite; } .loader::after { content: ''; position: absolute; top: 1vw; left: 1vw; width: 3vw; height: 3vw; min-width: 15px; min-height: 15px; border: 0.3vw solid transparent; border-bottom: 0.3vw solid #ffffff; border-radius: 50%; animation: spin 1s linear infinite reverse; } .button { position: absolute; z-index: 2; padding: 1.5rem 2.5rem; background: linear-gradient(to right, #ff6200, #ff8533); color: #ffffff; font-family: 'Arial', sans-serif; font-size: 1.2rem; font-weight: bold; text-transform: uppercase; border: none; border-radius: 50px; cursor: pointer; box-shadow: 0 0 15px rgba(255, 98, 0, 0.8), 0 0 30px rgba(255, 98, 0, 0.5); transition: all 0.3s ease; opacity: 0; transform: translateY(100px); width: 25%; max-width: 300px; min-width: 200px; text-align: center; } .button.visible { opacity: 1; transform: translateY(0); } .button:hover { background: linear-gradient(to right, #e65c00, #ff751a); box-shadow: 0 0 20px rgba(255, 98, 0, 1), 0 0 40px rgba(255, 98, 0, 0.7); transform: translateY(-2px); } #launch-button { bottom: 15%; left: 50%; transform: translateX(-50%) translateY(100px); } #launch-button.visible { transform: translateX(-50%) translateY(0); } #return-button { bottom: 20px; left: 20px; background: linear-gradient(to right, #e74c3c, #c0392b); padding: 1rem 1.5rem; font-size: 1rem; width: auto; min-width: 120px; display: flex; align-items: center; justify-content: center; gap: 8px; transform: translateY(100px); box-shadow: 0 0 15px rgba(231, 76, 60, 0.8), 0 0 30px rgba(231, 76, 60, 0.5); } #return-button.visible { transform: translateY(0); } #return-button:hover { background: linear-gradient(to right, #c0392b, #e74c3c); box-shadow: 0 0 20px rgba(231, 76, 60, 1), 0 0 40px rgba(231, 76, 60, 0.7); } .circle { position: absolute; z-index: 2; width: 40vw; height: 40vw; max-width: 350px; max-height: 350px; min-width: 200px; min-height: 200px; background: #000; border: 0.5vw solid #ff6200; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -20%); opacity: 0; transition: opacity 0.5s ease; display: flex; justify-content: center; align-items: center; color: #fff; font-family: 'Arial', sans-serif; font-size: 2.5rem; font-weight: bold; text-align: center; } .circle.default-text { font-size: 1rem; font-weight: normal; padding: 1rem; } .circle.visible { opacity: 1; } .error-message { position: absolute; z-index: 3; top: 5%; left: 50%; transform: translateX(-50%); background: #000; border: 0.2vw solid #ff6200; color: #fff; font-family: 'Arial', sans-serif; font-size: 1.2rem; padding: 1rem 2rem; border-radius: 5px; display: flex; align-items: center; opacity: 0; transition: opacity 0.5s ease; width: 80%; max-width: 400px; } .error-message.visible { opacity: 1; } .error-message .icon { margin-right: 1rem; font-size: 1.5rem; } .error-message .time-remaining { font-weight: bold; font-style: italic; } .progress-container { position: absolute; z-index: 2; top: 30%; left: 50%; transform: translateX(-50%); width: 60%; max-width: 300px; text-align: center; opacity: 0; transition: opacity 0.5s ease; } .progress-container.visible { opacity: 1; } .progress-bar { width: 100%; height: 10px; background: #333; border-radius: 5px; overflow: hidden; } .progress-fill { height: 100%; background: #ff6200; width: 0%; transition: width 0.1s linear; } .progress-text { color: #fff; font-family: 'Arial', sans-serif; font-size: 1rem; margin-top: 5px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @media (max-width: 768px) { .content { width: 90%; max-width: 500px; } .center-image { max-height: 70vh; max-width: 70%; } .content.moved .center-image { max-height: 30vh; } .loader { width: 6vw; height: 6vw; min-width: 25px; min-height: 25px; } .loader::before { border-width: 0.4vw; } .loader::after { top: 0.8vw; left: 0.8vw; width: 4vw; height: 4vw; min-width: 12px; min-height: 12px; border-width: 0.25vw; } .button { padding: 1rem 2rem; font-size: 1rem; width: 40%; max-width: 250px; min-width: 150px; } #return-button { padding: 0.8rem 1.2rem; font-size: 0.9rem; min-width: 100px; } .circle { width: 40vw; height: 40vw; max-width: 280px; max-height: 280px; min-width: 160px; min-height: 160px; font-size: 2rem; } .circle.default-text { font-size: 0.9rem; padding: 0.8rem; } .error-message { font-size: 1rem; padding: 0.8rem 1.5rem; max-width: 350px; } .error-message .icon { font-size: 1.2rem; margin-right: 0.8rem; } .progress-container { top: 28%; width: 70%; max-width: 250px; } .progress-text { font-size: 0.9rem; } } @media (max-width: 480px) { .content { width: 95%; max-width: 400px; } .center-image { max-height: 60vh; max-width: 70%; } .content.moved .center-image { max-height: 30vh; } .loader { width: 8vw; height: 8vw; min-width: 20px; min-height: 20px; } .loader::before { border-width: 0.3vw; } .loader::after { top: 0.6vw; left: 0.6vw; width: 5vw; height: 5vw; min-width: 10px; min-height: 10px; border-width: 0.2vw; } .button { padding: 0.8rem 1.5rem; font-size: 0.9rem; width: 50%; max-width: 200px; min-width: 120px; } #return-button { padding: 0.6rem 1rem; font-size: 0.8rem; min-width: 90px; bottom: 10px; left: 10px; } .circle { width: 45vw; height: 45vw; max-width: 250px; max-height: 250px; min-width: 140px; min-height: 140px; font-size: 1.8rem; } .circle.default-text { font-size: 0.8rem; padding: 0.6rem; } .error-message { font-size: 0.9rem; padding: 0.6rem 1.2rem; max-width: 300px; } .error-message .icon { font-size: 1rem; margin-right: 0.6rem; } .progress-container { top: 38%; width: 80%; max-width: 200px; } .progress-text { font-size: 0.8rem; } }