body.explore{height:100svh;overflow:hidden;background:#1a0630;touch-action:none}
.ex-bg{position:fixed;inset:0;z-index:0;background:linear-gradient(125deg,#ff2bd6,#a62cff 40%,#4b17d6 70%,#ff2b8a);background-size:300% 300%;animation:gshift 18s ease infinite}
@keyframes gshift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.ex-bg::after{content:"";position:absolute;inset:0;background:url(../images/bg/crowd-overhead.jpg) center/cover;mix-blend-mode:multiply;opacity:.55}
.wall{position:fixed;inset:0;z-index:1;cursor:grab;overflow:hidden}
.wall.drag{cursor:grabbing}
.tile{position:absolute;left:0;top:0;will-change:transform;border:0;padding:0;background:#000;box-shadow:0 14px 40px rgba(40,0,70,.45);transition:box-shadow .2s;overflow:visible}
.tile img{width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .3s;filter:saturate(.9)}
.tile:hover{z-index:5;box-shadow:0 0 0 4px #fff,0 24px 60px rgba(40,0,70,.7)}
.tile:hover img{filter:saturate(1.15) contrast(1.05)}
.tile .lbl{position:absolute;left:8px;bottom:6px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);padding:3px 6px;opacity:0;transition:opacity .2s}
.tile:hover .lbl{opacity:1}

.ex-ui{position:fixed;z-index:10;pointer-events:none}
.ex-ui>*{pointer-events:auto}
.ex-title{left:var(--gut);bottom:22px;font-family:var(--display);font-size:clamp(60px,13vw,200px);line-height:.8;color:#fff;text-transform:uppercase;mix-blend-mode:overlay;pointer-events:none}
.ex-hint{white-space:nowrap;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:#fff;color:#2a0a4a;padding:14px 20px;border-radius:40px;box-shadow:0 10px 40px rgba(0,0,0,.35);transition:opacity .5s,transform .5s;pointer-events:none}
.ex-hint.gone{opacity:0;transform:translate(-50%,-30%)}
.ex-filters{right:var(--gut);bottom:22px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:min(560px,70vw)}
.ex-filters button{font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:10px 14px;border:1.5px solid rgba(255,255,255,.8);background:rgba(30,0,50,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;border-radius:30px}
.ex-filters button.on{background:#fff;color:#3a0a66}
.ex-count{left:var(--gut);top:78px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff}
@media(max-width:700px){.ex-filters{left:var(--gut);right:var(--gut);max-width:none;justify-content:flex-start;bottom:16px}.ex-title{bottom:auto;top:96px;font-size:22vw}.ex-count{top:72px}}
