.gallery-hero{background:url('../assets/images/about-banner.jpg') center/cover no-repeat;color:#065ace;padding:100px 20px}.gallery-hero::before{content:"";position:absolute;inset:0;z-index:1}.gallery-hero h1{font-size:42px;font-family:Barlow,sans-serif;font-weight:700}.gallery-hero p{font-size:20px;font-family:Barlow,sans-serif;font-weight:700;margin-top:10px}@keyframes fadeInUp{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.gallery-section{padding:5rem 2rem;background:#f9fafc}.gallery-grid{column-count:3;column-gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.gallery-item{margin-bottom:20px;position:relative;overflow:hidden;border-radius:14px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 12px rgba(0,0,0,.08)}.gallery-item img,.gallery-item video{width:100%;display:block;border-radius:14px;transition:transform .5s ease}.gallery-item:hover img,.gallery-item:hover video{transform:scale(1.07)}.gallery-item::after{content:"🔍";position:absolute;inset:0;background:rgba(0,0,0,.45);color:#fff;font-size:2rem;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity .4s ease}.gallery-item:hover::after{opacity:1}.lightbox{display:none;position:fixed;z-index:2000;inset:0;background:rgba(0,0,0,.92);justify-content:center;align-items:center;animation:fadeIn .4s ease;padding:20px;box-sizing:border-box}.lightbox-content{max-width:90vw;max-height:90vh;animation:zoomIn .4s ease;display:flex;justify-content:center;align-items:center}.lightbox img,.lightbox video{max-width:100%;max-height:90vh;width:auto;height:auto;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.6);object-fit:contain}.lightbox .close{position:fixed;top:25px;right:35px;font-size:2rem;color:#fff;cursor:pointer;transition:transform .3s ease;z-index:2001}.lightbox .close:hover{transform:scale(1.2)}.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:#fff;font-size:2rem;width:50px;height:50px;display:flex;justify-content:center;align-items:center;cursor:pointer;border-radius:50%;transition:background .3s ease;z-index:2001}.lightbox-nav:hover{background:rgba(0,0,0,.8)}.lightbox-prev{left:20px}.lightbox-next{right:20px}@media (max-width:768px){.lightbox-content{max-width:95vw;max-height:85vh}.lightbox .close{top:15px;right:20px;font-size:1.8rem}.lightbox-nav{width:40px;height:40px;font-size:1.5rem}.lightbox-prev{left:10px}.lightbox-next{right:10px}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes zoomIn{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width:992px){.gallery-grid{column-count:2}.gallery-hero h1{font-size:2.8rem}.gallery-hero p{font-size:1.1rem}}@media (max-width:576px){.gallery-grid{column-count:1}.gallery-hero{height:50vh;padding:1rem}.gallery-hero h1{font-size:2rem}.gallery-hero p{font-size:1rem}}.loading-container{grid-column:1/-1;text-align:center;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loading-text{font-size:1.2rem;color:#333;margin-bottom:.5rem}.loading-subtext{font-size:.9rem;color:#666}.error-container{grid-column:1/-1;text-align:center;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.error-icon{font-size:3rem;margin-bottom:1rem}.error-message{font-size:1.2rem;color:#d32f2f;margin-bottom:1.5rem}.retry-btn{background-color:#3498db;color:#fff;border:none;padding:.8rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .3s}.retry-btn:hover{background-color:#2980b9}.image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:14px;transition:opacity .3s ease}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.lazy-load.loaded{opacity:1;transition:opacity .3s ease}.lazy-load:not(.loaded){opacity:0}