.main-container { display: flex; height: 100vh; } .left-panel { width: 61.8%; height: 100%; display: flex; flex-direction: column; justify-content: center; position: relative; } .right-panel { width: 38.2%; height: 100%; display: flex; align-items: center; justify-content: center; background: rgb(12 7 26); backdrop-filter: blur(10px); transition: opacity 0.3s ease, visibility 0.3s ease; } .auth-container { padding: 2.5rem; border-radius: 1.5rem; max-width: 400px; width: 100%; position: relative; z-index: 10; background: rgba(255, 255, 255, 0.05); box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2), 0 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 0 20px 0 rgba(255, 255, 255, 0.05) inset; backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); transform-style: preserve-3d; perspective: 1000px; animation: container-appear 0.6s ease-out; } @keyframes container-appear { 0% { opacity: 0; transform: translateY(20px) scale(0.95); } 100% { opacity: 1; transform: translateY(0) scale(1); } } .auth-container::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 1.5rem; background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 50%, rgba(255, 255, 255, 0) 100%); pointer-events: none; } .auth-container::after { content: ''; position: absolute; top: -1px; left: -1px; right: -1px; bottom: -1px; border-radius: 1.5rem; background: linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 60%); pointer-events: none; z-index: -1; } .auth-header { margin-bottom: 2rem; text-align: center; } .auth-header h2 { font-size: 2rem; font-weight: 600; margin-bottom: 0.5rem; background: linear-gradient(135deg, #fff, #a8a8a8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .auth-header p { color: rgba(255, 255, 255, 0.6); font-size: 0.9rem; } .form-label { display: block; margin-bottom: 0.5rem; color: rgba(255, 255, 255, 0.8); font-size: 0.9rem; } .form-control { width: 100%; padding: 0.75rem 1rem; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0.5rem; color: white; transition: all 0.3s ease; } .form-control:focus { outline: none; border-color: rgba(255, 255, 255, 0.3); background: rgba(255, 255, 255, 0.1); box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.05); } .form-control::placeholder { color: rgba(255, 255, 255, 0.3); } .btn-primary { background: linear-gradient(135deg, #6366f1, #4f46e5); border: none; padding: 0.75rem; border-radius: 0.5rem; font-weight: 500; color: white; transition: all 0.3s ease; } .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3); } .auth-link { color: #6366f1; text-decoration: none; transition: color 0.3s ease; } .auth-link:hover { color: #818cf8; } .mb-3 { margin-bottom: 1.5rem !important; } .text-center { text-align: center !important; } #vanta-background { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; } /* body { background-color: transparent !important; } */ .invisible { opacity: 0; visibility: hidden; } .fade-in { opacity: 1; visibility: visible; animation: fadeIn 0.8s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } .login-logo { position: fixed; top: 2rem; left: 2rem; z-index: 100; display: flex; align-items: center; gap: 0.5rem; font-size: 1.8rem; font-weight: 700; letter-spacing: 0.1em; animation: logoAppear 1s ease-out forwards; } .logo-text { color: white; text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); transition: all 0.3s ease; display: inline-block; } .logo-text:hover { transform: translateY(-2px) scale(1.1); text-shadow: 0 0 20px rgba(255, 255, 255, 0.8); } .logo-heart { display: inline-block; font-size: 1.5rem; animation: heartbeat 1.5s ease-in-out infinite; transform-origin: center; margin: 0 0.2rem; } @keyframes heartbeat { 0% { transform: scale(1); } 25% { transform: scale(1.1); } 40% { transform: scale(1); } 60% { transform: scale(1.1); } 100% { transform: scale(1); } } @keyframes logoAppear { 0% { opacity: 0; transform: translateY(-20px); } 100% { opacity: 1; transform: translateY(0); } } /* 为每个字母添加独特的悬停效果 */ .logo-text:nth-child(1):hover { color: #64ffda; } .logo-text:nth-child(3):hover { color: #bd93f9; } .logo-text:nth-child(4):hover { color: #ff79c6; } /* 添加玻璃态效果 */ .login-logo::before { content: ''; position: absolute; top: -10px; left: -10px; right: -10px; bottom: -10px; background: rgba(255, 255, 255, 0.03); border-radius: 10px; backdrop-filter: blur(5px); z-index: -1; opacity: 0; transition: opacity 0.3s ease; } .login-logo:hover::before { opacity: 1; }