@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#252220;background:#f6f3f1;font-synthesis:none;--paper: #fffdfb;--ink: #252220;--muted: #817a75;--line: #e6dfda;--rose: #b34467;--rose-dark: #8e2f50;--rose-soft: #f6e8ed;--shadow: 0 18px 55px rgba(72, 48, 41, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 8% 4%,rgba(192,133,150,.12),transparent 28rem),#f6f3f1}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,p{margin-top:0}.eyebrow{color:var(--rose);font-size:.7rem;font-weight:700;letter-spacing:.17em}.splash,.empty-state{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted);text-align:center}.spinner{width:30px;height:30px;border:3px solid #eadde1;border-top-color:var(--rose);border-radius:50%;animation:spin .8s linear infinite}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar{position:sticky;top:0;z-index:30;height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4vw;border-bottom:1px solid rgba(219,210,204,.85);background:#fffdfbe0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand,.intro-brand{display:inline-flex;align-items:center;gap:.7rem;font-weight:700}.brand>span:last-child{display:flex;flex-direction:column}.brand small{color:var(--muted);font-size:.64rem;font-weight:500}.brand-mark{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#d36a88,#92304f);box-shadow:0 7px 18px #b3446740}.main-nav{display:flex;align-items:center;gap:.35rem;padding:.28rem;border:1px solid var(--line);border-radius:999px;background:#f8f5f3}.main-nav a{display:flex;align-items:center;gap:.4rem;padding:.55rem 1rem;color:var(--muted);border-radius:999px;font-size:.82rem;font-weight:600}.main-nav a.active{color:var(--ink);background:#fff;box-shadow:0 3px 12px #3d2d2714}.user-menu{justify-self:end;display:flex;align-items:center;gap:.6rem;font-size:.82rem}.avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:var(--rose-dark);background:var(--rose-soft);font-weight:700}.icon-button{width:36px;height:36px;display:inline-grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer}.icon-button:hover{border-color:#cbbdb6}.page-container{width:min(1440px,92vw);margin:0 auto;padding:3.2rem 0 5rem}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.2rem}.page-heading h1{margin:.3rem 0 .55rem;font-size:clamp(1.8rem,3vw,2.75rem);letter-spacing:-.04em}.page-heading p{margin-bottom:0;color:var(--muted)}.step-indicator{display:flex;align-items:center;gap:.45rem}.step-indicator span{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:#a49c97;background:var(--paper);font-size:.75rem;font-weight:700}.step-indicator span.active,.step-indicator span.done{color:#fff;border-color:var(--rose);background:var(--rose)}.step-indicator i{width:30px;height:1px;background:var(--line)}.image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.image-panel,.settings-card,.design-summary,.generation-progress,.result-card{border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow)}.image-panel{padding:1.25rem}.panel-heading,.settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-heading h2,.settings-heading h2{margin:.22rem 0 0;font-size:1.05rem}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:0;border:0;color:var(--rose);background:transparent;font-size:.8rem;font-weight:600;cursor:pointer}.upload-zone{width:100%;min-height:365px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;border:1.5px dashed #d9cbc5;border-radius:14px;color:var(--rose);background:linear-gradient(135deg,#fff6,#f6e8ed73),#faf8f7;cursor:pointer}.upload-zone span{color:var(--muted);font-size:.75rem}.region-canvas{position:relative;overflow:hidden;width:fit-content;max-width:100%;margin:auto;border-radius:12px;background:#eae5e2;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.region-canvas.preview-only{cursor:default;touch-action:auto}.region-canvas img{width:100%;max-height:520px;object-fit:contain;pointer-events:none}.canvas-shade{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 9999px #1e191712}.selection-box{position:absolute;border:2px solid #fff;outline:2px solid var(--rose);background:#b3446714;box-shadow:0 0 0 9999px #1a16145c;pointer-events:none}.selection-box:before,.selection-box:after{content:"";position:absolute;width:8px;height:8px;border:2px solid white;background:var(--rose);border-radius:50%}.selection-box:before{left:-6px;top:-6px}.selection-box:after{right:-6px;bottom:-6px}.selection-label{position:absolute;left:0;bottom:calc(100% + 7px);padding:.25rem .45rem;border-radius:5px;color:#fff;background:var(--rose);font-size:.65rem;white-space:nowrap}.selection-help{display:flex;justify-content:space-between;gap:1rem;padding-top:.8rem;color:var(--muted);font-size:.75rem}.selection-help>span{display:flex;align-items:center;gap:.4rem}.field-error,.form-error,.warning-message{margin:.75rem 0 0;color:#a52542;font-size:.8rem}.warning-message{padding:.9rem 1rem;border:1px solid #eed2a8;border-radius:10px;color:#8a5511;background:#fff8eb}.settings-card{margin-top:1.25rem;padding:1.5rem}.output-pill,.status-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .7rem;border-radius:999px;color:var(--rose-dark);background:var(--rose-soft);font-size:.72rem;font-weight:700}.type-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem}.type-card{min-height:84px;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:#faf8f7;text-align:left;cursor:pointer}.type-card strong{font-size:.82rem}.type-card span{color:var(--muted);font-size:.68rem;line-height:1.5}.type-card.selected{border-color:var(--rose);color:var(--rose-dark);background:var(--rose-soft);box-shadow:inset 0 0 0 1px var(--rose)}.prompt-field{position:relative;display:block;margin-top:1.2rem;font-size:.82rem;font-weight:600}.prompt-field textarea{width:100%;min-height:112px;display:block;resize:vertical;margin-top:.5rem;padding:.9rem 1rem 1.7rem;border:1px solid var(--line);border-radius:12px;outline:none;color:var(--ink);background:#faf8f7;line-height:1.7}.prompt-field textarea:focus,.login-card input:focus{border-color:var(--rose);box-shadow:0 0 0 3px #b344671a}.prompt-field>span{position:absolute;right:.8rem;bottom:.55rem;color:#aaa29d;font-size:.66rem}.generation-footer,.result-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.2rem}.generation-footer p,.result-footer p{display:flex;align-items:center;gap:.45rem;margin:0;color:var(--muted);font-size:.75rem}.primary-button,.secondary-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.7rem 1.15rem;border:1px solid transparent;border-radius:10px;font-weight:700;cursor:pointer}.primary-button{color:#fff;background:linear-gradient(135deg,#c25275,#92304f);box-shadow:0 8px 22px #972f5133}.primary-button:disabled{color:#aaa29d;background:#e6e0dc;box-shadow:none;cursor:not-allowed}.secondary-button{border-color:var(--line);background:#fff}.compact-button{min-height:40px;padding:.58rem .9rem;font-size:.8rem}.align-right{text-align:right}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-intro{position:relative;overflow:hidden;min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);color:#fff;background:linear-gradient(135deg,#441929e6,#6a253db8),radial-gradient(circle at 80% 20%,#da829c,transparent 35rem),#71304a}.login-intro:after{content:"";position:absolute;right:-12vw;bottom:-22vw;width:48vw;height:48vw;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 6vw #ffffff09,0 0 0 13vw #ffffff06}.login-intro .brand-mark{background:#ffffff29;box-shadow:none}.intro-copy{position:relative;z-index:1;max-width:700px}.intro-copy .eyebrow{color:#f2c6d3}.intro-copy h1{max-width:650px;margin:1rem 0 1.4rem;font-size:clamp(2.5rem,5vw,5rem);line-height:1.08;letter-spacing:-.06em}.intro-copy p{max-width:560px;color:#ffffffb8;font-size:1rem;line-height:1.9}.intro-feature{position:relative;z-index:1;display:flex;align-items:center;gap:.7rem;color:#ffffffc7;font-size:.82rem}.login-card-wrap{display:grid;place-items:center;padding:2rem}.login-card{width:min(420px,100%);display:flex;flex-direction:column;gap:1.2rem;padding:2rem;border:1px solid var(--line);border-radius:20px;background:#fffdfbe6;box-shadow:var(--shadow)}.login-card h2{margin:.35rem 0;font-size:1.65rem}.login-card p{color:var(--muted);font-size:.8rem}.login-card label{display:flex;flex-direction:column;gap:.45rem;font-size:.78rem;font-weight:600}.login-card input{height:46px;padding:0 .9rem;border:1px solid var(--line);border-radius:10px;outline:none;background:#faf8f7}.login-button{width:100%;margin-top:.3rem}.history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.history-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:var(--shadow)}.history-cover{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;padding:0;border:0;background:#eee8e5;cursor:pointer}.history-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.history-card:hover .history-cover img{transform:scale(1.025)}.status-badge{position:absolute;right:.75rem;top:.75rem;color:#555;background:#ffffffeb}.status-completed{color:#26774b}.status-failed{color:#a52542}.history-content{padding:1rem}.history-content h2{overflow:hidden;margin:.35rem 0;font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}.history-content p{color:var(--muted);font-size:.72rem}.history-actions{display:flex;align-items:center;justify-content:space-between}.icon-button.danger{color:#a52542}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.status-line{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.78rem;font-weight:600}.status-pulse{width:8px;height:8px;border-radius:50%;background:var(--rose);box-shadow:0 0 #b3446780;animation:pulse 1.6s infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px #b3446700}to{box-shadow:0 0 #b3446700}}.design-summary{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem}.design-summary h1{margin:.35rem 0 .6rem;font-size:clamp(1.5rem,3vw,2.35rem)}.design-summary p{max-width:700px;margin-bottom:0;color:var(--muted)}.reference-strip{display:flex;gap:.7rem;margin:0}.reference-strip figure{position:relative;width:112px;aspect-ratio:1;overflow:hidden;margin:0;border-radius:10px;background:#eee8e5}.reference-strip img{width:100%;height:100%;object-fit:cover}.reference-strip figcaption{position:absolute;inset:auto 0 0;padding:.35rem;color:#fff;background:linear-gradient(transparent,#000000b8);font-size:.66rem;text-align:center}.generation-progress{position:relative;overflow:hidden;display:flex;align-items:center;gap:1rem;margin-top:1rem;padding:1rem 1.2rem}.generation-orb{width:50px;height:50px;display:grid;place-items:center;flex:none;border-radius:50%;color:var(--rose);background:var(--rose-soft)}.generation-progress h2{margin-bottom:.25rem;font-size:.95rem}.generation-progress p{margin:0;color:var(--muted);font-size:.75rem}.progress-track{position:absolute;left:0;right:0;bottom:0;height:3px;background:#eee7e3}.progress-track span{display:block;width:35%;height:100%;background:linear-gradient(90deg,transparent,var(--rose),transparent);animation:progress 1.5s ease-in-out infinite}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(350%)}}.results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.result-card{overflow:hidden}.result-heading{display:flex;align-items:center;gap:.8rem;padding:1rem}.result-number{color:#cbbfba;font-size:1.3rem;font-weight:700}.result-heading h2{margin:0 0 .18rem;font-size:.95rem}.result-heading p{margin:0;color:var(--muted);font-size:.68rem}.result-image{display:block;overflow:hidden;aspect-ratio:1 / 1;background:#eee8e5}.result-image img{width:100%;height:100%;object-fit:contain}.result-actions{display:flex;align-items:center;gap:.5rem;padding:.8rem}.result-actions .secondary-button{min-height:38px;padding:.5rem .75rem;font-size:.75rem}.favorite.active{color:var(--rose);border-color:#d9a3b4;background:var(--rose-soft)}.continue-button{margin-left:auto}.result-placeholder{min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted);background:#f5f1ef;font-size:.75rem}.shimmer-block{width:70%;aspect-ratio:1;border-radius:12px;background:linear-gradient(110deg,#e9e2df 8%,#f7f4f2 18%,#e9e2df 33%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position-x:-200%}}.result-footer{padding:1.1rem 0}@media(max-width:980px){.type-grid{grid-template-columns:repeat(3,1fr)}.history-grid,.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr}.login-intro{min-height:42vh}.login-card-wrap{min-height:58vh}}@media(max-width:720px){.topbar{height:64px;grid-template-columns:1fr auto;padding:0 1rem}.brand small,.username{display:none}.main-nav{position:fixed;z-index:40;left:50%;bottom:calc(.75rem + env(safe-area-inset-bottom));transform:translate(-50%);box-shadow:0 10px 35px #2e211d33}.user-menu{grid-column:2;grid-row:1}.page-container{width:min(100% - 1.25rem,680px);padding:2rem 0 6.5rem}.page-heading,.design-summary,.generation-footer,.result-footer{align-items:flex-start;flex-direction:column}.page-heading{margin-bottom:1.4rem}.step-indicator{display:none}.image-grid,.results-grid,.history-grid{grid-template-columns:1fr}.upload-zone{min-height:280px}.type-grid{grid-template-columns:repeat(2,1fr)}.generate-button,.result-footer .primary-button{width:100%}.login-intro{min-height:38vh;padding:1.5rem}.intro-copy h1{font-size:2.35rem}.intro-copy p,.intro-feature{display:none}.login-card-wrap{min-height:62vh;padding:1.25rem}.login-card{padding:1.4rem}.reference-strip{width:100%}.reference-strip figure{width:50%}.result-placeholder{min-height:280px}}
