*{box-sizing:border-box}body{margin:0;background:#111217;color:#fff;font-family:'Press Start 2P',monospace;font-size:10px;line-height:2.2}main{max-width:1100px;margin:auto;padding:32px 24px}nav{display:flex;justify-content:space-between;gap:20px}a{color:#c8c2e3}h1{font-size:24px;color:#c8c2e3;margin-top:44px}button,select{font:inherit;padding:14px;border:2px solid #c8c2e3;border-radius:10px;background:#c8c2e3;color:#111217}button{cursor:pointer;box-shadow:4px 4px #555564}button:disabled{opacity:.5;cursor:wait}button[hidden]{display:none}#wallet-address{display:none}.filters{display:flex;gap:24px;flex-wrap:wrap;margin:24px 0}select{display:block;background:#111217;color:white;margin-top:10px}#gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.nft{border:2px solid #c8c2e3;border-radius:10px;padding:20px;background:#111217}.nft img{display:block;width:100%;aspect-ratio:1;image-rendering:pixelated}.nft h2{font-size:12px;line-height:2}.nft p{font-size:9px}.rarity{color:var(--rarity)}.note{color:#b2afbf;font-size:8px;margin-top:32px}#more{margin-top:24px}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid white;outline-offset:5px}@media(max-width:760px){#gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){#gallery{grid-template-columns:1fr}nav{font-size:8px}main{padding:24px 16px}}
.nft img[hidden]{display:none}.gallery-sprite{display:block;width:112px;height:112px;background-size:224px 112px;margin:36px auto;image-rendering:pixelated;animation:ghostwalk .45s steps(2) infinite}.nft[data-rarity=rare]{border-color:#4299FF}.nft[data-rarity=rare]:hover{box-shadow:0 0 0 3px #4299FF44}.nft[data-rarity=epic]{border-color:#B46BFF}.nft[data-rarity=epic]::after{content:'✦ · ✦';display:block;color:#B46BFF;text-align:center;animation:spark 1.5s steps(2) infinite}.nft[data-rarity=legendary]{border-color:#ffb852}.nft[data-rarity=legendary]::after{content:'★ · ★ · ★';display:block;color:#ffb852;text-align:center;animation:spark 1.2s steps(2) infinite}.nft button{font-size:8px;margin-top:12px}.nft-detail{background:#111217;color:white;border:3px solid #c8c2e3;max-width:440px;width:90vw;max-height:85vh;overflow:auto;text-align:center;font:10px/2.2 'Press Start 2P',monospace}.nft-detail img{width:100%;image-rendering:pixelated}.nft-detail::backdrop{background:#000d}@keyframes ghostwalk{to{background-position:-224px 0}}@keyframes spark{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.gallery-sprite,.nft::after{animation:none!important}}
main{padding-top:76px}

#connect-gallery,#more{font-size:8px;padding:9px 12px;border-width:2px;line-height:1.6}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.filters label{font-size:7px}.filters select{width:100%;font-size:7px;padding:9px 5px;border-width:2px;line-height:1.6}#gallery-status{font-size:8px;line-height:2}.rank-guide{font-size:8px;line-height:2;color:#bcbac8;margin-top:22px;border-top:1px solid #4b4c59;padding-top:14px}.rank-guide summary{cursor:pointer;color:#cbc7dc}.score-rank{color:#cbc7dc}.nft p{line-height:2}html.embed h1{font-size:14px!important}html.embed .note{font-size:7px}@media(max-width:370px){.filters{grid-template-columns:1fr 1fr}}
.nft[data-rarity=common]{border-color:#A8ADB5}

.filters{grid-template-columns:repeat(2,minmax(0,1fr))}

.nft-detail{width:min(300px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:10px 14px 14px;font-size:8px;line-height:1.8}.nft-detail .nft-detail-close{display:block;position:sticky;top:0;z-index:1;width:28px;height:28px;margin:0 0 4px auto;padding:0;font-size:18px;line-height:1;background:#ecebef;border-color:#ecebef;color:#17171d;box-shadow:3px 3px #575866}.nft-detail .detail-content img{display:block;width:128px;height:128px;max-width:100%;object-fit:contain;margin:0 auto 10px}.nft-detail h2{font-size:11px;line-height:1.8;margin:8px 0}.nft-detail p{font-size:8px;line-height:1.8;margin:7px 0}@media(max-height:400px){.nft-detail .detail-content img{width:96px;height:96px}}

.merge-preview-confirm{border:1px solid #62616d;padding:14px;margin:16px 0;background:#1b1c24}.merge-preview-confirm img{display:block;width:160px;height:160px;max-width:100%;margin:0 auto;image-rendering:pixelated;object-fit:contain}.merge-preview-confirm h3{font-size:11px;line-height:1.8}.merge-preview-confirm p{font-size:8px;line-height:1.9}#merge-confirm-status{font-size:8px;line-height:1.9}#merge-dialog{max-height:calc(100dvh - 24px);overflow:auto}@media(max-width:480px){.merge-preview-confirm img{width:128px;height:128px}.merge-preview-confirm{padding:10px}}
