/* ============================================================
   THE VAULT — NFT gallery
   ============================================================ */
:root{
  --cyan:#34e7ff; --purple:#9b5cff; --pink:#ff5cc8;
  --bg:#05010f; --ink:#eef0ff; --muted:#9aa0c8;
  --glass:rgba(12,8,32,.55); --line:rgba(155,92,255,.28);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:'Segoe UI',system-ui,sans-serif}
body{
  background:
    radial-gradient(1100px 500px at 80% -10%, rgba(155,92,255,.16), transparent 60%),
    radial-gradient(900px 480px at 10% 0%, rgba(52,231,255,.12), transparent 55%),
    var(--bg);
  min-height:100vh;
}

#vault-top{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 22px;background:linear-gradient(180deg, rgba(5,1,15,.92), rgba(5,1,15,.55) 80%, transparent);
  backdrop-filter:blur(8px);
}
.vault-back,.vault-fest{color:var(--ink);text-decoration:none;font-size:12px;letter-spacing:.14em;font-weight:700;opacity:.85}
.vault-back:hover,.vault-fest:hover{opacity:1}
.vault-fest{color:#ffd9f2;text-shadow:0 0 12px rgba(255,92,200,.5)}
.vault-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.2em;font-size:13px}
.vault-brand img{width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 0 8px var(--cyan))}

.vault{max-width:1240px;margin:0 auto;padding:30px 22px 80px}
.vault-head{text-align:center;margin-bottom:34px}
.vault-eyebrow{font-size:11px;letter-spacing:.3em;color:var(--cyan);font-weight:700;margin:0 0 8px}
.vault-head h1{
  font-size:clamp(34px,6vw,64px);margin:0 0 10px;font-weight:900;letter-spacing:.03em;
  background:linear-gradient(135deg,#fff,var(--cyan) 45%,var(--purple) 80%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.vault-lead{color:var(--muted);max-width:520px;margin:0 auto 22px;line-height:1.5}
.vault-filters{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.vf{
  padding:9px 18px;border-radius:99px;border:1px solid var(--line);cursor:pointer;
  background:rgba(255,255,255,.03);color:var(--ink);
  font-size:11px;font-weight:800;letter-spacing:.14em;transition:all .2s;
}
.vf:hover{border-color:var(--cyan)}
.vf.on{background:linear-gradient(90deg,var(--cyan),var(--purple));color:#04101a;border-color:transparent;box-shadow:0 0 18px rgba(52,231,255,.4)}

.vault-stats{
  font-size:12px;letter-spacing:.12em;color:#7ee6c8;margin:-8px 0 18px;
  text-shadow:0 0 12px rgba(126,230,200,.4);
}
.vault-chips{margin-top:10px}
.vf-sm{padding:6px 12px;font-size:9.5px}
.vault-more-wrap{text-align:center;margin-top:26px}
.vault-ph{
  width:100%;height:100%;display:grid;place-items:center;
  background:
    radial-gradient(circle at 30% 25%, rgba(52,231,255,.18), transparent 60%),
    radial-gradient(circle at 75% 80%, rgba(155,92,255,.2), transparent 55%),
    #0d0a24;
}
.vault-ph span{
  font-size:34px;font-weight:900;letter-spacing:.08em;
  background:linear-gradient(135deg,var(--cyan),var(--purple));
  -webkit-background-clip:text;background-clip:text;color:transparent;opacity:.75;
}

/* live chain ticker (shared look with galaxy) */
.chain-ticker{
  position:fixed;left:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;gap:8px;
  pointer-events:none;max-width:min(340px,80vw);
}
.chain-toast{
  padding:11px 16px;border-radius:12px;font-size:12.5px;font-weight:600;letter-spacing:.04em;
  background:rgba(10,6,28,.88);backdrop-filter:blur(12px);
  border:1px solid var(--cyan);box-shadow:0 8px 30px rgba(0,0,0,.5);
  opacity:0;transform:translateX(-16px);transition:all .4s cubic-bezier(.2,.8,.2,1);
}
.chain-toast.in{opacity:1;transform:none}

.vault-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;
}
.vault-card{
  position:relative;border-radius:14px;overflow:hidden;cursor:pointer;border:1px solid rgba(155,92,255,.18);
  background:var(--glass);transition:transform .22s,box-shadow .22s,border-color .22s;
  aspect-ratio:1;
}
.vault-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.vault-card:hover{transform:translateY(-4px);border-color:var(--cyan);box-shadow:0 14px 40px rgba(52,231,255,.22)}
.vault-card:hover img{transform:scale(1.06)}
.vault-card figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;
  background:linear-gradient(transparent, rgba(5,1,15,.9));
  font-size:11.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.vault-collections{margin-top:64px;text-align:center}
.vault-collections h2{font-size:clamp(20px,3.4vw,30px);letter-spacing:.08em;margin-bottom:20px}
.vault-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.vault-col{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-radius:13px;border:1px solid var(--line);
  background:var(--glass);color:var(--ink);text-decoration:none;
  transition:border-color .2s,transform .2s,box-shadow .2s;text-align:left;
}
.vault-col:hover{border-color:var(--cyan);transform:translateY(-2px);box-shadow:0 10px 30px rgba(52,231,255,.18)}
.vault-col b{font-size:13.5px;display:block}
.vault-col small{color:var(--muted);font-size:10.5px;letter-spacing:.12em}
.vault-col .go{color:var(--cyan);font-weight:800}
.vault-col.soon{opacity:.55;cursor:default}

/* ---- Lightbox ---- */
.vault-box{
  position:fixed;inset:0;z-index:50;display:grid;place-items:center;
  background:rgba(3,0,10,.86);backdrop-filter:blur(10px);padding:22px;
}
.vault-box-inner{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,1fr);gap:22px;align-items:center;
  max-width:900px;width:100%;background:var(--glass);border:1px solid var(--line);
  border-radius:18px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.6);
  animation:boxin .25s cubic-bezier(.2,.8,.2,1);
}
@keyframes boxin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
#vault-box-img{width:100%;border-radius:12px;display:block}
.vault-box-info h3{margin:4px 0 14px;font-size:22px}
.vault-traits{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.vault-traits li{
  font-size:10.5px;letter-spacing:.06em;padding:5px 10px;border-radius:99px;
  background:rgba(52,231,255,.08);border:1px solid rgba(52,231,255,.25);color:#bfeeff;
}
.vault-cta{
  display:inline-block;padding:12px 20px;border-radius:99px;text-decoration:none;
  background:linear-gradient(90deg,var(--cyan),var(--purple));color:#04101a;
  font-size:12px;font-weight:800;letter-spacing:.12em;box-shadow:0 0 22px rgba(52,231,255,.4);
  transition:transform .15s,box-shadow .2s;
}
.vault-cta:hover{transform:translateY(-2px);box-shadow:0 0 34px rgba(155,92,255,.55)}
.vault-cta.alt{
  background:rgba(255,255,255,.05);color:var(--ink);
  border:1px solid var(--line);box-shadow:none;margin-left:8px;
}
.vault-cta.alt:hover{border-color:var(--gold, #ffd34d);box-shadow:0 0 20px rgba(255,211,77,.25)}
.vault-box-close{
  position:absolute;top:18px;right:20px;width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ink);
  font-size:14px;cursor:pointer;
}
.vault-box-close:hover{background:rgba(255,92,200,.3)}
.vault-foot{text-align:center;color:var(--muted);font-size:11.5px;letter-spacing:.14em;padding:26px 0 34px}

@media (max-width:680px){
  .vault-box-inner{grid-template-columns:1fr;max-height:88vh;overflow-y:auto}
  .vault-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}
