/* Ojalma immersive gallery */
.photo-grid .photo[data-ojalma-gallery] {
  cursor: zoom-in;
  outline: none;
  position: relative;
}
.photo-grid .photo[data-ojalma-gallery]::after {
  align-items: center;
  background: rgb(238 225 201 / .84);
  border: 1px solid rgb(29 26 21 / .15);
  border-radius: 999px;
  bottom: .8rem;
  box-shadow: 0 .45rem 1.35rem rgb(38 25 16 / .17);
  color: #1d1a15;
  content: "+";
  display: flex;
  font: 500 1rem/1 "Helvetica Neue",Helvetica,Arial,sans-serif;
  height: 2rem;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: .8rem;
  scale: .88;
  translate: 0 .3rem;
  transition: opacity .22s cubic-bezier(.22,1,.36,1),scale .28s cubic-bezier(.22,1,.36,1),translate .28s cubic-bezier(.22,1,.36,1);
  width: 2rem;
  z-index: 5;
}
.photo-grid .photo[data-ojalma-gallery]:hover::after,
.photo-grid .photo[data-ojalma-gallery]:focus-visible::after { opacity:1;scale:1;translate:0 0; }
.photo-grid .photo[data-ojalma-gallery]:focus-visible { box-shadow:0 0 0 2px #b85838,0 0 0 7px rgb(184 88 56 / .17); }

.ojalma-gallery {
  align-items:center;
  display:flex;
  inset:0;
  justify-content:center;
  padding:clamp(.85rem,2.5vw,2.35rem);
  position:fixed;
  z-index:9999;
}
.ojalma-gallery[hidden] { display:none; }
.ojalma-gallery__backdrop {
  -webkit-backdrop-filter:blur(18px) saturate(.72);
  backdrop-filter:blur(18px) saturate(.72);
  background:radial-gradient(circle at 50% 34%,rgb(115 77 50 / .2),transparent 42%),rgb(43 28 20 / .9);
  border:0;
  inset:0;
  padding:0;
  position:absolute;
  animation:ojalmaGalleryBackdrop .42s cubic-bezier(.22,1,.36,1) both;
}
.ojalma-gallery__shell {
  display:grid;
  gap:clamp(.75rem,1.6vw,1.25rem);
  grid-template-rows:minmax(0,1fr) auto;
  max-height:calc(100dvh - clamp(1.7rem,5vw,4.7rem));
  max-width:min(94vw,86rem);
  pointer-events:none;
  position:relative;
  width:100%;
  z-index:1;
}
.ojalma-gallery__stage {
  align-items:center;
  display:flex;
  justify-content:center;
  min-height:0;
  pointer-events:auto;
  position:relative;
  touch-action:pan-y;
}
.ojalma-gallery__image {
  border-radius:.08rem;
  box-shadow:0 32px 90px rgb(8 5 3 / .48);
  display:block;
  height:auto;
  max-height:min(72dvh,58rem);
  max-width:min(88vw,76rem);
  object-fit:contain;
  opacity:0;
  transform-origin:top left;
  user-select:none;
  width:auto;
}
.ojalma-gallery__image.is-ready { opacity:1; }
.ojalma-gallery__close,.ojalma-gallery__nav {
  align-items:center;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  background:rgb(48 31 22 / .6);
  border:1px solid rgb(238 225 201 / .23);
  border-radius:999px;
  color:#f4e8d4;
  cursor:pointer;
  display:flex;
  justify-content:center;
  transition:background .22s ease,border-color .22s ease,scale .26s cubic-bezier(.22,1,.36,1);
}
.ojalma-gallery__close:hover,.ojalma-gallery__nav:hover { background:rgb(67 43 29 / .84);border-color:rgb(238 225 201 / .46);scale:1.04; }
.ojalma-gallery__close:focus-visible,.ojalma-gallery__nav:focus-visible,.ojalma-gallery__story-toggle:focus-visible { outline:2px solid #f0d0a2;outline-offset:4px; }
.ojalma-gallery__close { font-size:1.7rem;height:2.9rem;position:fixed;right:clamp(.9rem,2.3vw,2rem);top:clamp(.9rem,2.3vw,2rem);width:2.9rem; }
.ojalma-gallery__nav { font-size:1.05rem;height:2.8rem;position:fixed;top:50%;translate:0 -50%;width:2.8rem; }
.ojalma-gallery__prev { left:clamp(.7rem,2vw,1.7rem); }
.ojalma-gallery__next { right:clamp(.7rem,2vw,1.7rem); }
.ojalma-gallery__copy {
  color:#f3e5cf;
  margin:0 auto;
  max-width:min(58rem,88vw);
  pointer-events:auto;
  width:100%;
  animation:ojalmaGalleryCopy .62s .1s cubic-bezier(.22,1,.36,1) both;
}
.ojalma-gallery__heading { align-items:end;display:flex;gap:2rem;justify-content:space-between; }
.ojalma-gallery__title { font:500 clamp(1.35rem,3vw,2.15rem)/1.03 "Iowan Old Style",Baskerville,"Times New Roman",serif;margin:0; }
.ojalma-gallery__place,.ojalma-gallery__counter { color:rgb(243 229 207 / .66);font-size:.69rem;font-weight:700;letter-spacing:.13em;margin:.38rem 0 0;text-transform:uppercase; }
.ojalma-gallery__counter { flex:0 0 auto;margin:0 0 .1rem; }
.ojalma-gallery__story { border-top:1px solid rgb(243 229 207 / .2);margin-top:.85rem;padding-top:.7rem; }
.ojalma-gallery__story[hidden] { display:none; }
.ojalma-gallery__story-toggle { align-items:center;background:transparent;border:0;color:rgb(243 229 207 / .84);cursor:pointer;display:inline-flex;font:680 .7rem/1 "Helvetica Neue",Helvetica,Arial,sans-serif;gap:.55rem;letter-spacing:.12em;padding:.45rem 0;text-transform:uppercase; }
.ojalma-gallery__story-arrow { display:inline-block;font-size:1rem;transform:translateY(-.06rem);transition:rotate .36s cubic-bezier(.22,1,.36,1); }
.ojalma-gallery__story.is-open .ojalma-gallery__story-arrow { rotate:180deg; }
.ojalma-gallery__story-reveal { display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .44s cubic-bezier(.22,1,.36,1),opacity .34s ease; }
.ojalma-gallery__story.is-open .ojalma-gallery__story-reveal { grid-template-rows:1fr;opacity:1; }
.ojalma-gallery__story-reveal>div { overflow:hidden; }
.ojalma-gallery__story-text { background:rgb(75 49 33 / .52);border:1px solid rgb(243 229 207 / .12);box-shadow:0 1.2rem 3.6rem rgb(10 6 4 / .16);color:rgb(249 239 222 / .9);font:400 clamp(.95rem,1.7vw,1.08rem)/1.66 "Helvetica Neue",Helvetica,Arial,sans-serif;margin:.75rem 0 0;max-height:min(30vh,18rem);overflow-y:auto;padding:clamp(.95rem,2vw,1.35rem);white-space:pre-line; }
@keyframes ojalmaGalleryBackdrop { from{opacity:0} to{opacity:1} }
@keyframes ojalmaGalleryCopy { from{opacity:0;translate:0 .8rem} to{opacity:1;translate:0 0} }
@media(max-width:700px){
  .photo-grid .photo[data-ojalma-gallery]::after{opacity:.86;scale:.92;translate:0 0}
  .ojalma-gallery{padding:.75rem .75rem 1rem}
  .ojalma-gallery__shell{gap:.75rem;max-height:calc(100dvh - 1.75rem);max-width:100%}
  .ojalma-gallery__image{max-height:66dvh;max-width:94vw}
  .ojalma-gallery__nav{display:none}
  .ojalma-gallery__close{height:2.65rem;right:.82rem;top:.82rem;width:2.65rem}
  .ojalma-gallery__copy{max-width:92vw}
  .ojalma-gallery__heading{gap:1rem}
  .ojalma-gallery__counter{font-size:.62rem}
  .ojalma-gallery__story-text{max-height:24vh}
}
@media(prefers-reduced-motion:reduce){
  .ojalma-gallery__backdrop,.ojalma-gallery__copy{animation:none}
  .ojalma-gallery__story-reveal,.ojalma-gallery__story-arrow,.photo-grid .photo[data-ojalma-gallery]::after{transition:none}
}
