:root { --ink:#f1efe9; --muted:#a9a69d; --line:rgba(238,235,226,.16); --panel:rgba(26,26,25,.74); --yellow:#e7fb66; --violet:#bc8af8; --danger:#ff9a8f; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; color:var(--ink); background:#111110; font-family:Manrope,"Noto Sans SC",sans-serif; }
body:before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.13; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:38px 38px; mask-image:linear-gradient(to bottom,black,transparent 72%); }
.ambient { position:fixed; border-radius:99rem; filter:blur(115px); pointer-events:none; opacity:.22; }.ambient-one { width:34vw;height:34vw;background:#6f30b1;left:-14vw;top:19vh; }.ambient-two{width:31vw;height:31vw;background:#819225;right:-10vw;bottom:-17vw;}
.shell { width:min(1440px,100%); margin:auto; padding:0 32px 42px; position:relative; }.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:.12em}.brand{display:flex;align-items:center;gap:13px}.brand i{color:var(--yellow);font-style:normal}.brand-mark{color:#171715;background:var(--yellow);padding:6px 5px;border-radius:3px;letter-spacing:-.08em}.connection{color:var(--muted);display:flex;gap:8px;align-items:center;letter-spacing:.04em}.dot{width:7px;height:7px;background:var(--yellow);border-radius:50%;box-shadow:0 0 12px var(--yellow)}
.app-link{color:var(--yellow);text-decoration:none;font-size:10px;letter-spacing:.03em;white-space:nowrap}.app-link:hover{color:var(--ink)}
.top-actions{display:flex;align-items:center;gap:17px}.settings-wrap{position:relative}.settings-button{height:34px;border:1px solid var(--line);color:var(--ink);background:#1d1d1b;padding:0 10px;display:flex;align-items:center;gap:7px;border-radius:3px;font:700 10px Manrope,"Noto Sans SC";letter-spacing:.03em;cursor:pointer}.settings-button:hover{border-color:rgba(231,251,102,.55)}.settings-icon{font-size:14px;color:var(--yellow)}.settings-button i{font:9px "DM Mono",monospace;color:var(--muted);padding-left:6px;border-left:1px solid var(--line);font-style:normal}.settings-button i.saved{color:var(--yellow)}.settings-panel{width:340px;position:absolute;right:0;top:44px;z-index:9;padding:17px;border:1px solid rgba(231,251,102,.3);border-radius:5px;background:#21211f;box-shadow:0 18px 55px rgba(0,0,0,.45);letter-spacing:normal}.settings-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.settings-title .eyebrow{margin-bottom:4px}.settings-title strong{font-size:13px}.settings-title>button{border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}.settings-panel .field{margin-bottom:13px}.settings-actions{display:flex;justify-content:flex-end;gap:9px}.clear-key,.save-key{height:34px;border-radius:3px;padding:0 11px;font:700 11px Manrope;cursor:pointer}.clear-key{border:1px solid var(--line);background:transparent;color:var(--muted)}.save-key{border:1px solid var(--yellow);background:var(--yellow);color:#171715}.settings-message{min-height:14px;color:var(--yellow);font-size:10px;margin:10px 0 0}.settings-message.error{color:var(--danger)}
.hero{min-height:275px;padding:72px 0 46px;display:flex;justify-content:space-between;gap:32px;align-items:flex-start}.eyebrow{margin:0 0 10px;color:var(--yellow);font-size:10px;font-weight:700;letter-spacing:.14em}.hero h1{font-size:clamp(38px,5vw,68px);letter-spacing:-.072em;line-height:1.04;margin:0;max-width:780px}.hero h1 em{font-style:normal;color:var(--violet)}.lede{max-width:580px;margin:19px 0 0;color:var(--muted);font-size:14px;line-height:1.8}.workflow-note{min-width:250px;margin-top:10px;padding:16px 0 16px 20px;border-left:1px solid var(--line);display:grid;gap:5px;font-size:12px}.workflow-note span,.workflow-note small{color:var(--muted)}.workflow-note strong{font-size:13px}
.workflow-switch{display:flex;gap:6px;margin-top:10px}.workflow-choice{border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--muted);padding:6px 8px;font:600 10px Manrope,"Noto Sans SC";cursor:pointer}.workflow-choice:hover,.workflow-choice.active{background:var(--violet);border-color:var(--violet);color:#18151b}
.workspace{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(410px,.97fr);border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(12px)}.control-panel{padding:35px 34px;border-right:1px solid var(--line)}.result-panel{padding:35px 34px;min-height:840px;display:flex;flex-direction:column}.section-heading{display:flex;align-items:baseline;gap:11px;margin:0 0 25px}.section-heading span{font-family:"DM Mono",monospace;color:var(--violet);font-size:11px}.section-heading h2,.result-top h2{font-size:18px;margin:0;letter-spacing:-.04em}.field{display:block;margin-bottom:19px;position:relative}.field>span{display:block;font-size:12px;font-weight:700;margin-bottom:9px}.field>span small{color:var(--muted);font-weight:500;margin-left:5px}textarea,input,select{display:block;width:100%;border:1px solid rgba(255,255,255,.17);border-radius:4px;background:#181817;color:var(--ink);font:500 13px/1.5 Manrope,"Noto Sans SC",sans-serif;outline:none;transition:border-color .2s,background .2s}textarea{resize:vertical;padding:13px;min-height:108px}textarea:focus,input:focus,select:focus{border-color:var(--yellow);background:#1d1d1b}input,select{height:42px;padding:0 12px}.prompt-field textarea{min-height:148px}.count{position:absolute;right:11px;bottom:9px;color:#73716a;font:10px "DM Mono",monospace}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field-row.three{grid-template-columns:repeat(3,1fr)}.dimensions{grid-template-columns:1fr 22px 1fr;align-items:end}.times{height:42px;display:grid;place-items:center;color:var(--muted)}.preset-row{display:flex;gap:7px;margin:-4px 0 24px}.preset{border:1px solid var(--line);border-radius:3px;color:var(--muted);background:transparent;padding:6px 10px;font:500 11px Manrope;cursor:pointer}.preset:hover,.preset.active{color:#151515;background:var(--yellow);border-color:var(--yellow)}.advanced{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:3px 0 31px;padding:14px 0}.advanced summary{cursor:pointer;display:flex;justify-content:space-between;list-style:none;font-size:12px;font-weight:700}.advanced summary::-webkit-details-marker{display:none}.advanced summary small{font-weight:500;color:var(--muted)}.advanced summary:after{content:"+";color:var(--yellow);margin-left:7px}.advanced[open] summary:after{content:"−"}.advanced-content{padding-top:21px}.api-heading{margin-top:0}.secret-input{display:flex}.secret-input input{border-radius:4px 0 0 4px;border-right:0}.secret-input button{width:61px;border:1px solid rgba(255,255,255,.17);border-radius:0 4px 4px 0;background:#242421;color:var(--muted);font:11px Manrope;cursor:pointer}.api-key-field>small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:7px}.options{display:flex;flex-wrap:wrap;gap:13px 20px;margin:5px 0 22px}.options label{font-size:11px;color:var(--muted);display:flex;gap:7px;align-items:center;cursor:pointer}.options input{width:14px;height:14px;accent-color:var(--yellow)}.generate{width:100%;height:55px;border:0;border-radius:4px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;background:var(--yellow);color:#141412;cursor:pointer;font:800 14px Manrope;transition:transform .2s,background .2s}.generate:hover{transform:translateY(-2px);background:#efff93}.generate:disabled{opacity:.45;cursor:not-allowed;transform:none}.generate svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.8}.form-message{min-height:16px;margin:12px 0 0;color:var(--danger);font-size:11px}.form-message.info{color:var(--muted)}
.result-top{display:flex;justify-content:space-between;align-items:flex-start}.status{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:5px 9px;font:10px "DM Mono",monospace}.status.working{color:var(--yellow);border-color:rgba(231,251,102,.45)}.status.success{color:#9bf8a2;border-color:rgba(155,248,162,.45)}.status.error{color:var(--danger);border-color:rgba(255,154,143,.45)}.empty-state,.progress-state,.error-state{flex:1;min-height:470px;display:grid;place-content:center;text-align:center;align-items:center}.empty-state{max-width:295px;margin:auto}.spark{font-size:41px;color:var(--violet);height:66px}.empty-state h3,.error-state h3{margin:17px 0 9px;font-size:17px;letter-spacing:-.04em}.empty-state p,.error-state p{color:var(--muted);font-size:12px;line-height:1.75;margin:0}.progress-state{gap:9px}.progress-state p{font-weight:700;font-size:14px;margin:12px 0 0}.progress-state small{color:var(--muted);font-size:11px}.progress-state code{color:#77756d;font:10px "DM Mono",monospace;min-height:15px}.orb{width:73px;height:73px;border:1px solid rgba(231,251,102,.3);border-radius:50%;margin:auto;display:grid;place-items:center;position:relative}.orb:before,.orb:after{content:"";position:absolute;border-radius:50%;border:1px solid var(--violet);animation:orbit 2.6s linear infinite}.orb:before{width:45px;height:45px}.orb:after{width:61px;height:61px;animation-direction:reverse}.orb i{width:10px;height:10px;background:var(--yellow);border-radius:50%;box-shadow:0 0 17px var(--yellow)}@keyframes orbit{to{transform:rotate(360deg)}}.progress-line{width:190px;height:2px;background:#2c2c29;margin:15px auto 3px;overflow:hidden}.progress-line i{display:block;height:100%;width:35%;background:var(--yellow);animation:load 1.5s ease-in-out infinite}@keyframes load{0%{transform:translateX(-120%)}100%{transform:translateX(410%)}}.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:28px}.image-card{background:#181817;border:1px solid var(--line);overflow:hidden}.image-link{height:218px;display:block;background:#20201e;overflow:hidden}.image-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .35s}.image-card:hover img{transform:scale(1.04)}.image-card>div{padding:9px 10px;display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:10px}.image-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.download-image{color:var(--yellow);text-decoration:none;white-space:nowrap}.zip-link{grid-column:1/-1;color:var(--muted);border:1px dashed var(--line);padding:11px;text-align:center;text-decoration:none;font-size:11px}.zip-link:hover{color:var(--yellow);border-color:var(--yellow)}.error-state>div{margin:auto;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#191615;background:var(--danger);font-weight:800}.error-state{max-width:330px;margin:auto}.error-state button{margin:18px auto 0;border:1px solid var(--line);color:var(--ink);padding:9px 13px;background:transparent;cursor:pointer;font:12px Manrope}.result-footnote{margin:24px 0 0;border-top:1px solid var(--line);padding-top:13px;color:#73716a;font-size:10px;line-height:1.7}.hidden{display:none!important}
.api-reminder{margin:-5px 0 18px;color:var(--muted);font-size:11px}.api-reminder button{border:0;background:transparent;color:var(--yellow);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.results{display:block;margin-top:25px}.pool-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line);margin-bottom:14px}.pool-toolbar>div{display:flex;align-items:center;gap:9px}.pool-label{display:block;color:var(--muted);font-size:10px}.pool-toolbar strong{display:block;margin-top:2px;font-size:13px;letter-spacing:-.03em}.clear-pool,.delete-image{border:1px solid var(--line);background:transparent;color:var(--muted);font:10px Manrope,"Noto Sans SC";cursor:pointer}.clear-pool{padding:7px 9px;border-radius:3px}.clear-pool:hover,.delete-image:hover{border-color:var(--danger);color:var(--danger)}.zip-download{color:var(--yellow);font-size:10px;text-decoration:none;white-space:nowrap}.pool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.pool-empty{padding:46px 10px;text-align:center;color:var(--muted);font-size:12px;line-height:1.7}.image-link{width:100%;height:auto;aspect-ratio:1/.93;border:0;display:block;background:#20201e;overflow:hidden;padding:0;cursor:zoom-in}.image-card img{object-fit:contain}.image-card>div{padding:9px 10px}.card-actions{display:flex;gap:8px;align-items:center}.delete-image{padding:0;border:0}.lightbox{position:fixed;inset:0;z-index:30;background:rgba(8,8,7,.93);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 34px 27px}.lightbox img{max-width:min(1200px,100%);max-height:calc(100vh - 105px);object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.55)}.lightbox-close{position:absolute;top:18px;right:24px;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#1e1e1c;color:var(--ink);font-size:23px;line-height:1;cursor:pointer}.lightbox p{margin:13px 0 0;color:var(--muted);font:11px "DM Mono",monospace}
.task-queue{display:grid;gap:7px;margin:18px 0 0}.task-card{border:1px solid var(--line);background:#1a1a18;padding:10px 11px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.task-card .task-marker{width:7px;height:7px;border-radius:50%;background:var(--yellow);box-shadow:0 0 10px var(--yellow)}.task-card.failed .task-marker{background:var(--danger);box-shadow:none}.task-card.completed .task-marker{background:#9bf8a2;box-shadow:0 0 10px rgba(155,248,162,.4)}.task-card strong{display:block;font-size:11px}.task-card small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.task-card time{color:#77756d;font:9px "DM Mono",monospace}.task-card a{color:var(--yellow);font-size:10px;text-decoration:none}.task-error{grid-column:2/-1;color:var(--danger);font-size:10px;line-height:1.5}.task-queue~.progress-state{min-height:250px}.task-queue~.results{margin-top:18px}
.task-card.cancelled .task-marker{background:var(--danger);box-shadow:none}.cancel-task{border:1px solid rgba(255,154,143,.48);border-radius:3px;background:transparent;color:var(--danger);padding:5px 8px;font:700 10px Manrope,"Noto Sans SC";cursor:pointer}.cancel-task:hover{background:rgba(255,154,143,.11)}.cancel-task:disabled{opacity:.6;cursor:wait}
@media(max-width:850px){.shell{padding:0 18px 25px}.hero{padding:46px 0 35px;min-height:0;display:block}.workflow-note{margin-top:30px}.workspace{grid-template-columns:1fr}.control-panel{border-right:0;border-bottom:1px solid var(--line);padding:27px 20px}.result-panel{padding:27px 20px;min-height:600px}.image-link{height:auto}}@media(max-width:560px){.connection{display:none}.settings-panel{position:fixed;top:77px;left:18px;right:18px;width:auto}.topbar{height:68px}.field-row.three{grid-template-columns:1fr}.field-row.three .field{margin-bottom:12px}.preset-row{overflow:auto}.pool-grid{grid-template-columns:1fr}.pool-toolbar{align-items:flex-end}.zip-download{display:none}.image-link{height:auto}.lightbox{padding:55px 15px 25px}.lightbox-close{top:13px;right:13px}}
