/* Lightbox Component Styles */ /* Enhanced images cursor */ .lightbox-enabled { cursor: zoom-in; transition: opacity 0.2s ease; } .lightbox-enabled:hover { opacity: 0.9; } /* Lightbox dialog styles */ .lightbox { background-color: rgba(0, 0, 0, 0.9); padding: 2rem; border: none; border-radius: 0; max-width: 95vw; max-height: 95vh; width: auto; height: auto; } .lightbox::backdrop { background-color: rgba(0, 0, 0, 0.8); } .lightbox-content { display: flex; flex-direction: column; align-items: center; max-width: 100%; max-height: 100%; } .lightbox-image { max-width: 100%; max-height: calc(90vh - 4rem); width: auto; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); } .lightbox-caption { color: white; text-align: center; margin-top: 1rem; font-size: 0.9rem; line-height: 1.4; max-width: 600px; } /* Responsive picture elements in lightbox */ .lightbox picture { display: flex; justify-content: center; align-items: center; max-width: 100%; max-height: calc(90vh - 4rem); } .lightbox picture img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; } /* Close button styling (if using Dialog component) */ .lightbox .dialog-close { position: absolute; top: 1rem; right: 1rem; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); color: white; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1.2rem; transition: background-color 0.2s ease; } .lightbox .dialog-close:hover { background: rgba(255, 255, 255, 0.2); } /* Loading state for images */ .lightbox-image[src=""] { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: loading 1.5s infinite; min-width: 200px; min-height: 150px; } @keyframes loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Mobile optimizations */ @media (max-width: 768px) { .lightbox { padding: 1rem; max-width: 98vw; max-height: 98vh; } .lightbox-image { max-height: calc(95vh - 2rem); } .lightbox picture { max-height: calc(95vh - 2rem); } .lightbox-caption { font-size: 0.8rem; margin-top: 0.5rem; } .lightbox .dialog-close { top: 0.5rem; right: 0.5rem; width: 32px; height: 32px; font-size: 1rem; } } /* Focus management for accessibility */ .lightbox:focus { outline: none; } .lightbox-image:focus { outline: 2px solid white; outline-offset: 2px; } /* Animation for lightbox open/close */ .lightbox { animation: lightboxFadeIn 0.3s ease-out; } @keyframes lightboxFadeIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } /* High DPI display optimizations */ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .lightbox-image { image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; } }