/* Purposeful motion: photography moves; reading and form controls stay still. */
:root{--motion-ease:cubic-bezier(.22,.61,.36,1)}
.hero>img,.hero>video{animation:cinema-arrive 1000ms var(--motion-ease) both}
.page-hero>img{animation:scene-arrive 1000ms var(--motion-ease) both}
.hero-bottom{animation:caption-arrive 650ms 250ms var(--motion-ease) both}
@keyframes cinema-arrive{from{opacity:.35}to{opacity:1}}
@keyframes scene-arrive{from{opacity:.4;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@keyframes caption-arrive{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
[data-reveal]{--reveal-delay:0ms;transition:opacity 700ms var(--motion-ease) var(--reveal-delay),clip-path 850ms var(--motion-ease) var(--reveal-delay),translate 700ms var(--motion-ease) var(--reveal-delay)}
.motion-pending[data-reveal="mask"]{clip-path:inset(0 0 100% 0);opacity:.65}
.motion-pending[data-reveal="soft"]{opacity:0;translate:0 20px}
.is-visible[data-reveal="mask"]{clip-path:inset(0);opacity:1}
.is-visible[data-reveal="soft"]{opacity:1;translate:0 0}
.editorial-main{position:absolute;inset:0;overflow:hidden;background:var(--sand)}
.editorial-main>img{transform:translate3d(0,var(--photo-shift,0px),0) scale(1.08)}
.editorial-photo .inset-photo{z-index:2;overflow:hidden}
.editorial-main .photo-footnote{position:absolute;bottom:18px;left:20px;font-size:9px;color:white;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 1px 7px #0009}
.article-hero{overflow:hidden}
.journey-card .image-box img,.stay-card img,.guide-image img{transition:transform 400ms var(--motion-ease),opacity 450ms var(--motion-ease)}
.image-box .stay-alternate,.stay-card .stay-alternate{position:absolute;inset:0;opacity:0}
.experience-grid{transition:grid-template-columns 450ms var(--motion-ease)}
.experience-card img{transition:transform 450ms var(--motion-ease),filter 350ms var(--motion-ease)}
.experience-caption{transition:translate 350ms var(--motion-ease)}
.experience-note{font-size:11px;line-height:1.65;color:#f4eadc;margin-top:14px;transition:opacity 350ms var(--motion-ease),translate 350ms var(--motion-ease)}
.experience-caption small{display:block}
.journey-rail-hint{display:none}
.plan-section{isolation:isolate}
.plan-section:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#34271fee,#34271ff5),url('/assets/desert-evening.webp') center/cover no-repeat}
.plan-layout{position:relative}
@media(hover:hover) and (pointer:fine){
 .journey-card:hover .image-box>img:first-child,.journey-card:focus-visible .image-box>img:first-child{transform:scale(1.035)}
 .stay-card:hover .stay-alternate,.stay-card:focus-visible .stay-alternate,.journey-card:hover .stay-alternate,.journey-card:focus-visible .stay-alternate{opacity:1;transform:scale(1.025)}
 .experience-caption{translate:0 45px}
 .experience-note{opacity:0;translate:0 7px;min-height:40px}
 .experience-card:is(:hover,:focus-visible) .experience-caption{translate:0 0}
 .experience-card:is(:hover,:focus-visible) .experience-note{opacity:1;translate:0 0}
 .experience-card:is(:hover,:focus-visible) img{transform:scale(1.045)}
}
@media(min-width:1151px) and (hover:hover) and (pointer:fine){
 .experience-grid:has(.experience-card:nth-child(1):is(:hover,:focus-visible)){grid-template-columns:1.4fr .92fr .92fr .92fr}
 .experience-grid:has(.experience-card:nth-child(2):is(:hover,:focus-visible)){grid-template-columns:1fr 1.4fr .92fr .92fr}
 .experience-grid:has(.experience-card:nth-child(3):is(:hover,:focus-visible)){grid-template-columns:1fr .92fr 1.4fr .92fr}
 .experience-grid:has(.experience-card:nth-child(4):is(:hover,:focus-visible)){grid-template-columns:1fr .92fr .92fr 1.4fr}
}
/* Galleries have explicit controls, never automatic advance. */
.photo-gallery{margin:45px 0 55px;min-width:0}
.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}
.gallery-heading .eyebrow{margin:0}
.gallery-count{font-size:10px;color:var(--muted);white-space:nowrap}
.gallery-stage{position:relative;background:var(--sand);overflow:hidden;aspect-ratio:16/10;max-height:650px}
.gallery-open{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;color:var(--ink);touch-action:pan-y pinch-zoom}
.gallery-visual{position:relative;width:100%;height:100%;overflow:hidden}
.gallery-visual>img{position:absolute;inset:0;object-fit:contain;transition:opacity 400ms var(--motion-ease)}
.gallery-visual>img.gallery-incoming{opacity:0}
.gallery-expand{position:absolute;right:17px;bottom:17px;padding:7px 13px;background:var(--paper);font-size:10px;box-shadow:0 2px 10px #0001}
.gallery-controls{display:flex;gap:9px}
.gallery-nav{display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);color:var(--brown);width:44px;height:44px;font-size:21px;line-height:1;transition:background 250ms}
.gallery-nav:hover{background:var(--sand)}
.gallery-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0}
.gallery-caption{font-size:11px;line-height:1.6;color:var(--muted);margin:0!important}
.gallery-thumbnails{display:flex;gap:10px;overflow-x:auto;padding:5px 3px 8px;scrollbar-width:thin;scroll-snap-type:x proximity}
.gallery-thumb{border:1px solid transparent;background:transparent;padding:3px;flex:0 0 76px;height:64px;opacity:.6;scroll-snap-align:start;transition:opacity 250ms,border-color 250ms}
.gallery-thumb[aria-pressed="true"],.gallery-thumb:hover{opacity:1;border-color:var(--brown)}
.gallery-thumb img{object-fit:cover}
.photo-lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:24px 4%;border:0;background:#211b16;color:var(--paper);overflow:hidden}
.photo-lightbox::backdrop{background:#211b16}
.lightbox-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px}
.lightbox-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}
.lightbox-heading h2{font:400 13px var(--sans);letter-spacing:.05em}
.lightbox-close{background:transparent;color:var(--paper);border:1px solid #f8f4ec50;padding:9px 16px;min-height:44px;font-size:11px}
.lightbox-stage{min-height:0;touch-action:pan-y pinch-zoom}
.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:20px}
.lightbox-footer .gallery-caption,.lightbox-footer .gallery-count{color:#d3c7b7}
.lightbox-footer .gallery-controls{flex-shrink:0}
.lightbox-footer .gallery-nav{background:transparent;color:var(--paper);border-color:#f8f4ec50}
body:has(.photo-lightbox[open]){overflow:hidden}
@media(max-width:600px){
 #journeys .card-grid{display:flex;overflow-x:auto;gap:20px;scroll-snap-type:x proximity;scroll-padding:0 2px;padding:0 2px 20px;scrollbar-width:thin;scrollbar-color:var(--gold) var(--sand)}
 #journeys .journey-card{flex:0 0 88%;min-width:0;scroll-snap-align:start}
 #journeys .card-meta{flex-wrap:wrap;gap:6px}
 .journey-rail-hint{display:block;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:13px 0 0}
 .experience-note{font-size:10px;line-height:1.5;margin-top:10px}
 .experience-caption{translate:0 0}
 .experience-note{opacity:1;translate:0 0}
 .experience-card{min-height:330px}
 .photo-gallery{margin:30px 0 40px}
 .gallery-stage{aspect-ratio:4/3}
 .gallery-bottom{gap:12px}
 .gallery-caption{font-size:10px}
 .gallery-controls{gap:7px}
 .gallery-thumb{flex-basis:66px;height:57px}
 .gallery-expand{bottom:10px;right:10px;padding:6px 10px;font-size:9px}
 .photo-lightbox{padding:18px 5%}
 .lightbox-footer{flex-wrap:wrap;gap:12px}
 .lightbox-footer .gallery-caption{flex:1 0 100%}
}
@media(hover:none){.journey-card:hover img,.experience-card:hover img,.stay-card:hover img,.guide-row:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){
 [data-reveal],.motion-pending[data-reveal]{opacity:1!important;clip-path:none!important;translate:none!important}
 .editorial-main>img{transform:none!important}
 .experience-grid{grid-template-columns:1.15fr 1fr 1fr 1fr!important}
 .experience-caption,.experience-note{translate:none!important;opacity:1!important}
 .journey-card:hover img,.experience-card:hover img,.stay-card:hover img,.guide-row:hover img{transform:none!important}
 .gallery-visual>img{transition:none!important}
 @media(max-width:1150px){.experience-grid{grid-template-columns:1fr 1fr!important}}
}
.gallery-visual{display:block}.content-layout>*{min-width:0}

/* Preserve the existing photo while the next image decodes. */
.hero>video[hidden]{display:none}
.gallery-visual[aria-busy="true"]:after{content:'Loading photograph…';position:absolute;bottom:16px;left:16px;color:var(--ink);background:var(--paper);padding:6px 12px;font:10px var(--sans);opacity:0;animation:gallery-loading 180ms 180ms forwards;pointer-events:none}
@keyframes gallery-loading{to{opacity:1}}
@media(prefers-reduced-motion:reduce){.gallery-visual[aria-busy="true"]:after{opacity:1}}
