@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;min-width:320px}#root{min-height:100vh}a{text-decoration:none;color:inherit}button{font-family:inherit}img{max-width:100%;height:auto}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0b;--bg-secondary: #111113;--bg-tertiary: #1a1a1d;--text-primary: #ffffff;--text-secondary: #a0a0a5;--text-muted: #606065;--accent: #7c5cff;--accent-hover: #9178ff;--accent-glow: rgba(124, 92, 255, .3);--border: #2a2a2e;--success: #22c55e;--error: #ef4444}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f8f8fa;--bg-tertiary: #f0f0f3;--text-primary: #111113;--text-secondary: #606065;--text-muted: #909095;--border: #e0e0e5;--accent-glow: rgba(124, 92, 255, .15)}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.header{padding:2rem;text-align:center;border-bottom:1px solid var(--border);position:relative}.theme-toggle{position:absolute;top:1.5rem;right:1.5rem;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);width:40px;height:40px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.theme-toggle:hover{color:var(--text-primary);border-color:var(--accent)}.logo{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.logo-icon{color:var(--accent)}.tagline{margin-top:.5rem;color:var(--text-secondary);font-size:.95rem}.main{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.upload-section{margin-bottom:2rem}.upload-zone{border:2px dashed var(--border);border-radius:16px;padding:3rem;text-align:center;transition:all .3s;background:var(--bg-secondary);max-width:500px;margin:0 auto}.upload-zone:hover,.upload-zone.drag-active{border-color:var(--accent);background:var(--bg-tertiary)}.upload-zone.has-image{border-style:solid;padding:1.5rem}.upload-label{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-icon{width:48px;height:48px;color:var(--text-muted)}.upload-text{font-size:1rem;color:var(--text-primary)}.upload-hint{font-size:.85rem;color:var(--text-muted)}.preview-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.preview-image{max-width:200px;max-height:200px;object-fit:contain;border-radius:8px}.change-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.85rem;transition:all .2s}.change-btn:hover{color:var(--text-primary);border-color:var(--accent)}.analyzing{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem;color:var(--text-secondary);font-size:.9rem}.analysis-result{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem}.analysis-badge{background:#22c55e26;color:var(--success);padding:.35rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.analysis-text{color:var(--text-secondary);font-size:.85rem}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.color-section{max-width:500px;margin:0 auto 1.5rem}.color-header{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.9rem;margin-bottom:.75rem}.color-options{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.color-option{display:flex;align-items:center;justify-content:center;padding:.75rem .5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.color-option:hover{border-color:var(--accent)}.color-option.active{border-color:var(--accent);background:var(--bg-tertiary);box-shadow:0 0 0 2px var(--accent-glow)}.color-label{font-size:.85rem;color:var(--text-secondary)}.color-option.active .color-label{color:var(--text-primary)}.quick-generate-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;max-width:400px;margin:0 auto 2rem;padding:1rem 2rem;background:linear-gradient(135deg,var(--accent),#9178ff);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px var(--accent-glow)}.quick-generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 30px var(--accent-glow)}.quick-generate-btn:disabled{opacity:.7;cursor:not-allowed}.results-section{margin-top:2rem}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.results-header h2{font-size:1.25rem;font-weight:600}.download-all-btn{display:flex;align-items:center;gap:.5rem;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:.6rem 1rem;border-radius:8px;cursor:pointer;font-size:.85rem;transition:all .2s}.download-all-btn:hover{border-color:var(--accent);color:var(--accent)}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.result-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:all .3s}.result-card:hover{border-color:var(--accent);transform:translateY(-2px)}.result-image{aspect-ratio:1;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;overflow:hidden}.result-image img{width:100%;height:100%;object-fit:cover}.loading-placeholder,.error-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-muted);font-size:.9rem;padding:2rem;text-align:center}.error-placeholder{color:var(--error)}.error-placeholder small{color:var(--text-muted);font-size:.75rem}.result-info{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border)}.result-number{color:var(--text-muted);font-size:.8rem;font-weight:500}.result-name{flex:1;font-size:.9rem;font-weight:500}.render-mode-badge{background:linear-gradient(135deg,var(--accent),#9178ff);color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.65rem;font-weight:700;letter-spacing:.02em}.download-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.download-btn:hover{color:var(--accent);border-color:var(--accent)}.footer{padding:1.5rem;text-align:center;border-top:1px solid var(--border);color:var(--text-muted);font-size:.85rem}@media(max-width:640px){.main{padding:1rem}.upload-zone{padding:2rem 1rem}.color-options{grid-template-columns:repeat(2,1fr)}.results-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.result-info{padding:.5rem .75rem}.result-name{font-size:.8rem}}.error-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.error-modal{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:32px;max-width:400px;width:90%;text-align:center;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.error-modal-icon{font-size:48px;margin-bottom:16px}.error-modal-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:12px}.error-modal-message{font-size:15px;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.error-modal-btn{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;padding:12px 32px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.error-modal-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #6366f166}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
