/* Event scenes read top to bottom on one scroll surface at every viewport. */
.stage.is-event{display:block;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;perspective:none}
.stage.is-event>.scene-copy{max-width:1600px;margin-inline:auto;width:100%;min-width:0;overflow:visible;padding:0}
.stage.is-event #scene-title{max-width:none;margin-bottom:24px}
.stage.is-event .scene-copy>#visual{display:flex;flex-direction:column;justify-content:flex-start;gap:16px;min-width:0;min-height:0;width:100%;height:auto;max-height:none;overflow:visible;margin:0 0 26px;transform:none;transform-style:flat}
.stage.is-event .visual>.scene-movie{display:block;flex:none;align-self:stretch;width:100%;max-width:none;max-height:none;margin:0}
.stage.is-event .visual>.scene-movie[hidden]{display:none}
.stage.is-event .scene-movie .movie-frame{min-height:0;max-height:none;aspect-ratio:16/9}
.stage.is-event .visual>.photo-wall.slideshow.intrinsic-preview{width:min(100%,var(--preview-card-width));align-self:flex-start;flex:none;height:auto;min-height:0;max-height:none}
.stage.is-event .slideshow.intrinsic-preview .slide-frame{inset:0;left:0;bottom:auto;width:100%;height:100%;transform:none;border-radius:14px;background:transparent}
.stage.is-event .slideshow.intrinsic-preview .slide-frame img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.stage.is-event .slideshow.intrinsic-preview .slide-caption{font-size:14px;left:20px;bottom:20px;max-width:calc(100% - 40px)}
.stage.is-event .visual>.map-shell{flex:none;width:100%;height:clamp(360px,64dvh,720px);min-height:360px;max-height:none}
.stage.is-event .visual>.map-shell[hidden]{display:none}
.stage.is-event .visual>.media-actions{display:flex;flex:none;margin:0}
.stage.is-event .scene-copy>:is(.scene-description,.scene-note,.kid,.payment,.links,.rating){max-width:82ch}
.stage.is-event .scene-description{margin-top:0}
@media(max-width:1000px){
 .stage.is-event #scene-title{margin-bottom:20px}
 .stage.is-event .scene-copy>#visual{gap:12px;margin-bottom:22px}
 .stage.is-event .slideshow.intrinsic-preview .slide-caption{font-size:12px;left:14px;bottom:14px;max-width:calc(100% - 28px)}
 .stage.is-event .visual>.map-shell{height:460px;min-height:360px}
}
@media(max-height:560px) and (min-width:600px){
 .stage.is-event{display:block;overflow-y:auto}
 .stage.is-event .scene-copy>#visual{margin-top:0}
 .stage.is-event .visual>.map-shell{height:360px;min-height:360px}
}

/* Full screen keeps the same map element, interaction handlers and provider UI. */
#expand-map{display:none}
.stage.is-event #expand-map:not([hidden]){display:flex}
.map-shell:fullscreen{width:100vw!important;height:100dvh!important;min-height:0!important;max-height:none!important;border-radius:0}

.map-shell.is-expanded{position:fixed!important;inset:0!important;z-index:1000;width:100vw!important;height:100dvh!important;min-height:0!important;max-height:none!important;border-radius:0}

.stage.entering.is-event .scene-copy{animation-name:scene-visual-fade}

