/* Shared gallery styling, scoped to avoid changing its host page. */
.photo-gallery {
  --gallery-background:#fff;
  --gallery-ink:#172018;
  --gallery-line:#d5d3cb;
  --gallery-muted:#68716b;
  --gallery-gutter:clamp(22px,4.5vw,76px);
  --gallery-hint:rgba(255,255,255,.78);
  color:var(--gallery-ink);
}
.photo-gallery .gallery { position:relative; height:clamp(800px,80vw,1040px); overflow:hidden; background:var(--gallery-background); isolation:isolate; touch-action:pan-y pinch-zoom; user-select:none; cursor:grab; }
.photo-gallery .gallery.is-dragging { cursor:grabbing; }
.photo-gallery .gallery:focus-visible { outline:2px solid var(--gallery-ink); outline-offset:-4px; }
.photo-gallery .rail { position:absolute; z-index:1; inset:0; pointer-events:none; }
.photo-gallery .slide { position:absolute; left:50%; top:50%; margin:0; }
.photo-gallery .slide img { display:block; width:100%; height:100%; border-radius:3px; }
.photo-gallery .lens-canvas { position:absolute; z-index:2; inset:0; display:none; width:100%; height:100%; pointer-events:none; }
.photo-gallery .is-webgl .lens-canvas { display:block; }
.photo-gallery .is-webgl .rail { opacity:0; }
.photo-gallery .render-note { margin:18px var(--gallery-gutter) 0; font-size:13px; line-height:1.5; color:var(--gallery-muted); }
.photo-gallery button:disabled { cursor:default; opacity:.45; }
.photo-gallery .counter,.photo-gallery .control-note,.photo-gallery .meta { font-family:'DM Mono',ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.photo-gallery .gallery__hint { position:absolute; z-index:4; right:var(--gallery-gutter); bottom:20px; max-width:calc(100% - 32px); padding:8px 11px; border:1px solid var(--gallery-line); border-radius:99px; background:var(--gallery-hint); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); pointer-events:none; }
.photo-gallery .controls { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:28px; padding:27px var(--gallery-gutter) 0; }
.photo-gallery .controls__left { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; column-gap:clamp(20px,4vw,66px); }
.photo-gallery .counter { white-space:nowrap; }
.photo-gallery .progress { height:1px; background:var(--gallery-line); position:relative; }
.photo-gallery .progress__fill { position:absolute; inset:0 auto 0 0; width:0; background:var(--gallery-ink); transition:width .65s ease; }
.photo-gallery .buttons { display:flex; flex-wrap:wrap; gap:8px; }
.photo-gallery .arrow,.photo-gallery .pause,.photo-gallery .view-toggle { display:grid; place-items:center; min-width:44px; height:44px; padding:0 12px; border:1px solid var(--gallery-line); border-radius:50%; background:transparent; color:var(--gallery-ink); font:inherit; cursor:pointer; transition:background .25s,color .25s,border-color .25s; }
.photo-gallery :is(.arrow,.pause,.view-toggle):is(:hover,:focus-visible):not(:disabled) { background:var(--gallery-ink); color:var(--gallery-background); border-color:var(--gallery-ink); }
.photo-gallery button:focus-visible,.photo-gallery .caption__title:focus-visible { outline:2px solid var(--gallery-ink); outline-offset:4px; }
.photo-gallery .pause { min-width:74px; border-radius:99px; font-size:10px; font-weight:700; letter-spacing:.05em; }
.photo-gallery .view-toggle { min-width:113px; margin-right:9px; border-radius:99px; font-size:10px; font-weight:700; letter-spacing:.04em; }
.photo-gallery .view-toggle[aria-pressed="true"] { background:var(--gallery-ink); color:var(--gallery-background); border-color:var(--gallery-ink); }
.photo-gallery .caption { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin:19px var(--gallery-gutter) 0; padding-bottom:35px; border-bottom:1px solid var(--gallery-line); }
.photo-gallery .caption__title { min-width:0; margin:0; color:inherit; font-family:'Playfair Display',Georgia,serif; font-size:clamp(25px,2.4vw,36px); line-height:1.3; text-decoration:none; text-wrap:pretty; }
.photo-gallery .caption__title:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.18em; }
.photo-gallery .caption__place { margin:0; color:var(--gallery-muted); white-space:nowrap; }

/* The embedded gallery extends to the screen edges; its controls align with
   the Photography page's existing text and photo margins. */
.photo-gallery--embedded {
  --gallery-background:#172018;
  --gallery-ink:#f6f4eb;
  --gallery-line:rgba(246,244,235,.28);
  --gallery-muted:rgba(246,244,235,.68);
  --gallery-hint:rgba(23,32,24,.78);
  --gallery-gutter:10vw;
  --gallery-tighten:clamp(72px,11vw,160px);
  margin-inline:calc(-1 * var(--gallery-gutter));
  margin-bottom:clamp(80px,9vw,140px);
}
.photo-gallery--embedded .gallery { background:transparent; }
.photo-gallery--embedded .gallery__hint { bottom:calc(20px + var(--gallery-tighten)); }
.photo-gallery--embedded .controls { position:relative; z-index:4; margin-top:calc(-1 * var(--gallery-tighten)); }
@media(max-width:1100px) {
  .photo-gallery--embedded { --gallery-gutter:8vw; }
}
@media(max-width:760px) {
  .photo-gallery--embedded { --gallery-tighten:clamp(64px,18vw,96px); }
  .photo-gallery .gallery { height:800px; }
  .photo-gallery .controls { grid-template-columns:1fr; gap:20px; }
  .photo-gallery .buttons { justify-content:flex-end; }
  .photo-gallery .caption { align-items:flex-start; flex-direction:column; gap:10px; }
}
@media(max-width:650px) {
  .photo-gallery--embedded { --gallery-gutter:7vw; }
}
@media(prefers-reduced-motion:reduce) {
  .photo-gallery :is(.progress__fill,.arrow,.pause,.view-toggle) { transition:none; }
}
