|
|
| :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 { |
| 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-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); |
| } |
|
|