.masonry-grid{-moz-column-count:2;column-count:2;-moz-column-gap:1rem;column-gap:1rem;-moz-column-break-inside:avoid;break-inside:avoid}@media (min-width:768px){.masonry-grid{-moz-column-count:3;column-count:3}}@media (min-width:1024px){.masonry-grid{-moz-column-count:4;column-count:4}}.image-loading{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.image-hover-overlay{position:absolute;inset:0;background:rgba(0,0,0,0);transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;opacity:0}.image-hover-overlay:hover{background:rgba(0,0,0,.2);opacity:1}.fullscreen-preview{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.thumbnail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem;padding:.5rem 0;overflow-x:auto}.thumbnail-grid::-webkit-scrollbar{height:6px}.thumbnail-grid::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.thumbnail-grid::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px;-webkit-transition:background .2s ease;transition:background .2s ease}.thumbnail-grid::-webkit-scrollbar-thumb:hover{background:#94a3b8}.image-carousel-thumbnails::-webkit-scrollbar{height:6px}.image-carousel-thumbnails::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px;margin:0 8px}.image-carousel-thumbnails::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px;-webkit-transition:all .2s ease;transition:all .2s ease}.image-carousel-thumbnails::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#2563eb,#7c3aed);box-shadow:0 0 6px rgba(59,130,246,.4)}.image-selected{transform:scale(.95);filter:brightness(.8);transition:all .2s ease}.batch-toolbar{transform:translateY(-10px);opacity:0;animation:slideInDown .3s ease forwards}@keyframes slideInDown{to{transform:translateY(0);opacity:1}}.responsive-image-container{position:relative;overflow:hidden;border-radius:.5rem}.responsive-image-container:before{content:"";display:block;padding-top:100%}.responsive-image-container img{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.loading-shimmer{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4) 50%,rgba(255,255,255,0));background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.8);color:white;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1000}.tooltip:hover:after{opacity:1}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:1rem 0}@media (max-width:640px){.image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}}.image-card{transition:all .2s ease;cursor:pointer}.image-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.1)}.image-metadata{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:white;padding:1rem .75rem .75rem;transform:translateY(100%);transition:transform .3s ease}.image-card:hover .image-metadata{transform:translateY(0)}.smooth-scroll{scroll-behavior:smooth}.scroll-hidden{scrollbar-width:none;-ms-overflow-style:none}.scroll-hidden::-webkit-scrollbar{display:none}