.container {
min-height: 100vh;
background: linear-gradient(135deg, #111827 0%, #1f2937 100%);
transition: all 0.3s ease;
}
.themeToggle {
position: fixed;
top: 1rem;
right: 1rem;
z-index: 50;
}
.toggleButton {
padding: 0.75rem;
border-radius: 9999px;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
transition: all 0.2s ease;
transform: scale(1);
background-color: #eab308;
color: #713f12;
border: none;
cursor: pointer;
font-size: 1.25rem;
}
.toggleButton:hover {
transform: scale(1.1);
background-color: #facc15;
}
.heroSection {
position: relative;
overflow: hidden;
}
.backgroundPattern {
position: absolute;
inset: 0;
opacity: 0.05;
background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.heroContent {
position: relative;
max-width: 80rem;
margin: 0 auto;
padding: 0 1rem;
padding-top: 5rem;
padding-bottom: 4rem;
}
@media (min-width: 640px) {
.heroContent {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
}
@media (min-width: 1024px) {
.heroContent {
padding-left: 2rem;
padding-right: 2rem;
}
}
.heroText {
text-align: center;
}
.heroHeading {
margin-bottom: 2rem;
}
.badge {
display: inline-flex;
align-items: center;
padding: 0.5rem 1rem;
border-radius: 9999px;
background-color: #14532d;
color: #bbf7d0;
font-size: 0.875rem;
font-weight: 500;
margin-bottom: 1.5rem;
}
.title {
font-size: 3rem;
font-weight: 700;
margin-bottom: 1.5rem;
background: linear-gradient(135deg, #ffffff 0%, #d1d5db 100%);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
}
@media (min-width: 768px) {
.title {
font-size: 4.5rem;
}
}
.subtitle {
font-size: 1.25rem;
color: #d1d5db;
margin-bottom: 2rem;
max-width: 48rem;
margin-left: auto;
margin-right: auto;
}
@media (min-width: 768px) {
.subtitle {
font-size: 1.5rem;
}
}
.terminalContainer {
max-width: 32rem;
margin: 0 auto 3rem auto;
}
.terminal {
background-color: #111827;
border-radius: 0.5rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
overflow: hidden;
transform: scale(1);
transition: transform 0.3s ease;
}
.terminal:hover {
transform: scale(1.05);
}
.terminalHeader {
display: flex;
align-items: center;
padding: 0.75rem 1rem;
background-color: #1f2937;
}
.terminalButtons {
display: flex;
gap: 0.5rem;
}
.terminalButtonRed,
.terminalButtonYellow,
.terminalButtonGreen {
width: 0.75rem;
height: 0.75rem;
border-radius: 50%;
}
.terminalButtonRed {
background-color: #ef4444;
}
.terminalButtonYellow {
background-color: #eab308;
}
.terminalButtonGreen {
background-color: #22c55e;
}
.terminalTitle {
flex: 1;
text-align: center;
color: #9ca3af;
font-size: 0.875rem;
}
.terminalContent {
padding: 1.5rem;
}
.terminalLine {
display: flex;
align-items: center;
}
.terminalPrompt {
color: #22c55e;
margin-right: 0.5rem;
}
.terminalText {
color: #ffffff;
font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Courier New', monospace;
}
.terminalCursor {
display: inline-block;
width: 0.5rem;
height: 1.25rem;
background-color: #22c55e;
margin-left: 0.25rem;
animation: pulse 1s infinite;
}
@keyframes pulse {
0%,
50% {
opacity: 1;
}
51%,
100% {
opacity: 0;
}
}
.ctaButtons {
display: flex;
flex-direction: column;
gap: 1rem;
justify-content: center;
align-items: center;
margin-bottom: 4rem;
}
@media (min-width: 640px) {
.ctaButtons {
flex-direction: row;
}
}
.primaryButton {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 1rem 2rem;
background-color: #16a34a;
color: #ffffff;
font-weight: 600;
border-radius: 0.5rem;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
transform: scale(1);
transition: all 0.2s ease;
border: none;
cursor: pointer;
}
.primaryButton:hover {
background-color: #15803d;
transform: scale(1.05);
}
.secondaryButton {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 1rem 2rem;
border: 2px solid #4b5563;
color: #d1d5db;
font-weight: 600;
border-radius: 0.5rem;
transform: scale(1);
transition: all 0.2s ease;
background: transparent;
cursor: pointer;
}
.secondaryButton:hover {
border-color: #22c55e;
transform: scale(1.05);
}
.installationSection {
background-color: #1f2937;
padding: 4rem 0;
}
.sectionContent {
max-width: 64rem;
margin: 0 auto;
padding: 0 1rem;
text-align: center;
}
@media (min-width: 640px) {
.sectionContent {
padding: 0 1.5rem;
}
}
@media (min-width: 1024px) {
.sectionContent {
padding: 0 2rem;
}
}
.sectionTitle {
font-size: 1.875rem;
font-weight: 700;
color: #ffffff;
margin-bottom: 2rem;
}
.installationGrid {
display: grid;
gap: 2rem;
}
@media (min-width: 768px) {
.installationGrid {
grid-template-columns: repeat(2, 1fr);
}
}
.installationCard {
background-color: #111827;
border: 1px solid #374151;
border-radius: 0.5rem;
padding: 1.5rem;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.cardTitle {
font-size: 1.125rem;
font-weight: 600;
color: #ffffff;
margin-bottom: 1rem;
}
.codeBlock {
background-color: #111827;
border-radius: 0.5rem;
padding: 1rem;
}
.code {
color: #22c55e;
font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Courier New', monospace;
}
.featuresSection {
padding: 5rem 0;
}
.featuresHeader {
text-align: center;
margin-bottom: 4rem;
}
.featuresTitle {
font-size: 2.25rem;
font-weight: 700;
color: #ffffff;
margin-bottom: 1rem;
}
.featuresSubtitle {
font-size: 1.25rem;
color: #d1d5db;
max-width: 32rem;
margin: 0 auto;
}
.featuresGrid {
display: grid;
gap: 2rem;
}
@media (min-width: 768px) {
.featuresGrid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.featuresGrid {
grid-template-columns: repeat(3, 1fr);
}
}
.featureCard {
background-color: #111827;
border: 1px solid #374151;
border-radius: 0.75rem;
padding: 2rem;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
transform: translateY(0);
}
.featureCard:hover {
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
transform: translateY(-0.25rem);
}
.featureEmoji {
font-size: 2.25rem;
margin-bottom: 1rem;
transition: transform 0.3s ease;
}
.featureCard:hover .featureEmoji {
transform: scale(1.1);
}
.featureTitle {
font-size: 1.25rem;
font-weight: 700;
color: #ffffff;
margin-bottom: 0.75rem;
}
.featureDescription {
color: #d1d5db;
margin-bottom: 1rem;
}
.featureHighlight {
display: inline-flex;
align-items: center;
padding: 0.25rem 0.75rem;
border-radius: 9999px;
background-color: #14532d;
color: #bbf7d0;
font-size: 0.875rem;
font-weight: 500;
}
.statsSection {
background-color: #16a34a;
padding: 4rem 0;
}
.statsGrid {
display: grid;
gap: 2rem;
text-align: center;
color: #ffffff;
}
@media (min-width: 768px) {
.statsGrid {
grid-template-columns: repeat(4, 1fr);
}
}
.statItem {
}
.statNumber {
font-size: 2.25rem;
font-weight: 700;
margin-bottom: 0.5rem;
}
.statLabel {
color: #bbf7d0;
}
.finalCtaSection {
padding: 5rem 0;
background-color: #1f2937;
}
.finalCtaContent {
max-width: 64rem;
margin: 0 auto;
text-align: center;
padding: 0 1rem;
}
@media (min-width: 640px) {
.finalCtaContent {
padding: 0 1.5rem;
}
}
@media (min-width: 1024px) {
.finalCtaContent {
padding: 0 2rem;
}
}
.finalCtaTitle {
font-size: 2.25rem;
font-weight: 700;
color: #ffffff;
margin-bottom: 1.5rem;
}
.finalCtaSubtitle {
font-size: 1.25rem;
color: #d1d5db;
margin-bottom: 2rem;
}
.finalCtaButtons {
display: flex;
flex-direction: column;
gap: 1rem;
justify-content: center;
}
@media (min-width: 640px) {
.finalCtaButtons {
flex-direction: row;
}
}
.finalPrimaryButton {
padding: 1rem 2rem;
background-color: #16a34a;
color: #ffffff;
font-weight: 600;
border-radius: 0.5rem;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
transform: scale(1);
transition: all 0.2s ease;
font-size: 1.125rem;
border: none;
cursor: pointer;
}
.finalPrimaryButton:hover {
background-color: #15803d;
transform: scale(1.05);
}
.finalSecondaryButton {
padding: 1rem 2rem;
border: 2px solid #22c55e;
color: #22c55e;
font-weight: 600;
border-radius: 0.5rem;
transform: scale(1);
transition: all 0.2s ease;
font-size: 1.125rem;
background: transparent;
cursor: pointer;
}
.finalSecondaryButton:hover {
background-color: #22c55e;
color: #ffffff;
transform: scale(1.05);
}