.art-gallery{--gallery-frame:#ecece3}
.gallery-toolbar{padding:25px;background:#e8edde;border:1px solid var(--line)}
.gallery-category{border:0;padding:0;margin:0 0 21px;min-width:0}
.gallery-category legend,.gallery-search-row label{display:block;font-size:11px;font-weight:500;color:var(--muted);margin-bottom:11px;letter-spacing:.3px}
.gallery-category-buttons{display:flex;flex-wrap:wrap;gap:9px}
.gallery-category-buttons button{border:1px solid #c6cfbd;color:var(--ink);background:transparent;border-radius:24px;padding:10px 19px;cursor:pointer;font-size:13px;line-height:1.4;transition:background .2s,color .2s}
.gallery-category-buttons button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.gallery-category-buttons button span{font:12px Georgia,serif;margin-left:6px;opacity:.7}
.gallery-search-row{display:grid;grid-template-columns:190px 1fr;gap:18px}
.gallery-search-row select,.gallery-search-row input{width:100%;min-width:0;height:46px;border:1px solid #bdc8b2;border-radius:0;color:var(--ink);background:var(--paper);padding:10px 13px;font:inherit;font-size:13px}
.gallery-search-row input{font-family:inherit;font-size:13px;appearance:none}
.gallery-search-row input:focus-visible{outline:3px solid #81a64a;outline-offset:3px}
.gallery-count{font-size:12px;line-height:1.8;color:var(--muted);margin:24px 0 20px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 20px}
.gallery-card{min-width:0;break-inside:avoid}
.gallery-card[hidden],.gallery-empty[hidden]{display:none!important}
.gallery-open{display:block}
.gallery-frame{aspect-ratio:4/5;position:relative;background:var(--gallery-frame);border:1px solid #dbdfd1;display:grid;place-items:center;padding:13px;overflow:hidden}
.gallery-frame img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;transition:transform .25s ease;min-height:0;min-width:0}
.gallery-open:hover .gallery-frame img{transform:scale(1.025)}
.gallery-enlarge{position:absolute;right:9px;bottom:9px;color:var(--ink);background:#f5f3ebeb;border:1px solid #d5dacb;padding:6px 9px;line-height:1.2;font-size:10px}
.gallery-card-copy{padding:15px 0 0}
.gallery-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:10px;line-height:1.7;color:var(--muted)}
.gallery-meta span:first-child{color:#3c5737}
.gallery-card h3{font-size:15px;font-weight:500;letter-spacing:-.3px;line-height:1.65;margin:9px 0 0;overflow-wrap:anywhere}
.gallery-card p{font-size:11px;line-height:1.85;color:var(--muted);margin:8px 0 0;overflow-wrap:anywhere}
.gallery-note{font-size:11px;line-height:1.9;color:var(--muted);padding-top:25px;margin:30px 0 0;border-top:1px solid var(--line)}
.gallery-empty{padding:60px 20px;text-align:center;background:#eceee4;border:1px solid var(--line)}
.gallery-empty h2{font-size:22px;letter-spacing:-.5px;margin:0 0 15px}
.gallery-empty p{font-size:13px;color:var(--muted);line-height:1.8}
.gallery-empty button{background:transparent;border:0;border-bottom:1px solid var(--ink);padding:8px 0;font-size:13px;color:var(--ink);cursor:pointer}
.gallery-home{background:#eeeee4;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gallery-home .gallery-frame{background:#e2e6d9}
.gallery-home .gallery-card p{display:none}
.gallery-home-nav{display:flex;gap:12px;flex-wrap:wrap;margin:-5px 0 29px;font-size:12px}
.gallery-home-nav a{display:flex;align-items:center;gap:28px;border-bottom:1px solid #9ca992;padding:11px 0;margin-right:15px}
.gallery-home-nav a:first-child{color:#50633d}
.gallery-home-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:35px;padding-top:26px;border-top:1px solid var(--line)}
.gallery-home-bottom p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}
.gallery-home-bottom .pill{font-size:12px;flex-shrink:0}
.gallery-dialog{width:min(1130px,94vw);max-width:94vw;max-height:94dvh;padding:0;border:1px solid #f5f3eb60;background:var(--paper);color:var(--ink);overflow:auto;overscroll-behavior:contain}
.gallery-dialog::backdrop{background:#10251aeb}
.gallery-dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:11px 18px;background:var(--paper);position:sticky;top:0;z-index:2;border-bottom:1px solid var(--line);font-size:11px}
.gallery-dialog-close{background:transparent;color:var(--ink);border:1px solid var(--line);padding:8px 13px;cursor:pointer;display:flex;align-items:center;gap:18px;font-size:12px}
.gallery-dialog-close span{font-size:20px;line-height:1}
.gallery-dialog-image{background:#e5e8df;display:grid;place-items:center;padding:18px;min-height:180px}
.gallery-dialog-image img{display:block;width:100%;height:100%;max-height:64dvh;object-fit:contain}
.gallery-dialog-details{padding:23px 28px 26px}
.gallery-dialog-details h2{font-size:23px;font-weight:500;letter-spacing:-.7px;line-height:1.5;margin:9px 0 0;overflow-wrap:anywhere}
.gallery-dialog-details>p{font-size:12px;line-height:1.9;color:var(--muted);margin:13px 0 0;max-width:800px}
.gallery-dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:21px}
.gallery-dialog-links{display:flex;gap:13px 23px;flex-wrap:wrap;font-size:11px}
.gallery-dialog-links a{border-bottom:1px solid #879780;padding-bottom:4px}
.gallery-dialog-links a[hidden]{display:none}
.gallery-step-controls{display:flex;gap:9px;flex-shrink:0}
.gallery-step-controls button{border:1px solid #b8c3ac;background:transparent;padding:10px 15px;cursor:pointer;color:var(--ink);font-size:12px}
.gallery-step-controls button:hover{background:#e5ebd9}
.gallery-step-controls button:disabled{opacity:.4;cursor:default}
@media(min-width:1400px){.gallery-full .gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 16px}.gallery-home .gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 14px}.gallery-home .gallery-frame{padding:9px}.gallery-home .gallery-card h3{font-size:13px}}
@media(max-width:760px){.gallery-grid,.gallery-home .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 15px}.gallery-toolbar{padding:21px}.gallery-dialog-image img{max-height:60dvh}.gallery-home-bottom{align-items:flex-start;flex-direction:column;gap:19px}}
@media(max-width:480px){.gallery-toolbar{padding:17px}.gallery-search-row{grid-template-columns:1fr;gap:15px}.gallery-category-buttons{gap:7px}.gallery-category-buttons button{font-size:12px;padding:9px 12px}.gallery-category-buttons button span{margin-left:4px}.gallery-frame{padding:8px}.gallery-card h3{font-size:13px}.gallery-card p{font-size:11px}.gallery-meta{font-size:9px;gap:4px 8px}.gallery-home-nav{gap:7px 14px}.gallery-home-nav a{gap:13px;margin-right:0;font-size:11px}.gallery-dialog{width:96vw;max-width:96vw;max-height:96dvh}.gallery-dialog-bar{padding:10px 12px}.gallery-dialog-image{padding:10px;min-height:120px}.gallery-dialog-details{padding:18px}.gallery-dialog-details h2{font-size:20px}.gallery-dialog-bottom{flex-direction:column;align-items:flex-start;gap:20px}.gallery-step-controls{width:100%}.gallery-step-controls button{flex:1;padding:12px}.gallery-enlarge{font-size:9px;padding:5px 7px}}
@media(max-width:379px){.gallery-grid,.gallery-home .gallery-grid{grid-template-columns:1fr}.gallery-frame{aspect-ratio:1}.gallery-card h3{font-size:15px}.gallery-meta{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gallery-frame img,.gallery-category-buttons button{transition:none}.gallery-open:hover .gallery-frame img{transform:none}}
.gallery-source-link{display:inline-block;font-size:10px;color:#66745b;text-decoration:underline;text-underline-offset:3px;margin-top:10px}.gallery-home .gallery-source-link{display:none}

/* One set of accessible cards, two views. Native scrolling supplies mobile
   swiping without a carousel dependency or automatic playback. */
.art-gallery [data-gallery-browse][hidden],.art-gallery [data-gallery-slide-controls][hidden],.art-gallery [data-gallery-image-status][hidden]{display:none!important}
.gallery-browse{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 23px}
.gallery-view-switch{display:inline-flex;gap:3px;padding:4px;border:1px solid #c8d0c0;border-radius:999px;background:#e9ecdf}
.gallery-view-switch button{border:0;border-radius:999px;padding:10px 18px;min-height:42px;color:var(--muted);background:transparent;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.gallery-view-switch button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 5px #263b3115}
.gallery-slide-controls{display:flex;align-items:center;gap:8px}
.gallery-slide-position{font:14px/1.4 Georgia,serif;font-variant-numeric:tabular-nums;min-width:62px;text-align:center;color:var(--muted)}
.gallery-slide-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--paper);border:1px solid #bbc7af;border-radius:50%;color:var(--ink);font-size:20px;cursor:pointer}
.gallery-slide-controls button:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.gallery-slide-controls button:disabled{opacity:.3;cursor:default}
.art-gallery.gallery-is-slider .gallery-grid{--gallery-slide-width:74%;position:relative;display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#9aaa8d #e3e7dc;padding:5px 0 18px;scroll-padding-inline:0;-webkit-overflow-scrolling:touch}
.art-gallery.gallery-is-slider .gallery-grid::after{content:'';flex:0 0 calc(100% - var(--gallery-slide-width) - 24px)}
.art-gallery.gallery-is-slider .gallery-card{flex:0 0 var(--gallery-slide-width);scroll-snap-align:start;scroll-snap-stop:always;min-width:0}
.art-gallery.gallery-is-slider .gallery-frame{aspect-ratio:auto;height:clamp(320px,43vw,540px);padding:24px;border-radius:12px;background:#e3e7dd}
.art-gallery.gallery-is-slider .gallery-frame img{width:100%;height:100%;object-fit:contain;transform:none}
.art-gallery.gallery-is-slider .gallery-card-copy{padding:17px 3px 3px}
.art-gallery.gallery-is-slider .gallery-card h3{font-size:19px;line-height:1.5;margin-top:8px}
.art-gallery.gallery-is-slider .gallery-card p{font-size:12px;line-height:1.8}
.art-gallery.gallery-is-slider .gallery-enlarge{right:15px;bottom:15px;padding:9px 12px;background:#f5f3ebf0;border-radius:30px;font-size:11px}
.art-gallery.gallery-is-slider .gallery-grid:focus-visible{outline:2px solid #78945e;outline-offset:5px}
.gallery-home .gallery-browse{margin-top:0}
.gallery-viewer-actions{display:flex;align-items:center;gap:9px}
.gallery-viewer-actions>button{min-height:42px;border:1px solid #bac5b0;border-radius:6px;color:var(--ink);background:transparent;padding:9px 13px;cursor:pointer;font:inherit;font-size:12px}
.gallery-viewer-actions>button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.gallery-viewer-stage{position:relative;background:#e3e7dd}
.gallery-dialog .gallery-dialog-image{height:min(61dvh,650px);min-height:220px;padding:20px 66px;overflow:hidden;touch-action:pan-y pinch-zoom;overscroll-behavior:contain;background:transparent}
.gallery-dialog .gallery-dialog-image img{width:100%;height:100%;max-height:none;object-fit:contain;user-select:none;-webkit-user-drag:none}
.gallery-dialog .gallery-dialog-image.gallery-zoomed{display:block;padding:0;overflow:auto;touch-action:pan-x pan-y pinch-zoom}
.gallery-dialog .gallery-dialog-image.gallery-zoomed img{width:200%;height:auto;max-width:none;max-height:none;object-fit:initial}
.gallery-viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #c4ceba;border-radius:50%;background:#f5f3ebef;color:var(--ink);font-size:21px;cursor:pointer;box-shadow:0 3px 12px #18311d15;z-index:1}
.gallery-viewer-prev{left:12px}.gallery-viewer-next{right:12px}
.gallery-viewer-arrow:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.gallery-viewer-arrow:disabled{opacity:.3;cursor:default}
.gallery-image-status{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);padding:8px 13px;max-width:80%;border-radius:7px;background:#f5f3ebf0;color:var(--ink);font-size:12px;text-align:center;pointer-events:none}
.gallery-thumbnails{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:11px 18px;border-bottom:1px solid var(--line);background:var(--paper)}
.gallery-thumbnail{flex:0 0 58px;width:58px;height:62px;display:block;padding:4px;border:2px solid transparent;border-radius:6px;background:#e4e8dc;cursor:pointer;opacity:.65}
.gallery-thumbnail[aria-pressed=true]{border-color:#41613a;background:#d8e4ca;opacity:1}
.gallery-thumbnail:hover{opacity:1}
.gallery-dialog .gallery-thumbnail img{display:block;width:100%;height:100%;object-fit:contain}
.gallery-dialog .gallery-dialog-details{padding:17px 23px 22px}
.gallery-dialog .gallery-dialog-details h2{font-size:21px;margin-top:6px}
.gallery-dialog .gallery-dialog-details>p{margin-top:8px}
.gallery-dialog .gallery-dialog-bottom{margin-top:13px}
@media(max-width:760px){
 .gallery-browse{margin-bottom:17px;gap:8px}.gallery-view-switch button{padding:9px 13px;font-size:11px}.gallery-slide-controls{gap:5px}.gallery-slide-position{min-width:46px;font-size:12px}.gallery-slide-controls button{width:40px;height:40px}
 .art-gallery.gallery-is-slider .gallery-grid{--gallery-slide-width:88%;gap:14px;padding-bottom:15px}
 .art-gallery.gallery-is-slider .gallery-grid::after{flex-basis:calc(100% - var(--gallery-slide-width) - 14px)}
 .art-gallery.gallery-is-slider .gallery-frame{height:clamp(280px,56svh,460px);padding:14px;border-radius:9px}
 .art-gallery.gallery-is-slider .gallery-card h3{font-size:16px}.art-gallery.gallery-is-slider .gallery-card p{font-size:11px}.art-gallery.gallery-is-slider .gallery-enlarge{right:10px;bottom:10px;padding:7px 10px}
 .gallery-dialog .gallery-dialog-image{height:54dvh;min-height:180px;padding:12px 43px}
 .gallery-viewer-arrow{width:36px;height:42px;border-radius:7px;font-size:18px}.gallery-viewer-prev{left:5px}.gallery-viewer-next{right:5px}
 .gallery-thumbnails{padding:9px 12px;gap:7px}.gallery-thumbnail{flex-basis:48px;width:48px;height:53px}
 .gallery-dialog .gallery-dialog-details{padding:14px 17px 18px}.gallery-dialog .gallery-dialog-details h2{font-size:18px}
}
@media(max-width:380px){.gallery-view-switch button{padding:9px 10px}.gallery-slide-controls button{width:36px;height:40px}.gallery-slide-position{min-width:40px}.art-gallery.gallery-is-slider .gallery-grid{--gallery-slide-width:91%}}
@media(prefers-reduced-motion:reduce){.art-gallery.gallery-is-slider .gallery-grid,.gallery-thumbnails{scroll-behavior:auto!important}}
