.gpm,.gpm *,.gpm-dialog,.gpm-dialog *{box-sizing:border-box}
.gpm{width:100%;--gpm-gap:8px;--gpm-radius:5px}
.gpm .gpm__top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:1fr 1fr;gap:var(--gpm-gap);aspect-ratio:2.3}
.gpm .gpm__tile{position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:var(--gpm-radius);overflow:hidden;background:#e9edf1;cursor:pointer;box-shadow:none;appearance:none;line-height:1}
.gpm .gpm__top>.gpm__tile:first-child{grid-row:1 / 3}
.gpm .gpm__top--1{grid-template-columns:1fr;aspect-ratio:2.3}
.gpm .gpm__top--2>.gpm__tile:nth-child(2){grid-row:1 / 3}
.gpm .gpm__thumbs{display:grid;grid-template-columns:repeat(var(--gpm-thumbs),minmax(0,1fr));gap:var(--gpm-gap);margin-top:var(--gpm-gap);aspect-ratio:8}
.gpm .gpm__thumbs>.gpm__tile{aspect-ratio:auto}
.gpm .gpm__image{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;margin:0;padding:0;border:0;border-radius:0}
.gpm .gpm__more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;background:rgba(0,0,0,.56);color:#fff;font:700 clamp(12px,1.5vw,18px)/1.3 system-ui,sans-serif;text-decoration:underline;text-align:center}
.gpm .gpm__tile:focus-visible{outline:3px solid #1266b5;outline-offset:2px}
.gpm .gpm__tile:hover .gpm__image{filter:brightness(.92)}
.gpm-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#fff;color:#18212b;font:16px/1.5 system-ui,sans-serif;overflow:hidden;overscroll-behavior:contain}
.gpm-dialog[open]{display:flex;flex-direction:column}
.gpm-dialog::backdrop{background:rgba(0,0,0,.8)}
.gpm-dialog .gpm-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 auto;padding:16px 24px;padding-top:max(16px,env(safe-area-inset-top));border-bottom:1px solid #e1e4e8;background:#fff}
.gpm-dialog .gpm-dialog__header h2{margin:0;padding:0;color:inherit;font:600 clamp(16px,2vw,23px)/1.3 system-ui,sans-serif;overflow-wrap:anywhere}
.gpm-dialog .gpm-dialog__close{display:flex;align-items:center;gap:12px;flex-shrink:0;min-height:44px;padding:8px 14px;margin:0;border:1px solid #c1c8d0;border-radius:6px;background:#fff;color:#18212b;font:600 15px/1.2 system-ui,sans-serif;cursor:pointer}
.gpm-dialog .gpm-dialog__close span{font-size:26px}
.gpm-dialog .gpm-dialog__scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px;padding-bottom:max(24px,env(safe-area-inset-bottom));scrollbar-gutter:stable}
.gpm-dialog .gpm-dialog__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-content:start}
.gpm-dialog .gpm-dialog__photo{position:relative;min-width:0;margin:0;overflow:hidden;border-radius:5px;background:#e9edf1;aspect-ratio:4/3;scroll-margin:12px}
.gpm-dialog .gpm-dialog__image{display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;border:0;border-radius:0}
.gpm-dialog .gpm-dialog__photo figcaption{position:absolute;bottom:8px;right:8px;padding:2px 7px;background:rgba(0,0,0,.65);border-radius:4px;color:#fff;font:12px/1.5 system-ui,sans-serif}
.gpm-dialog :focus-visible{outline:3px solid #1266b5;outline-offset:-3px}
.gpm-dialog .gpm-dialog__photo--selected{box-shadow:inset 0 0 0 4px #1266b5;outline:3px solid #1266b5;outline-offset:1px}
@media(min-width:1024px){.gpm-dialog .gpm-dialog__grid:has(>.gpm-dialog__photo:only-child){grid-template-columns:minmax(0,1fr);max-width:1000px;margin:auto}}
@media(max-width:1023px){.gpm-dialog .gpm-dialog__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){.gpm-dialog .gpm-dialog__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gpm-dialog .gpm-dialog__scroll{padding:12px}.gpm-dialog .gpm-dialog__header{padding:12px}}
@media(max-width:600px){.gpm .gpm__top{aspect-ratio:1.6;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}.gpm .gpm__top--1{grid-template-columns:1fr}.gpm .gpm__thumbs{grid-template-columns:repeat(min(3,var(--gpm-thumbs)),minmax(0,1fr))}.gpm .gpm__thumbs{aspect-ratio:auto}.gpm .gpm__thumbs>.gpm__tile{aspect-ratio:1.55}.gpm .gpm__more{font-size:12px}}
@media(max-width:480px){.gpm-dialog .gpm-dialog__grid{grid-template-columns:1fr}}

/* Balanced final row when four or five thumbnails wrap on mobile. */
@media(max-width:600px){.gpm .gpm__thumbs:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.gpm .gpm__thumbs:has(>:nth-child(5)){grid-template-columns:repeat(6,minmax(0,1fr))}.gpm .gpm__thumbs:has(>:nth-child(5))>.gpm__tile{grid-column:span 2}.gpm .gpm__thumbs:has(>:nth-child(5))>.gpm__tile:nth-child(n+4){grid-column:span 3}}
