Lead2Go | Premium Lead Generation
/* CSS Reset & Base */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-white: #ffffff;
--bg-light: #f8fafc;
--bg-card: #ffffff;
--accent-red: #ff3b30;
--accent-blue: #007aff;
--accent-green: #34c759;
--accent-purple: #af52de;
--accent-orange: #ff9500;
--text-dark: #1d1d1f;
--text-light: #86868b;
--shadow-light: rgba(0, 0, 0, 0.08);
--shadow-medium: rgba(0, 0, 0, 0.12);
--border-light: #e5e5e7;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
background: var(--primary-white);
color: var(--text-dark);
overflow-x: hidden;
line-height: 1.6;
}
/* Hero Container */
.lead2go-hero {
min-height: 100vh;
background: linear-gradient(135deg, #f8fafc 0%, #ffffff 50%, #f0f7ff 100%);
position: relative;
overflow: hidden;
display: flex;
align-items: center;
padding: clamp(1rem, 3vw, 2rem);
}
/* Animated Background Elements - Mobile Optimized */
.hero-bg-elements {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
pointer-events: none;
}
.bg-circle {
position: absolute;
border-radius: 50%;
filter: blur(40px);
opacity: 0.2;
animation: float 25s infinite ease-in-out;
}
.circle-1 {
width: min(400px, 80vw);
height: min(400px, 80vw);
background: var(--accent-blue);
top: -150px;
right: -150px;
animation-delay: 0s;
}
.circle-2 {
width: min(300px, 60vw);
height: min(300px, 60vw);
background: var(--accent-red);
bottom: -100px;
left: -100px;
animation-delay: 8s;
}
.circle-3 {
width: min(200px, 40vw);
height: min(200px, 40vw);
background: var(--accent-green);
top: 30%;
right: 10%;
animation-delay: 16s;
}
/* Main Content Container */
.hero-container {
max-width: 1400px;
margin: 0 auto;
width: 100%;
position: relative;
z-index: 10;
display: grid;
grid-template-columns: 1fr;
gap: clamp(2rem, 5vw, 4rem);
align-items: center;
}
@media (min-width: 992px) {
.hero-container {
grid-template-columns: 1fr 1fr;
}
}
/* Left Side - Headline */
.hero-headline {
position: relative;
z-index: 20;
text-align: center;
padding: 0 clamp(1rem, 3vw, 2rem);
}
@media (min-width: 992px) {
.hero-headline {
text-align: left;
padding: 0;
}
}
.headline-text {
font-size: clamp(2.2rem, 6vw, 4.5rem);
font-weight: 800;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: clamp(1.5rem, 3vw, 2rem);
background: linear-gradient(135deg, var(--accent-red) 0%, var(--accent-blue) 50%, var(--accent-purple) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
display: inline-block;
}
.headline-text::after {
content: '';
position: absolute;
bottom: -8px;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--accent-red), var(--accent-blue), var(--accent-green));
border-radius: 2px;
animation: lineFlow 3s ease-in-out infinite;
}
/* Stats Container */
.hero-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: clamp(1.5rem, 3vw, 2.5rem);
margin-top: clamp(2rem, 4vw, 3rem);
justify-items: center;
}
@media (min-width: 992px) {
.hero-stats {
display: flex;
justify-content: flex-start;
}
}
.stat-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
@media (min-width: 992px) {
.stat-item {
align-items: flex-start;
text-align: left;
}
}
.stat-value {
font-size: clamp(1.8rem, 4vw, 2.5rem);
font-weight: 800;
line-height: 1;
margin-bottom: 0.5rem;
background: linear-gradient(135deg, var(--accent-red), var(--accent-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
}
.stat-label {
font-size: 0.85rem;
color: var(--text-light);
text-transform: uppercase;
letter-spacing: 0.5px;
font-weight: 600;
}
/* Right Side - Data Visualization */
.data-visualization {
position: relative;
height: clamp(300px, 50vh, 500px);
max-width: 800px;
margin: 0 auto;
width: 100%;
background: var(--bg-card);
border-radius: clamp(16px, 3vw, 24px);
overflow: hidden;
box-shadow:
0 10px 30px var(--shadow-light),
0 0 0 1px var(--border-light);
}
@media (min-width: 768px) {
.data-visualization {
box-shadow:
0 20px 60px var(--shadow-light),
0 0 0 1px var(--border-light);
}
}
/* Main Graph Container */
.graph-container {
position: absolute;
width: 100%;
height: 100%;
padding: clamp(1rem, 2vw, 2rem);
}
/* Growing Line Chart */
.line-chart {
position: absolute;
top: clamp(1rem, 2vw, 2rem);
left: clamp(1rem, 2vw, 2rem);
right: clamp(1rem, 2vw, 2rem);
height: clamp(100px, 20vh, 150px);
}
.chart-line {
fill: none;
stroke-width: 2.5;
stroke-linecap: round;
stroke-linejoin: round;
stroke-dasharray: 1000;
stroke-dashoffset: 1000;
animation: drawLine 3s ease-out forwards;
filter: drop-shadow(0 0 4px rgba(0, 122, 255, 0.2));
}
@media (min-width: 768px) {
.chart-line {
stroke-width: 3;
filter: drop-shadow(0 0 8px rgba(0, 122, 255, 0.2));
}
}
.line-1 { stroke: var(--accent-blue); animation-delay: 0.5s; }
.line-2 { stroke: var(--accent-red); animation-delay: 1s; }
.chart-point {
fill: var(--accent-blue);
stroke: var(--primary-white);
stroke-width: 1.5;
opacity: 0;
animation: pointPulse 2s ease-out infinite;
}
@media (min-width: 768px) {
.chart-point {
stroke-width: 2;
}
}
.red-point { fill: var(--accent-red); }
.green-point { fill: var(--accent-green); }
.purple-point { fill: var(--accent-purple); }
.chart-point:nth-child(1) { animation-delay: 0.8s; }
.chart-point:nth-child(2) { animation-delay: 1s; }
.chart-point:nth-child(3) { animation-delay: 1.2s; }
.chart-point:nth-child(4) { animation-delay: 1.4s; }
.chart-point:nth-child(5) { animation-delay: 1.6s; }
.chart-point:nth-child(6) { animation-delay: 1.8s; }
/* Animated Bar Graph */
.bar-chart {
position: absolute;
bottom: clamp(1rem, 2vw, 2rem);
left: clamp(1rem, 2vw, 2rem);
right: clamp(1rem, 2vw, 2rem);
height: clamp(100px, 20vh, 150px);
display: flex;
align-items: flex-end;
gap: clamp(0.5rem, 1vw, 1rem);
}
.bar-column {
flex: 1;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
}
.bar {
width: 100%;
border-radius: 4px 4px 0 0;
position: relative;
transform-origin: bottom;
animation: barGrow 1.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
opacity: 0;
}
.bar-1 {
background: linear-gradient(to top, var(--accent-blue), #4dabf7);
animation-delay: 1s;
height: 65%;
}
.bar-2 {
background: linear-gradient(to top, var(--accent-red), #ff6b6b);
animation-delay: 1.2s;
height: 85%;
}
.bar-3 {
background: linear-gradient(to top, var(--accent-green), #69db7c);
animation-delay: 1.4s;
height: 95%;
}
.bar-4 {
background: linear-gradient(to top, var(--accent-purple), #cc5de8);
animation-delay: 1.6s;
height: 70%;
}
.bar-5 {
background: linear-gradient(to top, var(--accent-orange), #ffa94d);
animation-delay: 1.8s;
height: 80%;
}
.bar-6 {
background: linear-gradient(to top, #1c7ed6, #339af0);
animation-delay: 2s;
height: 90%;
}
.bar::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, transparent, rgba(255, 255, 255, 0.4));
border-radius: 4px 4px 0 0;
}
/* Lead Flow Network - Mobile Optimized */
.lead-network {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: clamp(180px, 40vw, 300px);
height: clamp(180px, 40vw, 300px);
}
.network-node {
position: absolute;
width: clamp(8px, 1.5vw, 12px);
height: clamp(8px, 1.5vw, 12px);
border-radius: 50%;
animation: nodePulse 3s ease-in-out infinite;
}
.node-blue { background: var(--accent-blue); box-shadow: 0 0 10px rgba(0, 122, 255, 0.4); }
.node-red { background: var(--accent-red); box-shadow: 0 0 10px rgba(255, 59, 48, 0.4); }
.node-green { background: var(--accent-green); box-shadow: 0 0 10px rgba(52, 199, 89, 0.4); }
.node-purple { background: var(--accent-purple); box-shadow: 0 0 10px rgba(175, 82, 222, 0.4); }
.network-connection {
position: absolute;
height: 1px;
background: linear-gradient(90deg, var(--accent-blue), var(--accent-red));
transform-origin: 0 0;
opacity: 0.15;
animation: connectionPulse 4s ease-in-out infinite;
}
@media (min-width: 768px) {
.network-connection {
height: 2px;
opacity: 0.2;
}
}
/* Floating Data Points - Mobile Optimized */
.floating-data {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
pointer-events: none;
}
.data-point {
position: absolute;
width: clamp(6px, 1vw, 8px);
height: clamp(6px, 1vw, 8px);
border-radius: 50%;
animation: floatAround 15s linear infinite;
display: none;
}
@media (min-width: 768px) {
.data-point {
display: block;
}
}
.dp-1 { background: var(--accent-blue); top: 20%; left: 10%; animation-delay: 0s; }
.dp-2 { background: var(--accent-red); top: 60%; left: 15%; animation-delay: 3s; }
.dp-3 { background: var(--accent-green); top: 30%; left: 85%; animation-delay: 6s; }
.dp-4 { background: var(--accent-purple); top: 70%; left: 90%; animation-delay: 9s; }
.dp-5 { background: var(--accent-orange); top: 40%; left: 40%; animation-delay: 12s; }
/* Animations */
@keyframes float {
0%, 100% { transform: translate(0, 0) scale(1); }
33% { transform: translate(20px, -20px) scale(1.05); }
66% { transform: translate(-15px, 15px) scale(0.95); }
}
@keyframes lineFlow {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
@keyframes drawLine {
to { stroke-dashoffset: 0; }
}
@keyframes pointPulse {
0%, 100% {
opacity: 0.4;
transform: scale(1);
r: 3;
}
50% {
opacity: 1;
transform: scale(1.2);
r: 4;
}
}
@keyframes barGrow {
0% {
transform: scaleY(0);
opacity: 0;
}
100% {
transform: scaleY(1);
opacity: 1;
}
}
@keyframes nodePulse {
0%, 100% {
transform: scale(1);
opacity: 0.6;
}
50% {
transform: scale(1.1);
opacity: 1;
}
}
@keyframes connectionPulse {
0%, 100% { opacity: 0.1; }
50% { opacity: 0.2; }
}
@keyframes floatAround {
0% { transform: translate(0, 0); }
25% { transform: translate(10px, 15px); }
50% { transform: translate(-8px, 20px); }
75% { transform: translate(12px, -10px); }
100% { transform: translate(0, 0); }
}
/* Performance Optimizations for Mobile */
@media (max-width: 768px) {
.network-node {
animation-duration: 4s;
}
.bar-chart {
gap: 0.5rem;
}
.chart-point {
animation-duration: 3s;
}
}
/* Very Small Screens */
@media (max-width: 480px) {
.hero-stats {
grid-template-columns: repeat(2, 1fr);
}
.lead-network {
display: none; /* Hide complex network on very small screens */
}
.headline-text {
font-size: 2rem;
}
}
/* Tablet Optimizations */
@media (min-width: 481px) and (max-width: 768px) {
.hero-stats {
grid-template-columns: repeat(3, 1fr);
}
}
/* Touch Device Optimizations */
@media (hover: none) and (pointer: coarse) {
.bg-circle {
animation-duration: 35s; /* Slower animation for touch devices */
}
}
document.addEventListener('DOMContentLoaded', function() {
const networkContainer = document.getElementById('network-container');
// Check if network container exists (hidden on very small screens)
if (!networkContainer) return;
// Adaptive node count based on screen size
const screenWidth = window.innerWidth;
let nodeCount = 12; // Default for mobile
if (screenWidth >= 768) {
nodeCount = 16;
}
if (screenWidth >= 992) {
nodeCount = 20;
}
// Create colorful network nodes
const colors = ['node-blue', 'node-red', 'node-green', 'node-purple'];
// Function to create network
function createNetwork() {
// Clear existing network
networkContainer.innerHTML = '';
// Adjust size based on container
const containerWidth = networkContainer.clientWidth;
const containerHeight = networkContainer.clientHeight;
const centerX = containerWidth / 2;
const centerY = containerHeight / 2;
const radius = Math.min(centerX, centerY) * 0.6;
for (let i = 0; i {
// Connect each node to 1-2 other nodes on mobile, 2-3 on desktop
const connections = screenWidth >= 768 ?
(1 + Math.floor(Math.random() * 2)) :
(1 + Math.floor(Math.random() * 1));
for (let j = 0; j {
step++;
currentValue += increment;
if (step >= steps) {
currentValue = targetValue;
clearInterval(timer);
}
if (suffix === '%') {
element.textContent = Math.round(currentValue) + suffix;
} else {
// Format with K for thousands on mobile
if (screenWidth 1000) {
const valueInK = (currentValue / 1000).toFixed(1);
element.textContent = valueInK.endsWith('.0') ?
`${parseInt(valueInK)}K+` :
`${valueInK}K+`;
} else {
element.textContent = Math.round(currentValue).toLocaleString() + suffix;
}
}
}, duration / steps);
}
// Start counters after a delay
setTimeout(() => {
animateCounter('leads-counter', 12470, '+');
animateCounter('conversion-counter', 42, '%');
animateCounter('growth-counter', 247, '%');
}, 800);
// Dynamic bar animation
const bars = document.querySelectorAll('.bar');
function animateBars() {
if (bars.length === 0) return;
bars.forEach(bar => {
const originalHeight = bar.dataset.originalHeight ||
parseFloat(getComputedStyle(bar).height) /
parseFloat(getComputedStyle(bar.parentElement).height) * 100;
bar.dataset.originalHeight = originalHeight;
// Slight variation in height
const variation = 0.8 + Math.random() * 0.4;
const newHeight = Math.max(30, Math.min(100, originalHeight * variation));
bar.style.height = `${newHeight}%`;
bar.style.transition = 'height 1.5s cubic-bezier(0.34, 1.56, 0.64, 1)';
});
}
// Start bar animations
setTimeout(() => {
if (bars.length > 0) {
bars.forEach(bar => {
const computedStyle = getComputedStyle(bar);
const height = computedStyle.height;
const parentHeight = computedStyle.parentElement.clientHeight;
const percentage = (parseFloat(height) / parentHeight) * 100;
bar.dataset.originalHeight = percentage;
});
// Animate bars every 4 seconds
setInterval(animateBars, 4000);
}
}, 2500);
// Performance optimization: Reduce animations on mobile
if (screenWidth {
if (anim.style.animationDuration) {
const currentDuration = parseFloat(anim.style.animationDuration);
anim.style.animationDuration = `${currentDuration * 1.5}s`;
}
});
}
// Handle window resize
let resizeTimeout;
window.addEventListener('resize', function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(() => {
createNetwork();
}, 250);
});
});