/* A scrollable editorial story surrounding one persistent 3D airport world. */
.flight-home{--flight-header:80px;--sky:#eaf4fc;--sky-clear:#f4f9fc;--route-surface:#fbfcfff5}
html[data-theme=dark] .flight-home{--sky:#1d334d;--sky-clear:#14243a;--route-surface:#101a2bf5}
.flight-home .header-inner{height:var(--flight-header)}
.flight-home .brand img{width:48px;height:48px}
.flight-home .brand strong{font-size:17px}
.flight-home .brand-second{font-size:11px}
.flight-story{position:relative;isolation:isolate;background:var(--sky-clear)}
.scene-layer,.journey-ui-layer{position:absolute;inset:0;pointer-events:none}
.scene-layer{z-index:0}
.flight-stage,.journey-ui-sticky{position:sticky;top:var(--flight-header);height:calc(100svh - var(--flight-header));min-height:620px;overflow:hidden}
.scene-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 78% 43%,var(--sky) 0%,var(--sky-clear) 53%,var(--bg) 100%)}
.world-view{position:absolute;right:0;top:0;bottom:90px;width:65%;touch-action:pan-y}
#flight-canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity .65s;outline:0}
.scene-ready #flight-canvas{opacity:1}
.scene-fallback{position:absolute;inset:15% 7% 12%;width:86%;height:73%;object-fit:contain;mix-blend-mode:multiply;border-radius:16px;opacity:.8;transition:opacity .5s}
html[data-theme=dark] .scene-fallback{mix-blend-mode:normal}
.scene-ready .scene-fallback{opacity:0;visibility:hidden}
.airport-caption{position:absolute;bottom:145px;left:54%;display:flex;gap:17px;align-items:center}
.airport-code{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--ink)}
.airport-caption>div{border-left:1px solid var(--line);padding-left:17px;display:grid;gap:3px}
.airport-caption strong{font-size:12px;font-weight:700}
.airport-caption div>span{font-size:10px;color:var(--muted)}
.airport-caption>img{width:30px;height:20px;object-fit:fill;margin-left:7px}
.scene-coordinate{position:absolute;right:5%;top:86px;color:var(--muted);font-size:10px;letter-spacing:.025em;display:flex;align-items:center;gap:8px}
.scene-coordinate:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent)}
.journey-ui-layer{z-index:5}
.journey-ui-sticky{overflow:visible}
.scene-actions{position:absolute;right:4%;top:27px;display:flex;gap:24px;align-items:center;pointer-events:auto}
.scene-actions>a,.journey-motion{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:600;color:var(--muted);padding:8px 0}
.journey-motion{border:0;background:transparent}
.scene-actions .icon{width:13px;height:13px}
.scene-actions>a:hover,.journey-motion:hover{color:var(--accent)}
.route-nav{pointer-events:auto;position:absolute;bottom:0;left:0;right:0;min-height:104px;display:grid;grid-template-columns:170px minmax(0,770px) 44px;gap:35px;align-items:center;justify-content:center;border-top:1px solid var(--line);background:var(--route-surface);padding:15px 4%;backdrop-filter:blur(14px)}
.route-label{font-size:9px;letter-spacing:.15em;color:var(--muted);font-weight:700}
.route-stops{position:relative;display:grid;grid-template-columns:repeat(6,1fr);padding-top:2px}
.route-track{position:absolute;left:8.33%;right:8.33%;top:10px;height:1px;background:var(--line)}
.route-track>span{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.route-stop{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;font-variant-numeric:tabular-nums;outline-offset:2px}
.route-dot{width:17px;height:17px;display:grid;place-items:center;background:var(--bg);border:1px solid transparent;border-radius:50%;margin-bottom:4px;transition:border-color .2s}
.route-dot>span{width:5px;height:5px;border-radius:50%;background:var(--line);transition:background .2s,transform .2s}
.route-stop strong{font-size:12px;letter-spacing:.02em;line-height:1.3;color:var(--muted)}
.route-country{font-size:9px;color:var(--muted)}
.route-stop.is-active .route-dot{border-color:var(--accent)}
.route-stop.is-active .route-dot>span,.route-stop.is-visited .route-dot>span{background:var(--accent)}
.route-stop.is-active strong,.route-stop:hover strong{color:var(--accent)}
.route-stop:hover .route-dot>span{transform:scale(1.5)}
.route-next{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .2s,color .2s}
.route-next .icon{width:18px;height:18px}
.route-next:hover{background:var(--accent);color:var(--button-ink);border-color:transparent}
.flight-chapters{position:relative;z-index:2;pointer-events:none}
.flight-chapter{min-height:calc(118svh - var(--flight-header));display:flex;align-items:center;width:100%;scroll-margin-top:var(--flight-header);padding:30px 0 180px}
.flight-chapter:last-child{min-height:calc(100svh - var(--flight-header))}
.chapter-copy{width:38%;max-width:550px;margin-left:max(5%,calc((100vw - 1280px)/2));pointer-events:auto;position:relative}
.chapter-copy h1{font-size:clamp(64px,6.3vw,96px);letter-spacing:-.04em;line-height:1.08;text-wrap:initial;max-width:520px}
.chapter-copy h1>span,.chapter-copy h2>span{color:var(--accent)}
.chapter-copy h2{font-size:clamp(42px,4.05vw,61px);line-height:1.13;text-wrap:initial;max-width:470px}
.chapter-description{font-size:14px;line-height:1.9;max-width:390px;margin-top:25px}
.chapter-origin .chapter-description{font-size:16px;max-width:400px;line-height:1.85}
.chapter-actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:30px}
.chapter-actions .button{font-size:12px;min-height:51px;padding-inline:22px;gap:19px}
.chapter-actions .text-link{font-size:12px}
.departure-note{display:flex;align-items:center;gap:15px;margin-top:38px;color:var(--muted);font-size:11px;line-height:1.9}
.departure-note strong{font-weight:500;color:var(--ink)}
.departure-line{width:36px;height:1px;background:var(--accent)}
.scroll-invitation{display:flex;align-items:center;gap:11px;font-size:10px;color:var(--muted);margin-top:45px;width:fit-content}
.scroll-arrow{width:28px;height:36px;border:1px solid var(--line);border-radius:14px;display:grid;place-items:center}
.scroll-arrow .icon{width:14px;height:14px;transform:rotate(90deg)}
.arrival-country{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600;margin-bottom:27px;width:fit-content;color:var(--muted)}
.arrival-country img{width:27px;height:18px;object-fit:fill}
.arrival-number{margin-left:15px;padding-left:17px;border-left:1px solid var(--line);font-size:9px;font-weight:500;font-variant-numeric:tabular-nums}
.chapter-cities{display:flex;gap:7px;align-items:center;font-size:10px;margin-top:18px;color:var(--ink)}
.chapter-cities .icon{width:13px;height:13px;color:var(--accent)}
.destination-support{border-top:1px solid var(--line);margin-top:25px;padding-top:21px;max-width:375px}
.destination-support h3{font-size:12px;letter-spacing:0;line-height:1.6;font-weight:700;margin-bottom:12px}
.destination-support li{font-size:11px;color:var(--muted);display:flex;gap:9px;align-items:center;padding-block:5px}
.destination-support .icon{width:13px;height:13px;color:var(--accent)}
.chapter-cta{display:flex;align-items:center;gap:24px;font-size:12px;font-weight:700;margin-top:25px;width:fit-content}
.chapter-cta>span{width:32px;height:32px;display:grid;place-items:center;background:var(--accent);color:var(--button-ink);border-radius:50%;transition:transform .3s}
.chapter-cta .icon{width:16px;height:16px}
.chapter-cta:hover>span{transform:translate(3px,-3px)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap;border:0}
.arrival-services{position:relative;background:var(--bg);padding-top:115px;padding-bottom:90px}
.arrival-services .section-heading{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:end;margin-bottom:45px}
.arrival-services h2{font-size:clamp(35px,3.5vw,51px)}
.arrival-services h2>span{color:var(--muted)}
.arrival-services .section-heading p{max-width:350px;font-size:13px;line-height:1.9;margin:0}
.tour-note{font-size:10px;max-width:600px;line-height:1.8;margin-top:30px;color:var(--muted)}
.boarding-section{display:grid;grid-template-columns:1.1fr 1fr;gap:75px;background:var(--surface);border-radius:16px;padding:66px 60px;align-items:center;margin-bottom:90px}
.boarding-copy h2{font-size:clamp(32px,3.2vw,47px)}
.boarding-copy h2 span{color:var(--accent)}
.boarding-copy p{font-size:13px;line-height:1.9;margin:22px 0 27px;max-width:320px}
.boarding-copy .button{font-size:12px}
.boarding-phone{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);margin-top:20px;width:fit-content}
.boarding-phone .icon{width:14px;height:14px}
.boarding-pass{background:var(--bg);border-radius:14px;box-shadow:0 20px 50px #142b5420;transform:rotate(-5deg);overflow:hidden;transition:transform .5s var(--ease)}
.boarding-pass:hover{transform:rotate(-1deg) translateY(-4px)}
.pass-top{padding:22px 26px;background:var(--accent);color:var(--button-ink);display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.12em;font-weight:700}
.pass-top .icon{width:23px;height:23px}
.pass-route{display:flex;align-items:center;justify-content:space-between;padding:30px 27px 23px;gap:18px}
.pass-route>div{display:grid;gap:8px}
.pass-route>div>strong{font-size:36px;line-height:1;font-weight:800;letter-spacing:-.025em}
.pass-route>div>span{font-size:9px;color:var(--muted)}
.pass-line{flex:1;border-top:1px dashed var(--line);display:flex;justify-content:center;min-width:40px}
.pass-line .icon{width:25px;height:25px;color:var(--accent);margin-top:-13px;background:var(--bg);transform:rotate(45deg)}
.pass-details{padding:0 27px 25px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pass-details>div{display:grid;gap:6px}
.pass-details span{font-size:7px;color:var(--muted);letter-spacing:.09em}
.pass-details strong{font-size:10px;font-weight:600}
.pass-bottom{border-top:1px dashed var(--line);padding:18px 27px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted)}
.pass-barcode{display:block;width:89px;height:22px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px,var(--ink) 14px 15px,transparent 15px 18px);opacity:.55}
@media(min-width:1700px){.chapter-copy{margin-left:calc((100vw - 1420px)/2)}.world-view{right:3%;width:62%}}
@media(max-width:1180px){.chapter-copy{margin-left:4%;width:39%}.chapter-copy h1{font-size:70px}.chapter-copy h2{font-size:46px}.chapter-origin .chapter-description{font-size:14px}.chapter-description{font-size:13px;max-width:340px}.chapter-cities{font-size:9px}.route-nav{grid-template-columns:125px minmax(0,670px) 38px;gap:17px}.airport-caption{left:50%;gap:12px}.airport-code{font-size:35px}.airport-caption strong{font-size:11px}.airport-caption div>span{font-size:9px}.boarding-section{gap:40px;padding:50px 40px}.scene-actions{right:4%;gap:20px}}
@media(max-width:1023px){.flight-home{--flight-header:76px}.flight-home .mobile-nav:not([hidden]){top:75px}.chapter-copy h1{font-size:60px}.chapter-copy h2{font-size:40px}.chapter-actions{gap:17px}.chapter-actions .button{padding-inline:17px;gap:10px;font-size:11px}.chapter-actions .text-link{font-size:11px}.chapter-description{font-size:12px}.departure-note{margin-top:26px}.scene-actions{gap:15px}.scene-actions>a,.journey-motion{font-size:9px}.airport-caption{left:48%;gap:10px}.airport-code{font-size:29px}.airport-caption>img{display:none}.route-label{display:none}.route-nav{grid-template-columns:minmax(0,700px) 36px;padding-inline:4%;gap:15px}.arrival-services .section-heading{gap:35px}.boarding-section{padding:45px 30px;gap:35px}.pass-route>div>strong{font-size:28px}.pass-route,.pass-details{padding-inline:20px}.pass-top,.pass-bottom{padding-inline:20px}}
@media(max-width:767px){
.flight-home{--flight-header:68px}.flight-home .brand img{width:42px;height:42px}.flight-home .brand strong{font-size:14px}.flight-home .brand-second{font-size:9px}.flight-home .mobile-nav:not([hidden]){top:67px}
.flight-stage,.journey-ui-sticky{height:calc(100svh - var(--flight-header));min-height:0}
.flight-stage{overflow:hidden}.scene-atmosphere{background:linear-gradient(var(--sky-clear),var(--sky) 68%,var(--sky-clear))}
.world-view{width:100%;top:39%;bottom:81px;right:0}
.airport-caption{bottom:108px;left:22px;gap:11px}.airport-code{font-size:29px}.airport-caption>div{padding-left:11px;gap:0}.airport-caption strong{font-size:10px}.airport-caption div>span{font-size:8px}
.scene-coordinate{right:22px;top:auto;bottom:117px;font-size:8px;max-width:110px;text-align:right;justify-content:end}
.scene-actions{top:9px;right:20px;gap:16px}.scene-actions>a,.journey-motion{font-size:8px}.scene-actions .icon{width:11px;height:11px}
.route-nav{min-height:83px;padding:11px 12px;gap:0;grid-template-columns:1fr;backdrop-filter:none}.route-next{display:none}.route-stop strong{font-size:10px}.route-country{font-size:8px}.route-dot{margin-bottom:3px}
.flight-chapter{min-height:115svh;padding:50px 22px 0;align-items:flex-start;scroll-margin-top:var(--flight-header)}.flight-chapter:last-child{min-height:calc(100svh - var(--flight-header))}.chapter-copy{width:100%;max-width:none;margin:0;pointer-events:auto}
.chapter-copy h1{font-size:clamp(46px,11.6vw,69px);line-height:1.04;max-width:500px}.chapter-copy h2{font-size:clamp(29px,7.2vw,43px);line-height:1.08;max-width:500px}.chapter-copy h2 br{display:none}.chapter-copy h2 span:before{content:' '}.chapter-description{max-width:540px;font-size:11px;line-height:1.75;margin-top:13px}.chapter-origin .chapter-description{font-size:12px;line-height:1.8;margin-top:17px;max-width:420px}.chapter-actions{margin-top:20px;gap:24px}.chapter-actions .button{min-height:44px;padding:10px 17px;font-size:10px}.chapter-actions .text-link{font-size:10px}
.departure-note{display:none}.scroll-invitation{margin-top:20px;font-size:9px;gap:8px}.scroll-arrow{height:28px;width:23px}.scroll-arrow .icon{width:12px;height:12px}
.arrival-country{margin-bottom:15px;font-size:10px;gap:8px}.arrival-country img{width:23px;height:15px}.arrival-number{font-size:8px}
.chapter-cities{font-size:9px;margin-top:11px}.chapter-cities .icon{width:11px;height:11px}.destination-support{max-width:540px;margin-top:15px;padding-top:12px}.destination-support h3{font-size:10px;margin-bottom:7px}.destination-support ul{display:flex;flex-wrap:wrap;gap:3px 13px}.destination-support li{font-size:9px;padding-block:2px;gap:4px}.destination-support .icon{width:10px;height:10px}.chapter-cta{font-size:10px;margin-top:14px;gap:14px}.chapter-cta>span{width:25px;height:25px}.chapter-cta .icon{width:13px;height:13px}
.arrival-services{padding-top:62px;padding-bottom:52px}.arrival-services .section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:25px}.arrival-services h2{font-size:33px}.arrival-services .section-heading p{font-size:12px}.tour-note{font-size:9px;margin-top:22px}
.boarding-section{grid-template-columns:1fr;padding:37px 26px;gap:42px;margin-bottom:55px}.boarding-copy h2{font-size:34px}.boarding-copy p{font-size:12px;margin-top:18px}.boarding-pass{max-width:390px;width:100%;margin:0 auto 10px;transform:rotate(-3deg)}.pass-route>div>strong{font-size:32px}.pass-route{padding:27px 22px 22px}.pass-details{padding-inline:22px}.pass-top,.pass-bottom{padding-inline:22px}
}
@media(max-width:767px) and (max-height:760px){.world-view{top:43%;bottom:68px}.route-nav{min-height:72px}.airport-caption{bottom:87px}.scene-coordinate{bottom:97px}.flight-chapter{padding-top:42px}.chapter-copy h1{font-size:44px}.chapter-copy h2{font-size:29px}.chapter-description{font-size:10px;line-height:1.6}.chapter-origin .chapter-description{font-size:11px;margin-top:13px}.chapter-actions{margin-top:16px}.scroll-invitation{display:none}.arrival-country{margin-bottom:11px}.destination-support{margin-top:11px;padding-top:9px}.chapter-cta{margin-top:9px}.chapter-cities{margin-top:9px}}
@media(prefers-reduced-motion:reduce){#flight-canvas,.scene-fallback{transition:none}.boarding-pass,.boarding-pass:hover{transform:none}}
html[data-motion=paused] .boarding-pass,html[data-motion=paused] .boarding-pass:hover{transform:none}
.scene-failed .scene-fallback{opacity:.6;visibility:visible}
.scene-failed #flight-canvas{display:none}
@media print{.scene-layer,.journey-ui-layer{display:none}.flight-chapter{min-height:auto;padding:30px 0;break-inside:avoid}.chapter-copy{width:100%;max-width:none;margin:0}.flight-story{background:none}.chapter-origin .scroll-invitation{display:none}}
/* Enhanced chapters remain in the native document flow, with one readable stop at a time. */
.flight-chapter{position:relative}
.is-enhanced .chapter-copy{position:absolute;top:calc((100svh - var(--flight-header) - 104px)/2);transform:translate3d(0,var(--copy-shift,0px),0) translateY(-50%);will-change:transform,opacity}
@media(max-width:767px){.is-enhanced .chapter-copy{top:50px;left:22px;width:calc(100% - 44px);transform:translate3d(0,var(--copy-shift,0px),0)}}
@media(max-width:767px) and (max-height:760px){.is-enhanced .chapter-copy{top:42px}}
@media print{.is-enhanced .chapter-copy{position:static;transform:none;visibility:visible!important;opacity:1!important}}
/* Anchor offsets belong to the chapter, avoiding a double header offset. */
html:has(.flight-home){scroll-padding-top:0}
html[data-motion=paused]{scroll-behavior:auto!important}
.flight-home #services{scroll-margin-top:calc(var(--flight-header) + 20px)}
@media(min-width:768px){.world-view{bottom:145px}}
@media(max-width:767px){.world-view{bottom:122px}}
@media(max-width:767px) and (max-height:760px){.world-view{bottom:106px}}
@media(min-width:768px) and (max-height:760px){.flight-stage,.journey-ui-sticky{min-height:0}.chapter-copy h1{font-size:58px}.chapter-copy h2{font-size:40px}.chapter-origin .chapter-description{font-size:13px;margin-top:19px}.departure-note{margin-top:23px}.scroll-invitation{display:none}.chapter-description{font-size:12px;margin-top:17px}.arrival-country{margin-bottom:20px}.destination-support{margin-top:17px;padding-top:14px}.chapter-cta{margin-top:18px}.route-nav{min-height:88px}.is-enhanced .chapter-copy{top:calc((100svh - var(--flight-header) - 88px)/2)}}
/* Let the browser pin the content; scrolling no longer moves six text layers in JS. */
.chapter-layer{position:absolute;inset:0;z-index:3;pointer-events:none}
.chapter-sticky{position:sticky;top:var(--flight-header);height:calc(100svh - var(--flight-header));min-height:620px;pointer-events:none}
.chapter-sticky .chapter-copy{transform:translateY(-50%);will-change:opacity}
.route-nav{backdrop-filter:none;background:var(--bg)}
@media(max-width:767px){.chapter-sticky{min-height:0}.chapter-sticky .chapter-copy{transform:none}}
@media(min-width:768px) and (max-height:760px){.chapter-sticky{min-height:0}}
@media print{.chapter-layer,.chapter-sticky{position:static;height:auto;min-height:0}.chapter-sticky .chapter-copy{position:static;transform:none;visibility:visible!important;opacity:1!important;break-inside:avoid;padding-block:24px}.flight-chapters{display:none}}

/* Compact screens get a separate airport panel and a normal reading column.
   Text height is content-driven, so large type and long paragraphs cannot collide
   with the scene. Keep this query in sync with flight-journey.js. */
@media (max-width:900px), (max-width:1200px) and (max-height:560px) {
  .flight-home{--flight-header:64px;--compact-stage:clamp(360px,48svh,410px);--flight-gap:clamp(180px,30svh,280px)}
  .flight-home .header-inner{height:var(--flight-header)}
  .flight-home .site-header{background:var(--bg)}
  .flight-home .brand img{width:38px;height:38px}
  .flight-home .brand strong{font-size:14px}
  .flight-home .brand-second{font-size:10px}
  .flight-home .icon-button{width:44px;height:44px}
  .flight-home .mobile-nav:not([hidden]){top:63px}
  .flight-story{background:var(--bg)}
  .scene-layer{position:sticky;inset:auto;top:var(--flight-header);height:var(--compact-stage);z-index:4}
  .flight-stage{position:relative;top:0;height:100%;min-height:0;border-bottom:1px solid var(--line);background:var(--sky-clear)}
  .scene-atmosphere{background:var(--sky-clear)}
  .world-view{top:44px;bottom:105px;right:0;width:100%}
  .scene-fallback{inset:2% 4%;width:92%;height:96%;border-radius:0}
  .airport-caption{left:20px;right:20px;bottom:72px;gap:12px}
  .airport-code{font-size:27px}
  .airport-caption>div{padding-left:12px;gap:2px;min-width:0}
  .airport-caption strong{font-size:11px;line-height:1.35}
  .airport-caption div>span{font-size:10px;line-height:1.35}
  .airport-caption>img{display:none}
  .scene-coordinate{left:20px;right:auto;top:14px;bottom:auto;max-width:none;font-size:10px;text-align:left;justify-content:start}
  .journey-ui-layer{z-index:5}
  .journey-ui-sticky{height:var(--compact-stage);min-height:0}
  .scene-actions{top:0;right:16px;gap:12px}
  .scene-actions>a,.journey-motion{min-height:44px;padding:8px 2px;font-size:11px;gap:5px}
  .scene-actions .icon{width:13px;height:13px}
  .route-nav{min-height:62px;grid-template-columns:minmax(0,1fr);padding:7px 12px;gap:0;background:var(--bg)}
  .route-label,.route-next{display:none}
  .route-stop{min-height:46px;gap:1px}
  .route-stop strong{font-size:11px}
  .route-country{font-size:10px}
  .route-dot{margin-bottom:2px;width:15px;height:15px}
  .route-track{top:9px}
  .flight-chapters{z-index:2}
  .flight-chapter{display:block;min-height:0;padding:30px max(20px,calc((100% - 600px)/2)) var(--flight-gap);scroll-margin-top:calc(var(--flight-header) + var(--compact-stage));border-top:1px solid var(--line)}
  .flight-chapter:first-child{border-top:0}
  .flight-chapter:last-child{min-height:0;padding-bottom:52px}
  .flight-home .flight-chapter .chapter-copy{position:static;inset:auto;width:100%;max-width:600px;margin:0 auto;transform:none;will-change:auto;opacity:1!important;visibility:visible!important}
  .chapter-layer{display:none}
  .chapter-copy h1{font-size:clamp(38px,9.7vw,56px);line-height:1.08;letter-spacing:-.035em;max-width:520px}
  .chapter-copy h2{font-size:clamp(29px,7.4vw,43px);line-height:1.14;letter-spacing:-.03em;max-width:540px}
  .chapter-copy h2 br{display:none}
  .chapter-copy h2 span:before{content:' '}
  .chapter-description,.chapter-origin .chapter-description{font-size:15px;line-height:1.75;max-width:540px;margin-top:18px}
  .chapter-actions{margin-top:24px;gap:16px 24px}
  .chapter-actions .button{font-size:13px;min-height:48px;padding:12px 18px;gap:14px}
  .chapter-actions .text-link{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
  .departure-note{display:none}
  .scroll-invitation{display:flex;margin-top:22px;font-size:12px;min-height:44px;gap:10px}
  .scroll-arrow{width:26px;height:34px}
  .arrival-country{font-size:12px;margin-bottom:14px;gap:9px}
  .arrival-country img{width:25px;height:17px}
  .arrival-number{font-size:10px}
  .chapter-cities{font-size:12px;line-height:1.6;gap:7px;margin-top:16px}
  .chapter-cities .icon{width:14px;height:14px;flex-shrink:0}
  .destination-support{max-width:none;margin-top:24px;padding-top:20px}
  .destination-support h3{font-size:14px;line-height:1.6;margin-bottom:12px}
  .destination-support ul{display:grid;gap:8px}
  .destination-support li{font-size:13px;line-height:1.6;padding:0;gap:8px;align-items:flex-start}
  .destination-support .icon{width:15px;height:15px;margin-top:3px;flex-shrink:0}
  .chapter-cta{font-size:13px;min-height:48px;margin-top:24px;gap:16px}
  .chapter-cta>span{width:34px;height:34px;flex-shrink:0}
  .chapter-cta .icon{width:17px;height:17px}
  .arrival-services{padding-block:54px}
  .arrival-services .section-heading{grid-template-columns:minmax(0,1fr);gap:20px;margin-bottom:30px}
  .arrival-services h2{font-size:clamp(30px,7.5vw,42px);line-height:1.15}
  .arrival-services .section-heading p{font-size:15px;line-height:1.75;max-width:540px}
  .arrival-services .service-row{grid-template-columns:32px minmax(0,1fr) 32px;gap:12px;padding-block:28px}
  .arrival-services .service-row h3{font-size:19px}
  .arrival-services .service-row p{font-size:14px;line-height:1.75;max-width:none}
  .tour-note{font-size:12px;line-height:1.75;margin-top:26px}
  .boarding-section{grid-template-columns:minmax(0,1fr);padding:32px 22px;gap:34px;margin-bottom:48px}
  .boarding-copy h2{font-size:clamp(30px,7.5vw,40px);line-height:1.15}
  .boarding-copy p{font-size:15px;line-height:1.75;max-width:480px}
  .boarding-copy .button{font-size:13px;padding-inline:17px;gap:12px;min-height:48px}
  .boarding-phone{font-size:13px;min-height:44px;margin-top:12px}
  .boarding-pass{max-width:390px;transform:none;box-shadow:0 10px 30px #142b5410;margin:0 auto;width:100%}
  .boarding-pass:hover{transform:none}
  .pass-top,.pass-bottom{padding:16px}
  .pass-route{padding:24px 16px 20px;gap:10px}
  .pass-route>div>strong{font-size:28px}
  .pass-route>div>span{font-size:10px}
  .pass-line{min-width:20px}
  .pass-details{padding:0 16px 20px;gap:14px}
  .pass-details span{font-size:9px}
  .pass-details strong{font-size:11px;line-height:1.5}
  .pass-bottom{font-size:10px;gap:12px}
  .pass-barcode{width:62px;flex-shrink:0}
}
/* Short landscape screens need the whole viewport for reading. */
@media (max-width:1200px) and (max-height:560px) {
  .flight-home{--compact-stage:300px}
  .scene-layer{position:relative;top:0}
  .journey-ui-sticky{position:relative;top:0}
  .flight-chapter{scroll-margin-top:var(--flight-header)}
}
@media (max-width:359px) {
  .scene-coordinate{display:none}
  .scene-actions{left:18px;right:18px;justify-content:space-between}
  .airport-caption{left:16px;right:16px}
  .pass-route>div>strong{font-size:25px}
}
@media print {
  .chapter-layer{display:block}
  .flight-story[data-layout=compact] .flight-chapters,.flight-story:not(.is-enhanced) .flight-chapters{display:block}
  .flight-home .flight-chapter{padding:24px 0;min-height:0;border-top:0}
}
