@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap";:root{--bg:#101510;--text:#e6ece2;--text-strong:#f4f8f0;--text-muted:#e6ece28f;--text-faint:#e6ece252;--surface:#ffffff09;--surface-strong:#fff1;--border:#e8f8de17;--border-strong:#e8f8de26;--accent:#a5d184;--accent-strong:#7fad62;--accent-bright:#c2eca0;--accent-glow:#a5d18459;--accent-ring:#a5d18414;--accent-ring-strong:#a5d18429;--accent-edge:#a5d18457;--accent-edge-drag:#a5d1848f;--tagline-base:#fff;--radius-shell:36px;--radius-card:24px;--radius-control:16px;--radius-thumb:26px;--page-gap:34px;--page-pad-x:24px;--page-pad-y:32px;--composer-width:700px;--history-width:820px;--result-min:168px;--textarea-height:150px;--tagline-size:30px;--header-justify:center;--composer-align:center;--composer-justify:center;--panel-blur:20px;--panel-shadow:0 24px 70px -30px #50784480;--panel-border-width:1px;--history-gap:24px;--control-case:none;--brand-case:none;--composer-pad:24px 26px 20px;--card-pad:24px;--preview-size:56px;--result-aspect:1 / 1;--history-page-align:stretch;--history-page-pad-top:56px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(45% 36% at 18% 18%,#a5d1841c,#0000 64%),radial-gradient(52% 42% at 82% 90%,#749d601a,#0000 60%);background-attachment:fixed;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}#root{flex-direction:column;height:100%;display:flex}.app-header{letter-spacing:3px;color:var(--text-muted);justify-content:var(--header-justify);min-height:56px;text-transform:var(--brand-case);align-items:center;gap:10px;padding:0 16px;font-size:13px;font-weight:500;display:flex}.brand-pill{border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);background-color:#ffffff06;border-radius:999px;padding:10px 28px;line-height:1}section.main{scroll-snap-type:y proximity;scroll-behavior:smooth;flex:auto;min-height:0;overflow-y:auto}section.main::-webkit-scrollbar{width:6px}section.main::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.page{scroll-snap-align:start;justify-content:var(--composer-justify);align-items:var(--composer-align);gap:var(--page-gap);min-height:100%;padding:var(--page-pad-y) var(--page-pad-x);flex-direction:column;display:flex}.history-page{align-items:var(--history-page-align);padding-top:var(--history-page-pad-top);justify-content:flex-start;padding-bottom:56px;animation:.5s both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tagline{text-align:center;font-size:var(--tagline-size);letter-spacing:-.02em;justify-content:center;align-items:center;min-height:1.4em;margin:0;font-weight:500;display:flex}.tagline-text{background-image:linear-gradient(100deg, transparent 35%, var(--accent-bright) 48%, var(--accent-strong) 50%, var(--accent-bright) 52%, transparent 65%), linear-gradient(var(--tagline-base), var(--tagline-base));-webkit-text-fill-color:transparent;color:#0000;background-position:150% 0,0 0;background-repeat:no-repeat,no-repeat;background-size:250% 100%,100% 100%;-webkit-background-clip:text;background-clip:text;animation:.3s both tagline-in,1.2s ease-in-out .1s both tagline-shimmer;display:inline-block}@keyframes tagline-in{0%{opacity:0;filter:blur(4px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes tagline-shimmer{0%{background-position:150% 0,0 0}to{background-position:-50% 0,0 0}}.inputbox{width:min(var(--composer-width), 100%);padding:var(--composer-pad);background-color:var(--surface);border:var(--panel-border-width) solid var(--border);border-radius:var(--radius-shell);-webkit-backdrop-filter:blur(var(--panel-blur));box-shadow:0 1px 0 #ffffff0a inset, var(--panel-shadow), 0 0 0 1px #ffffff05;transition:border-color .2s,box-shadow .2s;position:relative}.inputbox.is-dragging{border-color:var(--accent-edge-drag);box-shadow:0 1px 0 #ffffff0d inset, 0 20px 60px -20px #000000b3, 0 0 0 4px var(--accent-ring-strong)}.previews{scrollbar-width:thin;flex-wrap:nowrap;gap:8px;min-width:0;margin-right:auto;padding-bottom:2px;display:flex;overflow-x:auto}.previews::-webkit-scrollbar{height:4px}.previews::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.preview{width:var(--preview-size);height:var(--preview-size);border-radius:var(--radius-control);border:1px solid var(--border-strong);background-color:#0000004d;flex:none;position:relative;overflow:hidden}.preview img{object-fit:cover;width:100%;height:100%;display:block}.preview-remove{color:#fff;cursor:pointer;opacity:0;background-color:#000000bf;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;transition:opacity .15s,background-color .15s,transform .1s;display:inline-flex;position:absolute;top:3px;right:3px}.preview:hover .preview-remove{opacity:1}.preview-remove:hover{background-color:#000000e6}.preview-remove:active{transform:scale(.92)}.preview-remove svg{stroke-width:2.5px;width:10px;height:10px}.drop-overlay{border-radius:var(--radius-shell);-webkit-backdrop-filter:blur(8px);pointer-events:none;border:2px dashed var(--accent-edge-drag);background-color:#0e1410bf;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop-overlay p{color:var(--accent-bright);letter-spacing:.02em;margin:0;font-size:15px;font-weight:500}.inputbox:focus-within{border-color:var(--accent-edge);box-shadow:0 1px 0 #ffffff0d inset, 0 20px 60px -20px #000000b3, 0 0 0 4px var(--accent-ring)}textarea{width:100%;height:var(--textarea-height);resize:none;color:var(--text-strong);background-color:#0000;border:none;outline:none;margin-bottom:12px;padding:4px 4px 0;font-family:inherit;font-size:16px;line-height:1.55;overflow:hidden auto}textarea::placeholder{color:var(--text-faint)}textarea::-webkit-scrollbar{width:6px}textarea::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}div.actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.actions button{border-radius:var(--radius-control);color:#f5e8e8b3;cursor:pointer;width:38px;height:38px;text-transform:var(--control-case);background-color:#0000;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s,transform .1s;display:inline-flex}.actions button:hover{background-color:var(--surface-strong);color:var(--text-strong)}.actions button:active{transform:scale(.96)}.actions button svg{width:18px;height:18px}.actions .send{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);color:var(--bg);box-shadow:0 4px 16px -4px var(--accent-glow)}.actions .send:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-bright) 0%, var(--accent) 100%);color:var(--bg)}.actions .send:disabled{color:var(--text-faint);box-shadow:none;cursor:not-allowed;background:#ffffff0f}.actions .send:disabled:active{transform:none}.op-picker{display:inline-flex;position:relative}.op-picker-select{appearance:none;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;text-transform:var(--control-case);background-color:#ffffff0a;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23ffffff80' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 8px center;background-repeat:no-repeat;border-radius:999px;padding:7px 22px 7px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:color .15s,border-color .15s,background-color .15s}.op-picker-select:hover{color:var(--text-strong);border-color:var(--accent-edge);background-color:var(--surface-strong)}.op-picker-select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring-strong);outline:none}.op-picker-select option{color:var(--text-strong);background-color:#1a201c}.inputbox.is-compact{padding:14px 16px}.actions button.empty-images-hint{white-space:nowrap;width:auto;height:auto;color:var(--text-faint);border:1px dashed var(--border-strong);cursor:pointer;background-color:#ffffff08;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;margin-right:auto;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:500;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.actions button.empty-images-hint:hover{color:var(--text-strong);border-color:var(--accent-edge);background-color:var(--accent-ring)}.actions button.empty-images-hint svg{width:14px;height:14px}.params-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px;display:flex}.param-control{flex-direction:column;gap:4px;min-width:0;display:flex}.param-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding-left:12px;font-size:10px;font-weight:500}.param-input,.param-select{color:var(--text-strong);border:1px solid var(--border);min-width:0;text-transform:var(--control-case);background-color:#ffffff0a;border-radius:999px;outline:none;padding:7px 14px;font-family:inherit;font-size:13px;transition:border-color .15s,background-color .15s,box-shadow .15s}.param-input{width:110px}.param-input::placeholder{color:var(--text-faint)}.param-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.param-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.param-input[type=number]{appearance:textfield}.param-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23ffffff80' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.param-select option{color:var(--text-strong);background-color:#1a201c}.param-input:hover,.param-select:hover{border-color:var(--accent-edge);background-color:var(--surface-strong)}.param-input:focus,.param-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring-strong)}.hint{text-align:center;color:var(--text-faint);margin:0;font-size:12px}.history{width:min(var(--history-width), 100%);margin:0 auto}.history-list{gap:var(--history-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-item{animation:.4s both page-in}.batch-card{padding:var(--card-pad);border-radius:var(--radius-card);background-color:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);flex-direction:column;gap:16px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0a,0 18px 50px -24px #0009}.batch-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.batch-status{letter-spacing:.04em;color:var(--text-faint);font-size:12px}.batch-edit{letter-spacing:.02em;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background-color:#0000;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:11px;font-weight:500;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.batch-edit:hover{color:var(--text-strong);border-color:var(--accent-edge);background-color:var(--accent-ring)}.batch-edit svg{width:11px;height:11px}.batch-retry{color:var(--accent);background-color:var(--accent-ring);border:1px dashed var(--accent-edge);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:18px;font-family:inherit;font-size:13px;font-weight:500;transition:background-color .15s,transform .1s;display:flex}.batch-retry:hover{background-color:var(--accent-ring-strong)}.batch-retry:active{transform:scale(.99)}.batch-retry svg{width:16px;height:16px}.batch-card.is-editing{border-color:var(--accent-edge);box-shadow:0 1px 0 #ffffff0a inset, 0 18px 50px -24px #0009, 0 0 0 3px var(--accent-ring)}.batch-card.is-planning{border-color:var(--accent-edge)}.editing-banner{width:min(var(--composer-width), 100%);color:var(--accent);background-color:var(--accent-ring);border:1px solid var(--accent-edge);border-radius:999px;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:flex}.editing-banner span{flex:auto}.editing-banner button{color:var(--text-strong);border:1px solid var(--accent-edge);cursor:pointer;background-color:#0000;border-radius:999px;padding:4px 12px;font-family:inherit;font-size:11px;font-weight:500}.editing-banner button:hover{background-color:var(--accent-ring-strong)}.inputbox.is-editing{border-color:var(--accent-edge);box-shadow:0 1px 0 #ffffff0d inset, 0 20px 60px -20px #000000b3, 0 0 0 3px var(--accent-ring)}.batch-prompt{color:var(--text-strong);margin:0;font-size:16px;line-height:1.5}.results-grid{grid-template-columns:repeat(auto-fill, minmax(var(--result-min), 1fr));gap:14px;width:100%;display:grid}.result-card{aspect-ratio:var(--result-aspect);border-radius:var(--radius-thumb);border:1px solid var(--border);cursor:zoom-in;background-color:#0000004d;transition:transform .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 16px 40px -20px #0009}.result-card:hover{border-color:var(--accent-edge);transform:translateY(-2px)}.result-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring-strong), 0 16px 40px -20px #0009;outline:none}.result-card.is-loading{cursor:default}.result-card img{object-fit:cover;width:100%;height:100%;display:block}.result-card.is-loading img{filter:brightness(.7)saturate(.85);transition:filter .3s}.result-shimmer{mix-blend-mode:screen;pointer-events:none;background-image:linear-gradient(110deg,#0000 30%,#ffffff2e 45%,#7ee2a859 50%,#ffffff2e 55%,#0000 70%);background-repeat:no-repeat;background-size:220% 100%;animation:1.6s linear infinite result-shimmer;position:absolute;inset:0}.result-card.is-loading:after{content:"";border:1px solid var(--accent-edge);border-radius:inherit;pointer-events:none;animation:1.6s ease-in-out infinite result-pulse;position:absolute;inset:0}@keyframes result-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes result-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-ring-strong);opacity:.7}50%{opacity:1;box-shadow:0 0 0 6px #0000}}.result-download{-webkit-backdrop-filter:blur(10px);color:#fff;cursor:pointer;opacity:0;background-color:#0a0e0cb3;border:1px solid #ffffff26;border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .25s,transform .25s,background-color .15s;animation:.4s .1s forwards download-in;display:inline-flex;position:absolute;top:10px;right:10px;transform:translateY(-4px)}.result-download:hover{background-color:#0a0e0ce6}.result-download:active{transform:scale(.94)}.result-download svg{width:16px;height:16px}@keyframes download-in{to{opacity:1;transform:translateY(0)}}.download-all{cursor:pointer;color:var(--bg);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);box-shadow:0 8px 24px -8px var(--accent-glow);border:none;border-radius:999px;align-self:flex-end;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:500;transition:transform .1s,box-shadow .2s,background .2s;animation:.4s both download-in;display:inline-flex}.download-all:hover{background:linear-gradient(135deg, var(--accent-bright) 0%, var(--accent) 100%);box-shadow:0 10px 28px -8px var(--accent-glow)}.download-all:active{transform:scale(.97)}.download-all svg{width:16px;height:16px}.suspense-root{animation:.2s both suspense-fade-in}@keyframes suspense-fade-in{0%{opacity:0}to{opacity:1}}.setup-toast{z-index:50;border:1px solid var(--accent-edge);-webkit-backdrop-filter:blur(16px);background-color:#141a16e6;border-radius:14px;width:280px;padding:14px 16px 16px;animation:.3s both setup-toast-in;position:fixed;bottom:20px;right:20px;box-shadow:inset 0 1px #ffffff0d,0 18px 50px -12px #0009}@keyframes setup-toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.setup-toast-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.setup-toast-title{color:var(--text-strong);font-size:13px;font-weight:600}.setup-toast-pct{color:var(--accent);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.setup-toast-sub{color:var(--text-faint);font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px}.setup-toast-bar{background-color:#ffffff0f;border-radius:999px;height:4px;margin-top:10px;overflow:hidden}.setup-toast-bar-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-strong) 100%);border-radius:inherit;height:100%;transition:width .2s}@media (width<=640px){.setup-toast{width:auto;left:16px;right:16px}}.result-op-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--bg);background-color:var(--accent);pointer-events:none;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:600;position:absolute;bottom:10px;left:10px;box-shadow:0 2px 8px -2px #0006}.result-error-badge{letter-spacing:.04em;text-transform:uppercase;color:#fff;pointer-events:none;background-color:#dc3232d9;border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:10px;font-weight:600;display:inline-flex;position:absolute;bottom:10px;left:10px}.result-error-badge svg{width:11px;height:11px}.lightbox{z-index:9999;cursor:zoom-out;background-color:#000;justify-content:center;align-items:center;padding:40px;animation:.2s both lightbox-in;display:flex;position:fixed;inset:0}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox img{cursor:default;border-radius:12px;max-width:100%;max-height:100%;animation:.25s both lightbox-img-in;box-shadow:0 30px 80px -20px #000c}@keyframes lightbox-img-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.lightbox-close{color:#fff;cursor:pointer;background-color:#141414b3;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:background-color .15s,transform .1s;display:inline-flex;position:fixed;top:20px;right:20px}.lightbox-close:hover{background-color:#141414f2}.lightbox-close:active{transform:scale(.94)}.lightbox-close svg{width:18px;height:18px}@media (width<=640px){:root{--composer-align:center;--composer-justify:center;--page-pad-x:16px;--page-pad-y:24px;--composer-width:100%;--history-width:100%;--textarea-height:126px}.app-header{letter-spacing:2px;flex-wrap:wrap;justify-content:center;min-height:auto;padding:12px}.brand-pill{max-width:100%}.tagline{text-align:center;justify-content:center;font-size:22px}.page{justify-content:center;align-items:center}.results-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}}
