.gs-article-gallery-image{cursor:zoom-in;transition:transform .2s ease,box-shadow .2s ease}.gs-article-gallery-image:hover{transform:scale(1.008);box-shadow:0 8px 24px rgba(0,0,0,.10)}.gs-article-gallery-image:focus-visible{outline:3px solid var(--ca-accent,#c133a7);outline-offset:4px}
.gs-article-gallery-viewer{display:block;margin:0 0 30px;padding:18px;background:#fff;border:1px solid #e4e0e4;border-radius:4px;box-shadow:0 8px 28px rgba(28,20,28,.07);scroll-margin-top:22px}.gs-article-gallery-viewer[hidden]{display:none}.gs-article-gallery-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:2px 2px 12px;border-bottom:1px solid #e8e4e8}.gs-article-gallery-viewer-title{font:800 13px/1.2 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#167b69}.gs-article-gallery-viewer-count{font:700 12px/1 system-ui,sans-serif;color:#777}.gs-article-gallery-viewer-count strong{font-size:18px;color:#167b69}.gs-article-gallery-viewer-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 0}.gs-article-gallery-prev,.gs-article-gallery-next,.gs-article-gallery-close{min-height:34px;border:0;border-radius:2px;padding:8px 13px;background:#087b68;color:#fff;font:800 11px/1 system-ui,sans-serif;cursor:pointer}.gs-article-gallery-prev{justify-self:start}.gs-article-gallery-next{justify-self:end}.gs-article-gallery-close{background:#f1f1f1;color:#4b4b4b;border:1px solid #ddd}.gs-article-gallery-prev:hover,.gs-article-gallery-next:hover{background:#056653}.gs-article-gallery-close:hover{background:#e7e7e7}.gs-article-gallery-prev:disabled,.gs-article-gallery-next:disabled{opacity:.45;cursor:default}.gs-article-gallery-viewer-figure{margin:0;background:#f4f4f4;border:1px solid #dedede;text-align:center}.gs-article-gallery-viewer-figure img{display:block;width:auto;max-width:100%;height:auto;max-height:78vh;margin:0 auto;object-fit:contain}.gs-article-gallery-viewer-figure figcaption{padding:8px 12px;background:#fff;color:#555;font:500 12px/1.45 system-ui,sans-serif}.gs-article-gallery-thumbs{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 2px;scrollbar-width:thin}.gs-article-gallery-thumb{flex:0 0 66px;width:66px;height:50px;padding:0;border:2px solid transparent;border-radius:3px;background:#eee;overflow:hidden;cursor:pointer}.gs-article-gallery-thumb img{display:block;width:100%;height:100%;object-fit:cover}.gs-article-gallery-thumb.is-active{border-color:#087b68}.gs-article-gallery-thumb:focus-visible{outline:2px solid #087b68;outline-offset:2px}
@media(max-width:767px){.gs-article-gallery-viewer{margin-bottom:24px;padding:10px;border-radius:3px}.gs-article-gallery-viewer-nav{grid-template-columns:1fr 1fr;gap:8px}.gs-article-gallery-close{grid-column:1/-1;grid-row:1;justify-self:center;order:-1}.gs-article-gallery-prev,.gs-article-gallery-next{width:100%;justify-self:stretch}.gs-article-gallery-viewer-figure img{max-height:70vh}.gs-article-gallery-thumb{flex-basis:58px;width:58px;height:44px}}
@media(prefers-reduced-motion:reduce){.gs-article-gallery-image{transition:none}.gs-article-gallery-viewer{scroll-behavior:auto}}
/* Swipe: the browser may scroll the figure vertically, horizontal movement is
   handled by the viewer. */
.gs-article-gallery-viewer-figure{touch-action:pan-y}
/* The viewer image has no size until its file is decoded, and closing the
   viewer clears the src. Reserving the height keeps the article from jumping
   as photos change; object-fit:contain letterboxes a shorter image inside it. */
.gs-article-gallery-viewer-figure img{min-height:min(60vh,320px)}
@media(max-width:767px){.gs-article-gallery-viewer-figure img{min-height:min(52vh,260px)}}