:root{--ink:#171714;--muted:#77736b;--paper:#f3f0e9;--white:#fbfaf7;--line:#d9d4ca;--gold:#a77b3d;--serif:"Playfair Display",serif;--sans:"DM Sans","Noto Sans SC",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}button,input,select,textarea{font:inherit}.topbar{height:76px;padding:0 4vw;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(243,240,233,.92);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.brand{color:var(--ink);text-decoration:none;font-weight:600;font-size:18px;letter-spacing:.04em}.brand span{font-size:10px;letter-spacing:.28em;margin-left:7px;color:var(--gold)}.topbar-status{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.topbar-status i{width:7px;height:7px;border-radius:50%;background:#aaa}.topbar-status i.is-on{background:#60825a;box-shadow:0 0 0 4px rgba(96,130,90,.12)}button{cursor:pointer}.text-button{border:0;background:none;margin-left:28px;color:var(--ink);font-size:13px}main{padding:0 4vw 80px}.intro{padding:68px 0 50px;display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end}.kicker{color:var(--gold);font-size:10px;font-weight:600;letter-spacing:.24em;margin:0 0 18px}.intro h1{font-family:var(--serif);font-size:clamp(42px,5.2vw,78px);line-height:.98;letter-spacing:-.045em;margin:0;font-weight:600}.intro h1 em{font-weight:600;color:var(--gold)}.intro-copy>p:last-child{max-width:550px;line-height:1.8;color:var(--muted);font-size:14px;margin:28px 0 0}.workflow{display:flex;align-items:center;gap:13px;padding-bottom:10px}.workflow span{display:grid;gap:4px;color:#aaa;font-size:12px;white-space:nowrap;transition:.2s}.workflow span b{font-size:9px;letter-spacing:.12em}.workflow span.is-active{color:var(--ink)}.workflow i{width:48px;height:1px;background:var(--line)}.studio-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.75fr);border-top:1px solid var(--ink);min-height:780px}.source-column{padding-right:4vw}.step-section{padding:36px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.section-heading>div{display:flex;align-items:baseline;gap:14px}.section-heading span,.preview-head span{font-size:9px;color:var(--gold);letter-spacing:.18em;font-weight:600}.section-heading h2,.preview-head h2{font-family:var(--serif);font-size:25px;margin:0}.section-heading p{font-size:11px;color:var(--muted);margin:0}.model-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.model-tile,.model-empty{border:1px solid transparent;background:#e7e3db;aspect-ratio:3/4;position:relative;overflow:hidden;padding:0;transition:transform .25s,border-color .25s}.model-tile:hover,.bag-tile:hover{transform:translateY(-3px)}.model-tile img{width:100%;height:100%;object-fit:cover}.model-tile span{position:absolute;left:9px;top:8px;font-size:9px;background:rgba(251,250,247,.8);padding:4px 6px}.model-tile i,.bag-tile i{display:none;position:absolute;right:9px;top:9px;width:22px;height:22px;background:var(--gold);color:white;border-radius:50%;font-style:normal;font-size:12px;place-items:center}.model-tile.is-selected,.bag-tile.is-selected{border-color:var(--gold)}.model-tile.is-selected i,.bag-tile.is-selected i{display:grid}.model-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);border:1px dashed #bdb7ac}.model-empty span{font-size:28px;font-weight:200}.model-empty strong{font-size:12px;color:var(--ink)}.model-empty small{font-size:10px}.section-actions{display:flex;gap:18px;margin-top:16px}.secondary-button{border:0;background:transparent;padding:0;font-size:11px;border-bottom:1px solid var(--ink);height:25px}.accent-text{color:var(--gold);border-color:var(--gold)}.bag-drop{width:100%;height:132px;border:1px dashed #b9b2a6;background:rgba(251,250,247,.5);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:var(--ink);transition:.2s}.bag-drop:hover{background:var(--white);border-color:var(--gold)}.bag-drop .upload-mark{font-size:23px;color:var(--gold)}.bag-drop strong{font-size:13px}.bag-drop small{font-size:10px;color:var(--muted)}.bag-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:12px}.bag-tile{border:1px solid transparent;background:var(--white);padding:8px;position:relative;transition:.2s}.bag-tile img{width:100%;aspect-ratio:1/1;object-fit:contain;background:white}.bag-tile span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;font-size:10px;margin-top:6px}.settings{display:grid;grid-template-columns:1fr 145px;gap:12px;padding:26px 0}.settings label,dialog label{font-size:10px;color:var(--muted);display:grid;gap:8px}.settings label span{color:#aaa}.settings input,.settings select,dialog textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 0;color:var(--ink);outline:none}.settings input:focus,.settings select:focus,dialog textarea:focus{border-color:var(--gold)}.primary-button{width:100%;height:58px;border:0;background:var(--ink);color:white;padding:0 22px;display:flex;align-items:center;justify-content:space-between;transition:.2s}.primary-button:hover:not(:disabled){background:var(--gold)}.primary-button:disabled{opacity:.35;cursor:not-allowed}.primary-button.is-loading span::after{content:" ···"}.preview-column{border-left:1px solid var(--line);padding:36px 0 0 4vw;position:sticky;top:76px;align-self:start}.preview-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.preview-head>div{display:grid;gap:5px}.preview-head p{font-size:11px;color:var(--muted);margin:0}.preview-stage{position:relative;background:#e8e5de;min-height:600px;max-height:70vh;overflow:hidden}.preview-stage>.model-preview,.preview-stage>.result-image{display:block;width:100%;height:100%;min-height:600px;max-height:70vh;object-fit:contain}.empty-preview{min-height:600px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#999;text-align:center;font-family:var(--serif)}.empty-preview i{font-style:normal;font-family:var(--sans);font-size:30px;font-weight:200}.empty-preview p{line-height:1.6}.bag-reference{position:absolute;right:16px;bottom:16px;background:rgba(251,250,247,.93);padding:9px;width:112px;box-shadow:0 10px 35px rgba(0,0,0,.12)}.bag-reference small{font-size:8px;letter-spacing:.12em;color:var(--muted)}.bag-reference img{display:block;width:100%;aspect-ratio:1;object-fit:contain;margin-top:5px;background:white}.preview-meta{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.preview-meta>div{padding:17px 0}.preview-meta>div+div{border-left:1px solid var(--line);padding-left:20px}.preview-meta small{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.preview-meta strong{font-size:11px}.generating{position:absolute;inset:0;background:rgba(24,24,21,.82);color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px}.generating i{width:32px;height:32px;border:1px solid #777;border-top-color:white;border-radius:50%;animation:spin 1s linear infinite}.generating strong{font-family:var(--serif);font-size:18px}.generating span{font-size:10px;color:#bbb}.download{position:absolute;right:18px;bottom:18px;background:var(--white);color:var(--ink);text-decoration:none;padding:12px 16px;font-size:11px}.history-section{border-top:1px solid var(--ink);margin-top:80px;padding-top:30px}.history-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.history-grid a{position:relative;background:#e5e1d9;aspect-ratio:3/4;overflow:hidden}.history-grid img{width:100%;height:100%;object-fit:cover;transition:.35s}.history-grid a:hover img{transform:scale(1.025)}.history-grid span{position:absolute;bottom:8px;left:8px;background:rgba(251,250,247,.85);color:var(--ink);font-size:9px;padding:5px 7px}.empty-history{font-family:var(--serif);color:var(--muted)}dialog{width:min(480px,90vw);border:0;padding:42px;background:var(--white);box-shadow:0 30px 100px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(23,23,20,.58);backdrop-filter:blur(3px)}dialog h2{font-family:var(--serif);font-size:32px;margin:0 0 12px}dialog>p:nth-of-type(2){color:var(--muted);font-size:12px;line-height:1.7;margin:0 0 28px}dialog label{margin:22px 0}dialog input[type=range]{accent-color:var(--gold)}dialog output{color:var(--ink);font-size:12px}.dialog-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:24px;font-weight:200}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:12px 18px;font-size:11px;opacity:0;pointer-events:none;transition:.25s;z-index:50}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.toast.is-error{background:#8b3f36}.reveal{animation:rise .6s both}.delay-1{animation-delay:.09s}.delay-2{animation-delay:.18s}@keyframes rise{from{opacity:0;transform:translateY(12px)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.intro{grid-template-columns:1fr;padding-top:42px}.workflow{display:none}.studio-grid{grid-template-columns:1fr}.source-column{padding-right:0}.preview-column{position:relative;top:auto;border-left:0;padding-left:0;margin-top:50px}.model-gallery{grid-template-columns:repeat(3,1fr)}.history-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.topbar{padding:0 20px}.topbar-status{display:none}.text-button{margin-left:auto}.intro h1{font-size:43px}main{padding:0 20px 60px}.model-gallery{grid-template-columns:repeat(2,1fr)}.bag-gallery{grid-template-columns:repeat(3,1fr)}.settings{grid-template-columns:1fr}.history-grid{grid-template-columns:repeat(2,1fr)}.preview-stage,.empty-preview,.preview-stage>.model-preview,.preview-stage>.result-image{min-height:480px}dialog{padding:32px 24px}}
