/* The cabin, shutter, ambient cloud ribbon and sky reveal move independently. */
html{scrollbar-width:none;overscroll-behavior:none}html::-webkit-scrollbar{display:none}body{overflow-x:clip;overscroll-behavior:none}
html.lenis,html.lenis body{height:auto}html.lenis{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.flight-experience{--flight-vh:100dvh;position:relative;isolation:isolate;background:#178bc4}
.flight-backdrop{position:absolute;inset:0;z-index:-1;pointer-events:none}
.sky-viewport{position:sticky;top:0;height:var(--flight-vh);overflow:hidden;background:#178bc4}
.sky-pan{position:absolute;top:0;left:-6.66667vw;width:113.33334vw;height:calc(2 * var(--flight-vh));will-change:transform}
.flight-sky{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%}
.ambient-clouds{position:absolute;top:0;left:0;width:100%;height:calc(.88 * var(--flight-vh));overflow:hidden}
.cloud-strip{position:absolute;top:0;left:0;height:100%;width:max-content;display:flex;will-change:transform;animation:upper-clouds 48s linear infinite}
.cloud-strip img{height:100%;width:auto;max-width:none;aspect-ratio:140/19;flex:none;object-fit:fill}
@keyframes upper-clouds{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.sky-tint{position:absolute;inset:0;background:linear-gradient(180deg,#0b5b9eaa,#0b4f8c99);opacity:0;pointer-events:none}
.journey{height:calc(3 * var(--flight-vh));background:transparent}
.journey-stage{z-index:2;background:transparent;width:100vw;height:var(--flight-vh)}
/* Bound the camera independently of GSAP's transform cache. Even during a
   reverse-scroll/resize refresh, the cabin can never shrink below the screen. */
/* Keep the filter render surface viewport-sized while the cabin expands.
   A promoted, filtered 6.5x texture can lose GPU tiles on reverse scrolling. */
.cabin-viewport{position:absolute;inset:0;overflow:hidden;contain:paint;isolation:isolate}
.window-shell{--flight-p:0;--bounded-flight-p:clamp(0,var(--flight-p),1);position:absolute;inset:0;width:100vw;min-width:100vw;height:var(--flight-vh);min-height:var(--flight-vh);transform-origin:50% 50%;transform:translateX(calc(-2vw * var(--bounded-flight-p))) scale(calc(1 + 5.5 * var(--bounded-flight-p)))}
.cabin-layer{position:absolute;inset:0;transform:scale(1.2857);transform-origin:50% 50%}
.cabin-image{width:100%;height:100%;max-width:none;object-fit:cover}
.cabin-back{z-index:0}.cabin-front{z-index:2}.cabin-cap{z-index:3;opacity:0;pointer-events:none}
.cabin-shutter{z-index:1;display:flex;align-items:center;justify-content:center}
.shutter-canvas{width:max(100vw,calc(2 * var(--flight-vh)));height:max(50vw,var(--flight-vh));flex:none;display:flex;align-items:center;justify-content:center}
.shutter-aperture{width:18.96%;aspect-ratio:1/1.38;margin-left:.4%;margin-bottom:1%;position:relative;flex:none}
.shade-panel{position:absolute;inset:0;background:#dbdbdb;transform-origin:50% 100%;transform:translateY(-92%) scaleY(.5);will-change:transform}
.shade-panel-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#ffffff00 0%,#0003 80%,#0006 100%)}
.shade-handle-carriage{position:absolute;inset:0;z-index:1;transform:translateY(-92%);will-change:transform}
.shade-handle{position:absolute;bottom:calc(-100vw/120);left:0;width:100%;height:auto;max-width:none}
.shade-handle-open{opacity:1}
.opening-preloader{display:none;position:fixed;inset:0;z-index:90;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#8b765a,#594a34);color:#fff;text-align:center;pointer-events:none}
.opening-preloader span{display:block;font-size:8px;letter-spacing:.12em;margin-bottom:12px}
.opening-preloader p{font-size:27px;line-height:1.05;letter-spacing:-.055em;font-weight:600}
.opening-active .opening-preloader{display:flex}
.opening-active .shade-panel,.opening-active .shade-handle-carriage{transform:none}
.opening-active .shade-handle-open{opacity:0}.opening-active .cabin-cap{opacity:1}
.opening-active:not(.opening-revealing) .hero-copy,.opening-active:not(.opening-revealing) .hero-note,.opening-active:not(.opening-revealing) .scroll-note,.opening-active:not(.opening-revealing) .header,.opening-active:not(.opening-revealing) .floating-book{opacity:0!important;visibility:hidden}
body.opening-lock{overflow:hidden}.hero-shade{display:none}
.hero-top,.hero-bottom{transform-origin:50% 50%;will-change:transform,opacity}.hero-note,.scroll-note{will-change:transform,opacity}
.header{justify-content:space-between}.header .wordmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:50% 50%;will-change:transform}
.header nav{margin-right:auto}.header .header-contact{margin-left:auto}.header.scrolled .wordmark{color:var(--ink)}
.header.menu-open .wordmark{transform:translate(-50%,-50%)!important;color:var(--ink)}
.flight-experience .intro{position:relative;z-index:2;background:linear-gradient(180deg,#1c6eaf00,#10548e99 55%,#10548eb8);color:#fff;padding-top:115px;padding-bottom:140px;text-shadow:0 2px 30px #16476f14}
.flight-experience .intro .section-label{color:#ffffffbd;border-color:#ffffff55}.flight-experience .intro-title{font-size:clamp(50px,6.7vw,116px);line-height:1.07}
.flight-experience .intro-title>span{color:#d8e9f8}.flight-experience .intro-description{color:#fff;max-width:490px}.flight-experience .intro .text-link{color:#fff;border-color:#ffffff80}
.destinations{padding-top:75px}.inquiry-dialog,.destination-dialog,.privacy-dialog{overscroll-behavior:contain}
@media(max-width:700px){
.header{justify-content:flex-end}.header .wordmark{font-size:30px}.header .wordmark span{font-size:6px}
.journey{height:calc(2 * var(--flight-vh))}.cabin-layer{transform:scale(1)}.sky-pan{left:0;width:100vw}.shade-handle{bottom:-4px}
.hero-top{top:16%}.hero-top h1,.hero-bottom p{font-size:14.5vw}.hero-top .eyebrow{font-size:6px;max-width:160px}.hero-bottom .eyebrow{font-size:6px}
.hero-bottom{bottom:19%}.hero-note{bottom:20%;font-size:10px}.flight-experience .intro{padding-top:65px;padding-bottom:85px}
.flight-experience .intro-title{font-size:10.8vw;line-height:1.13}.flight-experience .intro-description{font-size:12px;text-shadow:0 1px 10px #083c5d35}.destinations{padding-top:55px}
}
@media(prefers-reduced-motion:reduce){
.journey{height:var(--flight-vh)}.window-shell{transform:none!important}.sky-pan{transform:none!important}.cloud-strip{animation:none!important}
.header .wordmark{transform:translate(-50%,-50%)!important}.opening-preloader{display:none!important}
.shade-panel{transform:translateY(-92%) scaleY(.5)!important}.shade-handle-carriage{transform:translateY(-92%)!important}.shade-handle-open{opacity:1!important}.cabin-cap{opacity:0!important}
}
