/* Day overviews are viewport-sized splash compositions, not abbreviated scroll pages. */
.page:has(>.stage.is-day){height:100dvh;min-height:100dvh;max-height:100dvh;overflow:clip}
.page>.stage.is-day{flex:1 1 0;min-height:0;overflow:hidden!important;padding-bottom:18px!important}
.page>.stage.is-day>.scene-copy{height:100%;min-height:0;overflow:hidden!important}
.page>.stage.is-day .day-atlas{height:100%;min-height:0;max-height:100%;overflow:visible}
.page>.stage.is-day .day-tile{min-height:0!important;min-width:0;overflow:hidden}
.page>.stage.is-day .day-tile img{display:block;width:100%;height:100%;object-fit:cover}
.page>.stage.is-day .day-motion{height:auto!important;min-height:0;align-items:stretch}
.page>.stage.is-day .day-motion .scene-movie{display:flex;flex-direction:column;height:100%;min-height:0;max-height:100%!important;gap:0}
.page>.stage.is-day .day-motion .movie-frame{flex:1 1 0;height:auto;min-height:0!important;max-height:none!important;aspect-ratio:auto}
.page>.stage.is-day .day-motion .scene-movie[data-provider="youtube"] .movie-frame{min-height:200px!important}
.page>.stage.is-day .day-motion .movie-frame :is(iframe,video){width:100%;height:100%;object-fit:contain}
.page>.stage.is-day .day-flight{height:100%;min-height:0}
.page>.stage.is-day .day-tile figcaption{overflow-wrap:anywhere;text-wrap:pretty}
@media(min-width:1001px){
 .page>.stage.is-day .day-atlas{grid-template-columns:minmax(0,1fr) minmax(148px,.65fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:16px}
 .page>.stage.is-day .day-calendar{min-height:0;align-self:center;padding:10px 0}
 .page>.stage.is-day .day-calendar time{width:min(100%,190px);margin-bottom:8px}
 .page>.stage.is-day .day-calendar time strong{font-size:clamp(60px,9vh,104px)}
 .page>.stage.is-day .day-tile figcaption{font-size:13px;line-height:1.3;padding:35px 14px 14px}
}
@media(max-width:1000px) and (min-height:561px),(max-width:599px){
 .page:has(>.stage.is-day)>.page-head{padding-block:22px 16px}
 .page:has(>.stage.is-day) .page-title{font-size:clamp(27px,7.1vw,36px);line-height:1.06}
 .page>.stage.is-day{padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
 .page>.stage.is-day .day-atlas{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;padding-top:58px}
 .page>.stage.is-day .day-atlas:has(>.day-motion){grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:minmax(200px,1.1fr) minmax(0,.9fr)}
 .page>.stage.is-day .day-atlas .day-calendar{position:absolute;top:0;left:0;right:0;width:auto;grid-area:auto;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;pointer-events:none}
 .page>.stage.is-day .day-calendar time{display:flex;align-items:center;justify-content:center;gap:14px;width:auto;margin:0;padding:5px 16px;border-radius:14px;backdrop-filter:blur(10px)}
 .page>.stage.is-day .day-calendar time strong{font-size:38px;line-height:1;padding:0}
 .page>.stage.is-day .day-calendar time :is(small,em){font-size:11px;line-height:1;padding:0;margin:0;border:0}
 .page>.stage.is-day .calendar-day-count{display:none}
 .page>.stage.is-day .day-tile:not(.day-motion){grid-area:auto;height:auto!important}
 .page>.stage.is-day .day-atlas:has(>.day-motion)>.day-motion{grid-column:1/-1!important;grid-row:1!important}
 .page>.stage.is-day .day-atlas:has(>.day-motion)>.day-tile:not(.day-motion){grid-column:span 2;grid-row:2}
 .page>.stage.is-day .day-atlas:has(>.day-tile:last-child:nth-child(4)):has(>.day-motion)>.day-tile:not(.day-motion){grid-column:span 3}
 .page>.stage.is-day .day-atlas:has(>.day-tile:last-child:nth-child(3)):has(>.day-motion)>.day-tile:not(.day-motion){grid-column:1/-1}
 .page>.stage.is-day .day-tile figcaption{padding:25px 8px 10px;font-size:11px;line-height:1.3}
 .page>.stage.is-day .day-flight{grid-column:1/-1;grid-row:1/-1}
 .page>.stage.is-day .day-atlas:has(>.day-flight){padding-top:0;grid-template-rows:minmax(0,1fr)}
 .page>.stage.is-day .day-atlas:has(>.day-flight) .day-calendar{top:12px;left:12px;right:auto;display:block}
 .page>.stage.is-day .day-atlas:has(>.day-flight) .day-calendar time{padding:6px 10px;gap:8px;display:flex}
}
@media(max-height:560px) and (min-width:600px){
 .page:has(>.stage.is-day)>.page-head{padding-block:12px 10px}
 .page:has(>.stage.is-day) .page-eyebrow{margin-bottom:7px}
 .page:has(>.stage.is-day) .page-title{font-size:26px;line-height:1.03}
 .page>.stage.is-day{padding-bottom:12px!important}
 .page>.stage.is-day .day-atlas{position:relative;display:grid;grid-template-columns:minmax(200px,1.35fr) minmax(0,1fr);grid-template-rows:34px repeat(3,minmax(0,1fr));gap:6px 12px;padding:0}
 .page>.stage.is-day .day-calendar{position:static;grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;padding:0;width:auto}
 .page>.stage.is-day .day-calendar time{display:flex;align-items:center;justify-content:center;gap:10px;width:auto;padding:3px 12px;margin:0;border-radius:10px}
 .page>.stage.is-day .day-calendar time strong{font-size:26px;line-height:1;padding:0}
 .page>.stage.is-day .day-calendar time :is(small,em){font-size:10px;line-height:1;margin:0;padding:0;border:0}
 .page>.stage.is-day .calendar-day-count{display:none}
 .page>.stage.is-day .day-atlas>.day-motion{grid-column:1!important;grid-row:1/5!important;height:auto!important}
 .page>.stage.is-day .day-atlas>.day-tile:not(.day-motion){grid-column:2;grid-row:auto;height:auto!important}
 .page>.stage.is-day .day-tile figcaption{padding:15px 8px 5px;font-size:11px;line-height:1.2}
 .page>.stage.is-day .day-atlas:not(:has(>.day-motion)){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:34px repeat(2,minmax(0,1fr));padding-top:0}
 .page>.stage.is-day .day-atlas:not(:has(>.day-motion))>.day-calendar{grid-column:1/-1;grid-row:1}
 .page>.stage.is-day .day-atlas:not(:has(>.day-motion))>.day-tile{grid-column:auto;grid-row:auto}
 .page>.stage.is-day .day-flight{grid-column:1/-1;grid-row:1/-1}
 .page>.stage.is-day .day-atlas:has(>.day-flight) .day-calendar{position:absolute;top:8px;left:8px;right:auto;z-index:2}
}
/* A full-width sheet gives long event names room and follows a vertical opening gesture. */
@media(max-width:1000px){
 .sidebar{inset:0 0 auto;width:100%;height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);padding:64px max(18px,env(safe-area-inset-right)) 14px max(18px,env(safe-area-inset-left));border-right:0;border-bottom:1px solid var(--page-line,var(--line));border-radius:0 0 20px 20px;box-shadow:0 18px 50px #082d2430;transform:translateY(calc(-100% - 16px))!important;opacity:.65;visibility:hidden;transition:transform 300ms cubic-bezier(.22,.68,.2,1),opacity 240ms ease,visibility 0s 300ms,background-color 400ms ease,color 400ms ease;will-change:transform}
 body.nav-open .sidebar{transform:translateY(0)!important;opacity:1;visibility:visible;transition-delay:0s}
 .topbar{z-index:40}
 .sidebar .brand{margin:0 0 18px;min-height:38px;gap:12px}
 .sidebar .brand-label{font-size:29px;line-height:1.08}
 .sidebar .brand-label small{white-space:normal}
 .sidebar .nav-heading{padding-inline:2px}
 .sidebar #day-nav{min-height:0;padding:0 2px 4px;overscroll-behavior:contain;scroll-padding-block:12px}
 .sidebar .nav-day>a{padding:10px 8px}
 .sidebar .nav-day>a>b{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
 .sidebar .nav-stops a{grid-template-columns:19px minmax(0,1fr);padding:11px 10px;margin-left:14px;font-size:14px;line-height:1.4;min-height:44px}
 .sidebar .nav-stops a>span{min-width:0;white-space:normal;overflow-wrap:anywhere}
 .sidebar .nav-stops a small{font-size:11px;line-height:1.35}
 .sidebar .sidebar-bottom{padding-top:8px;margin-top:6px}
 .sidebar .sidebar-bottom>span{margin-bottom:0}
 .nav-scrim,.nav-scrim[hidden]{display:block!important;visibility:hidden;opacity:0;pointer-events:none;transition:opacity 260ms ease,visibility 0s 300ms}
 body.nav-open .nav-scrim{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}
 .scene-footer{transition:opacity 180ms ease}
 body.nav-open .scene-footer{opacity:0;pointer-events:none}
}
@media(max-width:1000px) and (max-height:560px){
 .sidebar{padding-top:54px;height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}
 .sidebar .brand{margin-bottom:10px;min-height:30px}
 .sidebar .brand-label{font-size:25px}
 .sidebar .nav-heading{padding-bottom:8px}
 .sidebar .sidebar-bottom{display:none}
}
@media(prefers-reduced-motion:reduce){
 .sidebar,.nav-scrim,.scene-footer{transition:none!important;will-change:auto}
}
/* Keep the floating next action outside splash captions. */
.page>.stage.is-day{padding-bottom:64px!important}
@media(max-height:560px) and (min-width:600px){.page>.stage.is-day{padding-bottom:58px!important}}
/* On the shortest phones the calendar can float over the photograph, leaving room for the film and captions. */
@media(max-width:599px) and (max-height:700px){
 .page>.stage.is-day .day-atlas{padding-top:0}
 .page>.stage.is-day .day-atlas:has(>.day-motion){grid-template-rows:minmax(200px,1.1fr) minmax(0,.9fr)}
 .page>.stage.is-day .day-atlas .day-calendar{top:10px;left:10px;right:auto;justify-content:flex-start}
 .page>.stage.is-day .day-atlas:has(>.day-motion) .day-calendar{top:calc(max(200px,55%) + 18px)}
 .page>.stage.is-day .day-calendar time{gap:8px;padding:5px 10px;border-radius:12px;background:color-mix(in srgb,var(--page-surface) 90%,transparent)}
 .page>.stage.is-day .day-calendar time strong{font-size:28px}
 .page>.stage.is-day .day-calendar time :is(small,em){font-size:9px}
 .page>.stage.is-day .day-atlas:has(>.day-flight) .day-calendar{top:10px}
}
@media(max-width:1000px){
 .sidebar .menu-close{position:absolute;top:10px;left:max(10px,env(safe-area-inset-left));display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--page-surface) 85%,transparent);color:var(--page-ink);border:1px solid var(--page-line)}
 .sidebar .menu-close i{font-size:23px}
 .sidebar .menu-close:focus-visible{outline:2px solid currentColor;outline-offset:3px}
}
@media(min-width:1001px){.sidebar .menu-close{display:none}}
/* A hidden event-media node must not leave an implicit empty grid row above the splash. */
.page>.stage.is-day{grid-template-rows:minmax(0,1fr)!important;align-items:stretch}
.page>.stage.is-day>.scene-copy{grid-column:1/-1!important;grid-row:1!important;align-self:stretch}
/* Splash captions are intentionally concise; complete event names remain in the itinerary and event pages. */
@media(max-width:1000px){
 .page:has(>.stage.is-day) .page-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
 .page>.stage.is-day .day-tile figcaption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding:14px 8px 8px;line-height:1.25}
 .sidebar{pointer-events:none}
 body.nav-open .sidebar{pointer-events:auto}
}

@media(max-width:1000px) and (prefers-reduced-motion:reduce){body .sidebar,body .nav-scrim{transition:none!important;transition-delay:0s!important}body.nav-open .sidebar{visibility:visible!important}body:not(.nav-open) .sidebar{visibility:hidden!important}}
