.gallery-hero{background:linear-gradient(135deg, var(--color-dark), var(--color-primary));color:#fff;text-align:center;padding:160px 0 80px}.gallery-hero h1{text-transform:uppercase;margin-bottom:16px;font-size:48px;font-weight:800}.gallery-hero p{max-width:640px;margin:0 auto;font-size:18px}.page-hero--album-mosaic{position:relative;overflow:hidden}.hero-mosaic{z-index:0;opacity:.35;width:100%;height:100%;position:absolute;top:0;left:0}.hero-mosaic--grid-1{grid-template-columns:1fr;display:grid}.hero-mosaic--grid-2{grid-template-columns:1fr 1fr;display:grid}.hero-mosaic--grid-2x2{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;display:grid}.hero-mosaic--fallback{background:linear-gradient(135deg, var(--color-dark), var(--color-primary))}.hero-mosaic img{object-fit:cover;width:100%;height:100%}.page-hero--album-mosaic>:not(.hero-mosaic){z-index:1;position:relative}.gallery-section{padding:80px 0}.gallery-card-grid{gap:16px;display:grid}@media (width>=480px){.gallery-card-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=992px){.gallery-card-grid{grid-template-columns:repeat(3,1fr);gap:24px}}.gallery-card{border-radius:var(--radius-md);background:#fff;flex-direction:column;height:100%;transition:transform .3s,box-shadow .3s;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000014}.gallery-card:hover{transform:translateY(-6px);box-shadow:0 25px 45px #0000001f}.gallery-card-link{color:inherit;flex-direction:column;height:100%;text-decoration:none;display:flex}.gallery-card-link:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px;border-radius:var(--radius-md)}.gallery-card img{object-fit:cover;width:100%;height:220px}.gallery-card-body{flex-direction:column;flex:1;padding:24px;display:flex}.gallery-card-date{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;font-size:14px;font-weight:600}.gallery-card-title{color:#1c1f24;margin-bottom:12px;font-size:24px}.gallery-card-description{color:#444;flex:1;margin-bottom:24px;font-size:.98rem;line-height:1.5}.gallery-card-footer{border-top:1px solid #f0f2f7;justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;font-size:.95rem;display:flex}.gallery-card-footer span{color:#5b687a}.gallery-card-cta{color:var(--color-primary);font-weight:600}.album-header{text-align:center;background:#f5f9ff;padding:140px 0 60px}.album-header h1{margin-bottom:12px;font-size:42px}.album-header time{color:var(--color-primary);font-weight:600}.album-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:40px;display:grid}.album-photo{cursor:pointer;border-radius:var(--radius-md);position:relative;overflow:hidden;box-shadow:0 10px 25px #00000014}.album-photo button{background:0 0;border:none;width:100%;padding:0;display:block}.album-photo button:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.album-photo img{object-fit:cover;width:100%;height:220px;transition:transform .3s}.album-photo:hover img{transform:scale(1.05)}.album-photo figcaption{color:#fff;background:linear-gradient(#0000,#0009);padding:12px 16px;font-size:15px;line-height:1.4;position:absolute;bottom:0;left:0;right:0}.gallery-lightbox{z-index:1050;touch-action:none;background:#000000eb;justify-content:center;align-items:center;width:100%;height:100%;padding:30px;display:flex;position:fixed;top:0;left:0;overflow:hidden}.gallery-lightbox img{border-radius:var(--radius-md);max-width:85vw;max-height:70vh;box-shadow:0 30px 80px #00000080}.gallery-lightbox button{color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:50%;width:48px;height:48px;font-size:20px;position:absolute}.gallery-lightbox button:hover{background:#0271bdcc}.gallery-lightbox .close-btn{top:30px;right:30px}.gallery-lightbox .prev-btn{left:30px}.gallery-lightbox .next-btn{right:30px}.gallery-lightbox figcaption{color:#fff;text-align:center;margin-top:20px;font-size:19px;line-height:1.5}.gallery-filter{scrollbar-width:none;-ms-overflow-style:none;border-bottom:none;flex-wrap:wrap;gap:8px;margin-bottom:32px;padding:0;display:flex}.gallery-filter::-webkit-scrollbar{display:none}.gallery-filter-tab{border-radius:var(--radius-full,100px);color:#5b687a;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #d0d5de;flex-shrink:0;min-height:36px;padding:8px 20px;font-family:inherit;font-size:15px;font-weight:500;transition:all .2s}.gallery-filter-tab:hover{border-color:var(--color-primary);color:var(--color-primary)}.gallery-filter-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.gallery-filter-tab--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.gallery-filter-empty{text-align:center;color:#5b687a;padding:48px 0;font-size:1.05rem}@keyframes skeletonPulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.skeleton-pulse{background:#e2e5eb;border-radius:4px;animation:1.5s ease-in-out infinite skeletonPulse}.gallery-card--skeleton{pointer-events:none}.gallery-card--skeleton .skeleton-image{border-radius:0;width:100%;height:220px}.skeleton-date{width:40%;height:14px;margin-bottom:12px}.skeleton-title{width:80%;height:24px;margin-bottom:12px}.skeleton-text{width:100%;height:14px;margin-bottom:8px}.skeleton-text--short{width:60%}.skeleton-footer{width:50%;height:14px}.album-photo--skeleton{pointer-events:none}.skeleton-photo-image{border-radius:0;width:100%;height:220px}.skeleton-hero-title{vertical-align:middle;width:60%;height:2.5rem;display:inline-block}.skeleton-hero-meta{width:30%;height:1rem;margin-bottom:.5rem}.skeleton-hero-lead{width:80%;height:1rem}@keyframes galleryFadeIn{0%{opacity:0}to{opacity:1}}.gallery-content-fade{animation:.4s galleryFadeIn}@media (width<=768px){.gallery-hero{padding:120px 20px 60px}.gallery-hero h1{font-size:34px}.gallery-card img{height:160px}.album-photo img{height:180px}.gallery-card--skeleton .skeleton-image{height:160px}.skeleton-photo-image{height:180px}.gallery-card-body{padding:16px}.gallery-card-title{font-size:20px}.gallery-card-description{font-size:.95rem}.gallery-lightbox{padding:20px}.gallery-lightbox button{width:40px;height:40px}}@media (width>=768px) and (width<=991px){.gallery-card img,.gallery-card--skeleton .skeleton-image{height:160px}.gallery-card-body{padding:16px}.gallery-card-title{font-size:20px}.gallery-card-description{font-size:.95rem}}
