.albums{display:flex;gap:10px;overflow-x:auto;padding:10px 0 4px;scroll-snap-type:x proximity}
.alb{flex:0 0 auto;width:112px;border:2px solid transparent;border-radius:10px;background:var(--accent2);cursor:pointer;padding:0;text-align:left;color:var(--ink);font-weight:600;overflow:hidden;scroll-snap-align:start}
.alb.on{border-color:var(--accent)}
.alb .cv{width:100%;aspect-ratio:1;background:#e9ddd2 center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:28px}
.alb .nm{font-size:.78rem;padding:5px 6px 6px;line-height:1.2}
.alb .nm small{display:block;color:var(--muted);font-weight:500}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;margin-top:8px}
@media(max-width:560px){.filters{grid-template-columns:1fr 1fr}.filters #q{grid-column:1/-1}}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
@media(max-width:560px){.pgrid{grid-template-columns:repeat(3,1fr);gap:3px}}
.pgrid button{padding:0;border:0;background:#e9ddd2;border-radius:6px;overflow:hidden;aspect-ratio:1;position:relative;cursor:pointer}
.pgrid img{width:100%;height:100%;object-fit:cover;display:block}
.pgrid .cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:.7rem;font-weight:600;padding:14px 5px 4px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb{position:fixed;inset:0;background:rgba(15,10,8,.94);z-index:100;display:flex;flex-direction:column;color:#fff}
.lbimg{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:44px 8px 0;touch-action:pan-y}
.lbimg img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px}
.lbinfo{padding:10px 16px calc(14px + env(safe-area-inset-bottom));max-width:860px;width:100%;margin:0 auto}
.lbcap{font-size:1rem;font-weight:600;white-space:pre-wrap}
.lbmeta{font-size:.85rem;opacity:.8;margin-top:3px}
.lbmeta a{color:#ffd2b8}
.lbx{position:absolute;top:8px;right:10px;background:rgba(255,255,255,.15);font-size:1.1rem;padding:6px 12px;z-index:2}
.lbnav{position:absolute;top:45%;background:rgba(255,255,255,.15);font-size:2rem;line-height:1;padding:8px 14px;z-index:2}
.lbnav.prev{left:6px}.lbnav.next{right:6px}
.lb textarea,.lb input,.lb select{background:#2a2420;color:#fff;border-color:#5a4d44}
.lb button.secondary{background:rgba(255,255,255,.15);color:#fff}
.lb button.danger{background:transparent;color:#ffb3b3;box-shadow:inset 0 0 0 1px #8a4a4a}
