.gallery_desktop{ display:block; }
.gallery_mobile{ display:none; }

.g_pad{ margin-top:5px !important; }

@media (max-width:575px){
  .gallery_desktop{ display:none; }
  .gallery_mobile{ display:block; }
}

.gallery_wrap{
  background:#FCF8F2;
  border-radius:12px;
  overflow:hidden;
}

.g_grid{
  display:grid;
  width:100%;
  gap:16px;
}

.g_grid_desktop{
  grid-template-columns:repeat(3, 1fr);
  grid-auto-flow:dense;
}

.g_grid_mobile{
  grid-template-columns:1fr;
}

@media (max-width:575px){
  .g_grid_mobile{
    grid-template-columns:repeat(2, 1fr);
    grid-auto-flow:dense;
    gap:12px;
  }
}

.g_tile{
  position:relative;
  display:block;
  width:100%;
  overflow:hidden;
  border-radius:12px;
  cursor:pointer;
  border:none;
  outline:none;
}

.g_tile img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(0.9) contrast(0.96);
  transition:filter 0.25s ease;
}

@media (hover:hover) and (pointer:fine){
  .g_tile:hover img{
    filter:none;
  }
}

.foil_hover{
  position:relative;
  overflow:hidden;
}

.foil_hover::after{
  content:"";
  position:absolute;
  inset:-35%;
  pointer-events:none;
  border-radius:inherit;

  background:
    linear-gradient(
      300deg,
      rgba(255,255,255,0.00) 28%,
      rgba(255,120,180,0.35) 40%,
      rgba(120,190,255,0.40) 48%,
      rgba(120,255,190,0.35) 54%,
      rgba(200,120,255,0.38) 60%,
      rgba(255,255,255,0.00) 72%
    );

  background-size:220% 220%;
  background-position:calc(var(--mx, 0.5) * 100%) calc(var(--my, 0.5) * 100%);
  opacity:0;
  mix-blend-mode:overlay;
  filter:blur(0.6px);
  transition:opacity 0.2s ease;
}

@media (hover:hover) and (pointer:fine){
  .foil_hover:hover::after{
    opacity:0.65;
  }
}

.g_land{ aspect-ratio:3 / 2; }
.g_port{ aspect-ratio:3 / 4; }

.g_grid_desktop .g_land{ grid-row:span 1; }
.g_grid_desktop .g_port{ grid-row:span 2; }

@media (max-width:575px){
  .g_grid_mobile .g_land{ grid-row:span 1; }
  .g_grid_mobile .g_port{ grid-row:span 2; }
}

.g_lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.85);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:9999;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 0.45s ease, visibility 0.45s ease;
}

.g_lightbox.is_open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.g_lightbox img{
  max-width:min(1100px, 92vw);
  max-height:88vh;
  width:auto;
  height:auto;
  border-radius:12px;
  opacity:0;
  transform:scale(0.96);
  transition:opacity 0.55s ease, transform 0.55s ease;
  will-change:transform, opacity;
}

.g_lightbox.is_open img{
  opacity:1;
  transform:scale(1);
}

body.g_no_scroll{ overflow:hidden; }
