/* RESET */ * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #000; overflow: hidden; } /* LOADER */ #loader { position: fixed; inset: 0; background: radial-gradient(circle at center, #0a0a0a, #000); display: flex; align-items: center; justify-content: center; z-index: 999999; transition: opacity 1s ease; } #loader.hidden { opacity: 0; pointer-events: none; } /* DASHBOARD */ .dashboard { width: 80vw; max-width: 900px; color: #fff; text-align: center; } /* TACHOMETER */ .tachometer { position: relative; width: 300px; height: 300px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.15); margin: 0 auto 40px; } .needle { position: absolute; width: 2px; height: 45%; background: #fff; top: 50%; left: 50%; transform-origin: bottom center; transform: translate(-50%, -100%) rotate(-120deg); transition: transform 1.2s cubic-bezier(.4,0,.2,1); } /* INDICATORS */ .indicators { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; } .light { width: 14px; height: 14px; border-radius: 50%; background: rgba(255,255,255,0.15); box-shadow: 0 0 10px rgba(255,255,255,0); transition: background 0.5s, box-shadow 0.5s, opacity 0.5s; opacity: 0; } .light.on { background: #fff; box-shadow: 0 0 12px rgba(255,255,255,0.8); opacity: 1; } .light.dim { opacity: 0.3; } /* PROGRESS */ .progress-container { width: 60%; height: 2px; background: rgba(255,255,255,0.15); margin: 0 auto; overflow: hidden; } .progress-bar { width: 0%; height: 100%; background: linear-gradient(90deg, #fff, #999); transition: width 0.3s ease; } /* MAIN CONTENT */ #content { opacity: 0; transition: opacity 1.5s ease; } #content.visible { opacity: 1; }