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.

12+

Projects Delivered

8+

Happy Clients

2x

Avg. Engagement Growth

Professional marketing discussion and strategy meeting
SCROLL
Digital marketing strategy session
Social media content planning
Marketing analytics dashboard
SEO and content optimization
Business growth analytics

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.

Tools & Crafts

The disciplines I use daily to drive real results for brands.

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

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.

Recent Explorations

Every project is a story — here are a few I'm proud to share. New work drops regularly as I keep learning and building.

SEO audit and growth strategy project
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 campaign project
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 campaign project
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

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."
Client photo

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."
Client photo

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."
Client photo

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.

Say hello — let's build something great

Got a project, a freelance opportunity, or just want to connect? I'm always open to conversations that lead to impact.

Availability

Open to freelance & full-time roles

Response Time

Usually within 12–24 hours

© 2026 Ramani. Built with curiosity & caffeine. Say hi

// ─── 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`;