.gallery-header nav{display:flex;gap:24px;flex-wrap:wrap}.gallery-header [aria-current=page]{color:#d82749;text-decoration:underline;text-underline-offset:7px}.photo-page{max-width:1280px;margin:auto;padding:40px 28px 64px}.photo-heading{margin-bottom:32px}.photo-heading h1{font-family:'Secular One',sans-serif;font-size:clamp(2rem,5vw,3.4rem);line-height:1.2;margin:8px 0 18px}.photo-heading p{font-size:1.1rem}.photo-grid{columns:3;column-gap:22px;margin-bottom:32px}.photo-grid figure{break-inside:avoid;margin:0 0 22px;background:white;border-radius:18px;overflow:hidden;border:1px solid #14324b18}.photo-link{display:block;cursor:zoom-in}.photo-link img{display:block;width:100%;height:auto}.photo-grid figcaption{padding:14px 18px;font-weight:600}.photo-link:focus-visible,button:focus-visible{outline:4px solid #ed3555;outline-offset:-4px}#photo-viewer{width:min(1120px,96vw);max-width:96vw;height:94dvh;max-height:94dvh;padding:18px;border:0;border-radius:18px;background:#102536;color:white}#photo-viewer::backdrop{background:#07121eee}#photo-viewer[open]{display:flex;flex-direction:column}.viewer-toolbar,.viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0}.viewer-toolbar p{margin:0}.viewer-figure{margin:14px 0;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;gap:12px}.viewer-figure img{width:100%;height:0;min-height:0;flex:1;object-fit:contain}.viewer-figure figcaption{text-align:center;font-size:1rem}.viewer-controls button,.viewer-toolbar button{font:inherit;color:white;background:#ffffff18;border:1px solid #ffffff50;border-radius:30px;padding:10px 20px;min-height:44px;cursor:pointer}.viewer-controls button:hover,.viewer-toolbar button:hover{background:#ffffff35}body.viewer-open{overflow:hidden}@media(max-width:900px){.photo-grid{columns:2}.gallery-header{height:auto;min-height:92px;flex-wrap:wrap;gap:18px;padding:18px 24px}.gallery-header nav{display:flex;font-size:1rem;gap:18px}}@media(max-width:540px){.photo-grid{columns:1}.photo-page{padding:28px 18px 48px}.gallery-header nav{gap:16px}.gallery-header .brand img{width:145px}#photo-viewer{padding:12px}.viewer-controls button{padding:10px 16px}}
