/* Native image viewer: photographs remain contained and their originals unchanged. */
html.viewer-open{overflow:hidden;scrollbar-gutter:stable}
.image-viewer{
  --viewer-paper:#f2f7f4;
  --viewer-muted:#c5d6cd;
  position:fixed;
  inset:0;
  width:100%;
  height:100vh;
  height:100dvh;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:#10211e;
  color:var(--viewer-paper);
  font:400 1rem/1.5 var(--body);
  overflow:hidden;
  overscroll-behavior:contain;
}
.image-viewer::backdrop{background:#10211ef5}
.image-viewer[open]{display:block}
.image-viewer .viewer-shell{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  padding:0 max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));
}
.image-viewer .viewer-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 48px;
  align-items:center;
  gap:24px;
  min-height:80px;
  padding:12px 0;
  padding-top:max(12px,env(safe-area-inset-top));
  border-bottom:1px solid #d1e3d51f;
  background:none;
}
.image-viewer .viewer-context,
.image-viewer .viewer-counter,
.image-viewer .viewer-caption,
.image-viewer .viewer-status{margin:0;font:inherit;letter-spacing:0}
.image-viewer .viewer-context{font-weight:600;line-height:1.4}
.image-viewer .viewer-counter{color:var(--viewer-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.9375rem}
.image-viewer button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  width:48px;
  height:48px;
  min-width:48px;
  min-height:48px;
  margin:0;
  padding:11px;
  border:1px solid #a6c7b54d;
  border-radius:50%;
  background:#d9eadb0d;
  color:var(--viewer-paper);
  font:inherit;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  transition:background .18s ease,border-color .18s ease,opacity .18s ease;
}
.image-viewer button svg{display:block;width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor}
.image-viewer button:hover{background:#d9eadb24;border-color:#cce3d3aa}
.image-viewer button:active{background:#d9eadb3d}
.image-viewer button:disabled{opacity:.3;cursor:default}
.image-viewer button:disabled:hover{background:#d9eadb0d;border-color:#a6c7b54d}
.image-viewer button:focus-visible,
.image-viewer a:focus-visible{outline:3px solid #b1e5c7;outline-offset:5px}
.image-viewer .viewer-stage{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  align-items:center;
  gap:28px;
  min-width:0;
  min-height:0;
  padding:24px 0 20px;
  overflow:hidden;
}
.image-viewer .viewer-figure{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  max-height:100%;
  margin:0;
  padding:0;
  border:0;
}
.image-viewer .viewer-image{
  display:block;
  flex:1 1 auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  max-width:100%;
  max-height:100%;
  margin:0;
  padding:0;
  object-fit:contain;
  border-radius:10px;
  background:transparent;
  touch-action:pan-y pinch-zoom;
  user-select:none;
  -webkit-user-drag:none;
}
.image-viewer .viewer-caption{
  flex:0 0 auto;
  width:100%;
  max-width:76ch;
  padding-top:14px;
  color:var(--viewer-muted);
  font-size:.9375rem;
  line-height:1.5;
  text-align:center;
  overflow-wrap:anywhere;
}
.image-viewer .viewer-caption:empty{display:none}
.image-viewer .viewer-status{
  position:absolute;
  top:50%;
  left:50%;
  max-width:calc(100% - 150px);
  transform:translate(-50%,-50%);
  padding:14px 20px;
  border:1px solid #a6c7b54d;
  border-radius:8px;
  background:#10211eee;
  color:var(--viewer-paper);
  font-size:1rem;
  text-align:center;
  pointer-events:none;
}
.image-viewer .viewer-status:empty{display:none}
.image-viewer .viewer-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-width:0;
  min-height:96px;
  margin:0;
  padding:12px 0;
  padding-bottom:max(12px,env(safe-area-inset-bottom));
  border-top:1px solid #d1e3d51f;
  background:none;
}
.image-viewer .viewer-thumbnails{
  display:flex;
  align-items:center;
  flex:1 1 auto;
  gap:8px;
  min-width:0;
  max-width:100%;
  margin:0;
  padding:5px 5px 10px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  scrollbar-color:#6c9381 transparent;
}
.image-viewer .viewer-thumbnails button{
  width:76px;
  min-width:76px;
  height:60px;
  min-height:60px;
  padding:3px;
  border:1px solid #a6c7b54d;
  border-radius:7px;
  background:transparent;
  opacity:.6;
}
.image-viewer .viewer-thumbnails button:hover{opacity:1;background:#d9eadb24}
.image-viewer .viewer-thumbnails button[aria-current="true"],
.image-viewer .viewer-thumbnails button[aria-selected="true"]{border:2px solid #c5efd5;padding:2px;background:#d9eadb24;opacity:1}
.image-viewer .viewer-thumbnails img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:4px}
.image-viewer .viewer-original{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  gap:8px;
  min-height:48px;
  padding:8px 4px;
  color:var(--viewer-paper);
  font-size:.9375rem;
  line-height:1.5;
  text-decoration:none;
  text-underline-offset:5px;
}
.image-viewer .viewer-original:hover{color:#c5efd5;text-decoration:underline}
.image-viewer .viewer-original svg{width:16px;height:16px;fill:none;stroke:currentColor}
@media(max-width:760px){
  .image-viewer .viewer-shell{padding-right:max(14px,env(safe-area-inset-right));padding-left:max(14px,env(safe-area-inset-left))}
  .image-viewer .viewer-toolbar{min-height:68px;grid-template-columns:minmax(0,1fr) auto 44px;gap:14px;padding-block:10px}
  .image-viewer .viewer-context{font-size:1rem}
  .image-viewer .viewer-counter{font-size:.9375rem}
  .image-viewer button{width:44px;height:44px;min-width:44px;min-height:44px;padding:9px}
  .image-viewer .viewer-stage{display:block;padding:16px 0;overflow:hidden}
  .image-viewer .viewer-prev,.image-viewer .viewer-next{position:absolute;top:50%;z-index:1;transform:translateY(-50%);background:#10211ed9;border-color:#c8dfd294}
  .image-viewer .viewer-prev{left:6px}
  .image-viewer .viewer-next{right:6px}
  .image-viewer .viewer-caption{font-size:.9375rem;padding:12px 8px 0;line-height:1.4}
  .image-viewer .viewer-status{max-width:calc(100% - 32px);padding:12px 16px;font-size:.9375rem}
  .image-viewer .viewer-footer{flex-direction:column;align-items:stretch;justify-content:center;gap:1px;min-height:0;padding-block:7px;padding-bottom:max(7px,env(safe-area-inset-bottom))}
  .image-viewer .viewer-thumbnails{flex:0 0 auto;gap:7px;justify-content:flex-start;padding:4px 4px 8px}
  .image-viewer .viewer-thumbnails button{width:58px;min-width:58px;height:46px;min-height:46px;padding:3px;border-radius:6px}
  .image-viewer .viewer-original{align-self:center;min-height:44px;padding:6px 8px;font-size:.9375rem}
}
@media(max-height:540px) and (min-width:761px){
  .image-viewer .viewer-toolbar{min-height:60px;padding-block:6px}
  .image-viewer .viewer-stage{gap:16px;padding-block:10px}
  .image-viewer .viewer-footer{min-height:72px;padding-block:5px}
  .image-viewer .viewer-thumbnails{padding-block:3px}
  .image-viewer .viewer-thumbnails button{width:62px;min-width:62px;height:46px;min-height:46px}
  .image-viewer .viewer-caption{padding-top:8px}
}
@media(max-height:500px) and (max-width:760px){
  .image-viewer .viewer-toolbar{min-height:58px;padding-block:6px}
  .image-viewer .viewer-stage{padding-block:8px}
  .image-viewer .viewer-footer{flex-direction:row;align-items:center;gap:12px;padding-block:5px}
  .image-viewer .viewer-thumbnails{flex:1 1 auto;min-width:0}
  .image-viewer .viewer-original{flex:0 0 auto;max-width:35%;font-size:.9375rem}
  .image-viewer .viewer-caption{padding-top:7px}
}
@media(prefers-reduced-motion:reduce){
  .image-viewer button{transition:none}
}
@media(forced-colors:active){
  .image-viewer button,.image-viewer .viewer-thumbnails button{border-color:ButtonText}
  .image-viewer button:focus-visible,.image-viewer a:focus-visible{outline-color:Highlight}
  .image-viewer .viewer-thumbnails button[aria-current="true"],.image-viewer .viewer-thumbnails button[aria-selected="true"]{outline:2px solid Highlight;outline-offset:1px}
}
@media print{.image-viewer{display:none!important}}

/* Progressive image links preserve the existing photography layout. */
.photo-link,.landscape-image-link{display:block;border-radius:inherit}
.landscape-image-link{width:100%;height:100%}
.landscape-photo::after{pointer-events:none}
.landscape-inner{pointer-events:none}
.landscape-copy{pointer-events:auto}
.gallery-link{cursor:zoom-in}
.gallery-link:focus-visible{outline:3px solid #17594f;outline-offset:5px}
.landscape-image-link:focus-visible{outline-offset:-5px}
.image-viewer .viewer-stage{touch-action:pan-y pinch-zoom}
/* Keep a standalone image centered when navigation arrows are hidden. */
.image-viewer .viewer-prev{grid-column:1;grid-row:1}
.image-viewer .viewer-figure{grid-column:2;grid-row:1}
.image-viewer .viewer-next{grid-column:3;grid-row:1}
