Portfolio 1
/* ── Scoped to .pf-wrap so it won't break WordPress styles ── */ .pf-wrap { --pf-bg: #0a0a0a; --pf-border: rgba(255,255,255,0.07); --pf-text: #f0ede8; --pf-muted: #555; --pf-accent: #c8f04a; --pf-accent2: #ff6b35; --pf-accent3: #7b61ff; background: var(--pf-bg); color: var(--pf-text); font-family: 'DM Sans', sans-serif; width: 100%; overflow-x: hidden; position: relative; } /* Hero */ .pf-hero { padding: 60px 48px 40px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; } .pf-hero-title { font-family: 'Bebas Neue', cursive; font-size: clamp(3.5rem, 8vw, 7rem); line-height: 0.92; letter-spacing: -0.01em; margin: 0; color: var(--pf-text); } .pf-hero-title .pf-italic { font-family: 'Playfair Display', serif; font-style: italic; color: var(--pf-accent); font-size: 0.82em; } .pf-hero-sub { max-width: 260px; font-size: 0.84rem; font-weight: 300; color: var(--pf-muted); line-height: 1.7; text-align: right; margin: 0; } /* Divider & count bar */ .pf-divider { height: 1px; background: var(--pf-border); margin: 0 48px; } .pf-count-bar { padding: 18px 48px; display: flex; align-items: center; gap: 14px; font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--pf-muted); } .pf-count-bar::before { content: ''; display: inline-block; width: 22px; height: 1px; background: var(--pf-muted); } /* Grid */ .pf-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1px; background: var(--pf-border); margin: 0 48px 48px; border: 1px solid var(--pf-border); } /* Cards */ .pf-card { position: relative; background: var(--pf-bg); overflow: hidden; text-decoration: none !important; color: var(--pf-text) !important; display: flex; flex-direction: column; justify-content: flex-end; padding: 32px 28px; min-height: 250px; transition: background 0.4s ease; box-shadow: none !important; } .pf-card:nth-child(1) { grid-column: span 5; min-height: 310px; } .pf-card:nth-child(2) { grid-column: span 7; min-height: 310px; } .pf-card:nth-child(3) { grid-column: span 4; } .pf-card:nth-child(4) { grid-column: span 4; } .pf-card:nth-child(5) { grid-column: span 4; } .pf-card:nth-child(6) { grid-column: span 6; } .pf-card:nth-child(7) { grid-column: span 6; } /* Hover glow per card */ .pf-card::before { content: ''; position: absolute; inset: 0; opacity: 0; transition: opacity 0.5s ease; pointer-events: none; z-index: 0; } .pf-card:nth-child(1)::before { background: radial-gradient(ellipse at 30% 70%, rgba(200,240,74,0.09), transparent 70%); } .pf-card:nth-child(2)::before { background: radial-gradient(ellipse at 70% 50%, rgba(255,107,53,0.09), transparent 70%); } .pf-card:nth-child(3)::before { background: radial-gradient(ellipse at 50% 80%, rgba(123,97,255,0.1), transparent 70%); } .pf-card:nth-child(4)::before { background: radial-gradient(ellipse at 50% 30%, rgba(200,240,74,0.09), transparent 70%); } .pf-card:nth-child(5)::before { background: radial-gradient(ellipse at 50% 70%, rgba(255,107,53,0.09), transparent 70%); } .pf-card:nth-child(6)::before { background: radial-gradient(ellipse at 30% 60%, rgba(123,97,255,0.09), transparent 70%); } .pf-card:nth-child(7)::before { background: radial-gradient(ellipse at 70% 40%, rgba(200,240,74,0.09), transparent 70%); } .pf-card:hover::before { opacity: 1; } .pf-card:hover { background: #0f0f0f; } /* Top accent line */ .pf-accent-line { position: absolute; top: 0; left: 0; width: 0%; height: 2px; transition: width 0.5s cubic-bezier(0.16,1,0.3,1); z-index: 2; } .pf-card:hover .pf-accent-line { width: 100%; } .pf-card:nth-child(1) .pf-accent-line, .pf-card:nth-child(4) .pf-accent-line, .pf-card:nth-child(7) .pf-accent-line { background: var(--pf-accent); } .pf-card:nth-child(2) .pf-accent-line, .pf-card:nth-child(5) .pf-accent-line { background: var(--pf-accent2); } .pf-card:nth-child(3) .pf-accent-line, .pf-card:nth-child(6) .pf-accent-line { background: var(--pf-accent3); } /* Card number */ .pf-num { position: absolute; top: 24px; right: 24px; font-family: 'Bebas Neue', cursive; font-size: 1rem; letter-spacing: 0.1em; color: var(--pf-muted); transition: color 0.3s ease; z-index: 1; } .pf-card:hover .pf-num { color: var(--pf-text); } /* Big icon BG */ .pf-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -55%); font-size: 3.5rem; opacity: 0.06; transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.16,1,0.3,1); z-index: 0; pointer-events: none; line-height: 1; } .pf-card:hover .pf-icon { opacity: 0.13; transform: translate(-50%, -60%) scale(1.12); } /* Card body */ .pf-body { position: relative; z-index: 1; } .pf-tag { display: inline-block; font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--pf-muted); margin-bottom: 8px; font-weight: 400; } .pf-title { font-family: 'Bebas Neue', cursive; font-size: clamp(1.5rem, 2.3vw, 2.2rem); letter-spacing: 0.04em; line-height: 1; margin: 0 0 8px 0; color: var(--pf-text); transition: letter-spacing 0.3s ease; } .pf-card:hover .pf-title { letter-spacing: 0.07em; } .pf-desc { font-size: 0.76rem; font-weight: 300; color: var(--pf-muted); line-height: 1.65; max-width: 270px; transition: color 0.3s ease; margin: 0; } .pf-card:hover .pf-desc { color: #888; } /* Project count badge */ .pf-badge { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 0.65rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pf-muted); } .pf-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--pf-accent); animation: pfPulse 2s ease-in-out infinite; flex-shrink: 0; } .pf-card:nth-child(2) .pf-dot, .pf-card:nth-child(5) .pf-dot { background: var(--pf-accent2); } .pf-card:nth-child(3) .pf-dot, .pf-card:nth-child(6) .pf-dot { background: var(--pf-accent3); } @keyframes pfPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.35; transform: scale(0.65); } } /* Arrow */ .pf-arrow { position: absolute; bottom: 28px; right: 24px; width: 36px; height: 36px; border: 1px solid var(--pf-border); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; color: var(--pf-muted); transition: all 0.4s cubic-bezier(0.16,1,0.3,1); z-index: 1; text-decoration: none !important; } .pf-card:hover .pf-arrow { transform: rotate(45deg); border-color: var(--pf-accent); color: var(--pf-accent); } .pf-card:nth-child(2):hover .pf-arrow, .pf-card:nth-child(5):hover .pf-arrow { border-color: var(--pf-accent2); color: var(--pf-accent2); } .pf-card:nth-child(3):hover .pf-arrow, .pf-card:nth-child(6):hover .pf-arrow { border-color: var(--pf-accent3); color: var(--pf-accent3); } /* Animate on load */ .pf-card { animation: pfFadeUp 0.7s cubic-bezier(0.16,1,0.3,1) both; } .pf-card:nth-child(1) { animation-delay: 0.05s; } .pf-card:nth-child(2) { animation-delay: 0.1s; } .pf-card:nth-child(3) { animation-delay: 0.15s; } .pf-card:nth-child(4) { animation-delay: 0.2s; } .pf-card:nth-child(5) { animation-delay: 0.25s; } .pf-card:nth-child(6) { animation-delay: 0.3s; } .pf-card:nth-child(7) { animation-delay: 0.35s; } .pf-hero { animation: pfFadeUp 0.55s cubic-bezier(0.16,1,0.3,1) both; } @keyframes pfFadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } } /* Footer strip */ .pf-footer { padding: 24px 48px; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--pf-border); flex-wrap: wrap; gap: 12px; } .pf-footer-left { font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--pf-muted); } .pf-footer-right { display: flex; gap: 20px; } .pf-footer-right a { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--pf-muted) !important; text-decoration: none !important; transition: color 0.2s; } .pf-footer-right a:hover { color: var(--pf-text) !important; } /* ── Responsive ── */ @media (max-width: 900px) { .pf-hero { padding: 40px 24px 32px; } .pf-hero-sub { text-align: left; } .pf-divider, .pf-count-bar { margin-inline: 24px; } .pf-grid { margin: 0 24px 32px; grid-template-columns: repeat(6, 1fr); } .pf-card:nth-child(1), .pf-card:nth-child(2), .pf-card:nth-child(5), .pf-card:nth-child(6), .pf-card:nth-child(7) { grid-column: span 6; } .pf-card:nth-child(3), .pf-card:nth-child(4) { grid-column: span 3; } .pf-footer { padding: 20px 24px; justify-content: center; } } @media (max-width: 600px) { .pf-grid { grid-template-columns: 1fr; } .pf-card:nth-child(n) { grid-column: span 1 !important; } .pf-hero-title { font-size: 3rem; } .pf-hero-sub { display: none; } }

Select
your
Category

Explore a curated collection of work across disciplines. Click any category to dive into the full portfolio.

07 Categories Available
(function(){ /* Magnetic tilt on cards */ document.querySelectorAll('.pf-card').forEach(function(card){ card.addEventListener('mousemove', function(e){ var r = card.getBoundingClientRect(); var x = ((e.clientX - r.left) / r.width - 0.5) * 10; var y = ((e.clientY - r.top) / r.height - 0.5) * 7; card.style.transform = 'translate(' + (x*0.15) + 'px,' + (y*0.15) + 'px)'; }); card.addEventListener('mouseleave', function(){ card.style.transform = ''; }); }); })();
Cart (0 items)
Phone
Our Agency Address