:root{--primary: #b09a6a;--primary-dark: #967f54;--accent: #c4ae7a;--background: #f3eff2;--surface: #ffffff;--text: #3a3538;--text-light: #8a7f85;--border: #d8cdd3;--mauve: #b5a4ae;--success: #4caf50;--error: #c0392b;--overlay: rgba(42, 36, 40, .88)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--background);color:var(--text);line-height:1.5;min-height:100vh;min-height:100dvh}.screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.screen-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif}h1{font-size:1.75rem;font-weight:500;margin-bottom:8px}h2{font-size:1.125rem;font-weight:500;margin-bottom:0}h3{font-size:1rem;font-weight:500;margin-bottom:12px}.subtitle{color:var(--text-light);margin-bottom:32px}.decorative-monogram{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;letter-spacing:.15em;color:var(--primary);margin-bottom:24px}form{width:100%;max-width:320px}input[type=text],input[type=password]{width:100%;padding:16px;font-size:1rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);margin-bottom:16px;transition:border-color .2s,box-shadow .2s;font-family:inherit}input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #b09a6a1f}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;transition:all .2s}button:active{transform:scale(.97)}button[type=submit]{width:100%;padding:16px;background:var(--primary);color:#fff;border-radius:4px;font-weight:600;font-size:.875rem;letter-spacing:.05em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:8px}button[type=submit]:hover{background:var(--primary-dark);box-shadow:0 2px 12px #b09a6a4d}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.link-button{background:none;color:var(--primary);font-weight:500;padding:8px}.link-button:hover{text-decoration:underline}.error{color:var(--error);margin-top:16px;font-size:.875rem}.button-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.main-header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 0 var(--border);position:sticky;top:0;z-index:10}.greeting{font-family:Cormorant Garamond,Georgia,serif;font-weight:500;font-size:1.125rem}.main-content{padding:16px;max-width:1200px;margin:0 auto;width:100%}.upload-section{margin-bottom:32px}.drop-zone{border:1.5px dashed var(--mauve);border-radius:12px;padding:40px 24px;text-align:center;background:var(--surface);cursor:pointer;transition:all .2s;position:relative}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--primary);background:#b09a6a0d}.drop-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.drop-icon{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--mauve);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:1.5rem;color:var(--text-light);font-weight:300}.drop-text{font-weight:600;margin-bottom:4px}.drop-subtext{color:var(--text-light);font-size:.875rem}.drop-zone-processing{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-light);font-size:.875rem}.processing-spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.add-more-button{width:100%;padding:14px;background:var(--surface);border:1.5px dashed var(--mauve);border-radius:8px;color:var(--primary);font-weight:600;font-size:.875rem;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s}.add-more-button:hover{border-color:var(--primary);background:#b09a6a0d}.add-more-icon{font-size:1.25rem;font-weight:300}.upload-queue{margin-top:16px;background:var(--surface);border-radius:12px;padding:16px;border:1px solid var(--border);box-shadow:0 1px 4px #0000000a}.queue-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.queue-item:last-child{border-bottom:none}.queue-item-thumb{width:40px;height:40px;border-radius:4px;object-fit:cover;background:var(--border);flex-shrink:0}.queue-item-info{flex:1;min-width:0}.queue-item-name{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item-badge{font-size:.7rem;color:#b8860b;background:#fff8e1;padding:2px 6px;border-radius:3px;margin-top:2px;display:inline-block}.queue-item-retry-msg{font-size:.7rem;color:var(--error);margin-top:2px}.queue-item-status{display:flex;align-items:center;gap:8px;min-width:80px}.progress-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);transition:width .3s ease}.status-icon{font-size:1rem}.status-icon.success{color:var(--success)}.status-icon.error{color:var(--error)}.retry-button{background:none;color:var(--primary);font-size:.75rem;padding:4px 8px}.gallery-section{margin-top:24px;position:relative}.gallery-section:before{content:"";display:block;width:60px;height:1px;background:var(--mauve);margin:0 auto 24px}.gallery-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.gallery-mode-toggle{display:flex;background:var(--border);border-radius:20px;padding:2px}.mode-button{padding:6px 16px;border-radius:18px;font-size:.75rem;font-weight:600;color:var(--text-light);background:none;transition:all .2s}.mode-button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.gallery-item{aspect-ratio:1;overflow:hidden;border-radius:2px;cursor:pointer;background:var(--border);box-shadow:0 1px 3px #0000000f;position:relative}.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover;transition:transform .2s}.gallery-item:active img,.gallery-item:active video{transform:scale(.95)}@media(hover:hover){.gallery-item:hover img,.gallery-item:hover video{transform:scale(1.05)}}.video-badge{position:absolute;bottom:6px;right:6px;width:28px;height:28px;background:#00000080;border-radius:50%;color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;pointer-events:none}.uploader-section{margin-bottom:24px}.uploader-heading{font-size:1.125rem;margin-bottom:8px}.uploader-count{color:var(--text-light);font-weight:400}.skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.skeleton{aspect-ratio:1;background:linear-gradient(90deg,var(--border) 25%,#f0f0f0 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.gallery-empty{text-align:center;padding:48px 24px;color:var(--text-light)}.empty-icon{font-size:3rem;margin-bottom:16px}.gallery-empty h3{font-size:1.25rem;color:var(--text);margin-bottom:8px}.empty-upload-button{margin-top:16px;padding:10px 24px;background:var(--primary);color:#fff;border-radius:4px;font-weight:600;font-size:.875rem;letter-spacing:.03em}.empty-upload-button:hover{background:var(--primary-dark)}.scroll-sentinel{height:1px}.scroll-loading{display:flex;justify-content:center;padding:24px}.lightbox{position:fixed;inset:0;background:var(--overlay);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s}.lightbox.active{opacity:1;visibility:visible}.lightbox-close{position:absolute;top:16px;right:16px;background:none;color:#fff;font-size:1.5rem;padding:8px;z-index:101}.lightbox-content{max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;transform:scale(.95);transition:transform .2s ease}.lightbox.active .lightbox-content{transform:scale(1)}.lightbox-media-container{position:relative;touch-action:none;display:flex;align-items:center;justify-content:center}.lightbox-media-container img,.lightbox-media-container video{max-width:100%;max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);object-fit:contain;transition:transform .1s ease;transform-origin:center center}.lightbox-info{color:#fff;text-align:center;margin-top:16px}.lightbox-actions{display:flex;gap:16px;justify-content:center;margin-top:12px}.lightbox-action-button{width:44px;height:44px;border-radius:50%;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s}.lightbox-action-button:hover{background:#ffffff40}.lightbox-delete-btn{background:#c0392b66}.lightbox-delete-btn:hover{background:#c0392b99}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;color:#fff;font-size:3rem;padding:16px;opacity:.7}.lightbox-nav:hover{opacity:1}.lightbox-prev{left:8px}.lightbox-next{right:8px}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{background:var(--primary);color:#fff;padding:12px 24px;border-radius:24px;font-size:.875rem;font-weight:500;box-shadow:0 4px 16px #00000026;opacity:0;transform:translateY(20px);animation:toast-in .3s ease forwards;pointer-events:auto}.toast.toast-out{animation:toast-out .3s ease forwards}@keyframes toast-in{to{opacity:1;transform:translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(20px)}}@media(min-width:640px){h1{font-size:2rem}.gallery-grid,.skeleton-grid{grid-template-columns:repeat(6,1fr);gap:8px}.gallery-item{border-radius:8px}.main-content{padding:24px}}@media(min-width:1024px){.gallery-grid,.skeleton-grid{grid-template-columns:repeat(8,1fr)}}
