.gallery-root{--intro-fg:#000;--caption-grad-from:rgb(238 238 238/0.75);--caption-grad-to:rgb(214 214 214/0.75);--caption-inset:rgb(255 255 255/0.9);--caption-fg:#111;--caption-outline:rgb(0 0 0/0.15);--focus-ring:rgb(0 0 0/0.6);--ease:cubic-bezier(0.22,0.61,0.18,1);--zoom-dur:0.69s;--zoom-dim:0.5;--gap:2px;--edge-gap:clamp(16px,4svh,40px)}html.dark .gallery-root{--intro-fg:#eee;--caption-grad-from:rgb(56 65 69/0.75);--caption-grad-to:rgb(41 49 51/0.75);--caption-inset:rgb(255 255 255/0.25);--caption-fg:#eee;--caption-outline:rgb(0 0 0/0.75);--focus-ring:rgb(255 255 255/0.85);--zoom-dim:0.25}.gallery-back{margin-block:4px 12px}.gallery-page{container-type:inline-size;inline-size:100%}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:calc((100cqw - 2 * var(--gap)) / 3);grid-auto-flow:dense;gap:var(--gap);margin:0;padding:0;list-style:none}.gallery>li{position:relative;min-inline-size:0;margin:0;transition:opacity var(--zoom-dur) var(--ease)}.gallery:not(.zooming)>li:not(.intro){transition:opacity .25s var(--ease),box-shadow .15s var(--ease)}@media (hover:hover){.gallery:not(.zooming)>li:not(.intro):hover{opacity:.9}}.gallery:not(.zooming)>li:not(.intro):focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--focus-ring)}.gallery:not(.zooming)>li:not(.intro).pressed{opacity:.8;transition:opacity .09s ease-out}.gallery .large{grid-row:span 2}.gallery .large,.gallery .wide{grid-column:span 2}.gallery .large.wide{grid-column:span 3;grid-row:span 2}.gallery .tall{grid-row:span 2}.gallery .large.tall{grid-column:span 2;grid-row:span 3}.gallery .intro{grid-column:1/-1;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px;color:var(--intro-fg);font-size:18px;line-height:24px;text-align:center;text-wrap:pretty}.gallery .intro h1{font-weight:400;font-size:40px;line-height:1.1;letter-spacing:-.02em;text-wrap:balance}.gallery .intro p{max-inline-size:400px;opacity:.75}.gallery .intro .intro-mark{margin-block:12px}.gallery .intro .intro-mark path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.gallery .intro a{color:inherit;text-decoration:underline;text-underline-offset:3px}.gallery .intro a:focus-visible,.gallery .intro a:hover{opacity:.75}.gallery .intro a:active{opacity:.5}.gallery .fill{overflow:hidden}.gallery .fill img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.gallery figcaption{display:none}@media (min-width:480px){.gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:calc((100cqw - 3 * var(--gap)) / 4)}.gallery .intro{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;padding:clamp(32px,3.2cqw,64px)}}@media (min-width:960px){.gallery{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:calc((100cqw - 4 * var(--gap)) / 5)}}@media (min-width:1600px){.gallery{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:calc((100cqw - 5 * var(--gap)) / 6)}.gallery .intro.large.wide{grid-column:span 2;grid-row:span 2}}@media (min-width:2400px){.gallery{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:calc((100cqw - 6 * var(--gap)) / 7)}}.gallery .fill{cursor:zoom-in}.gallery.zooming{position:fixed;inset-block-start:0;z-index:50;transform-origin:0 0;touch-action:none;cursor:zoom-out}.gallery.zooming .fill{cursor:inherit}.gallery.zooming>li:not(.is-focused),.gallery.zooming>li:not(.is-focused) .fill{cursor:zoom-in}.gallery.zooming.dimmed>li{opacity:var(--zoom-dim)}.gallery.zooming.dimmed>li.is-focused{opacity:1}.gallery.zooming.moving{will-change:transform}.gallery.zooming.animate{transition:transform var(--zoom-dur) var(--ease)}.gallery.warm{will-change:transform}@keyframes zoom-nudge{0%{translate:0 0;animation-timing-function:cubic-bezier(.55,0,.85,.28)}30%{translate:var(--nudge-x,0) var(--nudge-y,0);animation-timing-function:cubic-bezier(.14,.92,.28,1)}60%{translate:calc(var(--nudge-x, 0) * -.45) calc(var(--nudge-y, 0) * -.45);animation-timing-function:cubic-bezier(.2,.75,.34,1)}82%{translate:calc(var(--nudge-x, 0) * .16) calc(var(--nudge-y, 0) * .16);animation-timing-function:ease-out}to{translate:0 0}}.gallery.zooming.nudging,.zoom-hero.nudging{animation:zoom-nudge .26s var(--ease)}@media (min-width:768px){.gallery.zooming.nudging,.zoom-hero.nudging{animation-duration:.34s}}.zoom-hero{position:fixed;z-index:55;margin:0;opacity:0;pointer-events:none;transform:translateX(0)}.zoom-hero.show{opacity:1;transition:opacity .16s ease;will-change:transform}.scroll-top,.zoom-caption p,.zoom-close{border-radius:999px;background:linear-gradient(to bottom,var(--caption-grad-from),var(--caption-grad-to));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--caption-fg);box-shadow:0 0 0 .5px var(--caption-outline),0 6px 24px -8px rgba(0,0,0,.15),0 0 16px rgba(0,0,0,.05),inset 0 .5px 1px var(--caption-inset)}.zoom-caption{position:fixed;inset-inline:0;inset-block-end:0;z-index:60;display:flex;justify-content:center;padding:var(--edge-gap) 24px;pointer-events:none;font-size:16px;letter-spacing:.04em;text-align:center;opacity:0;transition:opacity .45s ease}.zoom-caption.show{opacity:1;transition:opacity var(--zoom-dur) var(--ease)}.zoom-caption p{max-inline-size:100%;min-inline-size:0;margin:0;padding:11px 20px 13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zoom-caption a{pointer-events:auto;color:inherit;text-decoration:underline;text-underline-offset:3px}.zoom-caption a:focus-visible,.zoom-caption a:hover{opacity:.75}.zoom-caption a:active{opacity:.5}.scroll-top,.zoom-close{position:fixed;z-index:61;display:grid;place-items:center;inline-size:44px;block-size:44px;padding:0;border:0;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .35s ease,scale .12s ease}.scroll-top svg,.zoom-close svg{inline-size:16px;block-size:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.scroll-top.show,.zoom-close.show{opacity:1;pointer-events:auto}.scroll-top.show:focus-visible,.scroll-top.show:hover{opacity:.8}.scroll-top.show:active{scale:.92}.zoom-close{inset-block-start:24px;inset-inline-end:24px;inline-size:48px;block-size:48px;border:1px solid rgb(255 255 255/.2);border-radius:999px;background:rgb(0 0 0/.6);color:white;box-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.zoom-close svg{inline-size:24px;block-size:24px}.zoom-close.show:hover{background:rgb(239 68 68/.2);color:rgb(248 113 113)}.zoom-close.show:focus-visible{outline:2px solid rgb(255 255 255/.5);outline-offset:2px}.scroll-top{inset-block-end:var(--edge-gap);inset-inline-end:var(--edge-gap)}@media (max-width:767px){.scroll-top{display:none}}.zoom-location{position:fixed;inset-block-end:var(--edge-gap);inset-inline-start:var(--edge-gap);z-index:61;display:block;padding:5px;border:0;border-radius:20px;cursor:pointer;pointer-events:auto;background:linear-gradient(to bottom,var(--caption-grad-from),var(--caption-grad-to));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 0 0 .5px var(--caption-outline),0 6px 24px -8px rgba(0,0,0,.15),0 0 16px rgba(0,0,0,.05),inset 0 .5px 1px var(--caption-inset)}.zoom-location-map{position:relative;display:block;inline-size:132px;block-size:84px;border-radius:15px;overflow:hidden}.zoom-location .maplibregl-canvas,.zoom-location .maplibregl-map{pointer-events:none}.zoom-map-pin{display:block;inline-size:12px;block-size:12px;border-radius:999px;background:#ef4444;box-shadow:0 0 0 2px #fff,0 1px 4px rgba(0,0,0,.5)}.zoom-device{position:fixed;inset-block-end:var(--edge-gap);inset-inline-end:var(--edge-gap);z-index:61;pointer-events:none;font-size:16px;letter-spacing:.04em}.zoom-device p{display:flex;align-items:center;gap:8px;margin:0;max-inline-size:40vw;padding:11px 18px 11px 14px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(to bottom,var(--caption-grad-from),var(--caption-grad-to));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--caption-fg);box-shadow:0 0 0 .5px var(--caption-outline),0 6px 24px -8px rgba(0,0,0,.15),0 0 16px rgba(0,0,0,.05),inset 0 .5px 1px var(--caption-inset)}.zoom-device svg{flex:none;inline-size:17px;block-size:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.75}@media (max-width:767px){.gallery-root{--mobile-map-column:142px;--mobile-pill-gap:12px}.gallery-root:has(.zoom-location) .zoom-caption{inset-inline-start:calc(var(--edge-gap) + var(--mobile-map-column) + var(--mobile-pill-gap));inset-inline-end:var(--edge-gap);inset-block-end:var(--edge-gap);justify-content:flex-end;padding:0}.gallery-root:has(.zoom-location) .zoom-device{inline-size:calc(100vw - var(--edge-gap) - var(--edge-gap) - var(--mobile-map-column) - var(--mobile-pill-gap))}.gallery-root:has(.zoom-location) .zoom-device p{max-inline-size:100%}.gallery-root:has(.zoom-location):has(.zoom-device) .zoom-caption{inset-block-end:calc(var(--edge-gap) + 58px)}.gallery-root:not(:has(.zoom-location)):has(.zoom-device) .zoom-caption{inset-block-end:58px}}.zoom-map-full{position:fixed;inset:0;z-index:200;overflow:hidden;background:#000;will-change:clip-path}.zoom-map-full .maplibregl-map{position:absolute;inset:0;inline-size:100%;block-size:100%}.zoom-map-close{position:fixed;inset-block-start:24px;inset-inline-end:24px;z-index:202;display:grid;place-items:center;inline-size:48px;block-size:48px;padding:0;border:1px solid rgb(255 255 255/.2);border-radius:999px;background:rgb(0 0 0/.6);color:#fff;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.zoom-map-close svg{inline-size:24px;block-size:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.zoom-map-close:hover{background:rgb(239 68 68/.2);color:rgb(248 113 113)}.gallery-chrome-push{transition:transform .69s cubic-bezier(.22,.61,.18,1),opacity .69s cubic-bezier(.22,.61,.18,1);will-change:transform}.gallery-chrome-push.gallery-chrome-out{transform:translateX(-110%);opacity:0;pointer-events:none}.gallery-back.gallery-chrome-out,.gallery-title.gallery-chrome-out{transform:translateY(-200%)}@media (prefers-reduced-motion:reduce){.gallery-chrome-push{transition-duration:.01ms}.gallery-root *,.gallery-root :after,.gallery-root :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}