*{margin:0;padding:0;box-sizing:border-box}:root{background:#111;color:#fff;font-family:Space Mono,Google Sans Display,sans-serif}body{display:flex;justify-content:center;align-items:center;min-height:100dvh;padding:20px}main{width:100%;max-width:900px;display:flex;flex-direction:column;gap:20px}.app-header{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}.wallet-header{width:100%;display:flex;justify-content:flex-end;align-items:center;min-height:45px;gap:10px}.title-container{display:flex;flex-direction:column;align-items:center;gap:15px}.instructions{color:#8e2de2;font-size:.9rem;line-height:1.6;max-width:100%}.instructions p{margin:0}h1{font-weight:700;font-size:3rem;color:#eee;background:linear-gradient(90deg,#8e2de2,#4a00e0);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 15px rgba(142,45,226,.4);flex-shrink:0}.content{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.source-container{display:flex;flex-direction:column;gap:15px}.image-container{position:relative;aspect-ratio:1 / 1;background:#222;border-radius:8px;border:2px dashed #444;display:flex;justify-content:center;align-items:center;overflow:hidden;transition:border-color .3s}.image-container.clickable{cursor:pointer}.image-container.clickable:hover{border-color:#666}.image-container.has-image{border-style:solid;border-color:#555}.image-container.locked{cursor:not-allowed;opacity:.6}.image-container.locked:after{content:"🔒 Connect wallet to upload";position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;color:#fff;display:flex;justify-content:center;align-items:center;font-weight:700}.image-container p{color:#888;text-align:center;padding:10px}.image-container img,.image-container video{width:100%;height:100%;object-fit:contain}.image-container video{object-fit:cover;transform:scaleX(-1)}.source-controls{display:flex;gap:10px}.loader{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:10}.spinner{border:4px solid rgba(255,255,255,.2);border-left-color:#fff;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.controls{display:flex;flex-direction:column;gap:20px}textarea{font-family:inherit;background:#222;color:#fff;border:1px solid #444;border-radius:8px;padding:15px;font-size:1rem;resize:vertical;min-height:120px;outline:none;transition:border-color .3s,box-shadow .3s}textarea:focus{border-color:#1e88e5;box-shadow:0 0 0 3px #1e88e54d}textarea:read-only{cursor:not-allowed;background-color:#282828;opacity:.6}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}button,.wallet-option,.source-controls button,.aspect-ratio-button,.scale-button,.secondary-button,.connect-wallet-button,.wallet-status-button{font-family:inherit;cursor:pointer;border-radius:4px;transition:none;border-style:outset;border-width:2px;padding:12px 20px;font-size:1rem}button:active:not(:disabled),.wallet-option:active:not(:disabled),.source-controls button:active:not(:disabled),.aspect-ratio-button:active:not(:disabled),.scale-button:active:not(:disabled),.secondary-button:active:not(:disabled),.connect-wallet-button:active:not(:disabled),.wallet-status-button:active:not(:disabled){border-style:inset;transform:translate(1px,1px)}button:disabled,.wallet-option:disabled{background:#555;cursor:not-allowed;color:#999;opacity:.7;border-style:solid;border-color:#444;transform:none}button{background:#1e88e5;color:#fff;border-color:#5eb1ff #145db1 #145db1 #5eb1ff;text-transform:uppercase;font-weight:700;flex-grow:1}button:hover:not(:disabled){background-color:#1565c0}.download-button,.source-controls .capture-button{background-color:#e64a19;border-color:#ff8a65 #b83b14 #b83b14 #ff8a65}.download-button:hover:not(:disabled),.source-controls .capture-button:hover:not(:disabled){background-color:#bf360c}.error{color:#ef5350;background:#ef53501a;border:1px solid #ef5350;padding:10px;border-radius:8px;text-align:center;word-break:break-word}.aspect-ratio-selector,.scale-selector{display:flex;flex-direction:column;gap:10px}.aspect-ratio-selector p,.scale-selector p{color:#aaa;font-size:.9rem;font-weight:700}.aspect-ratio-buttons,.scale-buttons{display:flex;flex-wrap:wrap;gap:8px}.aspect-ratio-button,.scale-button{background:#333;color:#ccc;padding:8px 16px;font-size:.9rem;flex-grow:0;text-transform:none;font-weight:400;border-color:#555 #111 #111 #555}.aspect-ratio-button:hover:not(:disabled),.scale-button:hover:not(:disabled){background-color:#444}.aspect-ratio-button.active,.scale-button.active{background:#1e88e5;color:#fff;font-weight:700;border-style:inset;border-color:#145db1 #5eb1ff #5eb1ff #145db1}.history-actions{margin-left:auto;display:flex;gap:8px}.source-controls button,.secondary-button{background:#444;color:#ccc;font-size:.9rem;flex-grow:1;text-transform:none;font-weight:400;border-color:#666 #222 #222 #666}.secondary-button{padding:10px 16px;flex-grow:0}.source-controls button:hover:not(:disabled),.secondary-button:hover:not(:disabled){background-color:#555}.source-controls button.active{background:#1e88e5;color:#fff;font-weight:700;border-style:inset;border-color:#145db1 #5eb1ff #5eb1ff #145db1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.modal-overlay.visible{opacity:1;visibility:visible}.modal-content{background:#222;padding:30px;border-radius:12px;border:1px solid #444;width:90%;max-width:450px;display:flex;flex-direction:column;gap:20px;text-align:center;transform:scale(.95);transition:transform .3s;position:relative}.modal-overlay.visible .modal-content{transform:scale(1)}.modal-content h2{color:#eee;font-size:1.5rem;margin-bottom:5px}.modal-content p{color:#aaa;line-height:1.6}.modal-actions{display:flex;flex-direction:column;gap:10px;margin-top:15px}.modal-message{padding:10px;border-radius:8px;font-size:.9rem;word-break:break-word}.modal-message.error{background:#ef53501a;color:#ef5350;border:1px solid #ef5350}.modal-message.success{background:#66bb6a1a;color:#66bb6a;border:1px solid #66bb6a}.modal-close-button{position:absolute;top:15px;right:15px;background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:5px;line-height:1}.modal-close-button:hover{color:#fff}.wallet-selector{display:flex;flex-direction:column;gap:10px;width:100%}.wallet-selector-title{font-size:.9rem;color:#aaa;margin-bottom:5px;font-weight:700}.wallet-option{display:flex;align-items:center;justify-content:center;gap:12px;background-color:#333;color:#eee;font-weight:700;width:100%;text-transform:none;border-color:#555 #111 #111 #555}.wallet-option:hover:not(:disabled){background-color:#444;border-color:#555 #111 #111 #555}.wallet-option svg{width:28px;height:28px}.wallet-fallback-message{font-size:.85rem;color:#888;margin-top:15px;padding:10px;background-color:#ffffff0d;border-radius:6px}.wallet-status{display:flex;flex-direction:column;align-items:center;gap:15px;width:100%;margin-top:10px}.address-display{display:flex;align-items:center;gap:8px;background-color:#333;padding:8px 12px;border-radius:6px;font-family:Google Sans Mono,monospace;font-size:.9rem;color:#ccc;width:100%;justify-content:center;border:1px solid #444}.address-display>span:first-of-type{color:#888}.address-display>span[title]{cursor:help}.copy-button{background:none;border:none;color:#aaa;cursor:pointer;padding:0;margin-left:auto;display:flex;align-items:center;position:relative;transition:color .2s}.copy-button:hover{color:#fff}.copy-button .material-symbols-outlined{font-size:18px}.copy-feedback{position:absolute;bottom:120%;left:50%;transform:translate(-50%);background-color:#4caf50;color:#fff;padding:4px 8px;border-radius:4px;font-size:.8rem;white-space:nowrap;z-index:10}.disconnect-button,.refresh-button{width:100%;font-size:1rem;text-transform:none;font-weight:400}.disconnect-button{background-color:#d32f2f;border-color:#ff6659 #a62020 #a62020 #ff6659}.disconnect-button:hover:not(:disabled){background-color:#b71c1c}.refresh-button{background-color:#444;border-color:#666 #222 #222 #666}.refresh-button:hover:not(:disabled){background-color:#555}.wallet-icon{width:20px;height:20px;margin-right:4px;display:flex;align-items:center;justify-content:center}.wallet-icon .material-symbols-outlined{font-size:20px;line-height:1}.buy-dznts-button{display:inline-block;padding:8px 16px;background:#00a3ff;color:#fff;font-family:inherit;font-size:.9rem;font-weight:700;text-decoration:none;text-transform:none;border-radius:4px;border-style:outset;border-width:2px;border-color:#4dc3ff #007abb #007abb #4dc3ff;cursor:pointer;transition:none}.buy-dznts-button:hover{background:#0082cc}.buy-dznts-button:active{border-style:inset;transform:translate(1px,1px)}.connect-wallet-button{background:#444;color:#ccc;font-size:.9rem;padding:8px 16px;text-transform:none;font-weight:400;border-color:#666 #222 #222 #666;display:flex;align-items:center;gap:8px}.connect-wallet-button:hover:not(:disabled){background-color:#555}.wallet-status-button{background:#333;color:#eee;font-size:.9rem;padding:8px 16px;text-transform:none;font-weight:400;border-color:#555 #111 #111 #555;display:flex;align-items:center;gap:8px;font-family:Google Sans Mono,monospace}.wallet-status-button .material-symbols-outlined{font-size:16px}@media(min-width:769px){.app-header{flex-direction:row;justify-content:space-between;align-items:center;text-align:left;gap:20px}.wallet-header{order:3;width:auto}.title-container{order:1;align-items:flex-start}.instructions{order:2}h1{order:1}}@media(max-width:768px){.content{grid-template-columns:1fr}.history-actions{margin-left:0;width:100%;justify-content:flex-end}}
