:root{--primary-color:#4f46e5;--primary-hover:#4338ca;--error-color:#ef4444;--success-color:#10b981;--text-color:#1f2937;--text-light:#6b7280;--bg-color:#f9fafb;--border-color:#e5e7eb;--card-bg:#ffffff;--shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--transition:all 0.3s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Inter",sans-serif;background-color:var(--bg-color);color:var(--text-color);line-height:1.5;padding:2rem;min-height:100vh;flex-direction:column}.container{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:2rem;flex:1}.upload-container{width:100%}.upload-area{background-color:var(--card-bg);border:2px dashed var(--border-color);border-radius:12px;padding:2rem;text-align:center;transition:var(--transition);position:relative;overflow:hidden;box-shadow:var(--shadow)}.upload-area.drag-over{border-color:var(--primary-color);background-color:rgba(79,70,229,0.05);transform:scale(1.02)}.upload-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-icon{color:var(--primary-color);animation:float 3s ease-in-out infinite}@keyframes float{0%{transform:translateY(0px)}50%{transform:translateY(-10px)}100%{transform:translateY(0px)}}.upload-area h3{font-size:1.5rem;font-weight:600;margin-bottom:0.5rem}.upload-area p{color:var(--text-light);margin-bottom:0.5rem}.file-input-label{background-color:var(--primary-color);color:white;padding:0.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:500;transition:var(--transition);display:inline-block;margin:1rem 0}.file-input-label:hover{background-color:var(--primary-hover);transform:translateY(-2px)}.file-types{font-size:0.875rem;color:var(--text-light)}.upload-progress{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.9);display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:var(--transition)}.upload-progress.active{opacity:1;visibility:visible}.progress-container{width:80%;height:8px;background-color:var(--border-color);border-radius:4px;overflow:hidden;margin-bottom:1rem}.progress-bar{height:100%;width:0;background-color:var(--primary-color);border-radius:4px;transition:width 0.3s ease}.progress-text{font-weight:500}.gallery{background-color:var(--card-bg);border-radius:12px;padding:2rem;box-shadow:var(--shadow)}.gallery h3{font-size:1.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:0.75rem}.gallery-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.gallery-item{position:relative;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);transition:var(--transition);animation:fadeIn 0.5s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gallery-item:hover{transform:translateY(-5px)}.gallery-item img{width:100%;height:200px;object-fit:cover;display:block}.gallery-item-info{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(to top,rgba(0,0,0,0.7),transparent);color:white;padding:0.75rem;font-size:0.875rem;transform:translateY(100%);transition:var(--transition);display:flex;flex-direction:column;gap:0.5rem}.gallery-item:hover .gallery-item-info{transform:translateY(0)}.gallery-item-actions{display:flex;gap:0.5rem;margin-top:0.5rem}.gallery-action-btn{background-color:rgba(255,255,255,0.2);color:white;border:none;border-radius:4px;padding:0.4rem 0.75rem;font-size:0.75rem;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:0.25rem}.gallery-action-btn:hover{background-color:rgba(255,255,255,0.3)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.5);backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;visibility:hidden;transition:var(--transition)}.modal.active{opacity:1;visibility:visible}.modal-content{background-color:var(--card-bg);border-radius:12px;padding:2rem;width:90%;max-width:500px;box-shadow:var(--shadow);transform:scale(0.9);transition:var(--transition);animation:shake 0.5s ease-in-out}.modal.active .modal-content{transform:scale(1)}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.modal-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.error-icon{color:var(--error-color)}.modal-content h3{font-size:1.25rem;color:var(--error-color)}.modal-content p{margin-bottom:1.5rem}.close-modal{background-color:var(--primary-color);color:white;border:none;padding:0.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:500;transition:var(--transition);width:100%}.close-modal:hover{background-color:var(--primary-hover)}.notification{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-20px);background-color:var(--primary-color);color:white;padding:0.75rem 1.5rem;border-radius:8px;box-shadow:var(--shadow);opacity:0;visibility:visible;transition:var(--transition);z-index:1000;font-weight:500}.notification.active{opacity:1;transform:translateX(-50%) translateY(0)}.footer{margin-top:2rem;padding:1rem 0;text-align:center}.footer-content{max-width:1200px;margin:0 auto}.footer p{color:var(--text-light);font-size:0.875rem}.footer p a{text-decoration:none}@media (max-width:768px){body{padding:1rem}.upload-area{padding:1.5rem}.upload-area h3{font-size:1.25rem}.gallery-container{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (max-width:480px){.gallery-container{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.gallery-item img{height:150px}}