body.auth-page { display: block; align-items: unset; justify-content: unset; min-height: 100vh; background: var(--bg-primary); } body.auth-page .auth-container { max-width: none; width: 100%; padding: 0; } .landing-page { width: 100%; min-height: 100vh; overflow-x: hidden; } .landing-hero { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; padding: 2rem; background: radial-gradient(ellipse at 50% 30%, rgba(99,102,241,0.08) 0%, transparent 60%), radial-gradient(ellipse at 80% 80%, rgba(34,197,94,0.05) 0%, transparent 50%), var(--bg-primary); text-align: center; overflow: hidden; } .landing-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,0.15) 0%, transparent 100%), radial-gradient(1px 1px at 40% 70%, rgba(255,255,255,0.12) 0%, transparent 100%), radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.15) 0%, transparent 100%), radial-gradient(1px 1px at 80% 60%, rgba(255,255,255,0.12) 0%, transparent 100%), radial-gradient(1px 1px at 10% 80%, rgba(255,255,255,0.08) 0%, transparent 100%), radial-gradient(1px 1px at 90% 10%, rgba(255,255,255,0.08) 0%, transparent 100%); pointer-events: none; } .floating-elements { position: absolute; inset: 0; pointer-events: none; overflow: hidden; } .floating-elem { position: absolute; font-size: 1.4rem; opacity: 0.08; animation: floatAround 20s infinite ease-in-out; } .floating-elem:nth-child(1) { top: 15%; left: 10%; animation-delay: 0s; font-size: 2rem; } .floating-elem:nth-child(2) { top: 25%; right: 12%; animation-delay: -3s; } .floating-elem:nth-child(3) { top: 60%; left: 8%; animation-delay: -7s; font-size: 1.8rem; } .floating-elem:nth-child(4) { top: 70%; right: 8%; animation-delay: -11s; } .floating-elem:nth-child(5) { top: 40%; left: 5%; animation-delay: -5s; font-size: 1.2rem; } .floating-elem:nth-child(6) { top: 50%; right: 5%; animation-delay: -9s; font-size: 1.6rem; } .floating-elem:nth-child(7) { top: 10%; left: 50%; animation-delay: -13s; font-size: 1rem; } .floating-elem:nth-child(8) { top: 85%; left: 50%; animation-delay: -15s; } @keyframes floatAround { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-30px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(20px) rotate(-3deg); } } .hero-icon-wrapper { position: relative; margin-bottom: 2rem; animation: heroIconEnter 1s ease-out; } .hero-server-icon { width: 80px; height: 80px; border-radius: 20px; background: linear-gradient(135deg, rgba(99,102,241,0.2), rgba(99,102,241,0.05)); border: 1px solid rgba(99,102,241,0.3); display: flex; align-items: center; justify-content: center; font-size: 2.4rem; color: var(--accent); position: relative; margin: 0 auto; } .hero-server-icon::before { content: ''; position: absolute; inset: -4px; border-radius: 24px; background: linear-gradient(135deg, var(--accent), var(--purple)); opacity: 0.15; z-index: -1; animation: glowPulse 3s infinite ease-in-out; } @keyframes glowPulse { 0%, 100% { opacity: 0.15; transform: scale(1); } 50% { opacity: 0.3; transform: scale(1.05); } } @keyframes heroIconEnter { from { opacity: 0; transform: translateY(-30px) scale(0.8); } to { opacity: 1; transform: translateY(0) scale(1); } } .hero-title { font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 800; line-height: 1.15; margin-bottom: 0.75rem; animation: fadeSlideUp 0.8s ease-out 0.2s both; } .hero-title .gradient-text { background: linear-gradient(135deg, var(--accent), var(--purple)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero-subtitle { font-size: clamp(1rem, 2vw, 1.2rem); color: var(--text-muted); max-width: 600px; margin: 0 auto 2rem; line-height: 1.7; animation: fadeSlideUp 0.8s ease-out 0.35s both; } .hero-cta { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; animation: fadeSlideUp 0.8s ease-out 0.5s both; } .hero-cta .btn { padding: 0.85rem 2.2rem; font-size: 1rem; border-radius: var(--radius); font-weight: 600; transition: all 0.3s ease; cursor: pointer; border: none; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; } .hero-cta .btn-primary-custom { background: linear-gradient(135deg, var(--accent), #818cf8); color: #fff; box-shadow: 0 4px 20px rgba(99,102,241,0.3); } .hero-cta .btn-primary-custom:hover { transform: translateY(-2px); box-shadow: 0 6px 28px rgba(99,102,241,0.4); } .hero-cta .btn-secondary-custom { background: var(--bg-tertiary); color: var(--text-primary); border: 1px solid var(--border-color); } .hero-cta .btn-secondary-custom:hover { background: var(--bg-hover); border-color: var(--accent); transform: translateY(-2px); } .hero-terminal { margin-top: 3rem; max-width: 560px; width: 100%; background: rgba(0,0,0,0.4); border: 1px solid var(--border-color); border-radius: var(--radius-lg); overflow: hidden; animation: fadeSlideUp 0.8s ease-out 0.65s both; } .terminal-bar { display: flex; align-items: center; gap: 0.5rem; padding: 0.65rem 1rem; background: rgba(255,255,255,0.03); border-bottom: 1px solid var(--border-color); } .terminal-dot { width: 10px; height: 10px; border-radius: 50%; } .terminal-dot.red { background: #ff5f57; } .terminal-dot.yellow { background: #ffbd2e; } .terminal-dot.green { background: #28c840; } .terminal-title { font-size: 0.75rem; color: var(--text-muted); margin-left: 0.5rem; font-family: var(--font-mono); } .terminal-body-landing { padding: 1.25rem 1.25rem 1.5rem; text-align: left; font-family: var(--font-mono); font-size: 0.82rem; line-height: 1.6; color: #c9d1d9; } .terminal-line-landing { opacity: 0; animation: terminalFadeIn 0.3s ease-out forwards; } .terminal-line-landing .prompt { color: var(--success); } .terminal-line-landing .cmd { color: #e1e4ed; } .terminal-line-landing .output-success { color: var(--success); } .terminal-line-landing .output-info { color: var(--info); } .terminal-line-landing .output-muted { color: var(--text-muted); } .terminal-line-landing .blinking-cursor { display: inline-block; width: 8px; height: 14px; background: var(--accent); margin-left: 2px; animation: blink 1s step-end infinite; vertical-align: text-bottom; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } @keyframes terminalFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeSlideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .scroll-indicator { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; color: var(--text-muted); font-size: 0.75rem; animation: fadeSlideUp 1s ease-out 1.5s both; } .scroll-indicator .mouse { width: 24px; height: 38px; border: 2px solid var(--text-muted); border-radius: 12px; position: relative; opacity: 0.5; } .scroll-indicator .mouse::after { content: ''; position: absolute; top: 6px; left: 50%; transform: translateX(-50%); width: 3px; height: 10px; background: var(--text-muted); border-radius: 2px; animation: scrollWheel 1.5s infinite; } @keyframes scrollWheel { 0% { opacity: 1; transform: translateX(-50%) translateY(0); } 100% { opacity: 0; transform: translateX(-50%) translateY(10px); } } .features-section { padding: 5rem 2rem; max-width: 1100px; margin: 0 auto; } .features-header { text-align: center; margin-bottom: 3.5rem; } .features-header h2 { font-size: 2rem; font-weight: 700; margin-bottom: 0.75rem; } .features-header p { color: var(--text-muted); font-size: 1.05rem; max-width: 500px; margin: 0 auto; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.25rem; } .feature-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 1.75rem; transition: all 0.4s ease-out; } .feature-card:hover { border-color: var(--accent); transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,0,0,0.2); } .feature-card.visible:hover { transform: translateY(-3px); } .feature-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: 1.25rem; } .feature-icon.blue { background: rgba(59,130,246,0.15); color: var(--info); } .feature-icon.green { background: rgba(34,197,94,0.15); color: var(--success); } .feature-icon.purple { background: rgba(139,92,246,0.15); color: var(--purple); } .feature-icon.orange { background: rgba(245,158,11,0.15); color: var(--warning); } .feature-icon.red { background: rgba(239,68,68,0.15); color: var(--danger); } .feature-icon.teal { background: rgba(20,184,166,0.15); color: #14b8a6; } .feature-card h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: 0.5rem; } .feature-card p { color: var(--text-muted); font-size: 0.9rem; line-height: 1.6; } .stats-section { padding: 4rem 2rem 5rem; text-align: center; } .stats-grid { display: flex; justify-content: center; gap: 3rem; flex-wrap: wrap; max-width: 800px; margin: 0 auto; } .stat-item { opacity: 1; transform: translateY(0); transition: all 0.5s ease-out; } .stat-number { font-size: 2.8rem; font-weight: 800; background: linear-gradient(135deg, var(--accent), var(--purple)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .stat-label { color: var(--text-muted); font-size: 0.9rem; margin-top: 0.25rem; } .landing-footer { text-align: center; padding: 2rem; border-top: 1px solid var(--border-color); color: var(--text-muted); font-size: 0.82rem; } .landing-footer a { color: var(--text-muted); text-decoration: none; } .landing-footer a:hover { color: var(--accent); } .footer-links { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 0.75rem; } @media (max-width: 640px) { .hero-title { font-size: 1.8rem; } .features-grid { grid-template-columns: 1fr; } .stats-grid { gap: 2rem; } .stats-grid .stat-item { min-width: 120px; } .scroll-indicator { display: none; } .landing-hero { padding-bottom: 5rem; } }