.gallery-library-v1{--gallery-forest:#173f32;--gallery-forest-2:#245f49;--gallery-cream:#f6f2e8;--gallery-sand:#e7dcc7;--gallery-ink:#1e2925;--gallery-muted:#66716c;--gallery-line:rgba(23,63,50,.14)}
.gallery-library-v1 .gallery-library-head{max-width:820px;margin:0 auto 42px;text-align:center}
.gallery-library-v1 .gallery-library-head h2{margin-bottom:16px;color:var(--gallery-forest)}
.gallery-library-v1 .gallery-library-head p{max-width:720px;margin:0 auto;color:var(--gallery-muted);font-size:18px;line-height:1.65}
.gallery-library-v1 .gallery-library-summary{margin-top:12px;font-size:14px;color:var(--gallery-muted)}
.gallery-library-v1 .gallery-library-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 34px}
.gallery-library-v1 .gallery-library-filter{border:1px solid var(--gallery-line);background:#fff;color:var(--gallery-forest);border-radius:999px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;transition:.18s ease}
.gallery-library-v1 .gallery-library-filter:hover,.gallery-library-v1 .gallery-library-filter.is-active{background:var(--gallery-forest);border-color:var(--gallery-forest);color:#fff}
.gallery-library-v1 .gallery-albums-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.gallery-library-v1 .gallery-album-card{appearance:none;width:100%;padding:0;border:1px solid var(--gallery-line);border-radius:22px;background:#fff;overflow:hidden;text-align:left;color:inherit;cursor:pointer;box-shadow:0 10px 34px rgba(23,63,50,.06);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.gallery-library-v1 .gallery-album-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(23,63,50,.11);border-color:rgba(23,63,50,.24)}
.gallery-library-v1 .gallery-album-cover{position:relative;aspect-ratio:3/2;background:var(--gallery-cream);overflow:hidden}
.gallery-library-v1 .gallery-album-cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .35s ease}
.gallery-library-v1 .gallery-album-card:hover .gallery-album-cover img{transform:scale(1.025)}
.gallery-library-v1 .gallery-album-count{position:absolute;right:12px;bottom:12px;padding:7px 10px;border-radius:999px;background:rgba(23,63,50,.88);color:#fff;font-size:12px;font-weight:800;backdrop-filter:blur(6px)}
.gallery-library-v1 .gallery-album-body{padding:20px 20px 22px}
.gallery-library-v1 .gallery-album-body h3{margin:0 0 8px;color:var(--gallery-forest);font-size:24px;line-height:1.15}
.gallery-library-v1 .gallery-album-body p{margin:0;color:var(--gallery-muted);font-size:15px;line-height:1.55}
.gallery-library-v1 .gallery-empty{grid-column:1/-1;padding:52px 20px;text-align:center;border:1px dashed var(--gallery-line);border-radius:22px;color:var(--gallery-muted)}
.gallery-library-v1 .gallery-loading{grid-column:1/-1;padding:54px 20px;text-align:center;color:var(--gallery-muted)}

.gallery-album-overlay{position:fixed;inset:0;z-index:9998;display:none;background:rgba(15,28,23,.72);backdrop-filter:blur(8px);padding:24px;overflow:auto}
.gallery-album-overlay.is-open{display:block}
.gallery-album-panel{width:min(1180px,100%);margin:22px auto;background:#fff;border-radius:26px;box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}
.gallery-album-panel-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 26px;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(23,63,50,.12);backdrop-filter:blur(8px)}
.gallery-album-panel-head h2{margin:0 0 5px;color:#173f32;font-size:clamp(28px,4vw,42px)}
.gallery-album-panel-head p{margin:0;color:#66716c}
.gallery-album-close{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:50%;background:#f6f2e8;color:#173f32;font-size:28px;line-height:1;cursor:pointer}
.gallery-album-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px}
.gallery-album-photo{padding:0;border:0;background:#f6f2e8;border-radius:14px;overflow:hidden;cursor:zoom-in;aspect-ratio:1/1}
.gallery-album-photo img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-album-more-wrap{padding:14px 10px 28px;text-align:center}
.gallery-album-more{border:1px solid rgba(23,63,50,.18);border-radius:999px;padding:12px 20px;background:#fff;color:#173f32;font:inherit;font-weight:800;cursor:pointer}
.gallery-album-more:hover{background:#173f32;color:#fff}

.gallery-lightbox{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;background:rgba(8,15,12,.94);padding:28px}
.gallery-lightbox.is-open{display:flex}
.gallery-lightbox img{max-width:min(92vw,1500px);max-height:88vh;object-fit:contain;border-radius:10px}
.gallery-lightbox-close,.gallery-lightbox-prev,.gallery-lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;backdrop-filter:blur(8px)}
.gallery-lightbox-close{right:22px;top:22px;width:46px;height:46px;border-radius:50%;font-size:28px}
.gallery-lightbox-prev,.gallery-lightbox-next{top:50%;transform:translateY(-50%);width:48px;height:64px;border-radius:16px;font-size:36px}
.gallery-lightbox-prev{left:22px}.gallery-lightbox-next{right:22px}
.gallery-lightbox-status{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:13px}
body.gallery-lock{overflow:hidden}
@media(max-width:980px){.gallery-library-v1 .gallery-albums-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.gallery-library-v1 .gallery-library-head{margin-bottom:30px}.gallery-library-v1 .gallery-library-head p{font-size:16px}.gallery-library-v1 .gallery-library-filters{justify-content:flex-start;overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.gallery-library-v1 .gallery-library-filter{flex:0 0 auto}.gallery-library-v1 .gallery-albums-grid{grid-template-columns:1fr;gap:18px}.gallery-album-overlay{padding:0}.gallery-album-panel{min-height:100%;margin:0;border-radius:0}.gallery-album-panel-head{padding:18px}.gallery-album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px}.gallery-album-photo{border-radius:10px}.gallery-lightbox{padding:12px}.gallery-lightbox-prev{left:8px}.gallery-lightbox-next{right:8px}.gallery-lightbox-close{right:12px;top:12px}}
