/* Natural image proportions avoid empty cells and keep every photograph intact. */
.journey-page .case-photo-grid{display:block;columns:3;column-gap:16px}
.journey-page .case-photo-grid figure{display:inline-block;vertical-align:top;width:100%;margin:0 0 16px;break-inside:avoid}
.journey-page .case-photo-grid img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:initial;background:none}
.journey-page .case-photo-grid .photo-link{display:block}
@media(max-width:900px){.journey-page .case-photo-grid{columns:2;column-gap:12px}.journey-page .case-photo-grid figure{margin-bottom:12px}}
@media(max-width:520px){.journey-page .case-photo-grid{columns:1}.journey-page .case-photo-grid figure{margin-bottom:12px}}
.build-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:20px;border:0;background:#101b15;color:#f4f1e8}
.build-viewer::backdrop{background:rgba(0,0,0,.84)}
.build-viewer[open]{display:flex;flex-direction:column;gap:12px}
.build-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none}
.build-viewer-count{font:600 13px/1.4 sans-serif;letter-spacing:.08em}
.build-viewer button{display:grid;place-items:center;min-width:48px;min-height:48px;border:1px solid #f4f1e8;background:#f4f1e8;color:#101b15;cursor:pointer;font-weight:700}
.build-viewer button:focus-visible{outline:3px solid white;outline-offset:3px}
.build-viewer-close{padding:0 18px}
.build-viewer-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:16px;flex:1;min-height:0}
.build-viewer-stage img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}
.build-viewer-previous,.build-viewer-next{font-size:32px;line-height:1}
@media(max-width:600px){.build-viewer{padding:12px}.build-viewer-stage{grid-template-columns:40px minmax(0,1fr) 40px;gap:5px}.build-viewer-stage button{min-width:40px}}
/* Fit every portrait and landscape image inside the available screen. */
.build-viewer{box-sizing:border-box;width:100vw;height:100vh;height:100dvh;overflow:hidden}
.build-viewer-stage{grid-template-rows:minmax(0,1fr);overflow:hidden}
.build-viewer-stage img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;justify-self:center;align-self:center;min-width:0;min-height:0}
