:root{--bg-color: #0f172a;--card-bg: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--accent-primary: #6366f1;--accent-secondary: #8b5cf6;--border-color: #334155;--hover-bg: #334155}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;display:flex;justify-content:center;padding:2rem;background:radial-gradient(circle at top left,#1e1b4b,transparent 40%),radial-gradient(circle at bottom right,#1e1b4b,transparent 40%),var(--bg-color)}.app-container{width:100%;max-width:800px;display:flex;flex-direction:column;gap:3rem}header{text-align:center;animation:fadeInDown .8s ease-out}h1{font-size:3rem;font-weight:800;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem;letter-spacing:-.05em}.subtitle{font-size:1.1rem;color:var(--text-secondary);font-weight:400}.drop-zone{background:#1e293bb3;border:2px dashed var(--border-color);border-radius:1.5rem;padding:4rem 2rem;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;cursor:pointer;position:relative;overflow:hidden}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent-primary);background:#1e293be6;transform:translateY(-2px);box-shadow:0 10px 30px -10px #6366f133}.icon-wrapper{margin-bottom:1.5rem;color:var(--accent-primary)}.drop-zone h2{font-size:1.5rem;margin-bottom:.5rem;font-weight:600}.drop-zone p{color:var(--text-secondary);margin-bottom:1.5rem}.browse-btn{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border:none;padding:.75rem 2rem;border-radius:2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.browse-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.browse-btn:active{transform:translateY(0)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;margin-top:1rem}.image-card{background:var(--card-bg);border-radius:1rem;overflow:hidden;border:1px solid var(--border-color);animation:fadeInUp .5s ease-out forwards;display:flex;flex-direction:column}.image-preview{width:100%;aspect-ratio:1;object-fit:cover;background:#000}.card-actions{padding:1rem;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-color);background:#0f172a80}.file-name{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.download-link{color:var(--accent-primary);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s;display:flex;align-items:center;gap:.25rem}.download-link:hover{color:var(--accent-secondary)}.loader{width:48px;height:48px;border:5px solid var(--border-color);border-bottom-color:var(--accent-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite;margin:1rem auto}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@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)}}.format-selection{display:flex;justify-content:center;gap:1.5rem;margin-top:1.5rem}.radio-label{display:flex;align-items:center;cursor:pointer;font-size:.95rem;color:var(--text-secondary);transition:color .2s;-webkit-user-select:none;user-select:none}.radio-label:hover{color:var(--text-primary)}.radio-label input{display:none}.radio-custom{width:18px;height:18px;border:2px solid var(--border-color);border-radius:50%;margin-right:.5rem;position:relative;transition:all .2s}.radio-label input:checked+.radio-custom{border-color:var(--accent-primary);background:#6366f133}.radio-label input:checked+.radio-custom:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:var(--accent-primary);border-radius:50%}.radio-label input:checked~span{color:var(--text-primary);font-weight:500}
