:root { --bg-dark: #0a0b0e; --bg-darker: #050607; --text-primary: #f0f0f0; --text-secondary: #a0a0a0; --accent-color: #7c3aed; --accent-secondary: #06b6d4; --accent-gradient: linear-gradient(135deg, var(--accent-color), var(--accent-secondary)); --card-bg: rgba(255, 255, 255, 0.03); --card-border: rgba(255, 255, 255, 0.05); --success-color: #10B981; --error-color: #EF4444; --warning-color: #F59E0B; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', 'Space Grotesk', sans-serif; background: radial-gradient(circle at top right, var(--bg-dark) 0%, var(--bg-darker) 100%); color: var(--text-primary); line-height: 1.7; min-height: 100vh; display: flex; flex-direction: column; position: relative; overflow-x: hidden; } #particles-js { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; } .background-overlay { position: fixed; inset: 0; background: radial-gradient(circle at 20% 20%, rgba(124, 58, 237, 0.15) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(6, 182, 212, 0.15) 0%, transparent 50%); pointer-events: none; z-index: 1; animation: pulseBackground 15s ease-in-out infinite alternate; } .noise-overlay { position: fixed; inset: 0; background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48ZmlsdGVyIGlkPSJhIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjc1IiBzdGl0Y2hUaWxlcz0ic3RpdGNoIi8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbHRlcj0idXJsKCNhKSIgb3BhY2l0eT0iLjA1Ii8+PC9zdmc+'); pointer-events: none; opacity: 0.4; z-index: 2; } .container { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 3rem 2rem; max-width: 1200px; margin: 0 auto; position: relative; z-index: 3; } .glassmorphic-card { background: var(--card-bg); border-radius: 24px; backdrop-filter: blur(20px); border: 1px solid var(--card-border); padding: 3rem; width: 100%; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25), 0 0 30px rgba(124, 58, 237, 0.1); position: relative; overflow: hidden; animation: cardFloat 6s ease-in-out infinite; } .glassmorphic-card::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.05), transparent ); animation: cardShine 8s infinite; } .content-wrapper { display: flex; flex-direction: column; align-items: center; gap: 2rem; width: 100%; animation: fadeIn 1s ease-out; } /* Modern Button Styles */ .btn { padding: 0.75rem 1.5rem; border-radius: 12px; border: none; background: var(--accent-gradient); color: white; font-weight: 600; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .btn:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(124, 58, 237, 0.2); } .btn::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 50%); transform: scale(0); transition: transform 0.5s ease-out; } .btn:hover::after { transform: scale(1); } /* Input Styles */ .input-group { position: relative; width: 100%; max-width: 400px; margin: 1rem 0; } .input { width: 100%; padding: 1rem; border: 1px solid var(--card-border); border-radius: 12px; background: rgba(255, 255, 255, 0.05); color: var(--text-primary); font-size: 1rem; transition: all 0.3s ease; } .input:focus { outline: none; border-color: var(--accent-color); box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1); } .input-label { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); transition: all 0.3s ease; pointer-events: none; } .input:focus + .input-label, .input:not(:placeholder-shown) + .input-label { top: 0; left: 0.8rem; font-size: 0.8rem; padding: 0 0.4rem; background: var(--bg-dark); } /* Toast Notifications */ .toast-container { position: fixed; top: 2rem; right: 2rem; z-index: 1000; } .toast { padding: 1rem 1.5rem; border-radius: 12px; background: var(--card-bg); backdrop-filter: blur(20px); border: 1px solid var(--card-border); color: var(--text-primary); margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; animation: toastSlideIn 0.3s ease-out; } .toast.success { border-color: var(--success-color); } .toast.error { border-color: var(--error-color); } .toast.warning { border-color: var(--warning-color); } /* Loading Spinner */ .spinner { width: 40px; height: 40px; border: 3px solid var(--card-border); border-top-color: var(--accent-color); border-radius: 50%; animation: spin 1s linear infinite; } /* Animations */ @keyframes cardFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } @keyframes cardShine { 0% { left: -100%; } 50%, 100% { left: 100%; } } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes spin { to { transform: rotate(360deg); } } @keyframes toastSlideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes pulseBackground { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } } /* Responsive Design */ @media (max-width: 768px) { .container { padding: 2rem 1rem; } .glassmorphic-card { padding: 2rem 1.5rem; } .toast-container { top: auto; bottom: 2rem; left: 1rem; right: 1rem; } }