.portfolio-section{background:var(--surface)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}.project-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--cream);border:1px solid var(--border);transition:0.4s var(--ease)}.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}.project-thumb{aspect-ratio:4/3;overflow:hidden;position:relative}.project-thumb img{width:100%;height:100%;object-fit:cover;transition:0.5s}.project-card:hover .project-thumb img{transform:scale(1.06)}.project-thumb .tag{position:absolute;top:16px;inset-inline-start:16px;background:var(--maroon);color:#fff;padding:6px 14px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600}.project-info{padding:24px}.project-info h3{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--maroon);margin-bottom:8px}.project-info p{font-size:.88rem;color:var(--muted)}.project-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:.88rem;font-weight:700;color:var(--maroon)}.project-link:hover{color:var(--gold)}.portfolio-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:40px}.filter-btn{padding:10px 22px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);font-family:var(--font);font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;transition:0.3s var(--ease)}.filter-btn:hover,.filter-btn.active{background:var(--maroon);color:#fff;border-color:var(--maroon)}.project-card.hidden{display:none!important}@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.cta-section{background:linear-gradient(135deg,var(--maroon-dark),var(--maroon));padding:80px 0;text-align:center;position:relative;overflow:hidden}.cta-section::after{content:'WP';position:absolute;font-family:var(--font-display);font-size:20rem;font-weight:700;color:rgb(255 255 255 / .03);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.cta-section h2{font-family:var(--font-display);font-size:clamp(1.8rem, 4vw, 2.5rem);color:#fff;margin-bottom:16px;position:relative}.cta-section p{color:rgb(255 255 255 / .75);margin-bottom:32px;font-size:1.05rem;position:relative}.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}