@font-face{font-family:Onest;src:url('/assets/Onest-VF.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:ExoAccent;src:url('/assets/Exo2-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--ink:#230b32;--muted:#65556f;--line:#d9d1dd;--paper:#f8f5f9;--card:#fff;--accent:#fe006e;--pad:clamp(18px,3.2vw,52px);--display:Onest,Arial,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:#f8f5f9;color:#230b32;font:500 15px/1.5 var(--display);-webkit-font-smoothing:antialiased}
button,input,textarea{font:inherit}
button{appearance:none;border:0;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,.drop:focus-within{outline:2px solid #fe006e;outline-offset:3px}
.shell{max-width:none;margin:0;padding:0}
.app-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--pad);border:0;background:#14021f;color:#f8e5f5}
.brand{display:flex;align-items:center;gap:20px;font-weight:700;letter-spacing:0}
.brand img{width:115px;height:auto;max-height:55px;object-fit:contain}
.brand-divider{height:27px;width:1px;background:#72537f}
.brand-service{font:600 16px/1.2 ExoAccent,var(--display);letter-spacing:0}
.header-right{display:flex;align-items:center;gap:18px}
.header-connection{display:inline-flex;align-items:center;gap:8px;color:#cfbfd6;font-size:12px;white-space:nowrap}
.header-connection::before{content:"";width:7px;height:7px;border:1.5px solid currentColor;border-radius:50%;flex:none}
.header-connection.is-ready{color:#a9e9c3}
.header-connection.is-ready::before{background:#4bc98a;border-color:#4bc98a}
.header-connection.is-error{color:#ffc4d8}
.badge{padding:0;border:0;border-left:1px solid #72537f;border-radius:0;background:none;color:#bba6c7;padding-left:18px;font-size:12px}
.workspace{display:block;max-width:1420px;margin:0 auto;padding:35px var(--pad) 85px}
.workspace-heading{padding:0 0 30px;border-bottom:1px solid #cfc4d6}
.heading-mascot{display:none}
.eyebrow{color:#8c4877;font:600 11px/1.2 ExoAccent,var(--display);letter-spacing:.07em}
h1{margin:9px 0 8px;max-width:none;color:#230b32;font:800 clamp(40px,4vw,61px)/1.06 var(--display);letter-spacing:-.055em;text-wrap:balance}
.lead{max-width:740px;margin:0;color:#65556f;font:500 clamp(14px,1.1vw,17px)/1.48 var(--display);text-wrap:balance}
.workflow{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(28px,3.2vw,50px);padding-top:28px;align-items:start}
.workflow-main{min-width:0;display:grid;gap:18px}
.workflow-rail{position:sticky;top:28px;min-width:0;padding:25px 20px 18px;background:#240737;color:#f8e5f5;border-radius:10px;overflow:hidden}
.rail-label{color:#c897b9;font:600 10px/1.2 ExoAccent,var(--display);letter-spacing:.08em}
.rail-steps{list-style:none;margin:19px 0 25px;padding:0}
.rail-steps li{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:baseline;padding:12px 0;border-top:1px solid #694179;color:#ead8ed;font-size:13px}
.rail-steps li:last-child{border-bottom:1px solid #694179}
.rail-steps b{color:#fe6da7;font:600 12px/1 ExoAccent,var(--display)}
.rail-reference{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:center;padding:0 0 5px}
.rail-reference img{display:block;width:62px;height:62px;object-fit:cover;border:2px solid #f8e5f5;border-radius:5px;background:#f8e5f5}
.rail-reference strong{display:block;color:#fff;font-size:12px}
.rail-reference span{display:block;color:#c7add1;font-size:11px;line-height:1.25}
.studio-mascot{display:block;width:100px;height:auto;margin:17px -8px -25px auto;filter:none;animation:none;pointer-events:none}
.workspace-heading h1,.workspace-heading .lead,.step-header h2,.step-header p,.results-head h2,.results-head p,.note{text-wrap:balance}
.panel,.status{display:block;margin:0;padding:25px 29px;border:1px solid #d7cedd;border-radius:9px;background:#fff;box-shadow:none;color:#230b32}
.panel::before{display:none}
.step-header{display:flex;align-items:flex-start;gap:18px;margin-bottom:19px}
.step-num{display:inline-flex;align-items:center;justify-content:center;flex:none;width:31px;height:31px;border:1px solid #b494c0;border-radius:4px;color:#6a2a78;font:600 12px/1 ExoAccent,var(--display)}
.panel h2,.status h2,.results-head h2{margin:0;color:#230b32;font:750 clamp(23px,2vw,28px)/1.2 var(--display);letter-spacing:-.035em}
.panel p,.results-head p{margin:5px 0 0;color:#65556f;font-size:13px;line-height:1.45}
.connection-state{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 13px;border:1px solid #d4cdd8;border-radius:6px;background:#f7f3f8}
.connection-indicator{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid #95889d;border-radius:50%;color:#665c6c;font:700 13px/1 var(--display)}
.connection-state strong{display:block;font-size:13px;line-height:1.25}
.connection-state #setup{display:block;color:#65556f;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.connection-state.is-ready{border-color:#87c7a5;background:#edf8f1}
.connection-state.is-ready .connection-indicator{background:#177449;border-color:#177449;color:#fff}
.connection-state.is-ready #setup{color:#276344}
.connection-state.is-error{border-color:#eb99b6;background:#fff1f5}
.connection-state.is-error .connection-indicator{background:#a7375d;border-color:#a7375d;color:#fff}
.connection-state.is-error #setup{color:#8c2d4d}
.key-form{display:block;margin:15px 0 0}
.field-label{display:block;margin-bottom:7px;color:#3d264c;font-size:12px;font-weight:700}
.key-row{display:flex;gap:9px}
.key-row input{flex:1;min-width:0;height:45px;padding:0 12px;border:1px solid #b8aabf;border-radius:5px;background:#fff;color:#230b32;font-size:14px}
.key-row input::placeholder{color:#9c8da3}
.key-row button{flex:none;min-height:45px;padding:0 18px;border-radius:5px;background:#2b103d;color:#fff;font-size:13px;font-weight:700}
.key-row button:hover{background:#4c1f5f}
.key-panel.is-connected .key-form{display:none}
.quiet-button{display:inline-flex;align-items:center;margin:10px 0 0;padding:0;background:none;color:#64247a;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:700}
.key-help{margin:11px 0 0!important;color:#7d6d84!important;font-size:11px!important;line-height:1.4!important}
.provider-help{display:inline-block;margin-top:5px;color:#4f264c;font-size:11px;font-weight:700;text-underline-offset:3px}
.provider-help:hover{color:#9b357d}
.advanced{margin-top:13px;padding-top:11px;border-top:1px solid #e4dce7;color:#66556f;font-size:12px}
.advanced summary,.upload-help summary{cursor:pointer;color:#5e256f;font-size:12px;font-weight:700}
.advanced p,.upload-help p{margin:8px 0 0!important;color:#65556f!important;font-size:12px!important}
.advanced form{display:flex;gap:8px;margin-top:10px}
.advanced input{flex:1;min-width:0;padding:9px;border:1px solid #c9bbcf;border-radius:5px;font-size:12px}
.advanced button{padding:8px 12px;border-radius:5px;background:#351347;color:#fff;font-size:12px}
.drop{display:grid;justify-items:start;gap:3px;width:100%;min-height:120px;padding:21px 23px;border:1.5px dashed #ba9bc4;border-radius:6px;background:#faf7fb;text-align:left;transition:background .16s,border-color .16s}
.drop:hover,.drop.drag{background:#f7edf8;border-color:#b91c70;transform:none}
.drop-glyph{display:block;color:#b91c70;font:700 22px/1 var(--display)}
.drop strong{display:block;margin:5px 0 0;color:#2b103d;font-size:16px}
.drop span:last-of-type{color:#75687d;font-size:12px}
.drop input{display:none}
.selection-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:19px 0 9px}
.selection-head strong{font-size:13px}
.selection-head button{padding:0;background:none;color:#742b6a;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:650}
.label-list{display:grid;gap:0;margin:0}
.label-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:73px;padding:8px 0;border:0;border-bottom:1px solid #ece6ee;border-radius:0;color:#230b32;font-size:12px}
.label-row:first-child{border-top:1px solid #ece6ee}
.selection-thumb{display:block;width:54px;height:54px;border:1px solid #e4dce7;border-radius:4px;background:#eee9ef;object-fit:cover}
.selection-info{min-width:0;display:flex;flex-direction:column;gap:3px}
.selection-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.selection-meta{color:#86798e;font-size:11px}
.selection-controls{display:flex;align-items:center;gap:7px}
.selection-controls label,.selection-remove{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 9px;border:1px solid #d4c4da;border-radius:4px;background:#fff;color:#5e256f;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}
.selection-controls label:hover,.selection-remove:hover{background:#f3e9f5}
.selection-controls label.has-label{border-color:#8fc4a7;color:#177449;background:#edf8f1}
.selection-controls input{display:none}
.upload-help{margin-top:12px;font-size:12px}
.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:19px;padding-top:18px;border-top:1px solid #e7e0e9}
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 19px;border-radius:5px;background:#fe006e;color:#fff;font-size:13px;font-weight:750;text-decoration:none;box-shadow:none;transition:background .16s}
.primary:hover,.secondary:hover{background:#d6005d;transform:none}
.primary:disabled{background:#d9cbd6;color:#7c6e7c;cursor:default;opacity:1}
.filelist{color:#83758a;font-size:12px}
.status{display:none;padding:25px 29px}
.status.show{display:block;animation:none}
.status-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.status-kicker{display:block;margin:0 0 7px;color:#8f347c;font:600 10px/1.25 ExoAccent,var(--display);letter-spacing:.055em}
.status h2{margin:0 0 5px}
.status p{color:#65556f;font-size:13px;line-height:1.4}
.progress-number{display:flex;flex-direction:column;align-items:flex-end;flex:none}
.progress-number strong{color:#230b32;font:750 clamp(28px,3vw,39px)/1 var(--display);letter-spacing:-.05em}
.count{color:#82758a;font-size:11px;font-weight:700}
.track{height:7px;margin:21px 0 9px;border-radius:0;background:#ece6ef;overflow:hidden}
.fill{height:100%;border-radius:0;background:#fe006e;transition:width .35s}
.track.is-busy .fill::after{display:none}
.progress-foot{display:flex;justify-content:space-between;gap:16px;margin:0 0 14px;color:#7c7183;font-size:11px}
.stats{display:flex;gap:18px;flex-wrap:wrap;padding-top:14px;border-top:1px solid #e9e2eb;color:#6c6073;font-size:12px}
.stats b{color:#2b103d}
.job-errors{margin-top:14px;padding:12px 14px;border:1px solid #e8a0b2;border-radius:5px;background:#fff3f5;color:#842c45;font-size:12px}
.results-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:28px 0 12px;padding-top:22px;border-top:1px solid #d9d1dd}
.results-head>div{display:flex;align-items:center;gap:11px}
.results-head h2{font-size:21px}
.results-head p{max-width:350px;margin:0;font-size:11px;text-align:right}
.preview-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:0}
.preview-card{display:grid;grid-template-columns:190px minmax(0,1fr);min-width:0;border:1px solid #dcd3e0;border-radius:6px;background:#fff;overflow:hidden;animation:none}
.preview-photo{display:flex;flex-direction:column;background:#f0edf2}
.preview-open{display:block;width:100%;padding:0;background:#f0edf2}
.preview-open img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.preview-photo a{display:block;padding:10px;border-top:1px solid #e2dce6;background:#f8f5f9;color:#5f2870;font-size:11px;font-weight:700;text-align:center;text-decoration:none}
.preview-photo a:hover{background:#eee5f0}
.preview-info{display:flex;flex-direction:column;gap:10px;min-width:0;padding:17px 19px}
.preview-status{display:inline-flex;align-self:flex-start;margin:0;padding:3px 7px;border:1px solid #a8d5b9;border-radius:3px;background:#eef9f1;color:#176940;font-size:10px;font-weight:750;letter-spacing:0;text-transform:none}
.preview-status.warning{border-color:#efbb91;background:#fff7ed;color:#87511e}
.preview-source{color:#5e256f;font-size:11px;line-height:1.35;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.preview-reason{margin:0;color:#886439;font-size:11px;line-height:1.4}
.meta-field{display:block;min-width:0}
.meta-field>label{display:block;margin-bottom:4px;color:#65556f;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.045em}
.meta-control{display:flex;align-items:stretch;gap:7px}
.meta-control input,.meta-control textarea{display:block;width:100%;min-width:0;padding:8px 10px;border:1px solid #d4c9d9;border-radius:4px;background:#fff;color:#230b32;font-size:13px;line-height:1.42;resize:vertical}
.meta-control textarea{min-height:132px}
.meta-control button{flex:none;align-self:flex-start;min-height:36px;padding:0 11px;border:1px solid #cbb9d1;border-radius:4px;background:#f7f0f8;color:#5f256f;font-size:11px;font-weight:750}
.meta-control button:hover{background:#ecdeef}
.copy-actions{display:flex;justify-content:flex-end;margin-top:auto}
.copy-actions button,.gallery-more,.retry-errors{min-height:33px;padding:0 11px;border:1px solid #d4c4da;border-radius:4px;background:#fff;color:#5e256f;font-size:11px;font-weight:750}
.copy-actions button:hover,.gallery-more:hover,.retry-errors:hover{background:#f4eaf6}
.gallery-more{margin-top:12px}
.download{margin-top:18px}
.download:not(.show){display:none}
.retry-errors{margin-top:13px}
.note{max-width:850px;margin:0 0 0 2px;color:#82758a;font-size:11px;line-height:1.5}
.error{color:#a92952!important}
.photo-dialog{width:min(92vw,880px);max-height:94vh;padding:18px;border:1px solid #d6c9dc;border-radius:7px;background:#fff;color:#230b32;box-shadow:0 20px 70px #210b3359}
.photo-dialog::backdrop{background:#16041ab8}
.photo-dialog img{display:block;max-width:100%;max-height:75vh;margin:auto;object-fit:contain}
.dialog-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:14px}
.dialog-actions button{padding:10px 15px;border-radius:5px;background:#eee4f0;color:#230b32}
@media(max-width:920px){.workflow{grid-template-columns:1fr;gap:18px}.workflow-rail{position:static;display:flex;align-items:center;gap:18px;padding:15px 20px}.rail-label{display:none}.rail-steps{display:flex;gap:15px;flex:1;margin:0}.rail-steps li,.rail-steps li:last-child{display:flex;gap:6px;padding:0;border:0;white-space:nowrap}.rail-reference,.studio-mascot{display:none}}
@media(max-width:650px){.app-header{height:67px}.brand img{width:100px}.brand{gap:10px}.brand-service{font-size:12px}.brand-divider{height:22px}.header-right .badge{display:none}.header-connection{font-size:0}.header-connection::before{width:9px;height:9px}.workspace{padding-top:22px}.workspace-heading{padding-bottom:21px}h1{font-size:clamp(32px,9vw,45px)}.lead{font-size:13px}.workflow{padding-top:16px}.workflow-rail{padding:10px 13px;overflow-x:auto}.rail-steps{gap:14px}.rail-steps li{font-size:10px}.rail-steps b{font-size:10px}.panel,.status{padding:18px}.step-header{gap:11px;margin-bottom:15px}.panel h2,.status h2{font-size:22px}.panel p{font-size:12px}.key-row{flex-direction:column}.key-row button{width:100%}.label-row{grid-template-columns:45px minmax(0,1fr);gap:8px}.selection-thumb{width:45px;height:45px}.selection-controls{grid-column:2;justify-content:flex-start}.results-head{display:block}.results-head>div{margin-bottom:6px}.results-head p{text-align:left}.preview-card{grid-template-columns:1fr}.preview-photo{display:grid;grid-template-columns:140px 1fr;align-items:center}.preview-open img{width:140px;height:140px;aspect-ratio:auto}.preview-photo a{border:0;text-align:left;background:transparent}.preview-info{padding:15px}.meta-control{display:grid;grid-template-columns:1fr auto}.meta-control textarea{grid-column:1/-1}.meta-control button{grid-column:1/-1;justify-self:start}.progress-foot{display:block}.progress-foot span{display:block}.progress-foot span+span{margin-top:3px}.status-top{gap:9px}.progress-number strong{font-size:29px}}
@media(max-width:370px){.rail-steps{gap:9px}.brand img{width:85px}.preview-photo{grid-template-columns:116px 1fr}.preview-open img{width:116px;height:116px}}
@media(max-width:920px){
  .workflow-rail{display:block;width:100%}
  .rail-steps{display:flex;width:100%;justify-content:space-between;gap:8px}
  .rail-steps li,.rail-steps li:last-child{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;min-width:0;white-space:nowrap;line-height:1.25}
  .rail-steps li span{white-space:nowrap;text-wrap:nowrap}
}
@media(max-width:650px){
  .workspace-heading{display:grid;grid-template-columns:minmax(0,1fr) 78px;align-items:center;gap:8px}
  .heading-copy{min-width:0}
  /* Enlarge the transparent mascot canvas without narrowing the heading copy. */
  .heading-mascot{display:block;width:112px;max-width:none;height:auto;justify-self:end;align-self:center}
  .workflow-rail{overflow:visible;padding:12px 14px}
  .rail-steps{gap:6px}
  .rail-steps li{font-size:11px}
  .rail-steps b{font-size:11px}
  .lead,.panel p,.results-head p{font-size:13px;line-height:1.45}
}
@media(max-width:370px){
  .workspace-heading{grid-template-columns:minmax(0,1fr) 64px}
  .heading-mascot{width:96px}
  .rail-steps{gap:4px}
  .rail-steps li{font-size:9.5px;gap:3px}
}
@media(max-width:650px){
  .preview-card{grid-template-columns:minmax(0,1fr)}
  .preview-photo{display:flex;flex-direction:column;align-items:stretch;background:#fff}
  .preview-open{width:100%}
  .preview-open img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
  .preview-photo a{display:flex;align-items:center;justify-content:center;min-height:46px;margin:12px 14px 14px;padding:8px 16px;border:0;border-radius:5px;background:#fe006e;color:#fff;font-size:13px;font-weight:750;text-align:center}
  .preview-photo a:hover{background:#d6005d;color:#fff}
  .meta-control textarea{min-height:150px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fill,.drop,.primary,.secondary{transition:none}}
