<!-- Agar Poppins font aap ki site mein pehle se lagi hai to neeche wali line hata sakte hain -->
.pf{--teal:#19E3D3;--teal2:#0B7F8C;--mut:#C9D6F2;--line:rgba(25,227,211,.25);font-family:Poppins,system-ui,sans-serif;color:#fff;line-height:1.6;background:linear-gradient(180deg,#040E24,#0A2147);padding:90px 20px;overflow:hidden;box-sizing:border-box;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw)}
html,body{overflow-x:hidden}
.pf *{box-sizing:border-box}
.pf a{text-decoration:none}
.pf-in{max-width:1150px;margin:0 auto}
.pf-head{text-align:center;max-width:680px;margin:0 auto 34px}
.pf-pill{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--teal);background:rgba(25,227,211,.1);border:1px solid var(--line);border-radius:99px;padding:5px 18px}
.pf-head h2{font-size:clamp(28px,4.5vw,44px);font-weight:700;line-height:1.2;margin:16px 0 12px;color:#fff}
.pf-head p{color:var(--mut);font-size:18px;margin:0}
.pf-tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:40px}
.pf-tabs button{font:500 14px Poppins,sans-serif;color:var(--mut);background:transparent;border:1px solid var(--line);border-radius:99px;padding:9px 22px;cursor:pointer;transition:border-color .3s,color .3s}
.pf-tabs button:hover{border-color:var(--teal);color:var(--teal)}
.pf-tabs button.on{background:linear-gradient(90deg,var(--teal),var(--teal2));color:#031326;border-color:transparent;font-weight:600}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;transition:opacity .25s ease}
.pf-grid.fade{opacity:0}
.pf-card{position:relative;display:block;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:rgba(255,255,255,.05);transition:border-color .3s;cursor:pointer}
.pf-card:hover,.pf-card:focus{border-color:var(--teal);outline:0}
.pf-img{position:relative;aspect-ratio:16/10;overflow:hidden;display:grid;place-items:center;font-size:56px;background:linear-gradient(135deg,#0A2147,#0B7F8C)}
.pf-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pf-ov{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:60px 20px 18px;background:linear-gradient(0deg,rgba(4,14,36,.96),rgba(4,14,36,0));transform:translateY(100%);transition:transform .3s ease}
.pf-card:hover .pf-ov,.pf-card:focus .pf-ov{transform:translateY(0)}
.pf-cat{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.pf-title{display:block;font-size:18px;font-weight:600;color:#fff;line-height:1.3}
.pf-go{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--teal),var(--teal2))}
.pf-go svg{width:18px;height:18px;stroke:#031326;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pf-mob{display:none;padding:14px 18px 18px}
.pf-more{text-align:center;margin-top:46px}
.pf-btn{display:inline-flex;align-items:center;gap:10px;font:600 15px Poppins,sans-serif;color:#031326;background:linear-gradient(90deg,var(--teal),var(--teal2));border:0;border-radius:99px;padding:14px 32px;cursor:pointer;transition:filter .3s}
.pf-btn:hover{filter:brightness(1.15);color:#031326}
.pf-empty{grid-column:1/-1;text-align:center;color:var(--mut)}
/* popup */
.pf-pop{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(2,8,22,.88)}
.pf-pop.open{display:flex}
.pf-box{position:relative;width:100%;max-width:820px;max-height:92vh;overflow:auto;background:#0A2147;border:1px solid var(--teal);border-radius:22px}
.pf-box .pf-img{aspect-ratio:16/9;font-size:80px}
.pf-th{display:flex;gap:10px;padding:14px 30px 0;overflow-x:auto}
.pf-t{flex:none;width:92px;aspect-ratio:16/10;border-radius:10px;overflow:hidden;border:2px solid var(--line);padding:0;background:#0A2147;cursor:pointer}
.pf-t.on{border-color:var(--teal)}
.pf-t img{width:100%;height:100%;object-fit:cover;display:block}
.pf-txt{padding:22px 30px 32px}
.pf-box h3{font-size:26px;font-weight:700;margin:6px 0 10px;color:#fff}
.pf-box p{color:var(--mut);font-size:16.5px;margin:0 0 20px}
.pf-x{position:absolute;top:12px;right:12px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--teal);background:rgba(4,14,36,.85);color:var(--teal);font-size:22px;line-height:1;cursor:pointer}
.pf-x:hover{background:var(--teal);color:#031326}
@media(max-width:960px){.pf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.pf{padding:70px 16px}.pf-grid{grid-template-columns:1fr}.pf-ov{display:none}.pf-mob{display:block}.pf-txt{padding:18px 20px 26px}.pf-th{padding:12px 20px 0}}
(function(){
var root=document.getElementById('portfolio');if(!root)return;
/* ==========================================================
STEP 1: IMAGE FOLDER
WordPress mein Media -> Add New se saari images upload karein.
Kisi bhi ek image par click kar ke File URL dekhein, maslan:
https://yoursite.com/wp-content/uploads/2026/10/alnoor.jpg
Us mein se file ka naam (alnoor.jpg) hata kar baqi folder wala hissa yahan likhein
(aakhir mein / zaroor ho):
========================================================== */
var IMG_BASE="https://yoursite.com/wp-content/uploads/2026/10/";
/* ==========================================================
STEP 2: APNE PROJECTS
Har project {...} ka ek block hai. Jo cheez nahi hai, usay "" chhor dein.
name : project ka naam
cat : Websites, Apps, Logos, Social Media ya Ads (spelling bilkul same)
img : main image ka file naam, maslan "alnoor.jpg" (ya poora link)
gallery : extra images ki list (optional), maslan ["alnoor2.jpg","alnoor3.jpg"]
desc : chhota description
link : project ka link (optional, popup mein "Visit Project" button aata hai)
Naya project: koi bhi block copy kar ke neeche paste karein (blocks ke beech comma ho).
Project hatana: us ka poora block delete kar dein.
========================================================== */
var PROJECTS=[
{name:"[Project Name 1]",cat:"Websites",img:"",gallery:[],desc:"[Short description: what you built for the client and what it does.]",link:""},
{name:"[Project Name 2]",cat:"Apps",img:"",gallery:[],desc:"[Short description of this project.]",link:""},
{name:"[Project Name 3]",cat:"Logos",img:"",gallery:[],desc:"[Short description of this project.]",link:""},
{name:"[Project Name 4]",cat:"Social Media",img:"",gallery:[],desc:"[Short description of this project.]",link:""},
{name:"[Project Name 5]",cat:"Ads",img:"",gallery:[],desc:"[Short description of this project.]",link:""},
{name:"[Project Name 6]",cat:"Websites",img:"",gallery:[],desc:"[Short description of this project.]",link:""}
];
var CATS=["Websites","Apps","Logos","Social Media","Ads"]; /* tabs ki tarteeb */
var PAGE=6; /* ek baar mein kitne cards dikhane hain */
var ICON={"Websites":"\uD83D\uDCBB","Apps":"\uD83D\uDCF1","Logos":"\u270F\uFE0F","Social Media":"\uD83D\uDCE3","Ads":"\uD83C\uDFAF"};
var ARW='';
var tabs=document.getElementById('pfTabs'),grid=document.getElementById('pfGrid'),more=document.getElementById('pfMore'),pop=document.getElementById('pfPop'),box=document.getElementById('pfBox');
var cur="All",shown=PAGE,list=[];
function esc(s){return String(s==null?'':s).replace(/[&"]/g,function(c){return {'&':'&','':'>','"':'"'}[c]})}
function src(s){if(!s)return"";return(/^(https?:)?\/\//.test(s)||s.charAt(0)==="/")?s:IMG_BASE+s}
function icon(p){return ICON[p.cat]||'\uD83D\uDCC1'}
function imgBox(p,id){return ''+
'
OUR PORTFOLIO
Projects That Speak For Themselves
A selection of our recent work across web, apps, branding and marketing.
'+icon(p)+(p.img?'
':'')+'
'}
function draw(){
list=PROJECTS.filter(function(p){return cur==="All"||p.cat===cur});
var part=list.slice(0,shown);
grid.innerHTML=part.length?part.map(function(p){
return ''+imgBox(p)+
''+esc(p.cat)+''+esc(p.name)+'
'+ARW+''+esc(p.cat)+''+esc(p.name)+'
';
}).join(''):'No projects in this category yet.
'; more.parentNode.style.display=list.length>shown?'':'none'; } function setTab(c){ cur=c;shown=PAGE; [].forEach.call(tabs.children,function(b){b.className=b.getAttribute('data-c')===c?'on':''}); grid.classList.add('fade'); setTimeout(function(){draw();grid.classList.remove('fade')},250); } /* tabs sirf un categories ke bante hain jin mein project maujood hai */ var used=CATS.filter(function(c){return PROJECTS.some(function(p){return p.cat===c})}); PROJECTS.forEach(function(p){if(used.indexOf(p.cat)<0)used.push(p.cat)}); tabs.innerHTML=['All'].concat(used).map(function(c){return ''}).join(''); tabs.addEventListener('click',function(e){var b=e.target.closest('button');if(b)setTab(b.getAttribute('data-c'))}); more.addEventListener('click',function(){shown+=PAGE;draw()}); /* popup */ function open(i){ var p=PROJECTS[i];if(!p)return; var all=[];if(p.img)all.push(p.img);(p.gallery||[]).forEach(function(g){if(g)all.push(g)}); var thumbs=all.length>1?''+all.map(function(g,n){return ''}).join('')+'
':'';
box.innerHTML=''+imgBox(p,'pfMain')+thumbs+
''+esc(p.cat)+'
';
pop.classList.add('open');document.body.style.overflow='hidden';
}
function close(){pop.classList.remove('open');document.body.style.overflow=''}
grid.addEventListener('click',function(e){var c=e.target.closest('.pf-card');if(c){e.preventDefault();open(+c.getAttribute('data-i'))}});
pop.addEventListener('click',function(e){
if(e.target===pop||e.target.closest('.pf-x')){close();return}
var t=e.target.closest('.pf-t');
if(t){
var m=document.getElementById('pfMain'),im=m.querySelector('img');
if(!im){im=new Image();m.appendChild(im)}
im.src=t.getAttribute('data-s');
[].forEach.call(box.querySelectorAll('.pf-t'),function(b){b.className='pf-t'});
t.className='pf-t on';
}
});
document.addEventListener('keydown',function(e){if(e.key==='Escape')close()});
draw();
/* Page ko poori screen ki chaudai dena (dono taraf white jagah na aaye) */
function fit(){
root.style.marginLeft='';root.style.width='';
var r=root.getBoundingClientRect();
var ml=parseFloat(getComputedStyle(root).marginLeft)||0;
root.style.marginLeft=(ml-r.left)+'px';
root.style.width=document.documentElement.clientWidth+'px';
root.style.maxWidth='none';
}
fit();window.addEventListener('resize',fit);window.addEventListener('load',fit);
})();
'+esc(p.name)+'
'+esc(p.desc)+'
'+ (p.link?'Visit Project '+ARW.replace('<svg','<svg style="width:16px;height:16px;stroke:#031326;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round"')+'':'')+'