@import "https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700;800&display=swap";:root{--text:#6b5f7a;--text-h:#4a2e6b;--bg-1:#fdf2f8;--bg-2:#f1e9ff;--bg-3:#e6f6ff;--border:#f0dcf5;--card-bg:#fff;--accent:#aa3bff;--accent-2:#ff6fae;--accent-3:#47bfff;--accent-bg:#aa3bff1a;--danger:#ff6f91;--danger-bg:#ffe3ec;--shadow:0 10px 24px -8px #aa3bff40;--shadow-soft:0 4px 14px -4px #aa3bff2e;--rounded:"M PLUS Rounded 1c", system-ui, "Segoe UI", Roboto, sans-serif;font:17px/1.6 var(--rounded);letter-spacing:.2px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 15%, var(--bg-3) 0%, transparent 45%), radial-gradient(circle at 88% 20%, var(--bg-2) 0%, transparent 50%), radial-gradient(circle at 50% 100%, var(--bg-1) 0%, transparent 55%), #fffaf5;min-height:100svh;margin:0}#root{min-height:100svh}h1{font-family:var(--rounded);color:var(--text-h);letter-spacing:.4px;margin:0 0 4px;font-size:32px;font-weight:800}.page{flex-direction:column;align-items:center;min-height:100svh;padding:48px 20px 64px;display:flex;position:relative;overflow:hidden}.balloon{opacity:.55;filter:drop-shadow(0 8px 10px #aa3bff33);pointer-events:none;font-size:48px;animation:6s ease-in-out infinite float;position:absolute}.balloon.b1{animation-delay:0s;top:6%;left:8%}.balloon.b2{font-size:36px;animation-delay:1.4s;top:12%;right:10%}.balloon.b3{font-size:40px;animation-delay:2.6s;bottom:8%;left:14%}@keyframes float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-18px)rotate(4deg)}}.card{z-index:1;background:var(--card-bg);border:1px solid var(--border);width:100%;max-width:640px;box-shadow:var(--shadow);text-align:center;border-radius:28px;padding:36px 32px 40px;position:relative}.card h1{justify-content:center;align-items:center;gap:8px;display:flex}.subtitle{color:var(--text);margin:0 0 28px;font-size:15px}.token-row{gap:10px;margin-bottom:22px;display:flex}input[type=password],input[type=text]{font-family:var(--rounded);border:2px solid var(--border);color:var(--text-h);background:#fdfbff;border-radius:999px;outline:none;flex:1;padding:12px 16px;font-size:15px;transition:border-color .2s,box-shadow .2s}input[type=password]:focus,input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg)}.btn{font-family:var(--rounded);cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s}.btn:hover{transform:translateY(-2px)scale(1.03)}.btn:active{transform:translateY(0)scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:var(--shadow-soft)}.btn-soft{color:var(--text-h);background:var(--accent-bg)}.btn-soft:hover{background:#aa3bff2e}.btn-danger{color:#b6295a;background:var(--danger-bg)}.btn-danger:hover{background:#ffd3e0}.upload-drop{border:2.5px dashed var(--accent-3);background:var(--bg-3);color:var(--text-h);cursor:pointer;border-radius:22px;margin-bottom:28px;padding:22px;font-size:16px;font-weight:700;transition:background .2s,border-color .2s,transform .15s;display:block;position:relative}.upload-drop:hover{background:#e0f3ff;transform:translateY(-2px)}.upload-drop.busy{border-color:var(--accent-2);cursor:progress;background:#fff0f6}.upload-drop input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.image-grid{text-align:left;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.image-card{border:1px solid var(--border);background:#fdfbff;border-radius:20px;flex-direction:column;align-items:center;gap:8px;padding:12px;transition:transform .15s,box-shadow .15s;display:flex}.image-card:hover{box-shadow:var(--shadow-soft);transform:translateY(-3px)}.image-card img{aspect-ratio:1;object-fit:cover;background:var(--bg-2);border-radius:14px;width:100%}.image-name{width:100%;color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.image-actions{gap:6px;width:100%;display:flex}.image-actions .btn{flex:1;padding:8px 10px;font-size:12px}.empty{color:var(--text);padding:24px 0 4px;font-size:14px}@media (width<=480px){.card{border-radius:22px;padding:28px 18px 32px}.token-row{flex-direction:column}}
