:root{--gallery-teal:#25c7bd}
.gallery-index-page,.public-gallery-page{min-height:100vh;background:#080b0d;color:#fff;overflow-x:hidden}
.gallery-index-hero,.public-gallery-hero{padding:clamp(105px,12vw,165px) 0 46px;background:radial-gradient(circle at 80% 20%,rgba(37,199,189,.2),transparent 32%),#080b0d}
.gallery-index-hero h1,.public-gallery-hero h1{font-size:clamp(3rem,8vw,7rem);line-height:.9;margin:.25em 0;font-weight:900;letter-spacing:-.06em}
.gallery-index-hero p,.public-gallery-hero p{font-size:clamp(1rem,2vw,1.3rem);max-width:780px;color:#bec6c9;font-weight:600}
.eyebrow{color:var(--gallery-teal);text-transform:uppercase;letter-spacing:.18em;font-weight:800}
.gallery-index-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;padding-bottom:100px}
.gallery-index-card{min-height:390px;position:relative;border-radius:20px;overflow:hidden;background:#13181b;color:#fff;text-decoration:none}
.gallery-index-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery-index-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 28%,rgba(0,0,0,.94))}
.gallery-index-card>div{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:24px}
.gallery-index-card h2{font-size:1.8rem;font-weight:900}
.gallery-index-card p{color:#d6dcde}
.gallery-index-card span{color:var(--gallery-teal);font-weight:800}
.gallery-index-card:hover img{transform:scale(1.04)}
.gallery-back{color:var(--gallery-teal);text-decoration:none;font-weight:800}

/* Denser mixed-scale mosaic: approximately half the previous tile footprint. */
.mosaic-gallery{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  grid-auto-flow:dense;
  grid-auto-rows:6px;
  gap:7px;
  padding-bottom:24px
}
.mosaic-item{
  position:relative;
  border:0;
  padding:0;
  background:#151a1d;
  border-radius:10px;
  overflow:hidden;
  cursor:zoom-in;
  grid-column:span 1;
  grid-row:span 22;
  min-height:105px
}
.mosaic-item.mosaic-wide{grid-column:span 2;grid-row:span 21}
.mosaic-item.mosaic-tall{grid-row:span 34}
.mosaic-item.mosaic-large,.mosaic-item.mosaic-featured{grid-column:span 2;grid-row:span 36}
.mosaic-item img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s,filter .3s}
.mosaic-item:hover img{transform:scale(1.04);filter:brightness(.86)}
.mosaic-item span{display:none!important}

.gallery-loader{text-align:center;color:#aeb7ba;padding:24px}
.gallery-load-more{display:block;margin:8px auto 70px;border:1px solid #3a4448;background:transparent;color:#fff;border-radius:999px;padding:11px 22px;font-weight:800}
.gallery-lightbox{position:fixed;z-index:99999;inset:0;background:rgba(0,0,0,.94);display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox figure{margin:0;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 10px}
.gallery-lightbox img{max-width:100%;max-height:89vh;object-fit:contain}
.gallery-lightbox figcaption{display:none}
.lightbox-close,.lightbox-prev,.lightbox-next{border:0;background:rgba(255,255,255,.1);color:#fff;width:48px;height:48px;border-radius:50%;font-size:2rem;justify-self:center}
.lightbox-close{position:absolute;right:18px;top:18px;z-index:2}
.lightbox-open{overflow:hidden}
.empty-gallery{grid-column:1/-1;padding:70px 20px;text-align:center;color:#b8c0c3}

@media(max-width:1280px){
  .mosaic-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(max-width:900px){
  .mosaic-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .mosaic-item{grid-row:span 23}
  .mosaic-item.mosaic-tall{grid-row:span 35}
}
@media(max-width:650px){
  .gallery-index-hero,.public-gallery-hero{padding-top:92px}
  .mosaic-gallery{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
    grid-auto-rows:5px
  }
  .mosaic-item{
    grid-column:span 1;
    grid-row:span 22;
    border-radius:7px;
    min-height:90px
  }
  .mosaic-item.mosaic-wide{grid-column:span 2;grid-row:span 21}
  .mosaic-item.mosaic-tall{grid-row:span 34}
  .mosaic-item.mosaic-large,.mosaic-item.mosaic-featured{grid-column:span 2;grid-row:span 35}
  .gallery-lightbox{grid-template-columns:42px minmax(0,1fr) 42px}
  .lightbox-prev,.lightbox-next{width:36px;height:36px}
  .gallery-lightbox figure{padding:55px 3px 22px}
}

.mosaic-gallery,.gallery-lightbox,.gallery-index-grid{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.mosaic-gallery img,.gallery-lightbox img,.gallery-index-card img{
  -webkit-user-drag:none;
  pointer-events:none;
}
