/* Fluxx Tech portfolio page */
.pf-section{background:var(--paper,#f4f8fd);padding:72px 0 96px}
.pf-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 34px}
.pf-chip{font:600 .95rem 'DM Sans',system-ui,sans-serif;padding:9px 20px;border-radius:999px;border:1.5px solid var(--line,#dde6f2);background:#fff;color:var(--mute,#5a6785);cursor:pointer;transition:all .2s}
.pf-chip:hover{border-color:var(--g,#22a0dc);color:var(--ink,#060b1f)}
.pf-chip.on{background:linear-gradient(135deg,var(--g,#22a0dc),#2a6fc4);border-color:transparent;color:#fff;box-shadow:0 8px 20px -10px rgba(34,160,220,.8)}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pf-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line,#dde6f2);border-radius:20px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s,border-color .25s}
.pf-card[hidden]{display:none}
a.pf-card:hover,.pf-card:hover{transform:translateY(-5px);border-color:var(--g,#22a0dc);box-shadow:0 24px 44px -26px rgba(37,64,154,.55)}
.pf-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#22a0dc,#25409a)}
.pf-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.pf-card:hover .pf-img img{transform:scale(1.05)}
.pf-ph{position:absolute;inset:0;display:grid;place-items:center;font:800 4rem Sora,sans-serif;color:rgba(255,255,255,.85)}
.pf-tag{position:absolute;left:14px;top:14px;background:rgba(6,11,31,.78);color:#fff;font-size:.76rem;font-weight:600;padding:5px 13px;border-radius:999px}
.pf-body{padding:20px 24px 24px}
.pf-body h3{font-size:1.18rem;line-height:1.3;letter-spacing:-.02em}
.pf-more{display:inline-block;margin-top:10px;font-weight:600;color:#1a76b8;font-size:.95rem}
.pf-empty{text-align:center;max-width:520px;margin:20px auto;padding:48px 24px;background:#fff;border:1px solid var(--line,#dde6f2);border-radius:22px}
.pf-empty h2{font-size:1.7rem;margin-bottom:10px}.pf-empty p{color:var(--mute,#5a6785);margin-bottom:24px}
@media(max-width:960px){.pf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pf-section{padding:48px 0 68px}.pf-grid{grid-template-columns:1fr;gap:18px}.pf-filter{gap:8px}.pf-chip{padding:8px 16px;font-size:.9rem}}
