/* Landing-page photo wall: a full-bleed canvas wider and taller than the screen.
   Native scrolling in both axes; at the bottom edge the scroll chains on to the page. */
#gallery .sec-head{margin-bottom:34px}
.wall-frame{position:relative;margin-top:8px;border-block:1px solid var(--line)}
.wall{height:calc(100svh - 72px);min-height:460px;overflow:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto;
  cursor:grab;scrollbar-width:thin;scrollbar-color:rgba(157,92,255,.45) transparent;outline:none;-webkit-overflow-scrolling:touch}
.wall:focus-visible{box-shadow:inset 0 0 0 2px var(--aqua)}
.wall.dragging{cursor:grabbing;user-select:none}
.wall.dragging .wt{pointer-events:none}
.wall-inner{width:max(240vw,2600px);padding:14px}
.wall-cols{columns:230px;column-gap:12px}
.wt{display:block;margin-bottom:12px;break-inside:avoid;border-radius:10px;overflow:hidden;background:var(--plum);position:relative;cursor:zoom-in}
.wt img{width:100%;height:auto;display:block;transition:transform .7s cubic-bezier(.16,1,.3,1),filter .5s;-webkit-user-drag:none}
.wt:hover img{transform:scale(1.04);filter:saturate(1.15)}
.wt:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}
.wall-end{position:sticky;left:0;width:min(100vw,100%);max-width:calc(100vw - 28px);text-align:center;padding:40px 16px 56px;
  font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.5rem;color:var(--muted)}
/* soft edges so the canvas reads as continuing past the frame */
.wall-frame::before,.wall-frame::after{content:"";position:absolute;top:0;bottom:0;width:min(9vw,110px);pointer-events:none;z-index:2}
.wall-frame::before{left:0;background:linear-gradient(90deg,var(--void),transparent)}
.wall-frame::after{right:0;background:linear-gradient(270deg,var(--void),transparent)}
.wall-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:3;display:inline-flex;align-items:center;gap:10px;
  font-size:.86rem;color:var(--cream);background:rgba(13,6,32,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:999px;padding:.6em 1.15em;pointer-events:none;white-space:nowrap;
  box-shadow:0 12px 30px -14px rgba(0,0,0,.8);transition:opacity .6s,transform .6s cubic-bezier(.16,1,.3,1)}
.wall-hint svg{width:18px;height:18px;stroke:var(--aqua)}
.wall-hint.gone{opacity:0;transform:translate(-50%,10px)}
@media(max-width:640px){.wall-inner{width:max(260vw,980px);padding:8px}.wall-cols{columns:140px;column-gap:8px}.wt{margin-bottom:8px;border-radius:8px}}
.wall-meta{margin-top:16px;font-size:.95rem;color:var(--muted)}
.wall-meta a{color:var(--aqua);text-decoration:underline;text-underline-offset:3px}
