:root{--bg:#000;--surface:#010a0f;--border:#1a3a4a;--text:#c8c8c8;--muted:#4a6878;--accent:#32e0ff;--green:#5bff98;--pink:#ff4fd8;--yellow:#ffe14d;--red:#ff4d4d;--font:"Courier New","Lucida Console",monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;align-items:center}.header,body{display:flex;flex-direction:column}.header{width:100%;max-width:960px;padding:28px 24px 16px;gap:10px}.header-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.logo{font-size:1.5rem;letter-spacing:10px;font-weight:700;text-transform:uppercase}.logo-grid{color:var(--accent)}.logo-punks{color:var(--pink)}.tagline{font-size:.6rem;color:var(--muted);letter-spacing:4px}.connect-btn,.tagline{text-transform:uppercase}.connect-btn{background:transparent;border:1px solid var(--accent);color:var(--accent);font-family:var(--font);font-size:.65rem;letter-spacing:3px;padding:7px 16px;cursor:pointer;transition:background .15s,color .15s}.connect-btn:hover{background:var(--accent);color:#000}.connect-btn--wrong{border-color:var(--red);color:var(--red)}.connect-btn--wrong:hover{background:var(--red);color:#000}.connect-btn--addr,.connect-btn--chain{border-color:var(--muted);color:var(--muted)}.connect-btn--addr:hover{border-color:var(--text);color:var(--text);background:transparent}.wallet-row{display:flex;gap:6px}.narrative{width:100%;max-width:960px;padding:32px 24px;display:flex;flex-direction:column;gap:24px}.terminal-window{border:1px solid var(--border);background:var(--surface)}.terminal-bar{background:#0a1a24;padding:8px 14px;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot-r{background:#ff5f57}.dot-y{background:#febc2e}.dot-g{background:#28c840}.terminal-title{margin-left:8px;font-size:.6rem;color:var(--muted);letter-spacing:2px}.terminal-body{padding:20px 24px;display:flex;flex-direction:column;gap:4px}.t-line{font-size:.75rem;line-height:1.6}.t-blank{margin:4px 0}.t-prompt{color:var(--accent);margin-right:6px}.t-muted{color:var(--muted)}.t-warn{color:var(--red)}.t-accent{color:var(--accent)}.t-body{color:var(--text);padding-left:18px;line-height:1.8}.t-cursor{color:var(--accent);animation:blink-cursor 1s step-end infinite;margin-left:2px}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.traits-legend{border:1px solid var(--border);padding:16px 20px}.legend-title{font-size:.6rem;letter-spacing:4px;color:var(--muted);margin-bottom:12px}.legend-grid{display:flex;flex-wrap:wrap;gap:8px 24px}.legend-item{font-size:.65rem;color:var(--text);letter-spacing:1px}.stats-section{width:100%;max-width:960px;padding:0 24px 8px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.stats-bar{display:flex;gap:0;flex-wrap:wrap;justify-content:space-around;padding:16px 0 12px}.stat{text-align:center;padding:0 16px}.stat-val{display:block;font-size:1rem;font-weight:700;color:var(--yellow);letter-spacing:1px}.stat-lbl{display:block;font-size:.55rem;color:var(--muted);letter-spacing:3px;margin-top:2px}.progress-wrap{display:flex;align-items:center;gap:12px;padding-bottom:14px}.progress-bar{flex:1 1;height:2px;background:var(--border)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--pink));transition:width .6s ease}.progress-pct{font-size:.55rem;color:var(--muted);letter-spacing:1px;white-space:nowrap}.grid-section{width:100%;max-width:960px;padding:20px 24px 48px;display:flex;flex-direction:column;align-items:center;gap:16px}.grid-hint{font-size:.58rem;color:var(--muted);letter-spacing:3px;text-align:center}.connect-gate{display:flex;flex-direction:column;align-items:center;gap:20px;padding:60px 24px}.connect-gate-msg{font-size:.58rem;color:var(--muted);letter-spacing:3px;text-align:center}.punk-grid{display:grid;grid-template-columns:repeat(40,1fr);grid-gap:2px;gap:2px;width:100%}.cell{aspect-ratio:1;position:relative;overflow:hidden;cursor:pointer;transition:transform .1s,border-color .1s;border:1px solid var(--border)}.cell:hover{transform:scale(1.2);z-index:10;border-color:var(--accent)}.cell--sealed{background:var(--surface)}.cell--sealed:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 3px,hsla(0,0%,100%,.012) 0,hsla(0,0%,100%,.012) 6px)}.cell--minted{cursor:default}.cell--minted:hover{border-color:var(--muted)}.cell--minted img{width:100%;height:100%;display:block;image-rendering:pixelated}.cell--legendary{border-color:gold!important;box-shadow:0 0 6px #ffd70044}.cell--epic{border-color:#a335ee!important;box-shadow:0 0 4px #a335ee44}.cell--rare{border-color:#0070dd!important}.cell--uncommon{border-color:#1eff0066!important}.load-more-btn{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:var(--font);font-size:.65rem;letter-spacing:3px;text-transform:uppercase;padding:10px 28px;cursor:pointer;transition:all .2s;margin-top:8px}.load-more-btn:hover{border-color:var(--accent);color:var(--accent)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--bg);border:1px solid var(--border);width:min(360px,100%);font-family:var(--font);max-height:90vh;overflow-y:auto}.modal-top{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-top h2{font-size:.65rem;letter-spacing:4px;color:var(--accent)}.modal-x{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;line-height:1;padding:0 2px;transition:color .15s}.modal-x:hover{color:var(--pink)}.modal-body{padding:22px 18px;display:flex;flex-direction:column;gap:18px}.preview-box,.preview-sealed{display:flex;justify-content:center}.preview-sealed{width:120px;height:120px;background:var(--surface);border:1px solid var(--border);align-items:center;font-size:2.5rem;color:var(--border);position:relative;overflow:hidden}.preview-sealed:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 6px,hsla(0,0%,100%,.015) 0,hsla(0,0%,100%,.015) 12px)}.preview-revealed{width:120px;height:120px;image-rendering:pixelated;border:1px solid var(--border);display:block}.spinner{font-size:1.8rem;color:var(--accent);animation:spin 1s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.modal-id{text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.modal-id-label{font-size:.55rem;color:var(--muted);letter-spacing:4px}.modal-id strong{font-size:2rem;color:var(--text);letter-spacing:2px;line-height:1}.modal-rarity{font-size:.6rem;letter-spacing:4px;margin-top:2px}.info-table{display:flex;flex-direction:column}.info-row{display:flex;justify-content:space-between;font-size:.62rem;padding:7px 0;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:none}.info-key{color:var(--muted);letter-spacing:2px}.info-val{color:var(--text)}.mint-btn{width:100%;padding:14px;background:var(--accent);border:none;color:#000;font-family:var(--font);font-size:.8rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:opacity .2s}.mint-btn:hover:not(:disabled){opacity:.85}.mint-btn:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}.mint-btn--loading{animation:pulse 1s ease-in-out infinite}.mint-btn--success{background:var(--green)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.connect-wrap{display:flex;justify-content:center}.modal-error{font-size:.62rem;color:var(--red);letter-spacing:1px;line-height:1.5}.link-btn{background:none;border:none;color:var(--accent);font-family:var(--font);font-size:.62rem;cursor:pointer;text-decoration:underline;padding:0}.footer{border-top:1px solid var(--border);padding:20px 24px;font-size:.55rem;color:var(--muted);letter-spacing:3px;text-align:center;width:100%}@media (max-width:640px){.punk-grid{grid-template-columns:repeat(20,1fr)}.stats-bar{gap:8px}.stat{padding:0 8px}.logo{font-size:1.1rem;letter-spacing:6px}}@media (max-width:380px){.punk-grid{grid-template-columns:repeat(15,1fr)}}