:root{
  --bg:#f4f8fc;
  --surface:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#dbe5f0;
  --primary:#2563eb;
  --shadow:0 24px 70px rgba(15,23,42,.12),0 6px 16px rgba(15,23,42,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#f8fbff 0%,#eef4fa 100%);
}
.gallery-shell{
  width:min(1200px,calc(100% - 32px));
  margin:0 auto;
  padding:32px 0 48px;
}
.gallery-page{
  background:#fff;
  border:1px solid rgba(255,255,255,.8);
  backdrop-filter:blur(12px);
  border-radius:28px;
  box-shadow:var(--shadow);
  padding:28px;
}
#gallery-content{
  background:#fff;
}
.gallery-head{
  text-align:center;
  margin-bottom:24px;
}
.gallery-eyebrow{
  display:inline-block;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--primary);
  margin-bottom:10px;
}
.gallery-head h1{
  margin:0 0 10px;
  font-size:clamp(1.9rem,3vw,2.4rem);
}
.gallery-head p{
  margin:0;
  color:var(--muted);
}
code{
  background:#eff6ff;
  border:1px solid #dbeafe;
  padding:2px 8px;
  border-radius:999px;
  font-size:.9em;
}
.gph{
  border-radius:30px;
  border:2px dashed #cbd5e1;
  padding:54px 20px;
  text-align:center;
  color:var(--muted);
  background:#fff;
}
.gph-icon{font-size:2.3rem;margin-bottom:12px}
.gallery-back{
  appearance:none;
  border:1px solid #cbd5e1;
  background:#fff;
  color:var(--text);
  border-radius:999px;
  padding:10px 16px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(15,23,42,.06);
}
.gallery-back:hover{transform:translateY(-1px)}
.gallery-folder-title{margin:18px 0 16px;font-size:1.25rem}
.gallery-meta{margin:12px 0 0;color:var(--muted);font-size:.9rem}
.galfeatgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
.galfeat{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  cursor:pointer;
  box-shadow:0 24px 64px rgba(15,23,42,.18),0 4px 14px rgba(15,23,42,.08);
  aspect-ratio:16/9;
  background:#e2e8f0;
  transition:transform .22s,box-shadow .22s;
}
.galfeat:hover{transform:translateY(-6px);box-shadow:0 36px 90px rgba(15,23,42,.24),0 8px 22px rgba(15,23,42,.10)}
.galfeat-img{position:absolute;inset:0}
.galfeat-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.galfeat:hover .galfeat-img img{transform:scale(1.06)}
.galfeat-over{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(10,15,30,.82) 0%,rgba(10,15,30,.18) 55%,transparent 100%);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:22px 24px;
}
.galfeat-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.galfeat-info strong{color:#fff;font-size:1.1rem;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.galfeat-info span{color:rgba(255,255,255,.74);font-size:.84rem}
.galfeat-arr{color:#fff;font-size:1.6rem;opacity:.75}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.gitem{
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 16px 44px rgba(15,23,42,.13),0 3px 10px rgba(15,23,42,.06);
  cursor:pointer;
  aspect-ratio:4/3;
  background:#e2e8f0;
  position:relative;
}
.gitem img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gitem:hover img{transform:scale(1.06)}
.gcap{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:26px 12px 10px;
  background:linear-gradient(transparent,rgba(15,23,42,.72));
  color:#fff;
  font-size:.84rem;
  font-weight:600;
  opacity:0;
  transition:.22s;
}
.gitem:hover .gcap{opacity:1}
.lb{position:fixed;inset:0;background:rgba(15,23,42,.92);z-index:500;display:none;align-items:center;justify-content:center;backdrop-filter:blur(16px)}
.lb.on{display:flex}
.lb img{width:auto;height:auto;max-width:95vw;max-height:95vh;border-radius:16px;box-shadow:0 40px 100px rgba(0,0,0,.55)}
.lbc{position:absolute;top:18px;right:22px;color:#fff;font-size:1.9rem;cursor:pointer;background:none;border:0;line-height:1}
.lbp,.lbn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);color:#fff;border:0;width:58px;height:58px;border-radius:50%;font-size:1.45rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lbp{left:14px}.lbn{right:14px}
.lbcap{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.8);font-size:.88rem;background:rgba(15,23,42,.5);padding:6px 14px;border-radius:999px;max-width:80vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:700px){
  .gallery-shell{width:min(100% - 20px,1200px);padding:16px 0 28px}
  .gallery-page{padding:18px;border-radius:22px}
  .galfeatgrid{grid-template-columns:1fr;gap:14px}
  .ggrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .lbp,.lbn{width:48px;height:48px}
  .lbc{top:12px;right:14px}
}
