Search and SEO
Technical fixes, topic clusters and digital PR that put you on page one for terms that convert, not vanity volume.
Technical auditsContentLink earning
/* ———- tokens ———- */
:root{
–ink:#120C34; –ink-deep:#0A0726; –plum:#241757;
–violet:#7A5CFF; –amber:#2FE0C8; –rose:#E14BE8; –mint:#5CE6A8;
–cyan:#35C8F5; –grad:linear-gradient(115deg,#2FE0C8,#35C8F5 32%,#7A5CFF 66%,#E14BE8);
–lilac:#EDE9FF; –mute:#A79FD6; –line:rgba(167,159,214,.18);
–card:rgba(46,30,107,.42); –glass:rgba(237,233,255,.05);
–shadow:0 30px 70px -30px rgba(5,2,25,.9);
–maxw:1200px; –r-lg:26px;
–d:’Bricolage Grotesque’,Georgia,serif; –b:’Instrument Sans’,system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme=”light”]){ –ink:#151038; –lilac:#EDE9FF; } }
:root[data-theme=”dark”]{ –ink:#151038; –lilac:#EDE9FF; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(–ink); color:var(–lilac); font-family:var(–b);
font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden}
body::before{content:””; position:fixed; inset:0; z-index:0; pointer-events:none;
background:
radial-gradient(820px 480px at 10% -6%, rgba(53,200,245,.26), transparent 62%),
radial-gradient(760px 520px at 88% 6%, rgba(225,75,232,.22), transparent 64%),
radial-gradient(900px 600px at 62% 46%, rgba(122,92,255,.20), transparent 66%),
radial-gradient(900px 700px at 40% 108%, rgba(47,224,200,.14), transparent 62%)}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(–d); font-weight:800; line-height:1.03; letter-spacing:-.025em; margin:0}
h1{font-size:clamp(2.9rem,7.2vw,5.4rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.4rem)}
h3{font-size:1.32rem; font-weight:600; letter-spacing:-.015em}
p{margin:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2.5px solid var(–amber); outline-offset:3px; border-radius:6px}
.wrap{max-width:var(–maxw); margin:0 auto; padding:0 24px; position:relative; z-index:2}
section{padding:clamp(72px,9vw,124px) 0; position:relative; z-index:2}
.lede{color:var(–mute); max-width:56ch; font-size:1.06rem; margin-top:18px}
.kicker{font-family:var(–d); font-size:.92rem; font-weight:600; color:var(–amber);
margin-bottom:14px; display:flex; align-items:center; gap:10px}
.kicker::before{content:””; width:26px; height:2px; background:var(–amber); border-radius:2px}
.btn{position:relative; display:inline-flex; align-items:center; gap:10px; border:0; cursor:pointer;
font-family:var(–b); font-weight:600; font-size:.98rem; padding:15px 28px; border-radius:100px;
color:#fff; background:linear-gradient(115deg,#2FE0C8,#35C8F5 34%,#7A5CFF 68%,#E14BE8);
background-size:220% 220%; background-position:0% 50%;
box-shadow:0 0 0 1px rgba(255,255,255,.14) inset, 0 14px 30px -10px rgba(53,200,245,.55),
0 18px 46px -16px rgba(225,75,232,.55);
transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, background-position .6s}
.btn::after{content:””; position:absolute; inset:-1px; border-radius:inherit; padding:1px;
background:linear-gradient(115deg,#8FF6E8,#B9DCFF 40%,#E9D6FF); opacity:0; transition:opacity .3s;
-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
-webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none}
.btn:hover{transform:translateY(-3px); background-position:100% 50%;
box-shadow:0 0 0 1px rgba(255,255,255,.22) inset, 0 18px 38px -10px rgba(53,200,245,.75),
0 26px 58px -16px rgba(225,75,232,.75)}
.btn:hover::after{opacity:1}
.btn:active{transform:translateY(-1px)}
.btn.ghost{background:rgba(53,200,245,.07); border:1px solid var(–line); color:var(–lilac);
box-shadow:none; background-size:auto}
.btn.ghost:hover{border-color:#35C8F5; color:#8FE9FA; box-shadow:0 0 26px -6px rgba(53,200,245,.5)}
.btn.ghost::after{display:none}
.card{background:var(–card); border:1px solid var(–line); border-radius:var(–r-lg);
padding:30px; backdrop-filter:blur(14px); box-shadow:var(–shadow); position:relative; overflow:hidden}
.head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; margin-bottom:52px}
/* ———- nav ———- */
header{position:fixed; top:0; left:0; right:0; z-index:60; padding:14px 0;
border-bottom:1px solid transparent; transition:background .3s,border-color .3s}
header.stuck{background:rgba(14,10,38,.85); backdrop-filter:blur(18px); border-color:var(–line)}
.nav{display:flex; align-items:center; justify-content:space-between; gap:24px}
.logo{display:flex; align-items:center; gap:11px; font-family:var(–d); font-weight:800;
font-size:1.22rem; letter-spacing:-.03em}
.logo .mark{width:34px; height:34px; flex:0 0 34px}
.links{display:flex; gap:30px; font-size:.95rem; color:var(–mute); font-weight:500}
.links a{position:relative; padding:4px 0}
.links a::after{content:””; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(–amber); transition:width .3s}
.links a:hover{color:var(–lilac)} .links a:hover::after{width:100%}
.nav .btn{padding:12px 22px; font-size:.9rem}
.burger{display:none; background:none; border:1px solid var(–line); border-radius:10px; padding:9px 11px; cursor:pointer}
.burger span{display:block; width:20px; height:2px; background:var(–lilac); margin:4px 0; border-radius:2px}
/* ———- 1. hero ———- */
.hero{padding:clamp(140px,17vw,200px) 0 clamp(80px,9vw,120px); min-height:100svh; display:flex; align-items:center}
#scene{position:absolute; inset:0; z-index:1; width:100%; height:100%}
.hero-scrim{position:absolute; inset:0; z-index:1;
background:
linear-gradient(100deg, rgba(18,12,52,.92) 0%, rgba(18,12,52,.82) 30%, rgba(18,12,52,.42) 52%, rgba(18,12,52,.05) 68%),
linear-gradient(180deg, rgba(18,12,52,.55) 0%, rgba(18,12,52,0) 22%, rgba(18,12,52,0) 78%, rgba(18,12,52,.75) 100%);
pointer-events:none}
@media (max-width:1020px){
.hero-scrim{background:
linear-gradient(180deg, rgba(18,12,52,.6) 0%, rgba(18,12,52,.2) 30%, rgba(18,12,52,.55) 72%, rgba(18,12,52,.92) 100%)}
}
.hero .wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center}
.hero h1{text-shadow:0 1px 0 rgba(122,92,255,.55),0 2px 0 rgba(122,92,255,.35),
0 3px 0 rgba(122,92,255,.22),0 4px 0 rgba(122,92,255,.12),0 22px 44px rgba(8,4,32,.85)}
.hero h1 .flow{background:linear-gradient(100deg,#2FE0C8,#35C8F5 28%,#7A5CFF 62%,#E14BE8);
-webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:none}
/* brand lockup */
.wordmark{font-family:var(–d); font-weight:800; letter-spacing:-.03em; line-height:1; display:block}
.wordmark .b{background:linear-gradient(105deg,#2FE0C8,#35C8F5 30%,#7A5CFF 65%,#E14BE8);
-webkit-background-clip:text; background-clip:text; color:transparent}
.logo .lock{display:flex; flex-direction:column; gap:3px}
.logo .mark{width:38px; height:38px; flex:0 0 38px; filter:drop-shadow(0 6px 14px rgba(53,200,245,.5))}
footer .logo .mark{width:44px; height:44px; flex:0 0 44px}
.logo .tagline{font-family:var(–b); font-size:.52rem; letter-spacing:.34em; color:var(–mute);
font-weight:500; text-transform:uppercase}
/* 3D spinning medallion */
.medallion{position:absolute; top:-70px; left:-56px; width:118px; height:118px; perspective:700px; z-index:5}
.medallion .spin{width:100%; height:100%; position:relative; transform-style:preserve-3d;
animation:spin3d 11s linear infinite}
.medallion .face{position:absolute; inset:0; display:grid; place-items:center; border-radius:26px;
background:linear-gradient(150deg,rgba(53,200,245,.22),rgba(225,75,232,.2)); border:1px solid var(–line);
backdrop-filter:blur(8px); box-shadow:0 22px 50px -22px rgba(122,92,255,.9)}
.medallion .back{transform:rotateY(180deg)}
@keyframes spin3d{to{transform:rotateY(360deg)}}
.hero-tag{display:inline-flex; align-items:center; gap:9px; font-size:.88rem; color:var(–mute);
border:1px solid var(–line); background:var(–glass); padding:8px 16px; border-radius:100px; margin-bottom:26px}
.dot{width:7px; height:7px; border-radius:50%; background:#35C8F5;
box-shadow:0 0 0 0 rgba(53,200,245,.7); animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(53,200,245,0)}100%{box-shadow:0 0 0 0 rgba(53,200,245,0)}}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:34px}
.facts{display:flex; gap:34px; margin-top:44px; flex-wrap:wrap; border-top:1px solid var(–line); padding-top:24px}
.facts b{font-family:var(–d); font-size:1.7rem; display:block; line-height:1}
.facts small{color:var(–mute); font-size:.84rem}
.panel-stage{perspective:1400px}
.panel{transform-style:preserve-3d; transform:rotateY(-15deg) rotateX(8deg);
background:linear-gradient(160deg,rgba(46,30,107,.85),rgba(21,16,56,.9));
border:1px solid var(–line); border-radius:22px; padding:24px; box-shadow:var(–shadow);
animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:rotateY(-15deg) rotateX(8deg) translateY(0)}
50%{transform:rotateY(-11deg) rotateX(6deg) translateY(-16px)}}
.panel-row{display:flex; justify-content:space-between; align-items:center; font-size:.85rem; color:var(–mute); margin-bottom:16px}
.panel-metric{font-family:var(–d); font-size:2.6rem; line-height:1; margin-bottom:4px}
.bars{display:flex; align-items:flex-end; gap:8px; height:98px; margin-top:20px}
.bars i{flex:1; border-radius:6px 6px 3px 3px; transform-origin:bottom;
background:linear-gradient(180deg,var(–violet),rgba(122,92,255,.18));
animation:grow 1.1s cubic-bezier(.2,.9,.25,1) backwards}
.bars i:nth-child(5){background:linear-gradient(180deg,var(–amber),rgba(47,224,200,.2))}
@keyframes grow{from{transform:scaleY(.05)}}
.chip{position:absolute; background:rgba(14,10,38,.92); border:1px solid var(–line); border-radius:14px;
padding:10px 14px; font-size:.8rem; display:flex; align-items:center; gap:8px; box-shadow:var(–shadow)}
.chip-a{top:-18px; right:-14px; animation:float2 5.5s ease-in-out infinite}
.chip-b{bottom:-22px; left:-26px; animation:float2 6.5s ease-in-out .8s infinite}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
/* ———- 2. marquee ———- */
.proof{padding:38px 0; border-top:1px solid var(–line); border-bottom:1px solid var(–line); background:rgba(14,10,38,.5)}
.proof .said{text-align:center; color:var(–mute); font-size:.87rem; margin-bottom:22px}
.track{display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.track ul{display:flex; gap:64px; list-style:none; margin:0; padding:0 32px; animation:slide 30s linear infinite}
.track li{font-family:var(–d); font-weight:600; font-size:1.26rem; color:var(–mute); opacity:.75;
white-space:nowrap; display:flex; align-items:center; gap:9px; transition:opacity .3s,color .3s}
.track:hover ul{animation-play-state:paused}
.track li:hover{opacity:1; color:var(–lilac)}
@keyframes slide{to{transform:translateX(-50%)}}
/* ———- 3. services ———- */
.svc{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1600px}
.svc .card{transform-style:preserve-3d; transition:transform .35s cubic-bezier(.2,.9,.3,1), border-color .35s}
.svc .card:hover{border-color:rgba(47,224,200,.55)}
.svc .card::after{content:””; position:absolute; inset:0; opacity:0; transition:opacity .35s; pointer-events:none;
background:radial-gradient(400px 200px at var(–mx,50%) var(–my,50%), rgba(122,92,255,.22), transparent 70%)}
.svc .card:hover::after{opacity:1}
.svc h3{margin:20px 0 10px} .svc p{color:var(–mute); font-size:.97rem}
.ico{width:62px; height:62px; border-radius:18px; display:grid; place-items:center;
background:linear-gradient(150deg,rgba(53,200,245,.28),rgba(225,75,232,.2)); border:1px solid var(–line);
box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 16px 30px -18px rgba(53,200,245,.9);
transform:translateZ(38px)}
.tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px}
.tags span{font-size:.76rem; color:var(–mute); border:1px solid var(–line); padding:4px 11px; border-radius:100px}
/* ———- 4. split ———- */
.split{display:grid; grid-template-columns:1fr 1.08fr; gap:60px; align-items:center}
.ticks{list-style:none; padding:0; margin:30px 0 0; display:grid; gap:16px}
.ticks li{display:flex; gap:14px; align-items:flex-start; color:var(–mute); font-size:.99rem}
.ticks svg{flex:0 0 22px; margin-top:3px}
/* ———- 5. stats ———- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(–line);
border-radius:var(–r-lg); overflow:hidden; background:rgba(14,10,38,.55)}
.stat{padding:38px 30px; border-right:1px solid var(–line)}
.stat:last-child{border-right:0}
.stat b{font-family:var(–d); font-size:clamp(2.2rem,4vw,3.1rem); display:block; line-height:1;
background:linear-gradient(110deg,#2FE0C8,#35C8F5 34%,#9E7BFF 68%,#E14BE8); -webkit-background-clip:text; background-clip:text; color:transparent}
.stat small{color:var(–mute); font-size:.87rem; display:block; margin-top:10px}
/* ———- 6. process ———- */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:s}
.step{position:relative; padding-top:42px}
.step::before{counter-increment:s; content:”0″ counter(s); position:absolute; top:0; left:0;
font-family:var(–d); font-size:1.02rem; color:var(–ink-deep); background:var(–amber);
width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:800}
.step::after{content:””; position:absolute; top:17px; left:44px; right:-14px; height:1px;
background:repeating-linear-gradient(90deg,var(–line) 0 7px,transparent 7px 14px)}
.step:last-child::after{display:none}
.step h3{margin-bottom:9px} .step p{color:var(–mute); font-size:.95rem}
/* ———- 7. work ———- */
.work{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1500px}
.case{padding:0; transform-style:preserve-3d; transition:transform .4s cubic-bezier(.2,.9,.3,1)}
.case .art{height:190px; position:relative; overflow:hidden; border-bottom:1px solid var(–line)}
.case .body{padding:26px 28px 30px}
.case h3{margin-bottom:8px}
.case p{color:var(–mute); font-size:.94rem}
.result{display:flex; gap:26px; margin-top:20px; padding-top:18px; border-top:1px solid var(–line)}
.result b{font-family:var(–d); font-size:1.5rem; color:var(–amber); display:block; line-height:1}
.result small{color:var(–mute); font-size:.78rem}
/* ———- 8. dashboard ———- */
.dash{background:linear-gradient(150deg,rgba(46,30,107,.6),rgba(14,10,38,.8)); border:1px solid var(–line);
border-radius:var(–r-lg); padding:34px; box-shadow:var(–shadow); overflow-x:auto}
.dash-legend{display:flex; gap:22px; flex-wrap:wrap; font-size:.85rem; color:var(–mute); margin-bottom:22px}
.dash-legend i{width:10px; height:10px; border-radius:3px; display:inline-block; margin-right:7px}
/* ———- 9. testimonials ———- */
.quotes{overflow:hidden}
.rail{display:flex; transition:transform .55s cubic-bezier(.2,.9,.3,1)}
.quote{flex:0 0 100%; padding:4px}
.quote blockquote{margin:0; font-family:var(–d); font-weight:500;
font-size:clamp(1.35rem,2.6vw,1.95rem); line-height:1.4; letter-spacing:-.02em}
.who{display:flex; align-items:center; gap:14px; margin-top:28px}
.who small{color:var(–mute); font-size:.86rem; display:block}
.who strong{font-weight:600; font-size:.98rem}
.q-nav{display:flex; gap:10px; margin-top:30px}
.q-nav button{width:38px; height:38px; border-radius:50%; border:1px solid var(–line);
background:transparent; color:var(–lilac); cursor:pointer; display:grid; place-items:center}
.q-nav button:hover{border-color:var(–amber); color:var(–amber)}
/* ———- 10. pricing ———- */
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start}
.plan.featured{border-color:rgba(47,224,200,.5);
background:linear-gradient(170deg,rgba(53,200,245,.24),rgba(122,92,255,.28) 55%,rgba(36,23,87,.5));
transform:scale(1.035) translateZ(0)}
.badge{position:absolute; top:22px; right:22px; font-size:.74rem; background:var(–amber);
color:var(–ink-deep); padding:4px 12px; border-radius:100px; font-weight:600}
.price{font-family:var(–d); font-size:2.9rem; line-height:1; margin:14px 0 4px}
.price sub{font-family:var(–b); font-size:.86rem; color:var(–mute); font-weight:400; bottom:0}
.plan ul{list-style:none; padding:0; margin:24px 0 28px; display:grid; gap:12px; font-size:.94rem; color:var(–mute)}
.plan li{display:flex; gap:11px; align-items:flex-start}
.plan li::before{content:”·”; color:var(–amber); font-weight:800}
.plan .btn{width:100%; justify-content:center}
/* ———- 11. team ———- */
.team{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.member{text-align:center; padding:30px 22px}
.member .av{width:98px; height:98px; margin:0 auto 18px; border-radius:50%; overflow:hidden; border:1px solid var(–line)}
.member small{color:var(–mute); font-size:.85rem}
/* ———- 12. insights ———- */
.posts{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.post{padding:0}
.post .thumb{height:132px; border-bottom:1px solid var(–line); overflow:hidden}
.post .body{padding:24px 26px 28px}
.post .meta{font-size:.8rem; color:var(–mute); margin-bottom:10px}
.post h3{font-size:1.14rem; margin-bottom:10px}
.post .more{color:var(–amber); font-size:.9rem; font-weight:600}
/* ———- 13. faq ———- */
.faq{max-width:840px; margin:0 auto}
details{border-bottom:1px solid var(–line); padding:22px 4px}
summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px;
font-family:var(–d); font-weight:600; font-size:1.12rem; letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary .pm{flex:0 0 26px; height:26px; border:1px solid var(–line); border-radius:50%;
display:grid; place-items:center; transition:transform .3s,background .3s,color .3s}
details[open] summary .pm{transform:rotate(45deg); background:var(–amber); color:var(–ink-deep)}
details p{color:var(–mute); font-size:.98rem; margin-top:14px; max-width:68ch}
/* ———- 14. cta ———- */
.cta-box{border:1px solid var(–line); border-radius:34px; padding:clamp(36px,5vw,62px);
background:linear-gradient(140deg,rgba(47,224,200,.22),rgba(53,200,245,.24) 28%,rgba(122,92,255,.3) 58%,rgba(225,75,232,.2));
display:grid; grid-template-columns:1fr .9fr; gap:52px; align-items:center; box-shadow:var(–shadow)}
form{display:grid; gap:14px}
.f2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
input,select,textarea{width:100%; font-family:var(–b); font-size:.96rem; color:var(–lilac);
background:rgba(14,10,38,.6); border:1px solid var(–line); border-radius:12px; padding:14px 16px}
textarea{resize:vertical; min-height:96px}
input::placeholder,textarea::placeholder{color:#8a82b8}
input:focus,select:focus,textarea:focus{border-color:var(–amber); outline:none}
.form-note{font-size:.85rem; color:var(–mute)}
.form-msg{font-size:.92rem; color:var(–mint); display:none}
.form-msg.err{color:var(–rose)}
/* ———- footer ———- */
footer{border-top:1px solid var(–line); padding:64px 0 34px; background:rgba(14,10,38,.6); position:relative; z-index:2}
.fgrid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px}
.fgrid h4{font-family:var(–b); font-size:.92rem; font-weight:600; margin-bottom:16px}
.fgrid ul{list-style:none; padding:0; margin:0; display:grid; gap:10px; font-size:.93rem; color:var(–mute)}
.fgrid a:hover{color:var(–amber)}
.fbot{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:48px;
padding-top:24px; border-top:1px solid var(–line); color:var(–mute); font-size:.85rem}
/* ———- reveal ———- */
.rv{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.9,.3,1)}
.rv.in{opacity:1; transform:none}
/* ———- responsive ———- */
@media (max-width:1020px){
.hero .wrap,.split,.cta-box{grid-template-columns:1fr}
.svc,.work,.posts,.steps,.team{grid-template-columns:repeat(2,1fr)}
.plans{grid-template-columns:1fr}
.plan.featured{transform:none}
.stats{grid-template-columns:repeat(2,1fr)}
.stat:nth-child(2){border-right:0}
.stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(–line)}
.step::after{display:none}
.fgrid{grid-template-columns:1fr 1fr}
.links{display:none}
.burger{display:block}
.panel{transform:none; animation:none}
.medallion{display:none}
.chip-b{left:0}
}
@media (max-width:640px){
body{font-size:16px}
.svc,.work,.posts,.steps,.team,.f2,.fgrid{grid-template-columns:1fr}
.stats{grid-template-columns:1fr}
.stat{border-right:0; border-bottom:1px solid var(–line)}
.nav .btn{display:none}
.facts{gap:22px}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
html{scroll-behavior:auto}
.rv{opacity:1; transform:none}
}
Taking on four new partners for Q4
We build search, social and paid systems that feed each other, so one good week compounds into a quarter you can forecast. Technifluence runs growth for 60+ brands across India, the UAE and the US.
Get your growth plan
See what we shipped
0%Median revenue lift, year one
0xBlended return on ad spend
0Brands on retainer
Pipeline this month▲ 28.4%
₹4.82 Cr
Attributed across six channels
CAC down 41%
Top three for 214 keywords
Trusted by teams who measure everything
Pick a single service or hand us the whole funnel. Either way you get the same weekly reporting, the same senior team, and no junior handoffs.
Technical fixes, topic clusters and digital PR that put you on page one for terms that convert, not vanity volume.
Technical auditsContentLink earning
Google, Meta, LinkedIn and Amazon managed against contribution margin. We kill what leaks and scale what pays within 14 days.
SearchSocialRetail media
Short-form built by an in-house studio, plus a vetted creator bench. Thirty concepts a month, tested against real watch-through data.
Reels and ShortsCreatorsCommunity
Email, WhatsApp and push flows that carry the second and third purchase, so paid spend stops doing all the work alone.
FlowsSegmentationWin-back
Server-side tracking, clean warehouse models and one dashboard your finance team will accept without a translation layer.
GA4 and GTMWarehouseIncrementality
Positioning, identity and pages that load in under a second. Conversion work grounded in session replays, not opinion.
PositioningDesignCRO
A creator video makes branded search spike. Branded search makes paid cheaper. Cheaper paid funds more content. Most agencies manage these as separate line items, which is exactly why the numbers plateau.
Growth
loop
We pull two years of your analytics, ad accounts and search data, then show you where the money is leaking. You keep the document either way.
A channel-by-channel forecast tied to margin, with the budget split we would defend in your board meeting.
Tracking fixed, creative shot, campaigns rebuilt. Most accounts are live again inside twelve working days.
Weekly review, monthly reallocation, quarterly repositioning. The loop tightens every cycle.
A subscription roaster stuck at flat repeat rates. We rebuilt lifecycle flows around brew-cycle timing and moved paid budget to prospecting.
+218%Repeat revenue-37%Blended CAC
A diagnostics brand competing against aggregators. Programmatic location pages plus clinician-led content took them off the paid treadmill.
9.4xOrganic sessions₹0Spend on brand terms
B2B SaaS with a long cycle and no attribution. Server-side tracking plus a LinkedIn-to-search handoff made pipeline finally traceable.
+63%Qualified demos2.9xPipeline per rupee
No monthly PDF theatre. A live board with spend, contribution and channel mix, plus a written note every Friday explaining what changed and why.
Revenue
Ad spend
Contribution margin
Q4 peak, 4.1x return
We had been through three agencies who all reported clicks. Technifluence opened with our gross margin and built backwards from it, and that reframed the whole relationship.
Meera RaghunathanFounder, Latitude Coffee
Eleven days in, they found a tracking bug that had been under-reporting our best campaign by a third. The retainer paid for itself before the first invoice cleared.
Arjun DuttaHead of Growth, Orbitsell
The Friday note is the thing I would miss most. Two paragraphs, plain English, telling me exactly what moved and what they are doing about it on Monday.
Sana KapadiaMarketing lead, Kavach Health
Charging a cut of ad budget rewards us for spending more of your money. We would rather be paid to make it work.
For brands under ₹15L monthly revenue finding their first repeatable channel.
₹1.2L / month
The full loop, for teams ready to move budget between channels every month.
₹3.4L / month
A senior pod inside your business, on your Slack, for multi-market operators.
Custom / quarterly
Partner, paid media
Twelve years across retail and D2C. Previously ran ₹90 Cr in annual spend.
Partner, search
Technical SEO for marketplaces and health platforms. Writes our crawl tooling.
Head of analytics
Builds the warehouse models finance teams sign off on without arguing.
Creative director
Runs the in-house studio. Ships thirty tested concepts every month.
Three months, because nothing meaningful resolves faster than that. After the first quarter it moves to rolling monthly with 30 days’ notice. We would rather you stay because the numbers hold.
Both arrangements work. Roughly half our clients have an internal marketer who owns brand while we run acquisition. On the Embedded plan we train your team to take channels back over time.
You do, from day one. Everything is built inside your own accounts and shared drives. If we part ways you keep the assets, the tracking setup and the documentation.
Paid media works best above roughly ₹8L a month in spend. Below that we usually recommend starting with search and lifecycle, where the compounding does not need budget to show up.
Tracking and paid efficiency shift within two weeks. Search and lifecycle take a quarter. The median client sees a first clear lift at day eleven, usually from fixing measurement rather than adding spend.
Send a few lines about your business and we will come back within one working day with an honest read, including if we think you do not need an agency yet.
hello@technifluence.comWritten enquiries
+91 98100 22145Mon to Fri, 10am to 7pm IST
/* ———- tokens ———- */
:root{
–ink:#120C34; –ink-deep:#0A0726; –plum:#241757;
–violet:#7A5CFF; –amber:#2FE0C8; –rose:#E14BE8; –mint:#5CE6A8;
–cyan:#35C8F5; –grad:linear-gradient(115deg,#2FE0C8,#35C8F5 32%,#7A5CFF 66%,#E14BE8);
–lilac:#EDE9FF; –mute:#A79FD6; –line:rgba(167,159,214,.18);
–card:rgba(46,30,107,.42); –glass:rgba(237,233,255,.05);
–shadow:0 30px 70px -30px rgba(5,2,25,.9);
–maxw:1200px; –r-lg:26px;
–d:’Bricolage Grotesque’,Georgia,serif; –b:’Instrument Sans’,system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme=”light”]){ –ink:#151038; –lilac:#EDE9FF; } }
:root[data-theme=”dark”]{ –ink:#151038; –lilac:#EDE9FF; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(–ink); color:var(–lilac); font-family:var(–b);
font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden}
body::before{content:””; position:fixed; inset:0; z-index:0; pointer-events:none;
background:
radial-gradient(820px 480px at 10% -6%, rgba(53,200,245,.26), transparent 62%),
radial-gradient(760px 520px at 88% 6%, rgba(225,75,232,.22), transparent 64%),
radial-gradient(900px 600px at 62% 46%, rgba(122,92,255,.20), transparent 66%),
radial-gradient(900px 700px at 40% 108%, rgba(47,224,200,.14), transparent 62%)}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(–d); font-weight:800; line-height:1.03; letter-spacing:-.025em; margin:0}
h1{font-size:clamp(2.9rem,7.2vw,5.4rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.4rem)}
h3{font-size:1.32rem; font-weight:600; letter-spacing:-.015em}
p{margin:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2.5px solid var(–amber); outline-offset:3px; border-radius:6px}
.wrap{max-width:var(–maxw); margin:0 auto; padding:0 24px; position:relative; z-index:2}
section{padding:clamp(72px,9vw,124px) 0; position:relative; z-index:2}
.lede{color:var(–mute); max-width:56ch; font-size:1.06rem; margin-top:18px}
.kicker{font-family:var(–d); font-size:.92rem; font-weight:600; color:var(–amber);
margin-bottom:14px; display:flex; align-items:center; gap:10px}
.kicker::before{content:””; width:26px; height:2px; background:var(–amber); border-radius:2px}
.btn{position:relative; display:inline-flex; align-items:center; gap:10px; border:0; cursor:pointer;
font-family:var(–b); font-weight:600; font-size:.98rem; padding:15px 28px; border-radius:100px;
color:#fff; background:linear-gradient(115deg,#2FE0C8,#35C8F5 34%,#7A5CFF 68%,#E14BE8);
background-size:220% 220%; background-position:0% 50%;
box-shadow:0 0 0 1px rgba(255,255,255,.14) inset, 0 14px 30px -10px rgba(53,200,245,.55),
0 18px 46px -16px rgba(225,75,232,.55);
transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, background-position .6s}
.btn::after{content:””; position:absolute; inset:-1px; border-radius:inherit; padding:1px;
background:linear-gradient(115deg,#8FF6E8,#B9DCFF 40%,#E9D6FF); opacity:0; transition:opacity .3s;
-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
-webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none}
.btn:hover{transform:translateY(-3px); background-position:100% 50%;
box-shadow:0 0 0 1px rgba(255,255,255,.22) inset, 0 18px 38px -10px rgba(53,200,245,.75),
0 26px 58px -16px rgba(225,75,232,.75)}
.btn:hover::after{opacity:1}
.btn:active{transform:translateY(-1px)}
.btn.ghost{background:rgba(53,200,245,.07); border:1px solid var(–line); color:var(–lilac);
box-shadow:none; background-size:auto}
.btn.ghost:hover{border-color:#35C8F5; color:#8FE9FA; box-shadow:0 0 26px -6px rgba(53,200,245,.5)}
.btn.ghost::after{display:none}
.card{background:var(–card); border:1px solid var(–line); border-radius:var(–r-lg);
padding:30px; backdrop-filter:blur(14px); box-shadow:var(–shadow); position:relative; overflow:hidden}
.head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; margin-bottom:52px}
/* ———- nav ———- */
header{position:fixed; top:0; left:0; right:0; z-index:60; padding:14px 0;
border-bottom:1px solid transparent; transition:background .3s,border-color .3s}
header.stuck{background:rgba(14,10,38,.85); backdrop-filter:blur(18px); border-color:var(–line)}
.nav{display:flex; align-items:center; justify-content:space-between; gap:24px}
.logo{display:flex; align-items:center; gap:11px; font-family:var(–d); font-weight:800;
font-size:1.22rem; letter-spacing:-.03em}
.logo .mark{width:34px; height:34px; flex:0 0 34px}
.links{display:flex; gap:30px; font-size:.95rem; color:var(–mute); font-weight:500}
.links a{position:relative; padding:4px 0}
.links a::after{content:””; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(–amber); transition:width .3s}
.links a:hover{color:var(–lilac)} .links a:hover::after{width:100%}
.nav .btn{padding:12px 22px; font-size:.9rem}
.burger{display:none; background:none; border:1px solid var(–line); border-radius:10px; padding:9px 11px; cursor:pointer}
.burger span{display:block; width:20px; height:2px; background:var(–lilac); margin:4px 0; border-radius:2px}
/* ———- 1. hero ———- */
.hero{padding:clamp(140px,17vw,200px) 0 clamp(80px,9vw,120px); min-height:100svh; display:flex; align-items:center}
#scene{position:absolute; inset:0; z-index:1; width:100%; height:100%}
.hero-scrim{position:absolute; inset:0; z-index:1;
background:
linear-gradient(100deg, rgba(18,12,52,.92) 0%, rgba(18,12,52,.82) 30%, rgba(18,12,52,.42) 52%, rgba(18,12,52,.05) 68%),
linear-gradient(180deg, rgba(18,12,52,.55) 0%, rgba(18,12,52,0) 22%, rgba(18,12,52,0) 78%, rgba(18,12,52,.75) 100%);
pointer-events:none}
@media (max-width:1020px){
.hero-scrim{background:
linear-gradient(180deg, rgba(18,12,52,.6) 0%, rgba(18,12,52,.2) 30%, rgba(18,12,52,.55) 72%, rgba(18,12,52,.92) 100%)}
}
.hero .wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center}
.hero h1{text-shadow:0 1px 0 rgba(122,92,255,.55),0 2px 0 rgba(122,92,255,.35),
0 3px 0 rgba(122,92,255,.22),0 4px 0 rgba(122,92,255,.12),0 22px 44px rgba(8,4,32,.85)}
.hero h1 .flow{background:linear-gradient(100deg,#2FE0C8,#35C8F5 28%,#7A5CFF 62%,#E14BE8);
-webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:none}
/* brand lockup */
.wordmark{font-family:var(–d); font-weight:800; letter-spacing:-.03em; line-height:1; display:block}
.wordmark .b{background:linear-gradient(105deg,#2FE0C8,#35C8F5 30%,#7A5CFF 65%,#E14BE8);
-webkit-background-clip:text; background-clip:text; color:transparent}
.logo .lock{display:flex; flex-direction:column; gap:3px}
.logo .mark{width:38px; height:38px; flex:0 0 38px; filter:drop-shadow(0 6px 14px rgba(53,200,245,.5))}
footer .logo .mark{width:44px; height:44px; flex:0 0 44px}
.logo .tagline{font-family:var(–b); font-size:.52rem; letter-spacing:.34em; color:var(–mute);
font-weight:500; text-transform:uppercase}
/* 3D spinning medallion */
.medallion{position:absolute; top:-70px; left:-56px; width:118px; height:118px; perspective:700px; z-index:5}
.medallion .spin{width:100%; height:100%; position:relative; transform-style:preserve-3d;
animation:spin3d 11s linear infinite}
.medallion .face{position:absolute; inset:0; display:grid; place-items:center; border-radius:26px;
background:linear-gradient(150deg,rgba(53,200,245,.22),rgba(225,75,232,.2)); border:1px solid var(–line);
backdrop-filter:blur(8px); box-shadow:0 22px 50px -22px rgba(122,92,255,.9)}
.medallion .back{transform:rotateY(180deg)}
@keyframes spin3d{to{transform:rotateY(360deg)}}
.hero-tag{display:inline-flex; align-items:center; gap:9px; font-size:.88rem; color:var(–mute);
border:1px solid var(–line); background:var(–glass); padding:8px 16px; border-radius:100px; margin-bottom:26px}
.dot{width:7px; height:7px; border-radius:50%; background:#35C8F5;
box-shadow:0 0 0 0 rgba(53,200,245,.7); animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(53,200,245,0)}100%{box-shadow:0 0 0 0 rgba(53,200,245,0)}}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:34px}
.facts{display:flex; gap:34px; margin-top:44px; flex-wrap:wrap; border-top:1px solid var(–line); padding-top:24px}
.facts b{font-family:var(–d); font-size:1.7rem; display:block; line-height:1}
.facts small{color:var(–mute); font-size:.84rem}
.panel-stage{perspective:1400px}
.panel{transform-style:preserve-3d; transform:rotateY(-15deg) rotateX(8deg);
background:linear-gradient(160deg,rgba(46,30,107,.85),rgba(21,16,56,.9));
border:1px solid var(–line); border-radius:22px; padding:24px; box-shadow:var(–shadow);
animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:rotateY(-15deg) rotateX(8deg) translateY(0)}
50%{transform:rotateY(-11deg) rotateX(6deg) translateY(-16px)}}
.panel-row{display:flex; justify-content:space-between; align-items:center; font-size:.85rem; color:var(–mute); margin-bottom:16px}
.panel-metric{font-family:var(–d); font-size:2.6rem; line-height:1; margin-bottom:4px}
.bars{display:flex; align-items:flex-end; gap:8px; height:98px; margin-top:20px}
.bars i{flex:1; border-radius:6px 6px 3px 3px; transform-origin:bottom;
background:linear-gradient(180deg,var(–violet),rgba(122,92,255,.18));
animation:grow 1.1s cubic-bezier(.2,.9,.25,1) backwards}
.bars i:nth-child(5){background:linear-gradient(180deg,var(–amber),rgba(47,224,200,.2))}
@keyframes grow{from{transform:scaleY(.05)}}
.chip{position:absolute; background:rgba(14,10,38,.92); border:1px solid var(–line); border-radius:14px;
padding:10px 14px; font-size:.8rem; display:flex; align-items:center; gap:8px; box-shadow:var(–shadow)}
.chip-a{top:-18px; right:-14px; animation:float2 5.5s ease-in-out infinite}
.chip-b{bottom:-22px; left:-26px; animation:float2 6.5s ease-in-out .8s infinite}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
/* ———- 2. marquee ———- */
.proof{padding:38px 0; border-top:1px solid var(–line); border-bottom:1px solid var(–line); background:rgba(14,10,38,.5)}
.proof .said{text-align:center; color:var(–mute); font-size:.87rem; margin-bottom:22px}
.track{display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.track ul{display:flex; gap:64px; list-style:none; margin:0; padding:0 32px; animation:slide 30s linear infinite}
.track li{font-family:var(–d); font-weight:600; font-size:1.26rem; color:var(–mute); opacity:.75;
white-space:nowrap; display:flex; align-items:center; gap:9px; transition:opacity .3s,color .3s}
.track:hover ul{animation-play-state:paused}
.track li:hover{opacity:1; color:var(–lilac)}
@keyframes slide{to{transform:translateX(-50%)}}
/* ———- 3. services ———- */
.svc{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1600px}
.svc .card{transform-style:preserve-3d; transition:transform .35s cubic-bezier(.2,.9,.3,1), border-color .35s}
.svc .card:hover{border-color:rgba(47,224,200,.55)}
.svc .card::after{content:””; position:absolute; inset:0; opacity:0; transition:opacity .35s; pointer-events:none;
background:radial-gradient(400px 200px at var(–mx,50%) var(–my,50%), rgba(122,92,255,.22), transparent 70%)}
.svc .card:hover::after{opacity:1}
.svc h3{margin:20px 0 10px} .svc p{color:var(–mute); font-size:.97rem}
.ico{width:62px; height:62px; border-radius:18px; display:grid; place-items:center;
background:linear-gradient(150deg,rgba(53,200,245,.28),rgba(225,75,232,.2)); border:1px solid var(–line);
box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 16px 30px -18px rgba(53,200,245,.9);
transform:translateZ(38px)}
.tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px}
.tags span{font-size:.76rem; color:var(–mute); border:1px solid var(–line); padding:4px 11px; border-radius:100px}
/* ———- 4. split ———- */
.split{display:grid; grid-template-columns:1fr 1.08fr; gap:60px; align-items:center}
.ticks{list-style:none; padding:0; margin:30px 0 0; display:grid; gap:16px}
.ticks li{display:flex; gap:14px; align-items:flex-start; color:var(–mute); font-size:.99rem}
.ticks svg{flex:0 0 22px; margin-top:3px}
/* ———- 5. stats ———- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(–line);
border-radius:var(–r-lg); overflow:hidden; background:rgba(14,10,38,.55)}
.stat{padding:38px 30px; border-right:1px solid var(–line)}
.stat:last-child{border-right:0}
.stat b{font-family:var(–d); font-size:clamp(2.2rem,4vw,3.1rem); display:block; line-height:1;
background:linear-gradient(110deg,#2FE0C8,#35C8F5 34%,#9E7BFF 68%,#E14BE8); -webkit-background-clip:text; background-clip:text; color:transparent}
.stat small{color:var(–mute); font-size:.87rem; display:block; margin-top:10px}
/* ———- 6. process ———- */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:s}
.step{position:relative; padding-top:42px}
.step::before{counter-increment:s; content:”0″ counter(s); position:absolute; top:0; left:0;
font-family:var(–d); font-size:1.02rem; color:var(–ink-deep); background:var(–amber);
width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:800}
.step::after{content:””; position:absolute; top:17px; left:44px; right:-14px; height:1px;
background:repeating-linear-gradient(90deg,var(–line) 0 7px,transparent 7px 14px)}
.step:last-child::after{display:none}
.step h3{margin-bottom:9px} .step p{color:var(–mute); font-size:.95rem}
/* ———- 7. work ———- */
.work{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1500px}
.case{padding:0; transform-style:preserve-3d; transition:transform .4s cubic-bezier(.2,.9,.3,1)}
.case .art{height:190px; position:relative; overflow:hidden; border-bottom:1px solid var(–line)}
.case .body{padding:26px 28px 30px}
.case h3{margin-bottom:8px}
.case p{color:var(–mute); font-size:.94rem}
.result{display:flex; gap:26px; margin-top:20px; padding-top:18px; border-top:1px solid var(–line)}
.result b{font-family:var(–d); font-size:1.5rem; color:var(–amber); display:block; line-height:1}
.result small{color:var(–mute); font-size:.78rem}
/* ———- 8. dashboard ———- */
.dash{background:linear-gradient(150deg,rgba(46,30,107,.6),rgba(14,10,38,.8)); border:1px solid var(–line);
border-radius:var(–r-lg); padding:34px; box-shadow:var(–shadow); overflow-x:auto}
.dash-legend{display:flex; gap:22px; flex-wrap:wrap; font-size:.85rem; color:var(–mute); margin-bottom:22px}
.dash-legend i{width:10px; height:10px; border-radius:3px; display:inline-block; margin-right:7px}
/* ———- 9. testimonials ———- */
.quotes{overflow:hidden}
.rail{display:flex; transition:transform .55s cubic-bezier(.2,.9,.3,1)}
.quote{flex:0 0 100%; padding:4px}
.quote blockquote{margin:0; font-family:var(–d); font-weight:500;
font-size:clamp(1.35rem,2.6vw,1.95rem); line-height:1.4; letter-spacing:-.02em}
.who{display:flex; align-items:center; gap:14px; margin-top:28px}
.who small{color:var(–mute); font-size:.86rem; display:block}
.who strong{font-weight:600; font-size:.98rem}
.q-nav{display:flex; gap:10px; margin-top:30px}
.q-nav button{width:38px; height:38px; border-radius:50%; border:1px solid var(–line);
background:transparent; color:var(–lilac); cursor:pointer; display:grid; place-items:center}
.q-nav button:hover{border-color:var(–amber); color:var(–amber)}
/* ———- 10. pricing ———- */
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start}
.plan.featured{border-color:rgba(47,224,200,.5);
background:linear-gradient(170deg,rgba(53,200,245,.24),rgba(122,92,255,.28) 55%,rgba(36,23,87,.5));
transform:scale(1.035) translateZ(0)}
.badge{position:absolute; top:22px; right:22px; font-size:.74rem; background:var(–amber);
color:var(–ink-deep); padding:4px 12px; border-radius:100px; font-weight:600}
.price{font-family:var(–d); font-size:2.9rem; line-height:1; margin:14px 0 4px}
.price sub{font-family:var(–b); font-size:.86rem; color:var(–mute); font-weight:400; bottom:0}
.plan ul{list-style:none; padding:0; margin:24px 0 28px; display:grid; gap:12px; font-size:.94rem; color:var(–mute)}
.plan li{display:flex; gap:11px; align-items:flex-start}
.plan li::before{content:”·”; color:var(–amber); font-weight:800}
.plan .btn{width:100%; justify-content:center}
/* ———- 11. team ———- */
.team{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.member{text-align:center; padding:30px 22px}
.member .av{width:98px; height:98px; margin:0 auto 18px; border-radius:50%; overflow:hidden; border:1px solid var(–line)}
.member small{color:var(–mute); font-size:.85rem}
/* ———- 12. insights ———- */
.posts{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.post{padding:0}
.post .thumb{height:132px; border-bottom:1px solid var(–line); overflow:hidden}
.post .body{padding:24px 26px 28px}
.post .meta{font-size:.8rem; color:var(–mute); margin-bottom:10px}
.post h3{font-size:1.14rem; margin-bottom:10px}
.post .more{color:var(–amber); font-size:.9rem; font-weight:600}
/* ———- 13. faq ———- */
.faq{max-width:840px; margin:0 auto}
details{border-bottom:1px solid var(–line); padding:22px 4px}
summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px;
font-family:var(–d); font-weight:600; font-size:1.12rem; letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary .pm{flex:0 0 26px; height:26px; border:1px solid var(–line); border-radius:50%;
display:grid; place-items:center; transition:transform .3s,background .3s,color .3s}
details[open] summary .pm{transform:rotate(45deg); background:var(–amber); color:var(–ink-deep)}
details p{color:var(–mute); font-size:.98rem; margin-top:14px; max-width:68ch}
/* ———- 14. cta ———- */
.cta-box{border:1px solid var(–line); border-radius:34px; padding:clamp(36px,5vw,62px);
background:linear-gradient(140deg,rgba(47,224,200,.22),rgba(53,200,245,.24) 28%,rgba(122,92,255,.3) 58%,rgba(225,75,232,.2));
display:grid; grid-template-columns:1fr .9fr; gap:52px; align-items:center; box-shadow:var(–shadow)}
form{display:grid; gap:14px}
.f2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
input,select,textarea{width:100%; font-family:var(–b); font-size:.96rem; color:var(–lilac);
background:rgba(14,10,38,.6); border:1px solid var(–line); border-radius:12px; padding:14px 16px}
textarea{resize:vertical; min-height:96px}
input::placeholder,textarea::placeholder{color:#8a82b8}
input:focus,select:focus,textarea:focus{border-color:var(–amber); outline:none}
.form-note{font-size:.85rem; color:var(–mute)}
.form-msg{font-size:.92rem; color:var(–mint); display:none}
.form-msg.err{color:var(–rose)}
/* ———- footer ———- */
footer{border-top:1px solid var(–line); padding:64px 0 34px; background:rgba(14,10,38,.6); position:relative; z-index:2}
.fgrid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px}
.fgrid h4{font-family:var(–b); font-size:.92rem; font-weight:600; margin-bottom:16px}
.fgrid ul{list-style:none; padding:0; margin:0; display:grid; gap:10px; font-size:.93rem; color:var(–mute)}
.fgrid a:hover{color:var(–amber)}
.fbot{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:48px;
padding-top:24px; border-top:1px solid var(–line); color:var(–mute); font-size:.85rem}
/* ———- reveal ———- */
.rv{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.9,.3,1)}
.rv.in{opacity:1; transform:none}
/* ———- responsive ———- */
@media (max-width:1020px){
.hero .wrap,.split,.cta-box{grid-template-columns:1fr}
.svc,.work,.posts,.steps,.team{grid-template-columns:repeat(2,1fr)}
.plans{grid-template-columns:1fr}
.plan.featured{transform:none}
.stats{grid-template-columns:repeat(2,1fr)}
.stat:nth-child(2){border-right:0}
.stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(–line)}
.step::after{display:none}
.fgrid{grid-template-columns:1fr 1fr}
.links{display:none}
.burger{display:block}
.panel{transform:none; animation:none}
.medallion{display:none}
.chip-b{left:0}
}
@media (max-width:640px){
body{font-size:16px}
.svc,.work,.posts,.steps,.team,.f2,.fgrid{grid-template-columns:1fr}
.stats{grid-template-columns:1fr}
.stat{border-right:0; border-bottom:1px solid var(–line)}
.nav .btn{display:none}
.facts{gap:22px}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
html{scroll-behavior:auto}
.rv{opacity:1; transform:none}
}
Taking on four new partners for Q4
We build search, social and paid systems that feed each other, so one good week compounds into a quarter you can forecast. Technifluence runs growth for 60+ brands across India, the UAE and the US.
Get your growth plan
See what we shipped
0%Median revenue lift, year one
0xBlended return on ad spend
0Brands on retainer
Pipeline this month▲ 28.4%
₹4.82 Cr
Attributed across six channels
CAC down 41%
Top three for 214 keywords
Trusted by teams who measure everything
Pick a single service or hand us the whole funnel. Either way you get the same weekly reporting, the same senior team, and no junior handoffs.
Technical fixes, topic clusters and digital PR that put you on page one for terms that convert, not vanity volume.
Technical auditsContentLink earning
Google, Meta, LinkedIn and Amazon managed against contribution margin. We kill what leaks and scale what pays within 14 days.
SearchSocialRetail media
Short-form built by an in-house studio, plus a vetted creator bench. Thirty concepts a month, tested against real watch-through data.
Reels and ShortsCreatorsCommunity
Email, WhatsApp and push flows that carry the second and third purchase, so paid spend stops doing all the work alone.
FlowsSegmentationWin-back
Server-side tracking, clean warehouse models and one dashboard your finance team will accept without a translation layer.
GA4 and GTMWarehouseIncrementality
Positioning, identity and pages that load in under a second. Conversion work grounded in session replays, not opinion.
PositioningDesignCRO
A creator video makes branded search spike. Branded search makes paid cheaper. Cheaper paid funds more content. Most agencies manage these as separate line items, which is exactly why the numbers plateau.
Growth
loop
We pull two years of your analytics, ad accounts and search data, then show you where the money is leaking. You keep the document either way.
A channel-by-channel forecast tied to margin, with the budget split we would defend in your board meeting.
Tracking fixed, creative shot, campaigns rebuilt. Most accounts are live again inside twelve working days.
Weekly review, monthly reallocation, quarterly repositioning. The loop tightens every cycle.
A subscription roaster stuck at flat repeat rates. We rebuilt lifecycle flows around brew-cycle timing and moved paid budget to prospecting.
+218%Repeat revenue-37%Blended CAC
A diagnostics brand competing against aggregators. Programmatic location pages plus clinician-led content took them off the paid treadmill.
9.4xOrganic sessions₹0Spend on brand terms
B2B SaaS with a long cycle and no attribution. Server-side tracking plus a LinkedIn-to-search handoff made pipeline finally traceable.
+63%Qualified demos2.9xPipeline per rupee
No monthly PDF theatre. A live board with spend, contribution and channel mix, plus a written note every Friday explaining what changed and why.
Revenue
Ad spend
Contribution margin
Q4 peak, 4.1x return
We had been through three agencies who all reported clicks. Technifluence opened with our gross margin and built backwards from it, and that reframed the whole relationship.
Meera RaghunathanFounder, Latitude Coffee
Eleven days in, they found a tracking bug that had been under-reporting our best campaign by a third. The retainer paid for itself before the first invoice cleared.
Arjun DuttaHead of Growth, Orbitsell
The Friday note is the thing I would miss most. Two paragraphs, plain English, telling me exactly what moved and what they are doing about it on Monday.
Sana KapadiaMarketing lead, Kavach Health
Charging a cut of ad budget rewards us for spending more of your money. We would rather be paid to make it work.
For brands under ₹15L monthly revenue finding their first repeatable channel.
₹1.2L / month
The full loop, for teams ready to move budget between channels every month.
₹3.4L / month
A senior pod inside your business, on your Slack, for multi-market operators.
Custom / quarterly
Partner, paid media
Twelve years across retail and D2C. Previously ran ₹90 Cr in annual spend.
Partner, search
Technical SEO for marketplaces and health platforms. Writes our crawl tooling.
Head of analytics
Builds the warehouse models finance teams sign off on without arguing.
Creative director
Runs the in-house studio. Ships thirty tested concepts every month.
Three months, because nothing meaningful resolves faster than that. After the first quarter it moves to rolling monthly with 30 days’ notice. We would rather you stay because the numbers hold.
Both arrangements work. Roughly half our clients have an internal marketer who owns brand while we run acquisition. On the Embedded plan we train your team to take channels back over time.
You do, from day one. Everything is built inside your own accounts and shared drives. If we part ways you keep the assets, the tracking setup and the documentation.
Paid media works best above roughly ₹8L a month in spend. Below that we usually recommend starting with search and lifecycle, where the compounding does not need budget to show up.
Tracking and paid efficiency shift within two weeks. Search and lifecycle take a quarter. The median client sees a first clear lift at day eleven, usually from fixing measurement rather than adding spend.
Send a few lines about your business and we will come back within one working day with an honest read, including if we think you do not need an agency yet.
hello@technifluence.comWritten enquiries
+91 98100 22145Mon to Fri, 10am to 7pm IST
/* ———- tokens ———- */
:root{
–ink:#120C34; –ink-deep:#0A0726; –plum:#241757;
–violet:#7A5CFF; –amber:#2FE0C8; –rose:#E14BE8; –mint:#5CE6A8;
–cyan:#35C8F5; –grad:linear-gradient(115deg,#2FE0C8,#35C8F5 32%,#7A5CFF 66%,#E14BE8);
–lilac:#EDE9FF; –mute:#A79FD6; –line:rgba(167,159,214,.18);
–card:rgba(46,30,107,.42); –glass:rgba(237,233,255,.05);
–shadow:0 30px 70px -30px rgba(5,2,25,.9);
–maxw:1200px; –r-lg:26px;
–d:’Bricolage Grotesque’,Georgia,serif; –b:’Instrument Sans’,system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme=”light”]){ –ink:#151038; –lilac:#EDE9FF; } }
:root[data-theme=”dark”]{ –ink:#151038; –lilac:#EDE9FF; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(–ink); color:var(–lilac); font-family:var(–b);
font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden}
body::before{content:””; position:fixed; inset:0; z-index:0; pointer-events:none;
background:
radial-gradient(820px 480px at 10% -6%, rgba(53,200,245,.26), transparent 62%),
radial-gradient(760px 520px at 88% 6%, rgba(225,75,232,.22), transparent 64%),
radial-gradient(900px 600px at 62% 46%, rgba(122,92,255,.20), transparent 66%),
radial-gradient(900px 700px at 40% 108%, rgba(47,224,200,.14), transparent 62%)}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(–d); font-weight:800; line-height:1.03; letter-spacing:-.025em; margin:0}
h1{font-size:clamp(2.9rem,7.2vw,5.4rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.4rem)}
h3{font-size:1.32rem; font-weight:600; letter-spacing:-.015em}
p{margin:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2.5px solid var(–amber); outline-offset:3px; border-radius:6px}
.wrap{max-width:var(–maxw); margin:0 auto; padding:0 24px; position:relative; z-index:2}
section{padding:clamp(72px,9vw,124px) 0; position:relative; z-index:2}
.lede{color:var(–mute); max-width:56ch; font-size:1.06rem; margin-top:18px}
.kicker{font-family:var(–d); font-size:.92rem; font-weight:600; color:var(–amber);
margin-bottom:14px; display:flex; align-items:center; gap:10px}
.kicker::before{content:””; width:26px; height:2px; background:var(–amber); border-radius:2px}
.btn{position:relative; display:inline-flex; align-items:center; gap:10px; border:0; cursor:pointer;
font-family:var(–b); font-weight:600; font-size:.98rem; padding:15px 28px; border-radius:100px;
color:#fff; background:linear-gradient(115deg,#2FE0C8,#35C8F5 34%,#7A5CFF 68%,#E14BE8);
background-size:220% 220%; background-position:0% 50%;
box-shadow:0 0 0 1px rgba(255,255,255,.14) inset, 0 14px 30px -10px rgba(53,200,245,.55),
0 18px 46px -16px rgba(225,75,232,.55);
transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, background-position .6s}
.btn::after{content:””; position:absolute; inset:-1px; border-radius:inherit; padding:1px;
background:linear-gradient(115deg,#8FF6E8,#B9DCFF 40%,#E9D6FF); opacity:0; transition:opacity .3s;
-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
-webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none}
.btn:hover{transform:translateY(-3px); background-position:100% 50%;
box-shadow:0 0 0 1px rgba(255,255,255,.22) inset, 0 18px 38px -10px rgba(53,200,245,.75),
0 26px 58px -16px rgba(225,75,232,.75)}
.btn:hover::after{opacity:1}
.btn:active{transform:translateY(-1px)}
.btn.ghost{background:rgba(53,200,245,.07); border:1px solid var(–line); color:var(–lilac);
box-shadow:none; background-size:auto}
.btn.ghost:hover{border-color:#35C8F5; color:#8FE9FA; box-shadow:0 0 26px -6px rgba(53,200,245,.5)}
.btn.ghost::after{display:none}
.card{background:var(–card); border:1px solid var(–line); border-radius:var(–r-lg);
padding:30px; backdrop-filter:blur(14px); box-shadow:var(–shadow); position:relative; overflow:hidden}
.head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; margin-bottom:52px}
/* ———- nav ———- */
header{position:fixed; top:0; left:0; right:0; z-index:60; padding:14px 0;
border-bottom:1px solid transparent; transition:background .3s,border-color .3s}
header.stuck{background:rgba(14,10,38,.85); backdrop-filter:blur(18px); border-color:var(–line)}
.nav{display:flex; align-items:center; justify-content:space-between; gap:24px}
.logo{display:flex; align-items:center; gap:11px; font-family:var(–d); font-weight:800;
font-size:1.22rem; letter-spacing:-.03em}
.logo .mark{width:34px; height:34px; flex:0 0 34px}
.links{display:flex; gap:30px; font-size:.95rem; color:var(–mute); font-weight:500}
.links a{position:relative; padding:4px 0}
.links a::after{content:””; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(–amber); transition:width .3s}
.links a:hover{color:var(–lilac)} .links a:hover::after{width:100%}
.nav .btn{padding:12px 22px; font-size:.9rem}
.burger{display:none; background:none; border:1px solid var(–line); border-radius:10px; padding:9px 11px; cursor:pointer}
.burger span{display:block; width:20px; height:2px; background:var(–lilac); margin:4px 0; border-radius:2px}
/* ———- 1. hero ———- */
.hero{padding:clamp(140px,17vw,200px) 0 clamp(80px,9vw,120px); min-height:100svh; display:flex; align-items:center}
#scene{position:absolute; inset:0; z-index:1; width:100%; height:100%}
.hero-scrim{position:absolute; inset:0; z-index:1;
background:
linear-gradient(100deg, rgba(18,12,52,.92) 0%, rgba(18,12,52,.82) 30%, rgba(18,12,52,.42) 52%, rgba(18,12,52,.05) 68%),
linear-gradient(180deg, rgba(18,12,52,.55) 0%, rgba(18,12,52,0) 22%, rgba(18,12,52,0) 78%, rgba(18,12,52,.75) 100%);
pointer-events:none}
@media (max-width:1020px){
.hero-scrim{background:
linear-gradient(180deg, rgba(18,12,52,.6) 0%, rgba(18,12,52,.2) 30%, rgba(18,12,52,.55) 72%, rgba(18,12,52,.92) 100%)}
}
.hero .wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center}
.hero h1{text-shadow:0 1px 0 rgba(122,92,255,.55),0 2px 0 rgba(122,92,255,.35),
0 3px 0 rgba(122,92,255,.22),0 4px 0 rgba(122,92,255,.12),0 22px 44px rgba(8,4,32,.85)}
.hero h1 .flow{background:linear-gradient(100deg,#2FE0C8,#35C8F5 28%,#7A5CFF 62%,#E14BE8);
-webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:none}
/* brand lockup */
.wordmark{font-family:var(–d); font-weight:800; letter-spacing:-.03em; line-height:1; display:block}
.wordmark .b{background:linear-gradient(105deg,#2FE0C8,#35C8F5 30%,#7A5CFF 65%,#E14BE8);
-webkit-background-clip:text; background-clip:text; color:transparent}
.logo .lock{display:flex; flex-direction:column; gap:3px}
.logo .mark{width:38px; height:38px; flex:0 0 38px; filter:drop-shadow(0 6px 14px rgba(53,200,245,.5))}
footer .logo .mark{width:44px; height:44px; flex:0 0 44px}
.logo .tagline{font-family:var(–b); font-size:.52rem; letter-spacing:.34em; color:var(–mute);
font-weight:500; text-transform:uppercase}
/* 3D spinning medallion */
.medallion{position:absolute; top:-70px; left:-56px; width:118px; height:118px; perspective:700px; z-index:5}
.medallion .spin{width:100%; height:100%; position:relative; transform-style:preserve-3d;
animation:spin3d 11s linear infinite}
.medallion .face{position:absolute; inset:0; display:grid; place-items:center; border-radius:26px;
background:linear-gradient(150deg,rgba(53,200,245,.22),rgba(225,75,232,.2)); border:1px solid var(–line);
backdrop-filter:blur(8px); box-shadow:0 22px 50px -22px rgba(122,92,255,.9)}
.medallion .back{transform:rotateY(180deg)}
@keyframes spin3d{to{transform:rotateY(360deg)}}
.hero-tag{display:inline-flex; align-items:center; gap:9px; font-size:.88rem; color:var(–mute);
border:1px solid var(–line); background:var(–glass); padding:8px 16px; border-radius:100px; margin-bottom:26px}
.dot{width:7px; height:7px; border-radius:50%; background:#35C8F5;
box-shadow:0 0 0 0 rgba(53,200,245,.7); animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(53,200,245,0)}100%{box-shadow:0 0 0 0 rgba(53,200,245,0)}}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:34px}
.facts{display:flex; gap:34px; margin-top:44px; flex-wrap:wrap; border-top:1px solid var(–line); padding-top:24px}
.facts b{font-family:var(–d); font-size:1.7rem; display:block; line-height:1}
.facts small{color:var(–mute); font-size:.84rem}
.panel-stage{perspective:1400px}
.panel{transform-style:preserve-3d; transform:rotateY(-15deg) rotateX(8deg);
background:linear-gradient(160deg,rgba(46,30,107,.85),rgba(21,16,56,.9));
border:1px solid var(–line); border-radius:22px; padding:24px; box-shadow:var(–shadow);
animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:rotateY(-15deg) rotateX(8deg) translateY(0)}
50%{transform:rotateY(-11deg) rotateX(6deg) translateY(-16px)}}
.panel-row{display:flex; justify-content:space-between; align-items:center; font-size:.85rem; color:var(–mute); margin-bottom:16px}
.panel-metric{font-family:var(–d); font-size:2.6rem; line-height:1; margin-bottom:4px}
.bars{display:flex; align-items:flex-end; gap:8px; height:98px; margin-top:20px}
.bars i{flex:1; border-radius:6px 6px 3px 3px; transform-origin:bottom;
background:linear-gradient(180deg,var(–violet),rgba(122,92,255,.18));
animation:grow 1.1s cubic-bezier(.2,.9,.25,1) backwards}
.bars i:nth-child(5){background:linear-gradient(180deg,var(–amber),rgba(47,224,200,.2))}
@keyframes grow{from{transform:scaleY(.05)}}
.chip{position:absolute; background:rgba(14,10,38,.92); border:1px solid var(–line); border-radius:14px;
padding:10px 14px; font-size:.8rem; display:flex; align-items:center; gap:8px; box-shadow:var(–shadow)}
.chip-a{top:-18px; right:-14px; animation:float2 5.5s ease-in-out infinite}
.chip-b{bottom:-22px; left:-26px; animation:float2 6.5s ease-in-out .8s infinite}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
/* ———- 2. marquee ———- */
.proof{padding:38px 0; border-top:1px solid var(–line); border-bottom:1px solid var(–line); background:rgba(14,10,38,.5)}
.proof .said{text-align:center; color:var(–mute); font-size:.87rem; margin-bottom:22px}
.track{display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.track ul{display:flex; gap:64px; list-style:none; margin:0; padding:0 32px; animation:slide 30s linear infinite}
.track li{font-family:var(–d); font-weight:600; font-size:1.26rem; color:var(–mute); opacity:.75;
white-space:nowrap; display:flex; align-items:center; gap:9px; transition:opacity .3s,color .3s}
.track:hover ul{animation-play-state:paused}
.track li:hover{opacity:1; color:var(–lilac)}
@keyframes slide{to{transform:translateX(-50%)}}
/* ———- 3. services ———- */
.svc{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1600px}
.svc .card{transform-style:preserve-3d; transition:transform .35s cubic-bezier(.2,.9,.3,1), border-color .35s}
.svc .card:hover{border-color:rgba(47,224,200,.55)}
.svc .card::after{content:””; position:absolute; inset:0; opacity:0; transition:opacity .35s; pointer-events:none;
background:radial-gradient(400px 200px at var(–mx,50%) var(–my,50%), rgba(122,92,255,.22), transparent 70%)}
.svc .card:hover::after{opacity:1}
.svc h3{margin:20px 0 10px} .svc p{color:var(–mute); font-size:.97rem}
.ico{width:62px; height:62px; border-radius:18px; display:grid; place-items:center;
background:linear-gradient(150deg,rgba(53,200,245,.28),rgba(225,75,232,.2)); border:1px solid var(–line);
box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 16px 30px -18px rgba(53,200,245,.9);
transform:translateZ(38px)}
.tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px}
.tags span{font-size:.76rem; color:var(–mute); border:1px solid var(–line); padding:4px 11px; border-radius:100px}
/* ———- 4. split ———- */
.split{display:grid; grid-template-columns:1fr 1.08fr; gap:60px; align-items:center}
.ticks{list-style:none; padding:0; margin:30px 0 0; display:grid; gap:16px}
.ticks li{display:flex; gap:14px; align-items:flex-start; color:var(–mute); font-size:.99rem}
.ticks svg{flex:0 0 22px; margin-top:3px}
/* ———- 5. stats ———- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(–line);
border-radius:var(–r-lg); overflow:hidden; background:rgba(14,10,38,.55)}
.stat{padding:38px 30px; border-right:1px solid var(–line)}
.stat:last-child{border-right:0}
.stat b{font-family:var(–d); font-size:clamp(2.2rem,4vw,3.1rem); display:block; line-height:1;
background:linear-gradient(110deg,#2FE0C8,#35C8F5 34%,#9E7BFF 68%,#E14BE8); -webkit-background-clip:text; background-clip:text; color:transparent}
.stat small{color:var(–mute); font-size:.87rem; display:block; margin-top:10px}
/* ———- 6. process ———- */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:s}
.step{position:relative; padding-top:42px}
.step::before{counter-increment:s; content:”0″ counter(s); position:absolute; top:0; left:0;
font-family:var(–d); font-size:1.02rem; color:var(–ink-deep); background:var(–amber);
width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:800}
.step::after{content:””; position:absolute; top:17px; left:44px; right:-14px; height:1px;
background:repeating-linear-gradient(90deg,var(–line) 0 7px,transparent 7px 14px)}
.step:last-child::after{display:none}
.step h3{margin-bottom:9px} .step p{color:var(–mute); font-size:.95rem}
/* ———- 7. work ———- */
.work{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1500px}
.case{padding:0; transform-style:preserve-3d; transition:transform .4s cubic-bezier(.2,.9,.3,1)}
.case .art{height:190px; position:relative; overflow:hidden; border-bottom:1px solid var(–line)}
.case .body{padding:26px 28px 30px}
.case h3{margin-bottom:8px}
.case p{color:var(–mute); font-size:.94rem}
.result{display:flex; gap:26px; margin-top:20px; padding-top:18px; border-top:1px solid var(–line)}
.result b{font-family:var(–d); font-size:1.5rem; color:var(–amber); display:block; line-height:1}
.result small{color:var(–mute); font-size:.78rem}
/* ———- 8. dashboard ———- */
.dash{background:linear-gradient(150deg,rgba(46,30,107,.6),rgba(14,10,38,.8)); border:1px solid var(–line);
border-radius:var(–r-lg); padding:34px; box-shadow:var(–shadow); overflow-x:auto}
.dash-legend{display:flex; gap:22px; flex-wrap:wrap; font-size:.85rem; color:var(–mute); margin-bottom:22px}
.dash-legend i{width:10px; height:10px; border-radius:3px; display:inline-block; margin-right:7px}
/* ———- 9. testimonials ———- */
.quotes{overflow:hidden}
.rail{display:flex; transition:transform .55s cubic-bezier(.2,.9,.3,1)}
.quote{flex:0 0 100%; padding:4px}
.quote blockquote{margin:0; font-family:var(–d); font-weight:500;
font-size:clamp(1.35rem,2.6vw,1.95rem); line-height:1.4; letter-spacing:-.02em}
.who{display:flex; align-items:center; gap:14px; margin-top:28px}
.who small{color:var(–mute); font-size:.86rem; display:block}
.who strong{font-weight:600; font-size:.98rem}
.q-nav{display:flex; gap:10px; margin-top:30px}
.q-nav button{width:38px; height:38px; border-radius:50%; border:1px solid var(–line);
background:transparent; color:var(–lilac); cursor:pointer; display:grid; place-items:center}
.q-nav button:hover{border-color:var(–amber); color:var(–amber)}
/* ———- 10. pricing ———- */
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start}
.plan.featured{border-color:rgba(47,224,200,.5);
background:linear-gradient(170deg,rgba(53,200,245,.24),rgba(122,92,255,.28) 55%,rgba(36,23,87,.5));
transform:scale(1.035) translateZ(0)}
.badge{position:absolute; top:22px; right:22px; font-size:.74rem; background:var(–amber);
color:var(–ink-deep); padding:4px 12px; border-radius:100px; font-weight:600}
.price{font-family:var(–d); font-size:2.9rem; line-height:1; margin:14px 0 4px}
.price sub{font-family:var(–b); font-size:.86rem; color:var(–mute); font-weight:400; bottom:0}
.plan ul{list-style:none; padding:0; margin:24px 0 28px; display:grid; gap:12px; font-size:.94rem; color:var(–mute)}
.plan li{display:flex; gap:11px; align-items:flex-start}
.plan li::before{content:”·”; color:var(–amber); font-weight:800}
.plan .btn{width:100%; justify-content:center}
/* ———- 11. team ———- */
.team{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.member{text-align:center; padding:30px 22px}
.member .av{width:98px; height:98px; margin:0 auto 18px; border-radius:50%; overflow:hidden; border:1px solid var(–line)}
.member small{color:var(–mute); font-size:.85rem}
/* ———- 12. insights ———- */
.posts{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.post{padding:0}
.post .thumb{height:132px; border-bottom:1px solid var(–line); overflow:hidden}
.post .body{padding:24px 26px 28px}
.post .meta{font-size:.8rem; color:var(–mute); margin-bottom:10px}
.post h3{font-size:1.14rem; margin-bottom:10px}
.post .more{color:var(–amber); font-size:.9rem; font-weight:600}
/* ———- 13. faq ———- */
.faq{max-width:840px; margin:0 auto}
details{border-bottom:1px solid var(–line); padding:22px 4px}
summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px;
font-family:var(–d); font-weight:600; font-size:1.12rem; letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary .pm{flex:0 0 26px; height:26px; border:1px solid var(–line); border-radius:50%;
display:grid; place-items:center; transition:transform .3s,background .3s,color .3s}
details[open] summary .pm{transform:rotate(45deg); background:var(–amber); color:var(–ink-deep)}
details p{color:var(–mute); font-size:.98rem; margin-top:14px; max-width:68ch}
/* ———- 14. cta ———- */
.cta-box{border:1px solid var(–line); border-radius:34px; padding:clamp(36px,5vw,62px);
background:linear-gradient(140deg,rgba(47,224,200,.22),rgba(53,200,245,.24) 28%,rgba(122,92,255,.3) 58%,rgba(225,75,232,.2));
display:grid; grid-template-columns:1fr .9fr; gap:52px; align-items:center; box-shadow:var(–shadow)}
form{display:grid; gap:14px}
.f2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
input,select,textarea{width:100%; font-family:var(–b); font-size:.96rem; color:var(–lilac);
background:rgba(14,10,38,.6); border:1px solid var(–line); border-radius:12px; padding:14px 16px}
textarea{resize:vertical; min-height:96px}
input::placeholder,textarea::placeholder{color:#8a82b8}
input:focus,select:focus,textarea:focus{border-color:var(–amber); outline:none}
.form-note{font-size:.85rem; color:var(–mute)}
.form-msg{font-size:.92rem; color:var(–mint); display:none}
.form-msg.err{color:var(–rose)}
/* ———- footer ———- */
footer{border-top:1px solid var(–line); padding:64px 0 34px; background:rgba(14,10,38,.6); position:relative; z-index:2}
.fgrid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px}
.fgrid h4{font-family:var(–b); font-size:.92rem; font-weight:600; margin-bottom:16px}
.fgrid ul{list-style:none; padding:0; margin:0; display:grid; gap:10px; font-size:.93rem; color:var(–mute)}
.fgrid a:hover{color:var(–amber)}
.fbot{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:48px;
padding-top:24px; border-top:1px solid var(–line); color:var(–mute); font-size:.85rem}
/* ———- reveal ———- */
.rv{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.9,.3,1)}
.rv.in{opacity:1; transform:none}
/* ———- responsive ———- */
@media (max-width:1020px){
.hero .wrap,.split,.cta-box{grid-template-columns:1fr}
.svc,.work,.posts,.steps,.team{grid-template-columns:repeat(2,1fr)}
.plans{grid-template-columns:1fr}
.plan.featured{transform:none}
.stats{grid-template-columns:repeat(2,1fr)}
.stat:nth-child(2){border-right:0}
.stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(–line)}
.step::after{display:none}
.fgrid{grid-template-columns:1fr 1fr}
.links{display:none}
.burger{display:block}
.panel{transform:none; animation:none}
.medallion{display:none}
.chip-b{left:0}
}
@media (max-width:640px){
body{font-size:16px}
.svc,.work,.posts,.steps,.team,.f2,.fgrid{grid-template-columns:1fr}
.stats{grid-template-columns:1fr}
.stat{border-right:0; border-bottom:1px solid var(–line)}
.nav .btn{display:none}
.facts{gap:22px}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
html{scroll-behavior:auto}
.rv{opacity:1; transform:none}
}
Taking on four new partners for Q4
We build search, social and paid systems that feed each other, so one good week compounds into a quarter you can forecast. Technifluence runs growth for 60+ brands across India, the UAE and the US.
Get your growth plan
See what we shipped
0%Median revenue lift, year one
0xBlended return on ad spend
0Brands on retainer
Pipeline this month▲ 28.4%
₹4.82 Cr
Attributed across six channels
CAC down 41%
Top three for 214 keywords
Trusted by teams who measure everything
Pick a single service or hand us the whole funnel. Either way you get the same weekly reporting, the same senior team, and no junior handoffs.
Technical fixes, topic clusters and digital PR that put you on page one for terms that convert, not vanity volume.
Technical auditsContentLink earning
Google, Meta, LinkedIn and Amazon managed against contribution margin. We kill what leaks and scale what pays within 14 days.
SearchSocialRetail media
Short-form built by an in-house studio, plus a vetted creator bench. Thirty concepts a month, tested against real watch-through data.
Reels and ShortsCreatorsCommunity
Email, WhatsApp and push flows that carry the second and third purchase, so paid spend stops doing all the work alone.
FlowsSegmentationWin-back
Server-side tracking, clean warehouse models and one dashboard your finance team will accept without a translation layer.
GA4 and GTMWarehouseIncrementality
Positioning, identity and pages that load in under a second. Conversion work grounded in session replays, not opinion.
PositioningDesignCRO
A creator video makes branded search spike. Branded search makes paid cheaper. Cheaper paid funds more content. Most agencies manage these as separate line items, which is exactly why the numbers plateau.
Growth
loop
We pull two years of your analytics, ad accounts and search data, then show you where the money is leaking. You keep the document either way.
A channel-by-channel forecast tied to margin, with the budget split we would defend in your board meeting.
Tracking fixed, creative shot, campaigns rebuilt. Most accounts are live again inside twelve working days.
Weekly review, monthly reallocation, quarterly repositioning. The loop tightens every cycle.
A subscription roaster stuck at flat repeat rates. We rebuilt lifecycle flows around brew-cycle timing and moved paid budget to prospecting.
+218%Repeat revenue-37%Blended CAC
A diagnostics brand competing against aggregators. Programmatic location pages plus clinician-led content took them off the paid treadmill.
9.4xOrganic sessions₹0Spend on brand terms
B2B SaaS with a long cycle and no attribution. Server-side tracking plus a LinkedIn-to-search handoff made pipeline finally traceable.
+63%Qualified demos2.9xPipeline per rupee
No monthly PDF theatre. A live board with spend, contribution and channel mix, plus a written note every Friday explaining what changed and why.
Revenue
Ad spend
Contribution margin
Q4 peak, 4.1x return
We had been through three agencies who all reported clicks. Technifluence opened with our gross margin and built backwards from it, and that reframed the whole relationship.
Meera RaghunathanFounder, Latitude Coffee
Eleven days in, they found a tracking bug that had been under-reporting our best campaign by a third. The retainer paid for itself before the first invoice cleared.
Arjun DuttaHead of Growth, Orbitsell
The Friday note is the thing I would miss most. Two paragraphs, plain English, telling me exactly what moved and what they are doing about it on Monday.
Sana KapadiaMarketing lead, Kavach Health
Charging a cut of ad budget rewards us for spending more of your money. We would rather be paid to make it work.
For brands under ₹15L monthly revenue finding their first repeatable channel.
₹1.2L / month
The full loop, for teams ready to move budget between channels every month.
₹3.4L / month
A senior pod inside your business, on your Slack, for multi-market operators.
Custom / quarterly
Partner, paid media
Twelve years across retail and D2C. Previously ran ₹90 Cr in annual spend.
Partner, search
Technical SEO for marketplaces and health platforms. Writes our crawl tooling.
Head of analytics
Builds the warehouse models finance teams sign off on without arguing.
Creative director
Runs the in-house studio. Ships thirty tested concepts every month.
Three months, because nothing meaningful resolves faster than that. After the first quarter it moves to rolling monthly with 30 days’ notice. We would rather you stay because the numbers hold.
Both arrangements work. Roughly half our clients have an internal marketer who owns brand while we run acquisition. On the Embedded plan we train your team to take channels back over time.
You do, from day one. Everything is built inside your own accounts and shared drives. If we part ways you keep the assets, the tracking setup and the documentation.
Paid media works best above roughly ₹8L a month in spend. Below that we usually recommend starting with search and lifecycle, where the compounding does not need budget to show up.
Tracking and paid efficiency shift within two weeks. Search and lifecycle take a quarter. The median client sees a first clear lift at day eleven, usually from fixing measurement rather than adding spend.
Send a few lines about your business and we will come back within one working day with an honest read, including if we think you do not need an agency yet.
hello@technifluence.comWritten enquiries
+91 98100 22145Mon to Fri, 10am to 7pm IST