.life-photos{padding-bottom:clamp(48px,6vw,85px)}
.mht-life-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2.4vw,32px);margin:0 auto;max-width:1280px}
.mht-life-gallery a{display:block;position:relative;text-decoration:none;overflow:hidden;background:var(--sage,#e3e7d9)}
.mht-life-gallery img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;transition:transform .35s ease}
.mht-life-gallery a:hover img{transform:scale(1.025)}
.mht-life-gallery a:focus-visible{outline:3px solid var(--forest,#0d5e4e);outline-offset:5px}
.mht-life-gallery .life-open{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:40px;height:40px;background:var(--accent,#ccde6a);color:var(--ink,#123f36);border-radius:50%;font-size:25px;line-height:1;opacity:0;transition:opacity .2s ease}
.mht-life-gallery a:hover .life-open,.mht-life-gallery a:focus-visible .life-open{opacity:1}
.mht-life-dialog{padding:20px;border:0;background:var(--paper,#f3efea);color:var(--ink,#123f36);max-width:min(94vw,1080px);max-height:94dvh;overflow:auto}
.mht-life-dialog::backdrop{background:rgba(10,29,24,.88)}
.mht-life-dialog img{display:block;max-width:100%;max-height:74dvh;width:auto;height:auto;margin:auto;object-fit:contain}
.mht-life-dialog .life-caption{font:400 17px/1.5 Lato,Arial,sans-serif;text-align:center;margin:14px 64px 0}
.mht-life-dialog button{font:400 24px/1 Lato,Arial,sans-serif;width:44px;height:44px;border:1px solid var(--ink,#123f36);border-radius:50%;background:transparent;color:var(--ink,#123f36);cursor:pointer}
.mht-life-dialog .life-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.mht-life-dialog .life-tools div{display:flex;gap:8px}
.mht-life-dialog button:focus-visible{outline:3px solid var(--forest,#0d5e4e);outline-offset:4px}
html.photo-view-open{overflow:hidden}
@media(max-width:700px){.mht-life-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mht-life-gallery .life-open{width:30px;height:30px;right:8px;bottom:8px;font-size:20px;opacity:1}.mht-life-dialog{padding:12px}.mht-life-dialog .life-caption{margin:12px 0 0}}
@media(hover:none){.mht-life-gallery .life-open{opacity:1}}
@media(prefers-reduced-motion:reduce){.mht-life-gallery img,.mht-life-gallery .life-open{transition:none}.mht-life-gallery a:hover img{transform:none}}
