/* Picture Gallery: scoped, server-first layout. No theme or legacy UI selectors. */
.vwpg-gallery{--vwpg-columns:3;--vwpg-gap:16px;--vwpg-ink:#333;--vwpg-muted:#666;--vwpg-surface:#fff;--vwpg-panel:#f7f7f7;--vwpg-line:#ddd;color:var(--vwpg-ink);margin-block:1.5rem;font:inherit;max-width:100%}
.vwpg-gallery .vwpg-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:16px;margin-block-end:16px;background:var(--vwpg-panel);border-color:var(--vwpg-line)}
.vwpg-gallery .vwpg-filters label{display:grid;gap:5px;flex:1 1 180px;color:var(--vwpg-muted);font-size:.875em;font-weight:600;margin:0}
.vwpg-gallery .vwpg-filters input,.vwpg-gallery .vwpg-filters select{box-sizing:border-box;min-width:0;width:100%;margin:0}
/* Keep Fomantic geometry; only adapt form colors to the resolved palette. */
.vwpg-gallery .vwpg-filters.ui.form input[type=search],.vwpg-gallery .vwpg-filters.ui.form select{color:var(--vwpg-ink);background-color:var(--vwpg-surface);border-color:var(--vwpg-line)}
.vwpg-gallery :is(a,button,input):focus-visible{outline:3px solid var(--fanspaysite-link-color,#767676);outline-offset:3px}
.vwpg-gallery .vwpg-items{display:grid;grid-template-columns:repeat(var(--vwpg-columns),minmax(0,1fr));gap:var(--vwpg-gap);align-items:start}
.vwpg-gallery .vwpg-card{min-width:0;overflow:hidden;border-radius:10px;margin:0;padding:0;background:var(--vwpg-surface);border:1px solid var(--vwpg-line);box-shadow:0 2px 8px #00000008}
.vwpg-gallery .vwpg-image-link{display:block;background:var(--vwpg-panel);overflow:hidden;border-radius:9px 9px 0 0;line-height:0}
.vwpg-gallery .vwpg-image-link img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;margin:0;padding:0;border:0;border-radius:0;transition:transform .2s ease}
.vwpg-gallery a.vwpg-image-link:hover img{transform:scale(1.025)}
.vwpg-gallery .vwpg-card h3{font-size:1em;line-height:1.45;font-weight:600;margin:13px 15px;color:var(--vwpg-ink);overflow-wrap:anywhere}
.vwpg-gallery .vwpg-card h3 a{color:inherit;text-decoration:none}
.vwpg-gallery .vwpg-caption{color:var(--vwpg-muted);margin:0 15px 15px;line-height:1.6;font-size:.9em;overflow-wrap:anywhere}
.vwpg-gallery .vwpg-state{display:inline-block;margin:0 15px 12px;padding:3px 9px;border-radius:20px;font-size:.8em;background:var(--vwpg-panel);color:var(--vwpg-ink)}

.vwpg-gallery .vwpg-pagination{display:flex;justify-content:space-between;gap:12px;margin-block-start:22px}
.vwpg-gallery .vwpg-pagination:empty{display:none}
.vwpg-gallery .vwpg-status:empty{display:none}
.vwpg-gallery .vwpg-status{color:var(--vwpg-muted);margin-block:12px}
.vwpg-gallery[aria-busy=true] .vwpg-items{opacity:.7}
.vwpg-layout-grid .vwpg-card{box-shadow:none}
.vwpg-layout-cards .vwpg-image-link img{object-fit:contain}
.vwpg-viewer .vwpg-view-caption{position:absolute;inset-inline:0;bottom:0;z-index:10;padding:12px 20px;background:#111d;color:#fff;display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;font-size:15px}
.vwpg-viewer .vwpg-view-caption a{color:#fff;text-decoration:underline}
.vwpg-viewer .vwpg-view-caption p{margin:0;overflow-wrap:anywhere;max-height:4.5em;overflow:auto}
@media(max-width:900px){.vwpg-gallery .vwpg-items{grid-template-columns:repeat(var(--vwpg-tablet,2),minmax(0,1fr))}}
@media(max-width:520px){.vwpg-gallery .vwpg-items{grid-template-columns:minmax(0,1fr)}.vwpg-gallery .vwpg-filters{padding:12px}.vwpg-gallery .vwpg-filters label{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.vwpg-gallery .vwpg-image-link img{transition:none}.vwpg-gallery a.vwpg-image-link:hover img{transform:none}}

.vwpg-gallery[data-theme-mode=dark]:not([data-vwpg-resolved-theme=light]),.vwpg-gallery[data-vwpg-resolved-theme=dark]{--vwpg-ink:#eee;--vwpg-muted:#ccc;--vwpg-surface:#252525;--vwpg-panel:#303030;--vwpg-line:#555}
@media(prefers-color-scheme:dark){.vwpg-gallery[data-theme-mode=auto]:not([data-vwpg-resolved-theme=light]){--vwpg-ink:#eee;--vwpg-muted:#ccc;--vwpg-surface:#252525;--vwpg-panel:#303030;--vwpg-line:#555}}

/* Compact thumbnail tiles and metadata cards are deliberately distinct. Never upscale preview pixels. */
.vwpg-layout-grid .vwpg-items{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--vwpg-thumb-width)),var(--vwpg-thumb-width)));gap:var(--vwpg-gap)}
.vwpg-gallery .vwpg-card{box-sizing:border-box}.vwpg-gallery .vwpg-image-link img{width:auto;height:auto;max-width:100%;max-height:var(--vwpg-thumb-height);aspect-ratio:auto;object-fit:contain;transform:none}
.vwpg-gallery .vwpg-image-link{max-width:var(--vwpg-item-width);width:100%;line-height:0;flex-shrink:0}.vwpg-gallery a.vwpg-image-link:hover img{transform:none}
.vwpg-layout-grid .vwpg-card{width:var(--vwpg-item-width);max-width:100%;border:0;border-radius:4px;background:transparent;position:relative}
.vwpg-layout-grid .vwpg-image-link{border-radius:4px}.vwpg-layout-grid .vwpg-card h3{font-size:.85em;line-height:1.3;margin:5px 0}.vwpg-layout-grid .vwpg-card-body{padding:0}
.vwpg-layout-cards .vwpg-items{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--vwpg-thumb-width) + 190px)),1fr));gap:max(16px,var(--vwpg-gap))}
.vwpg-layout-cards .vwpg-card{display:flex;align-items:start;border-radius:10px;min-height:120px;padding:12px;gap:8px}
.vwpg-layout-cards .vwpg-card-body{flex:1;min-width:0}.vwpg-layout-cards .vwpg-image-link{border-radius:6px;max-width:min(50%,var(--vwpg-item-width))}
.vwpg-layout-cards .vwpg-card h3{margin:0 8px 8px;font-size:1.05em}.vwpg-layout-cards .vwpg-caption{margin:0 8px 10px}
.vwpg-viewer .vwpg-view-caption{bottom:92px;padding:10px 20px}.vwpg-viewer.vwpg-no-strip .vwpg-view-caption{bottom:0}.vwpg-viewer .vwpg-view-caption .vwpg-open-picture{background:#fff;color:#222;padding:11px 18px;border-radius:6px;font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:0 2px 8px #0005}.vwpg-viewer .vwpg-view-caption p{flex:1;min-width:100px;max-height:3em}
.vwpg-viewer .vwpg-thumb-strip{position:absolute;bottom:0;left:0;right:0;height:88px;display:flex;align-items:center;justify-content:center;gap:6px;overflow:hidden;padding:7px 10px;background:#171717ed;box-sizing:border-box;z-index:12}
.vwpg-viewer .vwpg-thumb-strip button{border:2px solid transparent;flex:0 0 64px;width:64px;height:64px;padding:2px;background:#333;border-radius:5px;cursor:pointer}.vwpg-viewer .vwpg-thumb-strip img{width:100%;height:100%;object-fit:contain;display:block}.vwpg-viewer .vwpg-thumb-strip button[aria-current=true]{border-color:var(--fanspaysite-link-color,#fff);background:var(--fanspaysite-background-color,#444);box-shadow:0 0 0 2px var(--fanspaysite-link-color,#ddd)}.vwpg-viewer .vwpg-thumb-strip button:focus-visible{outline:3px solid var(--fanspaysite-link-color,#ddd);outline-offset:2px}

@media(max-width:520px){.vwpg-layout-grid .vwpg-items{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--vwpg-thumb-width)),var(--vwpg-thumb-width)))}.vwpg-layout-cards .vwpg-items{grid-template-columns:minmax(0,1fr)}.vwpg-viewer .vwpg-view-caption{font-size:13px;padding:7px 10px}.vwpg-viewer .vwpg-view-caption .vwpg-open-picture{padding:8px 12px}.vwpg-viewer .vwpg-thumb-strip{gap:4px}.vwpg-viewer .vwpg-thumb-strip button{width:52px;flex-basis:52px;height:52px}}
.vwpg-layout-grid .vwpg-card{background:var(--vwpg-surface)}.vwpg-layout-grid .vwpg-card h3{padding:3px 5px;margin:0}.vwpg-viewer .pswp__counter{font-variant-numeric:tabular-nums}

