:root{
  --gallery-bg:#fbfaf7;
  --gallery-paper:#fffefa;
  --gallery-ink:#171717;
  --gallery-muted:#77716b;
  --gallery-line:#e8e1d8;
  --gallery-brown:#7d4224;
}

.gallery-body{
  background:var(--gallery-bg);
  color:var(--gallery-ink);
  padding-bottom:0;
}

.gallery-nav{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  justify-content:center;
  gap:.55rem;
  flex-wrap:wrap;
  padding:.85rem .75rem;
  background:rgba(251,250,247,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--gallery-line);
}

.gallery-nav a{
  color:var(--gallery-ink);
  text-decoration:none;
  font-family:Montserrat,system-ui,sans-serif;
  font-weight:800;
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  border:1px solid var(--gallery-line);
  padding:.55rem .8rem;
  border-radius:999px;
  background:#fffefa;
}

.gallery-nav a.active{
  border-color:var(--gallery-ink);
}

.admin-only{
  opacity:.45;
}

.minimal-gallery-hero{
  text-align:center;
  width:min(860px,92vw);
  margin:0 auto;
  padding:3.2rem 0 2rem;
  border-bottom:1px solid var(--gallery-line);
}

.minimal-gallery-hero h1{
  margin:.2rem auto 1rem;
  color:var(--gallery-ink);
}

.gallery-subline{
  max-width:620px;
  margin:0 auto;
  font-family:Montserrat,system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  line-height:1.8;
  color:var(--gallery-muted);
  font-size:.86rem;
}

.minimal-gallery-main{
  width:min(980px,92vw);
  margin:0 auto 3rem;
  display:grid;
  gap:1.3rem;
}

.minimal-albums{
  display:flex;
  justify-content:center;
  gap:.65rem;
  flex-wrap:wrap;
  padding:1.4rem 0 .5rem;
}

.minimal-albums a{
  color:var(--gallery-ink);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  font-size:.78rem;
  padding:.7rem .95rem;
  border:1px solid var(--gallery-line);
  background:var(--gallery-paper);
}

.minimal-albums a.active{
  border-color:var(--gallery-ink);
  box-shadow:inset 0 -3px 0 var(--gallery-ink);
}

.gallery-overview{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:1.6rem;
  background:var(--gallery-paper);
  border:1px solid var(--gallery-line);
}

.gallery-overview .mixed-title{
  margin:0;
  text-align:left;
}

.gallery-overview .mixed-title:after{
  margin:1rem 0 0;
}

.gallery-overview p{
  margin:.7rem 0 0;
  color:var(--gallery-muted);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
}

.minimal-upload-link{
  flex:0 0 auto;
  text-decoration:none;
  color:#fff;
  background:var(--gallery-ink);
  padding:.9rem 1.2rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  font-size:.8rem;
}

.minimal-filter{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.8rem;
}

.minimal-filter select,
.minimal-upload input,
.minimal-upload select{
  width:100%;
  border:1px solid var(--gallery-line);
  background:#fff;
  color:var(--gallery-ink);
  padding:1rem;
  font:inherit;
  letter-spacing:.04em;
  border-radius:0;
}

.minimal-media-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.9rem;
}

.minimal-media-card{
  position:relative;
  background:var(--gallery-paper);
  border:1px solid var(--gallery-line);
  padding:.45rem;
}

.minimal-media-card img,
.minimal-media-card video{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
  background:#eee;
}

.minimal-video-badge{
  position:absolute;
  inset:.45rem;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:2.6rem;
  text-shadow:0 2px 16px rgba(0,0,0,.45);
  pointer-events:none;
}

.minimal-media-caption{
  display:flex;
  justify-content:space-between;
  gap:.6rem;
  padding:.7rem .35rem .25rem;
  color:var(--gallery-muted);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.minimal-media-caption b{
  color:var(--gallery-ink);
}

.minimal-empty{
  text-align:center;
  padding:3rem 1rem;
  border:1px dashed var(--gallery-line);
  background:var(--gallery-paper);
}

.minimal-empty b{
  font-family:Playfair Display,serif;
  font-size:1.5rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.minimal-empty p{
  color:var(--gallery-muted);
}

.minimal-upload{
  margin-top:1rem;
  padding:2rem;
  background:var(--gallery-paper);
  border:1px solid var(--gallery-line);
  text-align:center;
}

.minimal-upload p{
  color:var(--gallery-muted);
  text-transform:uppercase;
  letter-spacing:.12em;
  line-height:1.7;
  font-size:.8rem;
}

.minimal-upload form{
  display:grid;
  gap:.9rem;
  max-width:620px;
  margin:1.2rem auto 0;
  text-align:left;
}

.minimal-upload .btn{
  border-radius:0!important;
}

.minimal-gallery-footer{
  text-align:center;
  padding:2.3rem 1rem;
  font-family:Parisienne,cursive;
  font-size:2.1rem;
  border-top:1px solid var(--gallery-line);
}

.gallery-toast{
  top:76px;
}

@media(max-width:760px){
  .gallery-nav{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
  }

  .gallery-nav a{
    flex:0 0 auto;
    font-size:.72rem;
  }

  .minimal-gallery-hero{
    padding:2.3rem 0 1.5rem;
  }

  .gallery-subline{
    font-size:.74rem;
  }

  .gallery-overview{
    display:grid;
    padding:1.2rem;
  }

  .gallery-overview .mixed-title{
    text-align:center;
  }

  .gallery-overview .mixed-title:after{
    margin:1rem auto 0;
  }

  .gallery-overview p{
    text-align:center;
  }

  .minimal-upload-link{
    text-align:center;
  }

  .minimal-filter{
    grid-template-columns:1fr;
  }

  .minimal-media-grid{
    grid-template-columns:repeat(2,1fr);
    gap:.55rem;
  }

  .minimal-media-card{
    padding:.28rem;
  }

  .minimal-media-caption{
    display:none;
  }

  .minimal-upload{
    padding:1.35rem .9rem;
  }
}
