.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;padding-top:80px;padding-bottom:95px}.gallery-grid button{position:relative;border:var(--photo-mat) solid var(--photo-mat-color);box-shadow:var(--shadow-photo);padding:0;background:#f3dfe7;overflow:hidden;aspect-ratio:4/5;text-align:left;border-radius:var(--photo-radius);cursor:zoom-in}.gallery-grid button:nth-child(4n+1){aspect-ratio:1/1}.gallery-grid img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .36s var(--ease-out),filter .3s}.gallery-grid button:focus-visible img,.gallery-grid button:hover img{transform:scale(1.05);filter:brightness(.85)}.gallery-grid span{position:absolute;left:0;bottom:0;right:0;padding:32px 25px 22px;color:#fff;background:linear-gradient(transparent,#2d1926bf);font-weight:700;font-size:14px;display:flex;justify-content:space-between;align-items:center;transform:translateY(12px);opacity:0;transition:opacity var(--motion-base),transform var(--motion-slow) var(--ease-out)}.gallery-grid button:focus-visible span,.gallery-grid button:hover span{opacity:1;transform:translateY(0)}.gallery-grid button:focus-visible{outline:3px solid var(--pink-text);outline-offset:3px}.gallery-invite{border-top:1px solid #ead9df;padding-top:65px;padding-bottom:95px;display:flex;align-items:center;justify-content:space-between;gap:25px}.gallery-invite h2{font-size:clamp(2.2rem,4vw,3.6rem);letter-spacing:var(--tracking-display);margin:14px 0 0}.gallery-invite h2 em{color:var(--pink)}.lightbox{position:fixed;inset:0;background:#21111df5;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px 30px 25px;color:#fff;animation:lightbox-in var(--motion-base) ease both}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-top{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;letter-spacing:.17em}.lightbox-btn{color:#fff;background:none;border:1px solid #ffffff66;display:grid;place-items:center;width:47px;height:47px;border-radius:var(--radius-sm);transition:background var(--motion-fast),border-color var(--motion-fast)}.lightbox-btn:focus-visible,.lightbox-btn:hover{background:var(--pink-solid);border-color:var(--pink-solid)}.lightbox :focus-visible{outline:2px solid #fff;outline-offset:3px}.lightbox-stage{width:100%;max-width:1250px;min-height:0;flex:1 1;display:flex;align-items:center;justify-content:space-between;gap:24px}.lightbox-stage img{max-height:calc(100dvh - 160px);max-width:calc(100% - 145px);min-width:0;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 60px #0004;animation:gallery-reveal var(--motion-slow) ease both;border-radius:var(--photo-radius)}.lightbox-caption{font-size:14px;text-align:center;margin:8px 0 0;color:#f9d9e8;max-width:70ch}@keyframes gallery-reveal{0%{opacity:.3;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:750px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding-top:55px}.gallery-invite{align-items:flex-start;flex-direction:column}.lightbox{padding:15px}.lightbox-stage{gap:7px}.lightbox-btn{width:44px;height:44px}.lightbox-stage img{max-width:calc(100% - 100px)}}@media(max-width:480px){.gallery-grid{grid-template-columns:1fr}.gallery-grid button,.gallery-grid button:nth-child(4n+1){aspect-ratio:1/1}.gallery-grid span{opacity:1;transform:none}.lightbox-stage{position:relative;justify-content:center}.lightbox-stage img{max-width:100%;max-height:calc(100dvh - 220px)}.lightbox-stage .lightbox-btn{position:absolute;z-index:2;bottom:10px;background:#21111dcc}.lightbox-stage .lightbox-btn:first-child{left:5px}.lightbox-stage .lightbox-btn:last-child{right:5px}}@media(prefers-reduced-motion:reduce){.gallery-grid img,.gallery-grid span,.lightbox,.lightbox-stage img{transition:none;animation:none}}