.gallery-page{min-height:100vh;background:var(--sage-green);padding-bottom:4rem}.gallery-main{padding-top:clamp(6rem,16vh,8rem);padding-left:clamp(1rem,3vw,3rem);padding-right:clamp(1rem,3vw,3rem);max-width:1600px;margin:0 auto}.gallery-header{text-align:center;margin-bottom:clamp(2rem,4vh,3rem);animation:fadeInUp .8s cubic-bezier(.16,1,.3,1)}.gallery-subtitle{font-size:clamp(1rem,2vw,1.25rem);font-weight:400;color:var(--text-dark);opacity:.7;letter-spacing:.03em;font-style:italic;margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:clamp(1rem,2vw,2rem);gap:clamp(1rem,2vw,2rem);animation:fadeIn .8s cubic-bezier(.16,1,.3,1) .3s both}@media (max-width:640px){.gallery-grid{grid-template-columns:1fr}}@media (min-width:641px) and (max-width:1024px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1025px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}.gallery-item{cursor:pointer;opacity:0;animation:fadeInUp .6s cubic-bezier(.16,1,.3,1) both;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.gallery-item,.gallery-item-inner{position:relative;border-radius:clamp(.75rem,1.5vw,1.25rem);overflow:hidden}.gallery-item-inner{width:100%;aspect-ratio:4/5}.gallery-image{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1)}.gallery-overlay{position:absolute;inset:0;background:rgba(45,37,32,.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .4s cubic-bezier(.16,1,.3,1)}.gallery-view-text{color:white;font-size:clamp(1rem,1.5vw,1.125rem);font-weight:400;letter-spacing:.1em;text-transform:uppercase;transform:translateY(10px);transition:transform .4s cubic-bezier(.16,1,.3,1)}@media (hover:hover) and (pointer:fine){.gallery-item:hover .gallery-image{transform:scale(1.08)}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-item:hover .gallery-view-text{transform:translateY(0)}}@media (hover:none) and (pointer:coarse){.gallery-item:active .gallery-image{transform:scale(1.05)}}.gallery-empty{text-align:center;padding:4rem 2rem;font-size:clamp(1rem,1.5vw,1.125rem);color:var(--text-dark);opacity:.6;font-style:italic}.lightbox{position:fixed;inset:0;background:rgba(45,37,32,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:9999;padding:clamp(1rem,3vw,3rem);animation:fadeIn .3s ease-out}.lightbox,.lightbox-close{display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-close{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:50%;width:48px;height:48px;color:white;transition:all .3s cubic-bezier(.16,1,.3,1);z-index:10000}.lightbox-close:hover{background:rgba(255,255,255,.2);transform:scale(1.1) rotate(90deg)}.lightbox-close:active{transform:scale(.95)}.lightbox-content{max-width:90vw;max-height:90vh;position:relative;cursor:default;animation:scaleIn .4s cubic-bezier(.16,1,.3,1)}.lightbox-image{max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:clamp(.5rem,1vw,1rem);box-shadow:0 20px 60px rgba(0,0,0,.5)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}body:has(.lightbox){overflow:hidden}