.review-entry{text-align:right;margin-bottom:24px}.review-entry a{color:#b6f094;text-decoration:underline}.image-explore-container{padding:var(--spacing-xl) 0 var(--spacing-2xl);min-height:60vh}.image-explore-container .container{max-width:1200px}.loading-state,.error-state,.empty-state{text-align:center;padding:var(--spacing-2xl) 0}.loading-spinner{width:48px;height:48px;border:4px solid rgba(0,123,67,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite,pulse 2s ease-in-out infinite;margin:0 auto var(--spacing-md);box-shadow:0 0 20px #007b4333}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{box-shadow:0 0 20px #007b4333}50%{box-shadow:0 0 40px #007b4366}}.error-message{color:#ef4444;font-size:1.125rem}.masonry-grid{position:relative;width:100%}.masonry-item{position:absolute;cursor:pointer;opacity:0;visibility:hidden;transition:opacity .4s ease-out,visibility 0s .4s}.masonry-item.loaded{opacity:1;visibility:visible;transition:opacity .4s ease-out,visibility 0s 0s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.masonry-item-wrapper{position:relative;overflow:hidden;border-radius:var(--radius-md);border:1px solid rgba(0,123,67,.1);background:var(--color-bg-secondary);transition:all .25s ease;box-shadow:0 2px 8px #0000000a;display:block}.masonry-item:hover .masonry-item-wrapper{border-color:var(--color-primary);box-shadow:0 4px 16px #007b4326;transform:translateY(-2px)}.masonry-item-wrapper img{width:100%;height:auto;display:block;transition:opacity .25s ease}.masonry-item:hover .masonry-item-wrapper img{opacity:.95}.load-more-container{text-align:center;padding:var(--spacing-xl) 0}.lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeInOverlay .3s ease-in-out}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.lightbox-overlay{position:absolute;inset:0;background:#000000f2;backdrop-filter:blur(12px)}.lightbox-content{position:relative;max-width:1200px;max-height:90vh;width:100%;display:flex;flex-direction:column;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid rgba(0,123,67,.2);overflow:hidden;box-shadow:0 20px 60px #007b434d;animation:zoomIn .3s ease-out}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.lightbox-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:40px;height:40px;padding:0;background:#007b43e6;color:#fff;border:none;border-radius:50%;font-size:2rem;font-weight:300;font-family:Arial,sans-serif;line-height:40px;text-align:center;cursor:pointer;z-index:10;transition:all var(--transition-fast)}.lightbox-close:hover{background:var(--color-primary);transform:scale(1.1)}.lightbox-image-container{flex:1 1 auto;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--spacing-lg);min-height:0;position:relative}.lightbox-image-container img{display:block;max-width:calc(100% - var(--spacing-lg) * 2);max-height:calc(90vh - 250px);width:auto;height:auto;object-fit:contain;border-radius:var(--radius-md);opacity:0;transition:opacity .3s ease-in}.lightbox-image-container img.loaded{opacity:1}.lightbox-info{padding:var(--spacing-lg);background:var(--color-bg);border-top:1px solid var(--color-border)}.lightbox-info h3{font-size:1.125rem;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-sm)}.lightbox-meta{font-size:.875rem;color:var(--color-text-secondary);display:flex;gap:var(--spacing-md);flex-wrap:wrap}.lightbox-meta span{display:inline-flex;align-items:center}.lightbox-template-link{display:inline-flex;align-items:center;color:var(--color-primary);font-weight:500;text-decoration:none;padding:4px 12px;border-radius:var(--radius-sm);background:#007b431a;transition:all .2s ease;border:1px solid rgba(0,123,67,.2)}.lightbox-template-link:hover{background:#007b4333;border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 8px #007b4333;text-decoration:none}.lightbox-template-link:active{transform:translateY(0)}