/* Small originals need a shallow, quiet slot instead of a tall empty mat. */
.stage.is-event .slideshow.event-contained .slide-frame{background:transparent}
.stage.is-event .slideshow.event-contained .slide-frame:after{display:none}
.stage.is-event .slideshow.event-contained .slide-caption{width:max-content;right:auto;left:50%;transform:translateX(-50%);bottom:10px;max-width:calc(100% - 24px);padding:5px 8px;border-radius:5px;background:#173e36df}

/* A consistent media edge, including native videos, Look Around and full galleries. */
:root{--media-radius:18px}
.movie-frame,.video-card :is(video,iframe),.video-poster,.journey-look-around[data-layout="inline"],.journey-look-around-host,.map-shell,.slideshow.intrinsic-preview .slide-frame,#gallery-image{border-radius:var(--media-radius);overflow:hidden}
.movie-frame{clip-path:inset(0 round var(--media-radius))}
.movie-frame :is(video,iframe){border-radius:inherit}
.stage.is-event .slideshow.intrinsic-preview .slide-frame{border-radius:var(--media-radius)}
.slide-frames,.gallery-stage{touch-action:pan-y pinch-zoom}
.slide-frame img,#gallery-image{user-select:none;-webkit-user-drag:none}
@media(max-width:600px){:root{--media-radius:14px}}
#visual .scene-movie .movie-frame,#visual .scene-movie .movie-frame :is(video,iframe){border-radius:var(--media-radius)}

/* One continuous vertical handoff; the shell and atmosphere stay in place. */
:root{view-transition-name:none}
#stage{view-transition-name:itinerary}
::view-transition{pointer-events:none}
::view-transition-group(itinerary){animation:none;overflow:clip}
::view-transition-old(itinerary),::view-transition-new(itinerary){
 animation-duration:480ms;animation-timing-function:cubic-bezier(.22,.68,.2,1);
 animation-fill-mode:both;mix-blend-mode:normal;height:100%;object-fit:fill;
}
::view-transition-old(itinerary){animation-name:itinerary-out}
::view-transition-new(itinerary){animation-name:itinerary-in}
@keyframes itinerary-out{to{transform:translateY(-100%)}}
@keyframes itinerary-in{from{transform:translateY(100%)}}
:root[data-scene-direction="back"]::view-transition-old(itinerary){animation-name:itinerary-back-out}
:root[data-scene-direction="back"]::view-transition-new(itinerary){animation-name:itinerary-back-in}
@keyframes itinerary-back-out{to{transform:translateY(100%)}}
@keyframes itinerary-back-in{from{transform:translateY(-100%)}}
@media(prefers-reduced-motion:reduce){
 ::view-transition-old(itinerary),::view-transition-new(itinerary){animation:none}
}

/* A day's impression: one still date, moving media around it. */
.stage.is-day .scene-copy{max-width:1600px;width:100%;padding:32px}
.day-atlas{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.7fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(240px,30dvh));gap:20px;align-items:stretch;max-width:1500px;margin:0 auto}
.day-calendar{grid-column:2;grid-row:1/3;align-self:center;text-align:center;padding:26px 10px;color:var(--atmo-ink,var(--ink));position:relative;z-index:1}
.day-calendar time small{display:block;padding:13px 10px;border-bottom:1px solid currentColor;font-size:15px;font-weight:600;letter-spacing:.14em}
.day-calendar time{display:block;width:min(100%,230px);margin:0 auto 24px;border:1px solid currentColor;border-radius:22px;overflow:hidden;background:#fff3;box-shadow:0 14px 35px #193d4310}
.day-calendar time em{display:block;font-style:normal;font-size:15px;font-weight:500;letter-spacing:.14em;margin:12px 0 20px}

.day-calendar time strong{display:block;font:100px/.95 'Newsreader',serif;padding:18px 8px 5px}
.stage.is-day #scene-title{font:500 clamp(25px,2.4vw,38px)/1.08 'Newsreader',serif;margin:0 auto 17px;max-width:260px}
.calendar-day-count{font-size:10px;letter-spacing:.14em;opacity:.75}
.day-tile{position:relative;margin:0;border-radius:22px;overflow:hidden;min-width:0;isolation:isolate}
.day-tile.tile-0{grid-column:1;grid-row:1}.day-tile.tile-1{grid-column:3;grid-row:1}.day-tile.tile-2{grid-column:1;grid-row:2}.day-tile.tile-3{grid-column:3;grid-row:2}
.day-tile img{width:100%;height:100%;object-fit:cover;display:block;animation:day-photo-in .7s ease both}
.day-tile figcaption{position:absolute;inset:auto 0 0;padding:45px 20px 20px;color:white;background:linear-gradient(transparent,#082728c9);font-size:15px;font-weight:500;line-height:1.3}
@keyframes day-photo-in{from{opacity:.3}to{opacity:1}}
.day-motion{background:#0c262b;display:flex;align-items:center}
.day-motion .scene-movie{width:100%;max-width:100%!important;display:flex;flex-direction:column;margin:0!important;gap:0!important}
.day-motion .movie-frame{width:100%;min-height:200px;aspect-ratio:16/9;overflow:hidden;border-radius:18px}
.day-motion .movie-frame :is(iframe,video){width:100%;height:100%;border:0;object-fit:contain;border-radius:18px;display:block}
.day-motion .movie-credit{color:#fff;padding:8px 12px;font-size:10px}.day-motion .movie-credit small{display:none}
.day-motion .movie-controls{gap:6px;padding:5px 10px;background:#f8f6ed;color:#183c35}.day-motion .movie-controls button{font-size:16px;padding:5px}.day-motion .movie-controls button span{display:none}.day-motion .movie-status:empty{display:none}
.day-flight{grid-column:1/4;grid-row:1/3;border-radius:22px;overflow:hidden;min-height:580px;background:#102d2a}.day-flight canvas{width:100%;height:100%;display:block}.day-atlas:has(.day-flight) .day-calendar{color:#fff;pointer-events:none;align-self:start}.day-atlas:has(.day-flight) .day-calendar time{background:#123d43c9}
.short-transfers{margin-top:24px;font-size:13px;line-height:1.6}.short-transfers details{padding:14px 0;border-top:1px solid #52787044}.short-transfers summary{cursor:pointer}.short-transfers i{margin-right:9px}.short-transfers p{font-size:13px}
.movie-controls .movie-seek{flex:1;min-width:70px;max-width:100%;accent-color:#456c61;cursor:pointer}
@media(max-width:1000px){.day-atlas{gap:14px;grid-template-columns:1fr 180px 1fr}.day-tile figcaption{font-size:13px;padding:35px 14px 14px}}
@media(max-width:1000px){.stage.is-day .scene-copy{padding:16px}.day-atlas{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:12px}.day-calendar{grid-column:1/3;grid-row:2;display:flex;flex-direction:column;padding:12px 0}.day-calendar time{width:180px;margin-bottom:16px}.day-calendar time strong{font-size:76px;padding-top:12px}.day-calendar time small{padding:8px}.day-calendar time em{margin-bottom:12px}.day-tile.tile-0{grid-column:1/3;grid-row:1;min-height:225px}.day-tile.tile-1{grid-column:1;grid-row:3;height:210px}.day-tile.tile-2{grid-column:2;grid-row:3;height:210px}.day-tile.tile-3{grid-column:1/3;grid-row:4;height:230px}.day-motion .movie-frame{min-height:200px}.day-tile.day-motion{grid-column:1/3;height:auto;min-height:250px}.day-atlas:has(.tile-1.day-motion) .tile-2{grid-row:4;grid-column:1}.day-atlas:has(.tile-1.day-motion) .tile-3{grid-row:4;grid-column:2}.day-atlas:has(.tile-2.day-motion) .tile-1{grid-row:4}.day-atlas:has(.tile-2.day-motion) .tile-3{grid-row:4;grid-column:2}.day-flight{grid-column:1/3;grid-row:1/4}}
@media(prefers-reduced-motion:reduce){.day-tile img{animation:none}}

/* Navigation floats over the content instead of reserving a bottom row. */
:root{--footer:0px}
.app{grid-template-rows:var(--header) minmax(0,1fr)}
body .scene-footer{position:fixed;right:24px;bottom:max(20px,env(safe-area-inset-bottom));z-index:25;width:auto;height:auto;padding:0;border:0;background:transparent!important;pointer-events:none}
.scene-footer .progress-area,.scene-footer #prev{display:none}
.scene-footer #next{pointer-events:auto;min-height:48px;padding:0 22px;font-size:14px;box-shadow:0 5px 22px #062c3440;border:1px solid #ffffff6b;background:#183f36;color:#fff}
.scene-footer #next:disabled{display:none}
.stage.is-event .scene-copy{padding-bottom:84px}
.nav-day .nav-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:42px;min-height:62px;flex:none;overflow:hidden;border:1px solid currentColor;border-radius:8px;background:#ffffff26;line-height:1;color:inherit}
.nav-date small{font-size:8px;letter-spacing:.09em;width:100%;padding:5px 0 4px;text-align:center;background:#ffffff40;border-bottom:1px solid #34594d30}.nav-date strong{font-size:20px;font-weight:600;padding-top:5px}.nav-date em{font-size:8px;font-style:normal;letter-spacing:.08em;padding:4px 0 5px}
@media(max-width:600px){body .scene-footer{right:16px;bottom:16px}.scene-footer #next{min-height:44px;padding:0 18px}.nav-day .nav-date{width:40px}}
.stage.is-day .day-motion .scene-movie{max-height:none;flex:none}
.stage.is-day .day-motion .scene-movie .movie-frame{flex:none;min-height:200px}
.stage.is-day .day-motion .scene-movie .movie-credit{color:#e2ece8;padding:8px 12px}

