/* Gallery layouts — structure only (shared by the site and the dashboard preview) */
.pf-g{--gap:clamp(8px,1.3vw,18px);width:100%}
.pf-g.narrow{max-width:860px;margin-inline:auto}
.pf-g .tile{position:relative;display:block;overflow:hidden;background:#ececec;cursor:zoom-in;min-width:0}
.pf-g .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pf-g .mrow{display:flex;gap:var(--gap);margin-bottom:var(--gap)}
.pf-g .mrow:last-child{margin-bottom:0}
.pf-g .mrow .tile{flex:var(--a) 1 0%}
.pf-g .mgrid{display:grid;grid-template-columns:repeat(var(--c),minmax(0,1fr));gap:var(--gap)}
.pf-g .mstack{display:grid;gap:var(--gap)}
.pf-g .mgrid .tile,.pf-g .mstack .tile{aspect-ratio:var(--ar)}
.pf-g .mcustom{position:relative;width:100%;aspect-ratio:var(--mr);margin-bottom:var(--gap)}
.pf-g .mcustom:last-child{margin-bottom:0}
.pf-g .mcustom .tile{position:absolute}
