|
|
|
|
|
* { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
box-sizing: border-box; |
|
|
} |
|
|
|
|
|
:root { |
|
|
--bg-primary: #0a0e1a; |
|
|
--bg-secondary: #141824; |
|
|
--bg-card: #1a1f2e; |
|
|
--text-primary: #e8eaed; |
|
|
--text-secondary: #9aa0a8; |
|
|
--accent-blue: #3b82f6; |
|
|
--accent-cyan: #06b6d4; |
|
|
--accent-purple: #8b5cf6; |
|
|
--border-color: rgba(255, 255, 255, 0.1); |
|
|
--hover-bg: rgba(59, 130, 246, 0.1); |
|
|
--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3); |
|
|
--shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.5); |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; |
|
|
background: var(--bg-primary); |
|
|
color: var(--text-primary); |
|
|
line-height: 1.6; |
|
|
overflow-x: hidden; |
|
|
} |
|
|
|
|
|
|
|
|
.container { |
|
|
max-width: 1200px; |
|
|
margin: 0 auto; |
|
|
padding: 0 1.5rem; |
|
|
} |
|
|
|
|
|
|
|
|
.hero { |
|
|
padding: 5rem 0 4rem; |
|
|
text-align: center; |
|
|
position: relative; |
|
|
} |
|
|
|
|
|
.hero::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: -50%; |
|
|
left: 50%; |
|
|
transform: translateX(-50%); |
|
|
width: 800px; |
|
|
height: 800px; |
|
|
background: radial-gradient(circle, rgba(59, 130, 246, 0.15) 0%, transparent 70%); |
|
|
pointer-events: none; |
|
|
z-index: 0; |
|
|
} |
|
|
|
|
|
.hero-content { |
|
|
position: relative; |
|
|
z-index: 1; |
|
|
} |
|
|
|
|
|
.hero-icon { |
|
|
width: 120px; |
|
|
height: auto; |
|
|
margin: 0 auto 1.5rem; |
|
|
display: block; |
|
|
animation: float 3s ease-in-out infinite; |
|
|
} |
|
|
|
|
|
@keyframes float { |
|
|
0%, 100% { |
|
|
transform: translateY(0); |
|
|
} |
|
|
50% { |
|
|
transform: translateY(-10px); |
|
|
} |
|
|
} |
|
|
|
|
|
.hero-title { |
|
|
font-size: clamp(2.5rem, 6vw, 4rem); |
|
|
font-weight: 800; |
|
|
margin-bottom: 1.5rem; |
|
|
letter-spacing: -0.02em; |
|
|
} |
|
|
|
|
|
.gradient-text { |
|
|
background: linear-gradient(135deg, var(--accent-blue) 0%, var(--accent-cyan) 50%, var(--accent-purple) 100%); |
|
|
-webkit-background-clip: text; |
|
|
-webkit-text-fill-color: transparent; |
|
|
background-clip: text; |
|
|
animation: gradient-shift 8s ease infinite; |
|
|
} |
|
|
|
|
|
@keyframes gradient-shift { |
|
|
0%, 100% { |
|
|
background-position: 0% 50%; |
|
|
} |
|
|
50% { |
|
|
background-position: 100% 50%; |
|
|
} |
|
|
} |
|
|
|
|
|
.hero-description { |
|
|
font-size: clamp(1.1rem, 2vw, 1.35rem); |
|
|
color: var(--text-secondary); |
|
|
max-width: 700px; |
|
|
margin: 0 auto 2rem; |
|
|
line-height: 1.7; |
|
|
} |
|
|
|
|
|
.hero-badges { |
|
|
display: flex; |
|
|
gap: 1rem; |
|
|
justify-content: center; |
|
|
flex-wrap: wrap; |
|
|
} |
|
|
|
|
|
.badge { |
|
|
padding: 0.5rem 1.25rem; |
|
|
background: var(--bg-card); |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 2rem; |
|
|
font-size: 0.9rem; |
|
|
font-weight: 500; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.badge:hover { |
|
|
border-color: var(--accent-blue); |
|
|
background: var(--hover-bg); |
|
|
transform: translateY(-2px); |
|
|
} |
|
|
|
|
|
|
|
|
.main-content { |
|
|
padding: 2rem 0; |
|
|
} |
|
|
|
|
|
.intro-section { |
|
|
background: var(--bg-secondary); |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 1rem; |
|
|
padding: 2.5rem; |
|
|
margin-bottom: 3rem; |
|
|
box-shadow: var(--shadow-sm); |
|
|
} |
|
|
|
|
|
.intro-section h2 { |
|
|
font-size: 1.75rem; |
|
|
margin-bottom: 1rem; |
|
|
color: var(--text-primary); |
|
|
} |
|
|
|
|
|
.intro-section p { |
|
|
color: var(--text-secondary); |
|
|
margin-bottom: 1rem; |
|
|
font-size: 1.05rem; |
|
|
} |
|
|
|
|
|
.cta-text { |
|
|
color: var(--accent-cyan) !important; |
|
|
font-weight: 600; |
|
|
margin-bottom: 0 !important; |
|
|
} |
|
|
|
|
|
|
|
|
.apps-section { |
|
|
margin-bottom: 3rem; |
|
|
} |
|
|
|
|
|
.section-title { |
|
|
font-size: 2rem; |
|
|
margin-bottom: 2rem; |
|
|
text-align: center; |
|
|
position: relative; |
|
|
display: inline-block; |
|
|
width: 100%; |
|
|
} |
|
|
|
|
|
.section-title::after { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
bottom: -0.5rem; |
|
|
left: 50%; |
|
|
transform: translateX(-50%); |
|
|
width: 80px; |
|
|
height: 3px; |
|
|
background: linear-gradient(90deg, var(--accent-blue), var(--accent-cyan)); |
|
|
border-radius: 2px; |
|
|
} |
|
|
|
|
|
.apps-grid { |
|
|
display: grid; |
|
|
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); |
|
|
gap: 2rem; |
|
|
} |
|
|
|
|
|
|
|
|
.app-card { |
|
|
background: var(--bg-card); |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 1rem; |
|
|
padding: 2rem; |
|
|
transition: all 0.3s ease; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
box-shadow: var(--shadow-sm); |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
.app-card::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: 0; |
|
|
right: 0; |
|
|
height: 3px; |
|
|
background: linear-gradient(90deg, var(--accent-blue), var(--accent-cyan)); |
|
|
opacity: 0; |
|
|
transition: opacity 0.3s ease; |
|
|
} |
|
|
|
|
|
.app-card:hover { |
|
|
border-color: var(--accent-blue); |
|
|
transform: translateY(-5px); |
|
|
box-shadow: var(--shadow-lg); |
|
|
} |
|
|
|
|
|
.app-card:hover::before { |
|
|
opacity: 1; |
|
|
} |
|
|
|
|
|
.card-header { |
|
|
margin-bottom: 1rem; |
|
|
} |
|
|
|
|
|
.card-title { |
|
|
font-size: 1.5rem; |
|
|
margin-bottom: 0.75rem; |
|
|
color: var(--text-primary); |
|
|
} |
|
|
|
|
|
.author-badge { |
|
|
display: inline-block; |
|
|
padding: 0.25rem 0.75rem; |
|
|
background: rgba(59, 130, 246, 0.2); |
|
|
color: var(--accent-cyan); |
|
|
border-radius: 0.5rem; |
|
|
font-size: 0.85rem; |
|
|
font-weight: 500; |
|
|
} |
|
|
|
|
|
.card-description { |
|
|
color: var(--text-secondary); |
|
|
margin-bottom: 1.5rem; |
|
|
flex-grow: 1; |
|
|
line-height: 1.6; |
|
|
} |
|
|
|
|
|
.card-footer { |
|
|
margin-top: auto; |
|
|
} |
|
|
|
|
|
.card-link { |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
gap: 0.5rem; |
|
|
padding: 0.75rem 1.5rem; |
|
|
background: linear-gradient(135deg, var(--accent-blue), var(--accent-cyan)); |
|
|
color: white; |
|
|
text-decoration: none; |
|
|
border-radius: 0.5rem; |
|
|
font-weight: 600; |
|
|
transition: all 0.3s ease; |
|
|
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); |
|
|
} |
|
|
|
|
|
.card-link:hover { |
|
|
transform: translateX(3px); |
|
|
box-shadow: 0 6px 20px rgba(59, 130, 246, 0.5); |
|
|
} |
|
|
|
|
|
.icon { |
|
|
width: 20px; |
|
|
height: 20px; |
|
|
} |
|
|
|
|
|
.browse-link { |
|
|
display: inline-block; |
|
|
color: #5287F2; |
|
|
font-size: 1.125rem; |
|
|
font-weight: 600; |
|
|
text-decoration: none; |
|
|
padding: 0.75rem 1.5rem; |
|
|
border-radius: 8px; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.browse-link:hover { |
|
|
transform: translateX(4px); |
|
|
} |
|
|
|
|
|
|
|
|
.contribute-section { |
|
|
margin-bottom: 3rem; |
|
|
} |
|
|
|
|
|
.contribute-card { |
|
|
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1), rgba(6, 182, 212, 0.1)); |
|
|
border: 1px solid var(--accent-blue); |
|
|
border-radius: 1rem; |
|
|
padding: 3rem; |
|
|
text-align: center; |
|
|
box-shadow: var(--shadow-sm); |
|
|
} |
|
|
|
|
|
.contribute-card h2 { |
|
|
font-size: 2rem; |
|
|
margin-bottom: 1rem; |
|
|
} |
|
|
|
|
|
.contribute-card p { |
|
|
color: var(--text-secondary); |
|
|
margin-bottom: 2rem; |
|
|
font-size: 1.1rem; |
|
|
max-width: 600px; |
|
|
margin-left: auto; |
|
|
margin-right: auto; |
|
|
} |
|
|
|
|
|
.contribute-button { |
|
|
display: inline-block; |
|
|
padding: 1rem 2.5rem; |
|
|
background: linear-gradient(135deg, var(--accent-blue), var(--accent-cyan)); |
|
|
color: white; |
|
|
text-decoration: none; |
|
|
border-radius: 0.5rem; |
|
|
font-weight: 700; |
|
|
font-size: 1.1rem; |
|
|
transition: all 0.3s ease; |
|
|
box-shadow: 0 4px 20px rgba(59, 130, 246, 0.4); |
|
|
} |
|
|
|
|
|
.contribute-button:hover { |
|
|
transform: translateY(-3px); |
|
|
box-shadow: 0 8px 30px rgba(59, 130, 246, 0.6); |
|
|
} |
|
|
|
|
|
|
|
|
.footer { |
|
|
text-align: center; |
|
|
padding: 3rem 0 2rem; |
|
|
color: var(--text-secondary); |
|
|
border-top: 1px solid var(--border-color); |
|
|
margin-top: 4rem; |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
.hero { |
|
|
padding: 3rem 0 2rem; |
|
|
} |
|
|
|
|
|
.intro-section, |
|
|
.contribute-card { |
|
|
padding: 1.5rem; |
|
|
} |
|
|
|
|
|
.app-card { |
|
|
padding: 1.5rem; |
|
|
} |
|
|
|
|
|
.apps-grid { |
|
|
grid-template-columns: 1fr; |
|
|
gap: 1.5rem; |
|
|
} |
|
|
|
|
|
.section-title { |
|
|
font-size: 1.75rem; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes fadeInUp { |
|
|
from { |
|
|
opacity: 0; |
|
|
transform: translateY(30px); |
|
|
} |
|
|
to { |
|
|
opacity: 1; |
|
|
transform: translateY(0); |
|
|
} |
|
|
} |
|
|
|
|
|
.app-card, |
|
|
.intro-section, |
|
|
.contribute-card { |
|
|
animation: fadeInUp 0.6s ease-out; |
|
|
animation-fill-mode: both; |
|
|
} |
|
|
|
|
|
.app-card:nth-child(1) { |
|
|
animation-delay: 0.1s; |
|
|
} |
|
|
|
|
|
.app-card:nth-child(2) { |
|
|
animation-delay: 0.2s; |
|
|
} |
|
|
|
|
|
.app-card:nth-child(3) { |
|
|
animation-delay: 0.3s; |
|
|
} |