371 lines
6.3 KiB
CSS
371 lines
6.3 KiB
CSS
.hero {
|
|
padding-top: 72px; /* navbar height */
|
|
background: var(--color-white);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.inner {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
padding-top: var(--space-20);
|
|
padding-bottom: var(--space-16);
|
|
gap: var(--space-6);
|
|
}
|
|
|
|
/* Reveal animation */
|
|
.reveal {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
transition: opacity 0.7s ease, transform 0.7s ease;
|
|
}
|
|
|
|
.reveal.visible {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.reveal:nth-child(2) { transition-delay: 0.1s; }
|
|
.reveal:nth-child(3) { transition-delay: 0.2s; }
|
|
.reveal:nth-child(4) { transition-delay: 0.3s; }
|
|
.reveal:nth-child(5) { transition-delay: 0.4s; }
|
|
.reveal:nth-child(6) { transition-delay: 0.5s; }
|
|
.reveal:nth-child(7) { transition-delay: 0.6s; }
|
|
.reveal:nth-child(8) { transition-delay: 0.7s; }
|
|
|
|
/* Badge */
|
|
.badgeWrap {
|
|
margin-bottom: var(--space-2);
|
|
}
|
|
|
|
/* Heading */
|
|
.heading {
|
|
font-size: clamp(2.5rem, 7vw, 5rem);
|
|
font-weight: 900;
|
|
letter-spacing: -0.04em;
|
|
line-height: 1.05;
|
|
color: var(--color-black);
|
|
max-width: 800px;
|
|
}
|
|
|
|
.emphasis {
|
|
font-style: italic;
|
|
font-weight: 900;
|
|
}
|
|
|
|
/* Subheading */
|
|
.subheading {
|
|
font-size: clamp(var(--text-base), 2vw, var(--text-xl));
|
|
color: var(--color-gray-600);
|
|
max-width: 520px;
|
|
line-height: 1.6;
|
|
margin-top: var(--space-2);
|
|
}
|
|
|
|
/* CTAs */
|
|
.ctas {
|
|
display: flex;
|
|
gap: var(--space-3);
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
margin-top: var(--space-2);
|
|
}
|
|
|
|
/* Trust note */
|
|
.trustNote {
|
|
font-size: var(--text-sm);
|
|
color: var(--color-gray-400);
|
|
margin-top: var(--space-1);
|
|
}
|
|
|
|
/* Dashboard Mockup */
|
|
.mockupWrap {
|
|
width: 100%;
|
|
max-width: 900px;
|
|
margin-top: var(--space-8);
|
|
perspective: 1200px;
|
|
}
|
|
|
|
.mockup {
|
|
background: var(--color-white);
|
|
border: 1px solid var(--color-gray-200);
|
|
border-radius: var(--radius-xl);
|
|
box-shadow: var(--shadow-xl), 0 0 0 1px rgba(0, 0, 0, 0.03);
|
|
overflow: hidden;
|
|
transform: rotateX(4deg);
|
|
transition: transform 0.4s ease;
|
|
}
|
|
|
|
.mockup:hover {
|
|
transform: rotateX(0deg);
|
|
}
|
|
|
|
/* Window bar */
|
|
.mockupBar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-2);
|
|
padding: var(--space-3) var(--space-4);
|
|
background: var(--color-gray-50);
|
|
border-bottom: 1px solid var(--color-gray-200);
|
|
}
|
|
|
|
.dot {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.mockupUrl {
|
|
flex: 1;
|
|
text-align: center;
|
|
font-size: var(--text-xs);
|
|
color: var(--color-gray-400);
|
|
background: var(--color-white);
|
|
border: 1px solid var(--color-gray-200);
|
|
border-radius: var(--radius-full);
|
|
padding: 2px var(--space-3);
|
|
max-width: 280px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Mockup body */
|
|
.mockupBody {
|
|
display: flex;
|
|
height: 380px;
|
|
}
|
|
|
|
/* Sidebar */
|
|
.mockupSidebar {
|
|
width: 56px;
|
|
background: var(--color-gray-50);
|
|
border-right: 1px solid var(--color-gray-200);
|
|
padding: var(--space-4) var(--space-3);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-3);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.sidebarLogo {
|
|
width: 32px;
|
|
height: 32px;
|
|
background: var(--color-black);
|
|
border-radius: var(--radius-md);
|
|
margin-bottom: var(--space-4);
|
|
}
|
|
|
|
.sidebarItem {
|
|
width: 32px;
|
|
height: 32px;
|
|
background: var(--color-gray-200);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.sidebarActive {
|
|
background: var(--color-black) !important;
|
|
}
|
|
|
|
/* Main dashboard */
|
|
.mockupMain {
|
|
flex: 1;
|
|
padding: var(--space-6);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-4);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.mockupHeader {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.mockupTitle {
|
|
height: 20px;
|
|
width: 160px;
|
|
background: var(--color-gray-200);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.mockupBtn {
|
|
height: 32px;
|
|
width: 100px;
|
|
background: var(--color-black);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
/* Metric cards */
|
|
.metricsRow {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.metricCard {
|
|
background: var(--color-gray-50);
|
|
border: 1px solid var(--color-gray-200);
|
|
border-radius: var(--radius-lg);
|
|
padding: var(--space-3);
|
|
display: flex;
|
|
gap: var(--space-2);
|
|
align-items: center;
|
|
}
|
|
|
|
.metricIcon {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: var(--radius-md);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.metricLines {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
flex: 1;
|
|
}
|
|
|
|
.metricValue {
|
|
height: 14px;
|
|
background: var(--color-gray-300);
|
|
border-radius: var(--radius-sm);
|
|
width: 70%;
|
|
}
|
|
|
|
.metricLabel {
|
|
height: 10px;
|
|
background: var(--color-gray-200);
|
|
border-radius: var(--radius-sm);
|
|
width: 90%;
|
|
}
|
|
|
|
/* Chart */
|
|
.chartArea {
|
|
flex: 1;
|
|
background: var(--color-gray-50);
|
|
border: 1px solid var(--color-gray-200);
|
|
border-radius: var(--radius-lg);
|
|
padding: var(--space-4);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.chartBars {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
gap: var(--space-2);
|
|
height: 100%;
|
|
}
|
|
|
|
@keyframes growBar {
|
|
from { height: 0; }
|
|
to { height: var(--target-height); }
|
|
}
|
|
|
|
.bar {
|
|
flex: 1;
|
|
background: var(--color-black);
|
|
border-radius: var(--radius-sm) var(--radius-sm) 0 0;
|
|
opacity: 0.12;
|
|
animation: fadeIn 0.5s ease forwards;
|
|
}
|
|
|
|
.bar:nth-child(odd) {
|
|
opacity: 0.08;
|
|
}
|
|
|
|
.bar:nth-child(4),
|
|
.bar:nth-child(8) {
|
|
opacity: 0.9;
|
|
background: var(--color-black);
|
|
}
|
|
|
|
/* Task list */
|
|
.taskList {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.taskRow {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-3);
|
|
}
|
|
|
|
.taskCheck {
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid var(--color-gray-300);
|
|
border-radius: var(--radius-sm);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.taskLine {
|
|
height: 10px;
|
|
background: var(--color-gray-200);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
/* Stats */
|
|
.stats {
|
|
display: flex;
|
|
gap: var(--space-12);
|
|
margin-top: var(--space-8);
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
|
|
.statItem {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--space-1);
|
|
}
|
|
|
|
.statValue {
|
|
font-size: var(--text-3xl);
|
|
font-weight: 900;
|
|
letter-spacing: -0.04em;
|
|
color: var(--color-black);
|
|
}
|
|
|
|
.statLabel {
|
|
font-size: var(--text-sm);
|
|
color: var(--color-gray-500, #666);
|
|
}
|
|
|
|
/* Responsive */
|
|
@media (max-width: 768px) {
|
|
.mockupBody {
|
|
height: 260px;
|
|
}
|
|
|
|
.mockupSidebar {
|
|
display: none;
|
|
}
|
|
|
|
.metricsRow {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.stats {
|
|
gap: var(--space-8);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.ctas {
|
|
flex-direction: column;
|
|
width: 100%;
|
|
max-width: 320px;
|
|
}
|
|
|
|
.ctas .btn {
|
|
width: 100%;
|
|
}
|
|
}
|