@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url("Figtree-Variable.woff2") format("woff2")}
:root{--page:#f7f1eb;--surface:#fbf8f4;--text:#434343;--heading:#4a4a4a;--red:#cf2e2e;--line:#d6d0c8;--muted:#6b6865;--body-size:clamp(1rem,calc(.9528rem + .236vw),1.13rem);--title-size:clamp(2.07rem,calc(1.5318rem + 2.691vw),3.55rem);--section-size:clamp(1.73rem,calc(1.3918rem + 1.691vw),2.66rem);--medium-size:clamp(1.2rem,calc(1.091rem + .545vw),1.5rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--page);color:var(--text);font-family:Figtree,Arial,sans-serif;font-size:var(--body-size);font-weight:400;line-height:1.6}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:none;border:0}button:disabled{cursor:default;opacity:.35}a{color:inherit;text-decoration:none}button:hover,a:hover{color:var(--red)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:4px}::selection{background:#cf2e2e;color:#fff}[hidden]{display:none!important}h1,h2,h3{font-family:inherit;font-style:normal;font-weight:500;color:var(--heading);letter-spacing:normal;line-height:1.3}
main,.site-header{max-width:1500px;margin:auto;padding-left:5%;padding-right:5%}main{padding-bottom:36px}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.wordmark{font-size:20px;font-weight:500}.site-header nav{display:flex;gap:28px;font-size:16px}.site-header nav .active{color:var(--red)}
.intro{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:48px 0 34px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:.05em;color:var(--muted)}.intro .eyebrow{display:flex;gap:12px;align-items:center;color:var(--red);font-size:var(--medium-size);font-weight:700;letter-spacing:normal}.red-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);flex-shrink:0}h1{font-size:var(--title-size);margin:18px 0;line-height:1.3}.title-dot{color:var(--red)}.intro-copy{font-size:var(--body-size);line-height:1.6;margin:0;color:var(--text)}.intro-aside{display:flex;gap:18px;align-items:center;color:var(--red);padding-right:2%;min-width:0}.intro-aside svg{width:44px;height:44px;flex-shrink:0}.intro-aside span{font-size:var(--medium-size);font-weight:500;line-height:1.6}.intro-aside small{font-size:14px;font-weight:400;color:var(--text)}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:24px 0 30px;gap:24px;border-top:1px solid var(--line)}.stats>div+div{border-left:1px solid var(--line);padding-left:24px}.stat-label{display:block;font-size:14px;color:var(--text);font-weight:400;margin-bottom:6px}.stat-label i{display:none}.stats strong{font-family:inherit;font-size:var(--section-size);font-weight:500;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--heading)}.stat-unit{font-size:14px;color:var(--text);margin-left:8px}
.explorer{background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden;scroll-margin:20px}.explorer-top{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;border-bottom:1px solid var(--line)}.section-label{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:500;white-space:nowrap}.section-label>span:last-child{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px}.view-switch{display:flex;gap:3px;padding:3px;background:#eeebeb;border-radius:4px}.view-switch button{font-size:14px;min-height:42px;padding:8px 15px;border-radius:3px;white-space:nowrap}.view-switch button[aria-pressed=true]{background:var(--red);color:#fff}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 304px}.map-stage{position:relative;overflow:hidden;height:620px;min-height:620px;background:var(--page);display:flex;align-items:center;justify-content:center}.map-caption{position:absolute;top:24px;left:26px;pointer-events:none;z-index:1}.map-caption>span{font-size:12px;letter-spacing:.06em;color:var(--muted)}.map-caption h2{font-size:var(--medium-size);font-weight:500;margin:6px 0;color:var(--heading)}#map{display:block;width:100%;height:auto;max-height:620px;overflow:visible;cursor:grab;touch-action:pan-y}#map:active{cursor:grabbing}#map.zoomed{touch-action:none}#map .sphere{fill:var(--surface);stroke:#c9bdb2;stroke-width:.7}#map .land{fill:#e2d9d1;stroke:#b9ada3;stroke-width:.55}#map .graticule{fill:none;stroke:#d8cdc3;stroke-width:.5;opacity:.65}#map .route{fill:none;stroke:var(--red);stroke-linecap:round;opacity:.36;vector-effect:non-scaling-stroke;cursor:pointer}#map.china-map .route{opacity:.48}#map .route.selected{stroke:#a61e1e;opacity:1}#map .route-hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer;vector-effect:non-scaling-stroke}#map .airport{fill:var(--red);stroke:var(--surface);stroke-width:1;cursor:pointer;vector-effect:non-scaling-stroke}#map .airport:hover{fill:#8f2424}#map .airport-label{font-size:12px;font-weight:500;fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3;stroke-linejoin:round;pointer-events:none}#map .empty-text{font-size:16px;fill:var(--text);text-anchor:middle}
.map-tools{position:absolute;right:18px;bottom:58px;display:flex;flex-direction:column;align-items:center;gap:5px;z-index:2}.map-tools button{width:40px;height:40px;background:#fbf8f4f5;border:1px solid #cfc5bb;border-radius:3px;font-size:24px;line-height:1}.map-tools output{display:block;width:44px;text-align:center;padding:5px 2px;font-size:12px;font-weight:500;color:var(--text);background:#fbf8f4f5;border-radius:3px}.map-bottom{position:absolute;left:24px;right:18px;bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--text);line-height:1.5;pointer-events:none}.map-bottom>span{background:#fbf8f4d9;padding:3px 5px;border-radius:3px}.map-bottom>span:first-child{display:flex;align-items:center;gap:7px;white-space:nowrap}.route-line{display:inline-block;width:18px;height:1px;background:var(--red)}.airport-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--red);margin-left:9px}#tooltip{position:absolute;z-index:3;pointer-events:none;left:24px;bottom:58px;max-width:75%;padding:11px 14px;background:#fbf8f4fa;border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 15px #43434312;font-size:14px;color:var(--text)}#map-error{position:absolute;bottom:75px;background:var(--surface);padding:12px;max-width:80%;font-size:14px}
.map-sidebar{height:620px;min-height:0;overflow:auto;scrollbar-width:thin;border-left:1px solid var(--line);padding:26px 22px;background:var(--surface);display:flex;flex-direction:column}.sidebar-heading .eyebrow{font-size:12px}.sidebar-heading h2{font-size:var(--medium-size);font-weight:500;margin:5px 0 22px}.map-sidebar label{display:block;margin-bottom:7px;font-size:14px;color:var(--text);font-weight:500}.search-wrap{position:relative;margin-bottom:17px}.search-wrap>span{position:absolute;left:10px;top:4px;font-size:26px;color:var(--muted)}.search-wrap input{width:100%;padding:11px 8px 11px 34px;border:1px solid #cfc5bb;border-radius:3px;background:transparent;font-size:14px;color:var(--text);min-height:44px}.map-sidebar select{width:100%;background:transparent;border:1px solid #cfc5bb;border-radius:3px;padding:11px 8px;font-size:14px;color:var(--text);min-height:44px}.sidebar-rule{border-top:1px solid var(--line);margin:22px 0 17px}.route-list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.route-list-heading h3{font-size:16px;font-weight:600;margin:0}.route-list-heading button{font-size:12px;padding:0;color:var(--red)}.route-list{min-height:80px;max-height:270px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c4b9ae transparent;flex:1}.route-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:12px 2px;text-align:left;border-bottom:1px solid #e3dcd5;font-size:14px}.route-item>span:first-child{display:flex;align-items:center;gap:8px}.route-item .route-arrow{color:var(--muted)}.route-item small{font-size:12px;color:var(--muted);white-space:nowrap}.route-item:hover{background:#f2eae2}.route-item.selected{color:var(--red)}.reset-filters{font-size:13px;color:var(--text);text-align:left;padding:16px 0 0;margin-top:auto}.selection-card{background:#f2eae2;border-left:2px solid var(--red);padding:12px;margin:0 0 18px}.selection-card h3{font-size:16px;font-weight:600;margin:0 0 6px;overflow-wrap:anywhere}.selection-card p{font-size:13px;color:var(--text);margin:5px 0}.selection-card strong{font-family:inherit;font-size:24px;font-weight:500;margin-right:5px}#route-empty{font-size:14px;color:var(--text)}.skip{position:absolute;top:-60px;left:20px;z-index:10;background:var(--surface);padding:8px}.skip:focus{top:5px}.noscript{padding:20px}
@media(max-width:1100px){.intro-aside{display:none}.map-layout{grid-template-columns:minmax(0,1fr) 280px}.map-sidebar{padding:24px 18px}.section-label>span:last-child{display:none}.map-bottom>span:last-child{display:none}.stats{gap:16px}.stats>div+div{padding-left:16px}}
@media(max-width:700px){main,.site-header{padding-left:4%;padding-right:4%}.site-header{height:72px}.wordmark{font-size:18px}.site-header nav{gap:16px;font-size:14px}.intro{padding:30px 0 26px}.intro .eyebrow{font-size:var(--medium-size)}h1{margin:14px 0}.intro-copy{font-size:var(--body-size)}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0;padding:22px 0 26px}.stats>div+div{padding-left:18px}.stats>div:nth-child(odd){border:0;padding-left:0}.stat-label{font-size:13px;margin-bottom:4px}.stat-unit{font-size:12px;margin-left:6px}.explorer-top{flex-direction:column;align-items:stretch;padding:14px;gap:12px}.section-label{font-size:16px}.view-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.view-switch button{font-size:13px;padding:8px 4px;min-height:42px}.map-layout{display:flex;flex-direction:column}.map-stage{height:390px;min-height:390px}#map{width:100%;height:100%;max-height:none}.map-caption{top:18px;left:18px}.map-caption>span{font-size:11px}.map-caption h2{font-size:18px;margin-top:4px}.map-tools{right:12px;bottom:50px;gap:4px}.map-tools button{width:38px;height:38px;font-size:23px}.map-tools output{font-size:11px;width:40px}.map-bottom{left:13px;right:12px;bottom:13px;font-size:10px}.map-sidebar{height:auto;overflow:visible;border-left:0;border-top:1px solid var(--line);padding:22px 18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}.sidebar-heading{grid-column:1/-1}.sidebar-heading h2{font-size:var(--medium-size);margin-bottom:18px}.map-sidebar label[for=search]{grid-column:1;grid-row:2}.search-wrap{grid-column:1;grid-row:3;margin:0}.map-sidebar label[for=airline]{grid-column:2;grid-row:2}.map-sidebar select{grid-column:2;grid-row:3}.map-sidebar label{font-size:13px}.search-wrap input{font-size:13px;padding-left:28px}.search-wrap>span{left:7px}.map-sidebar select{font-size:13px}.sidebar-rule,#selection,.route-list-heading,.route-list,#route-empty,.reset-filters{grid-column:1/-1}.sidebar-rule{margin:20px 0 16px}.route-list{min-height:0;max-height:224px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}.route-item{font-size:12px;gap:4px;padding:12px 0}.route-item>span:first-child{gap:5px}.route-item small{font-size:11px}.route-list-heading h3{font-size:16px}.reset-filters{margin-top:8px}#tooltip{left:14px;bottom:55px;font-size:12px}.selection-card{margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

#map{position:absolute;inset:0;width:100%;height:100%;max-height:none}

/* The embedded document follows its host; WordPress controls the outer gutter. */
body.embedded{margin:0}
.embedded .site-header,.embedded .intro-aside{display:none}
.embedded main{box-sizing:border-box;width:100%;max-width:none;margin:0;padding:0 0 16px}
.embedded .intro{padding:var(--zfa-embed-top,16px) 0 24px}
.stat-unit{display:inline-block;white-space:nowrap}

/* A single quiet return link replaces the site navigation on this page. */
.home-link-bar{display:flex;justify-content:flex-end;padding-top:16px;line-height:1.5;font-size:14px}
.home-link-bar a{display:inline-flex;align-items:center;gap:8px;padding:8px 0;color:var(--text)}
.home-link-bar a:hover{color:var(--red)}
.embedded .home-link-bar{padding-top:var(--zfa-embed-top,16px)}
