@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Montserrat:wght@300;400;500;600&display=swap";:root{--black: #0a0a0a;--off-white: #ffffff;--warm-cream: #f4f5eb;--gold: #dbe19e;--gold-light: #edf2ca;--charcoal: #2a2a2a;--mid: #8a8e83;--light-border: rgba(219, 225, 158, .25);--shadow: 0 8px 40px rgba(0, 0, 0, .12);--shadow-deep: 0 20px 60px rgba(0, 0, 0, .2)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden}body{font-family:Montserrat,sans-serif;background:var(--black);color:var(--off-white);overscroll-behavior:none}.app{height:100dvh;display:flex;flex-direction:column;max-width:480px;margin:0 auto;position:relative;overflow:hidden;background:var(--black)}.header{display:flex;align-items:center;gap:10px;padding:16px 20px 12px;border-bottom:1px solid var(--light-border);background:var(--black);z-index:10;flex-shrink:0}.brand-logo{height:28px;width:auto;margin-top:-2px}.privacy-disclaimer{font-family:Montserrat,sans-serif;font-size:11px;color:#fff6;margin-top:24px;text-align:center;line-height:1.5;letter-spacing:.02em}.brand-tagline{font-family:Montserrat,sans-serif;font-style:italic;font-size:13px;color:var(--mid);margin-left:auto;letter-spacing:.05em}.error-banner{background:#4a1a1a;color:#ffb3b3;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;font-size:13px;border-bottom:1px solid #6a2020;flex-shrink:0}.error-banner button{background:none;border:none;color:#ffb3b3;font-size:18px;cursor:pointer;padding:0 4px}.screen{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.intro-screen{position:relative;display:flex;flex-direction:column;justify-content:center;padding:40px 28px 20px;background:linear-gradient(160deg,#0a0a0a,#141210 60%,#1a1610);overflow:hidden}.intro-content{position:relative;z-index:2}.intro-eyebrow{font-size:10px;letter-spacing:.35em;color:var(--gold);text-transform:uppercase;margin-bottom:16px}.intro-headline{font-family:Montserrat,sans-serif;font-size:58px;font-weight:300;line-height:1;color:var(--off-white);margin-bottom:20px;letter-spacing:-.01em}.intro-sub{font-size:13px;font-weight:300;color:var(--mid);line-height:1.7;margin-bottom:40px;letter-spacing:.02em}.intro-steps{display:flex;align-items:center;gap:8px;margin-bottom:44px}.intro-step{display:flex;flex-direction:column;gap:4px;flex:1}.step-num{font-size:10px;color:var(--gold);letter-spacing:.1em;font-weight:500}.intro-step span:last-child{font-size:11px;color:var(--mid);letter-spacing:.04em}.intro-step-line{width:20px;height:1px;background:var(--light-border);flex-shrink:0}.cta-btn{width:100%;padding:18px 0;background:var(--gold);color:var(--black);border:none;font-family:Montserrat,sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.cta-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff26;opacity:0;transition:opacity .2s}.cta-btn:hover:after{opacity:1}.cta-btn:disabled{opacity:.4;cursor:not-allowed}.intro-deco{position:absolute;right:-60px;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none}.deco-ring{border-radius:50%;border:1px solid var(--light-border);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ring-1{width:200px;height:200px}.ring-2{width:300px;height:300px;opacity:.6}.ring-3{width:400px;height:400px;opacity:.3}.capture-screen{display:flex;flex-direction:column}.screen-header{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--light-border);flex-shrink:0}.screen-header h2{font-family:Montserrat,sans-serif;font-size:20px;font-weight:400;color:var(--off-white);letter-spacing:.05em}.back-btn{background:none;border:1px solid var(--light-border);color:var(--mid);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s}.back-btn:hover{color:var(--gold);border-color:var(--gold)}.camera-container{flex:1;position:relative;background:#111;overflow:hidden;min-height:0}.camera-feed{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--mid)}.camera-icon{font-size:48px;opacity:.4}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.face-guide{width:160px;height:200px;border:2px solid rgba(201,169,110,.5);border-radius:80px 80px 60px 60px;box-shadow:0 0 0 2000px #00000040}.capture-actions{padding:20px;display:flex;align-items:center;gap:16px;flex-shrink:0;background:var(--black);flex-wrap:wrap}.upload-btn{background:none;border:1px solid var(--light-border);color:var(--mid);padding:10px 16px;font-family:Montserrat,sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s}.upload-btn:hover{color:var(--gold);border-color:var(--gold)}.capture-btn{width:64px;height:64px;border-radius:50%;background:var(--gold);border:none;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;margin:0 auto;transition:transform .15s;flex-shrink:0}.capture-btn:active{transform:scale(.94)}.capture-btn:disabled{opacity:.4;cursor:not-allowed}.capture-ring{width:48px;height:48px;border-radius:50%;background:var(--black);display:block}.capture-hint{width:100%;text-align:center;font-size:11px;color:var(--mid);letter-spacing:.05em}.select-screen{display:flex;flex-direction:column}.user-photo-thumb{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--light-border);flex-shrink:0}.user-photo-thumb img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:1.5px solid var(--gold)}.user-photo-thumb span{font-size:12px;color:var(--mid);letter-spacing:.08em}.empty-catalog{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--mid);text-align:center;padding:40px}.empty-catalog p{font-size:14px}.empty-hint{font-size:12px;opacity:.7}.empty-hint code{color:var(--gold)}.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;flex:1;overflow-y:auto}.dress-card{background:none;border:1px solid var(--light-border);cursor:pointer;padding:0;transition:all .2s;display:flex;flex-direction:column;text-align:left}.dress-card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.dress-img-wrap{position:relative;aspect-ratio:3/4;overflow:hidden;background:#1a1a18}.dress-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.dress-card:hover .dress-img-wrap img{transform:scale(1.04)}.dress-check{position:absolute;top:8px;right:8px;width:24px;height:24px;background:var(--gold);color:var(--black);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.dress-name{display:block;padding:8px 10px;font-size:11px;letter-spacing:.06em;color:var(--warm-cream);font-weight:500;text-transform:uppercase}.select-footer{padding:16px 20px;border-top:1px solid var(--light-border);background:var(--black);flex-shrink:0}.generating-screen{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0a0a0a,#100e0a)}.gen-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}.gen-spinner{width:120px;height:120px;position:relative;display:flex;align-items:center;justify-content:center}.spinner-ring{position:absolute;border-radius:50%;border:1px solid transparent}.s1{width:120px;height:120px;border-top-color:var(--gold);animation:spin 1.2s linear infinite}.s2{width:90px;height:90px;border-right-color:#c9a96e80;animation:spin 1.8s linear infinite reverse}.s3{width:60px;height:60px;border-bottom-color:#c9a96e4d;animation:spin 2.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-logo{font-family:Montserrat,sans-serif;font-size:28px;font-weight:600;color:var(--gold);z-index:1}.gen-title{font-family:Montserrat,sans-serif;font-size:28px;font-weight:300;color:var(--off-white);letter-spacing:.02em}.gen-sub{font-size:12px;color:var(--mid);letter-spacing:.08em}.gen-dots{display:flex;gap:8px}.gen-dots span{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulse 1.4s ease-in-out infinite}.gen-dots span:nth-child(2){animation-delay:.2s}.gen-dots span:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.result-screen{display:flex;flex-direction:column}.result-header{padding:16px 20px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--light-border);flex-shrink:0}.result-badge{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);padding:6px 16px;border:1px solid var(--light-border)}.result-image-wrap{flex:1;position:relative;background:#0d0d0b;overflow:hidden;min-height:0}.result-image{width:100%;height:100%;object-fit:contain;display:block}.result-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 0%,rgba(201,169,110,.04) 50%,transparent 100%);pointer-events:none}.result-dress-info{padding:12px 20px;border-top:1px solid var(--light-border);text-align:center;flex-shrink:0}.result-dress-name{font-family:Montserrat,sans-serif;font-style:italic;font-size:16px;color:var(--warm-cream);letter-spacing:.04em}.result-actions{padding:16px 20px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--light-border);flex-shrink:0}.action-btn{width:100%;padding:15px 0;text-align:center;border:none;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;text-decoration:none;display:block;transition:all .2s}.action-btn.primary{background:var(--gold);color:var(--black)}.action-btn.secondary{background:transparent;color:var(--off-white);border:1px solid var(--light-border)}.action-btn.ghost{background:transparent;color:var(--mid);font-size:10px;padding:10px 0}.action-btn.secondary:hover{border-color:var(--gold);color:var(--gold)}.footer{padding:10px 20px;border-top:1px solid rgba(201,169,110,.1);text-align:center;font-size:10px;color:#6b656099;letter-spacing:.08em;flex-shrink:0}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--light-border);border-radius:2px}
