:root{--color-bg:#0b0b0c;--color-bg-secondary:#121214;--color-gold:#d4af37;--color-gold-dim:#d4af3733;--color-text-primary:#ededed;--color-text-muted:#888;--color-success:#2e8b57;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--glass-bg:#12121499;--glass-border:#d4af3726}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text-primary);height:var(--tg-viewport-stable-height,100vh);overflow:hidden}#app{flex-direction:column;height:100%;display:flex}.app-header{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--glass-border);z-index:100;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.node-badge,.crypto-badge{letter-spacing:.05em;color:var(--color-text-muted);font-size:.65rem;font-weight:600}.node-badge{color:var(--color-gold)}.crypto-badge{color:var(--color-success)}#main-content{-webkit-overflow-scrolling:touch;flex:1;padding:20px;overflow-y:auto}.hidden{display:none!important}.overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:999;background:#0b0b0ce6;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.spinner{border:2px solid var(--color-gold-dim);border-top-color:var(--color-gold);border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--color-gold);letter-spacing:.05em;font-size:.85rem}.card{background:var(--color-bg-secondary);border:1px solid var(--glass-border);border-radius:12px;margin-bottom:16px;padding:16px;box-shadow:0 4px 20px #0000004d}.card-title{color:var(--color-gold);margin-bottom:8px;font-size:1rem;font-weight:600}.card-text{color:var(--color-text-muted);font-size:.9rem;line-height:1.5}.btn-primary{color:#000;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:linear-gradient(135deg,#d4af37 0%,#aa8a28 100%);border:none;border-radius:8px;width:100%;margin-top:20px;padding:14px;font-size:1rem;font-weight:700;display:block}.btn-primary:active{opacity:.9;transform:scale(.98)}.uploader-box{border:2px dashed var(--color-gold-dim);text-align:center;cursor:pointer;border-radius:12px;margin-top:16px;padding:24px;transition:all .3s;position:relative;overflow:hidden}.uploader-box:hover{border-color:var(--color-gold);background:#d4af370d}.uploader-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.uploader-icon{color:var(--color-gold);margin-bottom:8px;font-size:2rem}.preview-container{border:1px solid var(--glass-border);background:#000;border-radius:12px;justify-content:center;align-items:center;margin-top:16px;display:flex;overflow:hidden}.preview-image{max-width:100%;max-height:400px;display:block}.blur-overlay{z-index:10;background:#0b0b0ccc;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.liveness-container{aspect-ratio:3/4;border:1px solid var(--glass-border);background:#000;border-radius:20px;justify-content:center;align-items:center;width:100%;margin-top:16px;display:flex;position:relative;overflow:hidden}.liveness-video{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0;transform:scaleX(-1)}.liveness-mask{z-index:2;background:#0b0b0cd9;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120px 160px,#0000 95%,#000 100%);mask-image:radial-gradient(120px 160px,#0000 95%,#000 100%)}.liveness-ring{border:4px solid var(--color-gold-dim);z-index:3;border-radius:50%;width:260px;height:340px;transition:all .3s;position:absolute;box-shadow:0 0 15px #d4af371a}.liveness-ring.active{border-color:var(--color-gold);transform:scale(1.05);box-shadow:0 0 25px #d4af3766}.liveness-instructions{text-align:center;z-index:4;color:var(--color-gold);text-shadow:0 2px 4px #000c;font-weight:600;position:absolute;bottom:20px;left:0;right:0}.progress-bar-container{background:#ffffff1a;border-radius:3px;width:100%;height:6px;margin-top:12px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#d4af37 0%,#f3e5ab 100%);width:0%;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.catalog-header{text-align:center;margin-bottom:24px}.catalog-subtitle{color:var(--color-gold-dim);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px;font-size:.85rem}.catalog-grid{grid-template-columns:1fr 1fr;gap:16px;padding-bottom:24px;display:grid}.profile-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:12px;transition:transform .2s,border-color .2s;position:relative;overflow:hidden}.profile-card:active{border-color:var(--color-gold);transform:scale(.97)}.profile-image-container{aspect-ratio:3/4;background:#000;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.profile-image-container canvas{object-fit:cover;width:100%;height:100%}.profile-info{padding:12px}.profile-name{color:#fff;margin-bottom:4px;font-size:1.1rem;font-weight:600}.profile-tier{text-transform:uppercase;letter-spacing:1px;color:var(--color-gold);border:1px solid var(--color-gold-dim);background:#d4af3726;border-radius:4px;margin-bottom:8px;padding:2px 6px;font-size:.7rem;display:inline-block}.profile-meta{color:#aaa;justify-content:space-between;font-size:.8rem;display:flex}.nodo-badge{text-align:center;color:#888;letter-spacing:1px;margin-top:16px;font-size:.75rem}.pin-display{justify-content:center;gap:12px;margin:20px 0;display:flex}.pin-digit{border:2px solid var(--color-gold);color:#fff;text-shadow:0 0 8px #d4af3780;background:#0b0b0ce6;border-radius:8px;justify-content:center;align-items:center;width:50px;height:64px;font-family:monospace;font-size:2rem;font-weight:700;display:flex;box-shadow:0 0 15px #d4af3733}.pin-warning{color:var(--color-danger,#ff4d4d);text-align:center;margin-bottom:8px;font-size:.8rem}.pin-input-group{flex-direction:column;gap:12px;margin-top:16px;display:flex}.pin-input{border:2px dashed var(--color-gold-dim);color:#fff;text-align:center;letter-spacing:8px;background:#00000080;border-radius:8px;outline:none;padding:12px;font-family:monospace;font-size:2rem;transition:border-color .3s}.pin-input:focus{border-color:var(--color-gold);border-style:solid}
