/* Aerial atlas: one open margin of information, with the city as the canvas. */
body[data-flight=active]{overflow:hidden;padding:0;}
body[data-flight=active] .navigation-rail,body[data-flight=active] .masthead,body[data-flight=active]>.skip-link,body[data-flight=active] .page-intro,body[data-flight=active] .map-foot,body[data-flight=active] .map-controls-top,body[data-flight=active] .map-toolbar,body[data-flight=active] .city-compass,body[data-flight=active] #side-panel,body[data-flight=active] #camera-panel{display:none!important;}
body[data-flight=active] .map-card{position:fixed;inset:0;z-index:90;width:100%;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none;}
body[data-flight=active] .map-stage{height:100%;min-height:0;max-height:none;}
body[data-flight=active] #filters,body[data-flight=active] #map-explorer,body[data-flight=active] .city-legend,body[data-flight=active] .city-status{display:none!important;}
body[data-flight=active][data-flight-analysis=open] #filters{display:flex!important;position:absolute;z-index:10;top:108px;left:36px;right:auto;height:auto;max-width:calc(100% - 310px);gap:8px;padding:0;border:0;background:none;}
body[data-flight=active][data-flight-analysis=open] #filters .filter{height:44px;min-width:174px;}
body[data-flight=active][data-flight-analysis=open] #map-explorer{display:grid!important;left:36px!important;right:36px;bottom:113px!important;z-index:9;}
body[data-flight=active][data-flight-analysis=open] .ce-panel{max-height:40vh;overflow:auto;padding:18px 22px;background:#f5f3eb;color:#202622;box-shadow:none;border-radius:0;}
body[data-flight=active][data-flight-analysis=open] .city-legend{display:block!important;top:108px;right:36px;bottom:auto;width:218px;max-height:min(244px,calc(100dvh - 410px));overflow:auto;scrollbar-width:thin;scrollbar-color:#9a9d94 transparent;z-index:9;}
body[data-flight=active][data-flight-analysis=open] .city-legend .city-status{display:none!important;}
body[data-flight=active][data-flight-analysis=open] .flight-scene{opacity:.3;}
body[data-flight=active] .maplibregl-ctrl-bottom-right{bottom:4px;right:18px;z-index:12;}
body[data-flight=active] .maplibregl-ctrl-attrib{max-width:calc(100vw - 36px);background:#f5f3ebd9;color:#686e67;}
body[data-flight=active] .maplibregl-ctrl-attrib a{color:#202622;}
body[data-flight=active] .maplibregl-ctrl-scale{display:none;}
body[data-flight=active] .map-card:has(.city-host[data-engine="google-3d"]) .flight-scene{bottom:38px;}
body[data-flight=active] #notice:not([hidden]){position:fixed;top:90px;left:50%;transform:translateX(-50%);max-width:520px;z-index:110;}

#flight-panel.flight-overlay{position:absolute;inset:0;z-index:7;pointer-events:none;--flight-ink:#f4f5ef;--flight-paper:#20292c;--flight-muted:#c1cccb;--flight-line:#eef7f335;--flight-accent:#ed553b;color:var(--flight-ink);font-family:var(--font,Arial,sans-serif);}
/* Contrast comes from the edge of the viewport, never a box behind each number. */
#flight-panel::before,#flight-panel::after{content:'';position:absolute;z-index:2;pointer-events:none;}
#flight-panel::before{inset:0;background:linear-gradient(90deg,#09161f99 0,#09161f80 205px,#09161f40 340px,transparent 450px);}
#flight-panel::after{inset:auto 0 0;height:135px;background:linear-gradient(0deg,#101a22e8 0,#101a22a8 60px,transparent);}
#flight-panel[data-hud=hidden]::before,#flight-panel[data-hud=hidden]::after{display:none;}
#flight-panel [hidden],#flight-panel[hidden]{display:none!important;}
#flight-panel button{font-family:inherit;cursor:pointer;}
#flight-panel button:disabled{cursor:progress;opacity:.5;}
#flight-panel :focus-visible{outline:2px solid var(--flight-accent);outline-offset:4px;}
#flight-settings .city-check{color:var(--flight-ink);font-size:12px;min-height:32px;}
.flight-mast{position:absolute;z-index:4;top:26px;left:36px;display:flex;align-items:center;gap:20px;}
.flight-wordmark{font:900 28px/.83 var(--display,"Arial Black",Arial,sans-serif);letter-spacing:-1.7px;color:var(--flight-ink);}
.flight-wordmark span{color:var(--flight-accent);}
.flight-edition{border-left:1px solid var(--flight-line);padding-left:17px;white-space:pre-line;font:600 8px/1.65 var(--font,Arial,sans-serif);letter-spacing:.14em;color:var(--flight-muted);}
.flight-reading{position:absolute;z-index:4;left:36px;top:113px;width:300px;max-height:calc(100% - 230px);overflow:auto;scrollbar-width:thin;scrollbar-color:#20262240 transparent;padding-right:4px;}
.flight-sector{margin:0;padding:0;pointer-events:none;}
.flight-sector-caption{display:block;font:650 9px/1.45 var(--font,Arial,sans-serif);letter-spacing:.13em;color:var(--flight-muted);}
.flight-sector-caption::before{content:'';display:inline-block;width:5px;height:5px;margin-right:8px;vertical-align:2px;background:var(--flight-accent);}
.flight-sector h3{margin:10px 0 21px;font:650 clamp(30px,2.5vw,42px)/.98 var(--font,Arial,sans-serif);letter-spacing:-1.5px;color:var(--flight-ink);text-wrap:balance;}
.flight-sector-detail{display:flex;align-items:flex-end;gap:14px;margin:0;}
.flight-sector-count{flex:none;font:500 52px/.85 var(--font,Arial,sans-serif);letter-spacing:-3px;font-variant-numeric:tabular-nums;color:var(--flight-ink);}
.flight-sector-period{max-width:157px;padding-bottom:2px;color:var(--flight-muted);font:500 11px/1.4 var(--font,Arial,sans-serif);text-wrap:pretty;}
.flight-sector-change{display:block;margin-top:14px;color:var(--flight-muted);font:500 11px/1.45 var(--font,Arial,sans-serif);font-variant-numeric:tabular-nums;}
.flight-sector-change[data-direction=up]{color:#ffa08a;}
.flight-sector-change[data-direction=down]{color:#9dd4af;}
.flight-nearby{margin:14px 0 0;padding-top:9px;border-top:1px solid var(--flight-line);color:var(--flight-ink);text-align:left;}
.flight-nearby-head,.flight-nearby-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:baseline;}
.flight-nearby-head{margin-bottom:4px;color:var(--flight-muted);}
.flight-nearby-title,.flight-nearby-unit{margin:0;font:650 10px/1.4 var(--font,Arial,sans-serif);}
.flight-nearby-unit{font-weight:500;text-align:right;}
.flight-nearby-list{list-style:none;padding:0;margin:0;}
.flight-nearby-row{padding:3px 0;font:550 13px/1.25 var(--font,Arial,sans-serif);}
.flight-nearby-name{overflow-wrap:anywhere;}
.flight-nearby-count{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.flight-nearby-scope{margin:4px 0 0;color:var(--flight-muted);font:500 11px/1.4 var(--font,Arial,sans-serif);}
.flight-nearby-toggle{pointer-events:auto;min-height:28px;margin:2px 0 0;padding:1px 0;border:0;background:transparent;color:var(--flight-ink);font:600 11px/1.3 var(--font,Arial,sans-serif);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--flight-line);}
.flight-nearby-toggle:hover,.flight-nearby-toggle:focus-visible{color:#ffa08a;}
.flight-neighborhood{margin-top:25px;pointer-events:auto;}
.flight-neighborhood-metrics{display:grid;grid-template-columns:1.08fr 1fr;gap:16px;padding-top:15px;border-top:1px solid var(--flight-line);}
.flight-neighborhood-metrics>div{display:grid;align-content:start;gap:5px;min-width:0;}
.flight-neighborhood-metrics strong{font:550 22px/1.1 var(--font,Arial,sans-serif);font-variant-numeric:tabular-nums;letter-spacing:-.7px;color:var(--flight-ink);}
.flight-neighborhood-metrics span{font:10px/1.45 var(--font,Arial,sans-serif);color:var(--flight-muted);}
.flight-neighborhood-lead{margin:20px 0 0;font:500 12px/1.6 var(--font,Arial,sans-serif);color:#424940;text-wrap:pretty;}
.flight-neighborhood-toggle{display:flex;align-items:center;justify-content:flex-start;gap:22px;margin-top:15px;padding:4px 0;border:0;background:none;color:var(--flight-ink);text-align:left;font:650 11px/1.5 var(--font,Arial,sans-serif);pointer-events:auto;}
.flight-neighborhood-toggle::after{content:'↗';font:18px/1 var(--font,Arial,sans-serif);color:var(--flight-accent);}
.flight-neighborhood-toggle[aria-expanded=true]::after{content:'−';}
.flight-neighborhood-toggle:hover{color:#ffa08a;}
.flight-neighborhood-body{padding:17px 0 4px;}
.flight-neighborhood-context{margin:0 0 13px;font:600 9px/1.4 var(--font,Arial,sans-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--flight-muted);}
.flight-neighborhood-tips{display:grid;gap:13px;}
.flight-neighborhood-tips p{margin:0;font:500 12px/1.6 var(--font,Arial,sans-serif);color:var(--flight-ink);text-wrap:pretty;}
.flight-neighborhood-note{margin:16px 0 0;font:10px/1.55 var(--font,Arial,sans-serif);color:var(--flight-muted);}
.flight-evolution{margin:21px 0 0;}
.flight-evolution-caption{font:550 10px/1.4 var(--font,Arial,sans-serif);letter-spacing:.01em;color:var(--flight-muted);}
.flight-evolution-bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:13px;margin-top:13px;}
.flight-evolution-year{display:grid;gap:5px;min-width:0;}
.flight-evolution-total{font:600 11px/1.1 var(--font,Arial,sans-serif);font-variant-numeric:tabular-nums;color:var(--flight-ink);}
.flight-evolution-track{display:flex;align-items:flex-end;height:41px;border-bottom:1px solid var(--flight-line);}
.flight-evolution-bar{display:block;width:100%;height:var(--bar-height);background:var(--flight-ink);}
.flight-evolution-year:last-child .flight-evolution-bar{background:var(--flight-accent);}
.flight-evolution-year[data-complete=false] .flight-evolution-bar{background:repeating-linear-gradient(135deg,#686e67 0,#686e67 2px,transparent 2px,transparent 5px);}
.flight-evolution-year-label{font:650 10px/1.2 var(--font,Arial,sans-serif);color:var(--flight-ink);}
.flight-evolution-coverage{font:8px/1.3 var(--font,Arial,sans-serif);color:var(--flight-muted);}
.flight-evolution-summary{margin:13px 0 0;font:500 11px/1.5 var(--font,Arial,sans-serif);color:var(--flight-muted);text-wrap:pretty;}
.flight-evolution-summary[data-direction=up]{color:#ffa08a;}
.flight-evolution-summary[data-direction=down]{color:#9dd4af;}
#flight-panel[data-settings=open] .flight-reading,#flight-panel[data-analysis=open] .flight-reading{display:none;}

.flight-dock{position:absolute;z-index:5;left:36px;right:36px;bottom:34px;display:flex;align-items:center;gap:15px;padding-top:14px;border-top:1px solid var(--flight-line);pointer-events:auto;}
.flight-dock button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 5px;font-size:11px;line-height:1.2;font-weight:550;border:0;border-radius:0;color:var(--flight-ink);background:transparent;white-space:nowrap;}
.flight-dock button:hover{color:#ffa08a;}
.flight-dock .flight-start{background:var(--flight-accent);color:#fff;min-width:126px;padding:12px 16px;font-weight:650;}
.flight-start::before{content:'▷';font-size:17px;line-height:.8;}
.is-running .flight-start::before{content:'Ⅱ';font-size:12px;}
.flight-dock .flight-start:hover{background:#d83d26;color:#fff;}
.flight-views{display:flex;gap:14px;margin-inline:9px 10px;padding-inline:12px 20px;border-right:1px solid var(--flight-line);}
.flight-dock .flight-view{position:relative;color:var(--flight-muted);padding-inline:0;}
.flight-dock .flight-view[aria-pressed=true]{color:var(--flight-ink);font-weight:650;}
.flight-dock .flight-view[aria-pressed=true]::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--flight-accent);}
.flight-route-toggle::before{content:'↗';font-size:17px;color:var(--flight-accent);}
.flight-settings-toggle[aria-expanded=true],.flight-analysis-toggle[aria-expanded=true]{color:#ad3b2d!important;box-shadow:inset 0 -2px var(--flight-accent);}
.flight-dock .flight-exit{margin-left:auto;color:var(--flight-muted);}
.flight-exit::after{content:'↗';font-size:17px;}
.flight-hint{position:absolute;z-index:4;bottom:104px;left:50%;transform:translateX(-50%);margin:0;color:var(--flight-ink);font:10px/1.5 var(--font,Arial,sans-serif);letter-spacing:.01em;white-space:nowrap;}
.is-running .flight-hint{visibility:hidden;}
.flight-look-surface{position:absolute;inset:0 0 30px;z-index:1;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;}
body[data-flight=active] .map-card:has(.city-host[data-engine="google-3d"]) .flight-look-surface{bottom:38px;}
#flight-panel[data-looking=true] .flight-look-surface{cursor:grabbing;}
#flight-panel:is([data-view=cockpit],[data-view=passenger]) .flight-hint{visibility:visible;}
#flight-panel[data-looking=true] .flight-hint{visibility:hidden;}
.flight-look-reset,.flight-reveal{position:absolute;z-index:5;right:36px;top:92px;display:flex;align-items:center;gap:10px;padding:10px 13px;border:0;border-radius:0;background:var(--flight-paper);color:var(--flight-ink);font-size:11px;pointer-events:auto;}
.flight-look-reset::before{content:'↺';color:var(--flight-accent);font-size:18px;line-height:1;}
.flight-look-reset::after{content:'R';padding-left:10px;border-left:1px solid var(--flight-line);color:var(--flight-muted);font:10px var(--font,Arial,sans-serif);}
.flight-look-reset:hover,.flight-reveal:hover{color:#ffa08a;}
.flight-reveal{top:28px;}
.flight-status{position:absolute;z-index:5;top:106px;left:50%;transform:translateX(-50%);margin:0;max-width:min(440px,calc(100% - 48px));padding:11px 17px;background:var(--flight-paper);color:var(--flight-ink);border-left:2px solid var(--flight-accent);font:12px/1.55 var(--font,Arial,sans-serif);text-align:center;}

/* Optional controls are a reading sheet, opened only by the user. */
.flight-console{position:absolute;z-index:6;left:36px;top:99px;width:320px;max-height:calc(100% - 214px);overflow:auto;overscroll-behavior:contain;pointer-events:auto;padding:22px 24px;background:var(--flight-paper);border:1px solid var(--flight-line);border-radius:0;scrollbar-width:thin;scrollbar-color:#20262240 transparent;}
.flight-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.flight-eyebrow{display:block;font:650 8px/1.5 var(--font,Arial,sans-serif);letter-spacing:.14em;color:var(--flight-muted);}
.flight-header h3{font:650 28px/1.1 var(--font,Arial,sans-serif);letter-spacing:-1px;margin:7px 0 0;color:var(--flight-ink);}
.flight-close,.flight-restart{display:grid;place-items:center;border:0;background:transparent;color:var(--flight-muted);padding:0;}
.flight-close{width:27px;height:27px;font-size:25px;margin:-5px -8px 0 0;}
.flight-close:hover,.flight-restart:hover{color:var(--flight-accent);}
.flight-modes{display:flex;gap:16px;margin-top:21px;border-bottom:1px solid var(--flight-line);}
.flight-mode{flex:1;padding:10px 0;border:0;background:transparent;color:var(--flight-muted);font-size:11px;}
.flight-mode[aria-pressed=true]{color:var(--flight-ink);font-weight:650;box-shadow:inset 0 -2px var(--flight-accent);}
.flight-destination{display:grid;gap:8px;margin-top:20px;font-size:10px;color:var(--flight-muted);}
.flight-destination-select{width:100%;min-width:0;padding:11px 30px 11px 10px;border:1px solid #20262244;border-radius:0;background:var(--flight-paper);color:var(--flight-ink);font:12px var(--font,Arial,sans-serif);cursor:pointer;}
.flight-destination-go{width:100%;margin-top:2px;padding:12px;background:var(--flight-ink);color:var(--flight-paper);border:0;border-radius:0;font-size:11px;font-weight:600;}
.flight-destination-go:hover{background:#39433b;}
.flight-destination-meta{margin:2px 0 0;font:10px/1.5 var(--font,Arial,sans-serif);color:var(--flight-muted);}
.flight-controls{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;}
.flight-range{display:grid;gap:10px;min-width:0;}
.flight-range-head{display:grid;gap:5px;font:10px/1.3 var(--font,Arial,sans-serif);color:var(--flight-muted);}
.flight-range-head output{color:var(--flight-ink);font:550 17px/1.3 var(--font,Arial,sans-serif);font-variant-numeric:tabular-nums;}
.flight-range input{width:100%;height:16px;padding:0;margin:0;accent-color:var(--flight-accent);cursor:pointer;}
.flight-rudder{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0;}
.flight-rudder button{display:grid;place-items:center;width:42px;height:29px;border:1px solid var(--flight-line);background:transparent;color:var(--flight-ink);font-size:18px;touch-action:none;}
.flight-rudder button:hover{border-color:var(--flight-accent);}
.flight-heading-readout{display:flex;align-items:baseline;gap:8px;}
.flight-heading-readout small{font:8px var(--font,Arial,sans-serif);letter-spacing:.1em;color:var(--flight-muted);}
.flight-heading-value{font:550 17px var(--font,Arial,sans-serif);color:var(--flight-ink);font-variant-numeric:tabular-nums;}
.flight-route{position:relative;display:flex;align-items:center;gap:10px;border-top:1px solid var(--flight-line);padding:15px 23px 15px 0;}
.flight-route>span{font:600 7px/1.4 var(--font,Arial,sans-serif);letter-spacing:.08em;color:var(--flight-muted);max-width:55px;flex:none;}
.flight-route>strong{font:600 12px/1.4 var(--font,Arial,sans-serif);color:var(--flight-ink);}
.flight-restart{position:absolute;right:0;top:12px;width:23px;height:23px;font-size:18px;}
.flight-help{font:11px/1.5 var(--font,Arial,sans-serif);color:var(--flight-muted);border-top:1px solid var(--flight-line);padding-top:14px;}
.flight-help summary{cursor:pointer;color:var(--flight-ink);font-size:11px;}
.flight-help-grid{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px 12px;margin:16px 0;}
.flight-help-grid kbd{color:var(--flight-ink);border:1px solid var(--flight-line);padding:4px 5px;font:8px var(--font,Arial,sans-serif);white-space:nowrap;}
.flight-help-grid span{font-size:10px;}
.flight-help p{font-size:10px;line-height:1.6;margin:12px 0 0;}
.flight-cadence{display:flex;justify-content:space-between;align-items:center;margin:12px 0;color:var(--flight-muted);font-size:10px;}
.flight-cadence strong{font:550 11px var(--font,Arial,sans-serif);color:var(--flight-ink);}

@media(max-width:1100px){
 .flight-dock{gap:12px;}.flight-views{gap:12px;margin-inline:0;padding-inline:4px 14px;}.flight-dock button{font-size:10px;}.flight-dock .flight-start{min-width:112px;}
 .flight-reading{width:278px;}.flight-sector h3{font-size:32px;}.flight-sector-count{font-size:47px;}.flight-sector-period{font-size:10px;}
}
@media(max-height:760px) and (min-width:621px){
 .flight-mast{top:21px;}.flight-reading{top:96px;max-height:calc(100% - 201px);}.flight-sector h3{margin-block:8px 17px;font-size:31px;}.flight-sector-count{font-size:45px;}.flight-neighborhood{margin-top:19px;}.flight-neighborhood-lead{margin-top:14px;font-size:11px;}.flight-neighborhood-metrics{padding-top:12px;}.flight-neighborhood-toggle{margin-top:10px;}.flight-console{top:90px;max-height:calc(100% - 198px);}
}
@media(max-width:900px){
 .flight-mast,.flight-reading{left:24px;}.flight-mast{gap:14px;}.flight-wordmark{font-size:26px;}.flight-edition{padding-left:12px;letter-spacing:.09em;font-size:7px;}
 .flight-reading{width:260px;}.flight-neighborhood-metrics{gap:12px;}.flight-neighborhood-metrics strong{font-size:21px;}
 .flight-dock{left:24px;right:24px;gap:11px;bottom:32px;}.flight-dock button{padding-inline:2px;}.flight-dock .flight-start{min-width:104px;padding-inline:12px;}.flight-views{gap:11px;padding-right:12px;}
 .flight-console{left:24px;}.flight-look-reset{right:24px;}
 body[data-flight=active][data-flight-analysis=open] #filters{left:24px;max-width:calc(100% - 48px);}
 body[data-flight=active][data-flight-analysis=open] .city-legend{right:24px;top:166px;width:190px;max-height:calc(60vh - 200px);}
 body[data-flight=active][data-flight-analysis=open] #map-explorer{left:24px!important;right:24px;bottom:108px!important;}
}
@media(max-width:620px){
 #flight-panel::before{background:linear-gradient(90deg,#09161f99,#09161f66 130px,#09161f22 250px,transparent 370px);}#flight-panel::after{height:172px;}
 .flight-mast{left:18px;top:20px;}.flight-wordmark{font-size:24px;}.flight-edition{display:none;}
 .flight-reading{left:18px;top:81px;width:220px;max-height:calc(100% - 240px);}.flight-sector-caption{font-size:8px;letter-spacing:.07em;}.flight-sector h3{font-size:28px;letter-spacing:-1px;margin-block:8px 16px;}.flight-sector-count{font-size:40px;letter-spacing:-2px;}.flight-sector-detail{gap:11px;}.flight-sector-period{font-size:9px;max-width:112px;}.flight-sector-change{font-size:10px;margin-top:12px;}
 .flight-neighborhood{margin-top:18px;}.flight-neighborhood-metrics{gap:10px;padding-top:12px;}.flight-neighborhood-metrics strong{font-size:19px;}.flight-neighborhood-metrics span{font-size:9px;}.flight-neighborhood-lead{font-size:11px;margin-top:15px;}.flight-neighborhood-toggle{margin-top:10px;font-size:10px;}
 .flight-dock{left:18px;right:18px;bottom:30px;flex-wrap:wrap;gap:5px 15px;padding-top:10px;}.flight-dock button{min-height:29px;padding:7px 0;font-size:10px;}.flight-dock .flight-start{min-width:104px;min-height:34px;padding-inline:10px;}.flight-views{gap:13px;border:0;padding:0;margin:0;}.flight-dock .flight-exit{margin-left:auto;}.flight-dock .flight-route-toggle{margin-left:3px;}
 .flight-hint{bottom:126px;font-size:9px;max-width:calc(100% - 32px);white-space:normal;text-align:center;}
 .flight-console{left:18px;right:18px;width:auto;max-width:330px;top:81px;max-height:calc(100% - 220px);padding:18px;}.flight-status{top:81px;font-size:11px;}.flight-reveal{top:20px;right:18px;font-size:10px;}.flight-look-reset{top:80px;right:18px;padding:8px;font-size:9px;}.flight-look-reset::after{display:none;}
 body[data-flight=active][data-flight-analysis=open] #filters{top:81px;left:18px;right:18px;max-width:none;gap:6px;}
 body[data-flight=active][data-flight-analysis=open] #filters>.filter,body[data-flight=active][data-flight-analysis=open] #filters>.category-control{flex:1;min-width:0;max-width:50%;}
 body[data-flight=active][data-flight-analysis=open] #filters .filter{min-width:0;width:100%;padding-inline:10px;}
 body[data-flight=active][data-flight-analysis=open] .city-legend{display:none!important;}
 body[data-flight=active][data-flight-analysis=open] #map-explorer{left:18px!important;right:18px;bottom:137px!important;}
 body[data-flight=active][data-flight-analysis=open] .ce-panel{padding:14px;max-height:40vh;}
 body[data-flight=active] .maplibregl-ctrl-attrib{font-size:7px;max-width:calc(100vw - 24px);}
}
@media(prefers-reduced-motion:reduce){#flight-panel *,#flight-panel *::before,#flight-panel *::after{transition:none!important;animation:none!important;}}

.flight-departure{display:grid;gap:7px;margin-top:10px;padding-top:9px;border-top:1px solid #536565;pointer-events:auto;color:inherit;font:11px/1.5 var(--font,Arial,sans-serif);}
.flight-departure[hidden]{display:none;}.flight-departure-label{font-weight:600;}.flight-departure-progress{width:100%;height:3px;accent-color:var(--flight-accent);border:0;}.flight-departure-skip{justify-self:start;border:0;border-bottom:1px solid #82948c;padding:5px 0;background:transparent;color:#f5f4eb;font:10px var(--font,Arial,sans-serif);cursor:pointer;}
.flight-dock .flight-audio-toggle[aria-pressed=true]{color:var(--flight-accent);}.flight-audio-settings{border-top:1px solid var(--flight-line);padding-top:14px;display:grid;gap:9px;}.flight-city-audio-toggle{border:1px solid var(--flight-line);padding:10px;background:transparent;color:var(--flight-ink);font:11px var(--font,Arial,sans-serif);cursor:pointer;}.flight-city-audio-toggle[aria-pressed=true]{background:var(--flight-ink);color:var(--flight-paper);}.flight-audio-settings p{margin:0;color:var(--flight-muted);font:10px/1.5 var(--font,Arial,sans-serif);}

/* The cabin stays visible. Its information sits on dark viewport edges. */
#flight-panel:is([data-view=cockpit],[data-view=passenger]){--flight-ink:#f4f5ef;--flight-paper:#20292c;--flight-muted:#c1cccb;--flight-line:#eef7f335;}
#flight-panel:is([data-view=cockpit],[data-view=passenger])::before{background:linear-gradient(180deg,#101a2266,transparent 150px);}
#flight-panel:is([data-view=cockpit],[data-view=passenger])::after{height:110px;background:linear-gradient(0deg,#101a22e8,#101a22a8 65px,transparent);}
#flight-panel[data-view=cockpit] .flight-reading{top:96px;max-height:calc(100% - 230px);text-shadow:0 1px 3px #101822;}
#flight-panel[data-view=cockpit] .flight-neighborhood{display:none;}
#flight-panel:is([data-view=cockpit],[data-view=passenger]) .flight-sector h3{font-size:25px;margin:8px 0 12px;}
#flight-panel:is([data-view=cockpit],[data-view=passenger]) .flight-sector-count{font-size:34px;}
#flight-panel:is([data-view=cockpit],[data-view=passenger]) :is(.flight-mast,.flight-departure,.flight-hint){text-shadow:0 1px 2px #0008;}
#flight-panel[data-departure]:not([data-departure=complete])::before{background:linear-gradient(180deg,#101a2266,transparent 135px);}
#flight-panel[data-view=cockpit][data-departure]:not([data-departure=complete])::before{background:linear-gradient(180deg,#101a2266,transparent 135px);}

/* The port-side window opens across the centre. Keep its readout against
   the right jamb even when the passenger turns away from the labelled land. */
#flight-panel[data-view=passenger]:not([data-settings=open],[data-analysis=open])::before{
  inset:0 0 auto auto;width:min(290px,50%);height:100%;
  background:linear-gradient(270deg,#101b24e6,#101b248a 58%,transparent);
  mask-image:linear-gradient(transparent 4%,#000 18%,#000 42%,transparent 69%);
}
#flight-panel[data-view=passenger] .flight-reading{
  left:auto;right:clamp(14px,2vw,32px);top:clamp(95px,18vh,165px);
  width:clamp(138px,24vw,210px);max-height:calc(100% - clamp(95px,18vh,165px) - 145px);
  padding:0 0 0 4px;text-align:right;text-shadow:0 1px 3px #091117d9;pointer-events:none;
}
#flight-panel[data-view=passenger] .flight-sector h3{font-size:clamp(22px,2.1vw,32px);line-height:1.06;margin:6px 0 10px;overflow-wrap:break-word;}
#flight-panel[data-view=passenger] .flight-sector-detail{display:grid;justify-items:end;gap:4px;}
#flight-panel[data-view=passenger] .flight-sector-count{font-size:clamp(29px,3vw,40px);letter-spacing:-.05em;}
#flight-panel[data-view=passenger] .flight-sector-period{max-width:100%;white-space:pre-line;font:550 12px/1.4 var(--font,Arial,sans-serif);color:var(--flight-ink);}
#flight-panel[data-view=passenger] .flight-nearby-toggle{display:block;margin-left:auto;text-align:right;}
#flight-panel[data-view=passenger] .flight-reading:has(.flight-neighborhood-toggle[aria-expanded=true]) .flight-nearby{display:none;}
#flight-panel[data-view=passenger] .flight-neighborhood{display:flex;flex-direction:column;align-items:stretch;margin-top:10px;pointer-events:none;}
#flight-panel[data-view=passenger] .flight-neighborhood-toggle{align-self:flex-end;order:-1;min-height:32px;margin:0;gap:7px;}
#flight-panel[data-view=passenger] .flight-look-reset{left:clamp(14px,2vw,32px);right:auto;top:70px;bottom:auto;}
#flight-panel[data-view=passenger] .flight-neighborhood:has(.flight-neighborhood-body[hidden])>:is(.flight-neighborhood-metrics,.flight-evolution,.flight-neighborhood-lead){display:none;}
#flight-panel[data-view=passenger] .flight-reading:has(.flight-neighborhood:not([hidden]) .flight-neighborhood-toggle[aria-expanded=true]){
  pointer-events:auto;overscroll-behavior:contain;width:min(282px,calc(100% - 36px));background:#19292ef5;padding:16px;text-shadow:none;
}
#flight-panel[data-view=passenger] .flight-neighborhood-body,#flight-panel[data-view=passenger] .flight-neighborhood-lead{text-align:left;color:var(--flight-ink);}
#flight-panel[data-view=passenger]:has(.flight-neighborhood:not([hidden]) .flight-neighborhood-toggle[aria-expanded=true])::before{mask-image:none;}
@media(max-width:620px){
  .flight-nearby-row{font-size:12px;column-gap:5px;}
  .flight-nearby{margin-top:10px;padding-top:7px;}
  #flight-panel[data-view=passenger] .flight-reading{top:clamp(78px,15vh,120px);max-height:calc(100% - 302px);}
  #flight-panel[data-view=passenger] .flight-look-reset{top:66px;}
  body[data-flight=active] .maplibregl-ctrl-attrib{line-height:1.4;}
  body[data-flight=active] .map-card:has(.maplibregl-ctrl-attrib[open]){--flight-credit-space:32px;}
  .flight-dock{bottom:calc(30px + var(--flight-credit-space,0px));}
  .flight-hint{bottom:calc(126px + var(--flight-credit-space,0px));}
}
@media(max-height:510px){
  #flight-panel[data-view=passenger] .flight-reading{top:60px;max-height:calc(100% - 143px);}
}

/* A fixed opaque instrument face keeps the readings legible against sky and ground. */
.flight-instruments{position:absolute;z-index:5;top:clamp(12px,2.2vh,26px);right:clamp(12px,2.2vw,36px);width:clamp(194px,18vw,252px);background:#192829;color:#fffdf4;border-left:3px solid #ee7257;padding:11px 15px 12px;pointer-events:none;text-shadow:none;}
.flight-journey{display:grid;gap:2px;padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid #536565;}
.flight-journey-mode{color:#ffae96;font:700 10px/1.25 var(--font,Arial,sans-serif);text-transform:uppercase;letter-spacing:.1em;}
.flight-journey-destination{font:650 17px/1.15 var(--font,Arial,sans-serif);overflow-wrap:anywhere;}
.flight-journey-distance{font:500 11px/1.35 var(--font,Arial,sans-serif);color:#d6e0d9;}
.flight-instrument-list{display:grid;grid-template-columns:1fr 1fr;margin:0;gap:12px;font-variant-numeric:tabular-nums;}
.flight-instrument-list dt{font:600 10px/1.3 var(--font,Arial,sans-serif);color:#c7d6d1;}
.flight-instrument-list dd{display:flex;align-items:baseline;gap:4px;margin:3px 0 0;white-space:nowrap;}
.flight-instrument-list strong{font:650 23px/1 var(--font,Arial,sans-serif);font-variant-numeric:tabular-nums;}
.flight-instrument-unit{font:500 11px/1 var(--font,Arial,sans-serif);color:#d6e0d9;}
.flight-reading-toggle{display:list-item;width:fit-content;max-width:100%;cursor:pointer;pointer-events:auto;padding:7px 10px;background:#192829;color:#f4f5ef;font:600 12px/1.4 var(--font,Arial,sans-serif);text-shadow:none;}
.flight-reading[open]>.flight-reading-toggle{margin-bottom:12px;}
#flight-panel:has(.flight-reading:not([open]))::before{display:none;}
#flight-panel[data-view=passenger] .flight-reading{top:auto;bottom:clamp(148px,23vh,205px);max-height:calc(100% - 300px);}
#flight-panel[data-view=passenger] .flight-reading-toggle{margin-left:auto;}
#flight-panel[data-view=cockpit] .flight-look-reset{right:auto;left:clamp(12px,2.2vw,36px);top:61px;}
#flight-panel[data-settings=open] .flight-instruments,#flight-panel[data-analysis=open] .flight-instruments{display:none;}
@media(max-width:620px){
  .flight-instruments{width:43vw;max-width:192px;padding:8px 10px;}
  .flight-journey-destination{font-size:14px;}
  .flight-journey{margin-bottom:6px;padding-bottom:6px;}
  .flight-instrument-list{gap:6px;}
  .flight-instrument-list strong{font-size:19px;}
}
@media(max-height:500px){
  #flight-panel[data-view=passenger] .flight-reading{top:65px;bottom:auto;right:auto;left:18px;max-height:calc(100% - 160px);text-align:left;}
  #flight-panel[data-view=passenger] .flight-reading-toggle{margin-left:0;}
  #flight-panel:is([data-view=cockpit],[data-view=passenger]) .flight-look-reset{top:auto;bottom:93px;left:18px;right:auto;}
}

/* Atmospheric layers sit behind the aircraft, instruments and map lettering. */
.flight-weather-effects{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}
#flight-panel{isolation:isolate}
.flight-weather-effects::before,.flight-weather-effects::after{content:"";position:absolute;pointer-events:none;opacity:0}
.flight-weather-effects::before{inset:0;background:linear-gradient(180deg,#2c405aab,#475a6a49 40%,#53667414);transition:opacity 1.4s}
[data-weather=rain] .flight-weather-effects::before{opacity:.92}
[data-weather=overcast] .flight-weather-effects::before{opacity:.67}
[data-weather=cloudy] .flight-weather-effects::before{opacity:.25}
[data-weather=rain] .flight-weather-effects::after{inset:-192px -14% 0 -14%;background:url('/geo/flight/rain.svg') repeat;background-size:208px 192px;opacity:.65;animation:cz-rain-fall .63s linear infinite}
@keyframes cz-rain-fall{from{transform:skewX(-9deg) translate3d(0,0,0)}to{transform:skewX(-9deg) translate3d(0,192px,0)}}
@media(prefers-reduced-motion:reduce){.flight-weather-effects::before{transition:none}[data-weather=rain] .flight-weather-effects::after{display:none}}
.flight-conditions{display:grid;gap:3px;color:#f5f6f3;font:600 10px/1.2 var(--font,Arial,sans-serif);text-shadow:0 1px 4px #18282a}
.flight-traffic-line{display:none;color:#e4e9e6;font-size:9px}
.map-stage:has(.city-host[data-traffic-visible=true]) .flight-traffic-line{display:block}
.flight-weather-settings{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--flight-line)}
.flight-weather-settings label{font:600 12px/1.35 var(--font,Arial,sans-serif)}
.flight-weather-settings select{width:100%;padding:8px 9px;font:inherit;color:inherit;background:transparent;border:1px solid currentColor}
.flight-weather-detail{margin:0;font:11px/1.5 var(--font,Arial,sans-serif)}
@media(max-width:720px){.flight-conditions{position:absolute;top:100%;left:0;margin-top:4px;font-size:9px;white-space:nowrap}}
