/* Shared portfolio grid. Each concept sets --pf-* variables. */
.pf-group{font-size:clamp(1.3rem,2.4vw,1.8rem);margin:3rem 0 1.25rem;font-family:var(--pf-head,inherit)}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}
.pf-card{display:flex;flex-direction:column;border-radius:var(--pf-radius,16px);overflow:hidden;background:var(--pf-card,#111);border:1px solid var(--pf-line,rgba(255,255,255,.08));color:inherit;text-decoration:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s}
a.pf-card:hover{transform:translateY(-6px);border-color:var(--pf-accent,#BBD647);box-shadow:0 18px 50px -20px var(--pf-glow,rgba(187,214,71,.45))}
.pf-card.is-current{outline:2px solid var(--pf-accent,#BBD647);outline-offset:-2px}
.pf-thumb{aspect-ratio:16/10;background:var(--pf-thumb,linear-gradient(135deg,#1b2a14,#0c120a));display:grid;place-items:center;overflow:hidden;position:relative}
.pf-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.pf-thumb span{font-size:2.2rem;font-weight:700;letter-spacing:.04em;color:var(--pf-accent,#BBD647);opacity:.85}
.pf-thumb-concept img{position:absolute;inset:0}
.pf-thumb-concept span{position:relative;z-index:0}
.pf-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.35rem}
.pf-body h3{margin:.2rem 0 0;font-size:1.08rem}
.pf-body p{margin:0;opacity:.75;font-size:.92rem}
.pf-body small{opacity:.55;font-size:.78rem;line-height:1.4}
.pf-body em{font-style:normal;color:var(--pf-accent,#BBD647);font-size:.85rem;margin-top:.25rem}
.pf-badge{align-self:flex-start;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .55rem;border-radius:999px;font-weight:600}
.pf-verified{background:rgba(53,167,73,.16);color:#5fd06f}
.pf-listed{background:rgba(255,190,60,.15);color:#e0a526}
.pf-placeholder{background:rgba(150,150,150,.18);color:#999}
.pf-placeholder .pf-thumb,.pf-listed .pf-thumb{filter:saturate(.6)}
.pf-thumb-concept img+span{display:none}
