.gallery-item{position:relative;overflow:hidden;border-radius:8px;display:block;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.1)}.gallery-item:hover{transform:scale(1);box-shadow:0 8px 16px rgba(0,0,0,.2)}.gallery-item img{width:100%;height:300px;object-fit:cover;transition:transform .3s ease}.gallery-item:hover img{transform:scale(1)}.gallery-item[data-loading]{background:linear-gradient(90deg,var(--color-bg-skeleton) 25%,var(--color-bg-skeleton-dark) 50%,var(--color-bg-skeleton) 75%);background-size:200% 100%;animation:loading 2s infinite}@media(max-width:768px){.gallery-item img{height:200px}}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:2rem}@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}}.gallery-header{text-align:center;margin-bottom:3rem}.gallery-header h1{font-size:3rem;font-weight:700;background:linear-gradient(100deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem}.gallery-header .lead{color:var(--color-text-muted);font-size:1rem;line-height:2}@media(max-width:768px){.gallery-header{margin-bottom:2rem}.gallery-header h1{font-size:2rem}.gallery-header .lead{font-size:1rem}}.fancybox__container{z-index:9999}.gallery-loading{text-align:center;padding:3rem;color:var(--color-text-gray-medium)}.gallery-loading .spinner{display:inline-block;width:40px;height:40px;border:4px solid var(--color-bg-gray-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(400deg)}}