.hotel-wall{height:100vh;height:100svh;position:relative;overflow:hidden;isolation:isolate;background:#302c28;color:#f8f7f4;scroll-margin-top:-114px}
.drift-viewport{position:absolute;inset:0;perspective:none;overflow:hidden}
.drift-viewport:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#302c2880,transparent 17%,transparent 83%,#302c2880);z-index:2}
.drift-plane{position:absolute;width:max(1072px,100%);left:50%;top:-300px;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;transform:translateX(-50%);transform-origin:50% 380px;transition:transform .6s}
.drift-column{min-width:0;position:relative;z-index:0}
.drift-column:has(.drift-tile:hover),.drift-column:has(.drift-tile:focus-visible){z-index:5}
.drift-column:nth-child(even){padding-top:95px}
.drift-track{animation:hotel-drift var(--duration) linear infinite;animation-delay:var(--delay);will-change:transform}
.drift-group{display:grid;gap:18px;padding-bottom:18px}
.drift-tile{position:relative;display:block;width:100%;height:132px;border:0;padding:0;overflow:hidden;background:#48413b;color:#fff;text-align:left;cursor:pointer;font:inherit;box-shadow:0 8px 24px #15110e24;transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s,filter .3s;transform-origin:center;filter:brightness(.9)}
.drift-tile img{display:block;width:100%;height:100%;object-fit:cover}
.drift-tile span{position:absolute;inset:auto 0 0;padding:36px 16px 14px;background:linear-gradient(transparent,#15110ed9);font-size:12px;line-height:1.5;font-weight:500}
.drift-tile:hover,.drift-tile:focus-visible{filter:brightness(1.12);outline:2px solid #e7e0d2;outline-offset:-2px}
.hotel-wall:is(.is-viewing,.is-offscreen) .drift-track,.hotel-wall:focus-within .drift-track{animation-play-state:paused}
@keyframes hotel-drift{to{transform:translateY(-50%)}}
.hotel-lightbox{padding:46px 18px 0;border:1px solid #b8a992;background:#f8f7f4;color:#302c28;width:min(880px,90vw);max-height:90dvh;overflow:auto}
.hotel-lightbox::backdrop{background:#211b16d9;backdrop-filter:blur(6px)}
.hotel-lightbox>img{display:block;width:100%;height:min(60vh,570px);object-fit:contain;background:#e7e0d2}
.photo-close{position:absolute;right:12px;top:2px;font-size:30px;background:none;border:0;color:inherit;cursor:pointer;width:40px;height:40px}
.photo-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0}
.photo-caption h2{font-size:20px;font-weight:500;text-align:center;margin:0}
.photo-caption button{background:none;border:1px solid #b8a992;color:inherit;font-size:22px;width:42px;height:42px;flex-shrink:0;cursor:pointer}
@media(max-width:760px){.hotel-wall{scroll-margin-top:-90px}.drift-plane{width:1072px;gap:18px;top:-300px;transform:translateX(-50%)}.drift-tile{height:132px}.drift-tile span{font-size:13px;padding:28px 10px 10px}.drift-group{gap:18px;padding-bottom:18px}.photo-caption h2{font-size:16px}.hotel-lightbox{width:92vw;padding:42px 12px 0}}
@media(prefers-reduced-motion:reduce){.drift-track{animation-play-state:paused}.drift-plane,.drift-tile{transition:none}}

/* Raise the entire photograph above adjacent tracks without disturbing the loop. */
@media(hover:hover) and (pointer:fine){
  .drift-tile:hover{transform:translateY(-8px) scale(1.12);z-index:10;filter:brightness(1.06);box-shadow:0 22px 44px #15110e80;outline:1px solid #e7e0d2}
}
.drift-tile:focus-visible{transform:translateY(-8px) scale(1.12);z-index:10;box-shadow:0 22px 44px #15110e80}
@media(prefers-reduced-motion:reduce){.drift-tile:hover,.drift-tile:focus-visible{transform:none}}
