#page-veil{position:fixed;inset:0;z-index:9999;background:#050206;pointer-events:none;opacity:1;transition:opacity .26s ease;will-change:opacity;}
html.page-ready #page-veil{opacity:0;}
html.page-leaving #page-veil{opacity:1;}
.view-footer{position:fixed;left:0;right:0;bottom:0;margin:0;padding:9px 16px;text-align:center;font-size:.72rem;color:#6d5b76;background:linear-gradient(to top,rgba(5,2,6,0.92),rgba(5,2,6,0));pointer-events:none;z-index:50;}
#views{padding-bottom:76px;}
.gallery.glass-card{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(16,8,22,0.78);contain:layout paint;}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;padding:20px;}
.gallery-sentinel{grid-column:1/-1;height:1px;}
.gallery figure{position:relative;margin:0;overflow:visible;border-radius:12px;min-height:165px;content-visibility:auto;contain-intrinsic-size:auto 165px;border:1px solid rgba(255,47,214,0.16);background:rgba(10,4,12,0.6);cursor:pointer;transition:transform .2s ease;}
.gallery figure::after{content:'';position:absolute;inset:0;border-radius:12px;border:1px solid rgba(255,47,214,0.5);box-shadow:0 0 22px rgba(255,47,214,0.28);opacity:0;transition:opacity .2s ease;pointer-events:none;}
.gallery figure:hover{transform:translateY(-4px);}
.gallery figure:hover::after{opacity:1;}
.gallery figure:not(.is-loaded){background-image:linear-gradient(135deg,rgba(255,47,214,0.07) 0%,rgba(176,38,255,0.13) 45%,rgba(0,229,255,0.06) 100%);}
.gallery img{display:block;width:100%;height:165px;object-fit:cover;border-radius:12px;}
.empty-msg{grid-column:1/-1;margin:0;padding:16px;text-align:center;color:#a893b5;}
.gallery-note{margin:0 0 18px;font-size:.85rem;letter-spacing:.3px;color:#a893b5;}
.lightbox{display:none;position:fixed;inset:0;z-index:9000;background:rgba(3,1,4,0.94);align-items:center;justify-content:center;}
.lightbox.open{display:flex;}
#lightbox-img{max-width:86vw;max-height:84vh;border-radius:10px;box-shadow:0 0 60px rgba(255,47,214,0.30);}
.lightbox-close{position:fixed;top:12px;right:22px;font-size:2.1rem;line-height:1;color:#ff2fd6;cursor:pointer;z-index:10001;text-shadow:0 0 12px rgba(255,47,214,0.8);transition:color .2s ease,transform .2s ease;}
.lightbox-close:hover{color:#00e5ff;transform:scale(1.12);}
@media (prefers-reduced-motion:reduce){#page-veil{transition:none;}}
#lightbox-img{transition:opacity .2s ease;}
.lightbox.lb-loading #lightbox-img{opacity:.35;}
.tile-fav{position:absolute;top:6px;right:6px;font-size:1rem;line-height:1;width:26px;height:26px;padding:0;background:rgba(10,4,12,0.55);border:1px solid rgba(255,255,255,0.25);color:rgba(255,255,255,0.7);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:color .2s ease,border-color .2s ease,transform .2s ease;}
.tile-fav:hover{transform:scale(1.15);border-color:#39ff14;}
.tile-fav.is-fav{color:#39ff14;border-color:#39ff14;text-shadow:0 0 6px rgba(57,255,20,0.8);}
.tile-copy{position:absolute;top:6px;right:38px;font-size:1rem;line-height:1;width:26px;height:26px;padding:0;background:rgba(20,4,14,0.72);border:1px solid rgba(255,47,214,0.5);color:#ff2fd6;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;font-weight:700;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease;}
.tile-copy:hover{transform:scale(1.15);background:#ff2fd6;color:#0d0510;}
.tile-link{position:absolute;top:6px;right:70px;font-size:1rem;line-height:1;width:26px;height:26px;padding:0;background:rgba(4,14,20,0.72);border:1px solid rgba(0,229,255,0.5);color:#00e5ff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease;}
.tile-link:hover{transform:scale(1.15);background:#00e5ff;color:#0d0510;}
.glass-card.panel{background:rgba(11,4,16,0.94);}
.gallery-note,.gallery-cross{display:table;background:rgba(11,4,16,0.94);border:1px solid rgba(255,47,214,0.18);border-radius:10px;padding:8px 14px;text-shadow:none;}
.view h2{text-shadow:0 0 16px rgba(255,47,214,.5),0 0 6px #050206,0 0 14px #050206;}
