:root{--bg: #ffffff;--bg-soft: #f4f6fb;--ink: #0a0a0a;--muted: #5a6472;--line: #e4e8ef;--blue: #2b3cff;--blue-hover: #1f2ce0;--blue-soft: #eef0ff;--danger: #c62828;--ok: #1b7a3d;--radius: 14px;--shadow: 0 10px 30px rgba(15, 23, 42, .06);--font: "Manrope", system-ui, sans-serif;--pad: clamp(14px, 3vw, 32px);--max: 1180px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg-soft);-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}.page{min-height:100vh;display:flex;flex-direction:column}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--pad);border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:20}.logo{display:block;height:clamp(34px,6vw,44px);width:auto;max-width:min(200px,48vw);object-fit:contain;object-position:left center}.logo.logo-lg{height:clamp(44px,10vw,64px);max-width:min(280px,78vw);margin:0 auto 8px}.account{display:flex;align-items:center;gap:8px;flex-shrink:0;color:var(--muted);font-size:.875rem}.user-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wallet-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--blue-soft);color:var(--blue);cursor:pointer;font-weight:700}.wallet-pill .wallet-label{font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;opacity:.85}.wallet-pill:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}button.buy-btn{color:var(--blue);border-color:var(--blue)}.stage{width:min(100%,var(--max));margin:0 auto;padding:clamp(16px,3vw,28px) var(--pad) clamp(28px,5vw,48px);display:grid;grid-template-columns:minmax(320px,1.35fr) minmax(240px,.75fr);gap:clamp(16px,2.5vw,24px);align-items:start;flex:1}.panel{background:var(--bg);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.compose{padding:clamp(16px,2.5vw,24px)}.compose-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.compose h1{margin:0 0 6px;font-size:clamp(1.25rem,2.5vw,1.6rem);font-weight:700;letter-spacing:-.02em}.lead{margin:0;color:var(--muted);line-height:1.4;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cost-note{margin:0;flex-shrink:0;padding:6px 10px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);color:var(--muted);font-size:.78rem;font-weight:600;white-space:nowrap}.guide-toggle{width:100%;margin-bottom:12px;padding:10px 14px;border-radius:10px;background:var(--bg-soft);color:var(--blue);border:1px solid var(--line);font-weight:600;font-size:.9rem;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-toggle:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.guide-arrow{flex-shrink:0;font-size:.95rem;line-height:1;transition:transform .2s ease;color:var(--blue)}.guide-arrow.open{transform:rotate(180deg)}.guide{margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft)}.guide-steps{margin:0 0 10px;padding-left:1.15rem;color:var(--ink);font-size:.88rem;line-height:1.5}.guide-steps li{margin-bottom:3px}.guide-compare{display:grid;gap:6px;margin-bottom:8px;font-size:.84rem;line-height:1.4;color:var(--muted)}.guide-compare p{margin:0}.guide-compare .bad{color:var(--danger);font-weight:700;margin-right:6px}.guide-compare .good{color:var(--ok);font-weight:700;margin-right:6px}.guide-note{margin:0;font-size:.8rem;color:var(--muted);line-height:1.4}.examples{margin-top:12px}.examples-label{display:block;margin-bottom:8px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.example-chips{display:flex;flex-wrap:wrap;gap:8px}button.chip{padding:7px 14px;border-radius:999px;background:var(--bg);color:var(--blue);border:1px solid var(--line);font-weight:600;font-size:.84rem}button.chip:hover:not(:disabled){background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.tip{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#fff8e8;border:1px solid #f0d9a0;color:#7a5a10;font-size:.88rem;line-height:1.45}.form label{display:block;margin-bottom:8px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.prompt-hint-always{display:grid;gap:4px;margin:0 0 10px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg-soft);font-size:.84rem;line-height:1.4;color:var(--muted)}.prompt-hint-always p{margin:0}.prompt-hint-always .bad{color:var(--danger);font-weight:700;margin-right:6px}.prompt-hint-always .good{color:var(--ok);font-weight:700;margin-right:6px}textarea,.login-card input{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}textarea{resize:vertical;min-height:140px;line-height:1.5}textarea:focus,.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2b3cff26}.row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:10px;padding:12px 22px;background:var(--blue);color:#fff;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}button:hover:not(:disabled):not(.chip):not(.ghost):not(.guide-toggle):not(.wallet-pill){background:var(--blue-hover);color:#fff}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);padding:8px 14px;font-weight:500;font-size:.85rem}button.ghost:hover:not(:disabled){background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.error{margin:12px 0 0;color:var(--danger);line-height:1.4;font-size:.9rem}.preview{overflow:hidden;display:flex;flex-direction:column}.preview-stage{position:relative;width:100%;aspect-ratio:2 / 3;max-height:min(72vh,720px);margin:0 auto;background:var(--bg-soft);overflow:hidden}.preview img{display:block;width:100%;height:100%;object-fit:contain;animation:rise .4s ease}.preview img.is-dimmed{filter:brightness(.55);animation:none}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:6px;color:var(--muted);padding:24px;text-align:center}.empty-title{margin:0;font-weight:700;color:var(--ink);font-size:1rem}.empty p{margin:0;font-size:.92rem}.meta-bar{display:flex;flex-wrap:wrap;gap:12px;padding:12px 16px;border-top:1px solid var(--line);background:var(--bg);color:var(--muted);font-size:.85rem}.meta-bar a{color:var(--blue);font-weight:600;text-decoration:none;margin-left:auto}.meta-bar a:hover{text-decoration:underline}.generating{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 16px;text-align:center;background:radial-gradient(420px 240px at 50% 40%,rgba(43,60,255,.12),transparent 70%),#ffffffb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.gen-orb{position:relative;width:88px;height:88px;margin-bottom:8px}.gen-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid transparent;border-top-color:var(--blue);border-right-color:#2b3cff59;animation:spin 1.1s linear infinite}.gen-ring.delay{top:10px;right:10px;bottom:10px;left:10px;animation-duration:1.6s;animation-direction:reverse;border-top-color:#ff6a00;border-right-color:#ff6a004d}.gen-core{position:absolute;top:28px;right:28px;bottom:28px;left:28px;border-radius:50%;background:linear-gradient(145deg,var(--blue),#6b7aff);box-shadow:0 0 24px #2b3cff59;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(.92);opacity:.85}50%{transform:scale(1);opacity:1}}.gen-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--ink)}.gen-text{margin:0;max-width:28ch;color:var(--blue);font-weight:600;font-size:.95rem;min-height:2.6em;animation:fadeSwap .45s ease}.gen-sub{margin:0;color:var(--muted);font-size:.85rem}.gen-bar{margin-top:10px;width:min(220px,70%);height:4px;border-radius:999px;background:var(--line);overflow:hidden}.gen-bar span{display:block;height:100%;width:40%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#6b7aff);animation:barSlide 1.4s ease-in-out infinite}@keyframes barSlide{0%{transform:translate(-120%)}to{transform:translate(320%)}}@keyframes fadeSwap{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.history-wrap{width:min(100%,var(--max));margin:0 auto;padding:0 var(--pad) clamp(28px,5vw,48px)}.history-toggle{margin-bottom:14px}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.history-card{background:var(--bg);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;padding-bottom:12px}.history-card img{display:block;width:100%;aspect-ratio:2 / 3;object-fit:cover;background:var(--bg-soft)}.history-no-img{aspect-ratio:2 / 3;display:grid;place-items:center;background:var(--bg-soft);color:var(--muted);font-size:.85rem}.history-prompt{margin:0;padding:0 12px;font-size:.8rem;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:3.2em}.history-card .chip{align-self:flex-start;margin:0 12px}.history-empty{margin:0;color:var(--muted);font-size:.92rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a66;display:grid;place-items:center;padding:20px;z-index:50}.modal{position:relative;width:min(100%,420px);background:var(--bg);border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow);padding:24px}.modal-close{position:absolute;top:10px;right:10px;width:36px;height:36px;padding:0;border-radius:10px;background:transparent;color:var(--muted);border:1px solid transparent;font-size:1.5rem;font-weight:500;line-height:1;cursor:pointer;display:grid;place-items:center}.modal-close:hover:not(:disabled){background:var(--bg-soft);color:var(--ink);border-color:var(--line)}.modal h2{margin:0 40px 8px 0;font-size:1.25rem}.modal-balance{margin:0 0 12px;font-size:1rem}.modal-body{margin:0 0 10px;color:var(--muted);line-height:1.5;font-size:.92rem}.modal-note{margin:0 0 18px;font-size:.85rem;color:var(--ink);font-weight:600}.buy-label{display:block;margin:4px 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.buy-input{width:100%;padding:12px 14px;margin-bottom:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);outline:none}.buy-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2b3cff26}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.login-page{min-height:100vh;display:grid;place-items:center;padding:var(--pad);background:radial-gradient(900px 420px at 50% -10%,rgba(43,60,255,.1),transparent 60%),var(--bg)}.login-card{width:min(100%,400px);display:flex;flex-direction:column;gap:8px;padding:clamp(24px,5vw,36px);border:1px solid var(--line);border-radius:16px;background:var(--bg);box-shadow:var(--shadow)}.login-sub{margin:0 0 14px;text-align:center;color:var(--muted);font-size:.95rem}.login-card label{margin-top:6px;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.login-card button{margin-top:16px;width:100%;padding:13px 18px}.notice{margin:0;padding:10px 12px;border-radius:10px;background:var(--blue-soft);color:var(--blue);font-size:.9rem;text-align:center}.spinner{width:36px;height:36px;border:3px solid var(--blue-soft);border-top-color:var(--blue);border-radius:50%;animation:spin .75s linear infinite}@media(max-width:900px){.stage{grid-template-columns:1fr}.preview-stage{max-height:min(60vh,560px)}.lead{white-space:normal}.compose-head{flex-direction:column}}@media(max-width:600px){.top{padding:10px 12px}.user-name,.wallet-pill .wallet-label{display:none}.row button[type=submit]{width:100%}.meta-bar a{margin-left:0;width:100%}}
