Ramani | AI-Powered Digital Marketing Specialist
/* ===== RESET & BASE ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
font-family: 'Inter', sans-serif;
background: #fff;
color: #1e293b;
line-height: 1.7;
overflow-x: hidden;
}
:root {
--primary: #059669;
--primary-dark: #047857;
--primary-light: #d1fae5;
--primary-bg: #ecfdf5;
--secondary: #3b82f6;
--secondary-light: #dbeafe;
--secondary-bg: #eff6ff;
--accent: #10b981;
--dark: #0f172a;
--text: #1e293b;
--text-muted: #64748b;
--border: #e2e8f0;
--section-bg: #f8fafc;
--card-bg: #ffffff;
--shadow: 0 4px 24px rgba(0,0,0,0.06);
--shadow-hover: 0 12px 40px rgba(0,0,0,0.10);
--radius: 16px;
--radius-sm: 10px;
--transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
ul { list-style: none; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
section { padding: 100px 0; position: relative; }
.section-label {
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--primary);
background: var(--primary-light);
padding: 6px 18px;
border-radius: 50px;
margin-bottom: 16px;
}
.section-title {
font-family: 'Playfair Display', serif;
font-size: 2.6rem;
font-weight: 700;
color: var(--dark);
margin-bottom: 16px;
line-height: 1.2;
}
.section-title span { color: var(--primary); }
.section-subtitle {
font-size: 1.1rem;
color: var(--text-muted);
max-width: 640px;
margin: 0 auto 48px;
text-align: center;
}
.text-center { text-align: center; }
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 32px;
border-radius: 50px;
font-weight: 600;
font-size: 0.95rem;
border: none;
cursor: pointer;
transition: var(--transition);
letter-spacing: 0.3px;
}
.btn-primary {
background: linear-gradient(135deg, var(--primary), var(--accent));
color: #fff;
box-shadow: 0 4px 16px rgba(5, 150, 105, 0.35);
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(5, 150, 105, 0.45); }
.btn-secondary {
background: transparent;
color: var(--dark);
border: 2px solid var(--border);
}
.btn-secondary:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-3px); }
.btn-white {
background: #fff;
color: var(--primary);
box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}
.btn-white:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.15); }
/* ===== ANIMATIONS ===== */
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(40px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInLeft {
from { opacity: 0; transform: translateX(-60px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes fadeInRight {
from { opacity: 0; transform: translateX(60px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes scaleIn {
from { opacity: 0; transform: scale(0.85); }
to { opacity: 1; transform: scale(1); }
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-16px); }
}
@keyframes pulse-glow {
0%, 100% { box-shadow: 0 0 0 0 rgba(5, 150, 105, 0.4); }
50% { box-shadow: 0 0 0 20px rgba(5, 150, 105, 0); }
}
@keyframes spin-slow { to { transform: rotate(360deg); } }
@keyframes blob {
0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
50% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }
}
.reveal { opacity: 0; transform: translateY(40px); transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-left { opacity: 0; transform: translateX(-60px); transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1); }
.reveal-left.visible { opacity: 1; transform: translateX(0); }
.reveal-right { opacity: 0; transform: translateX(60px); transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1); }
.reveal-right.visible { opacity: 1; transform: translateX(0); }
/* ===== NAVBAR ===== */
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
padding: 16px 0;
transition: var(--transition);
background: transparent;
}
.navbar.scrolled {
background: rgba(255,255,255,0.95);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 1px 12px rgba(0,0,0,0.06);
padding: 10px 0;
}
.navbar .container { display: flex; align-items: center; justify-content: space-between; }
.logo {
font-family: 'Playfair Display', serif;
font-size: 1.6rem;
font-weight: 700;
color: var(--dark);
}
.logo span { color: var(--primary); }
.nav-links { display: flex; align-items: center; gap: 32px; }
.nav-links a {
font-size: 0.9rem;
font-weight: 500;
color: var(--text);
position: relative;
transition: var(--transition);
}
.nav-links a::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: var(--primary);
transition: var(--transition);
}
.nav-links a:hover { color: var(--primary); }
.nav-links a:hover::after { width: 100%; }
.nav-cta {
background: linear-gradient(135deg, var(--primary), var(--accent));
color: #fff !important;
padding: 10px 24px;
border-radius: 50px;
font-weight: 600;
}
.nav-cta::after { display: none !important; }
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(5,150,105,0.35); }
.hamburger {
display: none;
flex-direction: column;
gap: 5px;
cursor: pointer;
padding: 4px;
}
.hamburger span {
width: 26px;
height: 2.5px;
background: var(--dark);
border-radius: 2px;
transition: var(--transition);
}
.hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
/* ===== HERO ===== */
.hero {
min-height: 100vh;
display: flex;
align-items: center;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, #f0fdf4 0%, #eff6ff 50%, #f8fafc 100%);
}
.hero-bg-shapes {
position: absolute;
inset: 0;
overflow: hidden;
pointer-events: none;
}
.hero-bg-shapes .shape {
position: absolute;
border-radius: 50%;
opacity: 0.15;
}
.hero-bg-shapes .shape:nth-child(1) {
width: 500px; height: 500px;
background: var(--primary);
top: -120px; right: -120px;
animation: blob 8s ease-in-out infinite;
}
.hero-bg-shapes .shape:nth-child(2) {
width: 350px; height: 350px;
background: var(--secondary);
bottom: -80px; left: -80px;
animation: blob 10s ease-in-out infinite reverse;
}
.hero-bg-shapes .shape:nth-child(3) {
width: 200px; height: 200px;
background: var(--accent);
top: 30%; left: 10%;
animation: float 6s ease-in-out infinite;
}
.hero .container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
position: relative;
z-index: 2;
}
.hero-content { animation: fadeInUp 1s ease-out; }
.hero-badge {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(5,150,105,0.1);
border: 1px solid rgba(5,150,105,0.2);
padding: 8px 20px;
border-radius: 50px;
font-size: 0.85rem;
font-weight: 500;
color: var(--primary);
margin-bottom: 24px;
}
.hero-badge i { font-size: 0.75rem; }
.hero h1 {
font-family: 'Playfair Display', serif;
font-size: 3.8rem;
font-weight: 700;
line-height: 1.15;
color: var(--dark);
margin-bottom: 20px;
}
.hero h1 span {
background: linear-gradient(135deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero p {
font-size: 1.15rem;
color: var(--text-muted);
max-width: 520px;
margin-bottom: 36px;
line-height: 1.8;
}
.hero-buttons { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-image {
animation: fadeInUp 1s ease-out 0.2s both;
position: relative;
}
.hero-image-wrapper {
position: relative;
border-radius: 24px;
overflow: hidden;
box-shadow: 0 24px 64px rgba(0,0,0,0.1);
}
.hero-image-wrapper img {
width: 100%;
height: 520px;
object-fit: cover;
transition: transform 0.6s ease;
}
.hero-image-wrapper:hover img { transform: scale(1.03); }
.hero-image-wrapper::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(5,150,105,0.1), rgba(59,130,246,0.1));
}
.hero-experience {
position: absolute;
bottom: -20px;
right: -20px;
background: #fff;
padding: 20px 28px;
border-radius: 16px;
box-shadow: 0 12px 40px rgba(0,0,0,0.1);
display: flex;
align-items: center;
gap: 14px;
animation: float 4s ease-in-out infinite;
}
.hero-experience .number {
font-size: 2.2rem;
font-weight: 800;
color: var(--primary);
line-height: 1;
}
.hero-experience .label {
font-size: 0.8rem;
color: var(--text-muted);
line-height: 1.3;
}
.hero-stats {
display: flex;
gap: 40px;
margin-top: 40px;
padding-top: 32px;
border-top: 1px solid var(--border);
}
.hero-stats .stat { text-align: center; }
.hero-stats .stat .num {
font-size: 1.8rem;
font-weight: 800;
color: var(--dark);
}
.hero-stats .stat .lbl {
font-size: 0.8rem;
color: var(--text-muted);
font-weight: 500;
}
/* ===== ABOUT ===== */
.about { background: #fff; }
.about-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}
.about-image {
position: relative;
border-radius: 24px;
overflow: hidden;
box-shadow: 0 20px 60px rgba(0,0,0,0.08);
}
.about-image img {
width: 100%;
height: 500px;
object-fit: cover;
}
.about-image::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(5,150,105,0.08), rgba(59,130,246,0.08));
}
.about-experience-badge {
position: absolute;
bottom: -16px;
left: -16px;
background: linear-gradient(135deg, var(--primary), var(--accent));
color: #fff;
width: 100px;
height: 100px;
border-radius: 50%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-weight: 700;
box-shadow: 0 8px 28px rgba(5,150,105,0.35);
line-height: 1.2;
}
.about-experience-badge .num { font-size: 1.8rem; }
.about-experience-badge .lbl { font-size: 0.7rem; opacity: 0.9; }
.about-content h2 { margin-bottom: 20px; }
.about-content p { color: var(--text-muted); margin-bottom: 16px; font-size: 1.02rem; }
.about-details { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0; }
.about-details li {
display: flex;
align-items: center;
gap: 10px;
font-size: 0.95rem;
color: var(--text);
}
.about-details li i { color: var(--primary); font-size: 0.85rem; }
/* ===== SKILLS ===== */
.skills { background: var(--section-bg); }
.skills-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}
.skill-card {
background: var(--card-bg);
border-radius: var(--radius);
padding: 28px;
box-shadow: var(--shadow);
transition: var(--transition);
border: 1px solid var(--border);
}
.skill-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: var(--primary-light); }
.skill-card .icon {
width: 52px;
height: 52px;
border-radius: 14px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.3rem;
margin-bottom: 16px;
background: var(--primary-light);
color: var(--primary);
}
.skill-card h4 { font-size: 1.05rem; font-weight: 600; margin-bottom: 6px; }
.skill-card p { font-size: 0.9rem; color: var(--text-muted); }
.skill-progress { margin-top: 16px; }
.skill-progress .bar {
height: 6px;
background: #e2e8f0;
border-radius: 10px;
overflow: hidden;
}
.skill-progress .bar .fill {
height: 100%;
background: linear-gradient(90deg, var(--primary), var(--accent));
border-radius: 10px;
width: 0;
transition: width 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.skill-progress .label {
display: flex;
justify-content: space-between;
font-size: 0.85rem;
font-weight: 500;
margin-bottom: 6px;
}
/* ===== SERVICES ===== */
.services { background: #fff; }
.services-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}
.service-card {
background: var(--card-bg);
border-radius: var(--radius);
padding: 36px 28px;
box-shadow: var(--shadow);
border: 1px solid var(--border);
transition: var(--transition);
position: relative;
overflow: hidden;
cursor: pointer;
}
.service-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, var(--primary), var(--secondary));
transform: scaleX(0);
transform-origin: left;
transition: transform 0.5s ease;
}
.service-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-hover); }
.service-card:hover::before { transform: scaleX(1); }
.service-card .icon {
width: 60px;
height: 60px;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
margin-bottom: 20px;
transition: var(--transition);
}
.service-card:nth-child(1) .icon { background: var(--primary-light); color: var(--primary); }
.service-card:nth-child(2) .icon { background: var(--secondary-light); color: var(--secondary); }
.service-card:nth-child(3) .icon { background: #fef3c7; color: #d97706; }
.service-card:nth-child(4) .icon { background: #fce7f3; color: #db2777; }
.service-card:nth-child(5) .icon { background: #e0e7ff; color: #4f46e5; }
.service-card:nth-child(6) .icon { background: #d1fae5; color: #059669; }
.service-card h4 { font-size: 1.2rem; font-weight: 600; margin-bottom: 10px; }
.service-card p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.6; }
.service-card .learn-more {
display: inline-flex;
align-items: center;
gap: 6px;
margin-top: 16px;
font-weight: 600;
font-size: 0.9rem;
color: var(--primary);
transition: var(--transition);
}
.service-card .learn-more i { font-size: 0.75rem; transition: var(--transition); }
.service-card:hover .learn-more i { transform: translateX(4px); }
/* ===== PORTFOLIO ===== */
.portfolio { background: var(--section-bg); }
.portfolio-filters {
display: flex;
justify-content: center;
gap: 12px;
margin-bottom: 40px;
flex-wrap: wrap;
}
.portfolio-filters button {
padding: 8px 22px;
border-radius: 50px;
border: 1px solid var(--border);
background: #fff;
font-size: 0.85rem;
font-weight: 500;
cursor: pointer;
transition: var(--transition);
color: var(--text-muted);
}
.portfolio-filters button.active, .portfolio-filters button:hover {
background: var(--primary);
color: #fff;
border-color: var(--primary);
}
.portfolio-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.portfolio-item {
border-radius: var(--radius);
overflow: hidden;
position: relative;
box-shadow: var(--shadow);
cursor: pointer;
aspect-ratio: 4 / 3;
}
.portfolio-item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.6s ease;
}
.portfolio-item:hover img { transform: scale(1.08); }
.portfolio-overlay {
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(0,0,0,0.75), transparent);
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 24px;
opacity: 0;
transition: var(--transition);
}
.portfolio-item:hover .portfolio-overlay { opacity: 1; }
.portfolio-overlay h4 { color: #fff; font-size: 1.1rem; font-weight: 600; }
.portfolio-overlay p { color: rgba(255,255,255,0.8); font-size: 0.85rem; }
.portfolio-overlay .tags { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; }
.portfolio-overlay .tags span {
background: rgba(255,255,255,0.2);
color: #fff;
padding: 2px 12px;
border-radius: 50px;
font-size: 0.7rem;
font-weight: 500;
backdrop-filter: blur(4px);
}
/* ===== CASE STUDIES ===== */
.case-studies { background: #fff; }
.case-studies-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 28px;
}
.case-card {
background: var(--card-bg);
border-radius: var(--radius);
overflow: hidden;
box-shadow: var(--shadow);
border: 1px solid var(--border);
transition: var(--transition);
display: flex;
flex-direction: column;
}
.case-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); }
.case-card img {
width: 100%;
height: 220px;
object-fit: cover;
}
.case-card-body { padding: 28px; flex: 1; display: flex; flex-direction: column; }
.case-card-body .badge {
align-self: flex-start;
background: var(--primary-light);
color: var(--primary);
font-size: 0.75rem;
font-weight: 600;
padding: 4px 14px;
border-radius: 50px;
margin-bottom: 12px;
}
.case-card-body h4 { font-size: 1.15rem; font-weight: 600; margin-bottom: 8px; }
.case-card-body p { font-size: 0.9rem; color: var(--text-muted); flex: 1; }
.case-results {
display: flex;
gap: 20px;
margin-top: 16px;
padding-top: 16px;
border-top: 1px solid var(--border);
}
.case-results .result { text-align: center; }
.case-results .result .val {
font-size: 1.3rem;
font-weight: 700;
color: var(--primary);
}
.case-results .result .lbl { font-size: 0.75rem; color: var(--text-muted); }
/* ===== TESTIMONIALS ===== */
.testimonials { background: var(--section-bg); }
.testimonial-slider {
max-width: 800px;
margin: 0 auto;
position: relative;
overflow: hidden;
}
.testimonial-track {
display: flex;
transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.testimonial-slide {
min-width: 100%;
padding: 0 12px;
}
.testimonial-card {
background: #fff;
border-radius: var(--radius);
padding: 40px;
box-shadow: var(--shadow);
border: 1px solid var(--border);
text-align: center;
}
.testimonial-card .stars {
color: #f59e0b;
font-size: 1rem;
margin-bottom: 16px;
}
.testimonial-card .quote {
font-size: 1.05rem;
color: var(--text);
line-height: 1.8;
font-style: italic;
margin-bottom: 24px;
}
.testimonial-card .author {
display: flex;
align-items: center;
justify-content: center;
gap: 14px;
}
.testimonial-card .author img {
width: 52px;
height: 52px;
border-radius: 50%;
object-fit: cover;
}
.testimonial-card .author .info h5 { font-weight: 600; font-size: 1rem; }
.testimonial-card .author .info span { font-size: 0.82rem; color: var(--text-muted); }
.testimonial-nav {
display: flex;
justify-content: center;
gap: 12px;
margin-top: 32px;
}
.testimonial-nav button {
width: 44px;
height: 44px;
border-radius: 50%;
border: 1px solid var(--border);
background: #fff;
cursor: pointer;
transition: var(--transition);
font-size: 1rem;
color: var(--text);
}
.testimonial-nav button:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.testimonial-dots { display: flex; justify-content: center; gap: 8px; margin-top: 20px; }
.testimonial-dots button {
width: 10px;
height: 10px;
border-radius: 50%;
border: none;
background: var(--border);
cursor: pointer;
transition: var(--transition);
}
.testimonial-dots button.active { background: var(--primary); width: 28px; border-radius: 10px; }
/* ===== CERTIFICATIONS ===== */
.certifications { background: #fff; }
.certs-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 28px;
}
.cert-card {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 28px 20px;
text-align: center;
transition: var(--transition);
box-shadow: var(--shadow);
}
.cert-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: var(--primary-light); }
.cert-card .icon {
font-size: 2.4rem;
color: var(--primary);
margin-bottom: 14px;
}
.cert-card h5 { font-weight: 600; font-size: 0.95rem; margin-bottom: 6px; }
.cert-card p { font-size: 0.8rem; color: var(--text-muted); }
/* ===== BLOG ===== */
.blog { background: var(--section-bg); }
.blog-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}
.blog-card {
background: #fff;
border-radius: var(--radius);
overflow: hidden;
box-shadow: var(--shadow);
border: 1px solid var(--border);
transition: var(--transition);
}
.blog-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); }
.blog-card img {
width: 100%;
height: 200px;
object-fit: cover;
}
.blog-card-body { padding: 24px; }
.blog-card-body .date {
font-size: 0.78rem;
color: var(--text-muted);
font-weight: 500;
margin-bottom: 8px;
display: block;
}
.blog-card-body h4 {
font-size: 1.05rem;
font-weight: 600;
margin-bottom: 8px;
line-height: 1.4;
}
.blog-card-body p { font-size: 0.88rem; color: var(--text-muted); margin-bottom: 14px; }
.blog-card-body .read-more {
font-weight: 600;
font-size: 0.88rem;
color: var(--primary);
display: inline-flex;
align-items: center;
gap: 6px;
}
.blog-card-body .read-more i { transition: var(--transition); font-size: 0.75rem; }
.blog-card-body .read-more:hover i { transform: translateX(4px); }
/* ===== CONTACT ===== */
.contact { background: #fff; }
.contact-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
}
.contact-info h3 {
font-family: 'Playfair Display', serif;
font-size: 1.8rem;
margin-bottom: 16px;
}
.contact-info > p { color: var(--text-muted); margin-bottom: 32px; }
.contact-details { display: flex; flex-direction: column; gap: 20px; }
.contact-details .item {
display: flex;
align-items: flex-start;
gap: 16px;
}
.contact-details .item .icon {
width: 48px;
height: 48px;
border-radius: 14px;
background: var(--primary-light);
color: var(--primary);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.1rem;
flex-shrink: 0;
}
.contact-details .item h5 { font-weight: 600; font-size: 0.95rem; }
.contact-details .item p { font-size: 0.9rem; color: var(--text-muted); }
.contact-social { display: flex; gap: 12px; margin-top: 28px; }
.contact-social a {
width: 44px;
height: 44px;
border-radius: 50%;
border: 1px solid var(--border);
display: flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
transition: var(--transition);
font-size: 1.1rem;
}
.contact-social a:hover { background: var(--primary); color: #fff; border-color: var(--primary); transform: translateY(-3px); }
.contact-form {
background: var(--section-bg);
padding: 40px;
border-radius: var(--radius);
border: 1px solid var(--border);
}
.contact-form .form-group { margin-bottom: 20px; }
.contact-form label {
display: block;
font-size: 0.85rem;
font-weight: 600;
margin-bottom: 6px;
color: var(--text);
}
.contact-form input,
.contact-form textarea,
.contact-form select {
width: 100%;
padding: 14px 16px;
border: 1px solid var(--border);
border-radius: var(--radius-sm);
font-family: 'Inter', sans-serif;
font-size: 0.95rem;
transition: var(--transition);
background: #fff;
outline: none;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
border-color: var(--primary);
box-shadow: 0 0 0 3px rgba(5,150,105,0.1);
}
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-form .btn { width: 100%; justify-content: center; font-size: 1rem; padding: 16px; }
/* ===== FOOTER ===== */
.footer {
background: var(--dark);
color: rgba(255,255,255,0.8);
padding: 60px 0 24px;
}
.footer-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 40px;
margin-bottom: 40px;
}
.footer-brand .logo { color: #fff; }
.footer-brand p { font-size: 0.9rem; margin-top: 14px; max-width: 320px; line-height: 1.7; }
.footer h5 { color: #fff; font-weight: 600; font-size: 1rem; margin-bottom: 16px; }
.footer-links li { margin-bottom: 10px; }
.footer-links a {
font-size: 0.9rem;
transition: var(--transition);
}
.footer-links a:hover { color: var(--accent); padding-left: 4px; }
.footer-bottom {
padding-top: 24px;
border-top: 1px solid rgba(255,255,255,0.08);
display: flex;
justify-content: space-between;
align-items: center;
font-size: 0.85rem;
}
/* ===== WHATSAPP FLOATING ===== */
.whatsapp-float {
position: fixed;
bottom: 28px;
right: 28px;
z-index: 999;
width: 56px;
height: 56px;
background: #25d366;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1.6rem;
box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
transition: var(--transition);
animation: pulse-glow 2s infinite;
}
.whatsapp-float:hover { transform: scale(1.1); color: #fff; }
/* ===== BACK TO TOP ===== */
.back-to-top {
position: fixed;
bottom: 96px;
right: 28px;
z-index: 999;
width: 44px;
height: 44px;
background: var(--primary);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1rem;
box-shadow: 0 4px 16px rgba(5,150,105,0.3);
opacity: 0;
visibility: hidden;
transform: translateY(20px);
transition: var(--transition);
border: none;
cursor: pointer;
}
.back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--primary-dark); transform: translateY(-4px); color: #fff; }
/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
.hero h1 { font-size: 3rem; }
.hero .container { gap: 40px; }
.services-grid { grid-template-columns: repeat(2, 1fr); }
.skills-grid { grid-template-columns: repeat(2, 1fr); }
.portfolio-grid { grid-template-columns: repeat(2, 1fr); }
.certs-grid { grid-template-columns: repeat(2, 1fr); }
.blog-grid { grid-template-columns: repeat(2, 1fr); }
.footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
.nav-links {
position: fixed;
top: 0;
right: -320px;
width: 300px;
height: 100vh;
background: #fff;
flex-direction: column;
padding: 80px 40px;
gap: 24px;
box-shadow: -8px 0 30px rgba(0,0,0,0.08);
transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 1001;
}
.nav-links.open { right: 0; }
.hamburger { display: flex; z-index: 1002; }
.hero .container { grid-template-columns: 1fr; gap: 32px; }
.hero h1 { font-size: 2.4rem; }
.hero-image-wrapper img { height: 360px; }
.hero-experience { bottom: -16px; right: 0; padding: 14px 20px; }
.hero-experience .number { font-size: 1.6rem; }
.hero-stats { gap: 24px; }
.about-grid { grid-template-columns: 1fr; gap: 36px; }
.about-image img { height: 360px; }
.section-title { font-size: 2rem; }
.services-grid { grid-template-columns: 1fr; }
.skills-grid { grid-template-columns: 1fr; }
.portfolio-grid { grid-template-columns: 1fr; }
.case-studies-grid { grid-template-columns: 1fr; }
.certs-grid { grid-template-columns: repeat(2, 1fr); }
.blog-grid { grid-template-columns: 1fr; }
.contact-grid { grid-template-columns: 1fr; }
.contact-form { padding: 28px; }
.footer-grid { grid-template-columns: 1fr; gap: 28px; }
.footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
.about-details { grid-template-columns: 1fr; }
.hero-stats .stat .num { font-size: 1.4rem; }
section { padding: 64px 0; }
}
@media (max-width: 480px) {
.hero h1 { font-size: 2rem; }
.hero p { font-size: 1rem; }
.hero-buttons { flex-direction: column; }
.hero-buttons .btn { width: 100%; justify-content: center; }
.section-title { font-size: 1.7rem; }
.certs-grid { grid-template-columns: 1fr; }
}
AI-Powered Marketing
Turning Data Into Digital Growth
I'm Ramani — an AI-driven digital marketing specialist who builds data-backed strategies that grow brands, engage audiences, and deliver measurable ROI.
100%
Client Satisfaction
About Me
AI Meets Marketing Expertise
I'm a digital marketing specialist who combines artificial intelligence with proven marketing methodologies to deliver campaigns that convert. My approach is rooted in data — from audience insights to performance analytics.
Whether you're a startup looking for traction or an established brand aiming to scale, I bring the strategy, tools, and execution to turn your digital presence into a growth engine.
Data-Driven Campaigns
AI-Optimized SEO
Social Media Growth
Conversion Rate Optimization
Performance Analytics
Content Strategy
Download Resume
Expertise
Tools & Skills
From analytics to creative execution, these are the capabilities I bring to every project.
SEO & Analytics
Search optimization, keyword strategy, and data-driven reporting.
Social Media Mgmt
Content calendars, community growth, and paid social campaigns.
AI Marketing Tools
LLM-based content, predictive analytics, and marketing automation.
Paid Advertising
Google Ads, Meta Ads, LinkedIn campaigns with ROAS focus.
Email Marketing
Automated sequences, segmentation, and A/B testing.
Content & Branding
Copywriting, visual identity, and brand strategy development.
What I Do
Services & Solutions
End-to-end digital marketing services powered by AI and built for results.
SEO Optimization
On-page, off-page, and technical SEO with AI-powered keyword research to dominate search rankings.
Learn More
Social Media Marketing
Organic growth and paid campaigns across Instagram, LinkedIn, Twitter, and Facebook.
Learn More
Performance Marketing
Google Ads, Meta Ads, and retargeting campaigns optimized for maximum ROAS.
Learn More
Content Strategy
AI-assisted content creation, blog writing, video scripts, and brand storytelling.
Learn More
Email Automation
Drip campaigns, newsletters, and personalized sequences that nurture and convert.
Learn More
Analytics & Reporting
Custom dashboards, conversion tracking, and actionable insights to scale your growth.
Learn More
My Work
Featured Projects
Real campaigns that delivered real results for real brands.
All
SEO
Social Media
Paid Ads
SEO Analytics
E-Commerce SEO Overhaul
280% organic traffic increase in 6 months
Social Media Growth
Instagram Brand Launch
50K followers in 90 days organically
Paid Ads Facebook
Meta Ads ROAS Campaign
4.5x return on ad spend achieved
SEO Content
SaaS Blog Optimization
#1 ranking for 12 competitive keywords
Social LinkedIn
B2B LinkedIn Growth
300% increase in engagement rate
Paid Ads Google
Google Ads Scale-Up
120% increase in conversions MoM
Case Studies
Results That Speak
In-depth looks at how I transformed brands through strategic digital marketing.
+280% Traffic
E-Commerce Brand Traffic Surge
Complete SEO restructuring with AI-optimized content strategy for a mid-market e-commerce brand.
+450% ROAS
SaaS Paid Ads Transformation
AI-driven audience segmentation and automated bidding strategy for a B2B SaaS platform.
Testimonials
What Clients Say
Trusted by founders, marketers, and business owners worldwide.
"Ramani completely transformed our digital presence. Our organic traffic doubled in three months, and the quality of leads we're getting now is unmatched. Truly a data genius."
Sarah Mitchell CEO, Bloom & Co.
"Working with Ramani was a game-changer for our SaaS brand. The paid ads strategy she implemented brought our CPA down by 60% while scaling leads 3x. Exceptional work."
James Park Founder, ScaleStack
"The AI-powered content strategy Ramani developed for us was brilliant. Our blog became the #1 traffic source within 4 months. Highly recommend for any serious business."
Priya Sharma Marketing Director, TechFlow
Credentials
Certifications & Badges
Industry-recognized qualifications that back every strategy I deliver.
Google Digital Marketing
Google Digital Garage Certified
Meta Certified
Social Media Marketing Pro
Google Analytics Advanced
GA4 Certification
AI Marketing
AI Marketing Institute
Insights
Latest Articles
Thoughts on AI marketing, SEO trends, and digital growth strategies.
June 8, 2026
5 AI Trends Reshaping Digital Marketing in 2026
How machine learning and LLMs are changing the way we market forever.
Read More
May 22, 2026
SEO in the AI Era: What Still Works?
Core web vitals, EEAT, and why quality content matters more than ever.
Read More
May 10, 2026
Content Strategy Playbook for 2026 Growth
A step-by-step guide to building a content engine that drives real ROI.
Read More
// ===== NAVBAR SCROLL =====
const navbar = document.getElementById('navbar');
const backToTop = document.getElementById('backToTop');
window.addEventListener('scroll', () => {
const scrollY = window.scrollY;
navbar.classList.toggle('scrolled', scrollY > 50);
backToTop.classList.toggle('visible', scrollY > 400);
});
// ===== MOBILE MENU =====
const hamburger = document.getElementById('hamburger');
const navLinks = document.getElementById('navLinks');
hamburger.addEventListener('click', () => {
hamburger.classList.toggle('active');
navLinks.classList.toggle('open');
});
navLinks.querySelectorAll('a').forEach(link => {
link.addEventListener('click', () => {
hamburger.classList.remove('active');
navLinks.classList.remove('open');
});
});
// ===== SCROLL REVEAL =====
const revealElements = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.15, rootMargin: '0px 0px -40px 0px' });
revealElements.forEach(el => revealObserver.observe(el));
// ===== SKILL ANIMATION COUNTERS =====
const skillObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const fills = entry.target.querySelectorAll('.fill');
fills.forEach(fill => {
const width = fill.getAttribute('data-width');
fill.style.width = width + '%';
});
}
});
}, { threshold: 0.3 });
document.querySelectorAll('.skill-card').forEach(card => skillObserver.observe(card));
// ===== STAT COUNTERS =====
const counterObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const nums = entry.target.querySelectorAll('[data-count]');
nums.forEach(num => {
const target = parseInt(num.getAttribute('data-count'));
const duration = 2000;
const step = Math.ceil(target / (duration / 16));
let current = 0;
const timer = setInterval(() => {
current += step;
if (current >= target) {
num.textContent = target;
clearInterval(timer);
} else {
num.textContent = current;
}
}, 16);
});
counterObserver.unobserve(entry.target);
}
});
}, { threshold: 0.5 });
const heroStats = document.querySelector('.hero-stats');
if (heroStats) counterObserver.observe(heroStats);
// ===== PORTFOLIO FILTER =====
const filterButtons = document.querySelectorAll('.portfolio-filters button');
const portfolioItems = document.querySelectorAll('.portfolio-item');
filterButtons.forEach(btn => {
btn.addEventListener('click', () => {
filterButtons.forEach(b => b.classList.remove('active'));
btn.classList.add('active');
const filter = btn.getAttribute('data-filter');
portfolioItems.forEach(item => {
if (filter === 'all' || item.getAttribute('data-category') === filter) {
item.style.display = 'block';
setTimeout(() => { item.style.opacity = '1'; item.style.transform = 'scale(1)'; }, 50);
} else {
item.style.opacity = '0';
item.style.transform = 'scale(0.9)';
setTimeout(() => { item.style.display = 'none'; }, 350);
}
});
});
});
portfolioItems.forEach(item => { item.style.transition = 'opacity 0.35s ease, transform 0.35s ease'; });
// ===== TESTIMONIAL SLIDER =====
const track = document.getElementById('testimonialTrack');
const dots = document.querySelectorAll('#testimonialDots button');
const prevBtn = document.getElementById('prevTestimonial');
const nextBtn = document.getElementById('nextTestimonial');
let currentSlide = 0;
const totalSlides = document.querySelectorAll('.testimonial-slide').length;
function goToSlide(index) {
if (index = totalSlides) index = 0;
currentSlide = index;
track.style.transform = `translateX(-${currentSlide * 100}%)`;
dots.forEach((dot, i) => dot.classList.toggle('active', i === currentSlide));
}
dots.forEach((dot, i) => dot.addEventListener('click', () => goToSlide(i)));
prevBtn.addEventListener('click', () => goToSlide(currentSlide - 1));
nextBtn.addEventListener('click', () => goToSlide(currentSlide + 1));
setInterval(() => goToSlide(currentSlide + 1), 5000);
// ===== BACK TO TOP CLICK =====
backToTop.addEventListener('click', () => window.scrollTo({ top: 0, behavior: 'smooth' }));
// ===== CONTACT FORM =====
const contactForm = document.getElementById('contactForm');
contactForm.addEventListener('submit', function(e) {
const btn = this.querySelector('button[type="submit"]');
btn.innerHTML = '
Sending...';
btn.disabled = true;
});