.vwpg-layout-grid .vwpg-items{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--vwpg-track-width,var(--vwpg-thumb-width))),var(--vwpg-track-width,var(--vwpg-thumb-width))));max-width:calc(var(--vwpg-columns)*(var(--vwpg-track-width,var(--vwpg-thumb-width)) + var(--vwpg-gap)) - var(--vwpg-gap))}

/* Dense grid keeps titles inside the image footprint, unlike the metadata cards. */
.vwpg-layout-grid .vwpg-card-body{position:absolute;inset:0;pointer-events:none;background:none}.vwpg-layout-grid .vwpg-card h3{position:absolute;bottom:0;inset-inline:0;padding:15px 6px 5px;background:linear-gradient(transparent,#000c);color:#fff;font-size:13px;max-height:3.5em;overflow:hidden;line-height:1.25;box-sizing:border-box}.vwpg-layout-grid .vwpg-card-body a{pointer-events:auto}.vwpg-layout-grid .vwpg-state{position:absolute;top:0;left:0;margin:4px;font-size:11px;padding:2px 4px}
/* Overlay titles stay keyboard-accessible; pointer clicks pass through to the gallery image action. */
.vwpg-layout-grid .vwpg-card-body h3 a{pointer-events:none}

/* Management controls occupy their own row, outside the image/title overlay. */
.vwpg-layout-grid .vwpg-card-body{position:relative;inset:auto;pointer-events:auto}
.vwpg-layout-grid .vwpg-card h3{bottom:100%}
.vwpg-layout-grid .vwpg-state{position:static;display:inline-block;margin:5px 5px 0;max-width:calc(100% - 10px);box-sizing:border-box;overflow-wrap:anywhere}
.vwpg-gallery .vwpg-actions{display:flex;flex-wrap:wrap;gap:5px;padding:6px;position:relative}
.vwpg-gallery .vwpg-actions :is(.vwpg-manage,.vwpg-edit-image){position:static;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:32px;max-width:100%;margin:0;text-decoration:none;overflow-wrap:anywhere;pointer-events:auto}


/* FansPaysite tokens follow the live mode, including while AJAX results arrive. */
.vwpg-gallery[data-vwpg-follow-theme][data-theme-mode]{--vwpg-ink:var(--fanspaysite-text-color,#333);--vwpg-surface:var(--fanspaysite-background-color,#fff);--vwpg-panel:var(--fanspaysite-background-color,#fff);--vwpg-muted:var(--fanspaysite-text-color,#666);--vwpg-line:color-mix(in srgb,var(--fanspaysite-text-color,#333) 25%,transparent)}
.vwpg-gallery .vwpg-filters .ui.button{margin:0;min-height:40px}
/* Do not let fixed thumbnail tracks set a flex theme's minimum content width. */
.vwpg-gallery{min-width:0;contain:inline-size}

/* The arrow and its preview share one native button and one unclipped hit target. */
.vwpg-viewer{--vwpg-viewer-bottom:185px}.vwpg-viewer.vwpg-no-strip{--vwpg-viewer-bottom:100px}
.vwpg-viewer .pswp__button.pswp__button--arrow{width:112px;height:148px;top:calc((100% + 45px - var(--vwpg-viewer-bottom))/2);margin-top:0;transform:translateY(-50%);overflow:visible}
.vwpg-viewer .pswp__button.pswp__button--arrow .pswp__icn{top:4px;left:26px;right:auto;margin-top:0;width:60px;height:60px}
.vwpg-viewer .pswp__button.pswp__button--arrow img{position:absolute;top:68px;left:8px;right:auto;width:96px;height:72px;max-width:none;max-height:none;box-sizing:border-box;object-fit:scale-down;border:1px solid #fff;border-radius:5px;background:#222;pointer-events:none}
.vwpg-viewer .pswp__button.pswp__button--arrow:focus-visible{outline:3px solid var(--fanspaysite-link-color,#fff);outline-offset:-3px;border-radius:6px}
.vwpg-viewer.pswp--touch .pswp__button.pswp__button--arrow{visibility:visible}
@media(max-width:759px),(max-height:479px){
.vwpg-viewer .pswp__button.pswp__button--arrow{width:84px;height:112px}
.vwpg-viewer .pswp__button.pswp__button--arrow .pswp__icn{top:2px;left:20px;width:44px;height:44px}
.vwpg-viewer .pswp__button.pswp__button--arrow img{top:50px;left:6px;width:72px;height:54px}
}
/* Keep short landscape screens clear of the top toolbar and bottom caption. */
@media(max-height:360px){
.vwpg-viewer .pswp__button.pswp__button--arrow{height:52px}
.vwpg-viewer .pswp__button.pswp__button--arrow img{display:none}
}
