:root{--bg-primary:#0a0a0f;--bg-secondary:#ffffff08;--glass-bg:#14141999;--glass-border:#ffffff14;--text-primary:#fff;--text-secondary:#a0a0ab;--accent-primary:#8b5cf6;--accent-secondary:#ec4899;--accent-tertiary:#3b82f6;--error:#ef4444;--success:#10b981;--font-main:"Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--shadow-glow:0 0 40px #8b5cf64d}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-main);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.blob{filter:blur(80px);z-index:-1;opacity:.6;animation:20s ease-in-out infinite float;position:absolute}.shape-1{background:radial-gradient(circle, var(--accent-primary) 0%, transparent 70%);width:400px;height:400px;animation-delay:0s;top:-100px;left:-100px}.shape-2{background:radial-gradient(circle, var(--accent-secondary) 0%, transparent 70%);width:300px;height:300px;animation-duration:25s;bottom:-50px;right:-50px}.shape-3{background:radial-gradient(circle, var(--accent-tertiary) 0%, transparent 70%);width:350px;height:350px;animation-duration:22s;animation-delay:-5s;top:40%;left:60%}@keyframes float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}}.container{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);width:90%;max-width:800px;box-shadow:0 25px 50px -12px #00000080, var(--shadow-glow);z-index:1;border-radius:24px;padding:40px}header{text-align:center;margin-bottom:40px}h1{background:linear-gradient(90deg,#e2e8f0,#fff);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;margin-bottom:8px;font-size:2.5rem;font-weight:700}.subtitle{color:var(--text-secondary);font-size:1.1rem;font-weight:300}.upload-section{background:var(--bg-secondary);border:2px dashed var(--glass-border);border-radius:16px;margin-bottom:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.upload-section:hover,.upload-section.dragover{border-color:var(--accent-primary);background:#8b5cf60d}.upload-label{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:20px;display:flex}.upload-label .icon{margin-bottom:16px;font-size:3rem;transition:transform .3s}.upload-section:hover .icon{transform:scale(1.1)translateY(-5px)}.upload-label p{color:var(--text-secondary);font-size:1.1rem}.highlight{color:var(--accent-primary);font-weight:500}#image-preview{object-fit:contain;border-radius:8px;max-width:100%;max-height:300px;animation:.4s ease-out fadeIn;box-shadow:0 10px 25px #0000004d}.input-section{flex-direction:column;gap:16px;margin-bottom:30px;display:flex}textarea{background:var(--bg-secondary);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);resize:vertical;border-radius:12px;padding:16px;font-family:inherit;font-size:1rem;transition:border-color .3s,box-shadow .3s}textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #8b5cf633}button{background:linear-gradient(135deg, var(--accent-primary), var(--accent-tertiary));color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;padding:16px 24px;font-family:inherit;font-size:1.1rem;font-weight:500;transition:transform .2s,box-shadow .2s,opacity .2s;display:flex}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #8b5cf666}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;background:#3f3f46}.result-section{position:relative}.status-indicator{height:20px;color:var(--accent-primary);margin-bottom:8px;font-size:.9rem;font-weight:500}.result-output{border:1px solid var(--glass-border);white-space:pre-wrap;background:#0003;border-radius:12px;min-height:100px;padding:24px;font-size:1.05rem;line-height:1.6}.result-output.placeholder{color:var(--text-secondary);text-align:center;justify-content:center;align-items:center;font-style:italic;display:flex}.loader{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:1s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-output h1,.result-output h2,.result-output h3{color:#fff;margin-top:1em;margin-bottom:.5em}.result-output p{margin-bottom:1em}.result-output ul{margin-bottom:1em;padding-left:20px}@media (width<=600px){.container{padding:20px}h1{font-size:2rem}}
