/* Dedicated photography viewer. Deliberately does not style the catalog grid. */
.gallery-dialog.gallery-experience {
 --gallery-bg:#061822;--gallery-ink:#f3f6f7;--gallery-muted:#aec0cb;--gallery-accent:#019fe6;
 position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;
 border:0;color:var(--gallery-ink);background:var(--gallery-bg);overflow:hidden;overscroll-behavior:contain;
 color-scheme:dark;animation:none;
}
.gallery-dialog.gallery-experience::backdrop{background:#031019ed;transition:opacity .25s ease}
.gallery-dialog.gallery-experience.is-closing::backdrop{opacity:0}
body.gallery-opened{overflow:hidden}
.gallery-experience .gallery-shell{
 display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(12px,2vh,22px);
 width:100%;max-width:1920px;height:100%;margin:0 auto;box-sizing:border-box;
 padding:max(22px,env(safe-area-inset-top)) clamp(18px,3vw,58px) max(20px,env(safe-area-inset-bottom));
}
.gallery-experience .gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;position:relative;z-index:4}
.gallery-experience #gallery-title{font-family:var(--heading,'June Pro',sans-serif);font-size:clamp(1.05rem,1.6vw,1.55rem);line-height:1.2;font-weight:400;letter-spacing:-.015em;text-wrap:balance;margin:0;max-width:75%;overflow-wrap:anywhere}
.gallery-experience button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.gallery-experience .gallery-close{display:flex;align-items:center;justify-content:center;gap:13px;flex:0 0 auto;padding:0 5px 0 14px;min-height:44px;border:0;background:transparent;font-size:.85rem;color:var(--gallery-muted);transition:color .18s var(--ease)}
.gallery-experience .gallery-close span{display:grid;place-items:center;width:40px;height:40px;border:1px solid #49616d;border-radius:50%;font-family:Arial,sans-serif;font-size:1.6rem;font-weight:400;line-height:1;transition:background .18s var(--ease),border-color .18s var(--ease)}
.gallery-experience .gallery-close:hover{color:#fff}
.gallery-experience .gallery-close:hover span{background:#193949;border-color:#b4cedb}
.gallery-experience button:focus-visible{outline:2px solid #b3eaff;outline-offset:5px}
.gallery-experience .gallery-viewport{position:relative;min-width:0;min-height:0;isolation:isolate;overflow:visible;touch-action:pan-y pinch-zoom;user-select:none}
.gallery-experience .gallery-full-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;opacity:0;pointer-events:none;transform:translateX(var(--gallery-drag,0px));transform-origin:50% 50%;transition:transform .24s cubic-bezier(.2,.75,.2,1);border:0;border-radius:0;filter:none;box-shadow:none;cursor:grab}
.gallery-experience .gallery-full-image.is-active{opacity:1;pointer-events:auto;z-index:2}
.gallery-experience .gallery-viewport.is-dragging .gallery-full-image{cursor:grabbing;transition:none}
.gallery-experience .gallery-prev,.gallery-experience .gallery-next{position:absolute;z-index:5;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid #8598a3;border-radius:50%;color:#fff;background:#061822e8;font-size:1.3rem;line-height:1;transition:background .18s var(--ease),border-color .18s var(--ease),opacity .18s var(--ease)}
.gallery-experience .gallery-prev{left:clamp(0px,1.2vw,24px)}
.gallery-experience .gallery-next{right:clamp(0px,1.2vw,24px)}
.gallery-experience .gallery-prev:hover,.gallery-experience .gallery-next:hover{border-color:#fff;background:#17465c}
.gallery-experience [hidden]{display:none!important}
.gallery-experience .gallery-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;position:relative;z-index:4;min-height:60px}
.gallery-experience .gallery-status{grid-column:1;grid-row:1;justify-self:start;text-align:left;min-width:0;margin:0;font-size:.85rem;color:var(--gallery-muted);font-variant-numeric:tabular-nums;letter-spacing:.06em;line-height:1.4}
.gallery-experience .gallery-filmstrip{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}
.gallery-experience .gallery-thumbnail{position:relative;display:block;width:64px;height:48px;padding:0;border:0;background:#163341;opacity:.5;border-radius:2px;transition:opacity .18s var(--ease),transform .22s var(--ease);flex:none}
.gallery-experience .gallery-thumbnail::after{content:'';position:absolute;inset:-4px;border:1px solid transparent;border-radius:3px;transition:border-color .18s var(--ease);pointer-events:none}
.gallery-experience .gallery-thumbnail img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;border-radius:inherit}
.gallery-experience .gallery-thumbnail:hover{opacity:.9;transform:translateY(-2px)}
.gallery-experience .gallery-thumbnail[aria-current=true]{opacity:1}
.gallery-experience .gallery-thumbnail[aria-current=true]::after{border-color:#9ae0ff}
.gallery-experience .gallery-error{position:absolute;z-index:6;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:min(90%,560px);padding:15px 20px;margin:0;box-sizing:border-box;background:#061822f2;border:1px solid #6a8796;color:#fff;text-align:center;font-size:.9rem;line-height:1.5}
.gallery-experience .gallery-source{position:absolute;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:max-content;max-width:94%;padding:9px 14px;margin:0;border-radius:4px;background:#061822ed;color:var(--gallery-ink);font-size:.73rem;line-height:1.5;text-align:center;user-select:text}
.gallery-experience .gallery-source a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.gallery-experience .gallery-source a:focus-visible{outline:2px solid #b3eaff;outline-offset:3px}
.gallery-experience .gallery-status::after{content:'';display:inline-block;width:5px;height:5px;margin:0 0 2px 10px;border-radius:50%;background:var(--gallery-accent);opacity:0;transition:opacity .18s var(--ease)}
.gallery-experience.is-loading .gallery-status::after{opacity:1}
.gallery-experience.is-closing .gallery-toolbar,.gallery-experience.is-closing .gallery-controls{opacity:0}
.gallery-experience .has-single-image .gallery-status{grid-column:1/-1;justify-self:center}
@media(max-width:760px){
 .gallery-experience .gallery-shell{gap:12px;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
 .gallery-experience .gallery-toolbar{gap:12px;align-items:center}
 .gallery-experience #gallery-title{font-size:1rem;max-width:none;text-align:left}
 .gallery-experience .gallery-close{font-size:0;gap:0;padding:0;width:44px;height:44px}
 .gallery-experience .gallery-close span{width:36px;height:36px;font-size:1.4rem}
 .gallery-experience .gallery-prev,.gallery-experience .gallery-next{width:44px;height:44px;font-size:1.12rem;background:#061822d9}
 .gallery-experience .gallery-prev{left:0}.gallery-experience .gallery-next{right:0}
 .gallery-experience .gallery-controls{grid-template-columns:1fr;gap:11px;min-height:76px}
 .gallery-experience .gallery-status{grid-column:1;grid-row:2;justify-self:center;font-size:.72rem}
 .gallery-experience .gallery-filmstrip{grid-column:1;grid-row:1;gap:8px}
 .gallery-experience .gallery-thumbnail{width:48px;height:38px}
 .gallery-experience .gallery-error{font-size:.8rem;bottom:8px;padding:12px 14px;max-width:85%}
 .gallery-experience .has-single-image{min-height:28px}
 .gallery-experience .has-single-image .gallery-status{grid-row:1}
}
@media(max-height:500px) and (orientation:landscape){
 .gallery-experience .gallery-shell{gap:7px;padding:8px 18px}
 .gallery-experience .gallery-toolbar{min-height:36px}
 .gallery-experience #gallery-title{font-size:.92rem}
 .gallery-experience .gallery-controls{grid-template-columns:1fr auto 1fr;min-height:38px;gap:10px}
 .gallery-experience .gallery-status{grid-column:1;grid-row:1;justify-self:start}
 .gallery-experience .gallery-filmstrip{grid-column:2;grid-row:1}
 .gallery-experience .gallery-thumbnail{width:42px;height:30px}
}
@media(prefers-reduced-motion:reduce){
 .gallery-dialog.gallery-experience::backdrop{transition:none}
 .gallery-experience .gallery-full-image,.gallery-experience .gallery-thumbnail,.gallery-experience .gallery-thumbnail::after,.gallery-experience .gallery-close,.gallery-experience .gallery-close span,.gallery-experience .gallery-prev,.gallery-experience .gallery-next,.gallery-experience .gallery-status::after{transition:none}
 .gallery-experience .gallery-thumbnail:hover{transform:none}
}
@media print{.gallery-dialog.gallery-experience{display:none!important}}
