.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* AtNightX V3 design integration. Existing Canva imagery, glass tokens and navigation remain unchanged. */
:root{--globe-border:rgba(121,255,255,.28);--globe-bg:rgba(0,12,25,.69)}
.budget-section{padding-block:55px 44px}
.budget-section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.budget-section-intro h2{font-size:clamp(30px,4vw,53px);line-height:1.07;letter-spacing:-.045em;margin:9px 0 0;max-width:690px}
.budget-section-intro p{max-width:340px;font-size:13px;line-height:1.7;margin:0;color:var(--soft)}
.budget-card{border:1px solid var(--line-cyan);background:rgba(0,0,0,.2);box-shadow:0 25px 90px #00000012;padding:24px 28px;border-radius:8px}
.budget-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.budget-head>span{font-size:10px;letter-spacing:.19em;color:#b2d8e1;font-weight:800}
.budget-value{font-size:clamp(29px,3.2vw,46px);font-variant-numeric:tabular-nums;font-weight:850;letter-spacing:-.065em;color:#79ffff}
.budget-card input[type="range"]{display:block;appearance:none;-webkit-appearance:none;width:100%;height:7px;margin:19px 0 10px;border:1px solid rgba(121,255,255,.22);border-radius:100px;background:linear-gradient(90deg,#79ffff 0%,#79ffff var(--budget-progress,4%),#153e4b var(--budget-progress,4%),#153e4b 100%);cursor:pointer}
.budget-card input[type="range"]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:23px;height:23px;border-radius:50%;background:#071b27;border:5px solid #79ffff;box-shadow:0 0 17px #79ffff88}
.budget-card input[type="range"]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#071b27;border:5px solid #79ffff;box-shadow:0 0 17px #79ffff88}
.budget-card input[type="range"]:disabled{opacity:.4;cursor:not-allowed}
.budget-labels{display:flex;justify-content:space-between;color:rgba(255,255,255,.76);font-size:10px;letter-spacing:.06em}
.budget-under{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:21px;padding-top:17px;border-top:1px solid rgba(255,255,255,.14)}
.budget-personal{display:flex;gap:11px;align-items:center;color:#f1fbfd;cursor:pointer;font-size:12px;font-weight:650}
.budget-personal input{width:18px;height:18px;accent-color:#79ffff}
.budget-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.budget-footnote{display:block;color:#a4cbd0;font-size:11px;margin-top:12px}
.budget-action{font-weight:750;font-size:12px;color:#061520;background:#79ffff;text-decoration:none;border-radius:4px;padding:11px 15px}
.budget-action:hover{background:white;color:#061520}
.budget-quick{color:#b9d4db;font-size:11px}
/* The globe uses a native web map. It is deliberately NOT a Canva image recreated by AI. */
.globe-stage{position:relative;isolation:isolate;width:100%;min-height:calc(100svh - 84px);height:max(790px,calc(100svh - 84px));overflow:hidden;background:rgba(0,8,19,.35);border-block:1px solid rgba(121,255,255,.15)}
.globe-map{position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 53% 47%,#10495a88,transparent 53%),linear-gradient(120deg,#071925,#020b14)}
.globe-map .maplibregl-canvas{outline-offset:-3px}
.globe-map .maplibregl-control-container{z-index:5}
.globe-map .maplibregl-ctrl-attrib{font-size:9px!important;background:#00111dcc!important;color:#cce5e4!important}
.globe-map .maplibregl-ctrl-attrib a{color:#79ffff!important}
.globe-map .maplibregl-ctrl-group{background:rgba(2,20,32,.85)!important;border:1px solid var(--globe-border)}
.globe-map .maplibregl-ctrl-group button{filter:invert(.8)}
.globe-fallback{position:absolute;inset:0;background:linear-gradient(90deg,#030d17dc 8%,transparent 80%),url('mission-canvas-original.webp') center / contain no-repeat;color:#b9dbe1;display:grid;place-items:center;z-index:0}
.globe-fallback[hidden]{display:none}
.globe-fallback span{margin:5%;padding:16px;background:#020f1be6;border:1px solid var(--globe-border);max-width:310px;text-align:center;font-size:12px}
.globe-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,8,18,.46),transparent 34%,transparent 71%,rgba(0,8,18,.41));}
.globe-topline{position:absolute;top:20px;left:50%;z-index:3;transform:translateX(-50%);border:1px solid var(--globe-border);border-radius:40px;background:rgba(0,11,22,.76);display:flex;align-items:center;gap:12px;padding:10px 18px;white-space:nowrap;font-size:10px;letter-spacing:.17em;font-weight:800;color:#d1fbff}
.globe-topline i{width:7px;height:7px;background:var(--cyan);border-radius:50%;box-shadow:0 0 14px #79ffff}
.globe-action-buttons{position:absolute;right:26px;top:22px;z-index:5;display:flex;gap:8px}
.globe-action-buttons button{background:rgba(0,12,25,.85);border:1px solid var(--globe-border);color:#e7fcff;border-radius:5px;font-size:11px;padding:9px 11px;cursor:pointer}
.globe-action-buttons button:hover{background:#0c3542}
.globe-panel{position:absolute;z-index:4;background:var(--globe-bg);border:1px solid var(--globe-border);box-shadow:0 25px 90px #00000012;border-radius:9px;color:white}
.globe-panel-left{left:clamp(15px,3vw,54px);top:75px;width:min(370px,29vw);max-height:calc(100% - 170px);overflow:auto;padding:23px;scrollbar-color:#25515f transparent}
.globe-panel-right{right:clamp(15px,3vw,54px);top:75px;width:min(300px,25vw);max-height:calc(100% - 170px);overflow:auto;padding:22px;scrollbar-color:#25515f transparent}
.globe-kicker{font-size:9px;letter-spacing:.2em;font-weight:800;color:#79ffff}
.globe-panel h1{font-size:clamp(27px,2.65vw,43px);font-weight:850;line-height:1.04;letter-spacing:-.06em;margin:14px 0 10px}
.globe-panel h1 span{color:#79ffff}
.globe-panel p,.globe-caption{font-size:11px;line-height:1.65;color:#bdd0d9}
.globe-stage .budget-card{padding:14px 12px;margin:16px 0 14px;background:rgba(0,0,0,.18)}
.globe-stage .budget-value{font-size:30px}.globe-stage .budget-head>span{font-size:9px}
.globe-stage .budget-under{gap:12px}.globe-stage .budget-personal{font-size:11px}.globe-stage .budget-action{font-size:10px;padding:10px 12px}
.globe-panel h2{font-size:12px;letter-spacing:.02em;margin:18px 0 10px}
.globe-city-picker{display:flex;gap:7px;margin:8px 0 8px}
.globe-city-picker select{min-width:0;width:100%;height:40px;background:#061827;color:#edfaff;border:1px solid #4a6775;border-radius:4px;padding:0 9px}
.globe-city-picker button,.globe-export{border:1px solid #79ffff73;background:#79ffff;color:#071928;padding:0 12px;border-radius:4px;font-weight:800;cursor:pointer}
.globe-city-examples{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0 11px}
.globe-city-examples button{border:1px solid rgba(121,255,255,.32);background:#79ffff0d;color:#caf5f8;font-size:10px;padding:6px 10px;border-radius:30px;cursor:pointer}
.globe-city-examples button:hover{background:#79ffff23}
.globe-city-row{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.13)}
.globe-city-number{color:var(--cyan);font-size:13px;font-weight:800;width:23px}
.globe-city-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.globe-city-info strong{font-size:12px}.globe-city-info span{font-size:10px;color:#aac6d0}
.globe-city-rename{width:100%;background:#061a27;color:white;border:1px solid var(--globe-border);font-size:11px;padding:4px}
.globe-city-actions{display:flex;gap:2px}.globe-city-actions button{border:1px solid #ffffff29;background:transparent;color:#d9f7fc;width:24px;height:27px;border-radius:3px;cursor:pointer}.globe-city-actions button:disabled{opacity:.25;cursor:default}.globe-city-actions button:hover:not(:disabled){border-color:var(--cyan)}
.globe-empty{margin:10px 0}.globe-help{font-size:10px;line-height:1.5;color:#a2bdc9;margin-top:12px}
.globe-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 15px}
.globe-metric{padding:11px 9px;border:1px solid #ffffff22;background:rgba(0,6,18,.19);border-radius:5px;min-width:0}
.globe-metric strong{display:block;font-size:clamp(18px,1.8vw,30px);font-variant-numeric:tabular-nums;letter-spacing:-.045em;color:#efffff}
.globe-metric span{font-size:9px;letter-spacing:.06em;color:#b8d5dc}
.globe-metric.highlight{border-color:#79ffff79;background:#79ffff0c}.globe-metric.highlight strong{color:#79ffff}
.globe-panel .btn{width:100%;justify-content:center;margin:5px 0;min-height:40px;font-size:10px}
.globe-cta-minor{display:block;text-align:center;font-size:11px;color:#acfaff;text-decoration:underline;margin:11px 0}
.globe-export{font-size:10px;min-height:36px;width:100%;margin-top:10px;background:transparent;color:#aeeff7}
.globe-insight-note{margin-top:11px;font-size:10px;line-height:1.55;color:#c3d9e2}
.globe-advanced{border-top:1px solid rgba(255,255,255,.16);padding-top:12px;margin-top:17px}
.globe-advanced summary{font-size:11px;cursor:pointer;color:#b7eef1}.globe-advanced label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:11px;font-size:10px;color:#c1dae0}
.globe-advanced input{max-width:80px;background:#001624;border:1px solid #547483;color:#f6ffff;padding:6px}
.globe-foot{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:3;background:rgba(0,8,18,.72);border:1px solid var(--globe-border);border-radius:5px;padding:11px 18px;display:flex;gap:13px;align-items:center;color:#c1dce4;font-size:10px;white-space:nowrap;pointer-events:none}
.globe-foot strong{color:var(--cyan);letter-spacing:.12em}
.globe-foot i{color:#79ffff}
.globe-accessible-status{color:#add8df;font-size:10px;min-height:1.6em;line-height:1.4}
.globe-story{margin-top:0}
@media(max-width:1220px){.globe-panel-left{width:315px;padding:17px}.globe-panel-right{width:265px;padding:17px}.globe-panel h1{font-size:31px}.globe-topline{left:55%;font-size:9px}}
@media(max-width:1000px){.globe-stage{height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;padding:0 18px 22px;gap:14px}.globe-map,.globe-fallback{position:relative;grid-column:1/-1;height:min(64svh,580px);min-height:390px;grid-row:1}.globe-vignette{display:none}.globe-panel-left,.globe-panel-right{position:relative;top:auto;left:auto;right:auto;width:auto;max-height:none;overflow:visible;grid-row:2;padding:23px}.globe-topline{top:18px;left:20px;transform:none;max-width:55%;white-space:normal}.globe-action-buttons{top:14px;right:21px}.globe-foot{position:relative;bottom:auto;left:auto;transform:none;grid-column:1/-1;grid-row:3;white-space:normal;justify-content:center}.globe-map .maplibregl-ctrl-attrib{max-width:80%}.globe-stage .budget-value{font-size:31px}}
@media(max-width:650px){.budget-section{padding-block:39px 28px}.budget-section-intro{display:block}.budget-section-intro p{margin:13px 0 0}.budget-card{padding:20px 18px}.budget-head>span{font-size:9px}.budget-under{align-items:flex-start}.globe-stage{display:flex;flex-direction:column;padding:0 12px 15px;gap:11px}.globe-map,.globe-fallback{width:100%;height:53svh;min-height:335px;flex:none}.globe-topline{font-size:8px;max-width:56%;left:16px;top:12px;padding:8px 10px}.globe-action-buttons{right:12px;top:10px}.globe-action-buttons button{padding:7px 9px;font-size:9px}.globe-panel-left,.globe-panel-right{width:100%;padding:18px}.globe-panel h1{font-size:35px}.globe-metric strong{font-size:25px}.globe-foot{padding:10px;flex-wrap:wrap;justify-content:flex-start;gap:6px;font-size:9px}.globe-foot>*{max-width:100%}.globe-stage:fullscreen{overflow:auto}}
@media(prefers-reduced-motion:reduce){.globe-city-examples button,.globe-city-actions button{transition:none}}

.globe-city-settings{display:flex;gap:6px;margin:6px 0 0;flex-wrap:wrap}
.globe-city-settings select{max-width:110px;background:rgba(0,13,27,.85);color:#d7f8fa;border:1px solid rgba(121,255,255,.25);font-size:10px;padding:5px;border-radius:3px}

/* V3.1 self-hosted interactive geographic canvas: independent of map CDNs and WebGL. */
.globe-local-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;user-select:none;outline-offset:-5px}
.globe-local-canvas:focus-visible{outline:2px solid #79ffff}
.globe-fallback{pointer-events:none}
@media(max-width:1000px){.globe-local-canvas{position:absolute;inset:0}}
