Ramani | Digital Marketing — Strategy. Growth. Impact.
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body {
font-family: 'Inter', sans-serif;
background: #F8F9FA;
color: #1A1A2E;
line-height: 1.6;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
::selection { background: rgba(139,92,246,0.18); color: #1A1A2E; }
:root {
--bg-deep: #F8F9FA;
--bg-surface: #F0F0F7;
--bg-card: #FFFFFF;
--bg-card-hover: #F8F8FF;
--text-primary: #1A1A2E;
--text-secondary: #6B6B80;
--accent-violet: #7C3AED;
--accent-pink: #EC4899;
--accent-cyan: #06B6D4;
--gradient-primary: linear-gradient(135deg, #7C3AED, #EC4899);
--gradient-secondary: linear-gradient(135deg, #EC4899, #06B6D4);
--gradient-text: linear-gradient(135deg, #7C3AED 0%, #EC4899 50%, #06B6D4 100%);
--radius-sm: 8px;
--radius-md: 16px;
--radius-lg: 24px;
--transition: 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
--shadow-card: 0 2px 20px rgba(0,0,0,0.06);
--shadow-hover: 0 12px 40px rgba(124,58,237,0.12);
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.section { padding: 6rem 0; position: relative; }
.section-label {
display: inline-flex; align-items: center; gap: 0.5rem;
font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
color: var(--accent-violet); margin-bottom: 1rem;
}
.section-label::before { content: ''; width: 1.5rem; height: 1px; background: var(--accent-violet); }
.section-title {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 700;
margin-bottom: 1.2rem; line-height: 1.15;
}
.section-title .highlight { background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.section-sub { color: var(--text-secondary); font-size: 1.05rem; max-width: 580px; }
.btn {
display: inline-flex; align-items: center; gap: 0.6rem;
padding: 0.9rem 2rem; border-radius: 50px;
font-family: 'Inter', sans-serif; font-size: 0.9rem; font-weight: 500;
border: none; cursor: pointer; transition: var(--transition);
position: relative; overflow: hidden;
}
.btn-primary {
background: var(--gradient-primary); color: #fff;
box-shadow: 0 4px 25px rgba(124,58,237,0.3);
}
.btn-primary:hover {
transform: translateY(-3px);
box-shadow: 0 8px 40px rgba(124,58,237,0.4);
}
.btn-outline {
background: transparent; color: var(--text-primary);
border: 1.5px solid rgba(0,0,0,0.12);
}
.btn-outline:hover {
border-color: var(--accent-violet); color: var(--accent-violet);
transform: translateY(-3px);
}
.btn-group { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.fade-up { opacity: 0; transform: translateY(40px); transition: opacity 0.7s ease, transform 0.7s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.stagger > * { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; }
.stagger.visible > *:nth-child(1) { transition-delay: 0s; }
.stagger.visible > *:nth-child(2) { transition-delay: 0.1s; }
.stagger.visible > *:nth-child(3) { transition-delay: 0.2s; }
.stagger.visible > *:nth-child(4) { transition-delay: 0.3s; }
.stagger.visible > *:nth-child(5) { transition-delay: 0.4s; }
.stagger.visible > *:nth-child(6) { transition-delay: 0.5s; }
.stagger.visible > * { opacity: 1; transform: translateY(0); }
/* ─── NAV ─── */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
padding: 1.2rem 0; transition: var(--transition);
}
nav.scrolled {
background: rgba(255,255,255,0.92);
backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(0,0,0,0.05);
box-shadow: 0 1px 20px rgba(0,0,0,0.04);
padding: 0.7rem 0;
}
.nav-inner {
display: flex; align-items: center; justify-content: space-between;
}
.logo {
font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; font-weight: 700;
display: flex; align-items: center; gap: 0.5rem;
color: var(--text-primary);
}
.logo-icon {
width: 36px; height: 36px; border-radius: 10px;
background: var(--gradient-primary);
display: flex; align-items: center; justify-content: center;
font-size: 1.1rem; font-weight: 700; color: #fff;
}
.nav-links { display: flex; gap: 2rem; align-items: center; }
.nav-links a {
font-size: 0.85rem; font-weight: 500; color: var(--text-secondary);
transition: var(--transition); position: relative;
}
.nav-links a:hover { color: var(--text-primary); }
.nav-links a::after {
content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px;
background: var(--gradient-primary); transition: var(--transition); border-radius: 2px;
}
.nav-links a:hover::after { width: 100%; }
.nav-cta {
padding: 0.5rem 1.3rem; border-radius: 50px;
background: var(--gradient-primary); color: #fff !important;
font-size: 0.8rem !important; font-weight: 600 !important;
box-shadow: 0 2px 15px rgba(124,58,237,0.25);
}
.nav-cta::after { display: none !important; }
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 4px 25px rgba(124,58,237,0.35) !important; }
.hamburger {
display: none; flex-direction: column; gap: 5px; cursor: pointer;
background: none; border: none; padding: 4px;
}
.hamburger span {
width: 24px; height: 2px; background: var(--text-primary);
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; padding: 8rem 0 4rem;
}
.hero-bg {
position: absolute; inset: 0; z-index: 0;
background:
radial-gradient(ellipse 80% 60% at 20% 50%, rgba(124,58,237,0.07) 0%, transparent 70%),
radial-gradient(ellipse 60% 50% at 80% 20%, rgba(236,72,153,0.05) 0%, transparent 70%),
radial-gradient(ellipse 50% 40% at 50% 80%, rgba(6,182,212,0.04) 0%, transparent 70%);
}
.hero-grid-lines {
position: absolute; inset: 0; z-index: 0;
background-image:
linear-gradient(rgba(0,0,0,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(0,0,0,0.04) 1px, transparent 1px);
background-size: 60px 60px;
mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 20%, transparent 70%);
-webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 20%, transparent 70%);
}
.hero-content { position: relative; z-index: 1; max-width: 820px; }
.hero-image {
position: absolute; right: -20px; top: 50%; transform: translateY(-50%);
z-index: 1; width: 380px; pointer-events: none;
animation: hero-float 6s ease-in-out infinite;
}
.hero-image img {
width: 100%; border-radius: var(--radius-lg);
box-shadow: 0 20px 80px rgba(124,58,237,0.15), 0 4px 30px rgba(0,0,0,0.06);
border: 3px solid rgba(255,255,255,0.8);
}
.hero-image::after {
content: ''; position: absolute; inset: -8px; border-radius: calc(var(--radius-lg) + 8px);
background: var(--gradient-primary); z-index: -1; opacity: 0.3;
filter: blur(12px);
}
@keyframes hero-float { 0%,100% { transform: translateY(-50%) translateX(0); } 50% { transform: translateY(calc(-50% - 12px)) translateX(-4px); } }
.hero-badge {
display: inline-flex; align-items: center; gap: 0.5rem;
padding: 0.4rem 1rem; border-radius: 50px;
background: rgba(124,58,237,0.08); border: 1px solid rgba(124,58,237,0.15);
font-size: 0.8rem; color: var(--accent-violet); margin-bottom: 1.5rem;
}
.hero-badge i { font-size: 0.7rem; }
.hero-badge .dot { width: 6px; height: 6px; border-radius: 50%; background: #22c55e; animation: pulse-dot 2s infinite; }
@keyframes pulse-dot { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
.hero-title {
font-family: 'Space Grotesk', sans-serif;
font-size: clamp(2.6rem, 8vw, 5rem); font-weight: 700;
line-height: 1.05; margin-bottom: 1.2rem;
color: var(--text-primary);
}
.hero-title .gradient-text { background: var(--gradient-text); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-sub {
font-size: clamp(1rem, 2vw, 1.2rem); color: var(--text-secondary);
max-width: 600px; margin-bottom: 1rem; line-height: 1.7;
}
.hero-stats {
display: flex; gap: 2.5rem; margin-top: 3rem;
flex-wrap: wrap;
}
.hero-stat h3 {
font-family: 'Space Grotesk', sans-serif;
font-size: 2rem; background: var(--gradient-primary);
-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.hero-stat p { font-size: 0.8rem; color: var(--text-secondary); margin-top: 0.15rem; }
.hero-scroll {
position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
color: var(--text-secondary); font-size: 0.7rem; letter-spacing: 0.15em;
animation: float 3s ease-in-out infinite; z-index: 1;
}
.hero-scroll .scroll-line { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--text-secondary), transparent); }
@keyframes float { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-8px); } }
/* ─── ABOUT + IMAGE SLIDER ─── */
.about-grid {
display: grid; grid-template-columns: 1fr 1fr; gap: 4rem;
align-items: center;
}
.about-slider {
position: relative; border-radius: var(--radius-lg); overflow: hidden;
box-shadow: 0 4px 30px rgba(0,0,0,0.06);
}
.about-slider .slides {
display: flex; transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
will-change: transform;
}
.about-slider .slides .slide {
min-width: 100%; height: 460px;
}
.about-slider .slides .slide img {
width: 100%; height: 100%; object-fit: cover;
}
.about-slider .slides .slide::after {
content: ''; position: absolute; inset: 0;
background: linear-gradient(135deg, rgba(124,58,237,0.15), transparent 50%);
pointer-events: none;
}
.about-slider .slider-arrow {
position: absolute; top: 50%; transform: translateY(-50%);
width: 40px; height: 40px; border-radius: 50%;
background: rgba(255,255,255,0.9); border: none;
backdrop-filter: blur(8px); cursor: pointer;
display: flex; align-items: center; justify-content: center;
color: var(--text-primary); font-size: 0.9rem;
box-shadow: 0 2px 12px rgba(0,0,0,0.1);
transition: var(--transition); z-index: 5;
}
.about-slider .slider-arrow:hover { background: #fff; box-shadow: 0 4px 20px rgba(0,0,0,0.15); }
.about-slider .slider-arrow.prev { left: 12px; }
.about-slider .slider-arrow.next { right: 12px; }
.about-slider .slider-dots {
position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%);
display: flex; gap: 8px; z-index: 5;
}
.about-slider .slider-dots button {
width: 8px; height: 8px; border-radius: 50%; border: none;
background: rgba(255,255,255,0.5); cursor: pointer;
transition: var(--transition); padding: 0;
}
.about-slider .slider-dots button.active { background: #fff; width: 24px; border-radius: 4px; }
.about-text h3 { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; margin-bottom: 1rem; }
.about-text p { color: var(--text-secondary); margin-bottom: 1rem; font-size: 0.95rem; }
/* ─── SKILLS ─── */
#skills { background: var(--bg-surface); }
.skills-header { text-align: center; margin-bottom: 3.5rem; }
.skills-header .section-sub { margin: 0 auto; }
.skills-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 1.2rem;
}
.skill-card {
background: var(--bg-card); border: 1px solid rgba(0,0,0,0.05);
border-radius: var(--radius-md); padding: 1.5rem 1rem;
text-align: center; transition: var(--transition);
box-shadow: var(--shadow-card);
}
.skill-card:hover {
background: var(--bg-card-hover); transform: translateY(-6px);
border-color: rgba(124,58,237,0.2); box-shadow: var(--shadow-hover);
}
.skill-card i {
font-size: 2rem; margin-bottom: 0.7rem;
background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.skill-card h4 { font-size: 0.9rem; font-weight: 600; }
.skill-card p { font-size: 0.75rem; color: var(--text-secondary); margin-top: 0.3rem; }
/* ─── SERVICES ─── */
.services-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
.service-card {
background: var(--bg-card); border: 1px solid rgba(0,0,0,0.05);
border-radius: var(--radius-lg); padding: 2.5rem 2rem;
transition: var(--transition); position: relative; overflow: hidden;
box-shadow: var(--shadow-card);
}
.service-card::before {
content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
background: var(--gradient-primary); transform: scaleX(0); transform-origin: left;
transition: transform 0.5s ease;
}
.service-card:hover::before { transform: scaleX(1); }
.service-card:hover {
transform: translateY(-8px);
border-color: rgba(124,58,237,0.15);
box-shadow: var(--shadow-hover);
}
.service-icon {
width: 56px; height: 56px; border-radius: var(--radius-sm);
background: rgba(124,58,237,0.08); display: flex; align-items: center; justify-content: center;
margin-bottom: 1.2rem; font-size: 1.4rem; color: var(--accent-violet);
}
.service-card h3 { font-family: 'Space Grotesk', sans-serif; font-size: 1.2rem; margin-bottom: 0.6rem; }
.service-card p { color: var(--text-secondary); font-size: 0.9rem; line-height: 1.7; }
/* ─── PROJECTS ─── */
#projects { background: var(--bg-surface); }
.projects-header { text-align: center; margin-bottom: 3.5rem; }
.projects-header .section-sub { margin: 0 auto; }
.projects-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 1.5rem;
}
.project-card {
border-radius: var(--radius-lg); overflow: hidden;
background: var(--bg-card); border: 1px solid rgba(0,0,0,0.05);
transition: var(--transition); box-shadow: var(--shadow-card);
}
.project-card:hover { transform: translateY(-8px); border-color: rgba(124,58,237,0.15); box-shadow: var(--shadow-hover); }
.project-thumb {
height: 220px; overflow: hidden; position: relative;
}
.project-thumb img {
width: 100%; height: 100%; object-fit: cover;
transition: transform 0.6s ease;
}
.project-card:hover .project-thumb img { transform: scale(1.05); }
.project-thumb .overlay {
position: absolute; inset: 0;
background: linear-gradient(to top, rgba(0,0,0,0.35), transparent 50%);
}
.project-body { padding: 1.5rem; }
.project-body .tag {
display: inline-block; padding: 0.2rem 0.7rem; border-radius: 50px;
font-size: 0.7rem; font-weight: 500; margin-bottom: 0.7rem;
background: rgba(124,58,237,0.1); color: var(--accent-violet);
}
.project-body h3 { font-family: 'Space Grotesk', sans-serif; font-size: 1.1rem; margin-bottom: 0.4rem; }
.project-body p { color: var(--text-secondary); font-size: 0.85rem; line-height: 1.6; margin-bottom: 1rem; }
.project-link {
font-size: 0.8rem; font-weight: 600; color: var(--accent-violet);
display: inline-flex; align-items: center; gap: 0.4rem;
}
.project-link i { transition: var(--transition); font-size: 0.7rem; }
.project-link:hover i { transform: translateX(4px); }
/* ─── TESTIMONIALS ─── */
.testimonials-grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
}
.testimonial-card {
background: var(--bg-card); border: 1px solid rgba(0,0,0,0.05);
border-radius: var(--radius-lg); padding: 2rem;
box-shadow: var(--shadow-card); transition: var(--transition);
}
.testimonial-card:hover { border-color: rgba(124,58,237,0.15); transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.testimonial-card .stars { color: #f59e0b; font-size: 0.85rem; margin-bottom: 1rem; letter-spacing: 2px; }
.testimonial-card blockquote { color: var(--text-secondary); font-size: 0.9rem; line-height: 1.7; font-style: italic; margin-bottom: 1.2rem; }
.testimonial-card .author { display: flex; align-items: center; gap: 0.8rem; }
.testimonial-card .author img {
width: 42px; height: 42px; border-radius: 50%; object-fit: cover;
border: 2px solid rgba(124,58,237,0.15);
}
.testimonial-card .author h4 { font-size: 0.85rem; font-weight: 600; }
.testimonial-card .author p { font-size: 0.75rem; color: var(--text-secondary); }
/* ─── CTA BANNER ─── */
.cta-banner {
background: var(--gradient-primary); border-radius: var(--radius-lg);
padding: 4rem 3rem; text-align: center; position: relative; overflow: hidden;
}
.cta-banner::before {
content: ''; position: absolute; inset: 0;
background: radial-gradient(ellipse 60% 50% at 30% 50%, rgba(255,255,255,0.15) 0%, transparent 70%);
}
.cta-banner * { position: relative; z-index: 1; }
.cta-banner h2 { font-family: 'Space Grotesk', sans-serif; font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: 1rem; }
.cta-banner p { font-size: 1rem; opacity: 0.9; margin-bottom: 1.5rem; max-width: 500px; margin-left: auto; margin-right: auto; }
.cta-banner .btn-outline { border-color: rgba(255,255,255,0.4); color: #fff; }
.cta-banner .btn-outline:hover { border-color: #fff; background: rgba(255,255,255,0.1); }
/* ─── CONTACT ─── */
.contact-grid {
display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
}
.contact-info h3 { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; margin-bottom: 0.8rem; }
.contact-info p { color: var(--text-secondary); font-size: 0.95rem; margin-bottom: 2rem; }
.contact-item {
display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem;
}
.contact-item .ci-icon {
width: 44px; height: 44px; border-radius: 12px;
background: rgba(124,58,237,0.08); display: flex; align-items: center; justify-content: center;
color: var(--accent-violet); font-size: 1rem; flex-shrink: 0;
}
.contact-item h4 { font-size: 0.85rem; }
.contact-item p { font-size: 0.8rem; margin-bottom: 0; color: var(--text-secondary); }
.contact-form { display: flex; flex-direction: column; gap: 1rem; }
.contact-form input, .contact-form textarea {
padding: 1rem 1.2rem; border-radius: 12px;
background: var(--bg-card); border: 1px solid rgba(0,0,0,0.08);
color: var(--text-primary); font-family: 'Inter', sans-serif;
font-size: 0.9rem; transition: var(--transition); outline: none;
}
.contact-form input:focus, .contact-form textarea:focus {
border-color: var(--accent-violet);
background: #FFF;
box-shadow: 0 0 0 3px rgba(124,58,237,0.1);
}
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--text-secondary); }
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-form .btn { align-self: flex-start; }
/* ─── FOOTER ─── */
footer {
border-top: 1px solid rgba(0,0,0,0.05);
padding: 2rem 0; text-align: center;
}
footer .social-links { display: flex; justify-content: center; gap: 1rem; margin-bottom: 1rem; }
footer .social-links a {
width: 40px; height: 40px; border-radius: 50%;
background: rgba(0,0,0,0.04); display: flex; align-items: center; justify-content: center;
color: var(--text-secondary); transition: var(--transition); font-size: 0.9rem;
}
footer .social-links a:hover { background: var(--accent-violet); color: #fff; transform: translateY(-3px); }
footer p { font-size: 0.8rem; color: var(--text-secondary); }
/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
.about-grid { grid-template-columns: 1fr; gap: 2rem; }
.hero-image { display: none; }
.about-slider .slides .slide { height: 340px; }
.contact-grid { grid-template-columns: 1fr; }
.nav-links { display: none; }
.hamburger { display: flex; }
.nav-links.open {
display: flex; flex-direction: column;
position: fixed; top: 0; left: 0; right: 0; bottom: 0;
background: rgba(255,255,255,0.98);
justify-content: center; align-items: center; gap: 2rem;
z-index: -1; padding: 2rem;
}
.nav-links.open a { font-size: 1.2rem; }
.nav-links.open .nav-cta { font-size: 1rem !important; padding: 0.8rem 2rem; }
}
@media (max-width: 600px) {
.section { padding: 4rem 0; }
.hero-stats { gap: 1.5rem; }
.hero-stat h3 { font-size: 1.5rem; }
.projects-grid { grid-template-columns: 1fr; }
.services-grid { grid-template-columns: 1fr; }
.cta-banner { padding: 3rem 1.5rem; }
.about-slider .slides .slide { height: 280px; }
}
Available for projects & collaborations
Turning Clicks Into
Lasting Growth
I'm Ramani — a digital marketer who blends data, creativity, and strategy to help brands find their voice, reach the right audience, and scale with purpose.
About Me
Digital strategist with a storyteller's heart
I'm a self-taught digital marketer who believes that great marketing is about genuine connection . My journey started with curiosity — how do some brands just *get* their audience? That question led me into SEO, content strategy, social media, and paid advertising.
Every campaign I touch is built on three pillars: research, empathy, and iteration . Whether you're a startup looking for your first customers or an established brand ready to level up, I bring the same intensity and care to every project.
Outside of marketing, I'm endlessly learning — currently diving into conversion rate optimisation and AI-powered analytics. I believe the best marketers never stop being students.
SEO On-page, technical & local SEO
Analytics Google Analytics, data storytelling
Social Media Organic strategy & community building
Content Blogs, copywriting, email sequences
Paid Ads Meta, Google Ads, retargeting
Email Marketing Automation, nurture flows, newsletters
Canva Social creatives & brand identity
WordPress CMS management & optimisation
What I Do
Services to Scale Your Brand
End-to-end digital marketing solutions tailored to your goals and budget.
SEO Strategy
From keyword research to technical audits, I optimise your site to rank higher and attract qualified organic traffic that converts.
Social Media Growth
Content calendars, community engagement, and platform-specific strategies to build a loyal audience that trusts your brand.
Content Marketing
Blog posts, newsletters, landing page copy, and lead magnets that educate, inspire, and move people toward action.
Paid Advertising
Meta & Google Ads campaigns built on data — from audience targeting to creative testing and conversion tracking.
Email Automation
Welcome sequences, abandoned cart flows, and segmented nurture campaigns that turn subscribers into repeat customers.
Brand Strategy
Positioning, tone of voice, visual identity guidance — helping you stand out in a crowded digital landscape.
SEO
Local Bakery — Organic Growth
Audited site structure, optimised 20+ product pages, and built a local link strategy. Organic traffic grew 3x in 4 months.
Case study preview
Social Media
Wellness Coach — Instagram Growth
Developed a 30-day content strategy, redesigned visual identity, and set up engagement routines. Followers doubled and leads increased by 40%.
Case study preview
Email Marketing
E-Commerce Store — Email Flows
Built a 5-email welcome sequence, abandoned cart reminder, and weekly newsletter. Email-driven revenue increased by 60% in 8 weeks.
Case study preview
Kind Words
What People Say
Feedback from clients I've had the privilege of working with.
"Ramani brought fresh energy to our social media. Our engagement went up noticeably within the first month, and the content quality has been consistently excellent."
Ananya Sharma Founder, Amara Wellness
"Ramani's SEO audit was thorough and actionable. We saw a real lift in organic traffic within weeks. She communicates clearly and genuinely cares about the results."
Rohan Mehta Owner, Crisp & Crust Bakery
"The email flows Ramani built for our store recovered nearly 15% of abandoned carts. She has a rare mix of creative thinking and data-driven execution."
Priya Kapoor Founder, Urban Picks
Ready to grow your digital presence?
Let's talk about your goals — whether it's a one-time project, ongoing retainer, or just exploring what's possible.
// ─── Nav scroll effect ───
const navbar = document.getElementById('navbar');
window.addEventListener('scroll', () => {
navbar.classList.toggle('scrolled', window.scrollY > 50);
});
// ─── Hamburger ───
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');
});
});
// ─── Smooth scroll for all anchor links ───
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
const target = document.querySelector(this.getAttribute('href'));
if (target) {
e.preventDefault();
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
});
});
// ─── IntersectionObserver for fade-up & stagger ───
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
observer.unobserve(entry.target);
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.fade-up').forEach(el => observer.observe(el));
document.querySelectorAll('.stagger').forEach(el => observer.observe(el));
// ─── Mouse parallax on hero grid lines ───
const heroGrid = document.querySelector('.hero-grid-lines');
if (heroGrid) {
document.querySelector('#hero').addEventListener('mousemove', (e) => {
const rect = e.currentTarget.getBoundingClientRect();
const x = (e.clientX - rect.left) / rect.width - 0.5;
const y = (e.clientY - rect.top) / rect.height - 0.5;
heroGrid.style.transform = `translate(${x * 12}px, ${y * 12}px)`;
});
}
// ─── Image Slider ───
(function() {
const track = document.getElementById('sliderTrack');
const slides = track.querySelectorAll('.slide');
const dotsContainer = document.getElementById('sliderDots');
const prevBtn = document.getElementById('sliderPrev');
const nextBtn = document.getElementById('sliderNext');
let current = 0;
const total = slides.length;
let autoplay;
function createDots() {
for (let i = 0; i goTo(i));
dotsContainer.appendChild(btn);
}
}
function goTo(index) {
current = index;
track.style.transform = `translateX(-${current * 100}%)`;
dotsContainer.querySelectorAll('button').forEach((btn, i) => {
btn.classList.toggle('active', i === current);
});
resetAutoplay();
}
function next() { goTo((current + 1) % total); }
function prev() { goTo((current - 1 + total) % total); }
function resetAutoplay() {
clearInterval(autoplay);
autoplay = setInterval(next, 4000);
}
prevBtn.addEventListener('click', prev);
nextBtn.addEventListener('click', next);
createDots();
resetAutoplay();
})();
// ─── Dynamic year in footer ───
document.querySelector('footer p').innerHTML =
`© ${new Date().getFullYear()} Ramani. Built with curiosity & caffeine.
Say hi `;