:root{--radius-lg: 1rem;--radius-md: .75rem;--radius-sm: .5rem;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--primary-gradient: linear-gradient(135deg, #ffffff 0%, #d4d4d8 100%);--bg-color: #000000;--bg-gradient: linear-gradient(300deg, #000000 0%, #18181b 50%, #000000 100%);--card-bg: rgba(24, 24, 27, .8);--card-border: 1px solid rgba(255, 255, 255, .15);--text-primary: #ffffff;--text-secondary: #a1a1aa;--input-bg: rgba(39, 39, 42, .6);--input-border: 1px solid rgba(255, 255, 255, .1);--focus-ring: 0 0 0 2px rgba(255, 255, 255, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .3);--btn-text: #000000;--btn-bg: #ffffff;--btn-hover-bg: rgba(255, 255, 255, .9);--btn-shine: linear-gradient(90deg, transparent, rgba(0, 0, 0, .1), transparent);--card-shine: linear-gradient(to right, transparent 0%, rgba(255, 255, 255, .1) 100%);--file-btn-bg: rgba(255, 255, 255, .1);--file-btn-text: #ffffff;--file-btn-border: 1px solid rgba(255, 255, 255, .2);--file-btn-hover-bg: rgba(255, 255, 255, .2)}[data-theme=light]{--primary-gradient: linear-gradient(135deg, #18181b 0%, #3f3f46 100%);--bg-color: #f4f4f5;--bg-gradient: linear-gradient(300deg, #f4f4f5 0%, #e4e4e7 50%, #f4f4f5 100%);--card-bg: rgba(255, 255, 255, .8);--card-border: 1px solid rgba(0, 0, 0, .1);--text-primary: #18181b;--text-secondary: #52525b;--input-bg: rgba(255, 255, 255, .8);--input-border: 1px solid rgba(0, 0, 0, .1);--focus-ring: 0 0 0 2px rgba(24, 24, 27, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--btn-text: #ffffff;--btn-bg: #18181b;--btn-hover-bg: rgba(24, 24, 27, .9);--btn-shine: linear-gradient(90deg, transparent, rgba(255, 255, 255, .2), transparent);--card-shine: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, .05) 100%);--file-btn-bg: rgba(0, 0, 0, .05);--file-btn-text: #18181b;--file-btn-border: 1px solid rgba(0, 0, 0, .1);--file-btn-hover-bg: rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background-color:var(--bg-color);background-image:var(--bg-gradient);background-size:200% 200%;animation:gradientMove 15s ease infinite;color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}@keyframes gradientMove{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b866}.app{width:100%;padding:2rem 1rem;display:flex;justify-content:center;position:relative}.theme-toggle-container{position:absolute;top:1rem;right:1rem;z-index:10}.theme-toggle-btn{background:var(--card-bg);color:var(--text-primary);border:var(--card-border);padding:.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-lg)}.theme-toggle-btn:hover{background:var(--input-bg);transform:translateY(-1px)}.container{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:2rem}.header{text-align:center;margin-bottom:1rem;animation:fadeInDown .8s ease-out}.header h1{font-size:3.5rem;font-weight:800;margin-bottom:.5rem;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.02em;text-shadow:0 0 30px rgba(255,255,255,.2)}.header p{color:var(--text-secondary);font-size:1.125rem;max-width:600px;margin:0 auto}.input-section,.optimized-prompt,.image-card{background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.input-section{padding:2rem;animation:fadeInUp .8s ease-out .2s backwards}.input-group{margin-bottom:1.5rem}.input-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:500;font-size:.95rem}.input-group textarea,.input-group input[type=text],.input-group input[type=number],.file-input{width:100%;padding:1rem;background:var(--input-bg);border:var(--input-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;font-family:inherit;transition:all .2s ease}.input-group textarea:focus,.input-group input:focus,.file-input:focus{outline:none;border-color:#fff;box-shadow:var(--focus-ring);transform:translateY(-1px)}.input-group textarea{min-height:120px;resize:vertical;line-height:1.6}.file-input{cursor:pointer;position:relative}.file-input::file-selector-button{margin-right:1rem;padding:.5rem 1rem;border-radius:var(--radius-sm);background:var(--file-btn-bg);color:var(--file-btn-text);border:var(--file-btn-border);font-weight:600;cursor:pointer;transition:background .2s}.file-input::file-selector-button:hover{background:var(--file-btn-hover-bg)}.image-preview{margin-top:1rem;position:relative;width:fit-content;border-radius:var(--radius-md);overflow:hidden;border:var(--card-border)}.image-preview img{max-width:200px;max-height:200px;display:block}.remove-image-btn{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:50%;background:#0009;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.remove-image-btn:hover{background:#ffffff4d}.generate-btn{width:100%;padding:1rem;background:var(--btn-bg);color:var(--btn-text);border:none;border-radius:var(--radius-md);font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 15px #ffffff26}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #ffffff40;background:var(--btn-hover-bg)}.generate-btn:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--btn-shine);transition:.5s}.generate-btn:hover:after{left:100%}.generate-btn:active:not(:disabled){transform:scale(.98) translateY(0)}.generate-btn:disabled{opacity:.7;cursor:not-allowed;filter:grayscale(.5)}.loading{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:2rem 0;animation:fadeIn .3s ease}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-left-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.loading-text{color:var(--text-secondary);font-size:1rem;letter-spacing:.02em}.optimized-prompt{padding:1.5rem;margin-bottom:2rem;border-left:4px solid #ffffff;animation:slideIn .5s ease-out}.optimized-prompt h3{color:#fff;margin-bottom:.75rem;font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.optimized-prompt p{color:var(--text-secondary);font-size:.95rem;line-height:1.6;background:#0003;padding:1rem;border-radius:var(--radius-sm)}.results-header{text-align:center;margin-bottom:2rem}.results-header h2{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem}.images-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding-bottom:2rem}.image-card{overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;animation:scaleIn .5s cubic-bezier(.175,.885,.32,1.275) backwards}.image-card:hover{transform:translateY(-8px);box-shadow:0 20px 30px -10px #00000080;border-color:#ffffff4d}.image-card:before{content:"";position:absolute;top:0;left:-75%;z-index:2;display:block;width:50%;height:100%;background:var(--card-shine);transform:skew(-25deg);transition:none;pointer-events:none}.image-card:hover:before{animation:shine .75s}@keyframes shine{to{left:125%}}.image-card img{width:100%;height:auto;display:block;transition:transform .5s ease}.image-card:hover img{transform:scale(1.05)}.image-actions{padding:1rem;background:#0f172acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.05)}.download-btn{width:100%;padding:.75rem;background:#ffffff1a;color:var(--text-primary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.download-btn:hover{background:#fff;color:#000}.error{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:1rem;border-radius:var(--radius-md);text-align:center;margin-bottom:1.5rem;animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@media(max-width:640px){.header h1{font-size:2.5rem}.app{padding:1rem}.input-section{padding:1.5rem}}.image-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:flex;justify-content:center;align-items:center;padding:2rem;animation:fadeIn .3s ease-out}.image-modal-content{position:relative;max-width:90vw;max-height:90vh;background:var(--card-bg);border:var(--card-border);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-lg);animation:scaleIn .3s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column;gap:1rem}.image-modal-content img{max-width:100%;max-height:calc(90vh - 100px);object-fit:contain;border-radius:var(--radius-sm);display:block}.modal-close-btn{position:absolute;top:-1.5rem;right:-1.5rem;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:.5rem;line-height:1;transition:transform .2s}.modal-close-btn:hover{transform:scale(1.1)}.modal-actions{display:flex;justify-content:flex-end}@media(max-width:768px){.image-modal-overlay{padding:1rem}.modal-close-btn{top:.5rem;right:.5rem;background:#00000080;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}}.user-welcome{position:absolute;top:1rem;left:1rem;display:flex;align-items:center;gap:1rem;z-index:10;color:var(--text-secondary);font-size:.9rem}.logout-btn{background:transparent;border:1px solid var(--card-border);color:var(--text-primary);padding:.25rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;transition:all .2s}.logout-btn:hover{background:#ef44441a;color:#fca5a5;border-color:#ef44444d}.header{position:relative}@media(max-width:640px){.user-welcome{position:static;justify-content:center;margin-bottom:1rem}}.cursor-effect-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.6}.app{position:relative;z-index:1}body{overflow-x:hidden}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;width:100%;padding:1rem;position:relative;z-index:10}.login-card{background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:2.5rem;width:100%;max-width:400px;animation:scaleIn .5s cubic-bezier(.175,.885,.32,1.275)}.login-card h2{color:var(--text-primary);font-size:2rem;margin-bottom:.5rem;text-align:center}.subtitle{color:var(--text-secondary);text-align:center;margin-bottom:2rem;font-size:.95rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-size:.9rem;font-weight:500}.form-group input{width:100%;padding:.75rem 1rem;background:var(--input-bg);border:var(--input-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#fff;box-shadow:var(--focus-ring);transform:translateY(-1px)}.auth-btn{width:100%;padding:.875rem;background:var(--btn-bg);color:var(--btn-text);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-top:1rem;position:relative;overflow:hidden}.auth-btn:hover{background:var(--btn-hover-bg);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.auth-btn:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--btn-shine);transition:.5s}.auth-btn:hover:after{left:100%}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#fca5a5;padding:.75rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;text-align:center;font-size:.9rem;animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}.auth-switch{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.switch-btn{background:none;border:none;color:var(--text-primary);font-weight:600;cursor:pointer;margin-left:.5rem;text-decoration:underline;text-underline-offset:4px;padding:0}.switch-btn:hover{opacity:.8}
