:root{--ink:#172f60;--muted:#52617a;--line:#dbe2ed}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:white;font:400 20px/1.5 'Cormorant Garamond',Georgia,serif}button,a{color:inherit}a{text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:white;z-index:99}.skip:focus{top:15px}
main{width:min(1120px,90%);margin:auto}.gallery-intro{text-align:center;padding:57px 0 42px}.gallery-intro h1{font:400 clamp(54px,6vw,80px)/1.08 'Cormorant Garamond',Georgia,serif;letter-spacing:-.045em;margin:0 0 13px}.gallery-intro em{font-weight:400}.gallery-intro p{color:var(--muted);font-size:21px;margin:0}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:70px;gap:20px;padding-bottom:85px}.gallery-tile{position:relative;display:grid;place-items:center;padding:0;border:0;overflow:hidden;min-width:0;isolation:isolate}.tall{grid-row:span 5}.medium{grid-row:span 4}.short{grid-row:span 3}.gallery-tile:nth-child(5),.gallery-tile:nth-child(10){border-radius:50% 50% 0 0 / 35% 35% 0 0}.blue{--tone:#e5edf5}.pearl{--tone:#eeefee}.rose{--tone:#f3eae7}.sage{--tone:#e8eeea}.gallery-tile,.lightbox-frame{background:linear-gradient(135deg,#ffffff30,transparent 70%),var(--tone,#e5edf5)}.gallery-tile::after{content:'';position:absolute;inset:12px;border:1px solid #ffffff80;border-radius:inherit;pointer-events:none}.placeholder-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#8694a7}.photo-symbol{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;opacity:.45}.gallery-tile:active .placeholder-art{transform:scale(.91);transition:transform .16s}.tile-reveal{animation:arrive .75s ease both}.nav-menu.is-open{overflow-y:auto}
.lightbox{padding:52px 24px 10px;border:0;background:#fff;width:min(940px,calc(100% - 32px));max-height:calc(100svh - 32px);overflow:auto;color:var(--ink)}.lightbox::backdrop{background:#14274999;backdrop-filter:blur(5px)}.lightbox[open]{animation:arrive .25s ease both}.lightbox-close{position:absolute;right:10px;top:3px;width:44px;height:44px;border:0;background:none;font:30px Arial,sans-serif}.lightbox-frame{height:min(65svh,620px);display:grid;place-items:center;touch-action:pan-y}.lightbox-frame .photo-symbol{width:60px;height:60px}.lightbox-frame .placeholder-art>span{font-size:23px;color:var(--muted)}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:45px;padding-top:6px}.lightbox-controls button{width:48px;height:48px;border:0;background:none;font-size:28px}.photo-count{min-width:65px;text-align:center;font:12px 'Manrope',Arial,sans-serif;color:var(--muted)}body:has(.lightbox[open]){overflow:hidden}.no-js .gallery-tile{pointer-events:none}@keyframes arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){main{width:calc(100% - 32px)}.gallery-intro{padding:37px 0 30px}.gallery-intro h1{font-size:57px}.gallery-intro p{font-size:20px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:48px;gap:12px;padding-bottom:48px}.gallery-tile::after{inset:8px}.photo-symbol{width:33px;height:33px}.lightbox{width:calc(100% - 24px);padding:50px 12px 8px;max-height:calc(100svh - 24px)}.lightbox-frame{height:59svh}.lightbox-controls{gap:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

@media(min-width:760px) and (max-width:1099px){.site-header .nav-toggle{display:inline-flex}.site-header .nav-menu{position:absolute;top:72px;left:0;right:0;display:grid;align-items:stretch;max-height:0;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;padding:1rem;background:white;transform:translateY(-10px)}.site-header .nav-menu.is-open{max-height:calc(100svh - 72px);opacity:1;visibility:visible;pointer-events:auto;overflow:auto;transform:none}.site-header .nav-menu a{display:block}.site-header .nav-menu li{opacity:1;transform:none}}

/* Photos fill the collage; the viewer always shows the complete photograph. */
.gallery-tile>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .16s ease}.gallery-tile:active>img{transform:scale(.98)}.gallery-tile::after{display:none}.lightbox-frame{background:#fff}.lightbox-frame>img{display:block;width:100%;height:100%;min-height:0;object-fit:contain}
