:root{--graphite:#1c1c1c;--panel:#222;--deep:#151515;--lime:#cfff04;--white:#f6f5f2;--muted:#929292;--line:rgba(207,255,4,.55);--display:'Barlow Condensed',sans-serif;--mono:'Space Mono',monospace}
.canvas-placeholder img{width:180px!important;height:auto!important;filter:none!important;opacity:.72!important}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--white);font-family:var(--mono)}button,select,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.grid-header,.grid-shell{width:min(1260px,calc(100% - 40px));margin-inline:auto}
.grid-header{min-height:62px;margin-top:16px;padding:9px 20px;border:2px solid var(--lime);border-radius:22px;display:flex;align-items:center;justify-content:space-between;background:rgba(24,24,24,.9)}.grid-brand img{display:block;height:38px}.back-link{color:var(--lime);text-decoration:none;font-size:10px;font-weight:700;letter-spacing:.12em}
.grid-shell{padding:34px 0 52px}.grid-intro{text-align:center;max-width:760px;margin:0 auto 26px}.grid-intro p,.eyebrow,.setting-label{display:block;margin:0 0 8px;color:var(--lime);font-size:10px;font-weight:700;letter-spacing:.16em}.grid-intro h1{margin:0;font:900 clamp(52px,6vw,78px)/.9 var(--display);letter-spacing:-.03em;text-transform:uppercase}.grid-intro h1 span{color:var(--lime)}.intro-copy{max-width:600px;margin:13px auto 0;color:#b8b8b8;font-size:11px;line-height:1.7}.mode-tabs{display:flex;justify-content:center;gap:7px;margin-top:18px}.mode-tabs button,.choice,.selection-actions button,.clear-all{border:1px solid #484848;background:#1b1b1b;color:#aaa;cursor:pointer}.mode-tabs button{padding:9px 16px;border-radius:8px;font-size:9px;font-weight:700}.mode-tabs button.is-active,.choice.is-active{border-color:var(--lime);background:var(--lime);color:#111}
.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.preview-panel,.control-panel{border:1px solid rgba(207,255,4,.38);border-radius:18px;background:rgba(29,29,29,.92)}.preview-panel{padding:14px}.preview-topline,.control-title,.selection-actions,.preview-caption{display:flex;align-items:center;justify-content:space-between}.preview-topline{padding:2px 3px 12px;color:var(--lime);font-size:9px;letter-spacing:.12em}.preview-topline strong{color:#999;font-size:8px}.canvas-frame{position:relative;width:100%;max-height:680px;margin:auto;border:1px solid rgba(109,56,82,.22);border-radius:11px;overflow:hidden;aspect-ratio:1;background:linear-gradient(135deg,#ff92c1 0%,#f5b5c3 54%,#eeb77d 100%);transition:aspect-ratio .25s ease}.canvas-frame canvas{display:block;width:100%;height:100%;object-fit:contain}.canvas-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:radial-gradient(circle at 20% 14%,rgba(255,249,244,.28),transparent 55%),linear-gradient(135deg,#ff92c1 0%,#f5b5c3 54%,#eeb77d 100%);color:#6d3852;text-align:center}.canvas-placeholder img{width:72px;filter:none;opacity:.72}.canvas-placeholder strong{color:#3a2330;font-size:10px;letter-spacing:.12em}.canvas-placeholder small{font-size:9px}.canvas-placeholder.is-hidden{display:none}.preview-caption{padding:12px 3px 0;color:#777;font-size:8px;letter-spacing:.08em}
.control-panel{padding:14px;position:sticky;top:14px}.wallet-gate{padding-bottom:14px;border-bottom:1px solid rgba(207,255,4,.25)}.gate-copy h2{margin:0 0 5px;font:900 24px/1 var(--display);text-transform:uppercase}.gate-copy p{margin:0;color:#888;font-size:9px;line-height:1.4}.address-scan{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:12px}.address-scan input{min-width:0;height:42px;padding:0 11px;border:1px solid #484848;border-radius:9px;outline:none;background:#171717;color:#fff;font-size:9px}.address-scan input::placeholder{color:#686868}.address-scan input:focus{border-color:var(--lime);box-shadow:0 0 0 2px rgba(207,255,4,.12)}.lime-button,.download-button{width:100%;border:0;border-radius:9px;background:var(--lime);color:#101010;font-size:10px;font-weight:700;letter-spacing:.08em;cursor:pointer}.address-scan .lime-button{width:auto;min-width:112px;min-height:42px;margin:0}.lime-button:disabled{opacity:.7;cursor:wait}.collection-panel{padding:14px 0;border-bottom:1px solid rgba(207,255,4,.25)}.collection-panel.is-locked{opacity:.52}.control-title{color:var(--lime);font-size:9px;font-weight:700}.control-title b{font-size:8px}.selection-actions{min-height:40px;gap:6px}.selection-actions button{padding:7px 8px;border-radius:7px;font-size:8px;font-weight:700}.selection-actions button:disabled{opacity:.35;cursor:default}.selection-actions span{margin-left:auto;color:var(--lime);font-size:8px;font-weight:700}.nft-list{min-height:92px;max-height:210px;padding-right:3px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:7px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--lime) #171717}.empty-state{min-height:86px;grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#6e6e6e;text-align:center}.empty-state strong{font-size:9px}.empty-state span{font-size:8px}.nft-card{position:relative;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;aspect-ratio:1;background:#181818;cursor:pointer}.nft-card img{width:100%;height:100%;object-fit:cover;display:block}.nft-card span{position:absolute;left:4px;bottom:4px;padding:3px 4px;border-radius:4px;background:rgba(12,12,12,.82);color:#fff;font-size:6px}.nft-card::after{content:'✓';position:absolute;right:4px;top:4px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:#111;font-size:10px;font-weight:700;transform:scale(0)}.nft-card.is-selected{border-color:var(--lime)}.nft-card.is-selected::after{transform:scale(1)}
.settings-panel{padding-top:14px}.setting-group{margin-bottom:14px}.choice-grid{display:grid;gap:6px}.size-choices{grid-template-columns:repeat(3,1fr)}.brand-choices{grid-template-columns:repeat(2,1fr)}.choice{min-height:42px;padding:7px 5px;border-radius:7px;font-size:8px;font-weight:700}.choice small{display:block;margin-top:3px;font-size:6px;font-weight:400;opacity:.72}.grid-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid-controls label:last-child{grid-column:1/-1}.grid-controls label>span{display:block;margin-bottom:5px;color:var(--lime);font-size:7px;font-weight:700}.grid-controls select{width:100%;height:36px;padding:0 8px;border:1px solid #484848;border-radius:7px;background:#191919;color:#fff;font-size:8px}.grid-controls input{width:100%;height:36px;accent-color:var(--lime)}.download-button{min-height:44px;margin-top:14px}.download-button:disabled{background:#3a3a3a;color:#737373;cursor:default}.clear-all{width:100%;min-height:36px;margin-top:7px;border-radius:8px;font-size:8px;font-weight:700}.clear-all:disabled{opacity:.35;cursor:default}
@media(max-width:900px){.tool-layout{grid-template-columns:1fr}.control-panel{position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px}.wallet-gate,.collection-panel{border:1px solid rgba(207,255,4,.25);border-radius:12px;padding:13px}.settings-panel{grid-column:1/-1;padding-top:0}.download-button,.clear-all{grid-column:1/-1}.nft-list{max-height:260px}.canvas-frame{max-height:none}}
@media(max-width:620px){.grid-header,.grid-shell{width:min(100% - 22px,1260px)}.grid-header{margin-top:11px;border-radius:17px}.grid-shell{padding-top:28px}.grid-intro h1{font-size:52px}.tool-layout{gap:10px}.preview-panel,.control-panel{padding:10px;border-radius:14px}.control-panel{display:block}.wallet-gate,.collection-panel{margin-bottom:10px}.address-scan{grid-template-columns:1fr}.address-scan .lime-button{width:100%}.size-choices{grid-template-columns:1fr}.preview-caption{gap:8px;align-items:flex-start;flex-direction:column}.nft-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
.nft-card img{opacity:1;transition:opacity .2s ease}
.nft-card.is-loading{border-color:rgba(207,255,4,.22);background:linear-gradient(110deg,#181818 18%,#292929 38%,#181818 58%);background-size:220% 100%;animation:nft-card-loading 1.1s linear infinite;cursor:wait}
.nft-card.is-loading img{opacity:0}
.nft-card:disabled{opacity:1}
.nft-card.is-loading span{color:var(--lime)}
@keyframes nft-card-loading{to{background-position-x:-220%}}
