/* The gallery extends the site's existing navy, blue and white theme. */
.gallery-shell{padding-top:54px;padding-bottom:50px}
.gallery-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:28px}
.gallery-intro .eyebrow{margin-bottom:17px;font-size:.875rem}
.gallery-intro h1{font-size:clamp(2.6rem,4.8vw,4.1rem);letter-spacing:-.045em;font-weight:650;line-height:1.09;margin:0 0 20px}
.gallery-intro h1 span{color:var(--blue)}
.gallery-description{font-size:1.0625rem;color:var(--muted);margin:0;max-width:590px}
.gallery-total{flex-shrink:0;border-left:1px solid var(--line);padding-left:26px;margin:0 0 3px;font-size:.9375rem;color:var(--muted);line-height:1.5}
.gallery-total strong{display:block;font-size:2.8rem;letter-spacing:-.06em;line-height:1.1;color:var(--ink);font-weight:600}
.gallery-total span{display:block;margin-top:5px;font-size:.875rem}
.album-index{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:46px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.album-index a{font-size:.875rem;line-height:1.45;padding:10px 13px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted);transition:color .18s,border-color .18s,background .18s}
.album-index a:hover{color:var(--blue);border-color:#a2b9ea;background:var(--pale)}
.album{padding-bottom:52px;margin-bottom:46px;border-bottom:1px solid var(--line);scroll-margin-top:20px}
.album-heading{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:start;gap:20px;margin-bottom:28px}
.album-number{font-size:1.1rem;color:var(--blue);line-height:1.5;padding-top:0;font-weight:600;font-variant-numeric:tabular-nums}
.album-role{color:var(--blue);font-size:.875rem;font-weight:600;line-height:1.5;margin:0 0 8px}
.album-heading h2{font-size:clamp(1.6rem,2.65vw,2.25rem);line-height:1.22;letter-spacing:-.035em;text-wrap:pretty}
.album-location{color:var(--ink);font-size:.9375rem;margin:9px 0 5px;font-weight:500}
.album-context{color:var(--muted);font-size:1rem;margin:0;max-width:740px;line-height:1.65}
.album-count{font-size:.875rem;color:var(--muted);white-space:nowrap;padding-top:3px}
.photo-grid{columns:3;column-gap:24px}
.photo-grid[data-count="2"],.photo-grid[data-count="4"]{columns:2}
.photo-grid[data-count="1"]{columns:1;max-width:660px;margin-inline:auto}
.photo-card{margin:0 0 28px;display:inline-block;vertical-align:top;break-inside:avoid;width:100%}
.photo-link{display:block;position:relative;cursor:zoom-in;border-radius:8px;background:#f1f4f9;isolation:isolate}
.photo-link img{width:100%;height:auto;border-radius:8px}
.photo-enlarge{position:absolute;right:10px;bottom:10px;background:rgba(16,29,53,.9);color:#fff;padding:6px 10px;border-radius:4px;font-size:.875rem;line-height:1.4;opacity:0;transform:translateY(3px);transition:opacity .18s,transform .18s}
.photo-enlarge>span{margin-left:8px;font-size:1.05rem}
.photo-link:hover .photo-enlarge,.photo-link:focus-visible .photo-enlarge{opacity:1;transform:none}
.photo-link:hover{box-shadow:0 0 0 3px #bfd1f3}
.photo-card figcaption{padding:14px 2px 0}
.photo-caption-title{display:block;font-weight:600;font-size:1rem;line-height:1.45;letter-spacing:-.01em}
.caption-location{display:block;font-size:.875rem;color:var(--muted);line-height:1.6;margin-top:4px}
.gallery-end{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;color:var(--blue)}
.photos-page .footer{border-top:1px solid var(--line)}
body.photo-viewer-open{overflow:hidden}
.photo-viewer{width:min(1200px,calc(100% - 40px));max-width:none;height:calc(100vh - 40px);height:calc(100dvh - 40px);max-height:none;margin:auto;padding:18px 24px 20px;border:1px solid #38465c;border-radius:12px;background:#101a2c;color:#fff;box-shadow:0 24px 90px #0006}
.photo-viewer:not([open]){display:none}
.photo-viewer[open]{display:flex;flex-direction:column;gap:14px}
.photo-viewer::backdrop{background:rgba(4,10,22,.88)}
.photo-viewer button{font:inherit;color:inherit;cursor:pointer;border:1px solid #617089;background:transparent;border-radius:5px;min-width:48px;min-height:44px}
.photo-viewer button:hover{background:#2b3b54;border-color:#c6d7f5}
.photo-viewer :focus-visible{outline-color:#b3ceff;outline-offset:3px}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}
.viewer-toolbar p{margin:0;color:#c8d3e5;font-size:.875rem;line-height:1.5}
.viewer-close{display:flex;align-items:center;gap:15px;padding:6px 12px;font-size:.875rem!important}
.viewer-close span{font-size:1.6rem;line-height:1}
.viewer-stage{position:relative;flex:1;min-height:80px;display:grid;place-items:center;background:#0b1321;border-radius:5px;overflow:hidden}
#viewer-image{width:100%;height:100%;min-height:0;object-fit:contain;position:absolute;inset:0}
#viewer-image[hidden]{display:none}
#viewer-status{padding:20px;text-align:center;font-size:1rem;color:#e2e9f5;margin:0}
.viewer-bottom{display:flex;gap:24px;justify-content:space-between;align-items:center;flex-shrink:0}
.viewer-caption{min-width:0}
.viewer-caption h2{font-size:1.1rem;line-height:1.4;letter-spacing:-.015em;margin:0 0 3px}
.viewer-caption p{margin:0;font-size:.875rem;color:#c8d3e5;line-height:1.5}
.viewer-controls{display:flex;gap:9px;flex-shrink:0}
.viewer-controls button{font-size:1.5rem;line-height:1}
#viewer-original{align-self:flex-start;font-size:.875rem;color:#b4ceff;text-decoration:underline;text-underline-offset:4px;flex-shrink:0}
@media(max-width:900px){.photo-grid{columns:2}.album-heading{grid-template-columns:32px minmax(0,1fr) auto;gap:15px}}
@media(max-width:620px){.gallery-shell{padding-top:36px;padding-bottom:35px}.gallery-intro{align-items:start;gap:20px}.gallery-intro h1{font-size:clamp(2.25rem,8vw,3.2rem)}.gallery-description{font-size:1rem}.gallery-total{padding-left:15px;font-size:.875rem}.gallery-total strong{font-size:2.2rem}.gallery-intro .eyebrow{font-size:.875rem}.album-index{gap:7px;margin-bottom:34px;padding-bottom:23px}.album-index a{padding:10px 11px}.album{margin-bottom:33px;padding-bottom:30px;scroll-margin-top:12px}.album-heading{grid-template-columns:27px minmax(0,1fr);gap:10px;margin-bottom:22px}.album-heading h2{font-size:1.65rem}.album-count{grid-column:2;padding-top:0;margin-top:0}.album-number{font-size:1rem}.album-role{font-size:.875rem}.album-context{font-size:1rem}.photo-grid{column-gap:18px}.photo-card{margin-bottom:24px}.photo-viewer{width:calc(100% - 16px);height:calc(100vh - 16px);height:calc(100dvh - 16px);padding:12px;gap:11px!important}.viewer-bottom{align-items:flex-start;gap:12px}.viewer-caption h2{font-size:1rem}.viewer-controls{gap:7px}.viewer-controls button{min-width:44px}}
@media(max-width:560px){.photo-grid,.photo-grid[data-count="2"],.photo-grid[data-count="4"]{columns:1}.gallery-total{display:none}.viewer-bottom{flex-wrap:wrap}.viewer-caption{flex-basis:100%}.viewer-controls{margin-left:auto}.photo-card figcaption{padding-top:12px}.gallery-end{flex-direction:column;gap:13px}}
@media(hover:none){.photo-enlarge{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.photo-enlarge,.album-index a{transition:none}}
@media print{.gallery-intro h1{font-size:28pt}.album-index,.gallery-end,.photo-enlarge,.photo-viewer{display:none!important}.gallery-shell{padding:0}.album{margin-bottom:20px;padding-bottom:20px}.album-heading{break-after:avoid}.photo-grid{columns:2}.photo-card{break-inside:avoid}.photo-link{box-shadow:none}}
