/* Flight23 · Page 03 route map refinement */
.route-page{background:#07111f;color:#edf4ff;min-height:100vh}.route-page .nav{background:rgba(7,17,31,.94);border-bottom:1px solid rgba(137,174,220,.14);backdrop-filter:blur(18px)}.route-page .nav-links{gap:34px}.route-page .nav-links a{font-weight:560;letter-spacing:.01em;color:#c8d5e8}.route-page .nav-links a[href="route-map.html"]{color:#fff}.route-page .page-hero{padding:74px 0 36px;background:radial-gradient(circle at 70% 10%,rgba(48,104,166,.18),transparent 36%),linear-gradient(180deg,#081523 0%,#07111f 100%)}.route-page .premium-kicker{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#7fcfd2;font-weight:700}.route-page .page-hero h1{max-width:900px;margin:14px 0 12px;font-size:clamp(42px,6vw,68px);line-height:1.02;letter-spacing:-.035em;color:#fff}.route-page .premium-subtitle{max-width:760px;font-size:18px;line-height:1.7;color:#aebed2}.route-page .section{padding:24px 0 72px}.network-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.network-metric{padding:20px 22px;border:1px solid rgba(129,167,211,.16);background:#0d1a2b;border-radius:18px}.network-metric strong{display:block;font-size:28px;line-height:1;color:#fff}.network-metric span{display:block;margin-top:7px;color:#8fa4bc;font-size:14px}.route-explorer{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr);gap:18px;align-items:stretch}.route-map-shell{border:1px solid rgba(129,167,211,.17);background:#0a1728;border-radius:24px;overflow:hidden;box-shadow:0 22px 70px rgba(0,0,0,.2)}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid rgba(129,167,211,.13)}.map-toolbar-copy strong{display:block;font-size:19px;color:#fff}.map-toolbar-copy span{display:block;margin-top:4px;color:#879cb5;font-size:13px}.map-tabs{display:flex;gap:8px;flex-wrap:wrap}.map-tabs button{border:1px solid rgba(137,174,220,.18);background:#101f32;color:#aebed2;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:650;cursor:pointer;transition:.2s ease}.map-tabs button:hover,.map-tabs button.active{background:#17334b;border-color:#3f7896;color:#fff}.map-stage{position:relative;aspect-ratio:1.92/1;min-height:420px;background:radial-gradient(circle at 56% 42%,rgba(30,84,115,.16),transparent 38%),#071321;overflow:hidden}.world-base{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.95}.network-layer{position:absolute;inset:0;width:100%;height:100%}.network-layer .route-line{fill:none;stroke:#5bb5c9;stroke-width:1.7;stroke-dasharray:7 7;opacity:.5;vector-effect:non-scaling-stroke}.network-layer .route-line.featured{stroke:#76dfc7;stroke-width:2.3;opacity:.9}.network-layer .city-node{cursor:pointer;transition:.2s}.network-layer .city-node circle{fill:#9cf0df;stroke:#0b1828;stroke-width:3;filter:drop-shadow(0 0 7px rgba(118,223,199,.55))}.network-layer .city-node text{fill:#e7f4ff;font-size:13px;font-weight:650;paint-order:stroke;stroke:#081423;stroke-width:4px;stroke-linejoin:round}.network-layer .city-node:hover circle,.network-layer .city-node.active circle{r:7.5;fill:#fff}.map-note{position:absolute;left:18px;bottom:16px;padding:8px 11px;background:rgba(6,15,26,.78);border:1px solid rgba(129,167,211,.13);border-radius:11px;color:#8297af;font-size:12px;backdrop-filter:blur(10px)}.route-detail{display:flex;flex-direction:column;border:1px solid rgba(129,167,211,.17);background:#0d1a2b;border-radius:24px;padding:24px;min-height:100%}.route-detail .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:#72cbd0;font-weight:750}.route-detail h2{margin:10px 0 6px;font-size:34px;letter-spacing:-.025em;color:#fff}.route-detail .route-country{font-size:15px;color:#879cb5}.route-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.route-fact{padding:14px;border-radius:14px;background:#0a1625;border:1px solid rgba(129,167,211,.12)}.route-fact span{display:block;color:#7f95ad;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.route-fact strong{display:block;margin-top:6px;color:#fff;font-size:17px}.route-detail p{font-size:15px;line-height:1.7;color:#9eb0c5}.route-detail .btn{margin-top:auto;justify-content:center;width:100%}.featured-routes{margin-top:20px}.featured-routes-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.featured-routes-header h2{margin:0;font-size:30px;color:#fff;letter-spacing:-.025em}.featured-routes-header p{margin:5px 0 0;color:#8da1b8;font-size:15px}.route-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.route-card{display:block;padding:20px;border-radius:18px;border:1px solid rgba(129,167,211,.14);background:#0d1a2b;color:inherit;text-decoration:none;transition:.22s ease}.route-card:hover{transform:translateY(-2px);border-color:rgba(93,176,196,.35);background:#102238}.route-card .route-codes{display:flex;justify-content:space-between;align-items:center;font-size:20px;color:#fff;font-weight:750}.route-card .route-line-mini{height:1px;background:linear-gradient(90deg,#4c7895,#6fd0bd);margin:12px 0}.route-card .route-meta{display:flex;justify-content:space-between;gap:10px;color:#899db5;font-size:13px}.route-page .footer{background:#06101c;border-top:1px solid rgba(129,167,211,.13);color:#8195ab}.route-page .footer a{color:#aebed2}
@media(max-width:980px){.route-page .nav-links{gap:18px}.route-explorer{grid-template-columns:1fr}.route-detail{min-height:auto}.route-detail .btn{margin-top:18px}.network-summary{grid-template-columns:repeat(2,1fr)}.route-card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.route-page .page-hero{padding:52px 0 26px}.route-page .page-hero h1{font-size:42px}.route-page .premium-subtitle{font-size:16px}.network-summary{grid-template-columns:1fr 1fr}.network-metric{padding:16px}.network-metric strong{font-size:23px}.map-toolbar{align-items:flex-start;flex-direction:column}.map-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.map-tabs button{white-space:nowrap}.map-stage{min-height:340px}.network-layer .city-node text{font-size:15px}.route-card-grid{grid-template-columns:1fr}.featured-routes-header{align-items:flex-start;flex-direction:column}.route-page .nav-links{gap:12px}}
@media(max-width:480px){.network-summary{grid-template-columns:1fr}.route-facts{grid-template-columns:1fr 1fr}.map-stage{min-height:300px}.route-page .page-hero h1{font-size:36px}}

/* Flight55 · expanded live international network overlay. The geographic map image is intentionally untouched. */
.network-layer .route-line{stroke-dasharray:8 8;animation:aerisRouteFlow 4.8s linear infinite;transition:opacity .24s ease,stroke .24s ease}.network-layer .route-line:nth-child(3n){animation-duration:6.1s}.network-layer .route-line:nth-child(4n){animation-duration:7.4s}.network-layer .route-line.regional{stroke:#4f95ad;opacity:.38}.network-layer .route-line.featured{stroke:#82ead0;filter:url(#routeGlow)}
@keyframes aerisRouteFlow{to{stroke-dashoffset:-64}}
.network-layer .route-line.muted{opacity:.045!important}.network-layer .city-node.muted{opacity:.12;pointer-events:none}.network-layer .city-node{transition:opacity .24s ease,filter .24s ease}.network-layer .city-node.hub circle{fill:#fff;stroke:#65d8c3;stroke-width:4;filter:drop-shadow(0 0 10px rgba(118,223,199,.82))}.network-layer .city-node text{font-size:11px}.network-layer .route-pulse{fill:#bfffee;filter:drop-shadow(0 0 7px #83ead1)}.network-layer .plane-marker text{font-size:15px;fill:#eafff8;paint-order:stroke;stroke:#0a1728;stroke-width:2.2px;filter:drop-shadow(0 0 5px rgba(131,234,209,.7))}.network-layer .plane-marker.small text{font-size:12px}.traffic{pointer-events:none}.route-web{pointer-events:none}.city-nodes{pointer-events:auto}
@media(prefers-reduced-motion:reduce){.network-layer .route-line{animation:none}.network-layer .traffic{display:none}}
@media(max-width:720px){.network-layer .city-node text{font-size:12px}.network-layer .plane-marker text{font-size:18px}.map-stage{min-height:360px}}

/* Aeris 9 · distributed global gateway network (no single main airport). */
.network-layer .city-node.hub circle{animation:aerisHubBreath 3.2s ease-in-out infinite alternate}@keyframes aerisHubBreath{from{filter:drop-shadow(0 0 6px rgba(118,223,199,.5))}to{filter:drop-shadow(0 0 14px rgba(118,223,199,.95))}}
