/* ========================================= NEXUS OS // ESTILOS ULTRA-ROBUSTOS ========================================= */ @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@400;500;600;700&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; cursor: none !important; /* Forzamos cursor personalizado */ } body { background-color: #000; -webkit-font-smoothing: antialiased; } /* Custom Scrollbar Cyberpunk */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #010103; border-left: 1px solid #1a1a1a; } ::-webkit-scrollbar-thumb { background: #00e5ff; } ::-webkit-scrollbar-thumb:hover { background: #ff0055; } /* Selección de texto */ ::selection { background: #ff0055; color: #fff; } /* ========================================= EFECTOS DE PANTALLA (CRT, SCANLINES, VIGNETTE) ========================================= */ .scanlines { background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0) 50%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.2)); background-size: 100% 4px; opacity: 0.15; } .vignette { background: radial-gradient(circle at center, transparent 40%, #000 120%); } /* ========================================= CONTENEDORES GLASSMORPHISM ========================================= */ .glass-container { background: rgba(10, 12, 16, 0.6); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5); } .panel-glow { box-shadow: 0 0 20px rgba(0, 229, 255, 0.1), inset 0 0 20px rgba(0, 229, 255, 0.05); } .text-glow-pink { text-shadow: 0 0 10px rgba(255, 0, 85, 0.5); } /* ========================================= BOTONES E INTERFACES ========================================= */ .btn-cyber { border-width: 1px; position: relative; overflow: hidden; z-index: 1; } .btn-cyber::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent); transition: left 0.5s ease; z-index: -1; } .btn-cyber:hover::before { left: 100%; } /* Utilidades de perspectiva para JS */ .perspective-1500 { perspective: 1500px; } /* ========================================= EFECTO GLITCH TEXT CSS ========================================= */ .glitch-text { position: relative; } .glitch-text::before, .glitch-text::after { content: attr(data-text); position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent; } .glitch-text::before { left: 2px; text-shadow: -2px 0 #ff0055; clip: rect(24px, 550px, 90px, 0); animation: glitch-anim-2 3s infinite linear alternate-reverse; } .glitch-text::after { left: -2px; text-shadow: -2px 0 #00e5ff; clip: rect(85px, 550px, 140px, 0); animation: glitch-anim 2.5s infinite linear alternate-reverse; } @keyframes glitch-anim { 0% { clip: rect(10px, 9999px, 44px, 0); } 20% { clip: rect(85px, 9999px, 98px, 0); } 40% { clip: rect(32px, 9999px, 11px, 0); } 60% { clip: rect(76px, 9999px, 89px, 0); } 80% { clip: rect(23px, 9999px, 55px, 0); } 100% { clip: rect(98px, 9999px, 32px, 0); } } @keyframes glitch-anim-2 { 0% { clip: rect(29px, 9999px, 83px, 0); } 20% { clip: rect(54px, 9999px, 12px, 0); } 40% { clip: rect(88px, 9999px, 66px, 0); } 60% { clip: rect(14px, 9999px, 94px, 0); } 80% { clip: rect(72px, 9999px, 39px, 0); } 100% { clip: rect(41px, 9999px, 77px, 0); } }