:root { --primary: #8b5cf6; --primary-dark: #7c3aed; --secondary: #10b981; --accent: #ec4899; --dark: #0f172a; --light: #f8fafc; --tech-glow: 0 0 15px rgba(139, 92, 246, 0.7); --neon-glow: 0 0 20px rgba(236, 72, 153, 0.5); --gold: #FFD700; --platinum: #E5E4E2; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; color: var(--light); line-height: 1.6; min-height: 100vh; background: radial-gradient(circle at 10% 20%, rgba(139, 92, 246, 0.2) 0%, transparent 25%), radial-gradient(circle at 90% 80%, rgba(16, 185, 129, 0.2) 0%, transparent 25%), linear-gradient(to bottom right, #0f172a, #1e1b4b), linear-gradient(135deg, rgba(255, 215, 0, 0.03) 0%, transparent 10%, transparent 90%, rgba(229, 228, 226, 0.03) 100%); background-attachment: fixed; animation: gradientPulse 15s ease infinite alternate, subtleGlow 8s ease-in-out infinite alternate; } @keyframes subtleGlow { 0% { box-shadow: inset 0 0 50px rgba(255, 215, 0, 0.01); } 50% { box-shadow: inset 0 0 100px rgba(255, 215, 0, 0.03); } 100% { box-shadow: inset 0 0 50px rgba(229, 228, 226, 0.01); } } @keyframes gradientPulse { 0% { background: radial-gradient(circle at 10% 20%, rgba(139, 92, 246, 0.15) 0%, transparent 25%), radial-gradient(circle at 90% 80%, rgba(16, 185, 129, 0.15) 0%, transparent 25%), linear-gradient(to bottom right, #0f172a, #1e1b4b); } 100% { background: radial-gradient(circle at 15% 30%, rgba(139, 92, 246, 0.2) 0%, transparent 25%), radial-gradient(circle at 85% 70%, rgba(16, 185, 129, 0.2) 0%, transparent 25%), linear-gradient(to bottom right, #0f172a, #1e293b); } } h1, h2, h3, h4 { font-weight: 800; line-height: 1.2; margin-bottom: 1rem; letter-spacing: -0.025em; } h1 { font-size: 4.5rem; background: linear-gradient(90deg, var(--primary), var(--accent), var(--gold)); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: var(--tech-glow), var(--neon-glow), 0 0 10px rgba(255, 215, 0, 0.3); line-height: 1; margin-bottom: 1.5rem; position: relative; display: inline-block; } h1::after { content: ''; position: absolute; bottom: -10px; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--primary), var(--gold), var(--accent)); border-radius: 2px; animation: rainbowBorder 8s linear infinite; } @keyframes rainbowBorder { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } h2 { font-size: 2.5rem; color: var(--light); position: relative; display: inline-block; } h2::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 3px; } p { color: rgba(248, 250, 252, 0.8); font-size: 1.1rem; margin-bottom: 1.5rem; } a { color: var(--primary); text-decoration: none; transition: all 0.3s ease; } a:hover { color: var(--secondary); text-shadow: var(--tech-glow); } .card { background: rgba(15, 23, 42, 0.9); backdrop-filter: blur(16px) saturate(200%); border: 1px solid rgba(139, 92, 246, 0.4); border-radius: 24px; padding: 2.5rem; margin: 1.5rem 0; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), 0 0 20px rgba(139, 92, 246, 0.1) inset; position: relative; overflow: hidden; } .card::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(236, 72, 153, 0.1) 0%, transparent 70%); transform: rotate(45deg); transition: all 0.6s ease; opacity: 0; } .card:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 15px 40px rgba(139, 92, 246, 0.4); border-color: rgba(236, 72, 153, 0.5); cursor: pointer; } .course-footer a { box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .course-footer a:hover { box-shadow: 0 6px 8px rgba(139, 92, 246, 0.3); } .card:hover::before { opacity: 1; } .btn { display: inline-block; background: linear-gradient(90deg, var(--primary), var(--accent), var(--gold)); background-size: 200% 200%; color: white; padding: 1rem 2.5rem; border-radius: 50px; font-weight: 700; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); box-shadow: var(--tech-glow), var(--neon-glow), 0 0 15px rgba(255, 215, 0, 0.3); position: relative; overflow: hidden; border: none; animation: gradientShift 4s ease infinite; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; } .btn:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 10px 30px rgba(139, 92, 246, 0.6), 0 8px 25px rgba(236, 72, 153, 0.6); background: linear-gradient(90deg, var(--accent), var(--primary)); } .btn:hover::before { left: 100%; } .btn:active { transform: translateY(-1px) scale(1.02); } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.7), 0 0 0 0 rgba(236, 72, 153, 0.7); } 70% { box-shadow: 0 0 0 15px rgba(139, 92, 246, 0), 0 0 0 10px rgba(236, 72, 153, 0); } 100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0), 0 0 0 0 rgba(236, 72, 153, 0); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .floating { animation: float 6s ease-in-out infinite; } .tech-icon { font-size: 2rem; color: var(--primary); text-shadow: var(--tech-glow); transition: all 0.3s ease; } .tech-icon:hover { color: var(--secondary); transform: scale(1.1); } .glass-effect { background: rgba(15, 23, 42, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(99, 102, 241, 0.2); border-radius: 16px; } .code-bg { position: relative; overflow: hidden; } .code-bg::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: linear-gradient(rgba(139, 92, 246, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(139, 92, 246, 0.03) 1px, transparent 1px); background-size: 20px 20px; z-index: -1; } /* Particle effect */ .particle { position: absolute; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, var(--primary) 0%, transparent 70%); opacity: 0.6; animation: float 15s linear infinite; } @keyframes particleMove { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 100% { transform: translate(var(--tx), var(--ty)) rotate(360deg); opacity: 0; } } /* Glass morphism */ .glass-morph { background: rgba(15, 23, 42, 0.7); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(139, 92, 246, 0.3); border-radius: 24px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); }