1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63676,e=>{"use strict";let t=(0,e.i(56420).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],63676)},90317,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return d}};for(var i in n)Object.defineProperty(a,i,{enumerable:!0,get:n[i]});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class s{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let o="u">typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return o?new o:new s}function c(e){return o?o.bind(e):s.bind(e)}function d(){return o?o.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},9885,(e,t,a)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"encodeURIPath",{enumerable:!0,get:function(){return n}})},67585,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let n=e.r(32061);function i({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},52157,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"PreloadChunks",{enumerable:!0,get:function(){return l}});let n=e.r(43476),i=e.r(74080),r=e.r(63599),s=e.r(9885),o=e.r(43369);function l({moduleIds:e}){if("u">typeof window)return null;let t=r.workAsyncStorage.getStore();if(void 0===t)return null;let a=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;a.push(...e)}}if(0===a.length)return null;let c=(0,o.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:a.map(e=>{let a=`${t.assetPrefix}/_next/${(0,s.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:a,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,i.preload)(a,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return c}});let n=e.r(43476),i=e.r(71645),r=e.r(67585),s=e.r(52157);function o(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},c=function(e){let t={...l,...e},a=(0,i.lazy)(()=>t.loader().then(o)),c=t.loading;function d(e){let o=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,l=!t.ssr||!!t.loading,d=l?i.Suspense:i.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(s.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(a,{...e})]}):(0,n.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(a,{...e})});return(0,n.jsx)(d,{...l?{fallback:o}:{},children:u})}return d.displayName="LoadableComponent",d}},70703,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return i}});let n=e.r(55682)._(e.r(69093));function i(e,t){let a={};"function"==typeof e&&(a.loader=e);let i={...a,...t};return(0,n.default)({...i,modules:i.loadableGenerated?.modules})}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esMo
1dule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},22287,(e,t,a)=>{t.exports={dataYear:"FY2025-26",source:"MOD, HMRC, ONS",housing:{sfaMonthlySubsidised:{london:850,outsideLondon:550,comment:"CILOCT (Contribution In Lieu Of Council Tax) + subsidised SFA charges. Actual market rent comparison below."},marketRentMonthly:{london:2450,outsideLondon:1100,comment:"ONS 2024 avg monthly rent: London ~£2,450 (2-bed), UK outside London ~£1,100"},londonWeighting:4e3,comment:"London Weighting for civilian roles averages £3,000-£8,000/yr"},healthcare:{nhsBaseline:!0,privateHealthCostAnnual:{single:1800,family:5400,comment:"BUPA/AXA PPP 2024 average. Single ~£150/mo, Family ~£450/mo"},militaryAdvantageNote:"MOD provides full dental, occupational health, rapid specialist access. NHS has 18-week wait; private gives immediate access."},pension:{afps15:{accrualRatePerYear:.01667,pensionAge:67,edpAt:20,edpLumpSumMultiplier:3,comment:"AFPS 15: Accrues 1/60 per year (1.667%). Pension from State Pension Age. Early Departure Payment from 20 years."},afps05:{accrualRatePerYear:.02222,pensionAge:65,edpAt:18,comment:"AFPS 05: Accrues 1/45 per year (2.222%). Pension from age 65. EDP from 18 years."},afps75:{accrualRatePerYear:.02778,pensionAge:55,immediatePensionAt:22,comment:"AFPS 75: Immediately commutable pension after 22 years. Most generous. 1/36 per year (2.778%)."},employerContribEquivalent:{afps15:.265,afps05:.265,afps75:.35,comment:"MOD employer pension contribution rates. Much higher than typical civilian 3-8%."}},education:{elc:{maxAnnual:2e3,maxLifetime:6e3,eligibleFrom:"4 years service",comment:"Enhanced Learning Credits: up to £2,000/yr for approved courses. Lifetime max £6,000."},resettlement:{individualResettlementBudget:1e3,comment:"Individual Resettlement Budget for final year leavers."},ctp:{value:1500,comment:"Career Transition Partnership: professional career coaching, CV help, job boards. Estimated value £1,500."},civilianEquivalent:{professionalDevBudgetMonthly:417,comment:"Average UK employer L&D budget: ~£1,000-£2,000/yr for professional roles. We use £5,000/yr equivalent for full military value."}},tax:{incomeTaxBands2425:[{min:0,max:12570,rate:0,label:"Personal Allowance"},{min:12570,max:50270,rate:.2,label:"Basic Rate"},{min:50270,max:125140,rate:.4,label:"Higher Rate"},{min:125140,max:0x3b9ac9ff,rate:.45,label:"Additional Rate"}],nationalInsurance:{employee:{threshold:12570,rate1:.08,rate1Max:50270,rate2:.02,comment:"Employee NI: 8% on earnings £12,570-£50,270; 2% above £50,270"}}},otherBenefits:{subsidisedFood:{monthlyValue:180,comment:"Pay As You Dine (PAYD) subsidised meals. Approx £180/month saving vs civilian."},sportsRecreation:{monthlyValue:80,comment:"Access to gyms, sports facilities, adventure training. Estimated £80/month equivalent."},leaveBonus:{militaryDays:38,civilianDays:28,extraDaysValue:10,comment:"Military gets 38 days (inc bank holidays) vs typical 28. 10 extra days at daily rate."}}}},55680,(e,t,a)=>{t.exports=JSON.parse('{"dataYear":"FY2025-26","source":"MOD Armed Forces Pay Review Body 2025 (54th Report, May 2025) â 4.5% increase from 1 April 2025. Full pay spine with 4 supplement columns per level. Supp 1 = Lower Band, Supp 4 = Higher Band.","xFactorRate":0.145,"payScales":{"OR-1":[{"level":"OR-1-1","supp1":26334,"supp2":26334,"supp3":26334,"supp4":26334}],"OR-2":[{"level":"OR-2-1","supp1":26334,"supp2":26334,"supp3":26334,"supp4":26334},{"level":"OR-2-2","supp1":27028,"supp2":27028,"supp3":27028,"supp4":27028},{"level":"OR-2-3","supp1":27028,"supp2":27028,"supp3":27028,"supp4":27028},{"level":"OR-2-4","supp1":28730,"supp2":29052,"supp3":29388,"supp4":29388},{"level":"OR-2-5","supp1":30160,"supp2":30179,"supp3":30613,"supp4":31016},{"level":"OR-2-6","supp1":31252,"supp2":31685,"supp3":32229,"supp4":32632},{"level":"OR-2-7","supp1":32648,"supp2":33274,"supp3":33933,"supp4":34352},{"level":"OR-2-8","supp1":34083,"supp2":34848,"supp3":35507,"supp4":36107},{"level":"OR-2-9","supp1":35610,"supp2":36516,"supp3":37207,"supp4":37846},{"level":"OR-2-10","supp1":37214,"supp2":38212,"supp3":38994,"supp4":39734}],"OR-3":[{"level":"OR-3-1","supp1":34083,"supp2":34848,"supp3":35507,"supp4":36107},{"level":"OR-3-2","supp1":35610,"supp2":36516,"supp3":37207,"supp4":37846},{"level":"OR-3-3","supp1":37214,"supp2":38212,"supp3":38994,"supp4":39734}],"OR-4":[{"level":"OR-4-1","supp1":39565,"supp2":38932,"supp3":41772,"supp4":42782},{"level":"OR-4-2","supp1":39565,"supp2":38932,"supp3":41772,"supp4":42782},{"level":"OR-4-3","supp1":40593,"supp2":41735,"supp3":42856,"supp4":43864},{"level":"OR-4-4","supp1":41178,"supp2":42543,"supp3":43795,"supp4":44866},{"level":"OR-4-5","supp1":41725,"supp2":43110,"supp3":44694,"supp4":45915},{"level":"OR-4-6","supp1":42303,"supp2":43687,"supp3":45484,"supp4":46812}],"OR-5":[{"level":"OR-5-1","supp1":44423,"supp2":45876,"supp3":47763,"supp4":49251},{"level":"OR-5-2","supp1":44423,"supp2":45876,"supp3":47763,"supp4":49251},{"level":"OR-5-3","supp1":45450,"supp2":47015,"supp3":48911,"supp4":50641},{"level":"OR-5-4","supp1":46566,"supp2":48255,"supp3":50085,"supp4":51948},{"level":"OR-5-5","supp1":47698,"supp2":49617,"supp3":51308,"supp4":53270},{"level":"OR-5-6","supp1":48840,"supp2":50849,"supp3":52593,"supp4":54643}
1],"OR-6":[{"level":"OR-6-1","supp1":44423,"supp2":45876,"supp3":47763,"supp4":49251},{"level":"OR-6-2","supp1":44423,"supp2":45876,"supp3":47763,"supp4":49251},{"level":"OR-6-3","supp1":45450,"supp2":47015,"supp3":48911,"supp4":50641},{"level":"OR-6-4","supp1":46566,"supp2":48255,"supp3":50085,"supp4":51948},{"level":"OR-6-5","supp1":47698,"supp2":49617,"supp3":51308,"supp4":53270},{"level":"OR-6-6","supp1":48840,"supp2":50849,"supp3":52593,"supp4":54643}],"OR-7":[{"level":"OR-7-1","supp1":49821,"supp2":51871,"supp3":53697,"supp4":55820},{"level":"OR-7-2","supp1":49821,"supp2":51871,"supp3":53697,"supp4":55820},{"level":"OR-7-3","supp1":50576,"supp2":52742,"supp3":54638,"supp4":56710},{"level":"OR-7-4","supp1":51370,"supp2":53538,"supp3":55580,"supp4":57650},{"level":"OR-7-5","supp1":52137,"supp2":54305,"supp3":56548,"supp4":58618},{"level":"OR-7-6","supp1":52940,"supp2":55106,"supp3":57661,"supp4":59521},{"level":"OR-7-7","supp1":54077,"supp2":56532,"supp3":59260,"supp4":61156},{"level":"OR-7-8","supp1":54077,"supp2":56532,"supp3":59260,"supp4":61156},{"level":"OR-7-9","supp1":55211,"supp2":57666,"supp3":60091,"supp4":61792},{"level":"OR-7-10","supp1":56284,"supp2":58450,"supp3":60515,"supp4":62244},{"level":"OR-7-11","supp1":57220,"supp2":59229,"supp3":60894,"supp4":62625},{"level":"OR-7-12","supp1":58176,"supp2":59986,"supp3":61251,"supp4":62981}],"OR-8":[{"level":"OR-8-1","supp1":54077,"supp2":56532,"supp3":59260,"supp4":61156},{"level":"OR-8-2","supp1":54077,"supp2":56532,"supp3":59260,"supp4":61156},{"level":"OR-8-3","supp1":55211,"supp2":57666,"supp3":60091,"supp4":61792},{"level":"OR-8-4","supp1":56284,"supp2":58450,"supp3":60515,"supp4":62244},{"level":"OR-8-5","supp1":57220,"supp2":59229,"supp3":60894,"supp4":62625},{"level":"OR-8-6","supp1":58176,"supp2":59986,"supp3":61251,"supp4":62981}],"OR-9":[{"level":"OR-9-1","supp1":62456,"supp2":62456,"supp3":62482,"supp4":64247},{"level":"OR-9-2","supp1":62456,"supp2":62456,"supp3":62482,"supp4":64247},{"level":"OR-9-3","supp1":62810,"supp2":62810,"supp3":62810,"supp4":64775},{"level":"OR-9-4","supp1":63515,"supp2":63515,"supp3":63515,"supp4":65385},{"level":"OR-9-5","supp1":64220,"supp2":64220,"supp3":64220,"supp4":66003},{"level":"OR-9-6","supp1":64866,"supp2":64866,"supp3":64866,"supp4":66585}],"OF-1":[{"level":"OF-1-1","supp1":34676,"supp2":34676,"supp3":34676,"supp4":34676},{"level":"OF-1-2","supp1":41456,"supp2":41456,"supp3":41456,"supp4":41456},{"level":"OF-1-3","supp1":42872,"supp2":42872,"supp3":42872,"supp4":42872},{"level":"OF-1-4","supp1":44288,"supp2":44288,"supp3":44288,"supp4":44288},{"level":"OF-1-5","supp1":45705,"supp2":45705,"supp3":45705,"supp4":45705}],"OF-2":[{"level":"OF-2-1","supp1":52815,"supp2":52815,"supp3":52815,"supp4":52815},{"level":"OF-2-2","supp1":52815,"supp2":52815,"supp3":52815,"supp4":52815},{"level":"OF-2-3","supp1":54445,"supp2":54445,"supp3":54445,"supp4":54445},{"level":"OF-2-4","supp1":56076,"supp2":56076,"supp3":56076,"supp4":56076},{"level":"OF-2-5","supp1":57706,"supp2":57706,"supp3":57706,"supp4":57706},{"level":"OF-2-6","supp1":59337,"supp2":59337,"supp3":59337,"supp4":59337},{"level":"OF-2-7","supp1":60968,"supp2":60968,"supp3":60968,"supp4":60968},{"level":"OF-2-8","supp1":62598,"supp2":62598,"supp3":62598,"supp4":62598}],"OF-3":[{"level":"OF-3-1","supp1":66240,"supp2":66240,"supp3":66240,"supp4":66240},{"level":"OF-3-2","supp1":66240,"supp2":66240,"supp3":66240,"supp4":66240},{"level":"OF-3-3","supp1":68385,"supp2":68385,"supp3":68385,"supp4":68385},{"level":"OF-3-4","supp1":70531,"supp2":70531,"supp3":70531,"supp4":70531},{"level":"OF-3-5","supp1":72676,"supp2":72676,"supp3":72676,"supp4":72676},{"level":"OF-3-6","supp1":74821,"supp2":74821,"supp3":74821,"supp4":74821},{"level":"OF-3-7","supp1":76967,"supp2":76967,"supp3":76967,"supp4":76967},{"level":"OF-3-8","supp1":79112,"supp2":79112,"supp3":79112,"supp4":79112},{"level":"OF-3-9","supp1":80672,"supp2":80672,"supp3":80672,"supp4":80672},{"level":"OF-3-10","supp1":82263,"supp2":82263,"supp3":82263,"supp4":82263},{"level":"OF-3-11","supp1":83886,"supp2":83886,"supp3":83886,"supp4":83886},{"level":"OF-3-12","supp1":85542,"supp2":85542,"supp3":85542,"supp4":85542},{"level":"OF-3-13","supp1":87230,"supp2":87230,"supp3":87230,"supp4":87230}],"OF-4":[{"level":"OF-4-1","supp1":92520,"supp2":92520,"supp3":92520,"supp4":92520},{"level":"OF-4-2","supp1":92520,"supp2":92520,"supp3":92520,"supp4":92520},{"level":"OF-4-3","supp1":94933,"supp2":94933,"supp3":94933,"supp4":94933},{"level":"OF-4-4","supp1":97332,"supp2":97332,"supp3":97332,"supp4":97332},{"level":"OF-4-5","supp1":99738,"supp2":99738,"supp3":99738,"supp4":99738},{"level":"OF-4-6","supp1":102143,"supp2":102143,"supp3":102143,"supp4":102143},{"level":"OF-4-7","supp1":104550,"supp2":104550,"supp3":104550,"supp4":104550},{"level":"OF-4-8","supp1":106955,"supp2":106955,"supp3":106955,"supp4":106955}],"OF-5":[{"level":"OF-5-1","supp1":111854,"supp2":111854,"supp3":111854,"supp4":111854},{"level":"OF-5-2","supp1":111854,"supp2":111854,"supp3":111854,"supp4":111854},{"level":"OF-5-3","supp1":113687,"supp2":113687,"supp3":113687,"supp4":113687},{"level":"OF-5-4","supp1":115519,"supp2":115519,"supp3":115519,"supp4":115519},{"level":"OF-5-5","supp1":117352,"supp2":117352,"supp3":117352,"supp4":117352},{"level":"OF-5-6","supp1":119184,"supp2":119184,"supp3":119184,"supp4":119184},{"level":"OF-5-7","supp1":121017,"supp2":121017,"supp3":121017,"supp4":121017},{"level":"OF-5-8","supp1":122849,"supp2":122849,"supp3":122849,"supp4":122849}],"OF-6":[{"level":"OF-6-1","supp1":133083,"supp2":133083,"supp3":133083,"supp4":133083},{"level":"OF-6-2","supp1":133083,"supp2":133083,"supp3":133083,"supp4":133083},{"level":"OF-6-3","supp1":134418,"supp2":134418,"supp3":134418,"supp4":134418},{"level":"OF-6-4","supp1":135753,"supp2":135753,"supp3":135753,"supp4":135753},{"level":"OF-6-5","supp1":137088,"supp2":137088,"supp3":137088,"supp4":137088},{"level":"OF-6-6","supp1":138423,"supp2":138423,"supp3":138423,"supp4":138423}
1],"OF-7":[{"level":"OF-7-1","supp1":138423,"supp2":138423,"supp3":138423,"supp4":138423},{"level":"OF-7-2","supp1":152551,"supp2":152551,"supp3":152551,"supp4":152551},{"level":"OF-7-3","supp1":166680,"supp2":166680,"supp3":166680,"supp4":166680}],"OF-8":[{"level":"OF-8-1","supp1":166680,"supp2":166680,"supp3":166680,"supp4":166680},{"level":"OF-8-2","supp1":181773,"supp2":181773,"supp3":181773,"supp4":181773},{"level":"OF-8-3","supp1":196867,"supp2":196867,"supp3":196867,"supp4":196867}],"OF-9":[{"level":"OF-9-1","supp1":196867,"supp2":196867,"supp3":196867,"supp4":196867},{"level":"OF-9-2","supp1":214616,"supp2":214616,"supp3":214616,"supp4":214616},{"level":"OF-9-3","supp1":232366,"supp2":232366,"supp3":232366,"supp4":232366}],"OF-10":[{"level":"OF-10-1","supp1":232366,"supp2":232366,"supp3":232366,"supp4":232366},{"level":"OF-10-2","supp1":253246,"supp2":253246,"supp3":253246,"supp4":253246},{"level":"OF-10-3","supp1":274127,"supp2":274127,"supp3":274127,"supp4":274127}]},"rankMap":{"British Army":{"Private":"OR-1","Lance Corporal":"OR-2","Corporal":"OR-4","Sergeant":"OR-6","Staff Sergeant":"OR-7","Warrant Officer Class 2":"OR-8","Warrant Officer Class 1":"OR-9","Second Lieutenant":"OF-1","Lieutenant":"OF-1","Captain":"OF-2","Major":"OF-3","Lieutenant Colonel":"OF-4","Colonel":"OF-5","Brigadier":"OF-6","Major General":"OF-7","Lieutenant General":"OF-8","General":"OF-9"},"Royal Navy":{"Able Rate":"OR-1","Leading Rate":"OR-2","Petty Officer":"OR-4","Chief Petty Officer":"OR-6","Warrant Officer 1":"OR-8","Fleet Chief Petty Officer":"OR-9","Warrant Officer":"OR-9","Midshipman":"OF-1","Sub-Lieutenant":"OF-1","Lieutenant":"OF-2","Lieutenant Commander":"OF-3","Commander":"OF-4","Captain":"OF-5","Commodore":"OF-6","Rear Admiral":"OF-7","Vice Admiral":"OF-8","Admiral":"OF-9"},"Royal Air Force":{"Aircraftman":"OR-1","Leading Aircraftman":"OR-2","Senior Aircraftman":"OR-3","Corporal":"OR-4","Sergeant":"OR-6","Flight Sergeant":"OR-7","Warrant Officer":"OR-9","Pilot Officer":"OF-1","Flying Officer":"OF-1","Flight Lieutenant":"OF-2","Squadron Leader":"OF-3","Wing Commander":"OF-4","Group Captain":"OF-5","Air Commodore":"OF-6","Air Vice Marshal":"OF-7","Air Marshal":"OF-8","Air Chief Marshal":"OF-9"}}}')},33115,(e,t,a)=>{t.exports=JSON.parse('{"dataYear":"2026","effectiveDate":"2026-01-01","source":"US DoD Defense Travel Management Office â BAH-ASCII-2026 (bahw26.dat / bahwo26.dat)","note":"Monthly BAH in USD, keyed by DTMO Military Housing Area (MHA) code. \'w\' = with dependents, \'wo\' = without. Each array is indexed by `grades`. Only the MHAs referenced by usDutyStations.ts are included. `nationalMedian` is the median across every MHA in the release, used only for stations that draw OHA rather than BAH. GENERATED by scripts/build-us-station-data.mjs â do not hand-edit.","grades":["E-1","E-2","E-3","E-4","E-5","E-6","E-7","E-8","E-9","W-1","W-2","W-3","W-4","W-5","O-1","O-2","O-3","O-4","O-5","O-6","O-7","O-8","O-9","O-10"],"nationalMedian":{"w":[1920,1920,1920,1920,2061,2375,2439,2487,2604,2394,2453,2543,2637,2784,2103,2372,2540,2831,3017,3041,3060,3060,3060,3060],"wo":[1520,1520,1520,1520,1670,1809,1938,2135,2210,1889,2132,2225,2385,2438,1752,2022,2253,2424,2453,2517,2549,2549,2549,2549]},"mhaNames":{"AK404":"ANCHORAGE, AK","AK405":"FAIRBANKS, AK","AL001":"ANNISTON/FORT MCCLELLAN, AL","AL002":"FORT RUCKER, AL","AL003":"HUNTSVILLE, AL","AL005":"MONTGOMERY, AL","AR010":"LITTLE ROCK, AR","AZ013":"PHOENIX, AZ","AZ014":"FORT HUACHUCA, AZ","AZ015":"DAVIS-MONTHAN AFB, AZ","AZ016":"YUMA, AZ","CA018":"OAKLAND, CA","CA021":"CHINA LAKE, CA","CA023":"LEMOORE NAS, CA","CA024":"CAMP PENDLETON, CA","CA025":"VENTURA, CA","CA026":"VANDENBERG SFB, CA","CA028":"BARSTOW/FORT IRWIN, CA","CA032":"TWENTY NINE PALMS MCB, CA","CA033":"BEALE AFB, CA","CA036":"VALLEJO/TRAVIS AFB, CA","CA037":"LOS ANGELES, CA","CA038":"SAN DIEGO, CA","CA039":"MONTEREY, CA","CA041":"RIVERSIDE, CA","CA392":"SAN LUIS OBISPO, CA","CA420":"EL CENTRO, CA","CA457":"EDWARDS AFB/PALMDALE, CA","CO045":"DENVER, CO","CO046":"COLORADO SPRINGS, CO","CT049":"NEW LONDON, CT","DC053":"WASHINGTON, DC METRO AREA","DE054":"DOVER AFB/REHOBOTH, DE","FL056":"EGLIN AFB, FL","FL058":"JACKSONVILLE, FL","FL059":"PATRICK SFB, FL","FL061":"MIAMI/FORT LAUDERDALE, FL","FL062":"ORLANDO, FL","FL063":"PANAMA CITY, FL","FL064":"PENSACOLA, FL","FL066":"TAMPA, FL","FL069":"FLORIDA KEYS, FL","GA072":"ALBANY, GA","GA073":"FORT GORDON, AL","GA074":"KINGS BAY/BRUNSWICK, GA","GA075":"FORT BENNING, GA","GA076":"ROBINS AFB, GA","GA077":"SAVANNAH, GA","GA080":"FORT STEWART, GA","GA081":"MOODY AFB, GA","HI408":"HONOLULU COUNTY, HI","ID086":"MOUNTAIN HOME AFB, ID","IL089":"ROCK ISLAND, IL","IL092":"GREAT LAKES NAVTRACEN, IL","IL093":"SCOTT AFB, IL","IN399":"BLOOMINGTON, IN","KS100":"FORT RILEY, KS","KS101":"WICHITA/MCCONNELL AFB, KS","KS102":"FORT LEAVENWORTH, KS","KY106":"FORT CAMPBELL, KY","KY110":"FORT KNOX, KY","LA115":"FORT POLK, LA","LA116":"NEW ORLEANS, LA","LA117":"SHREVEPORT/BARKSDALE AFB, LA","MA120":"BOSTON, MA","MA126":"HAMPDEN COUNTY, MA","MA377":"HANSCOM AFB, MA","MD127":"ABERDEEN PROVING GROUNDS, MD","MD128":"ANNAPOLIS, MD","MD130":"FORT DETRICK, MD","MD133":"FORT G. G. MEADE, MD","MD134":"INDIAN HEAD NAVORDSTA, MD","MD135":"PATUXENT RIVER, MD","MI142":"DETROIT, MI","MO162":"WHITEMAN AFB, MO","MO163":"FORT LEONARD WOOD, MO","MS168"
1:"GULFPORT, MS","MS169":"COLUMBUS AFB, MS","MS171":"MERIDIAN, MS","MT175":"MALMSTROM SFB/GREAT FALLS, MT","NC177":"MOREHEAD/CHERRY PT MCAS, NC","NC178":"CAMP LEJEUNE, NC","NC182":"FORT BRAGG/POPE, NC","NC183":"SEYMOUR JOHNSON AFB, NC","ND190":"GRAND FORKS, ND","ND191":"MINOT AFB, ND","NE192":"OMAHA/OFFUTT AFB, NE","NH194":"PORTSMOUTH, NH/KITTERY, ME","NJ200":"FORT MONMOUTH/EARLE NWS, NJ","NJ202":"NORTHERN NEW JERSEY, NJ","NJ204":"JB MCGUIRE-DIX-LAKEHURST, NJ","NM205":"HOLLOMAN AFB/ALAMOGORDO, NM","NM206":"ALBUQUERQUE/KIRTLAND AFB, NM","NM207":"CANNON AFB/CLOVIS, NM","NM209":"WHITE SANDS MR/LAS CRUCES, NM","NV211":"FALLON NAS, NV","NV212":"NELLIS AFB/LAS VEGAS, NV","NY217":"WEST POINT, NY","NY219":"NEW YORK CITY, NY","NY225":"FORT DRUM/WATERTOWN, NY","OH231":"WRIGHT-PATTERSON AFB, OH","OK235":"ALTUS AFB, OK","OK236":"VANCE AFB/ENID, OK","OK237":"FORT SILL/LAWTON, OK","OK239":"OKLAHOMA CITY, OK","PA247":"CARLISLE BARRACKS, PA","PA248":"PHILADELPHIA, PA/CAMDEN, NJ","PA254":"WILKES-BARRE/SCRANTON, PA","RI256":"NEWPORT, RI","SC258":"BEAUFORT/PARRIS ISLAND, SC","SC259":"CHARLESTON, SC","SC260":"COLUMBIA/FORT JACKSON, SC","SC263":"SUMTER/SHAW AFB, SC","SD264":"RAPID CITY/ELLSWORTH AFB, SD","TN268":"MEMPHIS, TN","TX270":"ABILENE/DYESS AFB, TX","TX275":"CORPUS CHRISTI, TX","TX278":"LAUGHLIN AFB/DEL RIO, TX","TX279":"EL PASO, TX","TX284":"GOODFELLOW AFB, TX","TX285":"SAN ANTONIO, TX","TX286":"FORT HOOD, TX","TX288":"WICHITA FLS/SHEPPARD AFB, TX","TX356":"FORT WORTH, TX","UT291":"OGDEN/HILL AFB, UT","VA296":"QUANTICO/WOODBRIDGE, VA","VA297":"HAMPTON/NEWPORT NEWS, VA","VA298":"NORFOLK/PORTSMOUTH, VA","VA301":"RICHMOND/FORT LEE, VA","VA368":"DAHLGREN/FORT A.P. HILL","WA306":"BREMERTON, WA","WA307":"EVERETT, WA","WA310":"SPOKANE, WA","WA311":"TACOMA, WA","WA312":"WHIDBEY ISLAND, WA","WI318":"SPARTA/FORT MCCOY, WI","WY324":"CHEYENNE, WY","ZZ560":"COUNTY COST GROUP 560","ZZ630":"COUNTY COST GROUP 630","ZZ740":"COUNTY COST GROUP 740","ZZ790":"COUNTY COST GROUP 790"},"rates":{"AK404":{"w":[2277,2277,2277,2277,2874,2892,3045,3240,3486,2895,3123,3369,3528,3723,2886,2889,3360,3789,4095,4131,4161,4161,4161,4161],"wo":[1707,1707,1707,1707,2157,2169,2283,2430,2616,2172,2385,2619,2901,3087,2166,2286,2643,3051,3162,3348,3405,3405,3405,3405]},"AK405":{"w":[2106,2106,2106,2106,2436,2454,2610,2814,3018,2457,2694,2943,3045,3171,2448,2451,2937,3210,3405,3432,3456,3456,3456,3456],"wo":[1581,1581,1581,1581,1827,1887,1989,2166,2265,1965,2163,2271,2463,2655,1881,2064,2301,2619,2733,2922,2973,2973,2973,2973]},"AL001":{"w":[1176,1176,1176,1176,1185,1491,1560,1638,1755,1509,1590,1689,1782,1899,1230,1488,1686,1935,2115,2130,2142,2142,2142,2142],"wo":[1065,1065,1065,1065,1119,1164,1191,1251,1335,1188,1248,1347,1500,1575,1161,1194,1377,1557,1596,1665,1692,1692,1692,1692]},"AL002":{"w":[1440,1440,1440,1440,1572,1743,1929,2136,2346,1761,2013,2268,2373,2502,1602,1740,2262,2541,2742,2760,2778,2778,2778,2778],"wo":[1167,1167,1167,1167,1251,1317,1446,1611,1761,1407,1608,1764,1800,1977,1305,1533,1767,1941,2058,2247,2283,2283,2283,2283]},"AL003":{"w":[1668,1668,1668,1668,1797,2079,2133,2187,2286,2097,2154,2229,2307,2415,1839,2076,2226,2445,2607,2625,2640,2640,2640,2640],"wo":[1284,1284,1284,1284,1443,1557,1671,1860,1935,1635,1857,1947,2085,2142,1536,1758,1974,2127,2154,2205,2241,2241,2241,2241]},"AL005":{"w":[1605,1605,1605,1605,1683,1758,1818,1887,2034,1773,1845,1935,2073,2244,1701,1755,1932,2298,2565,2583,2598,2598,2598,2598],"wo":[1269,1269,1269,1269,1431,1527,1605,1704,1713,1590,1701,1719,1764,1833,1524,1662,1725,1815,1923,1938,1950,1950,1950,1950]},"AR010":{"w":[1758,1758,1758,1758,1848,1941,1959,1968,2061,1956,1965,1977,2100,2274,1869,1938,1974,2328,2598,2619,2634,2634,2634,2634],"wo":[1341,1341,1341,1341,1548,1671,1758,1875,1887,1740,1872,1893,1932,1947,1665,1824,1902,1935,1950,1965,1977,1977,1977,1977]},"AZ013":{"w":[2061,2061,2061,2061,2289,2457,2475,2484,2517,2472,2481,2493,2535,2622,2319,2454,2490,2646,2775,2796,2814,2814,2814,2814],"wo":[1587,1587,1587,1587,1740,1857,2070,2331,2367,1992,2328,2376,2448,2460,1830,2217,2391,2451,2463,2466,2487,2487,2487,2487]},"AZ014":{"w":[1569,1569,1569,1569,1719,2193,2217,2226,2250,2214,2223,2235,2265,2343,1782,2190,2232,2364,2481,2499,2511,2511,2511,2511],"wo":[1245,1245,1245,1245,1347,1644,1665,1818,1956,1662,1815,1974,2190,2199,1413,1674,2019,2193,2202,2205,2220,2220,2220,2220]},"AZ015":{"w":[1695,1695,1695,1695,1905,2121,2145,2178,2253,2136,2157,2202,2274,2373,1938,2118,2199,2400,2550,2568,2583,2583,2583,2583],"wo":[1272,1272,1272,1272,1428,1587,1701,1953,2007,1632,1950,2019,2118,2151,1482,1839,2037,2139,2154,2175,2211,2211,2211,2211]},"AZ016":{"w":[1551,1551,1551,1551,1695,1845,1917,1998,2115,1860,1950,2052,2139,2253,1722,1842,2049,2283,2454,2472,2487,2487,2487,2487],"wo":[1239,1239,1239,1239,1338,1413,1554,1731,1764,1512,1728,1773,1854,1935,1401,1650,1785,1914,1956,2031,2061,2061,2061,2061]},"CA018":{"w":[3471,3471,3471,3471,3759,4113,4203,4299,4488,4134,4242,4365,4533,4740,3807,4110,4362,4809,5133,5178,5220,5220,5220,5220],"wo":[2667,2667,2667,2667,3000,3213,3483,3834,3933,3378,3831,3948,4131,4224,3180,3666,3981,4203,4254,4341,4419,4419,4419,4419]},"CA021":{"w":[1524,1524,1524,1524,1563,1767,1905,2058,2238,1785,1968,2157,2268,2403,1596,1764,2154,2445,2658,2676,2694,2694,2694,2694],"wo":[1344,1344,1344,1344,1428,1485,1530,1611,1680,1527,1608,1683,1794,1941,1482,1554,1689,1911,1995,2136,2172,2172,2172,2172]},"CA023":{"w":[1944,1944,1944,1944,2139,2277,2337,2406,2514,2292,2364,2454,2535,2643,2166,2274,2451,2673,2835,2856,2874,2874,2874,2874],"wo":[1581,1581,1581,1581,1680,1764,1950,2175,2202,1884,2172,2211,2283,2352,1743,2079,2220,2334,2367,2430,2469,2469,2469,2469]}
1,"CA024":{"w":[3627,3627,3627,3627,3963,4398,4494,4596,4779,4419,4536,4662,4824,5019,4023,4395,4659,5085,5391,5439,5484,5484,5484,5484],"wo":[2739,2739,2739,2739,3093,3324,3642,4056,4182,3513,4053,4197,4416,4518,3285,3855,4239,4494,4548,4641,4725,4725,4725,4725]},"CA025":{"w":[3378,3378,3378,3378,3537,4008,4083,4161,4305,4029,4116,4215,4341,4497,3600,4002,4212,4545,4788,4830,4866,4866,4866,4866],"wo":[2652,2652,2652,2652,3018,3228,3381,3636,3771,3333,3633,3789,4020,4101,3213,3486,3834,4080,4122,4194,4269,4269,4269,4269]},"CA026":{"w":[3156,3156,3156,3156,3333,3642,3693,3747,3873,3660,3714,3783,3906,4065,3378,3639,3780,4113,4356,4392,4425,4425,4425,4425],"wo":[2397,2397,2397,2397,2778,2994,3162,3399,3486,3105,3396,3498,3648,3702,2979,3276,3528,3687,3711,3759,3828,3828,3828,3828]},"CA028":{"w":[1890,1890,1890,1890,2001,2430,2547,2673,2814,2451,2598,2751,2838,2946,2058,2427,2748,2976,3144,3168,3189,3189,3189,3189],"wo":[1557,1557,1557,1557,1695,1824,1911,2091,2214,1866,2088,2232,2454,2574,1776,1968,2274,2550,2616,2730,2778,2778,2778,2778]},"CA032":{"w":[1896,1896,1896,1896,1980,2550,2649,2751,2892,2571,2688,2817,2919,3051,2052,2544,2814,3090,3291,3318,3342,3342,3342,3342],"wo":[1755,1755,1755,1755,1782,1914,1986,2097,2265,1929,2094,2286,2571,2670,1809,1989,2343,2646,2703,2796,2841,2841,2841,2841]},"CA033":{"w":[2733,2733,2733,2733,2967,3132,3150,3159,3195,3147,3156,3168,3216,3315,2994,3129,3165,3342,3492,3522,3546,3546,3546,3546],"wo":[2133,2133,2133,2133,2367,2523,2742,3006,3042,2661,3003,3051,3123,3132,2496,2892,3066,3126,3135,3138,3171,3171,3171,3171]},"CA036":{"w":[3090,3090,3090,3090,3369,3498,3516,3525,3597,3513,3522,3540,3621,3729,3393,3495,3537,3762,3927,3960,3987,3987,3987,3987],"wo":[2412,2412,2412,2412,2664,2838,3099,3402,3426,2997,3399,3435,3489,3510,2805,3279,3444,3498,3513,3516,3576,3576,3576,3576]},"CA037":{"w":[3570,3570,3570,3570,3882,4188,4311,4443,4674,4209,4365,4530,4728,4971,3927,4185,4524,5052,5436,5481,5526,5526,5526,5526],"wo":[2679,2679,2679,2679,3048,3291,3582,3948,4032,3468,3945,4044,4212,4341,3255,3780,4074,4314,4386,4509,4590,4590,4590,4590]},"CA038":{"w":[3666,3666,3666,3666,3975,4404,4446,4488,4671,4425,4464,4521,4731,4992,4032,4401,4518,5082,5493,5541,5586,5586,5586,5586],"wo":[2763,2763,2763,2763,3147,3387,3678,4065,4188,3564,4062,4206,4410,4455,3351,3873,4248,4440,4458,4494,4575,4575,4575,4575]},"CA039":{"w":[3249,3249,3249,3249,3465,3867,4218,4599,4956,3894,4374,4842,5001,5196,3519,3864,4824,5259,5565,5613,5658,5658,5658,5658],"wo":[2493,2493,2493,2493,2844,3054,3258,3549,3717,3183,3546,3720,3951,4305,3030,3396,3723,4245,4464,4821,4908,4908,4908,4908]},"CA041":{"w":[3096,3096,3096,3096,3351,3549,3603,3663,3753,3564,3627,3708,3768,3855,3384,3546,3705,3876,4002,4035,4065,4065,4065,4065],"wo":[2364,2364,2364,2364,2670,2865,3105,3396,3444,3015,3393,3453,3552,3615,2835,3270,3471,3597,3627,3684,3747,3747,3747,3747]},"CA392":{"w":[3027,3027,3027,3027,3198,3948,4047,4152,4413,3969,4089,4218,4485,4806,3291,3939,4215,4920,5430,5475,5520,5520,5520,5520],"wo":[2358,2358,2358,2358,2679,2961,3036,3348,3576,2976,3345,3600,3966,4068,2853,3144,3675,4047,4101,4197,4272,4272,4272,4272]},"CA420":{"w":[1905,1905,1905,1905,1986,2151,2334,2541,2721,2166,2418,2673,2739,2823,2013,2148,2664,2847,2976,2997,3018,3018,3018,3018],"wo":[1500,1500,1500,1500,1704,1824,1905,2025,2061,1890,2022,2070,2187,2382,1818,1962,2085,2346,2460,2652,2697,2697,2697,2697]},"CA457":{"w":[2475,2475,2475,2475,2658,3156,3195,3237,3354,3177,3213,3267,3390,3546,2724,3153,3264,3597,3840,3870,3900,3900,3900,3900],"wo":[1887,1887,1887,1887,2148,2367,2481,2763,2910,2424,2760,2928,3162,3204,2289,2601,2976,3189,3207,3240,3297,3297,3297,3297]},"CO045":{"w":[2556,2556,2556,2556,2841,3063,3114,3168,3267,3081,3135,3210,3288,3396,2874,3060,3207,3426,3588,3615,3642,3642,3642,3642],"wo":[1938,1938,1938,1938,2148,2301,2568,2889,2946,2463,2886,2958,3066,3126,2268,2748,2979,3108,3135,3186,3240,3240,3240,3240]},"CO046":{"w":[2160,2160,2160,2160,2358,2433,2487,2553,2646,2448,2514,2598,2664,2754,2376,2430,2595,2778,2913,2934,2955,2955,2955,2955],"wo":[1689,1689,1689,1689,1860,1980,2166,2379,2388,2103,2376,2394,2436,2502,1959,2295,2397,2484,2517,2574,2616,2616,2616,2616]},"CT049":{"w":[2412,2412,2412,2412,2580,3072,3159,3249,3405,3093,3195,3309,3441,3603,2646,3069,3306,3654,3906,3939,3966,3966,3966,3966],"wo":[1989,1989,1989,1989,2148,2304,2418,2682,2826,2367,2679,2844,3087,3177,2241,2529,2892,3156,3204,3288,3345,3345,3345,3345]},"DC053":{"w":[3096,3096,3096,3096,3132,3759,3855,3957,4128,3780,3894,4023,4167,4350,3213,3753,4020,4410,4692,4731,4770,4770,4770,4770],"wo":[2409,2409,2409,2409,2832,3057,3099,3261,3447,3096,3258,3471,3777,3876,3054,3126,3531,3855,3909,3999,4071,4071,4071,4071]},"DE054":{"w":[2160,2160,2160,2160,2277,2493,2694,2916,3063,2511,2787,3060,3066,3075,2310,2490,3051,3078,3081,3105,3123,3123,3123,3123],"wo":[1782,1782,1782,1782,1947,2052,2163,2325,2379,2133,2322,2391,2535,2745,2043,2241,2409,2706,2832,3039,3090,3090,3090,3090]},"FL056":{"w":[2340,2340,2340,2340,2433,2526,2841,3189,3447,2544,2985,3414,3456,3516,2451,2523,3399,3528,3612,3642,3669,3669,3669,3669],"wo":[2007,2007,2007,2007,2157,2250,2340,2457,2586,2322,2454,2589,2604,2922,2244,2406,2592,2865,3066,3393,3453,3453,3453,3453]},"FL058":{"w":[2046,2046,2046,2046,2181,2241,2283,2331,2424,2256,2301,2367,2445,2550,2196,2238,2364,2580,2736,2757,2775,2775,2775,2775],"wo":[1623,1623,1623,1623,1803,1920,2049,2199,2205,2010,2196,2208,2241,2292,1908,2139,2211,2277,2301,2343,2382,2382,2382,2382]},"FL059":{"w":[2325,2325,2325,2325,2502,2883,2907,2916,2955,2904,2913,2925,2976,3081,2553,2880,2922,3108,3267,3294,3315,3315,3315,3315],"wo":[1845,1845,1845,1845,2037,2163,2331,2583,2691,2274,2580,2706,2880,2889,2148,2445,2742,2883,2892,2895,2922,2922,2922,2922]},"FL061":{"w":[3459,3459,3459,3459,3660,3792,4026,4281,4656,3813,4131,4446,4737,5085,3687,3789,4437,5208,5763,5814,5862,5862,5862,5862],"wo":[2661,2661,2661,2661,3048,3273,3465,3693,3720,3399,3690,3729,3840,4083,3252,3597,3738,4041,4323,4425,4506,4506,4506,4506]},"FL062":{"w":[2454,2454,2454,2454,2658,2961,2982,2991,3018,2979,2988,3000,3033,3114,2700,2958,2997,3135,3255,3282,3303,3303,3303,3303],"wo":[1842,1842,1842,1842,2103,2268,2460,2724,2808,2394,2721,2820,2955,2967,2247,2592,2847,2958,2970,2973,3000,3000,3000,3000]},"FL063":{"w":[2058,2058,2058,2058,2163,2442,2538,2643,2766,2460,2580,2712,2787,2886,2202,2439,2709,2913,3060,3084,3105,3105,3105,3105],"wo":[1713,1713,1713,1713,1863,1959,2058,2223,2298,2037,2220,2310,2460,2562,1953,2133,2337,2538,2595,2691,2736,2736,2736,2736]},"FL064":{"w":[1794,1794,1794,1794,1863,2235,2256,2265,2304,2253,2262,2274,2325,2427,1914,2232,2271,2457,2610,2631,2646,2646,2646,2646],"wo":[1521,1521,1521,1521,1644,1722,1791,1941,2046,1782,1938,2061,2229,2241,1719,1842,2097,2232,2244,2247,2259,2259,2259,2259]},"FL066":{"w":[2520,2520,2520,2520,2709,3042,3066,3075,3123,3063,3072,3084,3141,3231,2757,3039,3081,3255,3390,3417,3441,3441,3441,3441],"wo":[1932,1932,1932,1932,2187,2346,2526,2781,2874,2463,2778,2886,3039,3054,2328,2649,2919,3042,3057,3060,3102,3102,3102,3102]},"FL069":{"w":[3813,3813,3813,3813,3969,4056,4350,4677,5097,4074,4485,4884,5178,5529,3987,4053,4872,5655,6213,6267,6321,6321,6321,6321],"wo":[3084,3084,3084,3084,3459,3672,3819,3993,4005,3771,3990,4011,4119,4425,3657,3921,4017,4374,4659,4863,4953,4953,4953,4953]},"GA072":{"w":[1326,1326,1326,1326,1371,1539,1671,1815,2010,1557,1731,1911,2046,2217,1401,1536,1905,2271,2532,2550,2568,2568,2568,2568],"wo":[1197,1197,1197,1197,1242,1284,1329,1410,1509,1326,1407,1512,1563,1707,1281,1362,1515,1704,1899,1914,1926,1926,1926,1926]},"GA073":{"w":[1809,1809,1809,1809,1890,2157,2190,2226,2334,2175,2205,2253,2367,2514,1929,2154,2250,2559,2787,2808,2826,2826,2826,2826],"wo":[1506,1506,1506,1506,1644,1731,1809,1947,2019,1797,1944,2031,2157,2196,1728,1866,2058,2181,2199,2226,2262,2262,2262,2262]},"GA074":{"w":[2016,2016,2016,2016,2133,2157,2250,2352,2499,2172,2292,2421,2529,2664,2145,2154,2418,2706,2916,2937,2955,2955,2955,2955],"wo":[1656,1656,1656,1656,1806,1905,2019,2145,2151,1989,2142,2154,2169,2271,1896,2097,2157,2247,2304,2400,2439,2439,2439,2439]}
1,"GA075":{"w":[1635,1635,1635,1635,1716,1977,2004,2037,2121,1995,2016,2061,2148,2262,1755,1974,2058,2295,2469,2487,2502,2502,2502,2502],"wo":[1362,1362,1362,1362,1482,1557,1635,1773,1842,1623,1770,1854,1977,2010,1554,1692,1878,1998,2013,2034,2067,2067,2067,2067]},"GA076":{"w":[1692,1692,1692,1692,1800,1878,1992,2118,2283,1893,2043,2202,2313,2451,1818,1875,2199,2496,2709,2730,2745,2745,2745,2745],"wo":[1341,1341,1341,1341,1491,1590,1695,1824,1833,1668,1821,1839,1896,2019,1581,1770,1842,1992,2064,2181,2217,2217,2217,2217]},"GA077":{"w":[2235,2235,2235,2235,2415,2652,2685,2718,2823,2670,2697,2748,2853,2991,2451,2649,2745,3036,3249,3273,3297,3297,3297,3297],"wo":[1821,1821,1821,1821,1968,2073,2241,2466,2529,2184,2463,2538,2652,2691,2055,2358,2562,2676,2694,2721,2769,2769,2769,2769]},"GA080":{"w":[2175,2175,2175,2175,2310,2439,2493,2556,2682,2454,2520,2601,2715,2859,2334,2436,2598,2904,3129,3153,3174,3174,3174,3174],"wo":[1791,1791,1791,1791,1947,2049,2178,2340,2367,2142,2337,2376,2442,2508,2037,2268,2385,2490,2520,2577,2619,2619,2619,2619]},"GA081":{"w":[1503,1503,1503,1503,1524,1917,1950,1980,2097,1938,1962,2007,2130,2289,1578,1914,2004,2340,2589,2607,2622,2622,2622,2622],"wo":[1320,1320,1320,1320,1416,1479,1512,1608,1722,1509,1605,1737,1920,1956,1476,1521,1773,1941,1959,1980,2013,2013,2013,2013]},"HI408":{"w":[3333,3333,3333,3333,3663,3912,4098,4302,4518,3930,4182,4434,4551,4692,3702,3909,4428,4737,4959,5001,5040,5040,5040,5040],"wo":[2598,2598,2598,2598,2856,3036,3348,3720,3783,3222,3717,3795,3951,4146,2997,3555,3819,4110,4224,4413,4494,4494,4494,4494]},"ID086":{"w":[1563,1563,1563,1563,1605,2187,2238,2292,2418,2208,2259,2328,2451,2610,1680,2181,2325,2658,2901,2925,2943,2943,2943,2943],"wo":[1521,1521,1521,1521,1524,1641,1680,1725,1899,1656,1722,1920,2196,2250,1527,1683,1977,2232,2259,2304,2343,2343,2343,2343]},"IL089":{"w":[1722,1722,1722,1722,1908,2238,2262,2283,2388,2259,2268,2301,2421,2577,1956,2235,2298,2628,2868,2892,2910,2910,2910,2910],"wo":[1389,1389,1389,1389,1476,1680,1728,1980,2073,1695,1977,2085,2238,2262,1533,1851,2118,2250,2265,2277,2313,2313,2313,2313]},"IL092":{"w":[2202,2202,2202,2202,2427,2760,2853,2955,3120,2778,2895,3021,3156,3327,2475,2757,3018,3381,3645,3675,3702,3702,3702,3702],"wo":[1653,1653,1653,1653,1854,2067,2211,2499,2592,2133,2496,2604,2778,2874,1977,2355,2637,2853,2907,3000,3051,3051,3051,3051]},"IL093":{"w":[1536,1536,1536,1536,1542,1998,2076,2157,2325,2019,2109,2211,2367,2562,1602,1995,2208,2625,2928,2952,2970,2970,2970,2970],"wo":[1233,1233,1233,1233,1422,1530,1557,1638,1770,1551,1635,
11788,2013,2094,1527,1560,1830,2073,2196,2214,2229,2229,2229,2229]},"IN399":{"w":[1755,1755,1755,1755,1905,1956,2139,2343,2595,1971,2223,2475,2640,2841,1920,1953,2469,2910,3225,3249,3273,3273,3273,3273],"wo":[1317,1317,1317,1317,1482,1617,1761,1923,1947,1716,1920,1950,2007,2187,1602,1860,1953,2184,2418,2454,2496,2496,2496,2496]},"KS100":{"w":[1272,1272,1272,1272,1314,1782,1845,1911,2013,1803,1872,1956,2037,2139,1377,1779,1953,2169,2325,2340,2352,2352,2352,2352],"wo":[1050,1050,1050,1050,1158,1338,1383,1434,1548,1353,1410,1566,1794,1860,1227,1386,1611,1842,1875,1935,1965,1965,1965,1965]},"KS101":{"w":[1320,1320,1320,1320,1377,1689,1779,1878,2022,1710,1821,1941,2052,2190,1422,1686,1938,2232,2445,2463,2478,2478,2478,2478],"wo":[1137,1137,1137,1137,1212,1266,1335,1443,1530,1317,1440,1545,1707,1800,1263,1362,1572,1779,1833,1920,1950,1950,1950,1950]},"KS102":{"w":[1740,1740,1740,1740,1815,2133,2229,2331,2427,2151,2268,2397,2439,2496,1860,2130,2394,2508,2589,2610,2625,2625,2625,2625],"wo":[1410,1410,1410,1410,1569,1662,1737,1884,1971,1725,1881,1983,2151,2250,1659,1794,2013,2226,2283,2376,2415,2415,2415,2415]},"KY106":{"w":[1743,1743,1743,1743,1815,2100,2244,2400,2580,2121,2307,2499,2610,2751,1857,2097,2496,2793,3006,3030,3048,3048,3048,3048],"wo":[1470,1470,1470,1470,1593,1671,1743,1878,1956,1731,1875,1968,2130,2277,1668,1794,1995,2250,2334,2478,2520,2520,2520,2520]},"KY110":{"w":[1575,1575,1575,1575,1647,2136,2241,2352,2505,2157,2286,2424,2538,2679,1710,2133,2421,2724,2943,2964,2985,2985,2985,2985],"wo":[1350,1350,1350,1350,1443,1602,1680,1764,1893,1617,1746,1911,2157,2265,1503,1683,1956,2241,2301,2403,2442,2442,2442,2442]},"LA115":{"w":[1206,1206,1206,1206,1218,1833,1872,1911,1989,1854,1887,1941,2010,2100,1296,1827,1938,2124,2262,2277,2289,2289,2289,2289],"wo":[1026,1026,1026,1026,1128,1374,1404,1434,1527,1392,1416,1551,1839,1881,1191,1407,1611,1866,1884,1917,1947,1947,1947,1947]},"LA116":{"w":[1779,1779,1779,1779,1905,2373,2439,2508,2634,2394,2466,2556,2664,2805,1968,2370,2553,2847,3060,3084,3105,3105,3105,3105],"wo":[1473,1473,1473,1473,1581,1779,1830,2004,2139,1797,2001,2157,2385,2454,1650,1866,2202,2436,2472,2532,2574,2574,2574,2574]},"LA117":{"w":[1701,1701,1701,1701,1845,2028,2112,2208,2352,2043,2151,2271,2382,2520,1875,2025,2268,2562,2778,2799,2817,2817,2817,2817],"wo":[1281,1281,1281,1281,1452,1566,1704,1887,1932,1662,1884,1941,2040,2133,1551,1800,1956,2112,2163,2247,2283,2283,2283,2283]},"MA120":{"w":[4344,4344,4344,4344,4791,4812,4938,5079,5379,4827,4995,5169,5457,5805,4803,4809,5163,5928,6483,6540,6594,6594,6594,6594],"wo":[3258,3258,3258,3258,3615,3948,4365,4803,4809,4191,4800,4812,4833,4968,3894,4644,4815,4941,5019,5148,5241,5241,5241,5241]},"MA126":{"w":[2268,2268,2268,2268,2388,2850,3063,3288,3522,2874,3153,3435,3555,3702,2451,2847,3426,3747,3978,4011,4038,4038,4038,4038],"wo":[1752,1752,1752,1752,2007,2154,2298,2484,2643,2241,2481,2646,2898,3114,2145,2352,2682,3075,3201,3414,3474,3474,3474,3474]},"MA377":{"w":[3984,3984,3984,3984,4188,4479,4584,4698,4983,4497,4632,4773,5061,5409,4230,4476,4770,5535,6087,6141,6192,6192,6192,6192],"wo":[3012,3012,3012,3012,3516,3801,3993,4251,4329,3924,4248,4341,4497,4608,3780,4122,4371,4584,4647,4752,4839,4839,4839,4839]},"MD127":{"w":[2268,2268,2268,2268,2478,2742,2862,2991,3165,2760,2916,3075,3198,3348,2517,2739,3072,3396,3630,3660,3687,3687,3687,3687],"wo":[1875,1875,1875,1875,1986,2076,2274,2538,2607,2205,2535,2619,2766,2892,2055,2412,2643,2865,2934,3054,3108,3108,3108,3108]},"MD128":{"w":[2757,2757,2757,2757,2928,3228,3303,3384,3546,3246,3336,3441,3585,3762,2970,3225,3438,3822,4101,4134,4164,4164,4164,4164],"wo":[2280,2280,2280,2280,2475,2601,2763,2991,3075,2709,2988,3087,3237,3321,2586,2874,3114,3300,3342,3417,3477,3477,3477,3477]},"MD130":{"w":[2466,2466,2466,2466,2682,3063,3132,3207,3345,3081,3162,3258,3375,3525,2733,3060,3255,3573,3804,3837,3864,3864,3864,3864],"wo":[2016,2016,2016,2016,2160,2295,2472,2763,2871,2400,2760,2886,3075,3147,2247,2613,2922,3129,3168,3234,3291,3291,3291,3291]},"MD133":{"w":[2739,2739,2739,2739,2901,3276,3327,3378,3507,3297,3345,3414,3543,3708,2952,3273,3411,3759,4014,4047,4077,4077,4077,4077],"wo":[2178,2178,2178,2178,2436,2592,2745,2982,3087,2694,2979,3102,3282,3336,2577,2850,3138,3321,3345,3390,3450,3450,3450,3450]}
1,"MD134":{"w":[3192,3192,3192,3192,3249,3378,3483,3597,3768,3393,3528,3672,3804,3969,3273,3375,3669,4020,4278,4314,4344,4344,4344,4344],"wo":[2472,2472,2472,2472,2904,3135,3189,3282,3306,3186,3279,3315,3396,3507,3132,3234,3327,3483,3543,3651,3714,3714,3714,3714]},"MD135":{"w":[2268,2268,2268,2268,2406,2547,2625,2712,2856,2562,2661,2772,2886,3033,2433,2544,2769,3075,3300,3327,3348,3348,3348,3348],"wo":[1890,1890,1890,1890,2040,2139,2271,2442,2469,2232,2439,2478,2556,2643,2127,2364,2490,2622,2670,2751,2796,2796,2796,2796]},"MI142":{"w":[2034,2034,2034,2034,2361,2583,2652,2730,2904,2601,2682,2781,2949,3159,2397,2580,2778,3228,3555,3582,3609,3609,3609,3609],"wo":[1527,1527,1527,1527,1770,1935,2049,2412,2469,1950,2409,2478,2592,2667,1797,2256,2499,2649,2688,2757,2805,2805,2805,2805]},"MO162":{"w":[1449,1449,1449,1449,1611,1929,2043,2166,2322,1950,2094,2247,2349,2478,1656,1926,2244,2517,2715,2736,2751,2751,2751,2751],"wo":[1110,1110,1110,1110,1215,1446,1533,1680,1767,1464,1677,1782,1953,2070,1281,1560,1812,2046,2112,2226,2262,2262,2262,2262]},"MO163":{"w":[1386,1386,1386,1386,1479,1722,1833,1956,2064,1740,1884,2034,2073,2130,1515,1719,2028,2142,2223,2238,2250,2250,2250,2250],"wo":[1287,1287,1287,1287,1290,1296,1386,1533,1596,1368,1530,1608,1743,1860,1293,1452,1629,1833,1899,2013,2043,2043,2043,2043]},"MS168":{"w":[1509,1509,1509,1509,1602,1620,1770,1938,2139,1635,1836,2046,2175,2331,1614,1617,2040,2379,2625,2643,2658,2658,2658,2658],"wo":[1305,1305,1305,1305,1365,1416,1509,1611,1617,1488,1608,1620,1653,1806,1410,1575,1623,1785,1968,2025,2058,2058,2058,2058]},"MS169":{"w":[1302,1302,1302,1302,1398,1998,2067,2136,2232,2019,2094,2184,2250,2337,1476,1992,2181,2361,2493,2511,2526,2526,2526,2526],"wo":[1098,1098,1098,1098,1158,1500,1551,1602,1701,1515,1572,1722,2010,2079,1203,1554,1779,2061,2097,2160,2196,2196,2196,2196]},"MS171":{"w":[1194,1194,1194,1194,1290,1545,1692,1854,2028,1563,1758,1959,2052,2169,1329,1542,1953,2202,2382,2400,2412,2412,2412,2412],"wo":[1032,1032,1032,1032,1062,1155,1269,1392,1521,1173,1344,1524,1572,1728,1092,1272,1527,1698,1788,1938,1968,1968,1968,1968]},"MT175":{"w":[1539,1539,1539,1539,1608,1821,1980,2160,2346,1839,2052,2274,2373,2496,1641,1818,2268,2532,2724,2745,2760,2760,2760,2760],"wo":[1266,1266,1266,1266,1392,1470,1539,1656,1761,1530,1653,1764,1851,2022,1467,1590,1767,1989,2088,2253,2289,2289,2289,2289]},"NC177":{"w":[1806,1806,1806,1806,1851,2046,2181,2328,2502,2064,2241,2424,2529,2658,1884,2043,2421,2697,2898,2919,2940,2940,2940,2940],"wo":[1683,1683,1683,1683,1722,1758,1806,1896,1944,1803,1893,1953,2070,2214,1755,1839,1971,2184,2265,2403,2445,2445,2445,2445]},"NC178":{"w":[1578,1578,1578,1578,1584,1944,1995,2049,2160,1962,2016,2088,2187,2316,1635,1941,2085,2355,2553,2571,2586,2586,2586,2586],"wo":[1323,1323,1323,1323,1476,1569,1593,1662,1761,1590,1659,1776,1950,2004,1566,1596,1809,1989,2016,2064,2097,2097,2097,2097]},"NC182":{"w":[1722,1722,1722,1722,1806,2049,2094,2142,2244,2067,2112,2178,2271,2391,1842,2046,2175,2427,2610,2628,2646,2646,2646,2646],"wo":[1341,1341,1341,1341,1527,1638,1722,1860,1923,1707,1857,1935,2052,2103,1635,1782,1956,2088,2109,2154,2190,2190,2190,2190]},"NC183":{"w":[1500,1500,1500,1500,1521,1950,2052,2160,2295,1971,2094,2229,2322,2436,1578,1947,2226,2472,2649,2667,2685,2685,2685,2685],"wo":[1365,1365,1365,1365,1428,1479,1539,1620,1734,1509,1608,1752,1968,2073,1476,1542,1794,2052,2109,2208,2244,2244,2244,2244]},"ND190":{"w":[1518,1518,1518,1518,1731,2004,2073,2151,2277,2022,2106,2202,2307,2439,1770,2001,2199,2478,2682,2703,2718,2718,2718,2718],"wo":[1233,1233,1233,1233,1299,1500,1554,1791,1863,1518,1788,1875,2013,2091,1329,1662,1902,2070,2109,2178,2214,2214,2214,2214]},"ND191":{"w":[1428,1428,1428,1428,1548,1980,2052,2127,2229,2001,2082,2178,2247,2343,1605,1977,2175,2367,2508,2526,2541,2541,2541,2541],"wo":[1206,1206,1206,1206,1260,1485,1539,1638,1764,1503,1635,1782,1995,2067,1302,1542,1824,2049,2088,2154,2190,2190,2190,2190]},"NE192":{"w":[1887,1887,1887,1887,2085,2376,2457,2547,2706,2394,2493,2604,2742,2913,2127,2373,2601,2967,3231,3258,3279,3279,3279,3279],"wo":[1425,1425,1425,1425,1587,1779,1893,2148,2229,1827,2145,2241,2388,2475,1683,2022,2268,2454,2502,2583,2625,2625,2625,2625]},"NH194":{"w":[3099,3099,3099,3099,3321,3690,3975,4278,4617,3717,4098,4476,4668,4905,3372,3687,4461,4983,5355,5400,5445,5445,5445,5445],"wo":[2367,2367,2367,2367,2700,2901,3108,3399,3504,3033,3396,3519,3756,4044,2877,3249,3555,3993,4167,4455,4536,4536,4536,4536]},"NJ200":{"w":[3357,3357,3357,3357,3549,4080,4173,4272,4437,4101,4212,4335,4476,4653,3618,4077,4332,4710,4986,5028,5067,5067,5067,5067],"wo":[2523,2523,2523,2523,2940,3180,3363,3657,3816,3300,3654,3834,4098,4194,3159,3486,3888,4173,4224,43
114,4392,4392,4392,4392]},"NJ202":{"w":[4275,4275,4275,4275,4749,5052,5073,5082,5235,5070,5079,5097,5289,5529,4791,5049,5094,5610,5991,6042,6093,6093,6093,6093],"wo":[3207,3207,3207,3207,3561,3861,4299,4815,4896,4113,4812,4908,5046,5067,3801,4593,4938,5055,5070,5073,5163,5163,5163,5163]},"NJ204":{"w":[2715,2715,2715,2715,2823,3444,3486,3525,3642,3465,3501,3555,3678,3831,2904,3438,3552,3882,4122,4155,4188,4188,4188,4188],"wo":[2085,2085,2085,2085,2421,2610,2715,2952,3135,2691,2949,3159,3450,3492,2604,2793,3219,3477,3495,3531,3594,3594,3594,3594]},"NM205":{"w":[1419,1419,1419,1419,1590,1869,1890,1899,1980,1887,1896,1908,2007,2136,1632,1866,1905,2175,2376,2394,2406,2406,2406,2406],"wo":[1131,1131,1131,1131,1197,1401,1425,1650,1725,1416,1647,1737,1863,1881,1245,1536,1764,1869,1884,1887,1911,1911,1911,1911]},"NM206":{"w":[1992,1992,1992,1992,2211,2328,2352,2379,2472,2343,2361,2400,2502,2631,2235,2325,2397,2670,2871,2892,2910,2910,2910,2910],"wo":[1557,1557,1557,1557,1689,1794,2001,2241,2265,1926,2238,2271,2325,2355,1770,2142,2280,2343,2358,2376,2415,2415,2415,2415]},"NM207":{"w":[1260,1260,1260,1260,1365,1593,1695,1806,1890,1611,1740,1878,1893,1917,1401,1590,1875,1920,1944,1956,1968,1968,1968,1968],"wo":[1050,1050,1050,1050,1107,1194,1272,1416,1476,1236,1413,1485,1611,1719,1152,1335,1506,1695,1755,1857,1887,1887,1887,1887]},"NM209":{"w":[1503,1503,1503,1503,1701,1929,1983,2043,2127,1944,2007,2085,2142,2220,1737,1926,2082,2241,2358,2376,2388,2388,2388,2388],"wo":[1155,1155,1155,1155,1275,1443,1509,1752,1809,1458,1749,1821,1932,1995,1302,1638,1842,1977,2007,2061,2094,2094,2094,2094]},"NV211":{"w":[1578,1578,1578,1578,1596,1788,1980,2190,2373,1809,2067,2325,2391,2475,1629,1785,2319,2499,2625,2643,2661,2661,2661,2661],"wo":[1287,1287,1287,1287,1455,1557,1587,1644,1779,1584,1638,1782,1827,2028,1554,1596,1785,1992,2109,2304,2343,2343,2343,2343]},"NV212":{"w":[1941,1941,1941,1941,2070,2208,2268,2337,2445,2223,2298,2385,2469,2577,2094,2205,2382,2610,2775,2796,2814,2814,2814,2814],"wo":[1629,1629,1629,1629,1737,1818,1941,2103,2133,1908,2100,2139,2214,2283,1806,2031,2151,2265,2301,2361,2400,2400,2400,2400]},"NY217":{"w":[3258,3258,3258,3258,3468,4119,4215,4317,4521,4140,4257,4383,4572,4806,3549,4113,4380,4884,5253,5298,5340,5340,5340,5340],"wo":[2514,2514,2514,2514,2859,3090,3264,3600,3795,3195,3597,3819,4137,4236,3045,3402,3882,4215,4269,4362,4440,4440,4440,4440]},"NY219":{"w":[5067,5067,5067,5067,5070,5097,5238,5418,5790,5100,5313,5535,5883,6306,5073,5094,5529,6459,7128,7194,7254,7254,7254,7254],"wo":[4833,4833,4833,4833,4980,5070,5088,5100,5106,5085,5097,5109,5118,5280,5067,5091,5112,5247,5346,5514,5616,5616,5616,5616]},"NY225":{"w":[1569,1569,1569,1569,1665,1893,2103,2331,2526,1914,2196,2478,2544,2631,1701,1890,2469,2655,2784,2805,2823,2823,2823,2823],"wo":[1356,1356,1356,1356,1422,1476,1578,1749,1896,1548,1713,1899,1938,2154,1470,1638,1902,2115,2244,2457,2496,2496,2496,2496]},"OH231":{"w":[1533,1533,1533,1533,1650,1851,1938,2037,2196,1866,1977,2100,2232,2397,1683,1848,2097,2448,2703,2724,2742,2742,2742,2742],"wo":[1224,1224,1224,1224,1341,1422,1536,1695,1746,1506,1692,1755,1863,1959,1413,1614,1773,1938,2028,2079,2112,2112,2112,2112]},"OK235":{"w":[1173,1173,1173,1173,1254,1563,1662,1767,1917,1581,1704,1836,1947,2088,1299,1560,1833,2130,2343,2358,2373,2373,2373,2373],"wo":[948,948,948,948,1032,1170,1248,1326,1437,1188,1320,1440,1581,1686,1086,1251,1449,1662,1758,1815,1845,1845,1845,1845]},"OK236":{"w":[1155,1155,1155,1155,1200,1512,1623,1743,1914,1530,1671,1821,1950,2112,1245,1509,1818,2163,2415,2430,2445,2445,2445,2445],"wo":[1008,1008,1008,1008,1065,1131,1218,1308,1437,1155,1266,1440,1530,1647,1107,1221,1443,1623,1812,1824,1833,1833,1833,1833]},"OK237":{"w":[1203,1203,1203,1203,1233,1494,1587,1692,1842,1509,1632,1761,1872,2013,1272,1491,1758,2055,2271,2286,2298,2298,2298,2298],"wo":[969,969,969,969,1092,1170,1209,1290,1383,1206,1287,1386,1509,1611,1167,1227,1395,1587,1704,1740,1767,1767,1767,1767]},"OK239":{"w":[1542,1542,1542,1542,1644,1854,1896,1944,2034,1869,1914,1977,2055,2157,1677,1851,1974,2184,2337,2355,2367,2367,2367,2367],"wo":[1248,1248,1248,1248,1365,1443,1542,1692,1743,1518,1689,1752,1854,1905,1434,1614,1773,1890,1911,1953,1986,1986,1986,1986]},"PA247":{"w":[1902,1902,1902,1902,2076,2376,2442,2514,2643,2394,2469,2562,2673,2811,2121,2373,2559,2853,3069,3093,3114,3114,3114,3114],"wo":[1431,1431,1431,1431,1617,1779,1908,2142,2223,1854,2139,2235,2385,2457,1725,2022,2265,2439,2475,2538,2580,2580,2580,2580]},"PA248":{"w":[2448,2448,2448,2448,2691,2979,3000,3009,3111,2997,3006,3018,3156,3366,2733,2976,3015,3435,3759,3789,3816,3816,3816,3816],"wo":[1893,1893,1893,1893,2091,2232,2457,2754,2832,2373,2751,2844,2973,2982,2205,2613,2871,2976,2985,2988,3018,3018,3018,3018]},"PA254":{"w":[1677,1677,1677,1677,1740,1887,1956,2034,2181,1902,1986,2088,2214,2376,1767,1884,2085,2427,2676,2697,2712,2712,2712,2712],"wo":[1272,1272,1272,1272,1488,1614,1674,1776,1806,1668,1773,1815,1893,1971,1611,1722,1827,1953,2007,2064,2097,2097,2097,2097]},"RI256":{"w":[2685,2685,2685,2685,2847,3447,3702,3972,4230,3474,3813,4146,4260,4404,2925,3441,4137,4446,4668,4707,4743,4743,4743,4743],"wo":[2073,2073,2073,2073,2361,2586,2778,2979,3174,2637,2967,3177,3507,3762,2517,2796,3231,3717,3873,4125,4200,4200,4200,4200]}
1,"SC258":{"w":[2319,2319,2319,2319,2403,2811,2835,2844,2949,2832,2841,2859,2982,3141,2457,2808,2856,3192,3438,3465,3489,3489,3489,3489],"wo":[1875,1875,1875,1875,2103,2235,2319,2490,2607,2304,2487,2622,2808,2829,2232,2379,2661,2817,2832,2835,2883,2883,2883,2883]},"SC259":{"w":[2220,2220,2220,2220,2385,2616,2652,2694,2769,2634,2667,2724,2790,2880,2421,2613,2721,2904,3039,3060,3081,3081,3081,3081],"wo":[1755,1755,1755,1755,1941,2064,2223,2439,2496,2172,2436,2508,2619,2661,2049,2334,2529,2646,2664,2697,2742,2742,2742,2742]},"SC260":{"w":[1812,1812,1812,1812,1878,2121,2160,2202,2310,2136,2175,2235,2340,2475,1914,2118,2232,2517,2724,2745,2760,2760,2760,2760],"wo":[1479,1479,1479,1479,1647,1746,1812,1932,1995,1803,1929,2004,2121,2166,1743,1860,2028,2151,2172,2211,2247,2247,2247,2247]},"SC263":{"w":[1440,1440,1440,1440,1503,1947,1986,2025,2139,1968,2001,2055,2169,2316,1563,1944,2052,2361,2589,2607,2625,2625,2625,2625],"wo":[1149,1149,1149,1149,1290,1461,1491,1596,1725,1476,1593,1743,1953,1995,1374,1494,1785,1980,1998,2031,2064,2064,2064,2064]},"SD264":{"w":[1800,1800,1800,1800,1986,2211,2307,2409,2538,2229,2349,2478,2559,2664,2022,2208,2475,2691,2850,2871,2889,2889,2889,2889],"wo":[1440,1440,1440,1440,1545,1656,1806,2037,2094,1746,2034,2103,2226,2328,1614,1929,2124,2304,2361,2457,2496,2496,2496,2496]},"TN268":{"w":[1992,1992,1992,1992,2154,2319,2337,2346,2376,2334,2343,2355,2394,2484,2181,2316,2352,2508,2643,2661,2679,2679,2679,2679],"wo":[1530,1530,1530,1530,1719,1839,1995,2193,2232,1944,2190,2238,2310,2322,1824,2103,2253,2313,2325,2328,2343,2343,2343,2343]},"TX270":{"w":[1761,1761,1761,1761,1872,2820,2844,2853,2895,2841,2850,2862,2919,3030,1989,2805,2859,3063,3234,3258,3282,3282,3282,3282],"wo":[1380,1380,1380,1380,1545,2115,2133,2145,2352,2130,2142,2382,2817,2826,1644,2136,2475,2820,2829,2832,2859,2859,2859,2859]},"TX275":{"w":[1644,1644,1644,1644,1788,2217,2310,2412,2553,2238,2352,2478,2583,2718,1845,2214,2475,2757,2964,2988,3006,3006,3006,3006],"wo":[1278,1278,1278,1278,1413,1662,1734,1878,2001,1680,1875,2019,2235,2331,1494,1743,2061,2310,2364,2454,2496,2496,2496,2496]},"TX278":{"w":[1371,1371,1371,1371,1470,1704,1854,2019,2238,1722,1923,2127,2280,2466,1506,1701,2121,2526,2820,2841,2859,2859,2859,2859],"wo":[1110,1110,1110,1110,1209,1275,1392,1521,1680,1350,1518,1683,1734,1899,1269,1440,1686,1896,2115,2130,2145,2145,2145,2145]},"TX279":{"w":[1665,1665,1665,1665,1809,2148,2172,2187,2241,2169,2178,2205,2256,2334,1857,2145,2202,2352,2466,2484,2496,2496,2496,2496],"wo":[1302,1302,1302,1302,1437,1611,1668,1881,1977,1626,1878,1992,2148,2169,1518,1764,2022,2157,2172,2178,2214,2214,2214,2214]},"TX284":{"w":[1455,1455,1455,1455,1578,1836,1965,2109,2235,1854,2025,2199,2247,2310,1617,1833,2193,2322,2415,2433,2448,2448,2448,2448],"wo":[1092,1092,1092,1092,1230,1374,1473,1635,1704,1425,1632,1716,1860,1998,1332,1542,1740,1968,2046,2178,2214,2214,2214,2214]},"TX285":{"w":[1728,1728,1728,1728,1869,2094,2112,2121,2157,2109,2118,2130,2178,2280,1905,2091,2127,2307,2457,2475,2490,2490,2490,2490],"wo":[1359,1359,1359,1359,1500,1596,1731,1920,1977,1692,1917,1986,2085,2097,1584,1827,2007,2088,2100,2103,2112,2112,2112,2112]},"TX286":{"w":[1662,1662,1662,1662,1695,1920,2070,2238,2409,1938,2139,2346,2433,2544,1731,1917,2340,2577,2748,2769,2787,2787,2787,2787],"wo":[1374,1374,1374,1374,1530,1626,1668,1746,1806,1665,1743,1812,1950,2109,1623,1689,1833,2076,2169,2325,2361,2361,2361,2361]},"TX288":{"w":[1392,1392,1392,1392,1491,2112,2190,2271,2427,2133,2223,2328,2463,2634,1572,2106,2325,2691,2955,2979,2997,2997,2997,2997],"wo":[1044,1044,1044,1044,1182,1584,1644,1704,1821,1602,1668,1827,2127,2208,1290,1647,1887,2187,2229,2304,2343,2343,2343,2343]},"TX356":{"w":[1938,1938,1938,1938,2118,2424,2445,2454,2490,2442,2451,2463,2511,2613,2163,2421,2460,2640,2793,2814,2832,2832,2832,2832],"wo":[1494,1494,1494,1494,1656,1815,1941,2184,2268,1884,2181,2280,2418,2427,1752,2061,2310,2421,2430,2433,2451,2451,2451,2451]},"UT291":{"w":[1932,1932,1932,1932,2118,2229,2271,2325,2418,2244,2295,2364,2436,2538,2139,2226,2361,2565,2715,2733,2751,2751,2751,2751],"wo":[1545,1545,1545,1545,1668,1761,1935,2145,2166,1875,2142,2172,2229,2283,1740,2058,2181,2265,2292,2340,2376,2376,2376,2376]},"VA296":{"w":[2730,2730,2730,2730,2955,3174,3228,3288,3444,3192,3252,3330,3489,3687,2991,3171,3327,3753,4065,4098,4128,4128,4128,4128],"wo":[2109,2109,2109,2109,2361,2523,2739,3006,3060,2661,3003,3072,3180,3240,2499,2883,3090,3222,3252,3306,3363,3363,3363,3363]},"VA297":{"w":[2082,2082,2082,2082,2274,2421,2439,2457,2571,2436,2445,2478,2610,2778,2301,2418,2475,2835,3099,3123,3144,3
1144,3144,3144],"wo":[1599,1599,1599,1599,1779,1905,2088,2310,2343,2022,2307,2349,2415,2439,1884,2214,2361,2427,2442,2451,2493,2493,2493,2493]},"VA298":{"w":[2229,2229,2229,2229,2430,2559,2604,2661,2796,2574,2628,2697,2832,3000,2454,2556,2694,3054,3318,3342,3366,3366,3366,3366],"wo":[1707,1707,1707,1707,1908,2043,2235,2463,2487,2166,2460,2496,2562,2616,2022,2367,2505,2601,2625,2673,2718,2718,2718,2718]},"VA301":{"w":[2157,2157,2157,2157,2358,2628,2676,2727,2835,2646,2694,2763,2862,2991,2400,2625,2760,3030,3231,3255,3276,3276,3276,3276],"wo":[1728,1728,1728,1728,1866,1971,2163,2418,2490,2094,2415,2502,2631,2685,1950,2295,2526,2670,2694,2739,2784,2784,2784,2784]},"VA368":{"w":[2307,2307,2307,2307,2313,2715,2763,2811,2955,2733,2781,2847,2997,3183,2367,2712,2844,3243,3534,3564,3588,3588,3588,3588],"wo":[2013,2013,2013,2013,2196,2304,2325,2397,2514,2322,2394,2529,2721,2772,2301,2328,2568,2757,2781,2823,2871,2871,2871,2871]},"WA306":{"w":[2265,2265,2265,2265,2364,2730,2844,2967,3105,2751,2895,3048,3126,3228,2415,2727,3045,3258,3411,3438,3462,3462,3462,3462],"wo":[1974,1974,1974,1974,2091,2169,2265,2442,2547,2244,2439,2562,2754,2871,2163,2337,2595,2847,2913,3027,3078,3078,3078,3078]},"WA307":{"w":[2568,2568,2568,2568,2748,3243,3363,3489,3630,3264,3414,3570,3651,3753,2814,3240,3567,3780,3936,3969,3999,3999,3999,3999],"wo":[2085,2085,2085,2085,2277,2433,2574,2850,2997,2517,2847,3015,3270,3390,2385,2691,3063,3366,3435,3549,3612,3612,3612,3612]},"WA310":{"w":[1947,1947,1947,1947,2184,2553,2658,2772,2901,2574,2706,2847,2922,3021,2235,2550,2844,3048,3195,3222,3243,3243,3243,3243],"wo":[1611,1611,1611,1611,1665,1914,1995,2262,2367,1932,2259,2382,2574,2685,1707,2106,2418,2658,2721,2826,2874,2874,2874,2874]},"WA311":{"w":[2370,2370,2370,2370,2556,2919,2994,3072,3180,2940,3024,3126,3201,3297,2607,2916,3123,3324,3471,3501,3525,3525,3525,3525],"wo":[2034,2034,2034,2034,2121,2199,2376,2634,2736,2313,2631,2751,2931,3009,2178,2496,2784,2991,3030,3102,3156,3156,3156,3156]},"WA312":{"w":[2013,2013,2013,2013,2073,2745,2877,3018,3159,2766,2934,3111,3174,3258,2157,2736,3105,3279,3402,3429,3453,3453,3453,3453],"wo":[1839,1839,1839,1839,1905,2058,2157,2265,2412,2076,2208,2436,2772,2910,1950,2160,2499,2880,2958,3090,3144,3144,3144,3144]},"WI318":{"w":[1380,1380,1380,1380,1395,1845,1875,1905,1971,1866,1887,1926,1989,2073,1455,1842,1923,2094,2223,2238,2250,2250,2250,2250],"wo":[1173,1173,1173,1173,1290,1383,1407,1488,1620,1401,1485,1638,1848,1881,1362,1410,1680,1866,1884,1902,1932,1932,1932,1932]},"WY324":{"w":[1539,1539,1539,1539,1653,2217,2301,2388,2520,2238,2334,2445,2547,2676,1725,2211,2442,2715,2916,2937,2955,2955,2955,2955],"wo":[1161,1161,1161,1161,1326,1662,1725,1791,1935,1680,1764,1956,2232,2319,1422,1728,2010,2298,2343,2424,2463,2463,2463,2463]},"ZZ560":{"w":[1260,1260,1260,1260,1362,1659,1725,1800,1908,1677,1755,1851,1932,2037,1404,1656,1848,2067,2226,2241,2253,2253,2253,2253],"wo":[1017,1017,1017,1017,1101,1242,1293,1425,1506,1257,1422,1521,1668,1743,1155,1332,1548,1722,1761,1827,1854,1854,1854,1854]},"ZZ630":{"w":[1320,1320,1320,1320,1425,1725,1794,1869,1983,1746,1827,1920,2004,2112,1470,1722,1917,2145,2310,2325,2340,2340,2340,2340],"wo":[1065,1065,1065,1065,1155,1293,1347,1491,1572,1311,1488,1587,1737,1812,1215,1395,1614,1791,1830,1899,1929,1929,1929,1929]},"ZZ740":{"w":[1476,1476,1476,1476,1590,1896,1968,2049,2166,1914,2001,2100,2193,2307,1632,1893,2097,2343,2520,2538,2553,2553,2553,2553],"wo":[1179,1179,1179,1179,1290,1419,1476,1656,1740,1449,1653,1752,1908,1986,1359,1554,1782,1965,2007,2079,2112,2112,2112,2112]},"ZZ790":{"w":[1761,1761,1761,1761,1890,2208,2289,2376,2511,2229,2325,2436,2538,2667,1938,2205,2433,2706,2907,2928,2949,2949,2949,2949],"wo":[1395,1395,1395,1395,1542,1656,1764,1959,2049,1728,1956,2061,2223,2307,1626,1851,2091,2286,2334,2412,2451,2451,2451,2451]}}}')},15517,(e,t,a)=>{t.exports={dataYear:"FY2025",bas:{enlisted:477.75,officer:329.61},tricare:{activeEnlisted:{annualPremiumEquivalent:0,familyCoverageEquivalent:26e3,comment:"TRICARE Prime: $0 premiums active duty. KFF 2024 avg employer family premium = $25,572/yr. With out-of-pocket and dental/vision totals ~$26,000 civilian equivalent."},activeOfficer:{annualPremiumEquivalent:0,familyCoverageEquivalent:26e3},civilianFamilyMonthly:2167,civilianSingleMonthly:800,dentalVisionAddMonthly:150},tsp:{brsMatch:{governmentAutoContrib:.01,matchRate1:.01,matchRate2:.005,maxMatchPercent:.05,comment:"Under BRS: Gov auto-contributes 1% of base pay. Matches next 3% dollar-for-dollar, next 2% at 50 cents per dollar. Max gov match = 5% of base pay."}}
1,pension:{brs:{vestedAtYears:2,pensionMultiplierPerYear:.02,pensionStartAge:20,comment:"BRS: 2% x years x base pay at 20 years. E.g., E-7 at 20 years: 40% of ~$4,388 = ~$1,755/mo for life."},legacy:{pensionMultiplierPerYear:.025,comment:"Legacy (High-3): 2.5% per year. 20 years = 50% of average of highest 3 years base pay."}},giBill:{post911:{totalEstimatedValue:117e3,annualTuitionCap:28937,housingAllowanceMonthly:2165,booksStipendAnnual:1e3,transferableToDependent:!0,comment:"Post-9/11 GI Bill: 36 months tuition at public in-state rates + BAH-equivalent housing allowance + $1,000 books. Spread over 36 months = ~$3,250/mo equivalent."},monthlyEquivalent:3250},commissary:{annualSavingsEstimate:4800,monthlyEquivalent:400,comment:"GAO estimates ~30% savings on groceries. Average military family spends ~$16,000/yr on food; 30% savings = ~$4,800."},otherPerks:{monthlyEstimate:450,breakdown:{spaceATravel:100,legalAssistance:75,mwr:100,jobSecurity:100,lifeInsurance:75}},federalTax:{brackets2025:[{min:0,max:11925,rate:.1},{min:11925,max:48475,rate:.12},{min:48475,max:103350,rate:.22},{min:103350,max:197300,rate:.24},{min:197300,max:250525,rate:.32},{min:250525,max:626350,rate:.35},{min:626350,max:0x3b9ac9ff,rate:.37}],standardDeductionSingle:15e3,ficaEmployee:.0765},stateTaxRates:{Alabama:.05,Alaska:0,Arizona:.025,Arkansas:.039,California:.08,Colorado:.044,Connecticut:.055,Delaware:.0555,"District of Columbia":.065,Florida:0,Georgia:.0519,Hawaii:.076,Idaho:.053,Illinois:.0495,Indiana:.0295,Iowa:.038,Kansas:.0558,Kentucky:.035,Louisiana:.03,Maine:.0675,Maryland:.0475,Massachusetts:.05,Michigan:.0425,Minnesota:.068,Mississippi:.04,Missouri:.047,Montana:.0565,Nebraska:.0455,Nevada:0,"New Hampshire":0,"New Jersey":.0553,"New Mexico":.047,"New York":.054,"North Carolina":.0399,"North Dakota":.0195,Ohio:.0275,Oklahoma:.045,Oregon:.0875,Pennsylvania:.0307,"Rhode Island":.0375,"South Carolina":.06,"South Dakota":0,Tennessee:0,Texas:0,Utah:.045,Vermont:.066,Virginia:.0575,Washington:0,"West Virginia":.0444,Wisconsin:.053,Wyoming:0,"Puerto Rico":.115,"Overseas (no US state)":0,"Unknown duty station":0},stateTaxRatesNote:"2026 marginal individual income tax rate for a single filer at roughly $60,000 of taxable income â the band most military base pay falls in. Source: Tax Foundation, '2026 State Income Tax Rates and Brackets'. Keyed by the `state` field of usDutyStations.ts. This is a flat approximation: the engine applies one rate to all base pay rather than walking brackets. 'Puerto Rico' (11.5%) does not come from that table, which covers states only â it is the rate Redeployable maintains for PR, and it reads as an EFFECTIVE rate rather than a marginal one (PR's marginal rate at $60k is far higher), so it is the one row whose basis differs from the rest. TWO KEYS ARE NOT RATES AT ALL, they are known gaps deliberately set to 0: 'Overseas (no US state)' (liability follows state of legal residence, which we do not collect) and 'Unknown duty station' (station not in the canonical list). Both understate tax for anyone who does owe it."}},88595,(e,t,a)=>{t.exports={dataYear:"2026",source:"DoD CONUS COLA 2026 official tables (CCWD26/CCWOD26/CCZIPS26)",note:"Monthly COLA = baseRate[rank][yosIndex] à locationIndex. YOS columns: <2,2,3,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40 CONUS COLA indices are keyed by DTMO Military Housing Area (MHA) code, the same key usDutyStations.ts carries, so they cannot drift from the station list. The index values themselves remain estimates â DTMO does not publish the CONUS COLA ZIP file in a form we could source (see README).",yosBreakpoints:[0,2,3,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40],withDependents:{"O-10":[0,0,0,0,0,0,0,0,0,0,0,73,73,73,73,73,73,73,73,73,73,73],"O-9":[0,0,0,0,0,0,0,0,0,0,0,73,73,73,73,73,73,73,73,73,73,73],"O-8":[73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73],"O-7":[73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73],"O-6":[69,71,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73],"O-5":[62,66,68,68,69,70,71,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73],"O-4":[58,61,62,64,65,66,69,70,71,73,73,73,73,73,73,73,73,73,73,73,73,73],"O-3":[54,55,57,60,61,62,64,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65],"O-2":[50,51,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55],"O-1":[46,48,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"O-3E":[0,0,0,61,62,64,64,65,66,68,69,69,69,69,69,69,69,69,69,69,69,69],"O-2E":[0,0,0,57,57,58,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61],"O-1E":[0,0,0,53,54,54,55,55,57,57,57,57,57,57,57,57,57,57,57,57,57,57],"W-5":[0,0,0,0,0,0,0,0,0,0,0,69,71,73,73,73,73,73,73,73,73,73],"W-4":[54,57,57,57,58,60,61,62,64,65,66,68,69,70,71,71,71,71,71,71,71,71],"W-3":[53,53,54,54,55,57,58,60,60,61,62,64,65,65,66,66,66,66,66,66,66,66],"W-2":[51,51,53,53,53,54,55,57,57,58,58,60,60,61,61,61,61,61,61,61,61,61],"W-1":[46,48,48,50,50,51,53,53,54,55,55,57,57,57,57,57,57,57,57,57,57,57],"E-9":[0,0,0,0,0,0,60,60,61,61,62,64,65,66,68,68,69,69,71,71,73,73],"E-8":[0,0,0,0,0,54,55,55,57,57,58,58,60,61,62,62,62,62,62,62,62,62],"E-7":[50,50,51,51,51,53,53,54,54,55,55,55,57,57,58,58,58,58,58,58,58,58],"E-6":[46,48,48,50,50,51,51,51,53,53,53,53,53,53,53,53,53,53,53,53,53,53],"E-5":[46,46,46,48,48,48,48,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"E-4":[45,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46],"E-3":[43,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"E-2":[43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43],"E-1":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42]},withoutDependents:{"O-10":[0,0,0,0,0,0,0,0,0,0,0,55,55,55,55,55,55,55,55,55,55,55],"O-9":[0,0,0,0,0,0,0,0,0,0,0,55,55,55,55,55,55,55,55,55,55,55],"O-8":[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55],"O-7":[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55],"O-6":[51,53,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55],"O-5":[48,50,51,51,52,52,53,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55],"O-4":[44,46,48,48,50,51,51,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54],"O-3":[41,43,44,45,46,48,48,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"O-2":[38,39,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42],"O-1":[34,35,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38],"O-3E":[0,0,0,46,48,48,48,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51],"O-2E":[0,0,0,43,43,44,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46],"O-1E":[0,0,0,40,40,41,41,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43],"W-5":[0,0,0,0,0,0,0,0,0,0,0,53,54,55,55,55,55,55,55,55,55,55],"W-4":[42,43,43,44,44,45,46,48,48,50,51,51,52,52,53,53,54,54,54,54,54,54],"W-3":[40,41,41,41,42,43,44,45,45,46,48,48,48,50,51,51,51,51,51,51,51,51],"W-2":[38,39,39,39,40,41,42,42,43,44,44,45,45,45,45,45,45,45,45,45,45,45],"W-1":[33,34,35,35,37,38,39,39,40,41,41,42,42,42,42,42,42,42,42,42,42,42],"E-9":[0,0,0,0,0,0,45,45,46,46,48,48,48,50,51,51,52,52,53,53,54,54],"E-8":[0,0,0,0,0,41,42,42,43,43,44,45,45,46,48,48,48,48,48,48,48,48],"E-7":[35,37,37,38,38,39,40,40,41,41,42,42,43,43,44,44,44,44,44,44,44,44],"E-6":[33,34,35,35,35,37,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39],"E-5":[33,33,34,34,35,35,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37],"E-4":[31,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33],"E-3":[31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32],"E-2":[31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31],"E-1":[31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31]},locationIndices:{AK404:5,AK405:3,AR010:1,AZ013:2,AZ015:1,CA018:9,CA024:5,CA025:6,CA037:7,CA038:5,CA039:6,CA041:4,CO045:2,CO046:1,DC053:3,FL058:1,FL061:4,FL062:2,FL066:2,GA077:1,HI408:9,LA116:1,MA120:6,MI142:2,NC178:1,NC182:1,NE192:1,NJ202:4,NM206:1,NV212:2,NY219:4,OK239:1,PA248:3,SC259:1,SC260:1,TN268:1,TX279:1,TX285:1,TX286:1,VA296:3,VA298:1,VA301:1,WA310:1,WA311:3}}},67275,(e,t,a)=>{t.exports={dataYear:"FY2025",source:"DoD Office of the Under Secretary of Defense (Comptroller)",payTable:{"E-1":[1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833,1833],"E-2":[2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054,2054],"E-3":[2161,2432,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594,2594],"E-4":[2393,2516,2643,2793,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924,2924],"E-5":[2602,2768,2876,3003,3145,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225,3225],"E-6":[2840,3122,3238,3358,3453,3619,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719,3719],"E-7":[3294,3596,3727,3840,3966,4177,4295,4388,4388,4388,4388,4388,4388,4388,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511,4511],"E-8":[4739,4924,5019,5117,5330,5447,5579,5678,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777,5777],"E-9":[5789,6007,6115,6220,6350,6550,6751,6849,7009,7130,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253,7253],"W-1":[3399,3593,3681,3774,3869,4067,4165,4266,4365,4537,4537,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601,4601],"W-2":[3896,4282,4380,4471,4593,4791,4887,5069,5167,5317,5427,5545,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637,5637],"W-3":[4447,4616,4742,4830,4923,5117,5346,5508,5606,5811,5931,6112,6234,6369,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504,6504],"W-4":[5361,5589,5719,5818,5916,6180,6419,6611,6832,7026,7190,7398,7585,7774,7959,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057,8057],"W-5":[6991,7192,7391,7590,7791,7991,8191,8391,8591,8791,8991,9191,9391,9591,9791,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991,9991],"O-1":[3637,3786,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587,4587],"O-2":[4188,4771,5508,5680,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762,5762],"O-3":[4849,5490,5924,6451,6718,6943,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164,7164],"O-4":[5517,6379,6804,7241,7543,7771,8190,8531,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659,8659],"O-5":[6469,7296,7784,8020,8350,8746,9017,9403,9699,9958,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077,10077],"O-6":[7784,8556,9125,9125,9224,9694,9947,10210,10549,11e3,11324,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557,11557],"O-7":[9857,10318,10533,10756,10974,11380,11690,11882,12250,12580,12869,13013,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445,13445],"O-8":[12152,12561,12843,12965,13279,13760,14020,14283,14622,15135,15414,15652,16073,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436,16436],"O-9":[14934,15551,15817,16134,16557,16942,17249,17484,17768,18070,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491,18491],"O-10":[17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273,17273]},yosBreakpoints:[0,2,3,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40]}},188,(e,t,a)=>{t.exports={compComparator:{heroTitle:"What's your service actually worth?",heroSubtitle:"Your paycheck doesn't show the full picture. Enter your details and see exactly what a civilian salary needs to match your total package â tax-free allowances, benefits, and all.",formHeading:"Tell us about your service",formSubheading:"Takes two minutes. The number at the end tends to be surprising.",showMeTheNumber:"Show me the number",footerNote:"Data as of {{dataYear}} · For educational purposes only · Not financial advice",serviceBranch:"Service branch",rankRate:"Rank / rate",rank:"Rank",selectBranch:"Select branch",selectRank:"Select rank",yearsOfService:"Years of service: {{count}}",yearsOfServiceHint:"Drag to adjust (0â40 years)",dependents:"Dependents: {{count}}",dependentsHint:"Spouse, children, or other dependents",residenceLabel:"State of legal residence",residenceHint:"This impacts your income tax calculation",residencePlaceholder:"Select stateâ¦",residenceNotFound:"No states found",residenceRequired:"Choose your state of legal residence â your income tax depends on it.",dutyStation:"Duty station",dutyStationHint:"Optional â refines your housing allowance",dutyStationPlaceholder:"Select duty stationâ¦",dutyStationNotFound:"No stations foun
1d",colTier1:"Low",colTier2:"Medium",colTier3:"High",colCities1:"e.g. Fayetteville, Killeen",colCities2:"e.g. Tampa, San Antonio",colCities3:"e.g. San Diego, D.C.",expectedColLabel:"Expected cost of living after service: {{tier}}",colHint:"What type of area do you plan to settle in? {{examples}}",tspLabel:"TSP contribution: {{percent}}%",tspHint:"Your current Thrift Savings Plan contribution rate",supplementLabel:"Supplement level",supplementHint:"Reflects your trade group (e.g. Trade Group 5 = Supp 2). Check your payslip if unsure.",supplementPlaceholder:"Select supplement",supplement1:"Level 1 (Lower)",supplement2:"Level 2",supplement3:"Level 3",supplement4:"Level 4 (Higher)",payLevel:"Pay level",payLevelHint:"Seniority step within {{grade}}. Higher numbers = more time at rank.",payLevelGradeFallback:"grade",payLevelPlaceholder:"Select pay level",pensionScheme:"Pension scheme",pensionSchemeHint:"Which AFPS scheme are you enrolled in?",location:"Location",locationHint:"For housing and London weighting calculations",accommodation:"Accommodation",accommodationHint:"Where you currently live â affects housing benefit calculation",accommodationPlaceholder:"Select accommodation",accommodationPrivate:"Private rental / Own home",accommodationSfa:"Service Family Accommodation (SFA)",accommodationSla:"Single Living Accommodation (SLA)",childcareTitle:"MOD Wraparound Childcare (WAC)",childcareDescription:"Up to £3,400/child/year for before & after school care (ages 4â11). This benefit disappears when you leave.",eligibleChildren:"Eligible children (4â11): {{count}}",eligibleChildrenHint:"Number of children aged 4â11 using wraparound childcare",incomeTaxNi:"Income tax + NI",incomeTaxFica:"Income tax + FICA","tag_tax-free":"Tax-free",tag_hidden:"Hidden cost",tag_gone:"Gone",yosShort:"{{count}} YOS",totalMilitaryPackage:"Your total military package",perMonth:"/mo",perYearGrossPackage:"{{amount}}/yr (gross package)",whatYoullNeedToEarn:"What you'll need to earn",perYearGrossSalary:"{{amount}}/yr (gross salary)",yourMilitaryPackage:"Your military package",cashPay:"Cash pay",benefitsIncluded:"Benefits included",netCashInHand:"Net cash in hand",civilianEquivalentNeeded:"Civilian equivalent needed",grossSalary:"Gross salary",basePay:"Base pay",youNowPayFor:"You now pay for",healthcareYourShare:"Healthcare (your share)",pensionTspGap:"Workplace pension / TSP gap",youLoseEntirely:"You lose entirely",amountLost:"â{{amount}} lost",toggleDetail:"Toggle detail for {{label}}",disclaimerTitle:"Assumptions, data sources & disclaimer",disclaimerHeading:"Disclaimer",disclaimerBody:"These are estimates, not guarantees. Individual pay varies by posting, tax code, and personal circumstances. Don't make a career decision based on this alone â verify the numbers that matter most to you with official sources before you sign anything.",dataSourcesHeading:"Data sources",keyAssumptionsLabel:"Key assumptions:",usDataSources:"DoD Office of the Under Secretary of Defense (Comptroller) â Military Pay Tables\nDefense Travel Management Office (DTMO) â 2026 BAH rates by Military Housing Area\nTax Foundation â 2026 state individual income tax rates and brackets\nDefense Finance and Accounting Service â BAS rates (FY2025)\nKaiser Family Foundation (KFF) 2024 Employer Health Benefits Survey â TRICARE equivalent civilian costs\nBureau of Labor Statistics (BLS) â Regional Price Parities, average benefit costs\nIRS 2025 Tax Brackets and Standard Deduction\nThrift Savings Plan â BRS match schedule\nVA.gov â Post-9/11 GI Bill rates and benefit values",ukDataSources:"MOD Armed Forces Pay Review Body 2025 â Pay scales by rank and pay band\nMOD â X-Factor rate (14.5%), AFPS scheme parameters\nHMRC â Income Tax bands 2024/25, National Insurance rates\nONS â Average rental prices by region (2024)\nBUPA / AXA PPP â Private health insurance benchmark premiums (2024)\nDIO â Service Family Accommodation charge rates (2025)",usAssumptions:"Allowances grossed up using effective (not marginal) rate. BAH/BAS gross-up uses combined income tax + FICA â the full pre-tax cost to match the same net. Healthcare uses average employer-sponsored plan cost for comparable coverage. Pension uses current years of service; the picture changes significantly if you hit 20. GI Bill spread as monthly equivalent across 36-month entitlement. Housing uses the published BAH rate for your duty station's Military Housing Area; overseas postings draw Overseas Housing Allowance, which DoD sets from actual rent and does not publish, so those show the national median BAH instead. With no duty station selected, housing shows that same median across every housing area. State income tax follows your state of legal residence, not your posting â under the Servicemembers Civil Relief Act your military pay is taxable only where you are domiciled â using the marginal rate for a single filer at around $60,000.",ukAssumptions:"Basic pay grossed up using effective IT/NI rate. SFA saving calculated as market rent minus SFA charge. Healthcare uses BUPA/AXA benchmark premiums vs typical employer PMI contribution. Pension gap = AFPS employer contribution minus typical civilian employer 8% DC contribution. Non-cash benefits (meals, gym) shown at cost value, not grossed up.",reportCardTitle:"Take the full breakdown with you",reportCardDescription:"Every line item, every assumption, every data source â formatted for a financial advisor, a salary negotiation, or just your own records.",reportButton:"Download my report",reportGenerating:"Generatingâ¦",reportSuccessTitle:"Your report is downloading!",reportSuccessHint:"Check your downloads folder for military-compensation-report.pdf",reportError:"Something went wrong generating your report. Please try again.",reportCoverTitle:"Military Compensation Report",reportCoverHeadline:"To maintain your current standard of living, you'd need to earn",reportCoverSub:"as a civilian salary â based on your full military compensation package",reportAssumptionsTitle:"Assumptions, Data Sources & Disclaimer",countryUK:"UK",countryUS:"US",countrySwitchLabel:"Cho
1ose which service to compare"}}},37286,(e,t,a)=>{t.exports={compComparator:{heroTitle:"What's your service actually worth?",heroSubtitle:"Your paycheck doesn't show the full picture. Enter your details and see exactly what a civilian salary needs to match your total package â tax-free allowances, benefits, and all.",formHeading:"Tell us about your service",formSubheading:"Takes two minutes. The number at the end tends to be surprising.",showMeTheNumber:"Show me the number",footerNote:"Data as of {{dataYear}} · For educational purposes only · Not financial advice",serviceBranch:"Service branch",rankRate:"Rank / rate",rank:"Rank",selectBranch:"Select branch",selectRank:"Select rank",yearsOfService:"Years of service: {{count}}",yearsOfServiceHint:"Drag to adjust (0â40 years)",dependents:"Dependents: {{count}}",dependentsHint:"Spouse, children, or other dependents",residenceLabel:"State of legal residence",residenceHint:"This impacts your income tax calculation",residencePlaceholder:"Select stateâ¦",residenceNotFound:"No states found",residenceRequired:"Choose your state of legal residence â your income tax depends on it.",dutyStation:"Duty station",dutyStationHint:"Optional â refines your housing allowance",dutyStationPlaceholder:"Select duty stationâ¦",dutyStationNotFound:"No stations found",colTier1:"Low",colTier2:"Medium",colTier3:"High",colCities1:"e.g. Fayetteville, Killeen",colCities2:"e.g. Tampa, San Antonio",colCities3:"e.g. San Diego, D.C.",expectedColLabel:"Expected cost of living after service: {{tier}}",colHint:"What type of area do you plan to settle in? {{examples}}",tspLabel:"TSP contribution: {{percent}}%",tspHint:"Your current Thrift Savings Plan contribution rate",supplementLabel:"Supplement level",supplementHint:"Reflects your trade group (e.g. Trade Group 5 = Supp 2). Check your payslip if unsure.",supplementPlaceholder:"Select supplement",supplement1:"Level 1 (Lower)",supplement2:"Level 2",supplement3:"Level 3",supplement4:"Level 4 (Higher)",payLevel:"Pay level",payLevelHint:"Seniority step within {{grade}}. Higher numbers = more time at rank.",payLevelGradeFallback:"grade",payLevelPlaceholder:"Select pay level",pensionScheme:"Pension scheme",pensionSchemeHint:"Which AFPS scheme are you enrolled in?",location:"Location",locationHint:"For housing and London weighting calculations",accommodation:"Accommodation",accommodationHint:"Where you currently live â affects housing benefit calculation",accommodationPlaceholder:"Select accommodation",accommodationPrivate:"Private rental / Own home",accommodationSfa:"Service Family Accommodation (SFA)",accommodationSla:"Single Living Accommodation (SLA)",childcareTitle:"MOD Wraparound Childcare (WAC)",childcareDescription:"Up to £3,400/child/year for before & after school care (ages 4â11). This benefit disappears when you leave.",eligibleChildren:"Eligible children (4â11): {{count}}",eligibleChildrenHint:"Number of children aged 4â11 using wraparound childcare",incomeTaxNi:"Income tax + NI",incomeTaxFica:"Income tax + FICA","tag_tax-free":"Tax-free",tag_hidden:"Hidden cost",tag_gone:"Gone",yosShort:"{{count}} YOS",totalMilitaryPackage:"Your total military package",perMonth:"/mo",perYearGrossPackage:"{{amount}}/yr (gross package)",whatYoullNeedToEarn:"What you'll need to earn",perYearGrossSalary:"{{amount}}/yr (gross salary)",yourMilitaryPackage:"Your military package",cashPay:"Cash pay",benefitsIncluded:"Benefits included",netCashInHand:"Net cash in hand",civilianEquivalentNeeded:"Civilian equivalent needed",grossSalary:"Gross salary",basePay:"Base pay",youNowPayFor:"You now pay for",healthcareYourShare:"Healthcare (your share)",pensionTspGap:"Workplace pension / TSP gap",youLoseEntirely:"You lose entirely",amountLost:"â{{amount}} lost",toggleDetail:"Toggle detail for {{label}}",disclaimerTitle:"Assumptions, data sources & disclaimer",disclaimerHeading:"Disclaimer",disclaimerBody:"These are estimates, not guarantees. Individual pay varies by posting, tax code, and personal circumstances. Don't make a career decision based on this alone â verify the numbers that matter most to you with official sources before you sign anything.",dataSourcesHeading:"Data sources",keyAssumptionsLabel:"Key assumptions:",usDataSources:"Do
1D Office of the Under Secretary of Defense (Comptroller) â Military Pay Tables\nDefense Travel Management Office (DTMO) â 2026 BAH rates by Military Housing Area\nTax Foundation â 2026 state individual income tax rates and brackets\nDefense Finance and Accounting Service â BAS rates (FY2025)\nKaiser Family Foundation (KFF) 2024 Employer Health Benefits Survey â TRICARE equivalent civilian costs\nBureau of Labor Statistics (BLS) â Regional Price Parities, average benefit costs\nIRS 2025 Tax Brackets and Standard Deduction\nThrift Savings Plan â BRS match schedule\nVA.gov â Post-9/11 GI Bill rates and benefit values",ukDataSources:"MOD Armed Forces Pay Review Body 2025 â Pay scales by rank and pay band\nMOD â X-Factor rate (14.5%), AFPS scheme parameters\nHMRC â Income Tax bands 2024/25, National Insurance rates\nONS â Average rental prices by region (2024)\nBUPA / AXA PPP â Private health insurance benchmark premiums (2024)\nDIO â Service Family Accommodation charge rates (2025)",usAssumptions:"Allowances grossed up using effective (not marginal) rate. BAH/BAS gross-up uses combined income tax + FICA â the full pre-tax cost to match the same net. Healthcare uses average employer-sponsored plan cost for comparable coverage. Pension uses current years of service; the picture changes significantly if you hit 20. GI Bill spread as monthly equivalent across 36-month entitlement. Housing uses the published BAH rate for your duty station's Military Housing Area; overseas postings draw Overseas Housing Allowance, which DoD sets from actual rent and does not publish, so those show the national median BAH instead. With no duty station selected, housing shows that same median across every housing area. State income tax follows your state of legal residence, not your posting â under the Servicemembers Civil Relief Act your military pay is taxable only where you are domiciled â using the marginal rate for a single filer at around $60,000.",ukAssumptions:"Basic pay grossed up using effective IT/NI rate. SFA saving calculated as market rent minus SFA charge. Healthcare uses BUPA/AXA benchmark premiums vs typical employer PMI contribution. Pension gap = AFPS employer contribution minus typical civilian employer 8% DC contribution. Non-cash benefits (meals, gym) shown at cost value, not grossed up.",reportCardTitle:"Take the full breakdown with you",reportCardDescription:"Every line item, every assumption, every data source â formatted for a financial advisor, a salary negotiation, or just your own records.",reportButton:"Download my report",reportGenerating:"Generatingâ¦",reportSuccessTitle:"Your report is downloading!",reportSuccessHint:"Check your downloads folder for military-compensation-report.pdf",reportError:"Something went wrong generating your report. Please try again.",reportCoverTitle:"Military Compensation Report",reportCoverHeadline:"To maintain your current standard of living, you'd need to earn",reportCoverSub:"as a civilian salary â based on your full military compensation package",reportAssumptionsTitle:"Assumptions, Data Sources & Disclaimer",countryUK:"UK",countryUS:"US",countrySwitchLabel:"Choose which service to compare"}}},12186,e=>{"use strict";var t,a=e.i(43476),n=e.i(22016),i=e.i(87596),r=e.i(85242),s=e.i(2582),o=e.i(56773),l=e.i(8684),c=e.i(98271),d=e.i(22287),u=e.i(55680),h=e.i(33115),m=e.i(15517),p=e.i(88595);let g=[{name:"Aberdeen Proving Ground, MD",state:"Maryland",zip:"21005",mha:"MD127"},{name:"Altus AFB, OK",state:"Oklahoma",zip:"73523",mha:"OK235"},{name:"Anniston Army Depot, AL",state:"Alabama",zip:"36201",mha:"AL001"},{name:"Arnold AFB, TN",state:"Tennessee",zip:"37389",mha:"ZZ630"},{name:"Aviano Air Base, Italy",state:"Overseas (no US state)",zip:null,mha:null},{name:"Barksdale AFB, LA",state:"Louisiana",zip:"71110",mha:"LA117"},{name:"Beale AFB, CA",state:"California",zip:"95903",mha:"CA033"},{name:"Buckley SFB, CO",state:"Colorado",zip:"80011",mha:"CO045"},{name:"Camp Butler (Okinawa), Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"Camp Lejeune, NC",state:"North Carolina",zip:"28542",mha:"NC178"},{name:"Camp Parks, CA",state:"California",zip:"94568",mha:"CA018"},{name:"Camp Pendleton, CA",state:"California",zip:"92055",mha:"CA024"},{name:"Cannon AFB, NM",state:"New Mexico",zip:"88103",mha:"NM207"},{name:"Carlisle Barracks, PA",state:"Pennsylvania",zip:"17013",mha:"PA247"},{name:"Columbus AFB, MS",state:"Mississippi",zip:"39710",mha:"MS169"},{name:"Creech AFB, NV",state:"Nevada",zip:"89018",mha:"NV212"},{name:"Davis-Monthan AFB, AZ",state:"Arizona",zip:"85707",mha:"AZ015"},{name:"Detroit Arsenal, MI",state:"Michigan",zip:"48397",mha:"MI142"}
1,{name:"Dover AFB, DE",state:"Delaware",zip:"19902",mha:"DE054"},{name:"Dugway Proving Ground, UT",state:"Utah",zip:"84022",mha:"ZZ790"},{name:"Dyess AFB, TX",state:"Texas",zip:"79607",mha:"TX270"},{name:"Edwards AFB, CA",state:"California",zip:"93524",mha:"CA457"},{name:"Eglin AFB, FL",state:"Florida",zip:"32542",mha:"FL056"},{name:"Eielson AFB, AK",state:"Alaska",zip:"99702",mha:"AK405"},{name:"Ellsworth AFB, SD",state:"South Dakota",zip:"57706",mha:"SD264"},{name:"F.E. Warren AFB, WY",state:"Wyoming",zip:"82005",mha:"WY324"},{name:"Fairchild AFB, WA",state:"Washington",zip:"99011",mha:"WA310"},{name:"Fleet Activities Chinhae, South Korea",state:"Overseas (no US state)",zip:null,mha:null},{name:"Fleet Activities Sasebo, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"Fleet Activities Yokosuka, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"Fort Belvoir, VA",state:"Virginia",zip:"22060",mha:"DC053"},{name:"Fort Benning, GA",state:"Georgia",zip:"31905",mha:"GA075"},{name:"Fort Bliss, TX",state:"Texas",zip:"79916",mha:"TX279"},{name:"Fort Bragg (Liberty), NC",state:"North Carolina",zip:"28310",mha:"NC182"},{name:"Fort Buchanan, PR",state:"Puerto Rico",zip:"00934",mha:null},{name:"Fort Campbell, KY",state:"Kentucky",zip:"42223",mha:"KY106"},{name:"Fort Carson, CO",state:"Colorado",zip:"80913",mha:"CO046"},{name:"Fort Detrick, MD",state:"Maryland",zip:"21702",mha:"MD130"},{name:"Fort Drum, NY",state:"New York",zip:"13602",mha:"NY225"},{name:"Fort Gordon, GA",state:"Georgia",zip:"30905",mha:"GA073"},{name:"Fort Hamilton, NY",state:"New York",zip:"11252",mha:"NY219"},{name:"Fort Hood (Cavazos), TX",state:"Texas",zip:"76544",mha:"TX286"},{name:"Fort Huachuca, AZ",state:"Arizona",zip:"85613",mha:"AZ014"},{name:"Fort Hunter Liggett, CA",state:"California",zip:"93928",mha:"CA392"},{name:"Fort Irwin, CA",state:"California",zip:"92310",mha:"CA028"},{name:"Fort Jackson, SC",state:"South Carolina",zip:"29207",mha:"SC260"},{name:"Fort Knox, KY",state:"Kentucky",zip:"40121",mha:"KY110"},{name:"Fort Leavenworth, KS",state:"Kansas",zip:"66027",mha:"KS102"},{name:"Fort Lee, VA",state:"Virginia",zip:"23801",mha:"VA301"},{name:"Fort Leonard Wood, MO",state:"Missouri",zip:"65473",mha:"MO163"},{name:"Fort McCoy, WI",state:"Wisconsin",zip:"54656",mha:"WI318"},{name:"Fort Meade, MD",state:"Maryland",zip:"20755",mha:"MD133"},{name:"Fort Myer (JB Myer-Henderson Hall), VA",state:"Virginia",zip:"22211",mha:"DC053"},{name:"Fort Polk, LA",state:"Louisiana",zip:"71459",mha:"LA115"},{name:"Fort Riley, KS",state:"Kansas",zip:"66442",mha:"KS100"},{name:"Fort Rucker, AL",state:"Alabama",zip:"36362",mha:"AL002"},{name:"Fort Sill, OK",state:"Oklahoma",zip:"73503",mha:"OK237"},{name:"Fort Stewart, GA",state:"Georgia",zip:"31314",mha:"GA080"},{name:"Goodfellow AFB, TX",state:"Texas",zip:"76908",mha:"TX284"},{name:"Grand Forks AFB, ND",state:"North Dakota",zip:"58205",mha:"ND190"},{name:"Hanscom AFB, MA",state:"Massachusetts",zip:"01731",mha:"MA377"},{name:"Hill AFB, UT",state:"Utah",zip:"84056",mha:"UT291"},{name:"Holloman AFB, NM",state:"New Mexico",zip:"88330",mha:"NM205"},{name:"Hunter Army Airfield, GA",state:"Georgia",zip:"31409",mha:"GA077"},{name:"Hurlburt Field, FL",state:"Florida",zip:"32544",mha:"FL056"},{name:"Incirlik AB, Turkey",state:"Overseas (no US state)",zip:null,mha:null},{name:"Izmir AS, Turkey",state:"Overseas (no US state)",zip:null,mha:null},{name:"JEB Little Creek-Fort Story, VA",state:"Virginia",zip:"23459",mha:"VA298"},{name:"Joint Base Anacostia-Bolling, DC",state:"District of Columbia",zip:"20032",mha:"DC053"},{name:"Joint Base Andrews, MD",state:"Maryland",zip:"20762",mha:"DC053"},{name:"Joint Base Charleston, SC",state:"South Carolina",zip:"29404",mha:"SC259"},{name:"Joint Base Elmendorf-Richardson (JBER), AK",state:"Alaska",zip:"99506",mha:"AK404"},{name:"Joint Base Langley-Eustis, VA",state:"Virginia",zip:"23665",mha:"VA297"},{name:"Joint Base Lewis-McChord, WA",state:"Washington",zip:"98433",mha:"WA311"},{name:"Joint Base McGuire-Dix-Lakehurst, NJ",state:"New Jersey",zip:"08640",mha:"NJ204"},{name:"Joint Base Pearl Harbor-Hickam, HI",state:"Hawaii",zip:"96860",mha:"HI408"},{name:"Joint Base San Antonio, TX",state:"Texas",zip:"78234",mha:"TX285"},{name:"Joint Region Marianas - Andersen AFB, Guam",state:"Overseas (no US state)",zip:null,mha:null},{name:"Joint Region Marianas - Naval Base Guam",state:"Overseas (no US state)",zip:null,mha:null},{name:"Kadena AB, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"Keesler AFB, MS",state:"Mississippi",zip:"39534",mha:"MS168"},{name:"Kirtland AFB, NM",state:"New Mexico",zip:"87117",mha:"NM206"},{name:"Kunsan AB, South Korea",state:"Overseas (no US state)",zip:null,mha:null},{name:"Lajes Field, Portugal",state:"Overseas (no US state)",zip:null,mha:null},{name:"Laughlin AFB, TX",state:"Texas",zip:"78843",mha:"TX278"},{name:"Little Rock AFB, AR",state:"Arkansas",zip:"72099",mha:"AR010"},{name:"Los Angeles SFB, CA",state:"California",zip:"90245",mha:"CA037"},{name:"Luke AFB, AZ",state:"Arizona",zip:"85309",mha:"AZ013"},{name:"MacDill AFB, FL",state:"Florida",zip:"33621",mha:"FL066"},{name:"Malmstrom AFB, MT",state:"Montana",zip:"59402",mha:"MT175"},{name:"March ARB, CA",state:"California",zip:"92518",mha:"CA041"},{name:"Marine Corps Base Quantico, VA",state:"Virginia",zip:"22134",mha:"VA296"},{name:"Maxwell AFB, AL",state:"Alabama",zip:"36112",mha:"AL005"},{name:"MCAS Beaufort, SC",state:"South Carolina",zip:"29904",mha:"SC258"},{name:"MCAS Cherry Point, NC",state:"North Carolina",zip:"28533",mha:"NC177"},{name:"MCAS Iwakuni, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"MCAS Miramar, CA",state:"California",zip:"92145",mha:"CA038"},{name:"MCAS New River, NC",state:"North Carolina",zip:"28545",mha:"NC178"},{name:"MCAS Yuma, AZ",state:"Arizona",zip:"85369",mha:"AZ016"},{name:"MCB Hawaii, HI",state:"Hawaii",zip:"96863",mha:"HI408"},{name:"McConnell AFB, KS",state:"Kansas",zip:"67221",mha:"KS101"},{name:"MCLB Albany, GA",state:"Georgia",zip:"31704",mha:"GA072"},{name:"MCLB Barstow, CA",state:"California",zip:"92311",mha:"CA028"},{name:"MCRD Parris Island, SC",state:"South Carolina",zip:"29905",mha:"SC258"},{name:"MCRD San Diego, CA",state:"California",zip:"92140",mha:"CA038"},{name:"Minot AFB, ND",state:"North Dakota",zip:"58705",mha:"ND191"},{name:"Misawa AB, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"Moody AFB, GA",state:"Georgia",zip:"31699",mha:"GA081"},{name:"Morón AB, Spain",state:"Overseas (no US state)",zip:null,mha:null},{name:"Mountain Home AFB, ID",state:"Idaho",zip:"83648",mha:"ID086"},{name:"NAF Atsugi, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"NAS Corpus Christi, TX",state:"Texas",zip:"78419",mha:"TX275"},{name:"NAS Fallon, NV",state:"Nevada",zip:"89496",mha:"NV211"},{name:"NAS Jacksonville, FL",state:"Florida",zip:"32212",mha:"FL058"},{name:"NAS JRB Fort Worth, TX",state:"Texas",zip:"76127",mha:"TX356"},{name:"NAS JRB New Orleans, LA",state:"Louisiana",zip:"70143",mha:"LA116"},{name:"NAS Key West, FL",state:"Florida",zip:"33040",mha:"FL069"},{name:"NAS Kingsville, TX",state:"Texas",zip:"78363",mha:"TX275"},{name:"NAS Lemoore, CA",state:"California",zip:"93246",mha:"CA023"},{name:"NAS Meridian, MS",state:"Mississippi",zip:"39309",mha:"MS171"},{name:"NAS Oceana, VA",state:"Virginia",zip:"23460",mha:"VA298"},{name:"NAS Patuxent River, MD",state:"Maryland",zip:"20670",mha:"MD135"},{name:"NAS Pensacola, FL",state:"Florida",zip:"32508",mha:"FL064"},{name:"NAS Sigonella, Italy",state:"Overseas (no US state)",zip:null,mha:null},{name:"NAS Whidbey Island, WA",state:"Washington",zip:"98278",mha:"WA312"},{name:"NAS Whiting Field, FL",state:"Florida",zip:"32570",mha:"FL064"},{name:"Natick Soldier Systems Center, MA",state:"Massachusetts",zip:"01760",mha:"MA120"},{name:"Naval Academy Annapolis, MD",state:"Maryland",zip:"21402",mha:"MD128"},{name:"Naval Air Facility El Centro, CA",state:"California",zip:"92243",mha:"CA420"},{name:"Naval Air Weapons Station China Lake, CA",state:"California",zip:"93555",mha:"CA021"},{name:"Naval Base Coronado, CA",state:"California",zip:"92118",mha:"CA038"},{name:"Naval Base Kitsap, WA",state:"Washington",zip:"98314",mha:"WA306"},{name:"Naval Base Point Loma, CA",state:"California",zip:"92106",mha:"CA038"},{name:"Naval Base San Diego, CA",state:"California",zip:"92136",mha:"CA038"},{name:"Naval Base Ventura County, CA",state:"California",zip:"93041",mha:"CA025"},{name:"Naval Medical Center Portsmouth, VA",state:"Virginia",zip:"23708",mha:"VA298"},{name:"Naval Station Everett, WA",state:"Washington",zip:"98207",mha:"WA307"},{name:"Naval Station Great Lakes, IL",state:"Illinois",zip:"60088",mha:"IL092"}
1,{name:"Naval Station Guantanamo Bay, Cuba",state:"Overseas (no US state)",zip:null,mha:null},{name:"Naval Station Mayport, FL",state:"Florida",zip:"32228",mha:"FL058"},{name:"Naval Station Newport, RI",state:"Rhode Island",zip:"02841",mha:"RI256"},{name:"Naval Station Norfolk, VA",state:"Virginia",zip:"23511",mha:"VA298"},{name:"Naval Station Rota, Spain",state:"Overseas (no US state)",zip:null,mha:null},{name:"Naval Submarine Base Kings Bay, GA",state:"Georgia",zip:"31547",mha:"GA074"},{name:"Naval Submarine Base New London, CT",state:"Connecticut",zip:"06349",mha:"CT049"},{name:"Naval Weapons Station Earle, NJ",state:"New Jersey",zip:"07753",mha:"NJ200"},{name:"Naval Weapons Station Yorktown, VA",state:"Virginia",zip:"23691",mha:"VA297"},{name:"NCBC Gulfport, MS",state:"Mississippi",zip:"39501",mha:"MS168"},{name:"Nellis AFB, NV",state:"Nevada",zip:"89191",mha:"NV212"},{name:"Newport News Shipyard, VA",state:"Virginia",zip:"23607",mha:"VA297"},{name:"Norfolk Naval Shipyard, VA",state:"Virginia",zip:"23709",mha:"VA298"},{name:"NSA Bahrain",state:"Overseas (no US state)",zip:null,mha:null},{name:"NSA Bethesda (Walter Reed), MD",state:"Maryland",zip:"20889",mha:"DC053"},{name:"NSA Crane, IN",state:"Indiana",zip:"47522",mha:"IN399"},{name:"NSA Hampton Roads, VA",state:"Virginia",zip:"23551",mha:"VA298"},{name:"NSA Mechanicsburg, PA",state:"Pennsylvania",zip:"17050",mha:"PA247"},{name:"NSA Mid-South, TN",state:"Tennessee",zip:"38054",mha:"TN268"},{name:"NSA Monterey, CA",state:"California",zip:"93943",mha:"CA039"},{name:"NSA Naples, Italy",state:"Overseas (no US state)",zip:null,mha:null},{name:"NSA Orlando, FL",state:"Florida",zip:"32826",mha:"FL062"},{name:"NSA Panama City, FL",state:"Florida",zip:"32407",mha:"FL063"},{name:"NSA Philadelphia, PA",state:"Pennsylvania",zip:"19112",mha:"PA248"},{name:"NSA Singapore",state:"Overseas (no US state)",zip:null,mha:null},{name:"NSA Souda Bay, Greece",state:"Overseas (no US state)",zip:null,mha:null},{name:"NSA South Potomac (Dahlgren), VA",state:"Virginia",zip:"22448",mha:"VA368"},{name:"NSA South Potomac (Indian Head), MD",state:"Maryland",zip:"20640",mha:"MD134"},{name:"NSA Washington, DC",state:"District of Columbia",zip:"20374",mha:"DC053"},{name:"NSF Diego Garcia",state:"Overseas (no US state)",zip:null,mha:null},{name:"Offutt AFB, NE",state:"Nebraska",zip:"68113",mha:"NE192"},{name:"Osan Air Base, South Korea",state:"Overseas (no US state)",zip:null,mha:null},{name:"Papa Air Base, Hungary",state:"Overseas (no US state)",zip:null,mha:null},{name:"Patrick SFB, FL",state:"Florida",zip:"32925",mha:"FL059"},{name:"Pentagon, DC",state:"District of Columbia",zip:"20301",mha:"DC053"},{name:"Peterson SFB, CO",state:"Colorado",zip:"80914",mha:"CO046"},{name:"Picatinny Arsenal, NJ",state:"New Jersey",zip:"07806",mha:"NJ202"},{name:"Pine Bluff Arsenal, AR",state:"Arkansas",zip:"71602",mha:"ZZ560"},{name:"Pope Army Airfield, NC",state:"North Carolina",zip:"28308",mha:"NC182"},{name:"Portsmouth Naval Shipyard, ME",state:"Maine",zip:"03904",mha:"NH194"},{name:"Presidio of Monterey, CA",state:"California",zip:"93944",mha:"CA039"},{name:"RAF Alconbury/Molesworth, UK",state:"Overseas (no US state)",zip:null,mha:null},{name:"RAF Croughton/Fairford, UK",state:"Overseas (no US state)",zip:null,mha:null},{name:"RAF Lakenheath, UK",state:"Overseas (no US state)",zip:null,mha:null},{name:"RAF Mildenhall, UK",state:"Overseas (no US state)",zip:null,mha:null},{name:"Ramstein AB, Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"Red River Army Depot, TX",state:"Texas",zip:"75507",mha:"ZZ740"},{name:"Redstone Arsenal, AL",state:"Alabama",zip:"35898",mha:"AL003"},{name:"Robins AFB, GA",state:"Georgia",zip:"31098",mha:"GA076"},{name:"Rock Island Arsenal, IL",state:"Illinois",zip:"61299",mha:"IL089"},{name:"Schriever SFB, CO",state:"Colorado",zip:"80912",mha:"CO046"},{name:"Scott AFB, IL",state:"Illinois",zip:"62225",mha:"IL093"},{name:"Seymour Johnson AFB, NC",state:"North Carolina",zip:"27531",mha:"NC183"},{name:"Shaw AFB, SC",state:"South Carolina",zip:"29152",mha:"SC263"},{name:"Sheppard AFB, TX",state:"Texas",zip:"76311",mha:"TX288"},{name:"Spangdahlem AB, Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"Stavanger, Norway",state:"Overseas (no US state)",zip:null,mha:null},{name:"Stennis Space Center, MS",state:"Mississippi",zip:"39529",mha:"LA116"},{name:"Tinker AFB, OK",state:"Oklahoma",zip:"73145",mha:"OK239"},{name:"Tobyhanna Army Depot, PA",state:"Pennsylvania",zip:"18466",mha:"PA254"},{name:"Travis AFB, CA",state:"California",zip:"94535",mha:"CA036"},{name:"Twentynine Palms (MCAGCC), CA",state:"California",zip:"92278",mha:"CA032"},{name:"Tyndall AFB, FL",state:"Florida",zip:"32403",mha:"FL063"},{name:"USAF Academy, CO",state:"Colorado",zip:"80840",mha:"CO046"},{name:"USAG Alaska Greely, AK",state:"Alaska",zip:"99731",mha:"AK405"},{name:"USAG Alaska Wainwright, AK",state:"Alaska",zip:"99703",mha:"AK405"},{name:"USAG Ansbach, Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Bavaria (Grafenwöhr), Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG BENELUX Brunssum, Netherlands",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG BENELUX-Brussels, Belgium",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG BENELUX-SHAPE/Chievres, Belgium",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Daegu, South Korea",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Hawaii (Schofield/Shafter), HI",state:"Hawaii",zip:"96857",mha:"HI408"},{name:"USAG Humphreys, South Korea",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Italy (Vicenza), Italy",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Japan (Camp Zama), Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Miami, FL",state:"Florida",zip:"33172",mha:"FL061"},{name:"USAG Poland",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Rheinland-Pfalz (Kaiserslautern), Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Stuttgart, Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Wiesbaden, Germany",state:"Overseas (no US state)",zip:null,mha:null},{name:"USAG Yongsan-Casey, South Korea",state:"Overseas (no US state)",zip:null,mha:null},{name:"Vance AFB, OK",state:"Oklahoma",zip:"73705",mha:"OK236"},{name:"Vandenberg SFB, CA",state:"California",zip:"93437",mha:"CA026"},{name:"West Point (USMA), NY",state:"New York",zip:"10996",mha:"NY217"},{name:"Westover ARB, MA",state:"Massachusetts",zip:"01022",mha:"MA126"},{name:"White Sands Missile Range, NM",state:"New Mexico",zip:"88002",mha:"NM209"},{name:"Whiteman AFB, MO",state:"Missouri",zip:"65305",mha:"MO162"},{name:"Wright-Patterson AFB, OH",state:"Ohio",zip:"45433",mha:"OH231"},{name:"Yokota AB, Japan",state:"Overseas (no US state)",zip:null,mha:null},{name:"Yuma Proving Ground, AZ",state:"Arizona",zip:"85365",mha:"AZ016"}],y=g.map(e=>e.name),f=new Map(g.map(e=>[e.name,e]));var b=e.i(67275);let x=Object.fromEntries(h.default.grades.map((e,t)=>[e,t]));function w(e,t){return t>=1?2*e:e/(1-t)}function v(e){let t=d.default.tax.incomeTaxBands2425,a=0;for(let n of t){if(e<=0)break;let t=Math.min(e-n.min,n.max-n.min);if(e>n.min&&(a+=Math.max(0,t)*n.rate),e<n.max)break}let n=d.default.tax.nationalInsurance.employee,i=0;e>n.threshold&&(i+=Math.max(0,Math.min(e,n.rate1Max)-n.threshold)*n.rate1,e>n.rate1Max&&(i+=(e-n.rate1Max)*n.rate2));let r=a+i;return{netAnnual:e-r,effectiveRate:e>0?r/e:0}}function _(e,t){return Math.max(0,e-t)}let k=new Set(["E-1","E-2","E-3","E-4"]);function S(e,t){var a;let n,i,r,s,o,l,c,d,u,{rank:g,yos:y,dependents:v,stateOfLegalResidence:S,dutyStation:A,postServiceColTier:N,tspPercent:C}=e,j=v>0,E=g.startsWith("O")||g.startsWith("W"),M=function(e,t){let a=b.default.payTable;if(!a[e])return 0;let n=b.default.yosBreakpoints,i=0;for(let e=n.length-1;e>=0;e--)if(t>=n[e]){i=e;break}
1return a[e][i]??a[e][0]??0}(g,y),T=f.get(A),{t:O,r:R}=function(e,t){let a=m.default.federalTax,n=m.default.stateTaxRates[t]??.05,i=Math.max(0,e-a.standardDeductionSingle),r=0;for(let e of a.brackets2025){if(i<=0)break;let t=Math.min(i,e.max-e.min);r+=t*e.rate,i-=t}let s=e>0?(r+e*n)/e:0;return{t:s,r:Math.min(s+.0765,.65)}}(12*M,S||"Unknown duty station"),L=k.has(g)&&!j,I=(n=j?"w":"wo",i=h.default.rates,r=h.default.nationalMedian,s=x[g]??x["E-5"],(o=T?.mha?i[T.mha]:void 0)?{monthly:o[n][s],basis:"station"}:{monthly:r[n][s],basis:T?"oha":"unknown"}),P=L?0:I.monthly,F="oha"===I.basis?" Note: this posting draws Overseas Housing Allowance, which DoD sets from your actual rent and does not publish as a rate table â the figure shown is the national median BAH as a placeholder, not your entitlement.":"unknown"===I.basis?""===A?" Note: no duty station selected, so this is the median BAH across every military housing area rather than your local rate. Choose your station for the real figure.":" Note: we don't recognise this duty station, so this is the national median BAH rather than a local rate.":"",D=E?m.default.bas.officer:m.default.bas.enlisted,B=(j?m.default.tricare.civilianFamilyMonthly:m.default.tricare.civilianSingleMonthly)+m.default.tricare.dentalVisionAddMonthly,H=j?1400:600,$=Math.min(C/100,1),U=m.default.tsp.brsMatch.governmentAutoContrib,G=M*(Math.min($,.03)+.5*Math.max(0,Math.min($-.03,.02))),W=M*U,K=.04*M,z=1===N?.85:3===N?1.15:1,V=y>=20,J=V?.02*M*y:0,q=(a=P+D,O>=1?a:O*a/(1-O)),{netTA:Y}=(d=((c=Math.min(.062*(l=(P+D)*12),.062*Math.max(0,168600-12*M)))+.0145*l)/.9235,u=66-y-(E?23:19),{grossTA:d/12,netTA:Math.max(0,d-c*Math.pow(1+(E?.019:.025),Math.max(0,u))/Math.pow(1+(E?.1:.125),Math.max(0,u)))/12}),X=m.default.otherPerks.monthlyEstimate,Z=function(e,t,a,n){let i=p.default.yosBreakpoints,r=0;for(let e=i.length-1;e>=0;e--)if(t>=i[e]){r=e;break}let s=p.default.locationIndices,o=(n?.mha?s[n.mha]:void 0)??0,l="number"==typeof o&&Number.isFinite(o)?o:0;if(0===l)return 0;let c=a?p.default.withDependents:p.default.withoutDependents;return(c[e]?.[r]??0)*l}(g,y,j,T),Q=_(B,H),ee=G+W+J,et=_(ee,K),ea=[{id:"basePay",category:"cash",label:"Base Pay",militaryValue:M,civilianEquivalent:M*z,employerCovers:M*z,youPay:0,tooltip:`Monthly base pay for ${g} with ${y} years of service per DoD 2026 pay tables. Civilian equivalent is adjusted for your post-service cost-of-living target (${1===N?"Low CoL":3===N?"High CoL":"Medium CoL"}, \xd7${z.toFixed(2)}).`,isShock:!1,callout:1!==z?`CoL multiplier: \xd7${z.toFixed(2)} for post-service target city`:null},{id:"housing",category:"cash",label:L?"Housing (Barracks)":"Housing (BAH)",militaryValue:L?1200:P,civilianEquivalent:L?1200*z:w(P,R)*z,employerCovers:0,youPay:0,isHiddenCost:!1,tooltip:L?`As ${g}, DoD requires you to live in barracks â no BAH cash. The room is worth roughly $1,200/mo; a civilian renting the same would need to earn that from salary. BAH kicks in when you have dependents, reach E-5, or get a waiver.`:`BAH is tax-free â no income tax, no FICA. To net the same housing value, a civilian must earn $${(w(P,R)*z).toFixed(0)}/mo before tax (${(100*R).toFixed(0)}% combined rate, \xd7${z.toFixed(2)} CoL). That gap is built into your break-even number.${F}`,isShock:!1,callout:L?"No cash BAH â housing provided in barracks":1!==z?`CoL multiplier: \xd7${z.toFixed(2)} applied to housing`:null},{id:"food",category:"cash",label:"Food (BAS)",militaryValue:D,civilianEquivalent:w(D,R),employerCovers:0,youPay:0,isHiddenCost:!1,tooltip:`BAS is tax-free. To cover the same food costs from a civilian salary, you'd need to earn $${w(D,R).toFixed(0)}/mo pre-tax â because a civilian pays tax on every dollar before spending it.`,isShock:!1,callout:null},...Z>0?[{id:"cola",category:"cash",label:"CONUS COLA",militaryValue:Z,civilianEquivalent:w(Z,R),employerCovers:0,youPay:0,tooltip:`CONUS Cost of Living Allowance: $${Z.toFixed(0)}/mo tax-free supplement for high-cost duty stations (DoD 2026 tables).`,isShock:!1,callout:Z>200?"High-cost location bonus":null}]:[],{id:"taxAdvantage",category:"lost",label:"Tax Advantage on Allowances",militaryValue:q+Y,civilianEquivalent:q+Y,employerCovers:0,youPay:0,tooltip:`BAH and BAS are exempt from income tax and FICA â a civ
1ilian earning the same total pays tax on all of it. That's an extra $${(q+Y).toFixed(0)}/mo in gross pay you'd need just to break even. It disappears the day you leave.`,isShock:!1,callout:null},{id:"otherPerks",category:"lost",label:"Commissary, MWR & Other Perks",militaryValue:X,civilianEquivalent:w(X,O),employerCovers:0,youPay:0,tooltip:`Commissary/PX savings (~30% off groceries â $${m.default.commissary.monthlyEquivalent}/mo), Space-A travel, on-base legal, MWR recreation, SGLI life insurance, and 30 days paid leave. None of this has a civilian equivalent. It's just gone.`,isShock:!1,callout:null},{id:"healthcare",category:"replaceable",label:"Healthcare (TRICARE)",militaryValue:B,civilianEquivalent:B,employerCovers:H,youPay:Q,isHiddenCost:!0,tooltip:`TRICARE Prime: $0 premiums, copays, or deductibles. DoD covers ~$${B.toLocaleString()}/mo for ${j?"a family":"a single member"}. As a civilian, your employer typically covers ~$${H}/mo â you pay the remaining ~$${Q}/mo from your salary.`,isShock:!1,callout:null},{id:"retirement",category:"replaceable",label:`Retirement / TSP${V?" + Pension":""}`,militaryValue:ee,civilianEquivalent:ee,employerCovers:K,youPay:et,isHiddenCost:!0,tooltip:V?`BRS pension: ${2*y}% of base pay = $${J.toFixed(0)}/mo for life from age 60. Gov TSP auto-contributes 1% and matches up to 4% more (max 5% total). Combined military retirement value: $${ee.toFixed(0)}/mo. A typical civilian employer matches ~4% on a 401k ($${K.toFixed(0)}/mo) â you'd need to self-fund the remaining $${et.toFixed(0)}/mo gap.`:`At ${y} years you have no pension â the 20-year cliff hasn't landed yet. Gov auto-contributes 1% and matches TSP contributions (${C>=5?"up to 5%":`you're putting in ${C}%`}). Total gov retirement value: $${ee.toFixed(0)}/mo. A typical civilian employer matches ~4% on a 401k ($${K.toFixed(0)}/mo) â you'd need to self-fund the $${et.toFixed(0)}/mo gap.`,isShock:!1,callout:null}],en=0,ei=-1;ea.forEach((e,t)=>{"basePay"!==e.id&&e.youPay>en&&(en=e.youPay,ei=t)}),ei>=0&&(ea[ei]={...ea[ei],isShock:!0});let er=ea.filter(e=>"replaceable"!==e.category).reduce((e,t)=>e+t.militaryValue,0),es=er+ea.reduce((e,t)=>e+t.youPay,0);return{rows:ea,postServiceBenefits:[],totalMilitaryMonthly:er,totalCivilianMonthly:es,annualCivilianEquivalent:12*es,currency:"USD",dataYear:"2026",soldierTaxMonthly:12*M*(O+.0765)/12}}function A(e,t){let{branch:a,rank:n,payLevel:i,supplement:r,dependents:s,location:o,pensionScheme:l,accommodationType:c,includeChildcare:h,childrenEligible:m}=e,p=s>0,g="sfa"===c||"sla"===c,y=function(e,t,a,n){let i=u.default.rankMap[e];if(!i)return 0;let r=i[t];if(!r)return 0;let s=u.default.payScales[r];if(!s||0===s.length)return 0;let o=s.find(e=>e.level===a)??s[s.length-1];return o[`supp${Math.max(1,Math.min(4,n))}`]??o.supp1??0}(a,n,i,r),f=y/12,{effectiveRate:b}=v(y),x="sfa"===c?"London"===o?d.default.housing.sfaMonthlySubsidised.london:d.default.housing.sfaMonthlySubsidised.outsideLondon:0,w=120*("sla"===c),_=x||w,k="London"===o?d.default.housing.marketRentMonthly.london:d.default.housing.marketRentMonthly.outsideLondon,S="sla"===c?Math.round(.6*k):k,A=g?S-_:0,N=g?"sfa"===c?35:120:0,C=g?N/(1-b):0,j=p?230:120,E=p?150:100,M=Math.max(0,j-E),T={afps15:.265,afps05:.265,afps75:.35}[l.toLowerCase().replace(" ","")]??.265,O=t.includePension?f*T:0,R=t.includePension?.08*f:0,L=Math.max(0,O-R),I=h?283*m:0,P=h?I/(1-b):0,F=150*!!g,D=g?F/(1-b):0,B=[{id:"basePay",category:"cash",label:"Basic Pay",militaryValue:f,civilianEquivalent:f,employerCovers:f,youPay:0,tooltip:`Annual basic pay for ${n} (level ${i}, Supplement ${r}) in ${a}: \xa3${y.toLocaleString()}/yr per AFPRB FY2025-26. X-Factor (14.5%) is already consolidated into these published figures â it's not a separate line item.`,isShock:!1,callout:null},{id:"housing",category:"cash",label:"sfa"===c?"Housing (SFA vs Market Rent)":"sla"===c?"Housing (SLA vs Private Rental)":"Housing",militaryValue:A,civilianEquivalent:g?S:0,employerCovers:0,youPay:0,isHiddenCost:g,tooltip:g?"sfa"===c?`SFA at ${o}: you pay ~\xa3${x}/mo vs market rent of ~\xa3${k}/mo. That's a \xa3${A.toFixed(0)}/mo saving â real money, just not on your payslip.`:`SLA: you pay ~\xa3${w}/mo vs private rental of ~\xa3${S}/mo. That's a \xa3${A.toFixed(0)}/mo saving.`:"You're renting privately â no MOD housing subsidy included.",isShock:!1,callout:null},...g?[{id:"utilities",category:"lost",label:"sfa"===c?"Utilities (Water)":"Utilities (Gas, Electric, Water)",militaryValue:N,civilianEquivalent:C,employerCovers:0,youPay:0,tooltip:"sfa"===c?`SFA includes water rates only â gas and electric are your responsibility. A civilian pays ~\xa3${N}/mo for water. To cover that from after-tax income, you'd need ~\xa3${Math.round(C)}/mo pre-tax.`:`SLA includes gas, electric, and water in your accommodation charge. A civilian pays ~\xa3${N}/mo for these. To cover that from after-tax income, you'd need ~\xa3${Math.round(C)}/mo pre-tax.`,isShock:!1,callout:"Gone when you leave quarters",isHiddenCost:!0}]:[],...h&&m>0?[{id:"childcare",category:"lost",label:`Wraparound Childcare (${m} child${m>1?"ren":""})`,militaryValue:I,civilianEquivalent:P,employerCovers:0,youPay:0,tooltip:`MOD Wraparound Childcare covers up to \xa33,400/child/year (~\xa3283/mo) for before & after school
1care (ages 4â11, 20hrs/week term-time). ${m} eligible child${m>1?"ren":""} = \xa3${I}/mo. A civilian must earn ~\xa3${Math.round(P)}/mo pre-tax to replace this.`,isShock:!1,callout:"Disappears when you leave",isHiddenCost:!1}]:[],...g?[{id:"taxAdvantage",category:"lost",label:"Council Tax Relief",militaryValue:F,civilianEquivalent:D,employerCovers:0,youPay:0,tooltip:`${"sfa"===c?"SFA":"SLA"} residents pay no council tax â MOD covers it through the CILOCT scheme (avg Band D rate \xa32,171/yr in 2024/25). We use \xa3150/mo as a conservative estimate. A civilian must earn \xa3${D.toFixed(0)}/mo pre-tax to cover this.`,isShock:!1,callout:"Disappears when you leave"}]:[],{id:"otherPerks",category:"lost",label:"Subsidised Meals & Sports",militaryValue:140,civilianEquivalent:140/(1-b),employerCovers:50,youPay:0,tooltip:"Subsidised meals through PAYD (~£100/mo cheaper than civilian eating) and free access to forces sports facilities (~£40/mo). Military also gets 38 days leave vs 28 civilian standard â worth noting, not monetised here.",isShock:!1,callout:null},{id:"healthcare",category:"replaceable",label:"Healthcare (MOD vs Private PMI)",militaryValue:j,civilianEquivalent:j,employerCovers:E,youPay:M,isHiddenCost:!0,tooltip:`MOD provides full medical, dental and occupational health â fast specialist access, no queue. Civilian equivalent PMI (BUPA/AXA): ${p?"family":"individual"} cover runs ~\xa3${j}/mo. Most employers contribute ~\xa3${E}/mo; you'd cover the \xa3${M}/mo shortfall yourself.`,isShock:!1,callout:null},{id:"pension",category:"replaceable",label:`Pension gap (${l} vs civilian)`,militaryValue:O,civilianEquivalent:O,employerCovers:R,youPay:L,isHiddenCost:!0,tooltip:`MOD contributes ~${(100*T).toFixed(0)}% of basic pay under ${l} (\xa3${O.toFixed(0)}/mo). A typical civilian employer puts in ~8% via DC auto-enrolment (\xa3${R.toFixed(0)}/mo). The gap you'd need to self-fund is \xa3${L.toFixed(0)}/mo â usually the single biggest financial hit when you leave.`,isShock:!1,callout:null}],H=0,$=-1;B.forEach((e,t)=>{"basePay"!==e.id&&e.youPay>H&&(H=e.youPay,$=t)}),$>=0&&(B[$]={...B[$],isShock:!0});let U=B.filter(e=>"replaceable"!==e.category).reduce((e,t)=>e+t.militaryValue,0),G=U+B.reduce((e,t)=>e+t.youPay,0),{netAnnual:W}=v(y);return{rows:B,postServiceBenefits:[],totalMilitaryMonthly:U,totalCivilianMonthly:G,annualCivilianEquivalent:12*G,currency:"GBP",dataYear:"FY2025",soldierTaxMonthly:(y-W)/12}}var N=e.i(71645);let C=(0,N.createContext)(e=>e),j=({t:e,children:t})=>(0,a.jsx)(C.Provider,{value:e,children:t}),E=({copy:e,children:t})=>(0,a.jsx)(j,{t:(t,a)=>{let n=e[t]??t;return a?n.replace(/\{\{(\w+)\}\}/g,(e,t)=>void 0!==a[t]?String(a[t]):`{{${t}}}`):n},children:t}),M=(e,t)=>({t:(0,N.useContext)(C)});var T=e.i(56420);let O=(0,T.default)("calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]);var R=e.i(11234);let L=({country:e})=>{let{t}=M("components",{keyPrefix:"compComparator"}),n=t("US"===e?"usDataSources":"ukDataSources").split("\n"),s=t("US"===e?"usAssumptions":"ukAssumptions"),o=(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(i.Body14,{className:"mb-1 font-semibold text-gray-800",children:t("disclaimerHeading")}),(0,a.jsx)(i.Body14,{className:"text-gray-600",children:t("disclaimerBody")})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.Body14,{className:"mb-1 font-semibold text-gray-800",children:t("dataSourcesHeading")}),(0,a.jsx)("ul",{className:"list-inside list-disc space-y-1",children:n.map(e=>(0,a.jsx)("li",{className:"text-sm text-gray-600",children:e},e))})]}),(0,a.jsx)("div",{className:"rounded-lg border border-gray-200 bg-gray-50 p-3",children:(0,a.jsxs)(i.Body12,{className:"text-gray-600",children:[(0,a.jsxs)("span",{className:"font-semibold text-gray-800",children:[t("keyAssumptionsLabel")," "]}),s]})})]});return(0,a.jsx)(r.CompactAccordion,{items:[{title:t("disclaimerTitle"),content:o}]})},I=(0,T.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),P=(0,T.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]]),F=(0,T.default)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]),D=(0,e.i(25913).cva)("inline-block shrink-0 animate-spin rounded-full border-gray-200 border-t-blue-600",{variants:{size:{16:"size-4 border-2",24:"size-6 border-2",32:"size-8 border-[3px]",48:"size-12 border-4",64:"size-16 border-4"}},defaultVariants:{size:24}}),B=({size:e=24,label:t,className:n})=>{let i=(0,a.jsx)("span",{"aria-hidden":"true",className:(0,s.cn)(D({size:e}),!t&&n)});return t?(0,a.jsxs)("span",{role:"status",className:(0,s.cn)("inline-flex",n),children:[i,(0,a.jsx)("span",{className:"sr-only",children:t})]}):i},H=(e,t)=>`${"GBP"===t?"£":"$"}
1${Math.round(e).toLocaleString()}`,$=({coverRef:e,result:t,metaLine:n,labels:i})=>{let{annualCivilianEquivalent:r,totalMilitaryMonthly:s,totalCivilianMonthly:o,currency:l}=t;return(0,a.jsxs)("div",{ref:e,style:{position:"fixed",top:"-9999px",left:"-9999px",width:"794px",height:"1123px",display:"flex",flexDirection:"column",justifyContent:"space-between",padding:"60px 64px 48px",background:"#ffffff",fontFamily:"Arial, sans-serif",boxSizing:"border-box",color:"#111827"},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("img",{src:"/assets/logos/logo_primary_blue.png",alt:"Redeployable",crossOrigin:"anonymous",style:{height:"28px",display:"block"}}),(0,a.jsx)("p",{style:{color:"#6b7280",fontSize:"14px",margin:"10px 0 0"},children:i.reportTitle})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{style:{color:"#6b7280",fontSize:"18px",margin:"0 0 16px"},children:i.headline}),(0,a.jsx)("p",{style:{color:"#111827",fontSize:"80px",fontWeight:800,lineHeight:1,margin:"0 0 36px",letterSpacing:"-2px"},children:i.perYear}),(0,a.jsx)("p",{style:{color:"#6b7280",fontSize:"17px",margin:"0 0 48px"},children:i.sub}),(0,a.jsx)("div",{style:{display:"flex",gap:"48px"},children:[{label:i.totalPackage,value:`${H(s,l)}/mo`},{label:i.needToEarn,value:`${H(o,l)}/mo`}].map(({label:e,value:t})=>(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{style:{color:"#9ca3af",fontSize:"12px",margin:"0 0 6px",textTransform:"uppercase",letterSpacing:"0.08em"},children:e}),(0,a.jsx)("p",{style:{color:"#111827",fontSize:"26px",fontWeight:700,margin:0},children:t})]},e))}),(0,a.jsxs)("p",{style:{color:"#d1d5db",fontSize:"11px",margin:"32px 0 0"},children:[H(r,l),"/yr"]})]}),(0,a.jsx)("div",{style:{color:"#9ca3af",fontSize:"12px",borderTop:"1px solid #e5e7eb",paddingTop:"16px"},children:n})]})},U=({result:t,branch:n,rank:r,yos:s})=>{let{t:o}=M("components",{keyPrefix:"compComparator"}),l=(0,N.useRef)(null),[c,d]=(0,N.useState)("idle"),u="generating"===c,{currency:h}=t,m="USD"===h,p=[r,n,void 0!==s?o("yosShort",{count:s}):null].filter(Boolean).join(" · "),g={reportTitle:o("reportCoverTitle"),headline:o("reportCoverHeadline"),perYear:`${H(t.annualCivilianEquivalent,h)}/yr`,sub:o("reportCoverSub"),totalPackage:o("totalMilitaryPackage"),needToEarn:o("whatYoullNeedToEarn")},y=async()=>{if(!u){d("generating");try{let[{jsPDF:a},{default:n}]=await Promise.all([e.A(34162),e.A(48503)]),i=new a({orientation:"portrait",unit:"mm",format:"a4"});if(l.current){let e=await n(l.current,{scale:2,useCORS:!0,backgroundColor:null,logging:!1});i.addImage(e.toDataURL("image/jpeg",.92),"JPEG",0,0,210,297)}let r=document.getElementById("comp-results-pdf");if(r){let e=document.createElement("div");e.style.cssText="position: fixed; top: -99999px; left: -99999px; width: 900px; background: #ffffff; padding: 24px; box-sizing: border-box;",e.appendChild(r.cloneNode(!0)),document.body.appendChild(e),await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e())));let t=await n(e,{scale:2,useCORS:!0,backgroundColor:"#ffffff",logging:!1,windowWidth:948});document.body.removeChild(e);let a=t.toDataURL("image/jpeg",.9),s=186/(t.width/2),o=t.height/2*s;if(o<=273)i.addPage(),i.addImage(a,"JPEG",12,12,186,o);else{let e=Math.round(273*(t.width/2/186)*2),a=0;for(;a<t.height;){i.addPage();let n=Math.min(e,t.height-a),r=document.createElement("canvas");r.width=t.width,r.height=n;let o=r.getContext("2d");o&&(o.fillStyle="#ffffff",o.fillRect(0,0,r.width,r.height),o.drawImage(t,0,a,t.width,n,0,0,t.width,n)),i.addImage(r.toDataURL("image/jpeg",.9),"JPEG",12,12,186,n/2*s),a+=e}}}i.addPage(),i.setFillColor(255,255,255),i.rect(0,0,210,297,"F");let s=18,c=(e,t,a,n,r)=>{let s=i.splitTextToSize(e,n);return i.text(s,t,a),a+s.length*r},u=(e,t)=>(i.setFontSize(9),i.setFont("helvetica","bold"),i.setTextColor(37,99,235),i.text(e.toUpperCase(),12,t),i.setDrawColor(229,231,235),i.line(12,t+5,198,t+5),t+9);for(let e of(i.setFontSize(16),i.setFont("helvetica","bold"),i.setTextColor(17,24,39),s=c(o("reportAssumptionsTitle"),12,s,186,7)+4,s=u(o("disclaimerHeading"),s),i.setFontSize(9),i.setFont("helvetica","normal"),i.setTextColor(55,65,81),s=c(o("disclaimerBody"),12,s,186,5)+6,s=u(o("dataSourcesHeading"),s),i.setFontSize(9),i.setFont("helvetica","normal"),i.setTextColor(55,65,81),o(m?"usDataSources":"ukDataSources").split("\n")))i.text("â¢",12,s),s=c(e,16,s,182,5)+1;s+=4,s=u(o("keyAssumptionsLabel"),s),i.setFontSize(9),i.setFont("helvetica","normal"),i.setTextColor(55,65,81),s=c(m?o("usAssumptions"):o("ukAssumptions"),12,s,186,5),i.setFontSize(8),i.setFont("helvetica","italic"),i.setTextColor(156,163,175),i.text(o("footerNote",{dataYear:t.dataYear}),12,285),i.save("military-compensation-report.pdf"),d("success")}catch(e){console.error("PDF generation failed:",e),d("error")}}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)($,{coverRef:l,result:t,metaLine
1:p,labels:g}),(0,a.jsxs)("div",{className:"space-y-4 rounded-xl border border-gray-200 bg-white p-6 shadow-sm",children:[(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-blue-50",children:(0,a.jsx)(F,{className:"h-5 w-5 text-blue-600","aria-hidden":"true"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.Sub16,{as:"h3",className:"text-gray-800",children:o("reportCardTitle")}),(0,a.jsx)(i.Body14,{className:"mt-0.5 text-gray-600",children:o("reportCardDescription")})]})]}),"success"===c?(0,a.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-emerald-200 bg-emerald-50 p-4",children:[(0,a.jsx)(P,{className:"h-5 w-5 shrink-0 text-emerald-600","aria-hidden":"true"}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.Body14,{className:"font-semibold text-gray-800",children:o("reportSuccessTitle")}),(0,a.jsx)(i.Body14,{className:"mt-0.5 text-xs text-gray-500",children:o("reportSuccessHint")})]})]}):(0,a.jsx)(R.Button,{color:"blue",size:40,onClick:y,disabled:u,children:u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(B,{size:16}),o("reportGenerating")]}):o("reportButton")}),"error"===c&&(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-rose-600",children:[(0,a.jsx)(I,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),o("reportError")]})]})]})};var G=e.i(16327);function W(e,t=1200){let[a,n]=(0,N.useState)(0),i=(0,N.useRef)(null);return(0,N.useEffect)(()=>{if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return void n(e);let a=null,r=s=>{a||(a=s);let o=Math.min((s-a)/t,1);n(Math.round((1-Math.pow(1-o,3))*e)),o<1&&(i.current=requestAnimationFrame(r))};return i.current=requestAnimationFrame(r),()=>{i.current&&cancelAnimationFrame(i.current)}},[e,t]),a}let K=(e,t)=>`${"GBP"===t?"£":"$"}${Math.round(Math.abs(e)).toLocaleString()}`,z={"tax-free":"bg-blue-50 text-blue-700",hidden:"bg-rose-50 text-rose-700",gone:"bg-amber-50 text-amber-700"},V=({type:e,label:t})=>(0,a.jsx)("span",{className:(0,s.cn)("inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-semibold leading-none",z[e]),children:t}),J=({label:e,value:t,valueClassName:n,tag:r,tooltip:o,dimValue:l,expandLabel:c})=>{let[d,u]=(0,N.useState)(!1);return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3 px-4 py-3",children:[(0,a.jsx)("div",{className:"min-w-0 flex-1",children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(i.Body14,{as:"span",className:"font-medium text-gray-800",children:e}),r&&(0,a.jsx)(V,{type:r.type,label:r.label})]})}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,a.jsx)(i.Body14,{as:"span",className:(0,s.cn)("whitespace-nowrap font-semibold tabular-nums",l?"text-gray-400":"text-gray-800",n),children:t}),o?(0,a.jsx)("button",{type:"button",onClick:()=>u(e=>!e),"aria-expanded":d,"aria-label":c,className:"rounded p-0.5 text-gray-400 outline-none transition-colors hover:text-gray-700 focus-visible:ring",children:(0,a.jsx)(G.ChevronDown,{className:(0,s.cn)("h-3.5 w-3.5 transition-transform duration-200",d&&"rotate-180")})}):(0,a.jsx)("span",{className:"block h-5 w-5 shrink-0"})]})]}),d&&o&&(0,a.jsx)("div",{className:"-mt-1 px-4 pb-3",children:(0,a.jsx)(i.Body12,{as:"p",className:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 leading-relaxed text-gray-600",children:o})})]})},q=({children:e})=>(0,a.jsx)("div",{className:"px-4 pb-1.5 pt-3",children:(0,a.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-widest text-gray-500",children:e})}),Y=()=>(0,a.jsx)("div",{className:"mx-4 border-t border-gray-200"}),X=({result:e,country:t,branch:n,rank:r,yos:s})=>{let{t:o}=M("components",{keyPrefix:"compComparator"}),{rows:l,totalMilitaryMonthly:c,totalCivilianMonthly:d,currency:u,soldierTaxMonthly:h}=e,m="GBP"===u?"£":"$",p=l.filter(e=>"cash"===e.category),g=l.filter(e=>"lost"===e.category),y=l.filter(e=>"replaceable"===e.category),f=Math.round(c),b=Math.round(d),x=Math.round(h??0),w=Math.round(p.reduce((e,t)=>
1e+t.militaryValue,0)-(h??0)),v=W(f,900),_=W(b,1100),k="UK"===t?o("incomeTaxNi"):o("incomeTaxFica"),S=e=>{let t=["housing","food","bah","bas","sfa","bas_equivalent","cola","czte"].includes(e.id)?"tax-free":["healthcare","tricare","nhs_dental"].includes(e.id)?"hidden":["commissary","mwr","perks","otherPerks","x_factor"].includes(e.id)?"gone":e.isHiddenCost?"hidden":void 0;return t?{type:t,label:o(`tag_${t}`)}:void 0},A=[r,n,void 0!==s?o("yosShort",{count:s}):null].filter(Boolean).join(" · ");return(0,a.jsxs)("div",{id:"comp-results-pdf",className:"space-y-5",children:[(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,a.jsxs)("div",{className:"rounded-xl border border-gray-200 bg-white p-5 shadow-sm",children:[(0,a.jsx)("p",{className:"mb-3 text-[10px] font-bold uppercase tracking-widest text-gray-500",children:o("totalMilitaryPackage")}),(0,a.jsxs)("p",{className:"text-4xl font-extrabold leading-none tabular-nums text-gray-800",children:[m,v.toLocaleString(),(0,a.jsx)("span",{className:"ml-1.5 text-base font-semibold text-gray-500",children:o("perMonth")})]}),(0,a.jsx)(i.Body14,{as:"p",className:"mt-1.5 font-semibold text-gray-500",children:o("perYearGrossPackage",{amount:`${m}${Math.round(12*f).toLocaleString()}`})}),"US"===t&&A&&(0,a.jsx)("p",{className:"mt-2 border-t border-gray-200 pt-2 text-[10px] text-gray-400",children:A})]}),(0,a.jsxs)("div",{className:"rounded-xl bg-gray-900 p-5 shadow-sm",children:[(0,a.jsx)("p",{className:"mb-3 text-[10px] font-bold uppercase tracking-widest text-gray-400",children:o("whatYoullNeedToEarn")}),(0,a.jsxs)("p",{className:"text-4xl font-extrabold leading-none tabular-nums text-white",children:[m,_.toLocaleString(),(0,a.jsx)("span",{className:"ml-1.5 text-base font-semibold text-gray-400",children:o("perMonth")})]}),(0,a.jsx)(i.Body14,{as:"p",className:"mt-1.5 font-semibold text-gray-300",children:o("perYearGrossSalary",{amount:`${m}${Math.round(12*b).toLocaleString()}`})})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,a.jsxs)("div",{className:"overflow-hidden rounded-xl border border-gray-200 bg-white shadow-sm",children:[(0,a.jsx)("div",{className:"border-b border-gray-200 bg-gray-50 px-4 py-3",children:(0,a.jsx)("p",{className:"text-[11px] font-bold uppercase tracking-widest text-gray-700",children:o("yourMilitaryPackage")})}),(0,a.jsxs)("div",{className:"divide-y divide-gray-200",children:[(0,a.jsx)(q,{children:o("cashPay")}),p.map(e=>(0,a.jsx)(J,{label:e.label,value:K(e.militaryValue,u),tag:S(e),tooltip:e.tooltip,expandLabel:o("toggleDetail",{label:e.label})},e.id)),(0,a.jsx)(J,{label:k,value:`â${K(x,u)}`,dimValue:!0,tooltip:"UK"===t?"Income Tax and National Insurance deducted from your basic pay each month. Allowances (X-Factor, SFA subsidy) are not subject to IT/NI â this deduction applies only to basic pay.":"Federal income tax, state income tax, and FICA (Social Security + Medicare) deducted from your base pay. Tax-free allowances (BAH, BAS) are not subject to this deduction.",expandLabel:o("toggleDetail",{label:k})}),(y.length>0||g.length>0)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(Y,{}),(0,a.jsx)(q,{children:o("benefitsIncluded")}),[...y,...g].map(e=>(0,a.jsx)(J,{label:e.label,value:K(e.militaryValue,u),tag:S(e),tooltip:e.tooltip,expandLabel:o("toggleDetail",{label:e.label})},e.id))]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between border-t-2 border-gray-200 bg-gray-50 px-4 py-3",children:[(0,a.jsx)(i.Body14,{className:"font-bold text-gray-800",children:o("netCashInHand")}),(0,a.jsxs)(i.Body14,{as:"span",className:"font-bold tabular-nums text-gray-800",children:[K(w,u),o("perMonth")]})]})]}),(0,a.jsxs)("div",{className:"overflow-hidden rounded-xl border border-gray-200 bg-white shadow-sm",children:[(0,a.jsx)("div",{className:"border-b border-gray-200 bg-blue-50 px-4 py-3",children:(0,a.jsx)("p",{className:"text-[11px] font-bold uppercase tracking-widest text-blue-700",children:o("civilianEquivalentNeeded")})}),(0,a.jsxs)("div",{className:"divide-y divide-gray-200",children:[(0,a.jsx)(q,{children:o("grossSalary")}),(0,a.jsx)(J,{label:o("basePay"),value:K(b,u),expandLabel:o("toggleDetail",{label:o("basePay")})}),(0,a.jsx)(J,{label:k,value:`â${K(x,u)}`,dimValue:!0,expandLabel:o("toggleDetail",{label:k})}),(0,a.jsx)(Y,{}),(0,a.jsx)(q,{children:o("youNowPayFor")}),y.filter(e=>e.youPay>0).map(e=>{let t="healthcare"===e.id||"tricare"===e.id?o("healthcareYourShare"):"retirement"===e.id||"tsp"===e.id?o("pensionTspGap"):e.label;return(0,a.jsx)(J,{label:t,value:`â${K(e.youPay,u)}`,valueClassName:"text-rose-600",tooltip:e.tooltip,expandLabel:o("toggleDetail",{label:t})},e.id)}),g.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(Y,{}
1),(0,a.jsx)(q,{children:o("youLoseEntirely")}),g.map(e=>(0,a.jsx)(J,{label:e.label,value:o("amountLost",{amount:K(e.militaryValue,u)}),valueClassName:"text-amber-700",tag:S(e),tooltip:e.tooltip,expandLabel:o("toggleDetail",{label:e.label})},e.id))]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between border-t-2 border-gray-200 bg-gray-50 px-4 py-3",children:[(0,a.jsx)(i.Body14,{className:"font-bold text-gray-800",children:o("netCashInHand")}),(0,a.jsxs)(i.Body14,{as:"span",className:"font-bold tabular-nums text-gray-800",children:[K(w,u),o("perMonth")]})]})]})]})]})},Z=({country:e,result:t,branch:n,rank:r,yos:s,onCalculate:o,calculateDisabled:l=!1,children:c})=>{let{t:d}=M("components",{keyPrefix:"compComparator"});return(0,a.jsxs)("div",{className:"space-y-8",children:[(0,a.jsxs)("section",{className:"rounded-xl border border-gray-200 bg-white p-6 shadow-sm",children:[(0,a.jsx)(i.Sub20,{as:"h2",className:"text-gray-800",children:d("formHeading")}),(0,a.jsx)(i.Body14,{className:"mb-5 mt-1 text-gray-500",children:d("formSubheading")}),c,(0,a.jsx)("div",{className:"mt-6 flex justify-center",children:(0,a.jsxs)(R.Button,{color:"blue",size:48,onClick:o,softDisabled:l,children:[(0,a.jsx)(O,{className:"h-5 w-5","aria-hidden":"true"}),d("showMeTheNumber")]})})]}),t&&(0,a.jsxs)("div",{id:"comp-results",className:"space-y-6",children:[(0,a.jsx)(X,{result:t,country:e,branch:n,rank:r,yos:s}),(0,a.jsx)(U,{result:t,branch:n,rank:r,yos:s}),(0,a.jsx)(L,{country:e}),(0,a.jsx)(i.Body14,{className:"pb-4 text-center text-xs text-gray-400",children:d("footerNote",{dataYear:t.dataYear})})]})]})},Q=["Army","Navy","Air Force","Marines","Coast Guard","Space Force"],ee=["E-1","E-2","E-3","E-4","E-5","E-6","E-7","E-8","E-9","W-1","W-2","W-3","W-4","W-5","O-1","O-2","O-3","O-4","O-5","O-6","O-7","O-8","O-9","O-10"],et=new Set(["Overseas (no US state)","Unknown duty station"]),ea=Object.keys(m.default.stateTaxRates).filter(e=>!et.has(e)).sort((e,t)=>e.localeCompare(t,"en")),en=["British Army","Royal Navy","Royal Air Force"],ei={"British Army":["Private","Lance Corporal","Corporal","Sergeant","Staff Sergeant","Warrant Officer Class 2","Warrant Officer Class 1","Second Lieutenant","Lieutenant","Captain","Major","Lieutenant Colonel","Colonel","Brigadier","Major General","Lieutenant General","General"],"Royal Navy":["Able Rate","Leading Rate","Petty Officer","Chief Petty Officer","Warrant Officer 1","Fleet Chief Petty Officer","Warrant Officer","Midshipman","Sub-Lieutenant","Lieutenant","Lieutenant Commander","Commander","Captain","Commodore","Rear Admiral","Vice Admiral","Admiral"],"Royal Air Force":["Aircraftman","Leading Aircraftman","Senior Aircraftman","Corporal","Sergeant","Flight Sergeant","Warrant Officer","Pilot Officer","Flying Officer","Flight Lieutenant","Squadron Leader","Wing Commander","Group Captain","Air Commodore","Air Vice Marshal","Air Marshal","Air Chief Marshal"]},er=["AFPS 15","AFPS 05","AFPS 75"],es=["London","Outside London"];function eo(e,t){let a=u.default.rankMap[e];return a?.[t]??null}function el(e,t){if(!e)return[];let a=u.default.payScales[e];if(!a)return[];let n=`supp${t}`;return a.map(e=>{let t=e[n],a=e.level.split("-").pop();return{value:e.level,label:`Level ${a} â \xa3${t.toLocaleString()}`,salary:t}})}let ec={branch:"Army",rank:"E-5",yos:6,dependents:0,stateOfLegalResidence:"",dutyStation:"",postServiceColTier:2,tspPercent:5},ed={branch:"British Army",rank:"Corporal",payLevel:"OR-3-2",supplement:1,yos:6,dependents:2,location:"Outside London",pensionScheme:"AFPS 15",accommodationType:"private",includeChildcare:!1,childrenEligible:0},eu={includePension:!0};var eh=e.i(61310),em=e.i(37930);e.s([],79652),e.i(79652);var ep=e.i(51437),eg=e.i(46376),ey=e.i(13203),ef=e.i(67865),eb=e.i(28918),ex=e.i(46265),ew=e.i(2077),ev=e.i(88940),e_=e.i(14935),ek=e.i(34346),eS=e.i(56789),eA=e.i(29315),eN=e.i(17989),eC=e.i(65858),ej=e.i(60891),eE=e.i(85689),eM=e.i(21082);function eT(e,t,a,n,i,r,s,o,l,c=2){let d=(0,eM.getGridNavigatedIndex)(a.current,{event:e,orientation:n,loopFocus:i,rtl:r,cols:c,disabledIndices:s,minIndex:o,maxIndex:l,prevIndex:t>l?o:t,stopEvent:!0});return(0,eM.isIndexOutOfListBounds)(a.current,d)?void 0:d}var eO=e.i(47554),eR=e.i(75606),eL=e.i(56434),eI=e.i(33332);let eP=N.createContext(void 0),eF=N.createContext(void 0),eD=N.createContext(void 0),eB=N.createContext(!1),eH=N.createContext("");function e$(){let e=N.useContext(eP);if(!e)throw Error((0,eI.default)(22));return e}function eU(){let e=N.useContext(eF);if(!e)throw Error((0,eI.default)(23));return e}function eG(){let e=N.useContext(eD);if(!e)throw Error((0,eI.default)(24));return e}function eW(){return N.useContext(eH)}var eK=e.i(84325),ez=e.i(42191);let eV=e=>e.id,eJ=e=>e.labelId,eq=e=>e.items,eY=e=>e.selectedValue,eX=e=>{let t=e.selectedValue;return Array.isArray(t)&&t.length>0},eZ=e=>{let{selectedValue:t,selectionMode:a}=e;return null!=t&&(!("multiple"===a&&Array.isArray(t))||t.length>0)},eQ=(e,t)=>!!t&&(0,ez.hasNullItemLabel)(e.items),e0=e=>e.open,e2=e=>e.mounted,e1=e=>e.forceMounted,e5=e=>e.inline,e3=e=>e.activeIndex,e4=e=>e.selectedIndex,e6=(e,t)=>e.activeIndex===t,e7=(e,t)=>{let a=e.isItemEqualToValue,n=e.selectedValue;return Array.isArray(n)?n.some(e=>(0,eK.compareItemEquality)(t,e,a)):(0,eK.compareItemEquality)(t,n,a)},e8=e=>e.transitionStatus,e9=e=>e.popupProps,te=e=>
1e.listProps,tt=e=>e.inputProps,ta=e=>e.triggerProps,tn=e=>e.itemProps,ti=e=>e.positionerElement,tr=e=>e.listElement,ts=e=>e.popupId,to=e=>e.triggerElement,tl=e=>e.inputElement,tc=e=>e.inputGroupElement,td=e=>e.popupSide,tu=e=>e.openMethod,th=e=>e.inputInsidePopup,tm=e=>e.inputOwnsFormValue,tp=e=>e.selectionMode,tg=e=>e.name,ty=e=>e.form,tf=e=>e.disabled,tb=e=>e.readOnly,tx=e=>e.required,tw=e=>e.grid,tv=e=>e.virtualized,t_=e=>e.itemToStringLabel,tk=e=>e.isItemEqualToValue,tS=e=>e.modal,tA=e=>e.autoHighlight;var tN=e.i(37584),tC=e.i(69690),tj=e.i(81104),tE=e.i(84708),tM=e.i(38489);function tT(e){return null==e?void 0:`${e}-popup`}function tO(e,t){return(a,n)=>null!=a&&e.contains(a,n,t)}function tR(e){return Array.isArray(e)?e.map(e=>tR(e)).join(","):null==e?"":String(e)}let tL=new Map;function tI(e={}){let t={usage:"search",sensitivity:"base",ignorePunctuation:!0,...e},a=`${tR(e.locale)}|${JSON.stringify(t)}`,n=tL.get(a);if(n)return n;let i=new Intl.Collator(e.locale,t),r={contains(e,t,a){if(!t)return!0;let n=(0,ez.stringifyAsLabel)(e,a);for(let e=0;e<=n.length-t.length;e+=1)if(0===i.compare(n.slice(e,e+t.length),t))return!0;return!1},startsWith(e,t,a){if(!t)return!0;let n=(0,ez.stringifyAsLabel)(e,a);return 0===i.compare(n.slice(0,t.length),t)},endsWith(e,t,a){if(!t)return!0;let n=(0,ez.stringifyAsLabel)(e,a),r=t.length;return n.length>=r&&0===i.compare(n.slice(n.length-r),t)}};return tL.set(a,r),r}var tP=e.i(23910),tF=e.i(32199),tD=e.i(96545),tB=e.i(6039),tH=e.i(64111),t$=e.i(76782),tU=e.i(43024);let tG=Symbol("none"),tW={value:tG,index:-1};var tK=e.i(72855);function tz(e){let t,{id:n,onOpenChangeComplete:i,defaultSelectedValue:r=null,selectedValue:s,onSelectedValueChange:o,defaultInputValue:l,inputValue:c,open:d,defaultOpen:u=!1,selectionMode:h,onItemHighlighted:m,name:p,form:g,disabled:y=!1,readOnly:f=!1,required:b=!1,inputRef:x,grid:w=!1,items:v,filteredItems:_,filter:k,openOnInputClick:S=!0,autoHighlight:A=!1,keepHighlight:C=!1,highlightItemOnHover:j=!0,loopFocus:E=!0,itemToStringLabel:M,itemToStringValue:T,isItemEqualToValue:O=eK.defaultItemEquality,virtualized:R=!1,inline:L=!1,fillInputOnItemPress:I=!0,modal:P=!1,limit:F=-1,autoComplete:D="list",formAutoComplete:B,locale:H,submitOnItemClick:$=!1}=e,{clearErrors:U}=(0,tE.useFormContext)(),{setDirty:G,validityData:W,setFilled:K,name:z,disabled:V,setTouched:J,setFocused:q,validationMode:Y,validation:X}=(0,tC.useFieldRootContext)(),Z=(0,tK.useDirection)(),Q=(0,tM.useLabelableId)({id:n}),ee=tI({locale:H}),[et,ea]=N.useState(!1),[en,ei]=N.useState(null),er=N.useRef([]),es=N.useRef([]),eo=N.useRef(null),el=N.useRef(null),ec=N.useRef(null),ed=N.useRef(null),eu=N.useRef(null),eh=N.useRef(!0),em=N.useRef(!1),eM=N.useRef(null),eI=N.useRef(null),e$=N.useRef(null),eU=N.useRef(tW),eG=N.useRef(null),eW=N.useRef([]),eV=N.useRef(null),eJ=V||y,eq=z??p,eY="multiple"===h,eX="single"===h,eZ=void 0!==c||void 0!==l,eQ=void 0!==v,e0=void 0!==_;t="always"===A?"always":!!A&&"input-change";let[e2,e1]=(0,ep.useControlled)({controlled:s,default:eY?r??eS.EMPTY_ARRAY:r,name:"Combobox",state:"selectedValue"}),e6=N.useMemo(()=>null===k?()=>!0:void 0!==k?k:tO(ee,M),[k,ee,M]),e7=(0,ev.useRefWithInit)(()=>
1eZ?l??"":eX?(0,ez.stringifyAsLabel)(e2,M):"").current,[e8,e9]=(0,ep.useControlled)({controlled:c,default:e7,name:"Combobox",state:"inputValue"}),[te,tt]=(0,ep.useControlled)({controlled:d,default:u,name:"Combobox",state:"open"}),ta=(0,ez.isGroupedItems)(v),tn=en??String(e8).trim(),ts=eX?(0,ez.stringifyAsLabel)(e2,M):"",td=eX&&!et&&""!==tn&&ts.length===tn.length&&ee.contains(ts,tn),tu=td?"":tn,tp=eQ&&e0&&td,tg=N.useMemo(()=>v?ta?v.flatMap(e=>e.items):v:eS.EMPTY_ARRAY,[v,ta]),ty=N.useMemo(()=>{if(_&&!tp)return _;if(!v)return eS.EMPTY_ARRAY;if(ta){let e=[],t=0;for(let a of v){if(F>-1&&t>=F)break;let n=F>-1?F-t:1/0,i=""===tu?a.items.slice(0,n):[];if(""!==tu)for(let e of a.items){if(i.length>=n)break;e6(e,tu,M)&&i.push(e)}if(i.length>0){let n={...a,items:i};e.push(n),t+=i.length}}return e}if(""===tu)return F>-1?tg.slice(0,F):tg;let e=[];for(let t of tg){if(F>-1&&e.length>=F)break;e6(t,tu,M)&&e.push(t)}return e},[_,tp,v,ta,tu,F,e6,M,tg]),tf=N.useMemo(()=>ta?ty.flatMap(e=>e.items):ty,[ty,ta]),tb=(0,ev.useRefWithInit)(()=>{let e=null;return L&&te&&eQ&&"none"!==h&&(e=(0,eK.findSelectionIndex)(tf,e2,O,eY)),new e_.Store({id:Q,labelId:void 0,selectedValue:e2,open:te,items:v,selectionMode:h,listRef:er,labelsRef:es,popupRef:eo,emptyRef:eu,inputRef:el,startDismissRef:ec,endDismissRef:ed,keyboardActiveRef:eh,chipsContainerRef:eM,clearRef:eI,valuesRef:eW,pointerDownItemRef:eV,selectionEventRef:e$,name:eq,form:g,disabled:eJ,readOnly:f,required:b,grid:w,virtualized:R,openOnInputClick:S,itemToStringLabel:M,isItemEqualToValue:O,modal:P,autoHighlight:t,submitOnItemClick:$,hasInputValue:eZ,mounted:!1,forceMounted:!1,transitionStatus:"idle",inline:L,activeIndex:null,selectedIndex:e,popupProps:{},listProps:{},inputProps:{},triggerProps:{},itemProps:eS.EMPTY_OBJECT,positionerElement:null,listElement:null,popupId:void 0,triggerElement:null,inputElement:null,inputGroupElement:null,popupSide:null,openMethod:null,inputInsidePopup:!0,inputOwnsFormValue:"none"===h,onOpenChangeComplete:eS.NOOP,setOpen:eS.NOOP,setInputValue:eS.NOOP,setSelectedValue:eS.NOOP,setIndices:eS.NOOP,handleSelection:eS.NOOP,forceMount:eS.NOOP,requestSubmit:eS.NOOP})}).current,tx="none"===h?e8:e2,tw=N.useMemo(()=>"none"===h?tx:Array.isArray(e2)?e2.map(e=>(0,ez.stringifyAsValue)(e,T)):(0,ez.stringifyAsValue)(e2,T),[tx,T,h,e2]),tv=(0,ef.useStableCallback)(m),t_=(0,ef.useStableCallback)(i),tk=(0,ek.useStore)(tb,e3),tS=(0,ek.useStore)(tb,e4),tA=(0,ek.useStore)(tb,ti),tT=(0,ek.useStore)(tb,tr),tR=(0,ek.useStore)(tb,to),tL=(0,ek.useStore)(tb,tl),tz=(0,ek.useStore)(tb,tc),tV=(0,ek.useStore)(tb,e5),tJ=(0,ek.useStore)(tb,th),tq=(0,ek.useStore)(tb,tm),tY=(0,ex.useValueAsRef)(tR),{mounted:tX,setMounted:tZ,transitionStatus:tQ}=(0,tP.useTransitionStatus)(te),{openMethod:t0,triggerProps:t2}=(0,tF.useOpenInteractionType)(te),t1=(0,ef.useStableCallback)(()=>tw);(0,tj.useRegisterFieldControl)(tJ?tY:el,Q,tx,t1,!eJ,p);let t5=(0,ef.useStableCallback)(()=>{v?es.current=tf.map(e=>(0,ez.stringifyAsLabel)(e,M)):tb.set("forceMounted",!0)}),t3=(0,ef.useStableCallback)((e,t,a)=>{if(-1===t){if(eU.current===tW)return;eU.current=tW}else eU.current={value:e,index:t};tv(e,(0,eR.createGenericEventDetails)(a,void 0,{index:t}))}),t4=(0,ef.useStableCallback)(e=>{tb.update(e);let t=e.activeIndex;if(void 0===t)return;let a=e.type||eL.REASONS.none;null===t?t3(void 0,-1,a):t3(eW.current[t],t,a)}),t6=(0,ef.useStableCallback)((a,n)=>{if(em.current=n.reason===eL.REASONS.inputClear,e.onInputValueChange?.(a,n),!n.isCanceled){if(n.reason===eL.REASONS.inputChange){te&&null!==en&&ei(null);let e=n.event,i=e.inputType;if("compositionend"===e.type||null!=i&&""!==i&&"insertReplacementText"!==i){let e=""!==a.trim();e&&ea(!0),eG.current={hasQuery:e};let n=tb.state.listElement;if(!tb.state.virtualized&&n){let e=eo.current;for(let t of(0,eA.getOverflowAncestors)(n.firstElementChild??n)){if(!(0,eA.isHTMLElement)(t)||(e?!(0,eO.contains)(e,t):"dialog"===t.getAttribute("role")))break;if((0,tD.isScrollableY)(t)){t.scrollTop=0;break}}}e&&t&&null==tb.state.activeIndex&&(te||tV)&&tb.set("activeIndex",0)}}else n.reason===eL.REASONS.inputClear&&""===a&&tb.state.inputInsidePopup&&(eG.current={hasQuery:!1,selection:!0}
1);e9(a)}}),t7=(0,ef.useStableCallback)((t,a)=>{if(te!==t&&(a.reason===eL.REASONS.escapeKey&&eQ&&0===tf.length&&!eu.current&&a.allowPropagation(),e.onOpenChange?.(t,a),!a.isCanceled&&(t&&tJ&&!tV&&null!==en&&(ea(!1),ei(null),""!==e8&&a.reason!==eL.REASONS.inputChange&&t6("",(0,eR.createChangeEventDetails)(eL.REASONS.inputClear,a.event))),!t&&et&&(eX?(tV||ei(tn),""===tn&&ea(!1)):eY&&(tV||ei(tn),tJ&&t4({activeIndex:null}),(!tJ||tV)&&t6("",(0,eR.createChangeEventDetails)(eL.REASONS.inputClear,a.event)))),tt(t),!t&&tJ&&(a.reason===eL.REASONS.focusOut||a.reason===eL.REASONS.outsidePress))&&(J(!0),q(!1),"onBlur"===Y))){let e="none"===h?e8:e2;X.commit(e)}}),t8=(0,ef.useStableCallback)((e,t)=>{o?.(e,t),t.isCanceled||(e1(e),("none"===h&&eo.current&&I||eX&&!tb.state.inputInsidePopup)&&t6((0,ez.stringifyAsLabel)(e,M),(0,eR.createChangeEventDetails)(t.reason,t.event)))}),t9=(0,ef.useStableCallback)((e,t)=>{let a=(0,eO.getTarget)(e),n=e$.current??e;e$.current=null;let i=(0,eR.createChangeEventDetails)(eL.REASONS.itemPress,n),r=a?.closest("a")?.getAttribute("href");if(r){r.startsWith("#")&&t7(!1,i);return}if(eY){let e=Array.isArray(e2)?e2:[];if(t8((0,eK.selectedValueIncludes)(e,t,O)?(0,eK.removeItem)(e,t,O):[...e,t],i),i.isCanceled||!(el.current&&""!==el.current.value.trim()))return;tb.state.inputInsidePopup?t6("",(0,eR.createChangeEventDetails)(eL.REASONS.inputClear,i.event)):t7(!1,i)}else{if(t8(t,i),i.isCanceled)return;t7(!1,i)}}),ae=(0,ef.useStableCallback)(()=>{let e=X.inputRef.current?.form??tb.state.inputElement?.form;e&&"function"==typeof e.requestSubmit&&e.requestSubmit()}),at=(0,ef.useStableCallback)(()=>{if(tZ(!1),t_?.(!1),ea(!1),ei(null),"none"===h?t4({activeIndex:null,selectedIndex:null}):t4({activeIndex:null}),eY&&el.current&&""!==el.current.value&&!em.current&&t6("",(0,eR.createChangeEventDetails)(eL.REASONS.inputClear)),eX)if(tb.state.inputInsidePopup)el.current&&""!==el.current.value&&t6("",(0,eR.createChangeEventDetails)(eL.REASONS.inputClear));else{let e=(0,ez.stringifyAsLabel)(e2,M);if(el.current&&el.current.value!==e){let t=""===e?eL.REASONS.inputClear:eL.REASONS.none;t6(e,(0,eR.createChangeEventDetails)(t))}}}),aa=N.useMemo(()=>tV&&tA?{current:tA.closest('[role="dialog"]')}:eo,[tV,tA]);function an(){let e=(0,ez.stringifyAsLabel)(e2,M);e8!==e&&t6(e,(0,eR.createChangeEventDetails)(eL.REASONS.none))}(0,tN.useOpenChangeComplete)({enabled:!e.actionsRef,open:te,ref:aa,onComplete(){te||at()}}),N.useImperativeHandle(e.actionsRef,()=>({unmount:at}),[at]),(0,eg.useIsoLayoutEffect)(function(){if(te||(eV.current=null,"none"===h))return;let e=eQ?tg:eW.current;t4({selectedIndex:(0,eK.findSelectionIndex)(e,e2,O,eY)})},[te,e2,h,eY,eQ,tg,O,t4]),(0,eg.useIsoLayoutEffect)(()=>{v&&(eW.current=tf,er.current.length=tf.length)},[v,tf]),(0,eg.useIsoLayoutEffect)(()=>{let e=eG.current;if(e){let a=te||tV||tb.state.positionerElement?.hidden===!1;if(e.hasQuery)t&&a&&tb.set("activeIndex",0),eG.current=null;else if(""===String(e8).trim()&&(eG.current=null,a)){let a=e.selection;"always"!==t||a||"none"!==tb.state.selectionMode||tb.set("activeIndex",0),queueMicrotask(()=>{if(!tb.state.open&&!tb.state.inline||el.current&&""!==el.current.value.trim())return;let e=tb.state.selectedValue,n="multiple"===tb.state.selectionMode,i=n&&Array.isArray(e)?e[e.length-1]:e,r="none"!==tb.state.selectionMode&&null!=i;if(r||a){let t=eQ||e0?tf:eW.current;tb.set("activeIndex",r?(0,eK.findSelectionIndex)(t,e,tb.state.isItemEqualToValue,n):null)}else"always"===t&&tb.set("activeIndex",0)})}}if(!te&&!tV)return;let a=eQ||e0?tf:eW.current,n=tb.state.activeIndex;if(null==n)return"always"===t&&a.length>0?void tb.set("activeIndex",0):void t3(void 0,-1,eL.REASONS.none);if(n>=a.length){t3(void 0,-1,eL.REASONS.none),tb.set("activeIndex",null);return}let i=a[n],r=eU.current.value,s=r!==tG&&(0,eK.compareItemEquality)(i,r,tb.state.isItemEqualToValue);eU.current.index===n&&s||t3(i,n,eL.REASONS.none)},[tk,t,t3,e0,eQ,tf,tV,te,tb,e8]),(0,eg.useIsoLayoutEffect)(()=>{"none"===h?K(""!==String(e8)):K(eY?Array.isArray(e2)&&e2.length>0:null!=e2)},[K,h,e8,e2,eY]),N.useEffect(()=>{eQ&&t&&0===tf.length&&t4({activeIndex:null})},[eQ,t,tf.length,t4]),(0,tB.useValueChanged)(tn,()=>{te&&""!==tn&&tn!==String(e7)&&ea(!0)}),(0,tB.useValueChanged)(e2,()=>{if("none"!==h){let e;U(eq),G((e=W.initialValue,Array.isArray(e2)&&Array.isArray(e)?!(0,tU.areArraysEqual)(e2,e,(e,t)=>(0,eK.compareItemEquality)(e,t,O)):e2!==e)),X.change(e2),!eX||eZ||tJ||an()}}),(0,tB.useValueChanged)(e8,()=>{"none"===h&&(U(eq),G(e8!==W.initialValue),X.change(e8))}),(0,tB.useValueChanged)(v,()=>{!eX||eZ||tJ||et||an()});let ai=(0,eC.useFloatingRootContext)({open:!!tV||te,onOpenChange:t7,elements:{reference:tJ?tR:tL,floating:tA}}
1),ar=w?"grid":"listbox",as=te||tV,ao=as?"true":"false",al=N.useMemo(()=>{let e=tL?.tagName==="INPUT",t=null==tL||e,a=t||as,n=t?{autoComplete:"off",spellCheck:"false",autoCorrect:"off",autoCapitalize:"none"}:{};return a&&(n.role="combobox",n["aria-expanded"]=ao,n["aria-haspopup"]=ar,n["aria-controls"]=as?tT?.id:void 0,n["aria-autocomplete"]=D),{reference:n,floating:{role:"presentation"}}},[tL,as,ao,ar,tT?.id,D]),ac=(0,eE.useClick)(ai,{enabled:!f&&!eJ&&S,event:"mousedown-only",toggle:!1,touchOpenDelay:100*!tJ,reason:eL.REASONS.inputPress}),ad=(0,eN.useDismiss)(ai,{enabled:!f&&!eJ&&!tV,outsidePressEvent:{mouse:"sloppy",touch:"intentional"},bubbles:!!tV||void 0,outsidePress(e){let t=(0,eO.getTarget)(e);return!(0,eO.contains)(tR,t)&&!(0,eO.contains)(eI.current,t)&&!(0,eO.contains)(eM.current,t)&&!(0,eO.contains)(tz,t)}}),au=(0,ej.useListNavigation)(ai,{enabled:!f&&!eJ,id:Q,listRef:er,activeIndex:tk,selectedIndex:tS,virtual:!0,loopFocus:E,allowEscape:E&&!t,focusItemOnOpen:!et&&("none"!==h||!!t)&&"auto",focusItemOnHover:j,resetOnPointerLeave:!C,orientation:w?"horizontal":void 0,rtl:"rtl"===Z,disabledIndices:eS.EMPTY_ARRAY,grid:w?eT:void 0,onNavigate(e,t){(t||te)&&"ending"!==tQ&&(t?t4({activeIndex:e,type:eh.current?eL.REASONS.keyboard:eL.REASONS.pointer}):t4({activeIndex:e}))}}),ah=N.useMemo(()=>(0,t$.mergeProps)(au.reference,{onKeyDown(e){w&&null==tb.state.activeIndex&&("ArrowLeft"===e.key||"ArrowRight"===e.key)&&e.preventBaseUIHandler()}},ad.reference,ac.reference,al.reference),[au.reference,ad.reference,ac.reference,al.reference,w,tb]),am=N.useMemo(()=>(0,t$.mergeProps)(tH.FOCUSABLE_POPUP_PROPS,ad.floating),[ad.floating]),ap=N.useMemo(()=>(0,t$.mergeProps)(au.floating,al.floating),[au.floating,al.floating]),ag=N.useMemo(()=>{let e=au.item;return e?{...e,onFocus:void 0}:eS.EMPTY_OBJECT},[au.item]);(0,ey.useOnFirstRender)(()=>{tb.update({inline:L,popupProps:am,listProps:ap,inputProps:ah,triggerProps:t2,itemProps:ag,setOpen:t7,setInputValue:t6,setSelectedValue:t8,setIndices:t4,handleSelection:t9,forceMount:t5,requestSubmit:ae,onOpenChangeComplete:t_})}),(0,eg.useIsoLayoutEffect)(()=>{tb.update({id:Q,selectedValue:e2,open:te,mounted:tX,transitionStatus:tQ,items:v,inline:L,popupProps:am,listProps:ap,inputProps:ah,triggerProps:t2,openMethod:t0,itemProps:ag,selectionMode:h,name:eq,form:g,disabled:eJ,readOnly:f,required:b,grid:w,virtualized:R,openOnInputClick:S,itemToStringLabel:M,modal:P,autoHighlight:t,isItemEqualToValue:O,submitOnItemClick:$,hasInputValue:eZ,inputOwnsFormValue:"none"===h&&(L||!tb.state.inputInsidePopup)})},[tb,Q,e2,te,tX,tQ,v,am,ap,ah,ag,t0,t2,h,eq,eJ,f,b,w,R,S,M,P,O,$,eZ,L,t,g]);let ay=(0,eb.useMergedRefs)(x,X.inputRef),af=N.useMemo(()=>({query:tn,hasItems:eQ,filteredItems:ty,flatFilteredItems:tf}),[tn,eQ,ty,tf]),ab=N.useMemo(()=>Array.isArray(tx)?"":(0,ez.stringifyAsValue)(tx,T),[tx,T]),ax=eY&&Array.isArray(e2)&&e2.length>0,aw=eY||"none"===h&&tq?void 0:eq,av=N.useMemo(()=>eY&&Array.isArray(e2)&&eq?e2.map(e=>{let t=(0,ez.stringifyAsValue)(e,T);return(0,a.jsx)("input",{type:"hidden",form:g,name:eq,value:t,disabled:eJ},t)}):null,[eY,e2,g,eq,T,eJ]),a_=(0,a.jsxs)(N.Fragment,{children:[e.children,(0,a.jsx)("input",{...X.getValidationProps(eJ,{onFocus(){tJ?tR?.focus():(el.current||tR)?.focus()},onChange(e){if(e.nativeEvent.defaultPrevented||eJ||f)return;let t=e.currentTarget.value,a=t.toLowerCase(),n=(0,eR.createChangeEventDetails)(eL.REASONS.none,e.nativeEvent),i=()=>eW.current.findIndex(e=>(0,ez.stringifyAsValue)(e,T).toLowerCase()===a||(0,ez.stringifyAsLabel)(e,M).toLowerCase()===a);eX&&(t5(),v&&-1===i()&&tb.set("forceMounted",!0)),queueMicrotask(function(){if(eY)return;if("none"===h)return void t6(t,n);let e=i();-1===e&&(e=eW.current.findIndex((e,t)=>{let n=es.current[t];return null!=n&&n.toLowerCase()===a}));let r=-1===e?void 0:eW.current[e];null!=r&&t8?.(r,n)})}}),id:Q&&null==aw?`${Q}-hidden-input`:void 0,form:g,name:aw,autoComplete:B,disabled:eJ,required:b&&!ax,readOnly:f,value:ab,ref:ay,style:aw?ew.visuallyHiddenInput:ew.visuallyHidden,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),av]});return(0,a.jsx)(eP.Provider,{value:tb,children:(0,a.jsx)(eF.Provider,{value:ai,children:(0,a.jsx)(eB.Provider,{value:eQ,children:(0,a.jsx)(eD.Provider,{value:af,children:(0,a.jsx)(eH.Provider,{value:e8,children:a_})})})})})}var tV=e.i(52245),tJ=e.i(75812),tq=e.i(97886),tY=e.i(50001);let tX=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e;delete r.id;let s=(0,tC.useFieldRootContext)(),o=e$(),l=(0,ek.useStore)(o,th),c=(0,ek.useStore)(o,to);(0,ek.useStore)(o,tl);let d=(0,ek.useStore)(o,eV),u=(0,tY.getDefaultLabelId)(d),h=c?.id??(l?d:void 0),m=(0,tq.useLabel)({id:u,fallbackControlId:h,setLabelId(e){let t="function"==typeof e?e(o.state.labelId):e;o.set("labelId",t)}});return(0,tV.useRenderElement)("div",e,{ref:t,state:s.state,props:[m,r],stateAttributesMapping:tJ.fieldValidityMapping})});var tZ=e.i(28744),tQ=e.i(88015),t0=e.i(5005);let t2={...t0.pressableTriggerOpenStateMapping,...tJ.fieldValidityMapping,popupSide:e=>e?{"data-popup-side":e}:null,listEmpty:e=>e?{"data-list-empty":""}:null};var t1=e.i(47778);let t5=N.createContext(void 0);function t3(){return N.useContext(t5)}var t4=e.i(57940);let t6=N.createContext(void 0);function t7(e){let t=N.useContext(t6);if(void 0===t&&!e)throw Error((0,eI.default)(21));return t}var t8=e.i(40886);let t9=N.forwardRef(function(e,t){let n=e$(),{buttonRef:i,getButtonProps:r}=(0,t8.useButton)({native:!1}),s=(0,eb.useMergedRefs)(t,i),o=r({onClick:function(e){n.state.setOpen(!1,(0,eR.createChangeEventDetails)(eL.REASONS.closePress,e.nativeEvent,e.currentTarget))}});return(0,a.jsx)("span",{ref:s,...o,"aria-label":"Dismiss",tabIndex:void 0,style:ew.visuallyHiddenInput})});function ae(e){let t=(0,ek.useStore)(e,e2),a=(0,ek.useStore)(e,td),n=(0,ek.useStore)(e,ti);return t&&n?a:null}function at(){return 0===eG().filteredItems.length}function aa(e){return"rtl"===e?["ArrowRight","ArrowLeft"]:["ArrowLeft","ArrowRight"]}function an(e,t){let a=e>=t-1?t-2:e;return a>=0?a:void 0}function ai(e,t,a){let n=e.state.listRef.current[t];n&&(e.state.selectionEventRef.current=a,n.click(),e.state.selectionEventRef.current=null)}let ar=N.forwardRef(function(e,t){let{render:n,className:i,disabled:r=!1,id:s,style:o,...l}
1=e,{state:c,disabled:d,setTouched:u,setFocused:h,validationMode:m,validation:p}=(0,tC.useFieldRootContext)(),{labelId:g}=(0,t1.useLabelableContext)(),y=t3(),f=!!t7(!0),b=e$(),x=eW(),w=(0,tK.useDirection)(),v=(0,ek.useStore)(b,tx),_=(0,ek.useStore)(b,tf),k=(0,ek.useStore)(b,tb),S=(0,ek.useStore)(b,tg),A=(0,ek.useStore)(b,ty),C=(0,ek.useStore)(b,tp),j=(0,ek.useStore)(b,tA),E=(0,ek.useStore)(b,tt),M=(0,ek.useStore)(b,ta),T=(0,ek.useStore)(b,e0),O=(0,ek.useStore)(b,e2),R=(0,ek.useStore)(b,eY),L=(0,ek.useStore)(b,eV),I=(0,ek.useStore)(b,e5),P=(0,ek.useStore)(b,tS),F=!!j,D=ae(b),B=d||_||r,H=at(),$=f||I,U=(0,tQ.useBaseUiId)(s??($?void 0:L)),G=f?tJ.DEFAULT_FIELD_STATE_ATTRIBUTES:c,[W,K]=N.useState(null),z=N.useRef(!1),V=N.useRef(null),J=N.useRef(!1),q="none"===C&&!f,Y=(0,ef.useStableCallback)(e=>{let t=f||b.state.inline;t&&!b.state.hasInputValue&&b.state.setInputValue("",(0,eR.createChangeEventDetails)(eL.REASONS.none)),b.update({inputElement:e,inputInsidePopup:t,inputOwnsFormValue:q})}),X=f?l:p.getValidationProps(B,l);function Z(){b.state.setIndices({activeIndex:null,selectedIndex:null,type:b.state.keyboardActiveRef.current?eL.REASONS.keyboard:eL.REASONS.pointer})}function Q(){b.state.keyboardActiveRef.current=!1}let ee={...G,open:T,disabled:B,readOnly:k,popupSide:D,listEmpty:H},et=(0,tV.useRenderElement)("input",e,{state:ee,ref:[t,b.state.inputRef,Y],props:[E,M,{value:W??x,"aria-readonly":k||void 0,"aria-required":v||void 0,"aria-labelledby":g,disabled:B,readOnly:k,required:"none"===C?v:void 0,form:A,...q&&S&&{name:S},id:U,onFocus(){if(h(!0),!I||!J.current)return;J.current=!1;let e=V.current;null!=e&&Object.hasOwn(b.state.valuesRef.current,e)&&b.state.setIndices({activeIndex:e})},onBlur(){u(!0),h(!1);let e=b.state.activeIndex;if(I&&null!==e&&"always"!==j&&(V.current=e,J.current=!0,b.state.setIndices({activeIndex:null})),"onBlur"===m){let e="none"===C?x:R;p.commit(e)}},onCompositionStart(e){tZ.platform.os.android||(z.current=!0,K(e.currentTarget.value))},onCompositionEnd(e){z.current=!1;let t=e.currentTarget.value;K(null),b.state.setInputValue(t,(0,eR.createChangeEventDetails)(eL.REASONS.inputChange,e.nativeEvent))},onChange(e){let t=e.nativeEvent,a=t.inputType,n=z.current||!(!a||"insertReplacementText"===a);function i(e){!k&&!B&&e&&n&&(b.state.setOpen(!0,(0,eR.createChangeEventDetails)(eL.REASONS.inputChange,t)),F||Z())}if(z.current){let a=e.currentTarget.value;K(a),""!==a||b.state.openOnInputClick||b.state.inputInsidePopup||b.state.setOpen(!1,(0,eR.createChangeEventDetails)(eL.REASONS.inputClear,t));let n=a.trim(),r=F&&""!==n;i(n),T&&null!==b.state.activeIndex&&!r&&Z();return}let r=(0,eR.createChangeEventDetails)(eL.REASONS.inputChange,t);if(b.state.setInputValue(e.currentTarget.value,r),r.isCanceled)return;let s=""===e.currentTarget.value,o=(0,eR.createChangeEventDetails)(eL.REASONS.inputClear,t);s&&!b.state.inputInsidePopup&&("single"===C&&b.state.setSelectedValue(null,o),b.state.openOnInputClick||b.state.setOpen(!1,o)),i(e.currentTarget.value.trim()),T&&null!==b.state.activeIndex&&!F&&Z()},onKeyDown(e){if(B||k||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)return;b.state.keyboardActiveRef.current=!0;let t=e.currentTarget,a=t.scrollWidth-t.clientWidth,n="rtl"===w;if("Home"===e.key){(0,t4.stopEvent)(e);let a=tZ.platform.engine.gecko&&n?t.value.length:0;t.setSelectionRange(a,a),t.scrollLeft=0;return}if("End"===e.key){(0,t4.stopEvent)(e);let i=tZ.platform.engine.gecko&&n?0:t.value.length;t.setSelectionRange(i,i),t.scrollLeft=n?-a:a;return}if(!O&&"Escape"===e.key){let t="multiple"===C&&Array.isArray(R)?0===R.length:null===R,a=(0,eR.createChangeEventDetails)(eL.REASONS.escapeKey,e.nativeEvent);b.state.setInputValue("",a),b.state.setSelectedValue("multiple"===C?[]:null,a),t||b.state.inline||a.isPropagationAllowed||e.stopPropagation();return}if(y&&"Backspace"===e.key&&""===t.value&&void 0===y.highlightedChipIndex&&Array.isArray(R)&&R.length>0){let t=y.chipsRef.current.length,a=t>0?t-1:R.length-1,n=R.filter((e,t)=>t!==a);Z(),b.state.setSelectedValue(n,(0,eR.createChangeEventDetails)(eL.REASONS.none,e.nativeEvent));return}let i=y?.highlightedChipIndex!==void 0,r=function(e){let t;if(!y)return;let{highlightedChipIndex:a}=y,n=y.chipsRef.current.length,[i,r]=aa(w);return void 0!==a?e.key===i?(e.preventDefault(),t=a>0?a-1:void 0):e.key===r?(e.preventDefault(),t=a<n-1?a+1:void 0):("Backspace"===e.key||"Delete"===e.key)&&
1(e.preventDefault(),t=an(a,R.length),Z()):e.key===i&&(e.currentTarget.selectionStart??0)===0&&R.length>0&&(e.preventDefault(),t=n>0?n-1:void 0),t}(e);if(y?.setHighlightedChipIndex(r),void 0!==r?y?.chipsRef.current[r]?.focus():i&&b.state.inputRef.current?.focus(),229!==e.which&&"Enter"===e.key&&T){let t=b.state.activeIndex,a=e.nativeEvent;if(null===t){if(I)return;b.state.setOpen(!1,(0,eR.createChangeEventDetails)(eL.REASONS.none,a));return}(0,t4.stopEvent)(e),ai(b,t,a)}},onPointerMove:Q,onPointerDown:Q},X],stateAttributesMapping:t2}),ea=f?(0,a.jsx)(tC.FieldRootContext.Provider,{value:tC.DEFAULT_FIELD_ROOT_CONTEXT,children:et}):et;return(0,a.jsxs)(N.Fragment,{children:[T&&(!$||P)&&(0,a.jsx)(t9,{ref:b.state.startDismissRef}),ea]})});var as=e.i(96296);function ao(e,t,a,n,i){if(e.baseUIHandlerPrevented||n)return;let r=(0,eO.getTarget)(e.nativeEvent),s=(0,eA.isElement)(r)?r:null;s!==e.currentTarget&&(i?.(s)||(0,as.isInteractiveElement)(s))||(e.preventDefault(),!a&&(t.state.inputRef.current?.focus(),t.state.openOnInputClick&&t.state.setOpen(!0,(0,eR.createChangeEventDetails)(eL.REASONS.inputPress,e.nativeEvent))))}let al=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e,{state:s}=(0,tC.useFieldRootContext)(),o=e$(),l=(0,ek.useStore)(o,e0),c=(0,ek.useStore)(o,tf),d=(0,ek.useStore)(o,tb),u=(0,ek.useStore)(o,eZ),h=(0,ek.useStore)(o,tp),m=ae(o),p=at(),g={...s,open:l,disabled:c,readOnly:d,popupSide:m,listEmpty:p,placeholder:"none"!==h&&!u},y=(0,ef.useStableCallback)(e=>{o.set("inputGroupElement",e)});return(0,tV.useRenderElement)("div",e,{ref:[t,y],props:[{role:"group",onMouseDown(e){ao(e,o,c,d,e=>(0,eO.contains)(o.state.chipsContainerRef.current,e))}},r],state:g,stateAttributesMapping:t2})});var ac=e.i(39957),ad=e.i(8868),au=e.i(64042),ah=e.i(5049);let am=N.forwardRef(function(e,t){let a,{render:n,className:i,nativeButton:r=!0,disabled:s=!1,id:o,style:l,...c}=e,{state:d,disabled:u,setTouched:h,setFocused:m,validationMode:p,validation:g}=(0,tC.useFieldRootContext)(),{labelId:y}=(0,t1.useLabelableContext)(),f=e$(),b=(0,ek.useStore)(f,tp),x=(0,ek.useStore)(f,tf),w=(0,ek.useStore)(f,tb),v=(0,ek.useStore)(f,tx),_=(0,ek.useStore)(f,ti),k=(0,ek.useStore)(f,tr),S=(0,ek.useStore)(f,ts),A=(0,ek.useStore)(f,ta),C=(0,ek.useStore)(f,th),j=(0,ek.useStore)(f,eV),E=(0,ek.useStore)(f,eJ),M=(0,ek.useStore)(f,e0),T=(0,ek.useStore)(f,eY),O=(0,ek.useStore)(f,e3),R=(0,ek.useStore)(f,e4),L=(0,ek.useStore)(f,eZ),I=eU(),P=eW(),F=(0,ac.useTimeout)(),D=u||x||s,B=at(),H=ae(f);(0,tM.useLabelableId)({id:C?o:void 0});let $=C?o??j:o,U=(0,tY.resolveAriaLabelledBy)(y,E);M&&C?a=S??tT(j):M&&(a=k?.id);let G=N.useRef("");function W(e){G.current=e.pointerType}let{reference:K}=(0,ah.useTypeahead)(I,{enabled:!M&&!w&&!x&&"single"===b,listRef:f.state.labelsRef,activeIndex:O,selectedIndex:R,onMatch(e){let t=f.state.valuesRef.current[e];void 0!==t&&f.state.setSelectedValue(t,(0,eR.createChangeEventDetails)(eL.REASONS.none))}}),{reference:z}=(0,eE.useClick)(I,{enabled:!w&&!x,event:"mousedown"}),{buttonRef:V,getButtonProps:J}=(0,t8.useButton)({native:r,disabled:D}),q={...d,open:M,disabled:D,popupSide:H,listEmpty:B,placeholder:"none"!==b&&!L},Y=(0,ef.useStableCallback)(e=>{f.set("triggerElement",e)});return(0,tV.useRenderElement)("button",e,{ref:[t,V,Y],state:q,props:[A,z,K,{id:$,tabIndex:C?0:-1,role:C?"combobox":void 0,"aria-expanded":M,"aria-haspopup":C?"dialog":"listbox","aria-controls":a,"aria-required":C&&v||void 0,"aria-labelledby":U,onPointerDown:W,onPointerEnter:W,onFocus(){m(!0),D||w||F.start(0,f.state.forceMount)},onBlur(e){(0,eO.contains)(_,e.relatedTarget)||(h(!0),m(!1),"onBlur"===p&&g.commit("none"===b?P:T))},onMouseDown(e){if(D||w||(C||I.set("domReferenceElement",e.currentTarget),f.state.forceMount(),"touch"!==G.current&&(f.state.inputRef.current?.focus(),C||e.preventDefault()),M))return;let t=(0,ad.ownerDocument)(e.currentTarget);C&&t.addEventListener("mouseup",function(e){let t=f.state.triggerElement;if(!t)return;let a=(0,eO.getTarget)(e),n=f.state.positionerElement,i=f.state.listElement;(0,eO.contains)(t,a)||(0,eO.contains)(n,a)||(0,eO.contains)(i,a)||(0,au.isMouseWithinBounds)(e,t)||f.state.setOpen(!1,(0,eR.createChangeEventDetails)(eL.REASONS.cancelOpen,e))},{once:!0})}
1,onKeyDown(e){w||("ArrowDown"===e.key||"ArrowUp"===e.key)&&((0,t4.stopEvent)(e),f.state.setOpen(!0,(0,eR.createChangeEventDetails)(eL.REASONS.listNavigation,e.nativeEvent)),f.state.inputRef.current?.focus())}},g.getValidationProps(D,c),J],stateAttributesMapping:t2})}),ap=N.createContext(null);function ag(e){let{children:t,items:n}=e,i=N.useMemo(()=>({items:n}),[n]);return(0,a.jsx)(ap.Provider,{value:i,children:t})}function ay(e){let{children:t}=e,{filteredItems:n}=eG(),i=N.useContext(ap),r=i?i.items:n;return(0,a.jsx)(N.Fragment,{children:r.map(t)})}var af=e.i(53687);let ab=N.forwardRef(function(e,t){var n;let{render:i,className:r,style:s,children:o,...l}=e,c=e$(),d=eU(),u=!!t7(!0),{filteredItems:h,hasItems:m}=eG(),p=(0,ek.useStore)(c,tp),g=(0,ek.useStore)(c,tw),y=(0,ek.useStore)(c,te),f=(0,ek.useStore)(c,tv),b=(0,ek.useStore)(c,e1),x=0===h.length,w=(0,ef.useStableCallback)(e=>{c.set("positionerElement",e)}),v=(0,ef.useStableCallback)(e=>{c.set("listElement",e)}),_=N.useMemo(()=>"function"==typeof o?n||(n=(0,a.jsx)(ay,{children:o})):o,[o]),k=d.useState("floatingId"),S=(0,tV.useRenderElement)("div",e,{state:{empty:x},ref:[t,v,u?null:w],props:[y,{children:_,tabIndex:-1,id:k,role:g?"grid":"listbox","aria-multiselectable":"multiple"===p?"true":void 0,onKeyDown(e){if(!c.state.disabled&&!c.state.readOnly&&"Enter"===e.key){let t=c.state.activeIndex;null!=t&&((0,t4.stopEvent)(e),ai(c,t,e.nativeEvent))}},onKeyDownCapture(){c.state.keyboardActiveRef.current=!0},onPointerMoveCapture(){c.state.keyboardActiveRef.current=!1}},l]});if(f)return S;let A=m&&!b?void 0:c.state.labelsRef;return(0,a.jsx)(af.CompositeList,{elementsRef:c.state.listRef,labelsRef:A,children:S})});function ax(){let e=(0,ac.useTimeout)(),t=N.useRef(null);return N.useEffect(()=>{if(tZ.platform.os.ios)return;let a=t.current;if(null==a)return;let n=function(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT),a=null;for(;t.nextNode();){let e=t.currentNode;""!==e.nodeValue&&(a=e)}return a}(a);if(null==n)return;let i=n.data,r=`${i}\u2060`;return n.nodeValue=r,e.start(200,()=>{n.nodeValue===r&&(n.nodeValue=i)}),()=>{e.clear(),n.nodeValue===r&&(n.nodeValue=i)}},[t,e]),t}let aw=N.forwardRef(function(e,t){let{render:a,className:n,style:i,children:r,...s}=e,o=ax();return(0,tV.useRenderElement)("div",e,{ref:[t,o],props:[{children:r,role:"status","aria-live":"polite","aria-atomic":!0},s]})});var av=e.i(26674);let a_=N.createContext(void 0),ak=N.forwardRef(function(e,t){let{keepMounted:n=!1,...i}=e,r=e$(),s=(0,ek.useStore)(r,e2),o=(0,ek.useStore)(r,e1);return s||n||o?(0,a.jsx)(a_.Provider,{value:n,children:(0,a.jsx)(av.FloatingPortal,{ref:t,...i})}):null});var aS=e.i(9407);let aA={...t0.popupStateMapping,...aS.transitionStatusMapping},aN=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e,s=e$(),o=(0,ek.useStore)(s,e0),l=(0,ek.useStore)(s,e2),c=(0,ek.useStore)(s,e8);return(0,tV.useRenderElement)("div",e,{state:{open:o,transitionStatus:c},ref:t,stateAttributesMapping:aA,props:[{role:"presentation",hidden:!l,style:{userSelect:"none",WebkitUserSelect:"none"}},r]})});var aC=e.i(44394),aj=e.i(23706),aE=e.i(38396),aM=e.i(426),aT=e.i(89579),aO=e.i(33383);let aR=N.forwardRef(function(e,t){let{render:n,className:i,anchor:r,positionMethod:s,side:o,align:l,sideOffset:c,alignOffset:d,collisionBoundary:u="clipping-ancestors",collisionPadding:h,arrowPadding:m,sticky:p,disableAnchorTracking:g=!1,collisionAvoidance:y=aE.DROPDOWN_COLLISION_AVOIDANCE,style:f,...b}=e,x=e$(),w=eU(),v=function(){let e=N.useContext(a_);if(void 0===e)throw Error((0,eI.default)(20));return e}(),_=(0,ek.useStore)(x,tS),k=(0,ek.useStore)(x,e0),S=(0,ek.useStore)(x,e2),A=(0,ek.useStore)(x,tu),C=(0,ek.useStore)(x,ti),j=(0,ek.useStore)(x,to),E=(0,ek.useStore)(x,tl),M=(0,ek.useStore)(x,tc),T=(0,ek.useStore)(x,th),O=(0,ek.useStore)(x,e8),R=at(),L=(0,aj.useAnchorPositioning)({anchor:r??(T?j:M??E),floatingRootContext:w,positionMethod:s,mounted:S,side:o,sideOffset:c,align:l,alignOffset:d,arrowPadding:m,collisionBoundary:u,collisionPadding:h,sticky:p,disableAnchorTracking:g,keepMounted:v,collisionAvoidance:y,lazyFlip:!0});(0,aO.useAnchoredPopupScrollLock)(k&&_,"touch"===A,C,j);let I={open:k,side:L.side,align:L.align,anchorHidden:L.anchorHidden,empty:R};(0,eg.useIsoLayoutEffect)(()=>{x.set("popupSide",L.side)},[x,L.side]);let P=(0,ef.useStableCallback)(e=>{x.set("positionerElement",e)}),F=(0,aT.usePositioner)(e,I,{styles:L.positionerStyles,transitionStatus:O,props:b,refs:[t,P],hidden:!S,inert:!k});return(0,a.jsxs)(t6.Provider,{value:L,children:[S&&_&&(0,a.jsx)(aM.InternalBackdrop,{inert:(0,aC.inertValue)(!k),cutout:M??E??j}),F]})});var aL=e.i(61487),aI=e.i(53984);let aP={...t0.popupStateMapping,...aS.transitionStatusMapping},aF=N.forwardRef(function(e,t){let{render:n,className:i,style:r,initialFocus:s,finalFocus:o,...l}=e,c=e$(),d=t7(),u=eU(),h=(0,ek.useStore)(c,e2),m=(0,ek.useStore)(c,e0),p=(0,ek.useStore)(c,tu),g=(0,ek.useStore)(c,e9),y=(0,ek.useStore)(c,e8),f=(0,ek.useStore)(c,th),b=(0,ek.useStore)(c,tl),x=(0,ek.useStore)(c,tS),w=(0,ek.useStore)(c,eV),v=at(),_=l.id??(f?tT(w):void 0);(0,eg.useIsoLayoutEffect)(()=>(c.set("popupId",c.state.popupRef.current?.id||_),()=>{c.set("popupId",void 0)}),[c,_]),(0,tN.useOpenChangeComplete)({open:m,ref:c.state.popupRef,onComplete(){m&&c.state.onOpenChangeComplete(!0)}});let k={open:m,side:d.side,align:d.align,anchorHidden:d.anchorHidden,transitionStatus:y,empty:v},S=(0,tV.useRenderElement)("div",e,{state:k,ref:[t,c.state.popupRef],props:[g,{id:_,role:f?"dialog":"presentation",onFocus(e){let t=(0,eO.getTarget)(e.nativeEvent);"touch"!==p&&((0,eO.contains)(c.state.listElement,t)||t===e.currentTarget)&&c.state.inputRef.current?.focus()}},(0,aI.getDisabledMountTransitionStyles)(y),l],stateAttributesMapping:aP}),A=!!f&&(e=>"touch"===e?c.state.popupRef.current:b),C=!f||x;return(0,a.jsx)(aL.FloatingFocusManager,{context:u,disabled:!h,modal:C,openInteractionType:p,initialFocus:void 0===s?A:s,returnFocus:null!=o?o:!!f&&void 0,getInsideElements:()=>[c.state.startDismissRef.current,c.state.endDismissRef.current],children:(0,a.jsxs)(N.Fragment,{children:[S,C&&(0,a.jsx)(t9,{ref:c.state.endDismissRef})]})})}),aD=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e,s=e$(),{arrowRef:o,side:l,align:c,arrowUncentered:d,arrowStyles:u}=t7(),h=(0,ek.useStore)(s,e0);return(0,tV.useRenderElement)("div",e,{ref:[o,t],stateAttributesMapping:t0.popupStateMapping,state:{open:h,side:l,align:c,uncentered:d},props:{style:u,"aria-hidden":!0,...r}})}),aB=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e;return(0,tV.useRenderElement)("span",e,{ref:t,props:[{"aria-hidden":!0,
1children:"â¼"},r]})}),aH=N.createContext(void 0),a$=N.forwardRef(function(e,t){let{render:n,className:i,style:r,items:s,...o}=e,[l,c]=N.useState(),d=N.useMemo(()=>({labelId:l,setLabelId:c,items:s}),[l,c,s]),u=(0,tV.useRenderElement)("div",e,{ref:t,props:[{role:"group","aria-labelledby":l},o]}),h=(0,a.jsx)(aH.Provider,{value:d,children:u});return s?(0,a.jsx)(ag,{items:s,children:h}):h}),aU=N.forwardRef(function(e,t){let{render:a,className:n,style:i,id:r,...s}=e,{setLabelId:o}=function(){let e=N.useContext(aH);if(void 0===e)throw Error((0,eI.default)(18));return e}(),l=(0,tQ.useBaseUiId)(r);return(0,eg.useIsoLayoutEffect)(()=>(o(l),()=>{o(e=>e===l?void 0:e)}),[l,o]),(0,tV.useRenderElement)("div",e,{ref:t,props:[{id:l},s]})});var aG=e.i(74080),aW=e.i(73553);let aK=N.createContext(void 0);function az(){let e=N.useContext(aK);if(!e)throw Error((0,eI.default)(19));return e}let aV=N.createContext(!1);function aJ(e){let{componentProps:t,forwardedRef:n,virtualized:i,indexFromFilter:r}=e,{render:s,className:o,style:l,value:c=null,index:d,disabled:u=!1,nativeButton:h=!1,...m}=t,p=N.useRef(null),g=(0,aW.useCompositeListItem)({guess:!0,index:d,textRef:p}),y=e$(),f=N.useContext(aV),b=N.useContext(eB),x=(0,ek.useStore)(y,tp),w=(0,ek.useStore)(y,tf),v=(0,ek.useStore)(y,tb),_=(0,ek.useStore)(y,tk),k=w||u,S="none"!==x,A=d??r??g.index,C=-1!==A,j=(0,ek.useStore)(y,eV),E=(0,ek.useStore)(y,e6,A),M=(0,ek.useStore)(y,e7,c),T=(0,ek.useStore)(y,tn),O=N.useRef(null),R=null!=j&&C?`${j}-${A}`:void 0,L=M&&S;(0,eg.useIsoLayoutEffect)(()=>{if(!(C&&(i||null!=d)))return;let e=y.state.listRef.current;return e[A]=O.current,()=>{delete e[A]}},[C,i,A,d,y]),(0,eg.useIsoLayoutEffect)(()=>{if(!C||b)return;let e=y.state.valuesRef.current;return e[A]=c,()=>{delete e[A]}},[C,b,A,c,y]),(0,eg.useIsoLayoutEffect)(()=>{if(!C||b)return;let e=y.state.selectedValue,t=Array.isArray(e)?e[e.length-1]:e;(0,eK.compareItemEquality)(c,t,_)&&y.set("selectedIndex",A)},[C,b,y,A,c,_]);let{getButtonProps:I,buttonRef:P}=(0,t8.useButton)({disabled:k,focusableWhenDisabled:!0,native:h,composite:!0});function F(e){function t(){y.state.handleSelection(e,c)}y.state.submitOnItemClick?(aG.flushSync(t),y.state.requestSubmit()):t()}let D=(0,tV.useRenderElement)("div",t,{ref:[P,n,g.ref,O],state:{disabled:k,selected:L,highlighted:E},props:[T,{id:R,role:f?"gridcell":"option","aria-selected":S?L:void 0,tabIndex:void 0,onPointerDownCapture(e){e.isPrimary&&(y.state.pointerDownItemRef.current=e.currentTarget),e.preventDefault()},onMouseDown(e){e.preventDefault()},onClick(e){k||v||F(e.nativeEvent)},onMouseUp(e){let t=y.state.pointerDownItemRef.current===e.currentTarget;y.state.pointerDownItemRef.current=null,k||v||0!==e.button||t||!E||F(e.nativeEvent)}},m,I]}),B=N.useMemo(()=>({selected:L,textRef:p}),[L,p]);return(0,a.jsx)(aK.Provider,{value:B,children:D})}function aq(e){let{componentProps:t,forwardedRef:n}=e,i=e$(),r=(0,ek.useStore)(i,tk),{flatFilteredItems:s}=eG(),o=(0,eK.findItemIndex)(s,t.value??null,r);return(0,a.jsx)(aJ,{componentProps:t,forwardedRef:n,virtualized:!0,indexFromFilter:o})}let aY=N.memo(N.forwardRef(function(e,t){let n=e$(),i=(0,ek.useStore)(n,tv);return i&&null==e.index?(0,a.jsx)(aq,{componentProps:e,forwardedRef:t}):(0,a.jsx)(aJ,{componentProps:e,forwardedRef:t,virtualized:i,indexFromFilter:void 0})})),aX=N.forwardRef(function(e,t){let{selected:n}=az();return e.keepMounted||n?(0,a.jsx)(aZ,{...e,ref:t}):null}),aZ=N.memo(N.forwardRef((e,t)=>{let{render:a,className:n,style:i,keepMounted:r,...s}=e,{selected:o}=az(),l=N.useRef(null),{transitionStatus:c,setMounted:d}=(0,tP.useTransitionStatus)(o),u=(0,tV.useRenderElement)("span",e,{ref:[t,l],state:{selected:o,transitionStatus:c},props:[{"aria-hidden":!0,children:"âï¸"},s],stateAttributesMapping:aS.transitionStatusMapping});return(0,tN.useOpenChangeComplete)({open:o,ref:l,onComplete(){o||d(!1)}}),u})),aQ=N.forwardRef(function(e,t){let{render:n,className:i,style:r,...s}=e,o=e$(),l=(0,ek.useStore)(o,e0),c=(0,ek.useStore)(o,eX),[d,u]=N.useState(void 0);l&&void 0!==d&&u(void 0);let h=N.useRef([]),m=(0,tV.useRenderElement)("div",e,{ref:[t,o.state.chipsContainerRef],props:[c?{role:"toolbar"}:eS.EMPTY_OBJECT,{onMouseDown(e){ao(e,o,o.state.disabled,o.state.readOnly)}},s]}),p=N.useMemo(()=>({highlightedChipIndex:d,setHighlightedChipIndex:u,chipsRef:h}),[d,u,h]);return(0,a.jsx)(t5.Provider,{value:p,children:(0,a.jsx)(af.CompositeList,{elementsRef:h,children:m})})}),a0=N.createContext(void 0),a2=N.forwardRef(function(e,t){let{render:n,className:i,style:r,...s}=e,o=e$(),{setHighlightedChipIndex:l,chipsRef:c}=t3(),d=(0,tK.useDirection)(),u=(0,ek.useStore)(o,tf),h=(0,ek.useStore)(o,tb),m=(0,ek.useStore)(o,eY),{ref:p,index:g}=(0,aW.useCompositeListItem)(),y=(0,tV.useRenderElement)("div",e,{ref:[t,p],state:{disabled:u},props:[{tabIndex:-1,"aria-disabled":u||void 0,"aria-readonly":h||void 0,onKeyDown(e){if(u||h)return;let t=function(e){let t=g,[a,n]=aa(d);return e.key===a?(e.preventDefault(),t=g>0?g-1:void 0):e.key===n?(e.preventDefault(),t=g<c.current.length-1?g+1:void 0):"Backspace"===e.key||"Delete"===e.key?(t=an(g,m.length),(0,t4.stopEvent)(e),o.state.setIndices({activeIndex:null,selectedIndex:null,type:eL.REASONS.keyboard}),o.state.setSelectedValue(m.filter((e,t)=>
1t!==g),(0,eR.createChangeEventDetails)(eL.REASONS.none,e.nativeEvent))):"Enter"===e.key||" "===e.key?((0,t4.stopEvent)(e),t=void 0):"ArrowDown"===e.key||"ArrowUp"===e.key?((0,t4.stopEvent)(e),o.state.setOpen(!0,(0,eR.createChangeEventDetails)(eL.REASONS.listNavigation,e.nativeEvent)),t=void 0):1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey||(t=void 0),t}(e);aG.flushSync(()=>{l(t)}),void 0===t?o.state.inputRef.current?.focus():c.current[t]?.focus()}},s]}),f=N.useMemo(()=>({index:g}),[g]);return(0,a.jsx)(a0.Provider,{value:f,children:y})}),a1=N.forwardRef(function(e,t){let{render:a,className:n,disabled:i=!1,nativeButton:r=!0,style:s,...o}=e,l=e$(),{index:c}=function(){let e=N.useContext(a0);if(!e)throw Error((0,eI.default)(17));return e}(),d=(0,ek.useStore)(l,tf),u=(0,ek.useStore)(l,tb),h=(0,ek.useStore)(l,eY),m=(0,ek.useStore)(l,tk),p=d||i,{buttonRef:g,getButtonProps:y}=(0,t8.useButton)({native:r,disabled:p||u,focusableWhenDisabled:!0});function f(e){let t=(0,eR.createChangeEventDetails)(eL.REASONS.chipRemovePress,e.nativeEvent);return!function(e){let t=l.state.activeIndex;if(null==t)return;let a=(0,eK.findItemIndex)(l.state.valuesRef.current,e,m);-1!==a&&t===a&&l.state.setIndices({activeIndex:null,type:l.state.keyboardActiveRef.current?eL.REASONS.keyboard:eL.REASONS.pointer})}(h[c]),l.state.setSelectedValue(h.filter((e,t)=>t!==c),t),l.state.inputRef.current?.focus(),t}return(0,tV.useRenderElement)("button",e,{ref:[t,g],state:{disabled:p},props:[{tabIndex:-1,onMouseDown(e){e.preventDefault()},onClick(e){f(e).isPropagationAllowed||e.stopPropagation()},onKeyDown(e){("Enter"===e.key||" "===e.key)&&(f(e).isPropagationAllowed||(0,t4.stopEvent)(e))}},o,y]})}),a5=N.forwardRef(function(e,t){let{render:n,className:i,style:r,...s}=e,o=(0,tV.useRenderElement)("div",e,{ref:t,props:[{role:"row"},s]});return(0,a.jsx)(aV.Provider,{value:!0,children:o})}),a3=N.forwardRef(function(e,t){let{render:a,className:n,style:i,children:r,...s}=e,{filteredItems:o}=eG(),l=e$(),c=ax(),d=0===o.length?r:null;return(0,tV.useRenderElement)("div",e,{ref:[t,l.state.emptyRef,c],props:[{children:d,role:"status","aria-live":"polite","aria-atomic":!0},s]})}),a4={...aS.transitionStatusMapping,...t0.triggerOpenStateMapping},a6=N.forwardRef(function(e,t){let{render:a,className:n,disabled:i=!1,nativeButton:r=!0,keepMounted:s=!1,style:o,...l}=e,{disabled:c}=(0,tC.useFieldRootContext)(),d=e$(),u=(0,ek.useStore)(d,tp),h=(0,ek.useStore)(d,tf),m=(0,ek.useStore)(d,tb),p=(0,ek.useStore)(d,e0),g=(0,ek.useStore)(d,eY),y=(0,ek.useStore)(d,eX),f=eW(),b=!1;b="none"===u?""!==f:"single"===u?null!=g:y;let x=c||h||i,{buttonRef:w,getButtonProps:v}=(0,t8.useButton)({native:r,disabled:x}),{mounted:_,transitionStatus:k,setMounted:S}=(0,tP.useTransitionStatus)(b),A={disabled:x,visible:b,open:p,transitionStatus:k};(0,tN.useOpenChangeComplete)({open:b,ref:d.state.clearRef,onComplete(){b||S(!1)}});let N=(0,tV.useRenderElement)("button",e,{state:A,ref:[t,w,d.state.clearRef],props:[{tabIndex:-1,children:"x",onMouseDown(e){e.preventDefault()},onClick(e){if(x||m)return;let t=d.state.keyboardActiveRef.current?eL.REASONS.keyboard:eL.REASONS.pointer;d.state.setInputValue("",(0,eR.createChangeEventDetails)(eL.REASONS.clearPress,e.nativeEvent)),"none"!==u?(d.state.setSelectedValue(Array.isArray(g)?[]:null,(0,eR.createChangeEventDetails)(eL.REASONS.clearPress,e.nativeEvent)),d.state.setIndices({activeIndex:null,selectedIndex:null,type:t})):d.state.setIndices({activeIndex:null,type:t}),d.state.inputRef.current?.focus()}},l,v],stateAttributesMapping:a4});return s||_?N:null}),a7=e.i(18438).ListboxSeparator;e.s(["Arrow",0,aD,"Backdrop",0,aN,"Chip",0,a2,"ChipRemove",0,a1,"Chips",0,aQ,"Clear",0,a6,"Collection",0,ay,"Empty",0,a3,"Group",0,a$,"GroupLabel",0,aU,"Icon",0,aB,"Input",0,ar,"InputGroup",0,al,"Item",0,aY,"ItemIndicator",0,aX,"Label",0,tX,"List",0,ab,"Popup",0,aF,"Portal",0,ak,"Positioner",0,aR,"Root",0,function(e){let{multiple:t=!1,defaultValue:n,value:i,onValueChange:r,autoComplete:s,...o}=e;return(0,a.jsx)(tz,{...o,selectionMode:t?"multiple":"single",selectedValue:i,defaultSelectedValue:n,onSelectedValueChange:r,formAutoComplete:s})},"Row",0,a5,"Separator",0,a7,"Status",0,aw,"Trigger",0,am,"Value",0,function(e){let{children:t,placeholder:n}=e,i=e$(),r=(0,ek.useStore)(i,t_),s=(0,ek.useStore)(i,eY),o=(0,ek.useStore)(i,eq),l="multiple"===(0,ek.useStore)(i,tp),c=(0,ek.useStore)(i,eZ),d=(0,ek.useStore)(i,eQ,!c&&null!=n&&null==t),u=null;return u="function"==typeof t?t(s):null!=t?t:c||null==n||d?l&&Array.isArray(s)?(0,ez.resolveMultipleLabels)(s,o,r):(0,ez.resolveSelectedLabel)(s,o,r):n,(0,a.jsx)(N.Fragment,{children:u})},"useFilter",0,function(e={}){let{multiple:t=!1,value:a,...n}=e,i=tI(n),r=N.useCallback((e,n,r)=>t?tO(i,r)(e,n):((e,t)=>{if(null==e)return!1;if(!t)return!0;let n=null!=a?(0,ez.stringifyAsLabel)(a,r):"";return!!(n&&i.contains(n,t))&&n.length===t.length||i.contains(e,t,r)})(e,n),[i,a,t]);return N.useMemo(()=>({...i,contains:r}),[r,i])},"useFilteredItems",0,function(){return eG().filteredItems}],24189);var a8=e.i(24189),a8=a8;let a9="\0__create__",ne=({value:e,options:t,error:n,disabled:i=!1,placeholder:r,allowClear:o=!1,freeText:l=!1,size:c="default",className:d,active:u=!1,onChange:h,onInputChange:m,filter:p,onAddClick:g,addLinkLabel:y,notFoundLabel:f,notFoundPromptLabel:b,renderOptionContent:x})=>{let w="small"===c,v=(0,N.useRef)(null),_=(0,N.useRef)(null),[k,S]=(0,N.useState)(!1),A=(0,N.useMemo)(()=>0===t.length?[]:"string"==typeof t[0]?t.map(e=>({value:e,label:e})):t,[t]),C=(0,N.useMemo)(()=>{let e=new Map;for(let t of A)e.set(t.value,t.label);return e},[A]),j=e=>0===A.length?"":C.get(e)??e,E=(0,N.useMemo)(()=>A.map(e=>e.value),[A]),M=(0,N.useMemo)(()=>g&&y?[...E,a9]:E,[E,g,y]),T=j(e),[O,R]=(0,N.useState)(T||""),L=(0,N.useMemo)(()=>!!O&&O!==T&&!A.some(e=>e.label.toLowerCase().includes(O.toLowerCase())),[O,T,A]);(0,N.useEffect)(()=>{k||R(T||"")},[T,k]);let I=(0,N.useMemo)(()=>(e,t)=>e===a9?!!t&&t!==T:t===T||!t||j(e).toLowerCase().includes(t.toLowerCase()),[T,C]);return(0,a.jsx)("div",{className:(0,s.cn)("relative w-full",k&&"z-20",d),children:(0,a.jsxs)(a8.Root,{value:e,onValueChange:e=>{if(e===a9){S(!1),g?.();return}null!==e&&(h(e),R(j(e)))},open:k,onOpenChange:(t,a)=>{if(S(t),!t&&a?.reason!=="item-press"){if(a?.reason==="escape-key")return void R(T||"");if(l){let e=O.trim();if(e){let t=A.find(t=>t.label.toLowerCase()===e.toLowerCase());t?(h(t.value),R(t.label)):h(e)}else h("")}else e&&O!==T&&R(T),!e&&O&&!A.some(e=>
1e.label===O)&&(R(""),o||h(""))}},disabled:i,inputValue:O,onInputValueChange:e=>{if(e===a9)return;let t=C.get(e)??e;R(t),m?.(t),o&&""===e.trim()&&h("")},items:M,filter:p??I,autoHighlight:!0,children:[(0,a.jsxs)("div",{ref:v,className:(0,s.cn)("w-full rounded-lg border border-gray-300",w?"px-3 py-2.5 text-sm":"px-3 py-[11px] text-base leading-[150%]","text-gray-800 bg-white","flex items-center","hover:border-blue-200","focus-within:border-blue-400","focus-within:ring",k&&"border-blue-400",u&&"border-blue-400",n&&"border-rose-600",i&&"bg-gray-100 text-gray-400 cursor-not-allowed"),children:[(0,a.jsx)(a8.Input,{ref:_,placeholder:r,className:(0,s.cn)("grow min-w-0 bg-transparent outline-none text-ellipsis overflow-hidden",w?"text-sm":"text-base leading-[150%]"),onFocus:()=>{i||k||S(!0)},"aria-autocomplete":"list"}),(0,a.jsx)(a8.Trigger,{className:(0,s.cn)("ml-2 shrink-0 flex items-center cursor-pointer p-2 -my-2 -mr-2 bg-transparent border-none outline-none focus-visible:ring rounded",i&&"cursor-not-allowed"),"aria-label":"Open popup",children:(0,a.jsx)(G.ChevronDown,{className:(0,s.cn)("w-5 h-5 text-gray-500 transition-transform duration-200",!i&&"hover:text-gray-800",k&&"rotate-180"),"aria-hidden":"true"})}),o&&O&&(0,a.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),R(""),h(""),_.current?.focus()},className:"text-gray-500 hover:text-gray-800 ml-2 p-2 -my-2 -mr-2 text-lg leading-none outline-none focus-visible:ring rounded","aria-label":"Clear selection",children:"Ã"})]}),(0,a.jsx)(a8.Portal,{children:(0,a.jsx)(a8.Positioner,{side:"bottom",align:"start",sideOffset:4,anchor:v,className:"z-[1001] w-[var(--anchor-width)]",children:(0,a.jsxs)(a8.Popup,{className:(0,s.cn)("bg-white border border-gray-300 rounded-lg shadow-lg max-h-60 overflow-y-auto w-full text-gray-800",w?"text-sm":"text-base leading-[150%]","transition-all duration-150","data-[starting-style]:opacity-0 data-[starting-style]:scale-95","data-[ending-style]:opacity-0 data-[ending-style]:scale-95"),children:[(0,a.jsx)(a8.List,{children:e=>e===a9?(0,a.jsxs)(a8.Item,{value:a9,className:(0,s.cn)("cursor-pointer px-3 outline-none data-[highlighted]:bg-blue-100",w?"py-1.5 text-sm":"py-2 text-base leading-[150%]"),children:[L&&b&&(0,a.jsx)("span",{className:"text-gray-400 mr-1",children:b}),(0,a.jsx)("span",{className:"font-semibold text-blue-600",children:y})]},a9):(0,a.jsx)(a8.Item,{value:e,className:(0,s.cn)("cursor-pointer hover:bg-blue-100 px-3 flex items-center gap-2","outline-none data-[highlighted]:bg-blue-100 data-[selected]:bg-blue-100 data-[selected]:text-blue-600",w?"py-1.5 text-sm":"py-2 text-base leading-[150%]"),children:x?x(e,j(e)):j(e)},e)}),(0,a.jsx)(a8.Empty,{className:(0,s.cn)("empty:hidden px-3 text-gray-400 cursor-default",w?"py-2 text-sm":"py-2.5 text-base leading-[150%]"),children:f||"No results found"})]})})})]})})},nt=({label:e,value:t,onChange:n,placeholder:i,disabled:r,description:s,error:o,options:l,allowClear:c,freeText:d,size:u,className:h,active:m=!1,onAddClick:p,addLinkLabel:g,notFoundLabel:y,notFoundPromptLabel:f,renderOptionContent:b})=>(0,a.jsx)(em.FieldWrapper,{label:e,description:s,error:o,size:u,className:h,children:(0,a.jsx)(ne,{value:t,onChange:n,options:l,error:!!o,active:m,disabled:r,placeholder:i,allowClear:c,freeText:d,size:u,onAddClick:p,addLinkLabel:g,notFoundLabel:y,notFoundPromptLabel:f,renderOptionContent:b})});var na=e.i(50510);e.s([],73712),e.i(73712);var nn=e.i(1675);function ni(e,t){return e-t}function nr(e,t,a,n,i,r){let s=(0,nn.clamp)(e,a,n);if(!i)return s;let o=r.slice();return o[t]=(0,nn.clamp)(s,r[t-1]??-1/0,r[t+1]??1/0),o.sort(ni)}function ns(e,t,a){if(!Array.isArray(e))return!0;let n=t*a;for(let t=0;t<e.length-1;t+=1)if(!(Math.abs(e[t]-e[t+1])>=n))return!1;return!0}let no=()=>null,nl={activeThumbIndex:no,max:no,min:no,minStepsBetweenValues:no,step:no,values:no,...tJ.fieldValidityMapping},nc=N.createContext(void 0);function nd(){let e=N.useContext(nc);if(void 0===e)throw Error((0,eI.default)(62));return e}let nu=N.forwardRef(function(e,t){let{"aria-labelledby":n,className:i,defaultValue:r,disabled:s=!1,id:o,format:l,largeStep:c=10,locale:d,render:u,max:h=100,min:m=0,minStepsBetweenValues:p=0,form:g,name:y,onValueChange:f,onValueCommitted:b,orientation:x="horizontal",step:w=1,thumbCollisionBehavior:v="push",thumbAlignment:_="center",value:k,style:S,...A}=e,C=(0,tQ.useBaseUiId)(o),j=(0,tY.getDefaultLabelId)(C),E=(0,ef.useStableCallback)(f),M=(0,ef.useStableCallback)(b),{clearErrors:T}=(0,tE.useFormContext)(),{state:O,disabled:R,name:L,setTouched:I,setDirty:P,validityData:F,validation:D}=(0,tC.useFieldRootContext)(),{labelId:B}=(0,t1.useLabelableContext)(),[H,$]=N.useState(),U=n??(0,tY.resolveAriaLabelledBy)(B,H),G=R||s,W=L??y,[K,z]=(0,ep.useControlled)({controlled:k,default:r??m,name:"Slider"}),V=N.useRef(null),J=N.useRef(null),q=N.useRef([]),Y=N.useRef(null),X=N.useRef(-1),Z=N.useRef(null),Q=N.useRef(eL.REASONS.none),[ee,et]=N.useState(-1),[ea,en]=N.useState(-1),[ei,er]=N.useState(!1),[es,eo]=N.useState(()=>new Map),[el,ec]=N.useState([void 0,void 0]),ed=(0,ef.useStableCallback)(e=>{et(e),-1!==e&&en(e)}),eu=(0,ef.useStableCallback)(e=>{e&&(J.current=e)}),eh=Array.isArray(K),em=N.useMemo(()=>eh?K.map(e=>(0,nn.clamp)(e,m,h)).sort(ni):[(0,nn.clamp)(K,m,h)],[h,m,eh,K]),ey=eh?em:em[0];(0,tj.useRegisterFieldControl)(D.inputRef,C,ey,void 0,!G,y),(0,tB.useValueChanged)(ey,()=>{T(W),D.change(ey);let e=F.initialValue;P(Array.isArray(ey)&&Array.isArray(e)?!(0,tU.areArraysEqual)(ey,e):ey!==e)});let eb=(0,ef.useStableCallback)((e,t)=>{var a,n;if(Number.isNaN(e)||(a=e)===(n=K)||Array.isArray(a)&&Array.isArray(n)&&(0,tU.areArraysEqual)(a,n))return!1;let i=t.event,r=new i.constructor(i.type,i);return Object.defineProperty(r,"target",{writable:!0,value:{value:e,name:W}}),t.event=r,E(e,t),!t.isCanceled&&(Q.current=t.reason,z(e),!0)}),ex=(0,ef.useStableCallback)((e,t,a)=>{let n=nr(e,t,m,h,eh,em);if(ns(n,w,p)){let e="key"in a?eL.REASONS.keyboard:eL.REASONS.inputChange,i=eb(n,(0,eR.createChangeEventDetails)(e,a.nativeEvent,void 0,{activeThumbIndex:t}));I(!0),i&&M(n,(0,eR.createGenericEventDetails)(e,a.nativeEvent))}});(0,eg.useIsoLayoutEffect)(()=>
1{if(!G)return;let e=(0,eO.activeElement)((0,ad.ownerDocument)(V.current));(0,eO.contains)(V.current,e)&&e.blur(),-1!==ee&&ed(-1)},[ee,G,ed]);let ew=N.useMemo(()=>({...O,activeThumbIndex:ee,disabled:G,dragging:ei,orientation:x,max:h,min:m,minStepsBetweenValues:p,step:w,values:em}),[O,ee,G,ei,h,m,p,x,w,em]),ev=N.useMemo(()=>({active:ee,controlRef:J,disabled:G,dragging:ei,validation:D,format:l,handleInputChange:ex,indicatorPosition:el,inset:"center"!==_,labelId:U,rootLabelId:j,largeStep:c,lastUsedThumbIndex:ea,lastChangeReasonRef:Q,form:g,locale:d,max:h,min:m,minStepsBetweenValues:p,name:W,onValueCommitted:M,orientation:x,pressedThumbCenterOffsetRef:Y,pressedThumbIndexRef:X,pressedValuesRef:Z,registerFieldControlRef:eu,renderBeforeHydration:"edge"===_,setActive:ed,setDragging:er,setIndicatorPosition:ec,setLabelId:$,setValue:eb,state:ew,step:w,thumbCollisionBehavior:v,thumbMap:es,thumbRefs:q,values:em}),[ee,U,j,G,ei,D,l,ex,el,c,ea,g,d,h,m,p,W,M,x,eu,ed,eb,ew,w,v,_,es,em]),e_=(0,tV.useRenderElement)("div",e,{state:ew,ref:[t,V],props:[{"aria-labelledby":U,id:C,role:"group"},A,e=>D.getValidationProps(G,e)],stateAttributesMapping:nl});return(0,a.jsx)(nc.Provider,{value:ev,children:(0,a.jsx)(af.CompositeList,{elementsRef:q,onMapChange:eo,children:e_})})}),nh=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e;delete r.id;let{state:s,setLabelId:o,controlRef:l,rootLabelId:c}=nd(),d=(0,tq.useLabel)({id:c,setLabelId:o,focusControl:function(e,t){if(t){let a=(0,ad.ownerDocument)(e.currentTarget).getElementById(t);if((0,eA.isHTMLElement)(a))return void(0,tq.focusElementWithVisible)(a)}let a=l.current?.querySelectorAll('input[type="range"]'),n=a?.length===1?a[0]:null;(0,eA.isHTMLElement)(n)&&(0,tq.focusElementWithVisible)(n)}});return(0,tV.useRenderElement)("div",e,{ref:t,state:s,props:[d,r],stateAttributesMapping:nl})}),nm=new Map;function np(e,t,a){return null==e?"":(function(e,t){let a=JSON.stringify({locale:tR(e),options:t}),n=nm.get(a);if(n)return n;let i=new Intl.NumberFormat(e,t);return nm.set(a,i),i})(t,a).format(e)}let ng=N.forwardRef(function(e,t){let{"aria-live":a="off",render:n,className:i,children:r,style:s,...o}=e,{thumbMap:l,state:c,values:d,format:u,locale:h}=nd(),m=Array.from(l.values(),({inputId:e})=>e).join(" ").trim()||void 0,p=N.useMemo(()=>d.map(e=>np(e,h,u)),[u,h,d]),g=p.join(" â ");return(0,tV.useRenderElement)("output",e,{state:c,ref:t,props:[{"aria-live":a,children:"function"==typeof r?r(p,d):g,htmlFor:m},o],stateAttributesMapping:nl})});var ny=e.i(74735),nf=e.i(33848),nb=e.i(8445);function nx(e,t){let a=e.getBoundingClientRect();return t?(a.top+a.bottom)/2:(a.left+a.right)/2}function nw(e){if(0===e)return 0;if(1>Math.abs(e)){let t=e.toExponential().split("e-"),a=t[0].split(".")[1];return(a?a.length:0)+parseInt(t[1],10)}let t=e.toString().split(".")[1];return t?t.length:0}function nv(e,t,a){return Number((Math.round((e-a)/t)*t+a).toFixed(Math.max(nw(t),nw(a))))}function n_(e,t,a,n,i,r,s,o){let l=e.slice(),c=r*s,d=l.length-1,u=o??e;l[t]=(0,nn.clamp)(a,n+t*c,i-(d-t)*c);for(let e=t+1;e<=d;e+=1){let t=l[e-1]+c,a=i-(d-e)*c,n=u[e],r=Math.max(l[e],t);n<r&&(r=Math.max(n,t)),l[e]=(0,nn.clamp)(r,t,a)}for(let e=t-1;e>=0;e-=1){let t=l[e+1]-c,a=n+e*c,i=u[e],r=Math.min(l[e],t);i>r&&(r=Math.min(i,t)),l[e]=(0,nn.clamp)(r,a,t)}for(let e=0;e<=d;e+=1)l[e]=Number(l[e].toFixed(12));return l}let nk=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}
1=e,{disabled:s,dragging:o,inset:l,lastChangeReasonRef:c,max:d,min:u,minStepsBetweenValues:h,onValueCommitted:m,orientation:p,pressedThumbCenterOffsetRef:g,pressedThumbIndexRef:y,pressedValuesRef:f,registerFieldControlRef:b,renderBeforeHydration:x,setActive:w,setDragging:v,setValue:_,state:k,step:S,thumbCollisionBehavior:A,thumbRefs:C,values:j}=nd(),E=(0,tK.useDirection)(),M=j.length>1,T="vertical"===p,O=N.useRef(null),R=N.useRef(null),L=(0,ef.useStableCallback)(e=>{e&&null==R.current&&(R.current=(0,nf.ownerWindow)(e).getComputedStyle(e))}),I=N.useRef(null),P=N.useRef(0),F=N.useRef(0),D=N.useRef(null),B=(0,ex.useValueAsRef)(j);function H(e){return e?.querySelector('input[type="range"]')}function $(e){y.current=e,C.current[e]||(g.current=null)}function U(){y.current=-1,g.current=null}function G(e){return!!(0,eA.isElement)(e)&&C.current.some(t=>!!(0,eA.isElement)(t)&&!!(0,eO.contains)(t,e)&&H(t)?.disabled===!0)}function W(e){let t=O.current,a=y.current;if(!t||a<0||a>=j.length)return a>=j.length&&(D.current=null),null;let{width:n,height:i,bottom:r,left:s,right:o}=t.getBoundingClientRect(),l=function(e,t){if(!e)return{start:0,end:0};function a(e){let t=null!=e?parseFloat(e):0;return Number.isNaN(t)?0:t}let n=t?"Top":"InlineStart",i=t?"Bottom":"InlineEnd";return{start:a(e[`border${n}Width`])+a(e[`padding${n}`]),end:a(e[`border${i}Width`])+a(e[`padding${i}`])}}(R.current,T),c=F.current,m=(T?i:n)-l.start-l.end-2*c,p=g.current??0,b=e.x-p,x=e.y-p,w=T?r-x-l.end:("rtl"===E?o-b:b-s)-l.start,v=(d-u)*(0,nn.clamp)((w-c)/m,0,1)+u;return(v=nv(v,S,u),v=(0,nn.clamp)(v,u,d),M)?function(e,t,a,n,i,r,s,o,l,c){let d=a??t,u=n??t;if(!(d.length>1))return{value:r,thumbIndex:0,didSwap:!1};let h=l*c;if("push"===e)return{value:n_(d,i,r,s,o,l,c),thumbIndex:i,didSwap:!1};let m=d.slice(),p=m[i-1],g=m[i+1],y=null!=p?p+h:s,f=null!=g?g-h:o,b=Number((0,nn.clamp)(r,y,f).toFixed(12));if(m[i]=b,"swap"!==e)return{value:m,thumbIndex:i,didSwap:!1};{let e=d[i],t=r>e,a=r<e,n=t&&null!=g&&r>=g-1e-7,y=a&&null!=p&&r<=p+1e-7;if(!n&&!y)return{value:m,thumbIndex:i,didSwap:!1};let f=n?i+1:i-1,x=m.map((e,t)=>{if(t===i)return b;let a=u[t];return null!=a?a:d[t]}),w=r;w=n?Math.max(r,m[f]):Math.min(r,m[f]);let v=n_(m,f,w,s,o,l,c,x),_=n?f-1:f+1,k=v[_-1],S=v[_+1],A=null!=k?k+h:s;A=Math.max(A,s+_*h);let N=null!=S?S-h:o;N=Math.min(N,o-(v.length-1-_)*h);let C=(0,nn.clamp)(b,A,N);return v[_]=Number(C.toFixed(12)),{value:v,thumbIndex:f,didSwap:!0}}}(A,j,B.current,f.current,a,v,u,d,S,h):{value:v,thumbIndex:a,didSwap:!1}}function K(e){f.current=M?j.slice():null,D.current=null,B.current=j;let t=y.current,a=t;if(t>-1&&t<j.length){if(j[t]===d){let e=t;for(;e>0&&j[e-1]===d;)e-=1;a=e}}else{let t,n=T?"y":"x";a=-1;for(let i=0;i<C.current.length;i+=1){let r=C.current[i];if((0,eA.isElement)(r)&&!H(r)?.disabled){let s=nx(r,T),o=Math.abs(e[n]-s);(void 0===t||o<=t)&&(a=i,t=o)}}}if(a>-1&&a!==t&&$(a),l){let e=C.current[a];(0,eA.isElement)(e)&&(F.current=e.getBoundingClientRect()[T?"height":"width"]/2)}}function z(e){let t=H(C.current?.[e]);t&&t.focus({preventScroll:!0,focusVisible:!1})}function V(e,t,a){let n=_(e.value,(0,eR.createChangeEventDetails)(t,a,void 0,{activeThumbIndex:e.thumbIndex}));return n&&(D.current=e.value,B.current=Array.isArray(e.value)?e.value:[e.value],e.didSwap&&($(e.thumbIndex),z(e.thumbIndex))),n}let J=(0,ef.useStableCallback)(e=>{let t=function(e,t){if(null!=t.current&&e.changedTouches){for(let a=0;a<e.changedTouches.length;a+=1){let n=e.changedTouches[a];if(n.identifier===t.current)return{x:n.clientX,y:n.clientY}}return null}return{x:e.clientX,y:e.clientY}}(e,I);if(null==t)return;if(P.current+=1,"pointermove"===e.type&&0===e.buttons)return void q(e);let a=W(t);null!=a&&ns(a.value,S,h)&&(!o&&P.current>2&&v(!0),V(a,eL.REASONS.drag,e))}),q=(0,ef.useStableCallback)(e=>{w(-1),v(!1),g.current=null;let t=D.current;if(Array.isArray(t)&&t.length!==j.length&&(D.current=null),null!=D.current){let t=c.current;m(D.current,(0,eR.createGenericEventDetails)(t,e))}"pointerType"in e&&O.current?.hasPointerCapture(e.pointerId)&&O.current?.releasePointerCapture(e.pointerId),y.current=-1,I.current=null,X()}),Y=(0,ef.useStableCallback)(e=>{if(s)return;if(G((0,eO.getTarget)(e)))return void U();let t=e.changedTouches[0];if(null==t)return;I.current=t.identifier;let a={x:t.clientX,y:t.clientY};K(a);let n=W(a);if(null==n)return;z(n.thumbIndex),V(n,eL.REASONS.trackPress,e),P.current=0;let i=(0,ad.ownerDocument)(O.current);i.addEventListener("touchmove",J,{passive:!0}),i.addEventListener("touchend",q,{passive:!0})}),X=(0,ef.useStableCallback)(()=>{let e=(0,ad.ownerDocument)(O.current);e.removeEventListener("pointermove",J),e.removeEventListener("pointerup",q),e.removeEventListener("touchmove",J),e.removeEventListener("touchend",q),f.current=null,D.current=null}),Z=(0,nb.useAnimationFrame)();return N.useEffect(()=>{let e=O.current;if(!e)return()=>X();let t=(0,ny.addEventListener)(e,"touchstart",Y,{passive:!0});return()=>{t(),Z.cancel(),X()}},[X,Y,O,Z]),N.useEffect(()=>{s&&X()},[s,X]),(0,tV.useRenderElement)("div",e,{state:k,ref:[t,b,O,L],props:[{"data-base-ui-slider-control":x?"":void 0,onPointerDown(e){let t=O.current,a=(0,eO.getTarget)(e.nativeEvent);if(!t||s||e.defaultPrevented||!(0,eA.isElement)(a)||0!==e.button)return;if(G(a))return void U();let n={x:e.clientX,y:e.clientY};K(n);let i=W(n);if(null==i)return;(0,eO.contains)(C.current[i.thumbIndex],(0,eO.activeElement)((0,ad.ownerDocument)(t)))?e.preventDefault():Z.request(()=>{z(i.thumbIndex)}),v(!0),null==g.current&&V(i,eL.REASONS.trackPress,e.nativeEvent),e.nativeEvent.pointerId&&t.setPointerCapture(e.nativeEvent.pointerId),P.current=0;let r=(0,ad.ownerDocument)(t);r.addEventListener("pointermove",J,{passive:!0}),r.addEventListener("pointerup",q,{once:!0})}},r],stateAttributesMapping:nl})}),nS=N.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e,{state:s}=nd();return(0,tV.useRenderElement)("div",e,{state:s,ref:t,props:[{style:{position:"relative"}}
1,r],stateAttributesMapping:nl})});var nA=e.i(2239);function nN(){return eS.NOOP}function nC(){return!1}function nj(){return!0}function nE(){return(0,nA.useSyncExternalStore)(nN,nC,nj)}var nM=e.i(73327),nT=e.i(72410);function nO(e){let{script:t}=e,{nonce:n}=(0,nT.useCSPContext)();return nE()?(0,a.jsx)("script",{nonce:n,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0}):null}let nR=new Set([...nM.COMPOSITE_KEYS,nM.PAGE_UP,nM.PAGE_DOWN]),nL=N.forwardRef(function(e,n){let i,r,s,{render:o,children:l,className:c,"aria-describedby":d,"aria-label":u,"aria-labelledby":h,"aria-valuetext":m,disabled:p=!1,getAriaLabel:g,getAriaValueText:y,id:f,index:b,inputRef:x,onBlur:w,onFocus:v,onKeyDown:_,tabIndex:k,style:S,...A}=e,C=(0,tQ.useBaseUiId)(f),{active:j,lastUsedThumbIndex:E,controlRef:M,disabled:T,validation:O,format:R,handleInputChange:L,inset:I,labelId:P,largeStep:F,locale:D,max:B,min:H,minStepsBetweenValues:$,form:U,name:G,orientation:W,pressedThumbCenterOffsetRef:K,pressedThumbIndexRef:z,renderBeforeHydration:V,setActive:J,setIndicatorPosition:q,state:Y,step:X,thumbRefs:Z,values:Q}=nd(),ee=(0,tK.useDirection)(),et=p||T,ea=Q.length>1,en="vertical"===W,ei="rtl"===ee,{setTouched:er,setFocused:es,validationMode:eo}=(0,tC.useFieldRootContext)(),el=N.useRef(null),ec=N.useRef(null),ed=N.useRef(!1),eu=(0,ef.useStableCallback)(e=>{ed.current||v?.(e)}),eh=(0,ef.useStableCallback)(e=>{ed.current||w?.(e)}),em=(0,tQ.useBaseUiId)(),ep=(0,tM.useLabelableId)(),ey=ea?em:ep,ex=N.useMemo(()=>({inputId:ey}),[ey]),{ref:ev,index:e_}=(0,aW.useCompositeListItem)({metadata:ex}),ek=ea?b??e_:0,eS=ek===Q.length-1,eA=Q[ek],eN=(eA-H)*100/(B-H),[eC,ej]=N.useState(),eE=nE(),eM=E>=0&&E<Q.length?E:-1,eT=(0,ef.useStableCallback)(()=>{let e=M.current,t=el.current;if(!e||!t)return;let a=t.getBoundingClientRect(),n=e.getBoundingClientRect(),i=en?"height":"width",r=n[i]-a[i],s=(a[i]/2+r*eN/100)/n[i]*100,o=Number.isFinite(s)?s:void 0;ej(o),0===ek?q(e=>[o,e[1]]):eS&&q(e=>[e[0],o])});(0,eg.useIsoLayoutEffect)(()=>{I&&queueMicrotask(eT)},[eT,I]),(0,eg.useIsoLayoutEffect)(()=>{I&&eT()},[eT,I,eN]),(0,eg.useIsoLayoutEffect)(()=>{if(!I)return;let e=M.current,t=el.current;if(!e||!t)return;let a=(0,nf.ownerWindow)(e).ResizeObserver;if("function"!=typeof a)return;let n=new a(eT);return n.observe(e),n.observe(t),()=>{n.disconnect()}},[M,eT,I]);let eR=en?"bottom":"insetInlineStart",eL=en?"left":"top";ea?j===ek?i=2:eM===ek&&(i=1):j===ek&&(i=1),r=I||Number.isFinite(eN)?{position:"absolute",[eR]:I?"var(--position)":`${eN}%`,[eL]:"50%",translate:`${(en||!ei?-1:1)*50}% ${(en?1:-1)*50}%`,zIndex:i,...I&&{"--position":`${eC??0}%`,visibility:V&&eE||void 0===eC?"hidden":void 0}}:ew.visuallyHidden,en&&(s=ei?"vertical-rl":"vertical-lr");let eI="function"==typeof g?g(ek):u,eP=(0,t$.mergeProps)({"aria-label":eI,"aria-labelledby":h??(null==eI?P:void 0),"aria-describedby":d,"aria-orientation":W,"aria-valuenow":eA,"aria-valuetext":"function"==typeof y?y(np(eA,D,R),eA,ek):m??function(e,t,a,n){if(!(t<0))return 2===e.length?`${np(e[t],n,a)} ${0===t?"start":"end"} range`:a?np(e[t],n,a):void 0}(Q,ek,R,D),disabled:et,form:U,id:ey,max:B,min:H,name:G,onChange(e){L(e.currentTarget.valueAsNumber,ek,e)},onFocus(e){let t=ed.current;ed.current=!1,J(ek),es(!0),t&&e.stopPropagation()},onBlur(e){ed.current?e.stopPropagation():(J(-1),Z.current.some(t=>(0,eO.contains)(t,e.relatedTarget))||(er(!0),es(!1),"onBlur"===eo&&O.commit(nr(eA,ek,H,B,ea,Q))))},onKeyDown(e){var t;let a;if(e.defaultPrevented||!nR.has(e.key))return;nM.COMPOSITE_KEYS.has(e.key)&&e.stopPropagation();let n=null,i=0,r=e.shiftKey?F:X,s=nv(eA,X,H);switch(e.key){case nM.ARROW_UP:i=1;break;case nM.ARROW_RIGHT:i=ei?-1:1;break;case nM.ARROW_DOWN:i=-1;break;case nM.ARROW_LEFT:i=ei?1:-1;break;case nM.PAGE_UP:r=F,i=1;break;case nM.PAGE_DOWN:r=F,i=-1;break;case nM.END:n=ea&&Number.isFinite(Q[ek+1])?Q[ek+1]-X*$:B;break;case nM.HOME:n=ea&&Number.isFinite(Q[ek-1])?Q[ek-1]+X*$:H}if(0!==i&&(a=Number((s+(t=r)*i).toFixed(Math.max(nw(s),nw(t),nw(H)))),n=(0,nn.clamp)(a,H,B)),null!==n){let t=e.currentTarget;(0,as.matchesFocusVisible)(t)||(ed.current=!0,t.blur(),t.focus({preventScroll:!0,focusVisible:!0})),L(n,ek,e),e.preventDefault()}},step:X,style:{...ew.visuallyHidden,width:"100%",height:"100%",writingMode:s},tabIndex:k,type:"range",value:eA??""},e=>O.getValidationProps(et,e),{onFocus:eu,onBlur:eh,onKeyDown:_}),eF=(0,eb.useMergedRefs)(ec,O.inputRef,x);return(0,tV.useRenderElement)("div",e,{state:Y,ref:[n,ev,el],props:[{"data-index":ek,children:(0,a.jsxs)(N.Fragment,{children:[l,(0,a.jsx)("input",{ref:eF,...eP,suppressHydrationWarning:!0}),I&&eS&&V&&(t||(t=(0,a.jsx)(nO,{script:""})))]}),id:C,onPointerDown(e){if(et)return;z.current=ek;let t=nx(e.currentTarget,en);K.current=(en?e.clientY:e.clientX)-t},style:r,suppressHydrationWarning:V||void 0},A],stateAttributesMapping:nl})}),nI=N.forwardRef(function(e,t){var a,n,i;let r,s,o,{render:l,className:c,style:d,...u}=e,{indicatorPosition:h,inset:m,max:p,min:g,orientation:y,renderBeforeHydration:f,state:b,values:x}=nd(),w=nE(),v=x.length>1,_=(a="vertical"===y,n=m?h[0]:(x[0]-g)*100/(p-g),i=m?h[1]:(x[x.length-1]-g)*100/(p-g),r={visibility:m&&f&&w||m&&(void 0===n||v&&void 0===i)?"hidden":void 0,position:a?"absolute":"relative",[a?"width":"height"]:"inherit"},s=`${n??0}%`,o=`${(i??0)-(n??0)}%`,m&&(r["--start-position"]=s,s="var(--start-position)",v&&(r["--relative-size"]=o,o="var(--relative-size)")),r[a?"bottom":"insetInlineStart"]=v?s:0,r[a?"height":"width"]=v?o:s,r);return(0,tV.useRenderElement)("div",e,{state:b,ref:t,props:[{"data-base-ui-slider-indicator":f?"":void 0,style:_,suppressHydrationWarning:f||void 0},u],stateAttributesMapping:nl})});e.s(["Control",0,nk,"Indicator",0,nI,"Label",0,nh,"Root",0,nu,"Thumb",0,nL,"Track",0,nS,"Value",0,ng],91095);var nP=e.i(91095),nP=nP;let nF=({value:e,onValueChange:t,min:n=0,max:i=100,step:r=1,disabled:o=!1,className:l,"aria-label":c,"aria-describedby":d})=>(0,a.jsx)(nP.Root,{value:e,onValueChange:e=>{t("number"==typeof e?e:e[0])},min:n,max:i,step:r,disabled:o||i<=n,className:(0,s.cn)("relative w-full select-none",o&&"opacity-50",l),children:(0,a.jsx)(nP.Control,{className:"flex w-full touch-none items-center py-2",children:(0,a.jsxs)(nP.Track,{className:"relative h-1.5 w-full rounded-full bg-gray-200",children:[(0,a.jsx)(nP.Indicator,{className:"absolute h-full rounded-full bg-blue-600"}),(0,a.jsx)(nP.Thumb,{"aria-label":c,"aria-describedby":d,className:(0,s.cn)("h-4 w-4 roun
1ded-full border-2 border-blue-600 bg-white shadow-sm outline-none transition-transform","focus-visible:ring focus-visible:ring-offset-2","data-[dragging]:scale-110")})]})})}),nD=({label:e,hint:t,value:n,min:r,max:s,step:o=1,onChange:l})=>{let c=(0,N.useId)();return(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eh.Label,{label:e,className:"text-gray-800"}),(0,a.jsx)(nF,{value:n,min:r,max:s,step:o,onValueChange:l,"aria-label":e,"aria-describedby":t?c:void 0,className:"mt-2"}),t&&(0,a.jsx)(i.Body12,{id:c,className:"text-gray-500",children:t})]})},nB=({inputs:e,onChange:t})=>{let{t:n}=M("components",{keyPrefix:"compComparator"}),r=(0,N.useId)(),s=ei[e.branch]??ei["British Army"],o=eo(e.branch,e.rank),l=function(e){if(!e)return!1;let t=u.default.payScales[e];return!!t&&t.some(e=>e.supp1!==e.supp2||e.supp2!==e.supp3||e.supp3!==e.supp4)}(o),c=el(o,e.supplement),d=Math.min(e.dependents,6),h=[{value:"1",label:n("supplement1")},{value:"2",label:n("supplement2")},{value:"3",label:n("supplement3")},{value:"4",label:n("supplement4")}],m=[{value:"private",label:n("accommodationPrivate")},{value:"sfa",label:n("accommodationSfa")},{value:"sla",label:n("accommodationSla")}];return(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2",children:[(0,a.jsx)(nt,{label:n("serviceBranch"),value:e.branch,onChange:e=>{let a=(ei[e]??[])[0]??"",n=el(eo(e,a),1);t({branch:e,rank:a,payLevel:n[0]?.value??"",supplement:1})},options:en,placeholder:n("selectBranch")}),(0,a.jsx)(nt,{label:n("rank"),value:e.rank,onChange:a=>{let n=el(eo(e.branch,a),1);t({rank:a,payLevel:n[0]?.value??"",supplement:1})},options:s,placeholder:n("selectRank")}),l&&(0,a.jsx)(nt,{label:n("supplementLabel"),description:n("supplementHint"),value:String(e.supplement),onChange:e=>t({supplement:Number(e)}),options:h,placeholder:n("supplementPlaceholder")}),(0,a.jsx)(nt,{label:n("payLevel"),description:n("payLevelHint",{grade:o??n("payLevelGradeFallback")}),value:e.payLevel,onChange:e=>t({payLevel:e}),options:c.map(({value:e,label:t})=>({value:e,label:t})),placeholder:n("payLevelPlaceholder")}),(0,a.jsx)(nt,{label:n("pensionScheme"),description:n("pensionSchemeHint"),value:e.pensionScheme,onChange:e=>t({pensionScheme:e}),options:er}),(0,a.jsx)(nD,{label:n("yearsOfService",{count:e.yos}),hint:n("yearsOfServiceHint"),value:e.yos,min:0,max:40,onChange:e=>t({yos:e})}),(0,a.jsx)(nt,{label:n("location"),description:n("locationHint"),value:e.location,onChange:e=>t({location:e}),options:es}),(0,a.jsx)(nt,{label:n("accommodation"),description:n("accommodationHint"),value:e.accommodationType,onChange:e=>t({accommodationType:e}),options:m,placeholder:n("accommodationPlaceholder")}),(0,a.jsx)(nD,{label:n("dependents",{count:e.dependents}),hint:n("dependentsHint"),value:e.dependents,min:0,max:10,onChange:a=>{let n=Math.min(a,6),i=e.includeChildcare&&a>0?Math.min(Math.max(1,e.childrenEligible),n):0;t({dependents:a,childrenEligible:i})}}),e.dependents>0&&(0,a.jsx)("div",{className:"sm:col-span-2",children:(0,a.jsxs)("div",{className:"flex items-start gap-3 rounded-lg border border-gray-200 bg-gray-50 p-3",children:[(0,a.jsx)("div",{className:"mt-0.5 shrink-0",children:(0,a.jsx)(na.Switch,{id:r,checked:e.includeChildcare,onCheckedChange:a=>t({includeChildcare:a,childrenEligible:a?Math.max(1,e.childrenEligible):0}),"aria-label":n("childcareTitle"),"aria-describedby":`${r}-desc`})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)(i.Body16b,{as:"span",className:"text-gray-800",children:n("childcareTitle")}),(0,a.jsx)(i.Body12,{id:`${r}-desc`,className:"mt-0.5 text-gray-500",children:n("childcareDescription")})]})]})}),e.includeChildcare&&e.dependents>0&&(d>1?(0,a.jsx)(nD,{label:n("eligibleChildren",{count:e.childrenEligible}),hint:n("eligibleChildrenHint"),value:e.childrenEligible,min:1,max:d,onChange:e=>t({childrenEligible:e})}):(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eh.Label,{label:n("eligibleChildren",{count:1}),className:"text-gray-800"}),(0,a.jsx)(i.Body12,{className:"text-gray-500",children:n("eligibleChildrenHint")})]}))]})},nH=()=>{let[e,t]=(0,N.useState)(ed),[n,i]=(0,N.useState)(null),[r,s]=(0,N.useState)(!1);return(0,N.useEffect)(()=>{r&&i(A(e,{...eu}))},[e,r]),(0,a.jsx)(Z,{country:"UK",result:n,branch:e.branch,rank:e.rank,yos:e.
1yos,onCalculate:()=>{i(A(e,{...eu})),s(!0),requestAnimationFrame(()=>{document.getElementById("comp-results")?.scrollIntoView({behavior:"smooth",block:"start"})})},children:(0,a.jsx)(nB,{inputs:e,onChange:e=>t(t=>({...t,...e}))})})},n$=({inputs:e,onChange:t})=>{let{t:n}=M("components",{keyPrefix:"compComparator"});return(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2",children:[(0,a.jsx)(nt,{label:n("serviceBranch"),value:e.branch,onChange:e=>t({branch:e}),options:Q,placeholder:n("selectBranch")}),(0,a.jsx)(nt,{label:n("rankRate"),value:e.rank,onChange:e=>t({rank:e}),options:ee,placeholder:n("selectRank")}),(0,a.jsx)(nD,{label:n("yearsOfService",{count:e.yos}),hint:n("yearsOfServiceHint"),value:e.yos,min:0,max:40,onChange:e=>t({yos:e})})]})},nU=({inputs:e,onChange:t,residenceError:n})=>{let{t:r}=M("components",{keyPrefix:"compComparator"}),s=e.postServiceColTier,o=r(`colTier${s}`),l=r(`colCities${s}`);return(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2",children:[(0,a.jsx)("div",{id:"comp-residence",children:(0,a.jsx)(nt,{label:r("residenceLabel"),description:r("residenceHint"),error:n,value:e.stateOfLegalResidence,onChange:e=>t({stateOfLegalResidence:e}),options:ea,placeholder:r("residencePlaceholder"),notFoundLabel:r("residenceNotFound")})}),(0,a.jsx)(nt,{label:r("dutyStation"),description:r("dutyStationHint"),value:e.dutyStation,onChange:e=>t({dutyStation:e}),options:y,placeholder:r("dutyStationPlaceholder"),notFoundLabel:r("dutyStationNotFound"),allowClear:!0}),(0,a.jsx)(nD,{label:r("dependents",{count:e.dependents}),hint:r("dependentsHint"),value:e.dependents,min:0,max:10,onChange:e=>t({dependents:e})}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(eh.Label,{label:r("expectedColLabel",{tier:o}),className:"text-gray-800"}),(0,a.jsx)(nF,{value:s,min:1,max:3,step:1,onValueChange:e=>t({postServiceColTier:e}),"aria-label":r("expectedColLabel",{tier:o}),className:"mt-2"}),(0,a.jsxs)("div",{className:"mt-1 flex justify-between px-0.5 text-xs text-gray-500",children:[(0,a.jsx)("span",{children:r("colTier1")}),(0,a.jsx)("span",{children:r("colTier2")}),(0,a.jsx)("span",{children:r("colTier3")})]}),(0,a.jsx)(i.Body12,{className:"text-gray-500",children:r("colHint",{examples:l})})]}),(0,a.jsx)(nD,{label:r("tspLabel",{percent:e.tspPercent}),hint:r("tspHint"),value:e.tspPercent,min:0,max:100,onChange:e=>t({tspPercent:e})})]})},nG=()=>{let{t:e}=M("components",{keyPrefix:"compComparator"}),[t,n]=(0,N.useState)(ec),[i,r]=(0,N.useState)(null),[s,o]=(0,N.useState)(!1),[l,c]=(0,N.useState)(!1),d=""!==t.stateOfLegalResidence;(0,N.useEffect)(()=>{s&&d&&r(S(t,{}))},[t,s,d]);let u=e=>{e.stateOfLegalResidence&&c(!1),n(t=>({...t,...e}))};return(0,a.jsx)(Z,{country:"US",result:i,branch:t.branch,rank:t.rank,yos:t.yos,onCalculate:()=>{if(!d){c(!0),document.getElementById("comp-residence")?.scrollIntoView({behavior:"smooth",block:"center"});return}r(S(t,{})),o(!0),requestAnimationFrame(()=>{document.getElementById("comp-results")?.scrollIntoView({behavior:"smooth",block:"start"})})},calculateDisabled:!d,children:(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)(n$,{inputs:t,onChange:u}),(0,a.jsx)("div",{className:"border-t border-gray-200"}),(0,a.jsx)(nU,{inputs:t,onChange:u,residenceError:l?e("residenceRequired"):void 0})]})})},nW=({region:e,onRegionChange:t,showIntro:n=!0})=>{let{t:r}=M("components",{keyPrefix:"compComparator"}),o=[{value:"GB",label:r("countryUK")},{value:"US",label:r("countryUS")}];return(0,a.jsxs)("div",{className:"mx-auto w-full max-w-4xl space-y-8 px-4 py-8 sm:px-6",children:[n&&(0,a.jsxs)("header",{className:"space-y-4 text-center",children:[(0,a.jsx)(i.H3,{as:"h1",className:"text-gray-800",children:r("heroTitle")}),(0,a.jsx)(i.Body16,{className:"mx-auto max-w-2xl text-gray-600",children:r("heroSubtitle")}),t&&(0,a.jsx)("div",{role:"tablist","aria-label":r("countrySwitchLabel"),className:"inline-flex rounded-[10px] border border-gray-200 bg-white p-1",children:o.map(n=>{let i=e===n.value;return(0,a.jsx)("button",{type:"button",role:"tab","aria-selected":i,onClick:()=>
1t(n.value),className:(0,s.cn)("rounded-md px-6 py-1.5 text-sm font-semibold transition-colors",i?"bg-gray-900 text-white":"text-gray-500 hover:text-gray-800"),children:n.label},n.value)})})]}),"GB"===e?(0,a.jsx)(nH,{}):(0,a.jsx)(nG,{})]})};var nK=e.i(188),nz=e.i(37286);nK.default,nz.default;let nV={"en-GB":nK.default.compComparator,"en-US":nz.default.compComparator},nJ=({locale:e,region:t})=>(0,a.jsx)(E,{copy:nV[e],children:(0,a.jsx)(nW,{region:t,showIntro:!1})}),nq=({children:e,className:t})=>(0,a.jsx)("p",{className:(0,s.cn)("text-xs font-semibold uppercase tracking-[0.08em] text-blue-600",t),children:e}),nY=({children:e})=>(0,a.jsx)("h2",{className:"font-heading text-[1.75rem] font-semibold leading-tight text-gray-900 sm:text-[2.125rem]",children:e}),nX=({value:e,caption:t,accent:n})=>(0,a.jsxs)("div",{className:"rounded-[20px] border border-[#d6deff] bg-white p-8 shadow-[0_6px_14px_rgba(10,10,15,0.08),0_2px_4px_rgba(10,10,15,0.04)]",children:[(0,a.jsx)("p",{className:(0,s.cn)("font-heading text-[2.75rem] font-semibold leading-none",n?"text-blue-600":"text-gray-900"),children:e}),(0,a.jsx)(i.Body16,{className:"mt-4 text-gray-600",children:t})]}),nZ=()=>(0,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0,className:"text-blue-600",children:(0,a.jsx)("path",{d:"M10 4v12m0 0 5-5m-5 5-5-5",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})}),nQ=({copy:e})=>(0,a.jsxs)("div",{className:"rounded-[22px] bg-white p-6 shadow-[0_20px_40px_rgba(10,10,15,0.12),0_6px_12px_rgba(10,10,15,0.06)] ring-1 ring-gray-100 sm:p-8",children:[(0,a.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-[0.06em] text-gray-500",children:e.eyebrow}),(0,a.jsxs)("div",{className:"mt-4 rounded-2xl border border-gray-200 p-5",children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.06em] text-gray-500",children:e.totalLabel}),(0,a.jsxs)("p",{className:"mt-1 font-heading text-4xl font-semibold text-gray-900",children:[e.total,(0,a.jsx)("span",{className:"ml-1 text-base font-medium text-gray-500",children:e.perMonth})]})]}),(0,a.jsx)("div",{className:"flex justify-center py-2",children:(0,a.jsx)(nZ,{})}),(0,a.jsxs)("div",{className:"rounded-2xl bg-gray-900 p-5",children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.06em] text-white/60",children:e.civilianLabel}),(0,a.jsxs)("p",{className:"mt-1 font-heading text-4xl font-semibold text-white",children:[e.civilian,(0,a.jsx)("span",{className:"ml-1 text-base font-medium text-white/60",children:e.perMonth})]})]}),(0,a.jsx)("p",{className:"mt-4 text-center text-sm text-gray-500",children:e.footnote})]}),n0=({items:e})=>(0,a.jsx)("div",{className:"space-y-4",children:e.map(e=>(0,a.jsx)(i.Body18,{className:"text-gray-600",children:e},e))}),n2=({table:e})=>(0,a.jsx)("div",{className:"mt-8 overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full min-w-[560px] border-collapse text-left",children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{className:"bg-[#eef1ff]",children:e.columns.map(e=>(0,a.jsx)("th",{className:"px-5 py-3 text-xs font-semibold uppercase tracking-[0.06em] text-blue-700",children:e},e))})}),(0,a.jsx)("tbody",{children:e.rows.map((e,t)=>(0,a.jsx)("tr",{children:e.map((e,t)=>(0,a.jsx)("td",{className:(0,s.cn)("border-t border-gray-200 px-5 py-4 text-gray-600",0===t&&"font-semibold text-gray-900"),children:e},t))},t))})]})}),n1=({section:e})=>{let t,n=(0,a.jsxs)("div",{children:[e.eyebrow&&(0,a.jsx)(nq,{className:"mb-3",children:e.eyebrow}),(0,a.jsx)(nY,{children:e.heading})]});if(e.table)t=(0,a.jsxs)("div",{children:[n,(0,a.jsx)("div",{className:"mt-6 max-w-3xl",children:(0,a.jsx)(n0,{items:e.paragraphs})}),(0,a.jsx)(n2,{table:e.table}),e.tableOutro&&(0,a.jsx)(i.Body18,{className:"mt-6 max-w-3xl text-gray-600",children:e.tableOutro})]});else if(e.stats&&e.stats.length>0){let i=1===e.stats.length;t=(0,a.jsxs)("div",{className:"grid gap-10 lg:grid-cols-2 lg:items-center lg:gap-16",children:[(0,a.jsxs)("div",{children:[n,(0,a.jsx)("div",{className:"mt-6",children:(0,a.jsx)(n0,{items:e.paragraphs})})]}),(0,a.jsx)("div",{className:"space-y-6",children:e.stats.map(e=>(0,a.jsx)(nX,{value:e.value,caption:e.caption,accent:i},e.caption))})]})}else t=(0,a.jsxs)("div",{className:"grid gap-8 lg:grid-cols-2 lg:gap-16",children:[n,(0,a.jsx)(n0,{items:e.paragraphs})]});return(0,a.jsx)("section",{className:(0,s.cn)("py-16 lg:py-20","tint"===e.background?"bg-blue-50":"bg-white"),children:(0,a.jsx)("div",{className:"site-container",children:t})})},n5=({locale:e,copy:t})=>(0,a.jsx)("section",{className:"bg-white py-16 lg:py-20",children:(0,a.jsx)("div",{className:"site-container",children:(0,a.jsxs)("div",{className:"relative overflow-hidden rounded-[28px] bg-gray-900 px-8 py-14 shadow-[0_30px_80px_-24px_rgba(0,72,255,0.45)] sm:px-14",children:[(0,a.jsx)("div",{"aria-hidden":!0,
1className:"pointer-events-none absolute -inset-px rounded-[28px] bg-[radial-gradient(60%_120%_at_80%_0%,rgba(0,72,255,0.25),transparent_60%)]"}),(0,a.jsxs)("div",{className:"relative max-w-2xl",children:[(0,a.jsx)(nq,{className:"text-blue-300",children:t.eyebrow}),(0,a.jsx)("h2",{className:"mt-3 font-heading text-[1.75rem] font-semibold leading-tight text-white sm:text-[2.125rem]",children:t.heading}),(0,a.jsx)(i.Body18,{className:"mt-5 text-gray-300",children:t.body}),(0,a.jsx)("div",{className:"mt-8",children:(0,c.navVisible)(e,"/military-skills-translator")?(0,a.jsx)(n.default,{href:(0,l.withLocale)(e,"/military-skills-translator"),className:"inline-flex items-center justify-center rounded-lg bg-blue-600 px-6 py-4 font-medium leading-none text-white transition-colors hover:bg-[#0039c9]",children:t.linkLabel}):(0,a.jsx)("a",{href:o.APP_LINKS.signup,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center rounded-lg bg-blue-600 px-6 py-4 font-medium leading-none text-white transition-colors hover:bg-[#0039c9]",children:t.linkLabel})})]})]})})}),n3=({copy:e})=>(0,a.jsx)("section",{className:"bg-blue-50 py-16 lg:py-20",children:(0,a.jsxs)("div",{className:"site-container",children:[(0,a.jsx)(nq,{className:"mb-3",children:e.faqEyebrow}),(0,a.jsx)(nY,{children:e.faqHeading}),(0,a.jsx)("div",{className:"mt-8",children:(0,a.jsx)(r.CompactAccordion,{items:e.faq.map(e=>({title:e.question,content:(0,a.jsx)(i.Body16,{className:"text-gray-600",children:e.answer})}))})})]})});e.s(["CompComparatorPage",0,({locale:e,region:t,copy:n})=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("section",{className:"bg-white",children:(0,a.jsxs)("div",{className:"site-container grid gap-12 py-14 lg:grid-cols-2 lg:items-center lg:gap-16 lg:py-20",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(nq,{children:n.hero.eyebrow}),(0,a.jsxs)("h1",{className:"mt-4 font-heading text-[2.75rem] font-semibold leading-[1.05] text-gray-900 sm:text-[3.25rem]",children:[n.hero.titleLead," ",(0,a.jsx)("span",{className:"text-blue-600",children:n.hero.titleAccent})]}),(0,a.jsx)(i.Body18,{className:"mt-6 max-w-xl text-gray-600",children:n.hero.subtitle}),(0,a.jsx)("p",{className:"mt-8 text-sm text-gray-500",children:n.hero.trustLine})]}),(0,a.jsx)(nQ,{copy:n.preview})]})}),(0,a.jsx)("section",{className:"bg-white pb-12",children:(0,a.jsx)(nJ,{locale:e,region:t})}),n.sections.map(e=>(0,a.jsx)(n1,{section:e},e.id)),(0,a.jsx)(n5,{locale:e,copy:n.cta}),(0,a.jsx)(n3,{copy:n})]})],12186)},85242,e=>{"use strict";var t,a,n,i,r=e.i(43476),s=e.i(71645);e.s([],23755),e.i(23755);var o=e.i(51437),l=e.i(67865),c=e.i(53687),d=e.i(33332);let u=s.createContext(void 0);function h(){let e=s.useContext(u);if(void 0===e)throw Error((0,d.default)(10));return e}var m=e.i(52245);let p={value:()=>null},g=s.forwardRef(function(e,t){let{render:a,className:n,disabled:i=!1,hiddenUntilFound:d,keepMounted:h,loopFocus:g,onValueChange:y,multiple:f=!1,orientation:b="vertical",value:x,defaultValue:w,style:v,..._}=e,k=s.useMemo(()=>{if(void 0===x)return w??[]},[x,w]),S=s.useRef([]),[A,N]=(0,o.useControlled)({controlled:x,default:k,name:"Accordion",state:"value"}),C=(0,l.useStableCallback)((e,t,a)=>{if(f)if(t){let t=A.slice();if(t.push(e),y?.(t,a),a.isCanceled)return;N(t)}else{let t=A.filter(t=>t!==e);if(y?.(t,a),a.isCanceled)return;N(t)}else{let t=A[0]===e?[]:[e];y?.(t,a),a.isCanceled||N(t)}}),j=s.useMemo(()=>({value:A,disabled:i,orientation:b}),[A,i,b]),E=s.useMemo(()=>({disabled:i,handleValueChange:C,hiddenUntilFound:d??!1,keepMounted:h??!1,state:j,value:A}),[i,C,d,h,j,A]),M=(0,m.useRenderElement)("div",e,{state:j,ref:t,props:_,stateAttributesMapping:p});return(0,r.jsx)(u.Provider,{value:E,children:(0,r.jsx)(c.CompositeList,{elementsRef:S,children:M})})});var y=e.i(28918),f=e.i(88015),b=e.i(75606),x=e.i(56434),w=e.i(23910);let v=s.createContext(void 0);function _(){let e=s.useContext(v);if(void 0===e)throw Error((0,d.default)(15));return e}var k=e.i(73553);let S=s.createContext(void 0);function A(){let e=s.useContext(S);if(void 0===e)throw Error((0,d.default)(9));return e}var N=e.i(9407);let C=((t={}).open="data-open",t.closed="data-closed",t[t.startingStyle=N.TransitionStatusDataAttributes.startingStyle]="startingStyle",t[t.endingStyle=N.TransitionStatusDataAttributes.endingStyle]="endingStyle",t),j=((a={}).panelOpen="data-panel-open",a),E={[C.open]:""},M={[C.closed]:""},T={open:e=>e?{[j.panelOpen]:""}:null},O=((n={}).index="data-index",n.disabled="data-disabled",n.open="data-open",n),R={open:e=>e?E:M,index:e=>({[O.index]:String(e)}),...N.transitionStatusMapping,value:()=>null},L=s.forwardRef(function(e,t){let{className:a,disabled:n=!1,onOpenChange:i,render:c,value:d,style:u,...p}=e,{ref:g,index:_}=(0,k.useCompositeListItem)(),A=(0,y.useMergedRefs)(t,g),{disabled:N,handleValueChange:C,state:j,value:E}=h(),M=(0,f.useBaseUiId)(),T=d??M,O=n||N,L=-1!==E.indexOf(T),I=(0,l.useStableCallback)((e,t)=>{i?.(e,t),t.isCanceled||C(T,e,t)}),P=function(e){let{open:t,defaultOpen:a,onOpenChange:n,disabled:i}=e,[r,c]=(0,o.useControlled)({controlled:t,default:a,name:"Collapsible",state:"open"}),{mounted:d,setMounted:u,transitionStatus:h}=(0,w.useTransitionStatus)(r,!0,!0),m=(0,f.useBaseUiId)(),[p,g]=s.useState(),y=null===p?void 0:p??m,v=(0,l.useStableCallback)(e=>{let t=!r,a=(0,b.createChangeEventDetails)(x.REASONS.triggerPress,e.nativeEvent);n(t,a),a.isCanceled||c(t)});return s.useMemo(()=>({defaultPanelId:m,disabled:i,handleTrigger:v,mounted:d,open:r,panelId:y,setMounted:u,setOpen:c,setPanelIdState:g,transitionStatus:h}
1),[m,i,v,d,r,y,u,c,g,h])}({open:L,onOpenChange:I,disabled:O}),F=s.useMemo(()=>({open:P.open,disabled:P.disabled,transitionStatus:P.transitionStatus}),[P.open,P.disabled,P.transitionStatus]),D=s.useMemo(()=>({...P,onOpenChange:I,state:F}),[P,F,I]),B=s.useMemo(()=>({...j,hidden:!L&&!P.mounted,index:_,disabled:O,open:L}),[P.mounted,O,_,L,j]),H=(0,f.useBaseUiId)(),[$,U]=s.useState(),G=null===$?void 0:$??H,W=s.useMemo(()=>({defaultTriggerId:H,open:L,state:B,setTriggerId:U,triggerId:G}),[H,L,B,U,G]),K=(0,m.useRenderElement)("div",e,{state:B,ref:A,props:p,stateAttributesMapping:R});return(0,r.jsx)(v.Provider,{value:D,children:(0,r.jsx)(S.Provider,{value:W,children:K})})}),I=s.forwardRef(function(e,t){let{render:a,className:n,style:i,...r}=e,{state:s}=A();return(0,m.useRenderElement)("h3",e,{state:s,ref:t,props:r,stateAttributesMapping:R})});var P=e.i(46376),F=e.i(40886);let D=s.forwardRef(function(e,t){let{disabled:a,className:n,id:i,render:r,nativeButton:s=!0,style:o,...l}=e,{panelId:c,open:d,handleTrigger:u,disabled:h}=_(),{getButtonProps:p,buttonRef:g}=(0,F.useButton)({disabled:a||h,focusableWhenDisabled:!0,native:s}),{defaultTriggerId:y,state:f,setTriggerId:b}=A(),x=i||void 0;return(0,P.useIsoLayoutEffect)(()=>(b(e=>x??(null===e?void 0:e)),()=>{b(e=>e===x?null:e)}),[x,b]),(0,m.useRenderElement)("button",e,{state:f,ref:[t,g],props:[{"aria-controls":d?c:void 0,"aria-expanded":d,id:x??y,onClick:u},l,p],stateAttributesMapping:T})});var B=e.i(77570),H=e.i(74735),$=e.i(8445),U=e.i(46265),G=e.i(33848),W=e.i(37584),K=e.i(22640);let z={height:void 0,width:void 0};function V(e){return{height:e.scrollHeight,width:e.scrollWidth}}function J(e){return e.split(",").map(e=>e.trim()).some(e=>""!==e&&Number.parseFloat(e)>0)}function q(e,t,a){let n=e.style.getPropertyValue(t),i=e.style.getPropertyPriority(t);return e.style.setProperty(t,a),()=>{""===n?e.style.removeProperty(t):e.style.setProperty(t,n,i)}}let Y=((i={}).accordionPanelHeight="--accordion-panel-height",i.accordionPanelWidth="--accordion-panel-width",i),X=s.forwardRef(function(e,t){let{className:a,hiddenUntilFound:n,keepMounted:i,id:r,render:o,style:c,...d}=e,{hiddenUntilFound:u,keepMounted:p}=h(),{defaultPanelId:g,mounted:f,onOpenChange:w,open:v,setMounted:k,setOpen:S,setPanelIdState:N,transitionStatus:j}=_(),E=r||void 0,M=r??g;(0,P.useIsoLayoutEffect)(()=>(N(e=>E??(null===e?void 0:e)),()=>{N(e=>e===E?null:e)}),[E,N]);let{height:T,props:O,ref:L,shouldPreventOpenAnimation:I,shouldRender:F,transitionStatus:D,width:X}=function(e){let{externalRef:t,hiddenUntilFound:a,id:n,keepMounted:i,mounted:r,onOpenChange:o,open:c,setMounted:d,setOpen:u,transitionStatus:h}=e,m=s.useRef(null),p=s.useRef(null),[g,f]=s.useState(z),w=s.useRef(z),v=s.useRef(!1),_=s.useRef(c),k=s.useRef(!1),[S,A]=s.useState(!1),N=s.useRef(null),j=(0,y.useMergedRefs)(t,m),E=(0,U.useValueAsRef)(c),M=(0,K.useAnimationsFinished)(m),T=!c&&!r,O=S?"idle":h,R=c&&(_.current||k.current),L=!c&&r&&"css-animation"===p.current&&void 0===g.height&&void 0===g.width?w.current:g,I=a&&T&&"css-animation"!==p.current,F=(0,l.useStableCallback)((e,t=!0)=>{t&&(w.current=e),f(e)}),D=(0,l.useStableCallback)(()=>{N.current?.(),N.current=null}),B=(0,l.useStableCallback)(e=>{D(),N.current=()=>{N.current=null,e()}}),Y=(0,l.useStableCallback)(()=>{c&&r&&"css-animation"===p.current&&(k.current=!0)});(0,P.useIsoLayoutEffect)(()=>{S&&"starting"!==h&&A(!1)},[S,h]),s.useEffect(()=>()=>{Y(),D()},[Y,D]),(0,P.useIsoLayoutEffect)(()=>{var e,t;let a,n,i,s=m.current;if(!s)return;!c&&N.current&&D();let o=(e=s,t=R,n=((a=(0,G.ownerWindow)(e).getComputedStyle(e)).animationName.split(",").map(e=>e.trim()).some(e=>""!==e&&"none"!==e)||t)&&J(a.animationDuration),i=J(a.transitionDuration),n&&i||i?"css-transition":n?"css-animation":"none");if(p.current=o,c&&"idle"===h&&_.current&&"css-animation"===o){w.current=V(s);return}if(c&&"starting"===h){let e=v.current;if(v.current=!1,"none"===o){F(V(s)),A(!0);return}if("css-transition"===o){let t=function(e){let t={"justify-content":e.style.justifyContent,"align-items":e.style.alignItems,"align-content":e.style.alignContent,"justify-items":e.style.justifyItems};function a(){Object.entries(t).forEach(([t,a])=>{""===a?e.style.removeProperty(t):e.style.setProperty(t,a)})}Object.keys(t).forEach(t=>{e.style.setProperty(t,"initial","important")});let n=$.AnimationFrame.request(a);return()=>{$.AnimationFrame.cancel(n),a()}}(s);return F(V(s)),e&&(B(q(s,"transition-duration","0s")),A(!0)),t}F(V(s));let t=q(s,"animation-name","none");if(!e)return void t();let a=q(s,"animation-duration","0s");return t(),B(a),void A(!0)}if(!c&&r&&("idle"===h||"starting"===h)){if(_.current=!1,k.current=!1,"none"===o){F(z,!1),d(!1);return}F(V(s));return}if("ending"!==h)return;if("none"===o)return void d(!1);let l=V(s);l.height>0||l.width>0?(F(l),"css-animation"===o&&q(s,"animation-name","none")()):d(!1)},[r,c,D,F,d,B,R,h]),(0,W.useOpenChangeComplete)({enabled:c&&r&&"idle"===O,o
1pen:!0,ref:m,onComplete(){c&&F(z,!1)}}),s.useEffect(()=>{if(c||!r||"ending"!==O||!m.current)return;let e=new AbortController,t=-1;function a(){E.current||(d(!1),F(z,!1))}return t=$.AnimationFrame.request(()=>{M(a,e.signal)}),()=>{$.AnimationFrame.cancel(t),e.abort()}},[E,r,c,O,M,F,d]),(0,P.useIsoLayoutEffect)(()=>{let e=m.current;e&&a&&T&&e.setAttribute("hidden","until-found")},[T,a]),s.useEffect(function(){let e=m.current;if(e)return(0,H.addEventListener)(e,"beforematch",function(e){let t=(0,b.createChangeEventDetails)(x.REASONS.none,e);o(!0,t),t.isCanceled||(v.current=!0,u(!0))})},[o,u]);let X=i||a||r||c;return{height:L.height,props:{...I?{[C.startingStyle]:""}:void 0,hidden:T,id:n},ref:j,shouldPreventOpenAnimation:R,shouldRender:X,transitionStatus:O,width:L.width}}({externalRef:t,hiddenUntilFound:n??u,id:M,keepMounted:i??p,mounted:f,onOpenChange:w,open:v,setMounted:k,setOpen:S,transitionStatus:j}),{state:Z,triggerId:Q}=A(),ee={...Z,transitionStatus:D},et=(0,B.resolveStyle)(c,ee),ea=(0,m.useRenderElement)("div",{...e,style:void 0},{state:ee,ref:L,props:[O,{"aria-labelledby":Q,role:"region",style:{[Y.accordionPanelHeight]:void 0===T?"auto":`${T}px`,[Y.accordionPanelWidth]:void 0===X?"auto":`${X}px`}},d,et?{style:et}:void 0,I?{style:{animationName:"none"}}:void 0],stateAttributesMapping:R});return F?ea:null});e.s(["Header",0,I,"Item",0,L,"Panel",0,X,"Root",0,g,"Trigger",0,D],33179);var Z=e.i(33179),Z=Z,Q=e.i(16327),ee=e.i(87596),et=e.i(2582);e.s(["CompactAccordion",0,({items:e,defaultExpandedIndex:t,variant:a="card",headingLevel:n="h3",multiple:i=!1,className:o})=>{let l=(0,s.useId)(),c=void 0!==t?[`${l}-${t}`]:[],d="flat"===a;return(0,r.jsx)(Z.Root,{defaultValue:c,multiple:i,className:(0,et.cn)("flex flex-col bg-white w-full",d?"divide-y divide-gray-200":"rounded-2xl border border-gray-200 overflow-hidden",o),children:e.map((t,a)=>{let i=`${l}-${a}`,s=a===e.length-1,o=(0,r.jsx)(Q.ChevronDown,{"aria-hidden":"true",className:(0,et.cn)("shrink-0 text-gray-800 transition-transform duration-200",d?"w-6 h-6 group-data-[panel-open]:rotate-180":"w-5 h-5 -rotate-90 group-data-[panel-open]:rotate-0")}),c=(0,r.jsx)(ee.Sub20,{as:"span",className:"flex-1 text-left text-gray-800 font-medium",children:t.title});return(0,r.jsxs)(Z.Item,{value:i,className:(0,et.cn)(!d&&!s&&"border-b border-gray-200"),children:[(0,r.jsx)(Z.Header,{render:"h2"===n?(0,r.jsx)("h2",{}):(0,r.jsx)("h3",{}),children:(0,r.jsx)(Z.Trigger,{className:(0,et.cn)("group flex items-center w-full text-left cursor-pointer outline-none",d?"gap-2 px-6 py-6 data-[panel-open]:pb-5 focus-visible:ring focus-visible:ring-blue-600":"gap-4 px-6 py-5 focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-inset"),children:d?(0,r.jsxs)(r.Fragment,{children:[c,o]}):(0,r.jsxs)(r.Fragment,{children:[o,c]})})}),(0,r.jsx)(Z.Panel,{className:(0,et.cn)("overflow-hidden","h-(--accordion-panel-height) transition-[height] duration-300 ease-out","data-[ending-style]:h-0","data-[starting-style]:h-0"),children:(0,r.jsx)("div",{className:(0,et.cn)("px-6",d?"pb-6":"pb-5 pl-[60px]"),children:t.content})})]},i)})})}],85242)},40467,e=>{"use strict";var t=e.i(43476),a=e.i(2582);let n=/(@@ABLOCK:\d+@@)/,i=/^@@ABLOCK:(\d+)@@$/;var r=e.i(71645),s=e.i(87596),o=e.i(11234),l=e.i(15302),c=e.i(8019);let d=(0,c.envOr)("6LeIWFUtAAAAAKippoAE57FFJVCgJNFKspY46rMM","6Ld3KUMsAAAAAJskX1OLnv3U-TMIBQAdAKN9hKjG"),u=["_GRECAPTCHA","NID"],h=(e,t,a)=>{let n=e.grecaptcha;if(!n)return!1;if(t&&0===t.childElementCount){let e=n.render(t,{sitekey:d});a?.(e)}return!0},m={setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},p=({onWidgetIdChange:e})=>{let a=(0,l.useHasConsent)("marketing"),{openPreferences:n,copy:i}=(0,l.useConsent)(),c=(0,r.useRef)(null);if((0,r.useEffect)(()=>{if(!a){var t=window,n=document;for(let e of(n.querySelectorAll("script[data-recaptcha]").forEach(e=>e.remove()),n.querySelectorAll('script[src*="recaptcha"], iframe[src*="recaptcha"], .grecaptcha-badge').forEach(e=>e.remove()),delete t.grecaptcha,delete t.___grecaptcha_cfg,u))for(let a of["",`; domain=${t.location.hostname}`,"; domain=.google.com"])n.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/${a}`;e?.(null);return}let i=((e,t,a,n=m,i)=>
1{if((e=>{if(e.querySelector("script[data-recaptcha]"))return;let t=e.createElement("script");return t.src="https://www.google.com/recaptcha/api.js?render=explicit",t.async=!0,t.defer=!0,t.setAttribute("data-recaptcha",""),e.head.appendChild(t)})(t),h(e,a(),i))return()=>{};let r=n.setInterval(()=>{h(e,a(),i)&&n.clearInterval(r)},100);return()=>n.clearInterval(r)})(window,document,()=>c.current,void 0,t=>e?.(t));return()=>{i(),e?.(null)}},[a,e]),!a){let e=i.recaptchaPrompt;return(0,t.jsxs)("div",{className:"flex flex-col items-start gap-2 rounded-lg border border-dashed border-gray-300 p-4",children:[(0,t.jsx)(s.Body14,{className:"text-gray-600",children:e.message}),(0,t.jsx)(o.Button,{variant:"link",color:"blue",size:14,onClick:n,children:e.action})]})}return(0,t.jsx)("div",{ref:c,className:"g-recaptcha"})},g=(0,e.i(63260).asset)("67f677e1a64a802268d9d4b8_2025GUIDE.png"),y=(0,c.envOr)("https://prod-webapi-635367212481.europe-west2.run.app","https://webapi-635367212481.europe-west2.run.app").replace(/\/$/,""),f=({labels:e})=>{let a=e.resource,[n,i]=(0,r.useState)(""),[s,o]=(0,r.useState)(""),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)("idle"),[h,m]=(0,r.useState)(""),[f,b]=(0,r.useState)(null),x=async e=>{e.preventDefault();let t=window.grecaptcha,i=null!==f?t?.getResponse(f)??"":"";if(!i){u("error"),m(a.missingRecaptcha);return}u("submitting"),m("");try{let e=await fetch(`${y}/newsletter/subscribe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({firstName:n,lastName:s,email:l,recaptcha_token:i})});if(!e.ok)throw Error(`resource lead capture failed: ${e.status}`);u("success"),m("")}catch{u("error"),m(a.fail),null!==f&&t?.reset(f)}},w="submitting"===d;return(0,t.jsxs)("aside",{className:"blog-resource",children:[(0,t.jsx)("p",{className:"blog-resource__heading",children:a.heading}),(0,t.jsxs)("div",{className:"blog-resource__row",children:[(0,t.jsx)("div",{className:"blog-resource__copy",children:a.body.map(e=>(0,t.jsx)("p",{children:e},e))}),(0,t.jsx)("img",{src:g,alt:"","aria-hidden":"true",className:"blog-resource__image"})]}),"success"===d?(0,t.jsxs)("div",{className:"blog-resource__done",role:"status",children:[(0,t.jsx)("p",{children:a.success}),(0,t.jsx)("a",{className:"blog-resource__button",href:"https://drive.google.com/file/d/12oE2-2ietWGnemePHqU400WXmusBmt3V/view?usp=sharing",target:"_blank",rel:"noopener noreferrer",children:a.download})]}):(0,t.jsxs)("form",{className:"blog-resource__form","aria-label":a.heading,onSubmit:x,children:[(0,t.jsx)("label",{className:"sr-only",htmlFor:"resource-first",children:a.firstName}),(0,t.jsx)("input",{id:"resource-first",name:"firstName",type:"text",required:!0,value:n,onChange:e=>i(e.target.value),placeholder:a.firstName,className:"blog-resource__input"}),(0,t.jsx)("label",{className:"sr-only",htmlFor:"resource-last",children:a.lastName}),(0,t.jsx)("input",{id:"resource-last",name:"lastName",type:"text",required:!0,value:s,onChange:e=>o(e.target.value),placeholder:a.lastName,className:"blog-resource__input"}),(0,t.jsx)("label",{className:"sr-only",htmlFor:"resource-email",children:a.email}),(0,t.jsx)("input",{id:"resource-email",name:"email",type:"email",required:!0,value:l,onChange:e=>c(e.target.value),placeholder:a.email,className:"blog-resource__input"}),(0,t.jsx)(p,{onWidgetIdChange:b}),(0,t.jsx)("button",{type:"submit",disabled:w,className:"blog-resource__button",children:w?a.submitting:a.submit}),(0,t.jsx)("p",{"aria-live":"polite",className:h?"blog-resource__message":"sr-only",children:h})]})]})};var b=e.i(22016);let x=({href:e,className:a,children:n})=>/^https?:\/\//.test(e)?(0,t.jsx)("a",{href:e,className:a,target:"_blank",rel:"noopener noreferrer",children:n}):(0,t.jsx)(b.default,{href:e,className:a,children:n}),w=({eyebrow:e,heading:a,body:n,buttonLabel:i,buttonHref:r,illustration:s})=>(0,t.jsxs)("aside",{className:"article-block article-tool",children:[s&&(0,t.jsx)("img",{className:"article-tool__art",src:s,alt:"","aria-hidden":"true",loading:"lazy"}),(0,t.jsxs)("div",{children:[e&&(0,t.jsx)("p",{className:"article-tool__eyebrow",children:e}),(0,t.jsx)("p",{className:"article-tool__heading",children:a}),n&&(0,t.jsx)("p",{className:"article-tool__body",children:n})]}),(0,t.jsx)(x,{href:r,className:"article-cta__btn",children:i})]}),v=({heading:e,body:a,buttonLabel:n,buttonHref:i,illustration:r})=>(0,t.jsxs)("aside",{className:"article-block article-report",children:[r&&(0,t.jsx)("img",{className:"article-report__art",src:r,alt:"","aria-hidden":"true",loading:"lazy"}),(0,t.jsx)("p",{className:"article-report__heading",children:e}),a&&(0,t.jsx)("p",{className:"article-report__body",children:a}),(0,t.jsx)(x,{href:i,className:"article-cta__btn",children:n})]}),_=({items:e})=>(0,t.jsx)("div",{className:"article-block article-faq",children:e.map((e,a)=>(0,t.jsxs)("details",{className:"article-faq__item",children:[(0,t.jsxs)("summary",{className:"article-faq__summary",children:[e.question,(0,t.jsx)("span",{className:"article-faq__plus","aria-hidden":"true",children:"+"})]}),(0,t.jsx)("p",{className:"article-faq__answer",children:e.answer})]},a))}),k=({items:e})=>(0,t.jsx)("div",{className:"article-block article-imagelist",children:e.map((e,n)=>(0,t.jsxs)("div",{className:(0,a.cn)("article-imagelist__row",!e.img&&"article-imagelist__row--noimg"),children:[e.img&&(0,t.jsx)("div",{className:"article-imagelist__media",children:(0,t.jsx)("img",{src:e.img,alt:e.alt??"","aria-hidden":!e.alt||void 0,loading:"lazy"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"article-imagelist__index","aria-hidden":"true",children:String(n+1).padStart(2,"0")}),(0,t.jsx)("h3",{className:"article-imagelist__heading",children:e.heading}),e.body&&(0,t.jsx)("p",{className:"article-imagelist__body",children:e.body})]})]},n))}),S=({side:e,src:n,alt:i,heading:r,body:s})=>(0,t.jsxs)("div",{className:(0,a.cn)("article-block article-imagetext","right"===e&&"article-imagetext--right"),children:[(0,t.jsx)("div",{className:"article-imagetext__media",children:(0,t.jsx)("img",{src:n,alt:i,"aria-hidden":!i||void 0,loading:"lazy"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"article-imagetext__heading",children:r}),s&&(0,t.jsx)("p",{className:"article-imagetext__body",children:s})]})]}),A=({items:e,eyebrow:a})=>(0,t.jsxs)("aside",{className:"article-block article-takeaways","aria-label":a,children:[(0,t.jsx)("p",{className:"article-takeaways__eyebrow",children:a}),(0,t.jsx)("ul",{className:"article-takeaways__list",children:e.map((e,a)=>(0,t.jsxs)("li",{className:"article-takeaways__item",children:[(0,t.jsx)("svg",{className:"article-takeaways__tick",viewBox:"0 0 24 24",fill:"
1currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.1 14.2-4-4 1.4-1.4 2.6 2.6 5.4-5.4 1.4 1.4-6.8 6.8z"})}),(0,t.jsx)("span",{children:e})]},a))})]}),N=({text:e,name:a,role:n,avatar:i})=>(0,t.jsxs)("blockquote",{className:"article-block article-quote",children:[(0,t.jsx)("span",{className:"article-quote__mark","aria-hidden":"true",children:"â"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"article-quote__text",children:e}),a&&(0,t.jsxs)("div",{className:"article-quote__attr",children:[i&&(0,t.jsx)("span",{className:"article-quote__avatar",children:(0,t.jsx)("img",{src:i,alt:"","aria-hidden":"true",loading:"lazy"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"article-quote__name",children:a}),n&&(0,t.jsx)("p",{className:"article-quote__role",children:n})]})]})]})]}),C=({value:e,context:a})=>(0,t.jsxs)("div",{className:"article-stat",children:[(0,t.jsx)("div",{className:"article-stat__number",children:e}),a&&(0,t.jsx)("p",{className:"article-stat__context",children:a})]}),j=({items:e})=>e.length>1?(0,t.jsx)("div",{className:"article-block article-statpair",children:e.map((e,a)=>(0,t.jsx)(C,{...e},a))}):(0,t.jsx)("div",{className:"article-block",children:(0,t.jsx)(C,{...e[0]})}),E=({poster:e,url:a,playLabel:n})=>{let[i,s]=(0,r.useState)(!1);return i?(0,t.jsx)("div",{className:"article-block article-video",children:(0,t.jsx)("iframe",{src:(e=>{let t=e.match(/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|shorts\/))([\w-]+)/);if(t)return`https://www.youtube-nocookie.com/embed/${t[1]}?autoplay=1`;let a=e.match(/vimeo\.com\/(?:video\/)?(\d+)/);return a?`https://player.vimeo.com/video/${a[1]}?autoplay=1`:e})(a),title:n,allow:"accelerometer; autoplay; encrypted-media; picture-in-picture",allowFullScreen:!0})}):(0,t.jsxs)("button",{type:"button",className:"article-block article-video",onClick:()=>s(!0),"aria-label":n,children:[(0,t.jsx)("img",{src:e,alt:"","aria-hidden":"true",loading:"lazy"}),(0,t.jsx)("span",{className:"article-video__scrim","aria-hidden":"true"}),(0,t.jsx)("span",{className:"article-video__play","aria-hidden":"true",children:(0,t.jsx)("span",{children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M8 5v14l11-7z"})})})})]})},M=({block:e,labels:a,widgets:n})=>{switch(e.type){case"stat":return(0,t.jsx)(j,{items:[{value:e.value,context:e.context}]});case"statpair":return(0,t.jsx)(j,{items:e.items});case"quote":return(0,t.jsx)(N,{text:e.text,name:e.name,role:e.role,avatar:e.avatar});case"video":return(0,t.jsx)(E,{poster:e.poster,url:e.url,playLabel:a.videoPlay});case"imagetext":return(0,t.jsx)(S,{side:e.side,src:e.src,alt:e.alt,heading:e.heading,body:e.body});case"imagelist":return(0,t.jsx)(k,{items:e.items});case"takeaways":return(0,t.jsx)(A,{items:e.items,eyebrow:a.takeawaysEyebrow});case"faq":return(0,t.jsx)(_,{items:e.items});case"tool":return(0,t.jsx)(w,{eyebrow:e.eyebrow,heading:e.heading,body:e.body,buttonLabel:e.buttonLabel,buttonHref:e.buttonHref,illustration:e.illustration});case"report":return(0,t.jsx)(v,{heading:e.heading,body:e.body,buttonLabel:e.buttonLabel,buttonHref:e.buttonHref});case"callout":return n?.cta?(0,t.jsx)(w,{eyebrow:n.cta.eyebrow,heading:n.cta.heading,body:n.cta.body,buttonLabel:n.cta.buttonLabel,buttonHref:n.cta.buttonHref,illustration:n.cta.illustration}):null;case"resource":return n?.blogLabels?(0,t.jsx)(f,{labels:n.blogLabels}):null;default:return null}},T=({html:e,blocks:a,labels:r,widgets:s})=>(0,t.jsx)(t.Fragment,{children:e.split(n).map((e,n)=>{let o=e.match(i);if(o){let e=a[Number(o[1])];return e?(0,t.jsx)(M,{block:e,labels:r,widgets:s},n):null}return e.trim()?(0,t.jsx)("div",{className:"article-prose",dangerouslySetInnerHTML:{__html:e}},n):null})}),O=({variant:e,title:n,standfirst:i,date:r,tags:s,tagsLabel:o,heroImage:l,heroImageAlt:c,breadcrumb:d})=>(0,t.jsx)("header",{className:(0,a.cn)("article-hero",("text"===e||!l)&&"article-hero--text"),children:(0,t.jsx)("div",{className:"article-hero__inner",children:(0,t.jsxs)("div",{className:"article-hero__grid",children:[(0,t.jsxs)("div",{children:[d&&(0,t.jsx)("div",{className:"article-hero__breadcrumb",children:d}),s&&s.length>0&&(0,t.jsx)("ul",{className:"article-hero__tags","aria-label":o,children:s.map(e=>(0,t.jsx)("li",{className:"article-hero__tag",children:e.replace(/-/g," ")},e))}),(0,t.jsx)("h1",{className:"article-hero__title",children:(e=>{let a=e.trim().split(/\s+/);if(a.length<=1)return(0,t.jsx)("span",{className:"text-blue-600",children:e});let n=a.pop();return(0,t.jsxs)(t.Fragment,{children:[a.join(" ")," ",(0,t.jsx)("span",{className:"text-blue-600",children:n})]})})(n)}),i&&(0,t.jsx)("p",{className:"article-hero__standfirst",children:i}),r&&(0,t.jsx)("p",{className:"article-hero__date",children:r})]}),"image"===e&&l&&(0,t.jsxs)("div",{className:"article-hero__media",children:[(0,t.jsx)("span",{className:"article-hero__accent","aria-hidden":"true"}),(0,t.jsx)("div",{className:"article-hero__frame",children:(0,t.jsx)("img",{src:l,alt:c??"","aria-hidden":!c||void 0})})]})]})})}),R={facebook:(0,t.jsx)("path",{d:"M13.5 9H12c-.6 0-1 .4-1 1v1.5h2.5l-.4 2.5H11V21H8.5v-6H6.5v-2.5h2V10c0-2 1.2-3.2 3-3.2h2v2.2z"}),linkedin:(0,t.jsx)("path",{d:"M6.94 5A1.94 1.94 0 1 1 3.06 5a1.94 1.94 0 0 1 3.88 0zM3.4 8.5h3.1V21H3.4V8.5zm5.3 0h2.97v1.7h.04c.41-.78 1.42-1.6 2.92-1.6 3.13
10 3.7 2.06 3.7 4.73V21h-3.1v-5.6c0-1.34-.02-3.06-1.86-3.06-1.87 0-2.16 1.46-2.16 2.96V21H8.7V8.5z"}),copy:(0,t.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),(0,t.jsx)("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]}),top:(0,t.jsx)("g",{fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M12 19V5M5 12l7-7 7 7"})})},L=({label:e,icon:a,onClick:n})=>(0,t.jsx)("button",{type:"button",className:"article-rail__share-btn","aria-label":e,onClick:n,children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:a})}),I=({toc:e,labels:n,showShare:i=!0})=>{let[s,o]=(0,r.useState)(e[0]?.id??""),[l,c]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let t=new Set,a=new IntersectionObserver(a=>{for(let e of a)e.isIntersecting?t.add(e.target.id):t.delete(e.target.id);let n=e.find(e=>t.has(e.id));n&&o(n.id)},{rootMargin:"-120px 0px -70% 0px",threshold:0});for(let t of e){let e=document.getElementById(t.id);e&&a.observe(e)}return()=>a.disconnect()},[e]),(0,r.useEffect)(()=>{if(!l)return;let e=setTimeout(()=>c(!1),2e3);return()=>clearTimeout(e)},[l]);let d=e=>{let t=encodeURIComponent(window.location.href),a="facebook"===e?`https://www.facebook.com/sharer/sharer.php?u=${t}`:`https://www.linkedin.com/sharing/share-offsite/?url=${t}`;window.open(a,"_blank","noopener,noreferrer")};return(0,t.jsxs)("aside",{className:"article-rail",children:[e.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"article-rail__label",children:n.contentsLabel}),(0,t.jsx)("nav",{className:"article-rail__links","aria-label":n.contentsLabel,children:e.map(e=>(0,t.jsx)("a",{href:`#${e.id}`,className:(0,a.cn)("article-rail__link",s===e.id&&"is-active"),"aria-current":s===e.id?"location":void 0,children:e.text},e.id))})]}),i&&(0,t.jsxs)("div",{className:"article-rail__share",children:[(0,t.jsx)("span",{className:"article-rail__share-label",children:n.shareLabel}),(0,t.jsx)(L,{label:n.share.facebook,icon:R.facebook,onClick:()=>d("facebook")}),(0,t.jsx)(L,{label:n.share.linkedin,icon:R.linkedin,onClick:()=>d("linkedin")}),(0,t.jsx)(L,{label:l?n.share.copied:n.share.copy,icon:R.copy,onClick:()=>{"u">typeof navigator&&navigator.clipboard&&navigator.clipboard.writeText(window.location.href).then(()=>c(!0)).catch(()=>{})}}),(0,t.jsx)("span",{className:"sr-only",role:"status","aria-live":"polite",children:l?n.share.copied:""})]}),(0,t.jsx)("button",{type:"button",className:"article-rail__top","aria-label":n.backToTop,onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:R.top})})]})},P=({title:e,items:a})=>0===a.length?null:(0,t.jsx)("section",{className:"article-more",children:(0,t.jsxs)("div",{className:"article-more__inner",children:[(0,t.jsx)("h2",{className:"article-more__title",children:e}),(0,t.jsx)("ul",{className:"article-more__grid",children:a.map(e=>(0,t.jsxs)("li",{className:"article-card",children:[e.image&&(0,t.jsx)("img",{src:e.image,alt:"","aria-hidden":"true",className:"article-card__image",loading:"lazy"}),(0,t.jsxs)("div",{className:"article-card__body",children:[e.tag&&(0,t.jsx)("span",{className:"article-card__tag",children:e.tag.replace(/-/g," ")}),(0,t.jsx)("h3",{className:"article-card__title",children:(0,t.jsx)(b.default,{href:e.href,className:"article-card__link",children:e.title})}),e.snippet&&(0,t.jsx)("p",{className:"article-card__snippet",children:e.snippet})]})]},e.href))})]})});e.s(["ArticleLayout",0,({variant:e,title:n,standfirst:i,date:r,reviewed:s,tags:o,tagsLabel:l,heroImage:c,heroImageAlt:d,breadcrumb:u,html:h,blocks:m,toc:p,labels:g,showShare:y=!1,widgets:f,cta:b,moreTitle:x,more:v})=>{let _=p.length>0||y,k=m.some(e=>"callout"===e.type);return(0,t.jsxs)("article",{className:"article",children:[(0,t.jsx)(O,{variant:e,title:n,standfirst:i,date:r,tags:o,tagsLabel:l,heroImage:c,heroImageAlt:d,breadcrumb:u}),(0,t.jsxs)("div",{className:(0,a.cn)("article-shell",!_&&"article-shell--norail"),children:[_&&(0,t.jsx)(I,{toc:p,labels:g,showShare:y}),(0,t.jsxs)("div",{className:"article-body",children:[(0,t.jsx)(T,{html:h,blocks:m,labels:g,widgets:f}),s&&(0,t.jsx)("p",{className:"article-reviewed",children:s}),b&&!k&&(0,t.jsx)(w,{eyebrow:b.eyebrow,heading:b.heading,body:b.body,buttonLabel:b.buttonLabel,buttonHref:b.buttonHref,illustration:b.illustration})]})]}),(0,t.jsx)(P,{title:x,items:v})]})}],40467)},35247,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(22016),i=e.i(87596),r=e.i(2582),s=e.i(90595),o=e.i(8684);e.s(["BlogIndexContent",0,({locale:e,copy:l,items:c,basePath:d="/blog"})=>{let[u,h]=(0,a.useState)(""),m=u.trim().toLowerCase(),p=(0,a.useMemo)(()=>{let e=[...c].sort((e,t)=>
1(t.date??"").localeCompare(e.date??""));return m?e.filter(e=>e.title.toLowerCase().includes(m)||e.description.toLowerCase().includes(m)):e},[c,m]),g=m?0===p.length?l.noResults:`${p.length} ${1===p.length?l.resultSingular:l.resultPlural}`:"";return(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsxs)("section",{className:"py-14 text-center sm:py-20",children:[(0,t.jsxs)(i.H1,{className:"mx-auto max-w-3xl",children:[l.titleLead," ",(0,t.jsx)("span",{className:"text-blue-600",children:l.titleHighlight})]}),(0,t.jsxs)("div",{className:"mx-auto mt-10 max-w-xl",children:[(0,t.jsx)("label",{htmlFor:"blog-search",className:"sr-only",children:l.searchPlaceholder}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"blog-search",type:"search",value:u,onChange:e=>h(e.target.value),placeholder:l.searchPlaceholder,className:(0,r.cn)("w-full rounded-[10px] border border-gray-200 bg-white py-4 pl-6 pr-28 text-gray-900","placeholder:text-gray-400","focus:border-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-600/20")}),u&&(0,t.jsx)("button",{type:"button",onClick:()=>h(""),className:"absolute right-3 top-1/2 -translate-y-1/2 rounded-md px-4 py-2 text-sm font-medium text-blue-600 hover:bg-blue-50 focus:outline-none focus:ring-2 focus:ring-blue-600/20",children:l.resetLabel})]}),g&&(0,t.jsx)(i.Body16,{as:"p",className:"mt-3 text-gray-500","aria-live":"polite",children:g})]})]}),(0,t.jsx)("section",{className:"pb-24",children:0===p.length?(0,t.jsx)(i.Body16,{as:"p",className:"py-16 text-center text-gray-500",children:l.noResults}):(0,t.jsx)("ul",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3",children:p.map(a=>(0,t.jsxs)("li",{className:"group relative flex flex-col overflow-hidden rounded-xl bg-white shadow-[0_10px_24px_rgba(4,72,255,0.06)] transition duration-150 hover:-translate-y-0.5 hover:shadow-[0_16px_32px_rgba(4,72,255,0.12)]",children:[a.image?(0,t.jsx)("img",{src:a.image,alt:a.imageAlt??"","aria-hidden":a.imageAlt?void 0:"true",className:"aspect-[11/8] w-full bg-gray-50 object-contain"}):(0,t.jsx)("div",{"aria-hidden":"true",className:"aspect-[11/8] w-full bg-gradient-to-br from-gray-50 to-gray-200"}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col p-6",children:[a.date&&(0,t.jsx)(i.Body14,{as:"p",className:"mb-2 font-semibold text-gray-500",children:(0,s.formatDate)(a.date,e)}),(0,t.jsx)(i.Sub16,{as:"h2",className:"font-medium leading-relaxed text-gray-600 transition-colors group-hover:text-blue-600",children:(0,t.jsx)(n.default,{href:(0,o.withLocale)(e,`${d}/${a.slug}`),className:"after:absolute after:inset-0 focus:outline-none focus-visible:underline",children:a.title})}),a.tags&&a.tags.length>0&&(0,t.jsx)("ul",{className:"mt-4 flex flex-wrap gap-2","aria-label":l.tagsLabel,children:a.tags.slice(0,3).map(e=>(0,t.jsx)("li",{className:"rounded-full bg-blue-50 px-3 py-1 text-xs font-semibold text-blue-700",children:e.split("-").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")},e))})]})]},a.slug))})})]})}])},98523,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(22016),i=e.i(87596),r=e.i(2582),s=e.i(8684),o=e.i(90595);let l={"job-search":"text-[#0048ff] bg-[#eef1ff]","civilian-life":"text-[#2a4e9a] bg-[#dce6fa]","skill-translation":"text-[#984213] bg-[#fbe4d3]","industries-functions":"text-[#4a4a45] bg-[#ecece8]",resettlement:"text-[#894010] bg-[#f8d6b5]",networking:"text-[#9e3f13] bg-[#fde0d0]"},c=e=>e.split("-").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),d=({locale:e,copy:a,post:d})=>{let u;return(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white transition duration-150 hover:-translate-y-0.5 hover:shadow-[0_16px_32px_rgba(4,72,255,0.1)]",children:[d.image?(0,t.jsx)("img",{src:d.image,alt:d.imageAlt??"","aria-hidden":d.imageAlt?void 0:"true",className:"aspect-[16/10] w-full bg-gray-50 object-contain"}):(0,t.jsx)("div",{"aria-hidden":"true",className:"aspect-[16/10] w-full bg-gradient-to-br from-gray-50 to-gray-200"}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-3 p-6",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:(0,r.cn)("rounded-full px-3 py-1 text-xs font-medium",(u=d.tags?.[0])&&l[u]||"text-blue-700 bg-blue-50"),children:d.tags?.[0]?c(d.tags[0]):a.uncategorisedLabel})}),(0,t.jsx)(i.Sub20,{as:"h3",className:"leading-tight text-gray-800 transition-colors group-hover:text-blue-600",children:(0,t.jsx)(n.default,{href:(0,s.withLocale)(e,`/blog/${d.slug}`),className:"after:absolute after:inset-0 focus:outline-none focus-visible:underline",children:d.title})}),(0,t.jsx)(i.Body14,{as:"p",className:"text-gray-500",children:d.description}),d.date&&(0,t.jsx)(i.Body14,{as:"span",className:"mt-auto pt-1 text-gray-400",children:(0,o.formatDate)(d.date,e)})]})]})},u=({locale:e,copy:a})=>(0,t.jsxs)("div",{className:"pb-24",children:[(0,t.jsxs)("div",{className:"mt-14 rounded-[22px] bg-[#eef1ff] px-8 py-12 text-center",children:[(0,t.jsx)(i.H2,{as:"h2",className:"mx-auto max-w-2xl",children:a.employers.comingSoonTitle}),(0,t.jsx)(i.Body16,{as:"p",className:"mx-auto mt-4 max-w-[56ch] text-gray-600",children:a.employers.comingSoonBody}),(0,t.jsx)(n.default,{href:(0,s.withLocale)(e,"/employer-contact"),className:"mt-8 inl
1ine-flex items-center rounded-xl bg-blue-600 px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-[#0039c9] focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",children:a.employers.comingSoonCta})]}),(0,t.jsx)("ul",{"aria-hidden":"true",className:"mt-10 grid grid-cols-1 gap-6 opacity-70 sm:grid-cols-2 lg:grid-cols-3",children:a.employers.samples.map((e,a)=>(0,t.jsxs)("li",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white",children:[(0,t.jsx)("div",{className:"aspect-[16/10] w-full bg-gradient-to-br from-gray-50 to-gray-200"}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-3 p-6",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:"rounded-full bg-blue-50 px-3 py-1 text-xs font-medium text-blue-700",children:e.category})}),(0,t.jsx)(i.Sub20,{as:"p",className:"leading-tight text-gray-800",children:e.title}),(0,t.jsx)(i.Body14,{as:"p",className:"text-gray-500",children:e.description}),(0,t.jsx)(i.Body14,{as:"span",className:"mt-auto pt-1 text-gray-400",children:e.date})]})]},a))})]});e.s(["BlogLandingContent",0,({locale:e,audience:l,copy:h,items:m,categories:p,featuredSlug:g,categoryFocus:y})=>{let f=h[l],b="employers"===l,x=b&&0===m.length,[w,v]=(0,a.useState)(""),[_,k]=(0,a.useState)(y?[y.category]:[]),[S,A]=(0,a.useState)(!1),[N,C]=(0,a.useState)(9),j=(0,a.useRef)(null),E=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!S)return;let e=e=>{j.current&&!j.current.contains(e.target)&&A(!1)},t=e=>{"Escape"===e.key&&(A(!1),E.current?.focus())};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[S]);let M=w.trim().toLowerCase(),T=M.length>0||_.length>0,O=(0,a.useMemo)(()=>[...m].sort((e,t)=>(t.date??"").localeCompare(e.date??"")).filter(e=>{let t=!M||e.title.toLowerCase().includes(M)||e.description.toLowerCase().includes(M),a=0===_.length||(e.tags??[]).some(e=>_.includes(e));return t&&a}),[m,M,_]),R=!T&&g?O.find(e=>e.slug===g):void 0,L=R?O.filter(e=>e.slug!==R.slug):O,I=O.length,P=`${h.showingPrefix} ${I} ${1===I?h.resultSingular:h.resultPlural}`,F=b?(0,t.jsxs)(t.Fragment,{children:[f.titleLine1,(0,t.jsx)("br",{}),f.titleLine2,(0,t.jsx)("br",{}),(0,t.jsx)("span",{className:"text-blue-600",children:f.titleHighlight})]}):(0,t.jsxs)(t.Fragment,{children:[f.titleLine1,(0,t.jsx)("br",{}),f.titleLine2," ",(0,t.jsx)("span",{className:"text-blue-600",children:f.titleHighlight})]}),D=[{audience:"veterans",label:h.toggle.veterans,href:(0,s.withLocale)(e,"/blog")},{audience:"employers",label:h.toggle.employers,href:(0,s.withLocale)(e,"/blog/employers")}];return(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsxs)("header",{className:"pt-14 text-center sm:pt-20",children:[(0,t.jsx)("nav",{"aria-label":h.toggle.label,className:"mb-9 flex justify-center",children:(0,t.jsx)("div",{className:"inline-flex gap-1 rounded-xl border border-gray-200 bg-white p-1",children:D.map(e=>{let a=e.audience===l;return(0,t.jsx)(n.default,{href:e.href,"aria-current":a?"page":void 0,className:(0,r.cn)("rounded-[9px] px-5 py-2.5 text-sm font-medium transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",a?"bg-blue-600 text-white":"text-gray-600 hover:text-gray-900"),children:e.label},e.audience)})})}),(0,t.jsx)(i.Overline1,{as:"p",className:"mb-5 text-blue-600",children:h.eyebrow}),(0,t.jsx)(i.H1,{className:"mx-auto max-w-4xl",children:y?y.title:F}),(0,t.jsx)(i.Body18,{as:"p",className:"mx-auto mt-6 max-w-[60ch] text-gray-600",children:y?y.subtitle:f.subtitle}),!x&&(0,t.jsxs)("div",{className:"mx-auto mt-9 max-w-xl",children:[(0,t.jsx)("label",{htmlFor:"blog-search",className:"sr-only",children:h.searchLabel}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",className:"pointer-events-none absolute left-5 top-1/2 h-5 w-5 -translate-y-1/2 text-gray-400",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,t.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,t.jsx)("input",{id:"blog-search",type:"search",value:w,onChange:e=>{v(e.target.value),C(9)},placeholder:h.searchPlaceholder,className:(0,r.cn)("w-full rounded-xl border border-gray-200 bg-white py-4 pl-14 pr-6 text-gray-900","placeholder:text-gray-400","focus:border-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-600/20")})]})]})]}),x?(0,t.jsx)(u,{locale:e,copy:h}):(0,t.jsxs)(t.Fragment,{children:[R&&(0,t.jsx)("section",{"aria-label":h.featuredLabel,className:"mt-14",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 items-center gap-8 overflow-hidden rounded-[22px] bg-[#eef1ff] p-6 md:grid-cols-[1.35fr_1fr]",children:[(0,t.jsx)("div",{className:"aspect-[16/11] overflow-hidden rounded-2xl bg-white",children:R.banner?(0,t.jsx)("img",{src:R.banner,alt:"","aria-hidden":"true",className:"h-full w-full object-cover"}):(0,t.jsx)("div",{"aria-hidden":"true",className:"h-full w-full bg-gradient-to-br from-gray-50 to-gray-200"})}),(0,t.jsxs)("div",{className:"md:pr-4",children:[(0,t.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:"rounded-full bg-white px-3 py-1 text-xs font-medium uppercase tracking-wide text-blue-600",children:h.featuredLabel}),(0,t.jsx)(i.Body14,{as:"span",className:"font-medium text-blue-600",children:R.tags?.[0]?c(R.tags[0]):h.uncategorisedLabel})]}),(0,t.jsx)(i.H2,{as:"h2",className:"text-left text-[clamp(1.75rem,3vw,2.125rem)] leading-tight",children:(0,t.jsx)(n.default,{href:(0,s.withLocale)(e,`/blog/${R.slug}`),className:"hover:text-blue-600 focus:outline-none focus-visible:underline",children:R.title})}),(0,t.jsx)(i.Body16,{as:"p",className:"mt-3 text-gray-600",children:R.description}),(0,t.jsxs)("div",{className:"mt-6 flex flex-wrap items-center gap-4",children:[(0,t.jsx)(n.default,{href:(0,s.withLocale)(e,`/blog/${R.slug}`),className:"inline-flex items-center rounded-xl bg-blue-600 px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-[#0039c9] focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",children:h.readArticle}),R.date&&(0,t.jsx)(i.Body14,{as:"span",className:"text-gray-500",children:(0,o.formatDate)(R.date,e)})]})]})]})}),(0,t.jsxs)("div",{className:"mt-11 flex flex-wrap items-center justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[p.length>0&&(0,t.jsxs)("div",{ref:j,className:"relative",children:[(0,t.jsxs)("button",{ref:E,type:"button",onClick:()=>A(e=>!e),"aria-expanded":S,"aria-haspopup":"true",className:"flex items-center gap-2 rounded-xl border border-gray-200 bg-white px-4 py-2.5 text-sm font-medium text-gray-800 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",children:[h.categoriesLabel,_.length>0&&(0,t.jsxs)("span",{className:"text-blue-600",children:["(",_.length,")"]}),(0,t.jsx)("span",{"aria-hidden":"true",className:(0,r.cn)("text-[10px] transition-transform",S&&"rotate-180"),children:"â¾"})]}),S&&(0,t.jsx)("div",{role:"group","aria-label":h.categoriesLabel,className:"absolute left-0 top-[calc(100%+8px)] z-30 flex min-w-[268px] flex-col gap-0.5 rounded-2xl border border-gray-200 bg-white p-2 shadow-[0_16px_40px_rgba(10,10,15,0.14)]",children:p.map(e=>{let a=_.includes(e);return(0,t.jsxs)("button",{type:"button",role:"checkbox","aria-checked":a,onClick:()=>{C(9),k(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},className:"flex w-full items-center gap-3 rounded-lg px-2.5 py-2.5 text-left text-sm font-medium text-gray-900 hover:bg-gray-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",children:[(0,t.jsx)("span",{"aria-hidden":"true",className:(0,r.cn)("inline-flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center rounded-[5px] border text-[11px] leading-none",a?"border-blue-600 bg-blue-600 text-white":"border-gray-300 bg-white text-transparent"),children:"â"}),c(e)]},e)})})]}),_.length>0&&(0,t.jsx)("button",{type:"button",onClick:()=>{k([]),C(9)},className:"text-sm font-medium text-gray-500 underline hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",children:h.clearAll})]}),(0,t.jsx)(i.Body14,{as:"span",className:"flex-shrink-0 text-gray-500","aria-live":"polite",children:P})]}),(0,t.jsx)("section",{className:"pb-24 pt-4",children:0===L.length?(0,t.jsx)(i.Body16,{as:"p",className:"py-16 text-center text-gray-500",children:h.noResults}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("ul",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3",children:L.map((a,n)=>(0,t.jsx)("li",{className:"group relative",hidden:n>=N,children:(0,t.jsx)(d,{locale:e,copy:h,post:a})},a.slug))}),L.length>N&&(0,t.jsx)("div",{className:"mt-10 flex justify-center",children:(0,t.jsx)("button",{type:"button",onClick:()=>C(e=>e+9),className:"rounded-xl border-[1.5px] border-blue-600 px-8 py-3 text-sm font-medium text-blue-600 transition-colors hover:bg-blue-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/30",children:h.loadM
1ore})})]})})]})]})}],98523)},37674,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(22016),i=e.i(2582);let r=({open:e})=>(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:(0,i.cn)("transition-transform",e&&"rotate-180"),children:(0,t.jsx)("polyline",{points:"6 9 12 15 18 9"})});e.s(["BenefitsBankIndexContent",0,({copy:e,sections:s})=>{let[o,l]=(0,a.useState)("all"),[c,d]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),m=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!u)return;let e=e=>"Escape"===e.key&&h(!1),t=e=>{m.current&&!m.current.contains(e.target)&&h(!1)};return document.addEventListener("keydown",e),document.addEventListener("mousedown",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("mousedown",t)}},[u]);let p=c.trim().toLowerCase(),g=("all"===o?s:s.filter(e=>e.id===o)).map(e=>({...e,cards:p?e.cards.filter(e=>`${e.title} ${e.body}`.toLowerCase().includes(p)):e.cards})).filter(e=>e.cards.length>0),y="all"===o?e.allCategories:s.find(e=>e.id===o)?.name??e.allCategories,f=p.length>0||"all"!==o,b=g.reduce((e,t)=>e+t.cards.length,0),x=f?`${b} ${1===b?e.resultSingular:e.resultPlural}`:e.searchPrompt,w=[{id:"all",name:e.allCategories},...s.map(e=>({id:e.id,name:e.name}))];return(0,t.jsxs)("div",{className:"bg-[#fafaf7] text-gray-900",children:[(0,t.jsx)("div",{className:"bg-[#eef1ff] py-16 lg:py-20",children:(0,t.jsx)("div",{className:"site-container",children:(0,t.jsxs)("div",{className:"grid gap-8 lg:grid-cols-[1.1fr_0.9fr] lg:items-end lg:gap-16",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-5 font-sans text-sm font-medium uppercase tracking-wide text-blue-600",children:e.indexEyebrow}),(0,t.jsxs)("h1",{className:"font-heading text-[clamp(40px,6vw,64px)] font-semibold leading-[0.95] tracking-tight text-balance",children:[e.indexTitleLead," ",(0,t.jsx)("span",{className:"text-blue-600",children:e.indexTitleHighlight})," ",e.indexTitleTrail]})]}),(0,t.jsx)("p",{className:"max-w-[52ch] font-sans text-lg leading-relaxed text-gray-700",children:e.indexIntro})]})})}),(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsxs)("div",{className:"mt-14 flex flex-col gap-4 sm:flex-row sm:items-center",children:[(0,t.jsxs)("div",{ref:m,className:"relative",children:[(0,t.jsxs)("button",{type:"button","aria-haspopup":"listbox","aria-expanded":u,"aria-label":e.filterByCategory,onClick:()=>h(e=>!e),className:"flex min-w-[220px] items-center justify-between gap-3 rounded-[10px] border border-[#e2e2dd] bg-white px-5 py-3.5 font-sans text-[15px] text-gray-700 transition-colors hover:border-blue-600",children:[(0,t.jsx)("span",{className:"font-medium",children:y}),(0,t.jsx)("span",{className:"text-gray-500",children:(0,t.jsx)(r,{open:u})})]}),u&&(0,t.jsx)("ul",{role:"listbox","aria-label":e.filterByCategory,className:"absolute left-0 top-[calc(100%+10px)] z-30 flex w-[290px] flex-col gap-0.5 rounded-xl border border-[#e2e2dd] bg-white p-2 shadow-card-floating",children:w.map(e=>{let a=e.id===o;return(0,t.jsx)("li",{role:"option","aria-selected":a,children:(0,t.jsxs)("button",{type:"button",onClick:()=>{l(e.id),h(!1)},className:(0,i.cn)("flex w-full items-center justify-between gap-2.5 rounded-lg px-3.5 py-2.5 text-left font-sans text-[15px]",a?"bg-[#eef1ff] font-medium text-blue-600":"text-gray-700 hover:bg-[#fafaf7]"),children:[(0,t.jsx)("span",{children:e.name}),a&&(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,t.jsx)("polyline",{points:"20 6 9 17 4 12"})})]})},e.id)})})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-3 rounded-[10px] border border-[#e2e2dd] bg-white px-5 py-3.5 focus-within:border-blue-600",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#6B6B6B",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,t.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,t.jsx)("label",{className:"sr-only",htmlFor:"benefits-search",children:e.searchBenefits}
1),(0,t.jsx)("input",{id:"benefits-search",type:"search",value:c,onChange:e=>d(e.target.value),placeholder:e.searchBenefits,className:"w-full bg-transparent font-sans text-[15px] text-gray-900 outline-none placeholder:text-gray-500"})]})]}),(0,t.jsx)("p",{className:"mt-3.5 font-sans text-sm text-gray-500","aria-live":"polite",children:x})]}),(0,t.jsx)("div",{className:"site-container pb-16 pt-20",children:0===g.length?(0,t.jsx)("p",{className:"font-sans text-lg text-gray-500",children:e.noResults}):g.map(a=>(0,t.jsxs)("section",{className:"mb-20",children:[(0,t.jsxs)("div",{className:"mb-9 flex items-start justify-between gap-12",children:[(0,t.jsxs)("div",{className:"max-w-[640px]",children:[(0,t.jsx)("h2",{className:"mb-3.5 font-heading text-[clamp(28px,3.4vw,40px)] font-semibold leading-[0.95] tracking-tight text-balance",children:a.name}),(0,t.jsx)("p",{className:"max-w-[56ch] font-sans text-[17px] leading-relaxed text-gray-700",children:a.blurb})]}),a.illo&&(0,t.jsx)("img",{src:a.illo,alt:"","aria-hidden":"true",className:"hidden h-auto w-[140px] shrink-0 sm:block"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-4",children:a.cards.map(i=>(0,t.jsxs)("div",{className:"flex min-h-[288px] flex-col rounded-[14px] border border-[#e2e2dd] bg-white p-[26px] shadow-[0_4px_24px_rgba(0,0,0,0.04)] transition-transform hover:-translate-y-0.5",children:[(0,t.jsx)("span",{className:"mb-[18px] self-start rounded-lg bg-[#eef1ff] px-3 py-1.5 font-sans text-xs font-medium text-blue-600",children:a.name}),(0,t.jsx)("h3",{className:"mb-2.5 font-heading text-[21px] font-semibold leading-[1.05] tracking-tight text-balance",children:i.title}),(0,t.jsx)("p",{className:"font-sans text-[14.5px] leading-snug text-gray-500",children:i.body}),(0,t.jsxs)(n.default,{href:i.href,"aria-label":`${e.viewMore}: ${i.title}`,className:"mt-auto inline-flex items-center justify-center gap-2 rounded-[10px] bg-blue-600 px-5 py-3 font-sans text-[15px] font-medium text-white transition-colors hover:bg-[#0039cc]",children:[e.viewMore,(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]},i.slug))})]},a.id))})]})}])},89565,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(22016),i=e.i(2582);let r=["#",..."ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")],s=e=>{let t=e.trim().charAt(0).toUpperCase();return t>="A"&&t<="Z"?t:"#"};
1e.s(["CollectionIndexContent",0,({copy:e,items:o})=>{let[l,c]=(0,a.useState)(""),[d,u]=(0,a.useState)(""),h=l.trim().toLowerCase(),m=(0,a.useMemo)(()=>[...o].sort((e,t)=>e.title.localeCompare(t.title)),[o]),p=(0,a.useMemo)(()=>new Set(m.map(e=>s(e.title))),[m]),g=(0,a.useMemo)(()=>m.filter(e=>(!d||s(e.title)===d)&&(!h||!!`${e.title} ${e.def}`.toLowerCase().includes(h))),[m,d,h]),y=(0,a.useMemo)(()=>r.map(e=>({letter:e,terms:g.filter(t=>s(t.title)===e)})).filter(e=>e.terms.length>0),[g]),f=h.length>0||d.length>0?`${g.length} ${1===g.length?e.resultSingular:e.resultPlural}`:e.searchPrompt;return(0,t.jsxs)("div",{className:"bg-[#fafaf7] text-gray-900",children:[(0,t.jsx)("div",{className:"bg-[#eef1ff] py-16 lg:py-20",children:(0,t.jsx)("div",{className:"site-container",children:(0,t.jsxs)("div",{className:"grid gap-8 lg:grid-cols-[1.1fr_0.9fr] lg:items-end lg:gap-16",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-5 font-sans text-sm font-medium uppercase tracking-wide text-blue-600",children:e.eyebrow}),(0,t.jsxs)("h1",{className:"font-heading text-[clamp(40px,6vw,64px)] font-semibold leading-[0.95] tracking-tight text-balance",children:[e.titleLead&&(0,t.jsxs)(t.Fragment,{children:[e.titleLead," "]}),(0,t.jsx)("span",{className:"text-blue-600",children:e.titleHighlight}),e.titleTrail&&(0,t.jsxs)(t.Fragment,{children:[" ",e.titleTrail]})]})]}),(0,t.jsx)("p",{className:"max-w-[54ch] font-sans text-lg leading-relaxed text-gray-700",children:e.description})]})})}),(0,t.jsxs)("div",{className:"site-container pb-24",children:[(0,t.jsxs)("div",{className:"mt-14",children:[(0,t.jsxs)("label",{className:"flex items-center gap-3.5 rounded-[10px] border border-[#e2e2dd] bg-white px-5 py-4 focus-within:border-blue-600",children:[(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#9A9A93",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,t.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,t.jsx)("span",{className:"sr-only",children:e.searchPlaceholder}),(0,t.jsx)("input",{type:"search",value:l,onChange:e=>c(e.target.value),placeholder:e.searchPlaceholder,className:"w-full bg-transparent font-sans text-[17px] text-gray-900 outline-none placeholder:text-gray-500"})]}),(0,t.jsx)("p",{className:"mt-3.5 font-sans text-sm text-gray-500","aria-live":"polite",children:f})]}),(0,t.jsx)("nav",{"aria-label":e.alphabetNavLabel,className:"mt-6 flex flex-wrap items-center justify-between gap-x-2 gap-y-3 border-b border-[#e2e2dd] pb-7 pt-2 font-sans text-base",children:r.map(e=>{if(!p.has(e))return(0,t.jsx)("span",{"aria-hidden":"true",className:"text-gray-300",children:e},e);let a=d===e;return(0,t.jsx)("button",{type:"button","aria-pressed":a,onClick:()=>u(t=>t===e?"":e),className:(0,i.cn)("font-medium transition-colors hover:text-blue-600",a?"font-semibold text-blue-600":"text-gray-900"),children:e},e)})}),(0,t.jsx)("div",{className:"pt-12",children:0===y.length?(0,t.jsx)("p",{className:"py-16 text-center font-sans text-lg text-gray-500",children:e.noResults}):y.map(e=>(0,t.jsxs)("section",{className:"mb-14",children:[(0,t.jsxs)("div",{className:"mb-7 flex items-baseline gap-3 border-b border-[#e2e2dd] pb-4",children:[(0,t.jsx)("h2",{className:"font-heading text-[26px] font-semibold leading-none text-blue-600",children:e.letter}),(0,t.jsx)("span",{className:"font-sans text-[15px] text-gray-500",children:e.terms.length})]}),(0,t.jsx)("dl",{className:"grid grid-cols-1 gap-x-12 gap-y-8 sm:grid-cols-2 lg:grid-cols-3",children:e.terms.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{className:"mb-2",children:(0,t.jsx)(n.default,{href:e.href,className:"font-sans text-[17px] font-medium leading-snug text-gray-900 underline-offset-[3px] hover:text-blue-600 hover:underline",children:e.title})}),(0,t.jsx)("dd",{className:"font-sans text-[15px] leading-relaxed text-gray-500",children:e.def})]},e.slug))})]},e.letter))})]})]})}])},16278,e=>{"use strict";var t=e.i(43476),a=e.i(22016),n=e.i(87036);e.s(["EmployerContactContent",0,({copy:e,formSrc:i,stories:r})=>{let{hero:s,successStories:o}=e,l=`mailto:${s.email}?subject=${encodeURIComponent(s.emailSubject)}`;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("section",{className:"section-main bg-solid",children:[(0,t.jsx)("div",{className:"spacer__76px"}),(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsxs)("div",{className:"contact-hero-grid",children:[(0,t.jsxs)(n.Reveal,{className:"contact-hero-text",children:[(0,t.jsx)("h1",{className:"v2_heading-1",children:s.title}),(0,t.jsx)("div",{className:"spacer__24px"}),(0,t.jsx)("p",{className:"b_18",children:s.body}),(0,t.jsx)("div",{className:"spacer__16px"}),(0,t.jsx)("p",{className:"b_18",children:s.bodyFollowUp}
1),(0,t.jsx)("div",{className:"spacer__40px"}),(0,t.jsxs)("p",{className:"b_18",children:[s.emailPrompt," ",(0,t.jsx)("a",{href:l,className:"contact-email-link",children:s.email})]})]}),(0,t.jsx)("div",{className:"contact-form-wrapper",children:(0,t.jsx)("iframe",{src:i,title:s.formTitle,className:"contact-form-embed",loading:"lazy",children:"Loadingâ¦"})})]})}),(0,t.jsx)("div",{className:"spacer__80px"})]}),(0,t.jsxs)("section",{className:"section-main white",children:[(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsxs)("div",{className:"contain-main",children:[(0,t.jsx)(n.Reveal,{className:"align__center",children:(0,t.jsxs)("h2",{className:"v2_heading-3",children:[o.headingLead," ",(0,t.jsx)("span",{className:"colour__blue-v2",children:o.headingHighlight})]})}),(0,t.jsx)("div",{className:"spacer__64px"}),(0,t.jsx)("div",{className:"contact-stories-grid",children:r.map(e=>(0,t.jsxs)(a.default,{href:e.href,className:"contact-story-card",children:[(0,t.jsx)("div",{className:"contact-story-image",children:e.image?(0,t.jsx)("img",{src:e.image,alt:"","aria-hidden":"true",loading:"lazy"}):null}),(0,t.jsxs)("div",{className:"contact-story-body",children:[e.date?(0,t.jsx)("p",{className:"b_14 contact-story-date",children:e.date}):null,(0,t.jsx)("h3",{className:"b_18-medium contact-story-title",children:e.title})]})]},e.slug))})]}),(0,t.jsx)("div",{className:"spacer__112px"})]})]})}])},23458,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(87596),i=e.i(85242),r=e.i(2582),s=e.i(13511),o=e.i(87036),l=e.i(56773);let c=["megaphone","binoculars","scales","measuring-tape"],d=({children:e,className:a})=>(0,t.jsx)("p",{className:(0,r.cn)("text-xs font-semibold uppercase tracking-[0.08em] text-blue-600",a),children:e}),u=({children:e,className:a})=>(0,t.jsx)("h2",{className:(0,r.cn)("font-heading text-[2.125rem] font-semibold leading-[0.95] tracking-[-0.02em] text-black sm:text-[2.6rem] lg:text-[3.125rem]",a),children:e}),h="rounded-full px-[1.875rem] py-4 text-base",m=({beat:e,className:a,as:n="div",children:i})=>(0,t.jsx)(n,{"data-cvb-anim":"pop",style:{animationDelay:`${(.1+.22*e).toFixed(2)}s`},className:a,children:i}),p=({row:e,className:a,children:n})=>(0,t.jsx)("div",{"data-cvb-row":e,children:(0,t.jsx)("div",{children:(0,t.jsx)("div",{"data-cvb-anim":e,className:a,children:n})})}),g="text-[11px] font-semibold uppercase tracking-[0.08em] text-[#575754]",y="flex gap-2 text-[13px] leading-relaxed text-[#3A3A38]",f=()=>(0,t.jsx)("span",{"aria-hidden":"true",className:"text-[#575754]",children:"â¢"}),b=({copy:e})=>{let a,[n,...i]=e.roles,s=(a=0,{name:a++,summaryLabel:a++,summary:a++,experienceLabel:a++,firstTitle:a++,firstOrg:a++,evidence:a++,firstBullets:n.bullets.map(()=>a++),otherRoles:i.map(e=>({title:a++,org:a++,bullets:e.bullets.map(()=>a++)})),skillsLabel:a++,skills:a++});return(0,t.jsxs)("figure",{className:"relative m-0 ml-auto w-full max-w-[25rem]",children:[(0,t.jsxs)("div",{className:"relative h-[32.5rem] overflow-hidden rounded-md border border-[#E2E2DD] bg-white px-9 pb-8 pt-[2.125rem] shadow-[0_24px_60px_rgba(10,10,15,0.14)]",children:[(0,t.jsxs)(m,{beat:s.name,children:[(0,t.jsx)("p",{className:"font-heading text-xl font-semibold leading-none tracking-[-0.01em] text-black",children:e.name}),(0,t.jsx)("p",{className:"mt-[7px] text-xs text-[#575754]",children:e.meta})]}),(0,t.jsx)(m,{beat:s.summaryLabel,className:"mt-6",children:(0,t.jsx)("p",{className:g,children:e.summaryLabel})}),(0,t.jsx)(m,{beat:s.summary,className:"mt-2",children:(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-[#3A3A38]",children:e.summary})}),(0,t.jsx)(m,{beat:s.experienceLabel,className:"mt-6",children:(0,t.jsx)("p",{className:g,children:e.experienceLabel})}),(0,t.jsx)(m,{beat:s.firstTitle,className:"mt-4",children:(0,t.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-4",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-black",children:n.title}),(0,t.jsx)("p",{className:"text-xs text-[#575754]",children:n.dates})]})}),(0,t.jsx)(m,{beat:s.firstOrg,children:(0,t.jsx)("p",{className:"text-xs text-[#575754]",children:n.org})}),(0,t.jsxs)("div",{className:"relative mt-2",children:[(0,t.jsx)("div",{"data-cvb-anim":"highlight","aria-hidden":"true",className:"pointer-events-none absolute -inset-x-2 -inset-y-1 rounded bg-blue-100"}),(0,t.jsxs)(p,{row:"weak",className:(0,r.cn)(y,"relative pb-1.5"),children:[(0,t.jsx)(f,{}),e.evidence.weak]}),(0,t.jsxs)(p,{row:"strong",className:(0,r.cn)(y,"relative pb-1.5"),children:[(0,t.jsx)(f,{}),e.evidence.strong]}),(0,t.jsxs)(p,{row:"pill",className:"relative inline-flex items-center gap-1.5 rounded-full bg-blue-50 px-2.5 py-1 text-[11px] font-medium text-blue-700",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"â"}),e.evidence.pill]}
1)]}),(0,t.jsx)("ul",{className:"mt-1.5 space-y-1.5",children:n.bullets.map((e,a)=>(0,t.jsxs)(m,{as:"li",beat:s.firstBullets[a],className:y,children:[(0,t.jsx)(f,{}),e]},e))}),i.map((e,a)=>(0,t.jsxs)("div",{children:[(0,t.jsx)(m,{beat:s.otherRoles[a].title,className:"mt-4",children:(0,t.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-4",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-black",children:e.title}),(0,t.jsx)("p",{className:"text-xs text-[#575754]",children:e.dates})]})}),(0,t.jsx)(m,{beat:s.otherRoles[a].org,children:(0,t.jsx)("p",{className:"text-xs text-[#575754]",children:e.org})}),(0,t.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.bullets.map((e,n)=>(0,t.jsxs)(m,{as:"li",beat:s.otherRoles[a].bullets[n],className:y,children:[(0,t.jsx)(f,{}),e]},e))})]},`${e.title}-${e.dates}`)),(0,t.jsx)(m,{beat:s.skillsLabel,className:"mt-6",children:(0,t.jsx)("p",{className:g,children:e.skillsLabel})}),(0,t.jsx)(m,{beat:s.skills,className:"mt-2",children:(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-[#3A3A38]",children:e.skills.join(" · ")})}),(0,t.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 h-24 bg-gradient-to-t from-white to-transparent"})]}),(0,t.jsx)("div",{"data-cvb-anim":"card",className:"relative z-10 mt-4 lg:absolute lg:-bottom-20 lg:-right-6 lg:mt-0 lg:w-[20rem]",children:(0,t.jsxs)("div",{className:"rounded-xl border border-[#E2E2DD] bg-white p-6 shadow-[0_24px_60px_rgba(10,10,15,0.16)]",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.06em] text-blue-600",children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 rounded-full bg-blue-600"}),e.coachLabel]}),(0,t.jsx)("p",{className:"mt-3 text-[13px] leading-relaxed text-[#1A1A18]",children:e.coachQuestion}),(0,t.jsxs)("div",{className:"mt-4 rounded-lg bg-[#F1F1EC] p-3",children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.06em] text-[#575754]",children:e.coachAnswerLabel}),(0,t.jsx)("p",{className:"mt-1 text-[13px] leading-relaxed text-[#1A1A18]",children:e.coachAnswer})]}),(0,t.jsxs)("div",{"data-cvb-anim":"press",className:"relative mt-4 inline-grid",children:[(0,t.jsx)("p",{"data-cvb-anim":"apply-out",className:"col-start-1 row-start-1 inline-flex items-center rounded-full bg-blue-600 px-4 py-2 text-[13px] font-medium text-white",children:e.coachApplyLabel}),(0,t.jsxs)("p",{"data-cvb-anim":"apply-in",className:"col-start-1 row-start-1 inline-flex items-center gap-1.5 rounded-full bg-blue-50 px-4 py-2 text-[13px] font-medium text-blue-700",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"â"}),e.coachAppliedLabel]})]})]})}),(0,t.jsx)("figcaption",{className:"sr-only",children:e.caption})]})},x=({panel:e})=>(0,t.jsxs)("div",{children:[(0,t.jsx)(d,{children:e.eyebrow}),(0,t.jsx)("h3",{className:"mt-4 font-heading text-[1.75rem] font-semibold leading-[0.95] tracking-[-0.02em] text-black sm:text-[2.375rem]",children:e.title}),(0,t.jsx)(n.Body18,{className:"mt-5 text-black",children:e.lede}),e.paragraphs.map(e=>(0,t.jsx)(n.Body16,{className:"mt-4 text-[#3A3A38]",children:e},e)),e.footnote?(0,t.jsx)(n.Body16,{className:"mt-4 text-[#3A3A38]",children:e.footnote}):null]}),w=({panel:e})=>e.image?(0,t.jsx)("div",{className:"h-[27.5rem] overflow-hidden rounded-[20px] border border-[#E2E2DD] bg-[#F1F1EC]",children:(0,t.jsx)("img",{src:e.image,alt:e.imageAlt??"",loading:"lazy",width:1600,height:1e3,className:(0,r.cn)("h-full w-full","contain"===e.imageFit?"object-contain object-top p-5":"object-cover object-left-top")})}):0===e.points.length?null:(0,t.jsx)("div",{className:"grid gap-x-8 gap-y-6 sm:grid-cols-2",children:e.points.map(e=>(0,t.jsxs)("div",{className:"border-t-2 border-black pt-[1.125rem]",children:[(0,t.jsx)("h4",{className:"font-heading text-[1.125rem] font-semibold leading-[1.15] tracking-[-0.02em] text-black",children:e.title}),(0,t.jsx)("p",{className:"mt-2.5 text-base leading-[1.5] text-[#575754]",children:e.body})]},e.title))}),v=({copy:e})=>{let[n,i]=(0,a.useState)(0),s=(0,a.useRef)([]),o=e.items.length;return(0,t.jsx)("section",{className:"py-[6.5rem]",style:{backgroundImage:"radial-gradient(ellipse at 25% 0%, #0A2E7A 0%, #00163F 55%, #00091F 100%)"},children:(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsx)("h2",{className:"max-w-[24ch] font-heading text-[2.125rem] font-semibold leading-[0.95] tracking-[-0.02em] text-white sm:text-[2.6rem] lg:text-[3.125rem]",children:e.heading}),(0,t.jsx)("p",{className:"mt-2.5 max-w-[56ch] text-[1.1875rem] leading-[1.45] text-[#E8EEFF]",children:e.lede}),(0,t.jsx)("div",{role:"tablist","aria-label":e.heading,className:"mt-10 flex flex-wrap gap-x-9 gap-y-3 border-b border-white/30",children:e.items.map((e,a)=>(0,t.jsxs)("button",{ref:e=>{s.current[a]=e},type:"button",role:"tab",id:`cvb-tab-${a}`,"aria-selected":a===n,"aria-controls":`cvb-panel-${a}`,tabIndex:a===n?0:-1,onClick:()=>i(a),onKeyDown:e=>((e,t)=>{let a={ArrowRight:(t+1)%o,ArrowLeft:(t-1+o)%o,Home:0,End:o-1}[e.key];void 0!==a&&(e.preventDefault(),i(a),s.current[a]?.focus())})(e,a),className:(0,r.cn)("-mb-px flex items-center gap-2 border-b-2 pb-3.5 text-[15px] font-medium transition-colors","outline-none focus-visible:ring focus-visible:ring-white/70",a===n?"border-white text-white":"border-transparent text-[#C5D6FF] hover:text-white"),children:[(0,t.jsx)("span",{className:"font-heading font-semibold",children:a+1}),e.tabLabel]},e.tabLabel))}),(0,t.jsx)("div",{className:"mt-8 min-h-[32.5rem] rounded-[1.75rem] bg-white p-8 shadow-[0_6px_14px_rgba(10,10,15,0.08)] sm:p-14",children:e.items.map((e,a)=>(0,t.jsxs)("div",{role:"tabpanel",id:`cvb-panel-${a}`,"aria-labelledby":`cvb-tab-${a}`,hidden:a!==n,tabIndex:0,className:"grid gap-12 outline-none lg:grid-cols-[0.95fr_1.05fr] lg:items-start",children:[(0,t.jsx)(x,{panel:e}),(0,t.jsx)(w,{panel:e})]},e.tabLabel))})]})})};e.s(["CvBuilderPage",0,({locale:e,copy:a})=>{let m=`${l.APP_LINKS.origin}${"en-US"===e?"/resume-builder":"/cv-builder"}`;return(0,t.jsxs)("div",{className:"bg-[#FAFAF7]",children:[(0,t.jsx)("section",{className:"border-b border-[#
1E2E2DD]",style:{backgroundImage:"linear-gradient(118deg, #F3EAE4 0%, #E7EDFB 26%, #DCE6FF 52%, #FAF6F0 74%, #E4EDFF 100%)"},children:(0,t.jsxs)("div",{className:"site-container grid gap-16 py-24 lg:grid-cols-[1.02fr_0.98fr] lg:items-center lg:pb-40",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(d,{className:"mb-5",children:a.hero.eyebrow}),(0,t.jsxs)("h1",{className:"font-heading text-[2.75rem] font-semibold leading-[0.95] tracking-[-0.02em] text-black sm:text-[3.5rem] lg:text-[4.25rem]",children:[a.hero.titleLead,(0,t.jsx)("span",{className:"text-blue-600",children:a.hero.titleAccent})]}),(0,t.jsx)("p",{className:"mt-6 max-w-[56ch] text-[1.1875rem] leading-[1.45] text-[#3A3A38]",children:a.hero.subtitle}),(0,t.jsxs)("div",{className:"mt-8 flex flex-wrap gap-3",children:[(0,t.jsx)(s.CtaButton,{href:m,className:h,children:a.hero.ctaLabel}),(0,t.jsx)("a",{href:"#how-it-works",className:(0,r.cn)(h,"inline-flex items-center border-[1.5px] border-black font-medium leading-none text-black transition-colors hover:bg-black/5"),children:a.hero.secondaryLabel})]}),(0,t.jsx)("p",{className:"mt-5 text-sm text-[#575754]",children:a.hero.trustLine})]}),(0,t.jsx)(b,{copy:a.sample})]})}),(0,t.jsx)("section",{className:"py-[6.5rem]",children:(0,t.jsxs)("div",{className:"site-container grid gap-16 lg:grid-cols-2",children:[(0,t.jsx)(u,{className:"max-w-[16ch]",children:a.recruiter.heading}),(0,t.jsx)("div",{className:"max-w-[60ch]",children:a.recruiter.paragraphs.map((e,n)=>(0,t.jsx)("p",{className:(0,r.cn)("text-[1.0625rem] leading-[1.55] text-[#3A3A38]",n>0&&"mt-5",n===a.recruiter.paragraphs.length-1&&"font-medium text-black"),children:e},e))})]})}),(0,t.jsx)("section",{id:"how-it-works",className:"scroll-mt-24 border-y border-[#E2E2DD] bg-white py-[6.5rem]",children:(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsx)(u,{children:a.jobs.heading}),(0,t.jsx)("div",{className:"mt-10 grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:a.jobs.items.map((e,a)=>(0,t.jsxs)(o.Reveal,{delay:a%3+1,className:"rounded-[14px] border border-[#E2E2DD] bg-[#FAFAF7] px-[1.625rem] pb-[1.875rem] pt-[1.625rem] transition-transform duration-200 hover:-translate-y-0.5 hover:shadow-[0_6px_14px_rgba(10,10,15,0.08)]",children:[(0,t.jsxs)("div",{className:"mb-[1.125rem] flex items-start justify-between gap-4",children:[(0,t.jsx)("span",{className:"font-heading text-[2.75rem] font-semibold leading-none tracking-[-0.02em] text-blue-600",children:e.n}),(0,t.jsx)("img",{src:`/assets/cv-builder/${c[a]}.png`,alt:"",loading:"lazy",width:112,height:112,className:"block h-28 w-28 object-contain"})]}),(0,t.jsx)("h3",{className:"font-heading text-[1.3125rem] font-semibold leading-[1.1] tracking-[-0.02em] text-black",children:e.title}),(0,t.jsx)("p",{className:"mt-3 text-base leading-[1.5] text-[#3A3A38]",children:e.body})]},e.title))})]})}),(0,t.jsx)(v,{copy:a.panels}),(0,t.jsx)("section",{className:"py-[6.5rem]",children:(0,t.jsxs)("div",{className:"site-container grid gap-16 lg:grid-cols-[0.85fr_1.15fr]",children:[(0,t.jsxs)(u,{children:[a.free.headingLead,(0,t.jsx)("span",{className:"text-blue-600",children:a.free.headingAccent})]}),(0,t.jsxs)("div",{className:"max-w-[64ch]",children:[a.free.paragraphs.map((e,a)=>(0,t.jsx)("p",{className:(0,r.cn)("text-[1.125rem] leading-[1.5] text-[#3A3A38]",a>0&&"mt-[1.375rem]"),children:e},e)),(0,t.jsx)("p",{className:"mt-8 font-heading text-2xl font-semibold leading-[1.1] tracking-[-0.02em] text-black",children:a.free.kicker})]})]})}),(0,t.jsx)("section",{className:"bg-blue-50 py-[6.5rem]",children:(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsx)(d,{className:"mb-3",children:a.faqEyebrow}),(0,t.jsx)(u,{children:a.faqHeading}),(0,t.jsx)("div",{className:"mt-8",children:(0,t.jsx)(i.CompactAccordion,{items:a.faq.map(e=>({title:e.question,content:(0,t.jsx)(n.Body16,{className:"text-[#3A3A38]",children:e.answer})}))})})]})}),(0,t.jsx)("section",{className:"py-28",style:{backgroundImage:"radial-gradient(ellipse at 62% 78%, #4E6FE0 0%, #0B39C4 38%, #021A5E 72%, #000814 100%)"},children:(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsx)("h2",{className:"max-w-[18ch] font-heading text-[2.5rem] font-semibold leading-[0.95] tracking-[-0.02em] text-white sm:text-[3.25rem] lg:text-[3.75rem]",children:a.cta.heading}),(0,t.jsx)("div",{className:"mt-8",children:(0,t.jsx)(s.CtaButton,{href:m,className:(0,r.cn)(h,"border-0 bg-white text-black hover:bg-white/90"),children:a.cta.linkLabel})}),(0,t.jsx)(n.Body14,{className:"mt-5 text-white/70",children:a.cta.note})]})})]})}])},5733,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(63260);(0,n.asset)("7dd3e630_employers_hero.webp"),(0,n.asset)("c8867178_employers_simulation.webp"),(0,n.asset)("02022ede_employers_impact.webp"),(0,n.asset)("696e1f2b_employers_close.webp"),(0,n.asset)("69d76c4c1503879926a3a5a9_ea8de5761d13145fea5f4eef9f9d4b63_amazon.svg"),(0,n.asset)("69bbf19b46500ce6968f16c5_schneider_electric.svg"),(0,n.asset)("69d76e1af8f25da8faf063c8_honeywell.svg"),(0,n.asset)("69d76f171068460a85e5f242_next.svg"),(0,n.asset)("69d76ddd1c6dd44ca65814ef_digital_reality.svg"),(0,n.asset)("69d9301c3e7c60f8e1dae17f_Anduril_Industries_Logo.svg");let i=[{value:"5Ã",label:"applicant-to-hire rate"},{value:"3Ã",label:"more qualified applicants for hard-to-fill roles"},{value:"34%",label:"decrease in cost per hire"}];e.s(["ImpactStats",0,()=>{let e=(0,a.useRef)(null),[n,r]=(0,a.useState)("static");return(0,a.useEffect)(()=>{let t=e.current;if(!t||window.matchMedia("(prefers-reduced-motion: reduce)").matches||"u"<typeof IntersectionObserver)return;r("armed");let a=new IntersectionObserver(e=>
1{e.forEach(e=>{e.isIntersecting&&(r("visible"),a.disconnect())})},{threshold:0,rootMargin:"0px 0px -25% 0px"});return a.observe(t),()=>a.disconnect()},[]),(0,t.jsx)("div",{ref:e,className:"visible"===n?"emp-impact-grid is-armed is-visible":"armed"===n?"emp-impact-grid is-armed":"emp-impact-grid",children:i.map(e=>(0,t.jsxs)("div",{className:"emp-stat",children:[(0,t.jsx)("div",{className:"emp-stat-v",children:e.value}),(0,t.jsx)("div",{className:"emp-stat-l",children:e.label})]},e.label))})}],5733)},7703,e=>{"use strict";var t=e.i(43476),a=e.i(71645);let n=(e,t,a)=>Math.max(t,Math.min(a,e)),i=(e,t,a)=>e+(t-e)*a,r=[6,11,17,23,14,8,19,26,12,9,21,28,16,11,24,30,18,10,14,22,30,20,10,15,26,18,12,8,16,24,14,7],s=()=>(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M6 9l6 6 6-6"})});e.s(["SimulationScroll",0,({copy:e,scenario:o,imgSrc:l})=>{let c=(0,a.useRef)(null),d=(0,a.useRef)(null),u=(0,a.useRef)(null),h=(0,a.useRef)(null),m=(0,a.useRef)(null),p=(0,a.useRef)(null),g=(0,a.useRef)(null),y=(0,a.useRef)(null),f=(0,a.useRef)(null),b=(0,a.useRef)(null),x=[(0,a.useRef)(null),(0,a.useRef)(null),(0,a.useRef)(null),(0,a.useRef)(null)],w=(0,a.useRef)(null),v=(0,a.useRef)(null),_=(0,a.useRef)(null),k=(0,a.useRef)(null),S=(0,a.useRef)(null),A=(0,a.useRef)(null),N=(0,a.useRef)(null);(0,a.useEffect)(()=>{let t=c.current;if(!t)return;let a=o.voicemail.durationSec,r=0,s=!1,l=null,C=!1,j=!1,E=k.current?Array.from(k.current.children):[],M=()=>{let e=r/a;S.current&&(S.current.textContent="0:"+String(Math.floor(r)).padStart(2,"0")),E.forEach((t,a)=>{t.style.background=a/E.length<=e?"var(--rd-blue-500)":"var(--rd-blue-100)"})},T=e=>{v.current&&(v.current.style.display=e?"none":"flex"),_.current&&(_.current.style.display=e?"flex":"none")},O=()=>{s=!1,T(!1),l&&(clearInterval(l),l=null)},R=()=>{r>=a&&(r=0),s=!0,T(!0),l=window.setInterval(()=>{if((r+=.3)>=a){r=a,M(),O(),window.setTimeout(()=>{r=0,M()},700);return}M()},100)},L=()=>s?O():R(),I=()=>{j=!j,A.current&&(A.current.style.display=j?"block":"none"),N.current&&(N.current.textContent=j?e.hideTranscript:e.showTranscript)},P=w.current,F=N.current;P?.addEventListener("click",L),F?.addEventListener("click",I);let D=(e,t,a,r,s,o,l)=>{let c=n((l-t)/a,0,1),d=c*(1-(r?n((l-r)/s,0,1):0));e.style.opacity=String(d),e.style.transform="translateY("+i(o,0,c)+"px)",e.style.pointerEvents=d>.5?"auto":"none"},B=()=>{let e=t.getBoundingClientRect(),a=t.offsetHeight-window.innerHeight;a<=0||(e=>{let t,a=(t=n((e-.1)/.14,0,1))<.5?2*t*t:1-Math.pow(-2*t+2,2)/2;if(u.current&&(u.current.style.left=i(0,52,a)+"%",u.current.style.top=i(0,6,a)+"%",u.current.style.bottom=i(0,6,a)+"%",u.current.style.borderRadius=i(0,22,a)+"px"),h.current){let t=n(1-e/.09,0,1);h.current.style.opacity=String(t),h.current.style.transform="translateY("+i(-14,0,t)+"px)"}m.current&&(m.current.style.opacity=String(n(1-e/.05,0,1))),p.current&&D(p.current,.12,.08,.3,.08,16,e),g.current&&D(g.current,.34,.08,.54,.08,16,e),b.current&&D(b.current,.4,.08,.54,.08,20,e),y.current&&D(y.current,.58,.08,.76,.08,18,e),f.current&&D(f.current,.8,.08,0,0,22,e);let s=e>=.44&&e<=.54;s&&!C?(C=!0,R()):!s&&C&&(C=!1,O(),r=0,M()),d.current&&(d.current.style.width=100*e+"%");let o=e<.36?0:e<.6?1:e<.82?2:3;x.forEach((e,t)=>e.current?.classList.toggle("active",t===o))})(n(-e.top/a,0,1))};window.addEventListener("scroll",B,{passive:!0}),window.addEventListener("resize",B,{passive:!0}),M();let H=requestAnimationFrame(B);return()=>{window.removeEventListener("scroll",B),window.removeEventListener("resize",B),cancelAnimationFrame(H),l&&clearInterval(l),P?.removeEventListener("click",L),F?.removeEventListener("click",I)}},[]);let C=e=>{let t=c.current;if(!t)return;let a=t.offsetHeight-window.innerHeight,n=[.17,.46,.7,.9][e];window.scrollTo({top:t.offsetTop+n*a,behavior:"smooth"})};return(0,t.jsx)("section",{ref:c,id:"simulation",className:"emp-sim","aria-label":"See a simulation",children:(0,t.jsxs)("div",{className:"emp-sim-sticky",children:[(0,t.jsx)("div",{className:"emp-sim-progress",children:(0,t.jsx)("div",{ref:d,className:"emp-sim-progress-bar"})}),(0,t.jsxs)("div",{className:"emp-sim-head",children:[(0,t.jsx)("div",{className:"emp-eyebrow",children:e.eyebrow}),(0,t.jsx)("h2",{className:"emp-sim-head-title",children:o.role}),(0,t.jsx)("p",{className:"emp-sim-head-p",children:e.intro})]}),(0,t.jsxs)("div",{className:"emp-sim-stage",children:[(0,t.jsxs)("div",{className:"emp-sim-left",children:[(0,t.jsxs)("div",{ref:p,className:"emp-sim-panel",children:[(0,t.jsx)("div",{className:"emp-sim-label blue",children:e.part1Label}),(0,t.jsx)("h3",{children:e.dropHeading}),(0,t.jsxs)("div",{className:"emp-sim-dropbox",children:[(0,t.jsx)("p",{children:o.dropBody}),(0,t.jsx)("div",{className:"emp-sim-brief-grid",children:o.briefStats.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"k",children:e.label}),(0,t.jsx)("div",{className:e.accent?"v accent":"v",children:e.value})]},e.label))})]})]}),(0,t.jsxs)("div",{ref:g,className:"emp-sim-panel",children:[(0,t.jsx)("div",{className:"emp-sim-label",children:e.part2Label}),(0,t.jsx)("h3",{children:e.briefHeading}),(0,t.jsx)("p",{className:"emp-sim-read-intro",children:o.briefIntro}),(0,t.jsxs)("div",{className:"emp-sim-vm",children:[(0,t.jsxs)("div",{className:"emp-sim-vm-row",children:[(0,t.jsxs)("button",{ref:w,type:"button",className:"emp-sim-vm-play","aria-label":"Play voicemail",children:[(0,t.jsx)("span",{ref:v,className:"icon",children:(0,t.jsx)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"
1currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M8 5v14l11-7z"})})}),(0,t.jsx)("span",{ref:_,className:"icon",style:{display:"none"},children:(0,t.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,t.jsx)("rect",{x:"6",y:"5",width:"4",height:"14",rx:"1"}),(0,t.jsx)("rect",{x:"14",y:"5",width:"4",height:"14",rx:"1"})]})})]}),(0,t.jsxs)("div",{className:"emp-sim-vm-main",children:[(0,t.jsxs)("div",{className:"emp-sim-vm-head",children:[(0,t.jsx)("span",{className:"name",children:o.voicemail.sender}),(0,t.jsx)("span",{className:"stamp",children:o.voicemail.stamp})]}),(0,t.jsx)("div",{ref:k,className:"emp-sim-vm-bars",children:r.map((e,a)=>(0,t.jsx)("span",{style:{height:`${e}px`}},a))}),(0,t.jsxs)("div",{className:"emp-sim-vm-times",children:[(0,t.jsx)("span",{ref:S,children:"0:00"}),(0,t.jsx)("span",{children:o.voicemail.durationLabel})]})]})]}),(0,t.jsx)("div",{className:"emp-sim-vm-foot",children:(0,t.jsx)("button",{ref:N,type:"button",className:"emp-sim-vm-transbtn",children:e.showTranscript})}),(0,t.jsx)("div",{ref:A,className:"emp-sim-vm-trans",style:{display:"none"},children:(0,t.jsxs)("p",{children:[o.voicemail.transcript," ",(0,t.jsx)("span",{className:"muted",children:o.voicemail.attribution})]})})]}),(0,t.jsx)("div",{className:"emp-sim-files-label",children:e.alsoInTask}),(0,t.jsx)("div",{className:"emp-sim-files",children:o.taskChips.map(e=>(0,t.jsxs)("span",{className:"emp-sim-file",children:[(0,t.jsx)("span",{className:"emp-dot"}),e]},e))})]}),(0,t.jsxs)("div",{ref:y,className:"emp-sim-panel",children:[(0,t.jsx)("div",{className:"emp-sim-label blue",children:e.part3Label}),(0,t.jsx)("h3",{children:e.riskHeading}),(0,t.jsx)("p",{className:"emp-sim-read-intro",children:e.riskIntro}),(0,t.jsxs)("div",{className:"emp-sim-risk-table",children:[(0,t.jsxs)("div",{className:"emp-sim-risk-head",children:[(0,t.jsx)("span",{children:e.riskColRisk}),(0,t.jsx)("span",{children:e.riskColUrgency})]}),o.risks.map(e=>(0,t.jsxs)("div",{className:"emp-sim-risk-row",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"risk-name",children:e.risk}),(0,t.jsx)("div",{className:"risk-impact",children:e.impact})]}),(0,t.jsxs)("div",{className:`emp-sim-risk-badge ${e.level}`,children:[(0,t.jsxs)("span",{className:"lvl",children:[(0,t.jsx)("span",{className:"mark"}),e.levelLabel]}),(0,t.jsx)(s,{})]})]},e.risk)),(0,t.jsxs)("div",{className:"emp-sim-risk-row add",children:[(0,t.jsxs)("div",{className:"risk-add",children:[(0,t.jsx)("span",{className:"box"}),(0,t.jsx)("span",{children:e.riskAddPrompt})]}),(0,t.jsxs)("div",{className:"emp-sim-risk-select",children:[(0,t.jsx)("span",{children:e.riskSelect}),(0,t.jsx)(s,{})]})]})]})]}),(0,t.jsxs)("div",{ref:f,className:"emp-sim-panel",children:[(0,t.jsx)("div",{className:"emp-sim-label blue",children:e.part4Label}),(0,t.jsxs)("div",{className:"emp-sim-decision",children:[(0,t.jsxs)("div",{className:"emp-sim-decision-head",children:[(0,t.jsx)("span",{className:"who",children:o.decisionWho}),(0,t.jsx)("span",{className:"emp-sim-timer",children:o.decisionTimer})]}),(0,t.jsx)("p",{className:"emp-sim-decision-q",children:o.decisionQuestion}),(0,t.jsx)("div",{className:"emp-sim-options",children:o.options.map(e=>(0,t.jsxs)("div",{className:e.correct?"emp-sim-option correct":"emp-sim-option",children:[(0,t.jsx)("span",{className:"bullet",children:e.correct?"â":""}),(0,t.jsx)("span",{className:"text",children:e.text})]},e.text))}),(0,t.jsxs)("div",{className:"emp-sim-reason",children:[(0,t.jsx)("div",{className:"emp-sim-reason-label",children:e.explainReasoning}),(0,t.jsxs)("div",{className:"emp-sim-reason-box",children:[o.reasoning,(0,t.jsx)("span",{className:"caret"})]})]})]})]})]}),(0,t.jsxs)("div",{ref:u,className:"emp-sim-img",children:[(0,t.jsx)("img",{src:l,alt:"Forklift loading a shipping container at the dock"}),(0,t.jsx)("div",{className:"emp-sim-img-scrim"}),(0,t.jsxs)("div",{ref:h,className:"emp-sim-overlay",children:[(0,t.jsxs)("div",{className:"emp-sim-overlay-meta",children:[(0,t.jsx)("span",{children:o.overlayRole}),(0,t.jsx)("span",{className:"sep",children:"â¢"}),(0,t.jsx)("span",{children:o.overlayCompany})]}),(0,t.jsx)("div",{className:"emp-sim-overlay-title",children:o.overlayTitle}),(0,t.jsx)("p",{className:"emp-sim-overlay-desc",children:o.overlayDesc}),(0,t.jsxs)("div",{ref:m,className:"emp-sim-hint",children:[(0,t.jsx)("span",{className:"arrow",children:"â"})," ",e.hint]})]})]}),(0,t.jsxs)("div",{ref:b,className:"emp-sim-taskcard",children:[(0,t.jsxs)("div",{className:"emp-sim-taskcard-head",children:[(0,t.jsx)("span",{className:"emp-dot"}),(0,t.jsx)("span",{className:"name",children:o.messagesChannel}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("span",{className:"tag",children:e.messagesLabel})]}),(0,t.jsx)("div",{className:"emp-sim-taskcard-body",children:o.messages.map(e=>(0,t.jsxs)("div",{className:"emp-sim-msg",children:[(0,t.jsx)("span",{className:e.amber?"emp-sim-avatar amber":"emp-sim-avatar",children:e.initials}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"emp-sim-msg-head",children:[(0,t.jsxs)("span",{className:"emp-sim-msg-name",children:[e.name,e.role?(0,t.jsxs)("span",{className:"role",children:[" ",e.role]}):null]}),(0,t.jsx)("span",{className:"emp-sim-msg-time",children:e.time})]}),(0,t.jsx)("div",{className:"emp-sim-msg-text",children:e.text})]})]},e.initials))})]})]}),(0,t.jsx)("div",{className:"emp-sim-tabs-dock",children:(0,t.jsxs)("div",{className:"emp-sim-tabs",children:[(0,t.jsx)("button",{ref:x[0],type:"button",className:"emp-sim-tab active",onClick:()=>C(0),children:e.tabDrop}),(0,t.jsx)("button",{ref:x[1],type:"button",className:"emp-sim-tab",onClick:()=>C(1),children:e.tabRead}),(0,t.jsx)("button",{ref:x[2],type:"button",className:"emp-sim-tab",onClick:()=>C(2),children:e.tabRisks}),(0,t.jsx)("button",{ref:x[3],type:"button",className:"emp-sim-tab",onClick:()=>C(3),children:e.tabCall})]})})]})})}])},82014,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(2582),i=e.i(13511),r=e.i(63260);let s=(0,r.asset)("69c289e686b7948b108ea2bf_Group_48096436.svg"),o=(0,r.asset)("69c2954a4b96e6fd1a839fe2_Illustration.svg"),l=({headingNow:e,headingNext:r,ctaLabel:l,ctaHref:c,labels:d,thumbs:u,slides:h})=>{let[m,p]=(0,a.useState)(0),g=h[m];return(0,t.jsxs)("div",{className:"careers-wrapper",children:[(0,t.jsxs)("div",{className:"career-thumbs-outer-wrapper",children:[(0,t.jsx)("h2",{className:"v2_heading-5",children:e}),(0,t.jsx)("div",{className:"spacer__32px"}),(0,t.jsx)("div",{role:"tablist","aria-label":e,className:"swiper-thumb-list",children:u.map((e,a)=>(0,t.jsx)("button",{type:"button",role:"tab","aria-selected":a===m,onClick:()=>p(a),className:(0,n.cn)("careers-thumb-slide",a===m&&"is-active"),children:(0,t.jsx)("p",{className:"b_16",children:e})},e))})]}),(0,t.jsxs)("div",{className:"career-slides-outer-wrapper",children:[(0,t.jsxs)("div",{className:"career-slides-heading-wrapper",children:[(0,t.jsx)("div",{className:"max-width-340 no-shrink",children:(0,t.jsx)("h2",{className:"v2_heading-4",children:r})}),(0,t.jsx)(i.CtaButton,{href:c,className:"no-shrink",children:l})]}),(0,t.jsx)("div",{className:"career-slide-outer-wrapper",children:(0,t.jsx)("div",{className:"career-slide-item is-active",children:(0,t.jsxs)("div",{className:"career-slide-content",children:[(0,t.jsxs)("div",{className:"career-slide-column",children:[(0,t.jsxs)("div",{className:"career-card _1",children:[(0,t.jsx)("img",{src:g.image,alt:g.role,className:"career-img"}),(0,t.jsx)("div",{className:"career-img-overlay"}),(0,t.jsx)("div",{className:"career-card-role",children:(0,t.jsx)("h3",{className:"career-role-text",children:g.role})})]}),(0,t.jsxs)("div",{className:"career-card _3",children:[(0,t.jsx)("div",{className:"colour__blue-v2",children:(0,t.jsx)("p",{className:"subtitle_s",children:d.salaryRange})}),(0,t.jsx)("div",{className:"spacer__16px"}),(0,t.jsx)("div",{className:"career-slide-salary-range",children:[[d.junior,g.salary.junior],[d.middle,g.salary.middle],[d.senior,g.salary.senior]].map(([e,a])=>(0,t.jsxs)("div",{className:"career-slide-salary-pill",children:[(0,t.jsx)("div",{className:"colour__black-0-35",children:(0,t.jsx)("p",{className:"subtitle_s",children:e})}),(0,t.jsx)("div",{className:"colour__black",children:(0,t.jsx)("p",{className:"b_18-medium",children:a})})]},e))})]})]}),(0,t.jsxs)("div",{className:"career-slide-column",children:[(0,t.jsxs)("div",{className:"career-card _2",children:[(0,t.jsx)("div",{className:"career-card-fit-heading",children:(0,t.jsx)("div",{className:"colour__blue-v2",children:(0,t.jsx)("p",{className:"subtitle_s",children:d.transferableSkills})})}),(0,t.jsx)("div",{className:"spacer__16px"}),(0,t.jsx)("div",{className:"career-transfer-pill-list",children:g.skills.map(e=>(0,t.jsxs)("div",{className:"career-transfer-pill",children:[(0,t.jsx)("div",{className:"career-transfer-pill-white",children:(0,t.jsx)("p",{className:"b_14",children:e.from})}),(0,t.jsx)("img",{src:s,alt:"","aria-hidden":"true",className:"transer-skill-arrow"}),(0,t.jsx)("div",{className:"career-transfer-pill-blue",children:(0,t.jsx)("p",{className:"b_14",children:e.to})})]},e.from))})]}),(0,t.jsx)("div",{className:"career-card why-fit",children:(0,t.jsxs)("div",{className:"card-inner",children:[(0,t.jsxs)("div",{className:"career-card-fit-heading",children:[(0,t.jsx)("div",{className:"colour__blue-v2",children:(0,t.jsx)("p",{className:"subtitle_s",children:d.whyFit})}),(0,t.jsx)("img",{src:o,alt:"","aria-hidden":"true"})]}),(0,t.jsx)("p",{className:"b_18",children:g.whyFit})]})})]})]})},m)})]})]})},c={orange:"bg-[#ff925c]",beige:"bg-[#f8d6b5]",blue:"bg-[#92b3e8]"},d=(0,r.asset)("69ccf04f592ec0903ea0dc7e_d90e7aa2fd3746076b41112674762724_slide-1-graphic.webp"),u=(0,r.asset)("69ccf04f68ad6c92382af567_slide-1-shape-2.svg"),h=(0,r.asset)("69ccf04fc840f87cdff272ce_slide-1-shape.svg"),m=(0,r.asset)("69ccf04fc6a61360ef6e7
156c_slide-1-circle-arrow.svg"),p=(0,r.asset)("69ccf04f8ff4a65244f743af_slide-1-arrow.svg"),g=({slide:e,statSupport:i,animateStat:r,statKey:s,className:o})=>{let l=((e,t)=>{let[n,i]=(0,a.useState)(e),r=(0,a.useRef)(void 0);return(0,a.useEffect)(()=>{let t=e.match(/(-?\d+)/);if(!t)return void i(e);let a=parseInt(t[1],10),n=e.slice(0,t.index),s=e.slice((t.index??0)+t[1].length),o=performance.now(),l=e=>{let t=Math.min(1,(e-o)/900),c=1-Math.pow(1-t,3);i(`${n}${Math.round(a*c)}${s}`),t<1&&(r.current=requestAnimationFrame(l))};return r.current=requestAnimationFrame(l),()=>{r.current&&cancelAnimationFrame(r.current)}},[e,t]),n})(e.stat,s),d=r?l:e.stat;return(0,t.jsxs)("div",{className:(0,n.cn)("absolute inset-0",o),children:[(0,t.jsx)("img",{src:e.person,alt:"","aria-hidden":"true",className:"hero-el hero-el-1 absolute bottom-0 left-1/2 h-full w-auto -translate-x-1/2 object-contain"}),(0,t.jsxs)("div",{className:"absolute left-[3%] top-[16%] flex w-[38%] max-w-[300px] flex-col gap-3 sm:left-[6%]",children:[(0,t.jsx)("img",{src:e.role1,alt:"","aria-hidden":"true",className:"hero-el hero-el-2 w-full drop-shadow-lg"}),(0,t.jsx)("img",{src:e.role2,alt:"","aria-hidden":"true",className:"hero-el hero-el-3 ml-6 w-[85%] drop-shadow-lg"})]}),(0,t.jsx)("img",{src:e.benefit,alt:"","aria-hidden":"true",className:"hero-el hero-el-3 absolute bottom-[8%] left-[6%] w-40 drop-shadow-md sm:w-52"}),(0,t.jsxs)("div",{className:(0,n.cn)("hero-el hero-el-2 absolute right-[6%] top-[20%] flex flex-col gap-1 rounded-xl p-3 text-gray-800 shadow-card-floating sm:p-5",c[e.statColor]),children:[(0,t.jsx)("span",{className:"font-sans text-3xl font-medium leading-none tracking-[-0.02em] sm:text-5xl",children:d}),(0,t.jsx)("span",{className:"max-w-[120px] font-sans text-xs leading-tight text-gray-700 sm:text-sm",children:i})]})]})},y=({statSupport:e})=>{let[n,i]=(0,a.useState)(0),[s,o]=(0,a.useState)(null),[l,c]=(0,a.useState)(!1),y=(0,a.useRef)(n);return y.current=n,(0,a.useEffect)(()=>{if(l)return;let e=setInterval(()=>{o(y.current),i(e=>(e+1)%r.HERO_SLIDES.length)},4e3);return()=>clearInterval(e)},[l]),(0,a.useEffect)(()=>{if(null===s)return;let e=setTimeout(()=>o(null),600);return()=>clearTimeout(e)},[s,n]),(0,t.jsxs)("div",{className:"relative mx-auto h-[280px] w-full max-w-[981px] overflow-hidden sm:h-[360px] lg:h-[420px]",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),"aria-roledescription":"carousel","aria-label":"Veteran career transitions",children:[(0,t.jsx)("img",{src:h,alt:"","aria-hidden":"true",className:"rd-float-a absolute left-[28%] top-[70%] w-16 sm:w-24"}),(0,t.jsx)("img",{src:u,alt:"","aria-hidden":"true",className:"rd-float-b absolute left-[64%] top-[58%] w-20 sm:w-28"}),(0,t.jsx)("img",{src:d,alt:"","aria-hidden":"true",className:"rd-float-c absolute left-[64%] top-[74%] w-32 sm:w-44"}),(0,t.jsx)("img",{src:m,alt:"","aria-hidden":"true",className:"rd-drift absolute left-[14%] top-[50%] w-10 sm:w-14"}),(0,t.jsx)("img",{src:p,alt:"","aria-hidden":"true",className:"rd-drift absolute right-[24%] top-[16%] w-8 sm:w-12"}),null!==s&&s!==n&&(0,t.jsx)(g,{slide:r.HERO_SLIDES[s],statSupport:e,animateStat:!1,statKey:-1,className:"hero-exit"},`prev-${s}`),(0,t.jsx)(g,{slide:r.HERO_SLIDES[n],statSupport:e,animateStat:!0,statKey:n,className:"hero-enter hero-active"},`cur-${n}`)]})},f=({value:e,prefix:n="",suffix:i="",className:r})=>{let s=(0,a.useRef)(null),[o,l]=(0,a.useState)(0);return(0,a.useEffect)(()=>{let t,a=s.current;if(!a)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return void l(e);let n=new IntersectionObserver(a=>{if(a[0].isIntersecting){let a,i;a=performance.now(),i=n=>{let r=Math.min(1,(n-a)/1500);l(Math.round(e*(1-Math.pow(1-r,3)))),r<1&&(t=requestAnimationFrame(i))},t=requestAnimationFrame(i),n.disconnect()}},{threshold:.4});return n.observe(a),()=>{n.disconnect(),t&&cancelAnimationFrame(t)}},[e]),(0,t.jsxs)("span",{ref:s,className:r,children:[n,o,i]})};var b=e.i(87036),x=e.i(56773);let w=(0,r.asset)("69bc11f53dfd7c39ff7c054d_arrow.svg"),v=(0,r.asset)("69bc18e3a4ec54c1a2d0f4f3_oc-collection_1.svg"),_=(0,r.asset)("69bc2156b9c8e4802fc6a9e3_Frame_1000004094.webp"),k=(0,r.asset)("69d79b08953645942c62af77_Frame_1000004094.webp"),S=(0,r.asset)("69bc228c58f00aeebbed6ec0_spinner.svg"),A=(0,r.asset)("69d6083e1294f0c75871e471_Vector_1.svg"),N=(0,r.asset)("69d608b41bf3fc557b422d5a_home_gradient_2.svg"),C=(0,r.asset)("69d608da8874a7263175b66b_Vector_3.svg"),j=({review:e})=>(0,t.jsxs)("div",{className:`review-card${e.size?` ${e.size}`:""}`,children:[(0,t.jsx)("div",{className:"review-card-heading-row",children:(0,t.jsx)("div",{className:"review-card-heading-name",children:(0,t.jsx)("div",{className:"colour__black-0-5",children:(0,t.jsx)("p",{className:"b_16",children:e.name})})})}),(0,t.jsx)("div",{className:"spacer__24px"}),(0,t.jsx)("div",{className:"review-card-review",children:(0,t.jsx)("p",{className:"b_16",children:e.text})})]});e.s(["HomeContent",0,({home:e,careerThumbs:a,careerSlides:n})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("section",{className:"section-main home-hero",children:[(0,t.jsx)("div",{className:"spacer__76px"}),(0,t.jsx)("div",{className:"spacer__64px"}),(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsxs)("div",{className:"v2_home-hero-wrapper",children:[(0,t.jsx)("p",{className:"subtitle_m hero-in hero-in-1",children:e.hero.eyebrow}),(0,t.jsx)("div",{className:"v2_home-h1-max-width hero-in hero-in-2",children:(0,t.jsxs)("h1",{className:"v2_heading-1",children:[e.hero.titleLead," ",(0,t.jsx)("span",{className:"colour__blue-v2",children:e.hero.titleHighlight})]})}),(0,t.jsx)("p",{className:"b_16 hero-in hero-in-3",children:e.hero.subtitle}),(0,t.jsx)("div",{className:"v2_home-hero-button-margin hero-in hero-in-4",children:(0,t.jsx)(i.CtaButton,{href:x.APP_LINKS.start,children:e.hero.cta})})]})}),(0,t.jsx)("div",{className:"spacer__64px"}),(0,t.jsx)("div",{className:"hero-slider",children:(0,t.jsx)("div",{className:"hero-swiper",children:(0,t.jsx)(y,{statSupport:e.statSupport})})}),(0,t.jsx)("img",{src:A,alt:"","aria-hidden":"true",className:"v2_home-hero-gradient-1"}),(0,t.jsx)("img",{src:N,alt:"","aria-hidden":"true",className:"v2_home-hero-gradient-2"}),(0,t.jsx)("img",{src:C,alt:"","aria-hidden":"true",className:"v2_home-hero-gradient-3"})]}),(0,t.jsx)("div",{className:"section-main bg-solid",children:(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsxs)("div",{className:"v2_home-logo-wrapper",children:[(0,t.jsx)("div",{className:"v2_home-logo-text",children:(0,t.jsx)("p",{className:"b_18-medium",children:e.logos.heading})}),(0,t.jsx)("div",{className:"v2_home-logo-grid",children:r.PARTNER_LOGOS.map(e=>(0,t.jsx)("img",{src:e.src,alt:`${e.alt} logo`,loading:"lazy"},e.alt))})]})})}),(0,t.jsxs)("section",{className:"section-main bg-solid",children:[(0,t.jsx)("div",{className:"spacer__112px"}),(0,t.jsxs)("div",{className:"contain-main",children:[(0,t.jsx)(b.Reveal,{className:"align__center",children:(0,t.jsx)("h2",{className:"v2_heading-3",children:e.discover.heading})}),(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsx)("div",{className:"v2_home-card-grid-3x1",children:r.DISCOVER_CARDS.map((e,a)=>(0,t.jsxs)(b.Reveal,{className:"v2_home-card-item",delay:a%3+1,children:[(0,t.jsx)("img",{src:e.icon,alt:"","aria-hidden":"true"}),(0,t.jsx)("h3",{className:"v2_heading-5",children:e.title}),(0,t.jsx)("p",{className:"b_16",children:e.body})]},e.title))})]}),(0,t.jsx)("div",{className:"spacer__112px"})]}),(0,t.jsxs)("header",{className:"section-main white",children:[(0,t.jsx)("div",{className:"spacer__112px"}),(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsx)(l,{headingNow:e.careers.now,headingNext:e.careers.next,ctaLabel:e.careers.cta,ctaHref:x.APP_LINKS.start,labels:e.careerLabels,thumbs:a,slides:n})}),(0,t.jsx)("div",{className:"spacer__80px"})]}),(0,t.jsxs)("div",{className:"section-main employers-one-platform",children:[(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsxs)("div",{className:"contain-main",children:[(0,t.jsx)("div",{className:"align__center",children:(0,t.jsxs)(b.Reveal,{className:"v2_home-one-platform-wrapper",children:[(0,t.jsx)("div",{className:"max-width-650",children:(0,t.jsx)("h2",{className:"v2_heading-3",children:e.platform.heading})}),(0,t.jsx)("div",{className:"max-width-650",children:(0,t.jsx)("p",{className:"b_18",children:e.platform.body})}),(0,t.jsx)(i.CtaButton,{href:x.APP_LINKS.start,children:e.platform.cta})]})}),(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsxs)("div",{className:"v2_home-job-searching-grid",children:[(0,t.jsxs)(b.Reveal,{className:"v2_home-job-searching-item-top",children:[(0,t.jsxs)("div",{className:"max-width-650",children:[(0,t.jsx)("h3",{className:"v2_heading-5",children:r.PLATFORM_INTRO.title}),(0,t.jsx)("div",{className:"spacer__16px"}),(0,t.jsx)("div",{className:"colour__black-0-5",children:(0,t.jsx)("p",{className:"b_16",children:r.PLATFORM_INTRO.body})})]}),(0,t.jsx)("img",{src:w,alt:"","aria-hidden":"true"})]}),r.PLATFORM_FEATURES.map((e,a)=>(0,t.jsxs)(b.Reveal,{className:"v2_home-job-searching-item",delay:a%3+1,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"v2_heading-5",children:e.title}),(0,t.jsx)("div",{className:"spacer__16px"}),(0,t.jsx)("div",{className:"colour__black-0-75",children:(0,t.jsx)("p",{className:"b_16",children:e.body})})]}),(0,t.jsx)("img",{src:e.image,alt:"","aria-hidden":"true",className:"one-platform-imgs",loading:"lazy"})]},e.title))]})]}),(0,t.jsx)("div",{className:"spacer__112px"})]}),(0,t.jsxs)("header",{className:"section-main bg-solid",children:[(0,t.jsx)("div",{className:"spacer__112px"}),(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsxs)(b.Reveal,{className:"v2_home-results-wrapper",children:[(0,t.jsxs)("div",{className:"v2_home-results-left",children:[(0,t.jsx)("h2",{className:"v2_heading-3",children:e.results.heading}),(0,t.jsx)("img",{src:v,alt:"","aria-hidden":"true"})]}),(0,t.jsx)("div",{className:"v2_home-results-right",children:r.RESULT_STATS.map(e=>(0,t.jsxs)("div",{className:"v2_home-results-grid-item",children:[(0,t.jsx)("div",{className:"colour__blue-v2",children:(0,t.jsx)(f,{value:e.value,suffix:e.suffix,prefix:e.prefix,className:"statistic_80"})}),(0,t.jsx)("p",{className:"b_16",children:e.label})]},e.label))})]})}),(0,t.jsx)("div",{className:"spacer__112px"})]}),(0,t.jsxs)("header",{className:"section-main black overflow-none",children:[(0,t.jsx)("div",{className:"spacer__112px"}),(0,t.jsxs)("div",{className:"contain-main",children:[(0,t.jsx)(b.Reveal,{className:"v2_home-reviews-heading",children:(0,t.jsx)("div",{className:"colour__white align__center",children:(0,t.jsx)("h2",{className:"v2_heading-3",children:e.reviews.heading})})}),(0,t.jsx)("div",{className:"spacer__64px"})]}),(0,t.jsxs)("div",{className:"v2_review-wrapper",children:[(0,t.jsxs)("div",{className:"reviews-row-1",children:[(0,t.jsx)("div",{className:"reviews-track-1a",children:r.REVIEWS_ROW_1.map((e,a)=>(0,t.jsx)(j,{review:e},`1a-${a}`))}),(0,t.jsx)("div",{className:"reviews-track-1b","aria-hidden":"true",children:r.REVIEWS_ROW_1.map((e,a)=>(0,t.jsx)(j,{review:e},`1b-${a}`))})]}),(0,t.jsx)("div",{className:"spacer__24px"}),(0,t.jsxs)("div",{className:"reviews-row-2",children:[(0,t.jsx)("div",{className:"reviews-track-2a",children:r.REVIEWS_ROW_2.map((e,a)=>(0,t.jsx)(j,{review:e},`2a-${a}`))}),(0,t.jsx)("div",{className:"reviews-track-2b","aria-hidden":"true",children:r.REVIEWS_ROW_2.map((e,a)=>(0,t.jsx)(j,{review:e},`2b-${a}`))})]})]}),(0,t.jsx)("div",{className:"spacer__112px"}),(0,t.jsx)("div",{className:"v2_home-reviews-glow-orange"}),(0,t.jsx)("div",{className:"v2_home-reviews-glow-blue"}),(0,t.jsx)("div",{className:"v2_home-reviews-glow-blue-2"})]}),(0,t.jsxs)("header",{className:"section-main white",children:[(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsxs)(b.Reveal,{className:"v2_home-founder-wrapper",children:[(0,t.jsxs)("div",{className:"v2_home-founder-left",children:[(0,t.jsx)("h2",{className:"v2_heading-2",children:e.founder.heading}),(0,t.jsx)("p",{className:"b_18",children:e.founder.body})]}),(0,t.jsx)("img",{src:_,alt:"","aria-hidden":"true",className:"v2_home-ben",loading:"lazy"}),(0,t.jsx)("img",{src:k,alt:"","aria-hidden":"true",className:"v2_home-ben-mobile",loading:"lazy"})]})}),(0,t.jsx)("div",{className:"spacer__112px"})]}),(0,t.jsxs)("div",{className:"section-main bg-solid overflow-none",children:[(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsx)("div",{className:"contain-main",children:(0,t.jsxs)(b.Reveal,{className:"v2_home-possible-cta",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"whats-possible-heading",children:(0,t.jsxs)("h2",{className:"v2_heading-2 align__center max-width-700",children:[e.possible.headingLead," ",(0,t.jsx)("img",{src:S,alt:"","aria-hidden":"true",style:{display:"inline",verticalAlign:"middle",height:"1em",margin:"0 0.2em"}})," ",e.possible.headingTail]})}),(0,t.jsx)("div",{className:"spacer__24px"}),(0,t.jsx)("p",{className:"b_16",children:e.possible.body})]}),(0,t.jsx)(i.CtaButton,{href:x.APP_LINKS.start,children:e.possible.cta})]})}),(0,t.jsx)("div",{className:"spacer__80px"}),(0,t.jsx)("div",{className:"v2_home-possible-graident-left"}),(0,t.jsx)("div",{className:"v2_home-possible-graident-right"})]})]})],82014)},93148,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(56420);let i=(0,n.default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}
1],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var r=e.i(49325);let s=()=>{},o={xs:"400px",sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},l=(e,t)=>((e,{ssrMatches:t=!1}={})=>{let n=(0,a.useMemo)(()=>"function"==typeof window.matchMedia?window.matchMedia(e):null,[e]),i=(0,a.useCallback)(e=>n?(n.addEventListener("change",e),()=>n.removeEventListener("change",e)):s,[n]),r=(0,a.useCallback)(()=>n?.matches??!1,[n]),o=(0,a.useCallback)(()=>t,[t]);return(0,a.useSyncExternalStore)(i,r,o)})(`(min-width: ${o[e]})`,t);var c=e.i(8684);let d=(0,n.default)("scale",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]);var u=e.i(63676),h=e.i(11234);let m=({metros:e,onRemove:a,onClear:n,onOpenCompare:i,bottomOffset:r=0})=>0===e.length?null:(0,t.jsx)("div",{className:"pointer-events-none fixed left-0 right-0 z-[550] px-4",style:{bottom:r},children:(0,t.jsxs)("div",{className:"pointer-events-auto mx-auto flex max-w-3xl flex-wrap items-center gap-2 rounded-2xl border border-border bg-background px-3 py-2 shadow-xl",children:[(0,t.jsx)(d,{className:"ml-1 h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-2",children:[e.map(e=>(0,t.jsxs)("span",{className:"inline-flex max-w-[180px] items-center gap-1 rounded-full bg-secondary py-1 pl-2.5 pr-1 text-xs text-secondary-foreground",children:[(0,t.jsx)("span",{className:"truncate",children:e.metro}),(0,t.jsx)("button",{onClick:()=>a(e),"aria-label":`Remove ${e.metro} from comparison`,className:"rounded-full p-0.5 hover:bg-background/60",children:(0,t.jsx)(u.X,{className:"h-3 w-3"})})]},e.metro)),(0,t.jsx)("button",{onClick:n,className:"ml-1 text-xs text-muted-foreground underline underline-offset-2 hover:text-foreground",children:"Clear all"})]}),(0,t.jsxs)(h.Button,{color:"blue",size:32,onClick:i,disabled:e.length<2,className:"shrink-0 font-bold",children:["Compare (",e.length,")"]})]})});var p=e.i(11241),g=e.i(68877);let y=(0,n.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var f=e.i(2582);let b=[{metro:"Northern Virginia (Loudoun/PW/Fairfax)",country:"US",state_region:"Virginia",location:"Ashburn, VA",latitude:"39.1000",longitude:"-77.6000",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"The data center capital of the world. And they can't find enough electricians.",whats_being_built:"Northern Virginia runs an estimated 70% of the world's internet traffic. CBRE's H2 2025 report puts the market at 4,039.6 megawatts of total inventory, up 37% year-on-year, with more than 1 gigawatt of new capacity delivered in 2025 alone. The region now holds nearly 3.5 times more data center capacity than all secondary US markets combined. Net absorption hit 1,102 megawatts in 2025 - more than double 2024. Dominion Energy's contracted data center capacity continues to expand toward 40 gigawatts.",why_youre_in_demand:"The IBEW calls the electrician shortage a 'life or death' situation for AI infrastructure. More than 300,000 new electricians are needed over the next decade, and 30% of union electricians are aged 50-70 - about 20,000 retire annually. McKinsey projects $6.7 trillion in global data center investment by 2030. Microsoft has publicly said finding electricians is its single biggest bottleneck. Microsoft President Brad Smith has said the US may need half a million new electricians. If you're qualified, you pick where you work.",what_it_pays:"IBEW Local 26 journeyman rate is $59.50/hr, roughly $120K a year. With overtime, that pushes past $200K. DC-area electricians with data center experience are earning $240K to $280K.",hiring_now:"IBEW Local 26 has doubled its membership since 2018 to 14,700+. They're still hiring.",source:"CBRE H2 2025 Data Center Trends (Feb 2026); Fortune Mar 2026; IBEW;
1 McKinsey AI infrastructure forecasts",notes:"Anchor metro for any US skilled trades map",key_employers:"Microsoft, Dominion Energy, AWS, Google"},{metro:"Atlanta",country:"US",state_region:"Georgia",location:"Atlanta, GA",latitude:"33.7490",longitude:"-84.3880",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"Atlanta tripled its data center capacity in a year. They need the people to run it.",whats_being_built:"Atlanta has 1,459 megawatts of data center inventory, up 459 megawatts year-on-year. Another 2,076 megawatts is under construction, with 10+ gigawatts of future capacity approved. Google, Microsoft, Meta, and AWS are all building here.",why_youre_in_demand:"The Southeast electrician and mechanical trades pool is stretched thin. The Associated Builders and Contractors estimates 500,000 new construction workers will be needed nationally by 2027. Atlanta is competing for its share.",what_it_pays:"Lease rates on large data center deals are up nearly 14% since end of 2024. That price pressure flows directly into wages for the people who build and maintain these facilities.",hiring_now:"Google, Microsoft, Meta, and AWS all have active operations roles in the Atlanta metro.",source:"CBRE Atlanta Mar 2026; Global Data Center Hub Q3 2025",notes:"Tripled inventory YoY - fastest-growing primary market",key_employers:"Google, Microsoft, Meta, AWS"},{metro:"Dallas-Fort Worth",country:"US",state_region:"Texas",location:"Dallas, TX",latitude:"32.7760",longitude:"-96.7960",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"A gigawatt of data center capacity, 98% full. They're building three times more.",whats_being_built:"Around 1 gigawatt of capacity is online and 98% leased. Another 600 megawatts is under construction (95% already spoken for). 2.2 gigawatts is in planning, with 40 gigawatts in power requests. This market is tripling in three years after 20 years of slow growth.",why_youre_in_demand:"The Texas trades pool is being pulled in every direction. Stargate in Abilene and Gulf Coast LNG plants are competing for the same electricians, welders, and HVAC techs.",what_it_pays:"Data center construction electricians $40â$60/hr with overtime; site superintendents $130kâ$180k. Operations technicians $75kâ$115k. Wage pressure rising across the board.",hiring_now:"Major staffing firms and CBRE have active listings. The hiring pipeline here is continuous.",source:"D Magazine/CBRE Dec 2025",notes:"Market tripling in three years after 20-year slow build",key_employers:"AWS, Meta, Google, Microsoft, Oracle"},{metro:"Phoenix (Chandler/North Phoenix)",country:"US",state_region:"Arizona",location:"Chandler, AZ",latitude:"33.4480",longitude:"-112.0740",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Advanced manufacturing + Data centers",headline:"TSMC is tripling its Arizona campus. They've been delayed because they can't find enough people.",whats_being_built:"TSMC is building six semiconductor fabs plus two advanced packaging plants. 6,000 jobs are expected from Fab 3 alone. Intel Chandler continues to expand alongside. This is semiconductor reshoring ground zero.",why_youre_in_demand:"TSMC has been repeatedly delayed specifically because there aren't enough skilled workers for equipment installation. They've had to bring in technicians from Taiwan to fill the gap. That's your opening.",what_it_pays:"Fab technicians $70kâ$110k; cleanroom equipment techs $85kâ$130k; construction electricians $40â$60/hr. Relocation packages and imported Taiwanese specialists signal premium wage pressure.",hiring_now:"TSMC Arizona is hiring hundreds of technicians through direct and contract routes.",source:"Axios Phoenix May 2025; CIO Jan 2025",notes:"Semiconductor-trained EM technicians in acute shortage",key_employers:"TSMC, Intel"},{metro:"Columbus / Central Ohio",country:"US",state_region:"Ohio",location:"Columbus, OH",latitude:"39.9610",longitude:"-82.9990",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Advanced manufacturing + Defense + Data centers",headline:"Intel, Anduril, Meta, and AWS all building in the same metro. At the same time.",whats_being_built:"Intel is spending $20 billion on two mega-fabs, creating 3,000 direct jobs and 7,000 construction roles. Anduril's Arsenal 1 opened in Q1 2026, targeting 4,000 employees by 2035. Meta is building a gigawatt data center. AWS is adding $10 billion by 2029.",why_youre_in_demand:"Intel is competing for workers with Hilton, Ohio State Medical, Amgen, AWS, Google, and a $200 million courthouse project. Everyone needs the same electricians and welders. The bidding war is real.",what_it_pays:"Intel's average salary is $130K. Skilled trades are commanding premiums from the bidding war between every major employer in the region.",hiring_now:"Hundreds of ongoing postings across Intel, Anduril, and their contractors. The most sector-diverse boom metro in the US.",source:"Intel Newsroom Apr 2025; IndustryWeek Jan 2025",notes:"Single most sector-diverse US boom metro",key_employers:"Intel, Anduril, Meta, AWS, Google"},{metro:"Newport News / Hampton Roads",country:"US",state_region:"Virginia",location:"Newport News, VA",latitude:"36.9778",longitude:"-76.4280",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Defense (shipbuilding)",headline:"The only shipyard in America that builds aircraft carriers. They need 21,000 new hires this decade.",whats_being_built:"Newport News Shipbuilding is at roughly 25,000 employees today, the largest industrial employer in Virginia. HII targets thousands of new hires annually to meet submarine and carrier demand. In April 2025, the Navy awarded contracts worth up to $18.5 billion jointly to General Dynamics Electric Boat (prime, $12.4 billion base / $17.1 billion with options) and HII Newport News Shipbuilding ($1.29 billion share) for the final two Block V Virginia-class submarines, plus shipyard productivity and workforce wage investments. HII targets approximately 19,000-21,000 new hires across the next decade.",why_youre_in_demand:"New-hire attrition runs above 50% in year one. Regional unemployment is just 3.1%. The yard competes directly with the $9.8 billion Coastal Virginia offshore wind build for the same trades. Block V
1I Virginia-class and Columbia-class contracts could be finalised by end of 2026, layering more demand on top.",what_it_pays:"Shipyard welders and pipefitters $28-$42/hr; nuclear-cleared trades $90k-$130k. HII is boosting wages via federal Submarine Advanced Workforce Solutions funding, closing fast on Amazon and commercial parity.",hiring_now:"HII is targeting thousands of hires per year across all skill trades. Sign-on bonuses up to $5,000.",source:"USNI News Apr+Oct 2025; HII newsroom Jan 2026",notes:"Only US yard that builds carriers and shares sub builds",key_employers:"Huntington Ingalls Industries"},{metro:"Gulf Coast TX/LA (Houston/Lake Charles/Corpus/Freeport)",country:"US",state_region:"Texas/Louisiana",location:"Houston, TX",latitude:"29.7600",longitude:"-95.3700",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Energy (LNG + petrochemicals)",headline:"Five LNG plants under construction. 30,000 workers needed. Wages up 20% in three years.",whats_being_built:"Five liquefied natural gas plants are going up simultaneously, adding 86.6 million tons per year of capacity. Freeport alone is cleared for 9,100 workers. Cameron needs 11,400. Over 30,000 workers are needed across the corridor.",why_youre_in_demand:"The Gulf Coast Industrial Group reports 20% wage inflation between 2021 and 2024. Employers are paying per diem just to keep crews from leaving for the next site down the road.",what_it_pays:"Welders and pipefitters earn up to $60/hr plus sign-on bonuses. Louisiana construction wages rose 19% year-on-year in 2023. This is the epicenter of US skilled trades wage inflation.",hiring_now:"Tens of thousands of active union-hall calls across the Gulf Coast corridor.",source:"S&P Global; Pipeline & Gas Journal Jun 2024; Lofton 2026",notes:"Epicenter of US skilled trades wage inflation",key_employers:"Freeport LNG, Cameron LNG, Bechtel"},{metro:"BlueOval City (Stanton TN / Glendale KY)",country:"US",state_region:"Tennessee/Kentucky",location:"Stanton, TN",latitude:"35.4590",longitude:"-89.3860",tier:"3",certainty:"Watch and wait",tier_context:"Project rescoped. Production roles 2028-2029.",demand_signal:"Watch",sector:"Conventional manufacturing + battery storage",headline:"Originally the biggest single auto bet ever. Now rescoped to gas trucks and energy storage.",whats_being_built:"The Tennessee Electric Vehicle Center has been renamed Tennessee Truck Plant. Ford pivoted from electric pickups to gas-powered Built Ford Tough models, with production now starting in 2029. Ford and SK On agreed to dissolve the BlueOval SK joint venture in December 2025; transition completing Q1 2026. SK On will own and operate the Tennessee battery plant, supplying Ford and selling to energy storage customers, with commercial production now expected in 2028. Glendale KY Plant 1 is still producing batteries for the F-150 Lightning (commercial production launched August 2025); Plant 2 is transferring to Ford for its new battery energy storage business. State commitment of 5,800 jobs at the BlueOval City site remains, but down from the original 11,000 combined.",why_youre_in_demand:"The construction surge is winding down (facility build largely complete). What's still ramping: production technicians, maintenance, and skilled trades for the 2027-2029 Tennessee Truck Plant ramp from ~80 Ford employees today to ~2,300 at full production. The SK On battery plant is around 300 people in transition. Glendale KY had 1,500+ layoffs starting February 2026 as the JV dissolved, but Ford's energy storage operation will hire some back.",what_it_pays:"Battery production technicians $25-$35/hr; skilled trades $35-$50/hr; engineers $85k-$120k. Sign-on bonuses have moderated since the EV market shift.",hiring_now:"Ramp is gradual. Check Ford careers for Tennessee Truck Plant openings as 2029 production approaches; SK On Tennessee for battery roles.",source:"Tennessee Lookout Feb 2026; Memphis Flyer Dec 2025; WardsAuto Dec 2025",notes:"Major rescoping: EV plans cancelled, gas-powered trucks 2029 + battery storage transition",key_employers:"Ford, SK On"},{metro:"Syracuse / Clay NY (Micron)",country:"US",state_region:"New York",location:"Clay, NY",latitude:"43.1890",longitude:"-76.1680",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Advanced manufacturing (semiconductors)",headline:"Micron is spending $100 billion. Central New York hasn't grown since the 1950s. Construction is happening now.",whats_being_built:"Micron broke ground 16 January 2026 on its megafab in the Town of Clay. The full plan is up to four semiconductor fabs, creating 9,000 direct jobs and 40,000+ total permanent and support roles over a build-out running into 2041. This is the largest semiconductor investment in US history. First fab construction starts mid-2026; first chips produced 2030.",why_youre_in_demand:"Central New York's population hadn't grown since the 1950s before Micron arrived. The skilled trades pipeline is being built from scratch. They need experienced construction trades, electricians, and project managers now - the multi-decade timeline means continuous hiring waves through 2041.",what_it_pays:"Construction trades on data center / fab projects $35-$60/hr; Micron program roles pay $96K to $216K depending on seniority.",hiring_now:"Hundreds of construction-trade roles active across Gilbane (lead contractor) and Micron's own pipeline.",source:"Micron press release Jan 2026; Construction Dive Jan 2026; ENR Nov 2025",notes:"Largest US history semi investment",key_employers:"Micron"},{metro:"Reno / Sparks NV (Tesla Gigafactory)",country:"US",state_region:"Nevada",location:"Sparks, NV",latitude:"39.5296",longitude:"-119.8138",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Advanced manufacturing (EV + batteries)",headline:"Tesla has 11,000 people here, is ramping the Semi factory, and the workforce is still growing.",whats_being_built:"Tesla has invested $6.2 billion in its original Gigafactory and employs roughly 11,000 people. The $3.6 billion Semi factory and 4680 battery cell expansion (announced January 2023) is now ramping, with Semi mass production targeted for 2026. The expansion is set to add 3,000 more direct roles when fully built out.",why_youre_in_demand:"Northern Nevada trades are tight. Tesla competes with Apple, Switch, Microsoft, and Amazon for the same regional workforce. The Semi ramp through 2026 is pulling another 1,000+ workers.",what_it_pays:"Tesla skilled-trade construction contracts pay $40 to $50/hr W2 on 50-hour weeks; production technicians $25-$40/hr; engineers $90k-$140k.",hiring_now:"Listings consistently in the dozens across the Gigafactory; high turnover keeps volume sustained.",source:"Urban Land Aug 2024; The Center Square May 2025; Tesla newsroom",notes:"Original Nevada Gigafactory plus Tesla Semi 2026 ramp",key_employers:"Tesla, Apple, Switch, Microsoft, Amazon"},{metro:"Richmond VA",country:"US",state_region:"Virginia",location:"Richmond, VA",latitude:"37.5400",longitude:"-77.4360",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Northern Virginia is full. The build is spilling south. Richmond is next.",whats_being_built:"Data center capacity jumped 100 megawatts to 800+ megawatts in the first half of 2025. AWS has committed $35 billion to new Virginia sites by 2040. Richmond is the natural overflow.",why_youre_in_demand:"The NoVA trades pool is being stretched further south. If you're already in Virginia, you don't even need to move.",what_it_pays:"Southern Virginia wages are catching up to NoVA as sites extend down the I-95 corridor.",hiring_now:"Growing AWS and Google contractor listings in Chesterfield and surrounding counties.",source:"Global Data Center Hub Oct 2025; JLARC",notes:"Spillover story of Northern VA",key_employers:"AWS, Google"},{metro:"Austin-San Antonio TX",country:"US",state_region:"Texas",location:"Austin, TX",latitude:"30.2670",longitude:"-97.7430",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers + semiconductors",headline:"Samsung's $17 billion fab. Stargate shortlisted. Texas is building its own chip corridor.",whats_being_built:"A secondary data center market growing fast. Samsung Taylor is expanding and the site is on the Stargate shortlist. The Austin-San Antonio corridor is becoming a semiconductor and data center spine.",why_youre_in_demand:"Part of the Texas trades bidding war. Stargate, Gulf Coast LNG, and DFW data centers are all pulling from the same workforce. If you're in Texas, everyone wants you.",what_it_pays:"Samsung Taylor fab technicians $75kâ$120k; process engineers $110kâ$160k; construction electricians $42â$58/hr. Aggressive semiconductor-specialist packages.",hiring_now:"Samsung Taylor is actively hiring in the hundreds across fabrication and facilities roles.",source:"CBRE Mar 2026",notes:"Secondary market with primary-market hiring intensity",key_employers:"Samsung"},{metro:"Hillsboro / Portland OR (Silicon Forest)",country:"US",state_region:"Oregon",location:"Hillsboro, OR",latitude:"45.5230",longitude:"-122.9890",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers + chips",headline:"Third-largest US data center market. Intel's main R&D fab. And it keeps growing.",whats_being_built:"1,660 megawatts of data center capacity. Intel's D1X research fab is active. Amazon, Microsoft, and Apple are all expanding in the Portland metro.",why_youre_in_demand:"The Oregon electrician and high-voltage technician pipeline is tight. C
1ompetition with Washington state for the same workers is real.",what_it_pays:"Cleared fab trades $80kâ$125k; data-center-certified electricians $48â$65/hr; equipment technicians $30â$45/hr.",hiring_now:"Intel and data center contractor roles run into the hundreds at any time.",source:"VPM; JLARC",notes:"Intel D1X main R&D fab is here",key_employers:"Intel, Amazon, Microsoft, Apple"},{metro:"Chicago",country:"US",state_region:"Illinois",location:"Chicago, IL",latitude:"41.8780",longitude:"-87.6300",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"692 megawatts and growing. The Midwest's quiet data center hub.",whats_being_built:"Chicago is a 692-megawatt primary market with 244 megawatts under construction. That's roughly 9% of the entire US market.",why_youre_in_demand:"Midwest electrical trades are tight. Competing fab projects across Ohio, Michigan, and Wisconsin are all drawing from the same pool.",what_it_pays:"IBEW Local 134 inside-wireman scale ~$58/hr base plus benefits; data-center-certified workers $65â$80/hr all-in. Stable union rates with premium for DC certs.",hiring_now:"Multiple hyperscaler openings ongoing across the Chicago metro.",source:"Programs.com Mar 2026; CBRE",notes:"Reliable secondary player",key_employers:"AWS, Google, Meta, Microsoft"},{metro:"Silicon Valley / Santa Clara CA",country:"US",state_region:"California",location:"Santa Clara, CA",latitude:"37.3382",longitude:"-121.8870",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"The sharpest data center pricing growth in the country. Power is the bottleneck, not demand.",whats_being_built:"Pricing on large data center deals grew 19% in the first half of 2025. The market is reconfiguring for AI workloads, but power constraints are the limiting factor.",why_youre_in_demand:"The existing workforce is being pulled in every direction. Power-infrastructure electricians are especially scarce.",what_it_pays:"Fab engineers $130kâ$190k; cleanroom technicians $80kâ$120k; electricians $75â$95/hr. High wages but California cost of living offsets them.",hiring_now:"Hyperscaler job openings are posted constantly across the Valley.",source:"CBRE H1 2025",notes:"Mature market reconfiguring for AI",key_employers:"Google, Meta, Apple, Microsoft"},{metro:"Charlotte-Raleigh NC",country:"US",state_region:"North Carolina",location:"Charlotte, NC",latitude:"35.2270",longitude:"-80.8430",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"AWS has invested $22 billion in North Carolina. 500+ direct jobs from the latest build alone.",whats_being_built:"Amazon committed $10 billion in Richmond County with 500+ direct jobs. Total AWS investment in North Carolina stands at $22 billion and counting.",why_youre_in_demand:"North Carolina trades are tightening. The state is scaling electrician apprenticeships to meet demand, but the pipeline isn't ready yet.",what_it_pays:"Data center technicians $70kâ$105k; construction electricians $35â$52/hr. AWS sets the wage floor above standard NC construction rates.",hiring_now:"AWS and contractor postings are active across the Charlotte-Raleigh corridor.",source:"Data Center Frontier",notes:"Power + fiber + land advantage",key_employers:"AWS, Amazon"},{metro:"Central Washington (Quincy/Wenatchee) WA",country:"US",state_region:"Washington",location:"Quincy, WA",latitude:"47.2340",longitude:"-119.8530",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Cheap hydropower. Hyperscale data centers. Rural Washington is booming.",whats_being_built:"A secondary market with continued hyperscaler build-out, powered by some of the cheapest electricity in the US. The hydropower advantage makes this a long-term play.",why_youre_in_demand:"Rural eastern Washington has a small population. IBEW is scaling training capacity, but the people aren't there yet.",what_it_pays:"IBEW Wenatchee journeyman scale $52â$62/hr; data center techs $70kâ$100k. Tuition-free apprenticeships signal acute shortage.",hiring_now:"Pacific N
1orthwest data center contractor roles are active.",source:"Yahoo Finance Sep 2025",notes:"Hydropower-backed secondary market",key_employers:"Microsoft, Google, AWS"},{metro:"New York Tri-State (NJ)",country:"US",state_region:"New York/New Jersey",location:"Newark, NJ",latitude:"40.7128",longitude:"-74.0060",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Vacancy under 2%. Near-record construction. The Tri-State data center market is full and building.",whats_being_built:"A primary market with vacancy under 2% and near-record construction activity. The infrastructure pipeline for secure data facilities is deep.",why_youre_in_demand:"Mechanical and electrical labor is being pulled toward secure infrastructure projects. The premium New York and New Jersey baseline means employers have to pay up.",what_it_pays:"IBEW Local 3/102 scale $70â$90/hr all-in; data-center-certified premium adds 10â15%. Baseline already NYC/NJ premium.",hiring_now:"Multiple major openings are currently posted across the Tri-State area.",source:"CBRE",notes:"Established primary market",key_employers:"AWS, Google, Meta"},{metro:"Salem Township / Luzerne County PA (AWS + Susquehanna)",country:"US",state_region:"Pennsylvania",location:"Salem Township, PA",latitude:"41.1430",longitude:"-75.9390",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"The largest private investment in Pennsylvania history. AWS. $20 billion. Next to a nuclear plant.",whats_being_built:"AWS announced a $20 billion Pennsylvania investment in June 2025. 1,250 direct jobs plus thousands in the supply chain. The site sits next to the Susquehanna nuclear plant for power access.",why_youre_in_demand:"The state is committing $10 million to workforce development at schools, colleges, and union halls. The training pipeline is scaling from near-zero. They need experienced people now.",what_it_pays:"AWS data-center technicians $65kâ$95k; apprenticeship programs paying $22â$28/hr while training. New wage floor for the region.",hiring_now:"Amazon and AWS are scouting for thousands of trades roles across Pennsylvania.",source:"Philadelphia Inquirer Jun 2025; About Amazon",notes:"Colocated with nuclear plant",key_employers:"AWS, Amazon"},{metro:"Bucks County PA (Falls Township)",country:"US",state_region:"Pennsylvania",location:"Falls Township, PA",latitude:"40.3410",longitude:"-75.1130",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"A former US Steel site. Now an AWS data center campus. The Philly trades pool is already tight.",whats_being_built:"Second AWS Pennsylvania campus, built on a former US Steel brownfield site in Falls Township. Part of the broader $20 billion AWS Pennsylvania commitment.",why_youre_in_demand:"Trades are being drawn from an already tight Philadelphia metro pool. Every new site announcement makes the remaining workforce more valuable.",what_it_pays:"Amazon's wage floor sets the baseline (~$22/hr warehouse, ~$30/hr maintenance). Data center construction electricians $42â$58/hr; ops technicians $70kâ$110k.",hiring_now:"AWS, Amazon, and subcontractor postings are active.",source:"Philadelphia Inquirer Jun 2025",notes:"Brownfield conversion storyline",key_employers:"AWS, Amazon"},{metro:"Shreveport / Bossier-Caddo Parish LA",country:"US",state_region:"Louisiana",location:"Shreveport, LA",latitude:"32.5252",longitude:"-93.7500",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Amazon and STACK just announced $12 billion in Shreveport. 1,500 construction workers. 540 permanent roles.",whats_being_built:"Amazon and data center developer STACK announced a $12 billion hyperscale complex in February 2026. 1,500 construction workers needed, 540 permanent roles, and 1,700 indirect jobs.",why_youre_in_demand:"Louisiana's comb
1ined data center construction pipeline has over $50 billion of concurrent demand on a limited workforce. If you're in the state, you have options.",what_it_pays:"Warehouse and ops $20â$26/hr (Amazon floor); construction trades $28â$42/hr; data-center techs $65kâ$95k. Significant premium over regional median.",hiring_now:"Amazon Shreveport roles are actively scaling.",source:"Technical.ly Feb 2026",notes:"One of three LA DC megasites",key_employers:"Amazon, STACK"},{metro:"West Feliciana Parish LA (Hut 8 River Bend)",country:"US",state_region:"Louisiana",location:"West Feliciana Parish, LA",latitude:"30.7550",longitude:"-91.4370",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Hut 8 just put $7 to $10 billion into rural Louisiana. Phase 2 expected by end of 2026.",whats_being_built:"Hut 8 announced a $7 to $10 billion investment in December 2025. Phase 1 covers two 450,000 sq ft data centers. Phase 2 is expected by end of 2026.",why_youre_in_demand:"Louisiana skilled trades are already at capacity from LNG and Richland Parish builds. There simply aren't enough people for all the work.",what_it_pays:"Power and petrochemical-trained trades $35â$55/hr; instrumentation techs $80kâ$115k. Premium commanded across the board.",hiring_now:"Hut 8 River Bend is running active general contractor procurement.",source:"Technical.ly Feb 2026",notes:"Emerging third node in LA DC triangle",key_employers:"Hut 8"},{metro:"Mount Pleasant WI (Microsoft)",country:"US",state_region:"Wisconsin",location:"Mount Pleasant, WI",latitude:"42.7197",longitude:"-87.9015",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Remember the failed Foxconn site? Microsoft owns it now. Phase 1 is operational.",whats_being_built:"Microsoft owns 1,575 acres with Phase 1 operational in early 2026. Another 1,030 acres is in planning. Over $3 billion committed to Wisconsin.",why_youre_in_demand:"The Midwest trades market is tight after Foxconn's failure drained confidence. Now the real build is happening and the workforce didn't wait around.",what_it_pays:"Union prevailing scale $45â$60/hr for electricians and pipefitters; data-center operations $70kâ$100k.",hiring_now:"Microsoft and general contractor postings running into the hundreds at peak.",source:"Blackridge Research",notes:"Former Foxconn site reborn",key_employers:"Microsoft"},{metro:"New Albany OH (Meta Prometheus)",country:"US",state_region:"Ohio",location:"New Albany, OH",latitude:"40.0812",longitude:"-82.8087",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Meta's first gigawatt data center. 200 megawatts of on-site gas power by November 2026.",whats_being_built:"Meta Prometheus is a gigawatt-scale AI data center in New Albany. 200 megawatts of on-site gas generation will be operational by November 2026.",why_youre_in_demand:"Central Ohio is in a bidding war between Intel, AWS, Anduril, and now Meta. Every major tech employer wants the same electricians and mechanical trades.",what_it_pays:"Central Ohio trades $42â$58/hr at Intel-level premiums; data-center operations $70kâ$105k. Competition is your leverage.",hiring_now:"Meta and general contractor hiring is active.",source:"Programs.com",notes:"Gigawatt-scale AI build",key_employers:"Meta"},{metro:"Pittsburgh PA / Appalachia",country:"US",state_region:"Pennsylvania",location:"Pittsburgh, PA",latitude:"40.4406",longitude:"-79.9959",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy + Data centers",headline:"Natural gas, nuclear, and AI computing. Pittsburgh is where all three converge.",whats_being_built:"AWS opened a cloud innovation center at the University of Pittsburgh. The Susquehanna area is seeing aligned data center and energy activity. Legacy gas infrastructure meets modern AI compute demand.",why_youre_in_demand:"The energy workforce is ageing. Trades are migrating into Marcellus shale and Pennsylvania AI builds. Experience in either energy or data infrastru
1cture is in demand.",what_it_pays:"Pipeline trades rose 19% year-on-year in Pennsylvania in 2023. The trend is continuing.",hiring_now:"Multiple active Aurora, Amazon, and PPL Corporation listings.",source:"Technical.ly; DCD",notes:"Legacy gas + modern AI crossover",key_employers:"AWS, Amazon, Talen Energy, Duquesne Light"},{metro:"Groton CT (Electric Boat)",country:"US",state_region:"Connecticut",location:"Groton, CT",latitude:"41.3501",longitude:"-72.0789",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (shipbuilding)",headline:"Virginia-class and Columbia-class submarines. One of two yards in the country that builds them.",whats_being_built:"Electric Boat is one of two US yards building Virginia and Columbia class submarines. A $12.4 billion contract was awarded in April 2025. Work is being outsourced to six yards because Groton can't keep up alone.",why_youre_in_demand:"Same workforce and retention problems as every US shipyard. Pandemic-era attrition is still being unwound. They're competing with Amazon in the Rhode Island-Connecticut corridor for the same workers.",what_it_pays:"Cleared shipyard trades $32â$48/hr; nuclear pipefitters and welders $90kâ$130k. GD scaling wages via Submarine Advanced Workforce Solutions funding.",hiring_now:"GD Electric Boat is aggressively hiring via the BlueForge campaign.",source:"USNI News Apr+Sep 2025",notes:"Sister yard to Newport News",key_employers:"General Dynamics Electric Boat"},{metro:"Huntsville AL (Rocket City)",country:"US",state_region:"Alabama",location:"Huntsville, AL",latitude:"34.7304",longitude:"-86.5861",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (missiles + aerospace)",headline:"Redstone Arsenal. Missile Defense Agency. Boeing, Northrop, Lockheed. All here, all hiring.",whats_being_built:"Redstone Arsenal hosts the Missile Defense Agency. Boeing, Northrop, and Lockheed all have major operations. Golden Dome and hypersonics programs are both anchored here.",why_youre_in_demand:"Regional engineering and technician demand outpaces what Alabama can produce. The metro draws heavily on the veteran pipeline, and there's still not enough.",what_it_pays:"Cleared engineers $110kâ$170k; aerospace technicians $70kâ$105k. Cost of living much lower than DC or California, so money goes further.",hiring_now:"All major defense primes are actively hiring hundreds of roles. One of the most veteran-friendly job markets in the US.",source:"USNI; industry reports",notes:"Huge veteran-favorable market",key_employers:"Boeing, Northrop Grumman, Lockheed Martin"},{metro:"Fort Worth + Palmdale CA (Lockheed + Northrop)",country:"US",state_region:"Texas + California",location:"Fort Worth, TX",latitude:"32.7555",longitude:"-97.3308",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (aerospace)",headline:"F-35 production. B-21 Raider ramp. Classified next-gen fighter work. Two cities, two primes.",whats_being_built:"Lockheed builds the F-35 and Sikorsky helicopters in Fort Worth. Northrop is ramping B-21 Raider production at Palmdale. Classified next-generation fighter work is ongoing at both sites.",why_youre_in_demand:"California aerospace workforce is ageing. The pool of security-cleared workers is especially tight across both metros.",what_it_pays:"Classified aerospace techs $80kâ$125k; cleared engineers $120kâ$180k. Palmdale packages running higher to attract workers from LA.",hiring_now:"All original equipment manufacturers are actively hiring at both sites.",source:"Industry reports",notes:"Two primes two metros tracked together",key_employers:"Lockheed Martin, Northrop Grumman"},{metro:"Savannah GA (Hyundai Metaplant + SK On)",country:"US",state_region:"Georgia",location:"Savannah, GA",latitude:"32.0809",longitude:"-81.0910",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (EV + batteries)",headline:"Hyundai just spent $7.6 billion. 8,100 jobs. Online in 2025.",whats_being_built:"The Hyundai Metaplant is a $7.6 billion EV manufacturing facility, online in 2025 with 8,100+ direct jobs. Adjacent battery joint ventures are adding more.",why_youre_in_demand:"Coastal Georgia's trades pool is small relative to the need. Georgia Tech is scaling training, but the factory opened before the pipeline was ready.",what_it_pays:"Battery and assembly technicians $24â$34/hr; skilled trades $32â$45/hr; engineers $85kâ$120k. Southeast corridor competing aggressively.",hiring_now:"Hyundai and its suppliers are hiring in the thousands.",source:"Industry press",
1notes:"Anchor of SE battery corridor",key_employers:"Hyundai, SK On"},{metro:"Kokomo IN / Lansing MI / Liberty NC (battery JVs)",country:"US",state_region:"Indiana + Michigan + North Carolina",location:"Kokomo, IN",latitude:"40.4864",longitude:"-86.1336",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (batteries)",headline:"Stellantis-Samsung, GM-LG, Toyota. $40 billion in battery plants across three states.",whats_being_built:"Battery joint ventures between Stellantis-Samsung, GM-LG, and Toyota total around $40 billion announced through 2030. Kokomo, Lansing, and Liberty anchor the US battery belt.",why_youre_in_demand:"UAW and non-union labor pools are both stretched. The Midwest auto workforce is ageing, and battery manufacturing needs different skills than combustion-engine plants.",what_it_pays:"Battery production $25â$35/hr; UAW skilled trades ~$40/hr; non-union closing the gap fast as battery premiums push wages up.",hiring_now:"Multiple joint venture postings are live across all three sites.",source:"Industry reports",notes:"Battery belt",key_employers:"Stellantis, Samsung, GM, LG, Toyota"},{metro:"Wichita KS (Spirit/Boeing)",country:"US",state_region:"Kansas",location:"Wichita, KS",latitude:"37.6872",longitude:"-97.3301",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense + aerospace",headline:"Spirit AeroSystems is now Boeing. 600 new workers pledged. 15,000 across five sites.",whats_being_built:"Spirit AeroSystems became a Boeing subsidiary in December 2025. Boeing pledged 600 additional workers by end of 2025. Total post-acquisition workforce across five sites is around 15,000.",why_youre_in_demand:"Wichita, the Air Capital of the World, has a deep pipeline but it's being pulled by concurrent F-35 and B-21 production ramps elsewhere.",what_it_pays:"Kansas Aviation Tax Credit offers up to $5,000 a year for five years. Strong base wages on top.",hiring_now:"Spirit/Boeing Wichita actively hiring across skilled trades; listings consistently in the hundreds.",source:"Kwch Oct 2025; Spirit SEC Form 8-K",notes:"Consolidation event creating major hiring ramp",key_employers:"Boeing"},{metro:"Hill AFB / Ogden UT (Sentinel ICBM)",country:"US",state_region:"Utah",location:"Ogden, UT",latitude:"41.1214",longitude:"-112.0023",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (nuclear / ICBM)",headline:"450 new nuclear missile silos. A 50-year modernisation program. They need 3,000 to 4,000 people.",whats_being_built:"Northrop's Sentinel ICBM program is targeting 3,000 to 4,000 people over the next few years. A new campus in northern Utah supports silo construction across five states. This is a 50-year modernisation program.",why_youre_in_demand:"1,000 to 1,500 skilled construction workers are needed for 450 new silos. The security-cleared pool is tight and the work is highly specialized.",what_it_pays:"Relocation assistance is standard. 9/80 compressed work schedules. Cleared premium on top of base salary.",hiring_now:"676+ Northrop Hill AFB listings on ZipRecruiter. Over 65 are ICBM-specific.",source:"Northrop Careers; Bechtel; The Electric May 2025",notes:"50-year ICBM modernization program",key_employers:"Northrop Grumman"},{metro:"Cape Canaveral / Brevard FL (Space Coast)",country:"US",state_region:"Florida",location:"Cape Canaveral, FL",latitude:"28.3922",longitude:"-80.6077",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense + aerospace (space)",headline:"SpaceX, Blue Origin, ULA. 109 launches in 2025. The Space Coast is hiring constantly.",whats_being_built:"SpaceX's $1.8 billion Gigabay is completing in 2026. Blue Origin has 4,000 Florida employees and a new Lunar Production Facility. Space Florida manages a $6 billion, 220-project pipeline. 109 launches in 2025 set a record.",why_youre_in_demand:"The sector is pulling aerospace trades from the national pool. Florida's no state income tax makes the numbers work better than California or Texas for take-home pay.",what_it_pays:"Entry aerospace tech roles start around $75K, rising to $200K+. No state income tax.",hiring_now:"60+ SpaceX roles, hundreds at Blue Origin, and ULA openings. Constant volume. Huge veteran-friendly sector.",source:"Space Florida Jan 2026; Brevard County",notes:"Huge veteran-friendly sector",key_employers:"SpaceX, Blue Origin, ULA"},{metro:"Bath ME (Bath Iron Works)",country:"US",state_region:"Maine",location:"Bath, ME",latitude:"43.9106",longitude:"-69.8214",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (shipbuilding)",headline:"Guided-missile destroyers. 6,500 jobs. 12% of Maine's entire manufacturing workforce.",whats_being_built:"GD Bath Iron Works builds DDG-51 destroyers. 6,500 direct jobs, representing 12% of Maine's manufacturing workforce. 425 ships delivered since 1884.",why_youre_in_demand:"Maine's workforce is ageing in a rural labor market. The Bath Iron Works Training Academy at Brunswick Landing is trying to close the gap, but it's not enough.",what_it_pays:"Union wage scale runs Grade 1 to 7. Free workforce training programs offered through the academy.",hiring_now:"BIW hiring continuously across welding, pipefitting, electrical, and supervisory trades. Listings consistently in the hundreds.",s
1ource:"BIW careers; JMG; Indeed",notes:"Anchors Maine manufacturing economy",key_employers:"General Dynamics Bath Iron Works"},{metro:"Pascagoula MS + Mobile AL (Ingalls + Austal)",country:"US",state_region:"Mississippi + Alabama",location:"Pascagoula, MS",latitude:"30.3658",longitude:"-88.5562",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (shipbuilding)",headline:"Twin Gulf Coast shipyards. Destroyers, amphibious ships, and submarine modules. Both short-staffed.",whats_being_built:"HII Ingalls builds destroyers and amphibious ships. Austal USA builds Littoral Combat Ships and submarine modules for Electric Boat. Work is being outsourced to six yards to relieve the strain.",why_youre_in_demand:"Gulf Coast shipyard workforce is heavily strained. These yards compete directly with LNG construction for the same welders and pipefitters.",what_it_pays:"Union-scale Gulf Coast shipfitters and welders $26â$38/hr; mariner roles $70kâ$105k with premiums.",hiring_now:"Ingalls and Austal are actively hiring across multiple trades.",source:"USNI News Sep 2025; Austal",notes:"Twin Gulf Coast shipyard cluster",key_employers:"Huntington Ingalls Industries, Austal USA"},{metro:"Oak Ridge TN (Y-12) + Amarillo TX (Pantex)",country:"US",state_region:"Tennessee + Texas",location:"Oak Ridge, TN",latitude:"36.0104",longitude:"-84.2696",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (nuclear weapons production)",headline:"Nuclear weapons production. 39% of the workforce near retirement. Classified work, premium pay.",whats_being_built:"Y-12 employs around 8,600 people. The $10.3 billion Uranium Processing Facility completes in 2027. Pantex is the final assembly site for the W80-4 Life Extension Program. NNSA budget covers $140.9 billion for Sentinel and related programs.",why_youre_in_demand:"39% of the nuclear workforce is near retirement. The cleared nuclear labor pool is extremely scarce. If you have a clearance and relevant experience, you're in demand across every nuclear site in the country.",what_it_pays:"Nuclear-cleared production operators $75kâ$115k; cleared trades $35â$52/hr. NNSA runs rolling hiring events.",hiring_now:"Hundreds of NNSA, Consolidated Nuclear Security, and Bechtel postings are active.",source:"Y-12 NNSA; NukeWatch; NNSA Blueprint",notes:"Classified production ramp",key_employers:"Consolidated Nuclear Security, Bechtel, NNSA"},{metro:"Abilene TX (Stargate)",country:"US",state_region:"Texas",location:"Abilene, TX",latitude:"32.4487",longitude:"-99.7331",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"Stargate flagship plus a brand-new Microsoft AI factory next door. 2.1 gigawatts at one site.",whats_being_built:"Abilene hosts the flagship $500 billion Stargate site (Crusoe / OpenAI / Oracle) at the Lancium Clean Campus, scaling to 1.2 gigawatts across eight buildings by end of 2026. In March 2026, Crusoe announced a separate 900 megawatt AI factory campus for Microsoft - two new buildings plus an on-site power plant - taking total Abilene capacity to 2.1 gigawatts. Site preparation underway; first Microsoft building targeted mid-2027. After OpenAI and Oracle scaled back their original 2.1 GW expansion plans, Microsoft took the adjacent capacity.",why_youre_in_demand:"West Texas trades are being pulled in every direction. Behind-the-meter natural gas power plants on-site require specialised gas and electrical trades. Combined with Shackelford County Stargate just across the county line, the corridor needs thousands of skilled construction workers right now.",what_it_pays:"Data center construction electricians $42-$60/hr; gas microgrid specialists at premium; site superintendents $135k-$185k. Strong sign-on bonuses given the Texas trades bidding war.",hiring_now:"Crusoe contractor pipeline active; Microsoft buildout ramping mid-2026 onward.",source:"OpenAI Sep 2025; Crusoe newsroom Mar 2026; Data Center Knowledge Mar 2026",notes:"Stargate flagship + Microsoft AI factory; 2.1 GW total at one campus",key_employers:"Crusoe, OpenAI, Oracle, Microsoft"},{metro:"Rayville / Richland Parish LA (Meta Hyperion)",country:"US",state_region:"Louisiana",location:"Rayville, LA",latitude:"32.4795",longitude:"-91.7596",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Meta is spending $27 billion in a county of 20,000 people. 5,000 construction workers descending.",whats_being_built:"Meta has committed $27 billion across a 2,250-acre, 4 million sq ft site, with 5,000+ peak construction workers and 500+ permanent roles. Entergy is fast-tracking seven gas plants to power it. Meta's $115m America's Workforce Academy, announced 8-10 June 2026, is a first-year skilled-trades training program with a job guarantee, tied to Meta's data-centre metros.",why_youre_in_demand:"5,000 workers descending on a county of 20,000. Three out-of-state general contractors. Local electrical contractors are up 40% in hiring. The local workforce cannot absorb this.",what_it_pays:"Out-of-state trades earn $45â$65/hr base plus $100â$150/day per-diem and travel premiums on top.",hiring_now:"Turner, DPR, and Mortenson are all actively hiring trades.",source:"Fortune Mar 2026; IEEE Spectrum Mar 2026; LED; CBS News Jun 2026; Axios Jun 2026; ENR",notes:"Peak construction is underway. Meta's workforce academy gives a named training route into the trades feeding this campus.",key_employers:"Meta, Turner, DPR, Mortenson"},{metro:"Pickaway County OH (Anduril Arsenal 1)",country:"US",state_region:"Ohio",location:"Pickaway County, OH",latitude:"39.6480",longitude:"-82.9880",t
1ier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Defense (autonomous weapons)",headline:"Anduril Arsenal-1 started production in March 2026, three months ahead of schedule. 4,000 jobs by 2035.",whats_being_built:"Anduril Arsenal-1 began production of the Fury combat drone on 19 March 2026, three months ahead of the original July 2026 target. The Pickaway County campus is roughly $900 million initial and $2 billion total investment, eventually spanning 5+ million square feet. Within 2026 Anduril opened hiring waves for Roadrunner and stood up a third production line for Barracuda, alongside a $5bn Series H valuing the firm at $61bn. JobsOhio package: $310 million grant plus $452.2 million tax credit on a commitment of 4,000 jobs by 2035. Currently ramping toward 250 workers by end of 2026.",why_youre_in_demand:"Anduril competes with Intel Columbus, Meta New Albany, AWS, and Google for the same Ohio trades. Ramp is steep and accelerating - hiring waves continue through 2035.",what_it_pays:"Manufacturing engineers $90k-$140k; quality and test engineers $85k-$130k; production technicians $25-$42/hr.",hiring_now:"Active hiring waves for each new product line (Fury, Roadrunner, Barracuda). Production, engineering, and quality roles all open.",source:"Breaking Defense Mar 2026; NBC4 Columbus Mar 2026; Scioto Post Apr 2026; OhioTechNews (2026)",notes:"Roadrunner hiring waves open and a third production line stood up in 2026. Fastest-ramping US defense factory in decades.",key_employers:"Anduril"},{metro:"Lima OH (Google Allen County)",country:"US",state_region:"Ohio",location:"Lima, OH",latitude:"40.7428",longitude:"-84.1052",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Google just announced $500 million in rural Northwest Ohio. Plus $50 million for local infrastructure.",whats_being_built:"Google announced $500 million in Allen County in February 2026, plus a $50 million infrastructure boost for the community.",why_youre_in_demand:"Rural Northwest Ohio has a limited trades pool. Competition with the Columbus region is further squeezing it. Experienced electricians and HVAC techs can pick their employer.",what_it_pays:"Data center construction electricians $40â$55/hr; ops technicians $70kâ$100k. Google wage floor well above regional median.",hiring_now:"Google supplier and contractor hiring is beginning.",source:"Ohio Tech News Feb 2026",notes:"Emerging non-Columbus OH hyperscaler pin",key_employers:"Google"},{metro:"Jackson / Meridian MS (Compass-Meridian)",country:"US",state_region:"Mississippi",location:"Meridian, MS",latitude:"32.2988",longitude:"-90.1848",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"One of the largest data center builds announced in the US. Rural Mississippi. They'll need to bring people in.",whats_being_built:"Compass-Meridian is one of the largest announced data center builds in the US, sited in rural Mississippi.",why_youre_in_demand:"Mississippi's trades pipeline has been historically underdeveloped. Training programs are just starting. They need experienced people from elsewhere.",what_it_pays:"Construction trades $26â$40/hr; data-center techs $60kâ$90k. Significant premium over the Mississippi construction median.",hiring_now:"Early contractor hires are live.",source:"Data Center Knowledge",notes:"Underserved region",key_employers:"Compass Datacenters"},{metro:"Omaha NE",country:"US",state_region:"Nebraska",location:"Omaha, NE",latitude:"41.2565",longitude:"-95.9345",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Meta, Google, and Stargate all expanding in Nebraska. Power-rich and growing fast.",whats_being_built:"Meta, Google, and Stargate are all expanding. Google's STAR program is operating in Nebraska. A secondary market that's growing faster than most primaries.",why_youre_in_demand:"Midwest trades are spread thin across competing projects in Ohio, Wisconsin, and now Nebraska.",what_it_pays:"Fiber splicers and OSP techs $28â$42/hr; data-center electricians $38â$55/hr; Google offering competitive packages.",hiring_now:"Google STAR and contractor postings are live.",source:"Google.com/datacenters",notes:"Mid-America power-rich",key_employers:"Meta, Google"},{metro:"Jefferson Parish LA (Meta $10B)",country:"US",state_region:"Louisiana",location:"Jefferson Parish, LA",latitude:"29.9934",longitude:"-90.1117",t
1ier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Meta. $10 billion. Greater New Orleans. Part of Louisiana's data center explosion.",whats_being_built:"Announced alongside Hyperion. Around 2,600 megawatts of projected power consumption. This is Meta's second major Louisiana play.",why_youre_in_demand:"Louisiana skilled trades are already at capacity from LNG, petrochemicals, and the Richland Parish build.",what_it_pays:"Energy-trained trades $35â$52/hr; instrumentation and controls $80kâ$115k. Premiums commanding across the state.",hiring_now:"Early contractor placement is underway.",source:"Construction Owners Oct 2025",notes:"Greater NOLA DC",key_employers:"Meta"},{metro:"Kemmerer WY (TerraPower Natrium)",country:"US",state_region:"Wyoming",location:"Kemmerer, WY",latitude:"41.7940",longitude:"-110.5390",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (advanced nuclear SMR)",headline:"Bill Gates' TerraPower is building a next-generation nuclear reactor in Wyoming. The first of its kind.",whats_being_built:"TerraPower is building a 345-megawatt Natrium reactor, backed by the Department of Energy, and began nuclear construction in 2026 after receiving its NRC construction permit in March. It is the first US commercial advanced reactor to reach that milestone, and the first commercial small modular reactor demonstration in the country.",why_youre_in_demand:"Wyoming's nuclear workforce has been historically nonexistent. TerraPower is building the entire pipeline from scratch. Early movers define the workforce.",what_it_pays:"Nuclear-cleared trades $40â$60/hr; per-diem $100â$150/day to draw workers from the national pool.",hiring_now:"TerraPower is hiring on an ongoing basis.",source:"DOE; TerraPower; VanEck (2026); American Nuclear Society (2026)",notes:"Nuclear construction started 2026 after the March NRC permit, so this moved from a planned build to a live one.",key_employers:"TerraPower"},{metro:"Idaho Falls ID (INL)",country:"US",state_region:"Idaho",location:"Idaho Falls, ID",latitude:"43.4917",longitude:"-112.0339",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (advanced nuclear R&D)",headline:"Idaho National Laboratory. The epicenter of US nuclear research. SMR demonstrations in design.",whats_being_built:"Idaho National Laboratory hosts multiple small modular reactor demonstration projects in the design phase. This is the country's nuclear research epicenter.",why_youre_in_demand:"The cleared nuclear workforce competes with HII and naval reactors. If you have nuclear experience and a clearance, you're scarce.",what_it_pays:"Cleared technicians $75kâ$110k; nuclear operators $90kâ$130k. Security-clearance premium applies.",hiring_now:"INL and private SMR company postings are active.",source:"DOE; INL",notes:"Nuclear research epicenter",key_employers:"Idaho National Laboratory, Battelle Energy Alliance, BWXT, X-energy"},{metro:"Aiken SC (Savannah River Site)",country:"US",state_region:"South Carolina",location:"Aiken, SC",latitude:"33.5604",longitude:"-81.7196",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense + energy (nuclear weapons + plutonium pits)",headline:"13,000 people. Plutonium pit production. 50+ pits per year by 2030.",whats_being_built:"Savannah River Site has 13,000 personnel under NNSA. The former MOX Fuel Facility is being repurposed to produce 50+ plutonium pits per year by 2030. This is sovereign nuclear weapons infrastructure.",why_youre_in_demand:"The specialized nuclear workforce is extremely scarce. There's nowhere else to get this experience, so if you're in the pipeline, you're valuable.",what_it_pays:"Pit-production roles $95kâ$145k; cleared trades $38â$55/hr. Significant security-cleared wage premiums.",hiring_now:"NNSA and Consolidated Nuclear Security are actively hiring.",source:"NNSA NukeWatch Jan 2025",notes:"Plutonium pit ramp",key_employers:"Consolidated Nuclear Security, NNSA"},{metro:"St Louis MO (Boeing Defense)",country:"US",state_region:"Missouri",location:"St. Louis, MO",latitude:"38.6270",longitude:"-90.1990",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense (aerospace)",headline:"F-15EX. MQ-25 tanker drone. The classified next-gen Navy fighter. All built in St Louis.",whats_being_built:"St Louis hosts Boeing's F-15EX production, the MQ-25 unmanned tanker, and the classified F/A-XX next-generation Navy fighter program.",why_youre_in_demand:"Midwest aerospace pipeline is tight against Boeing's expanding demand.",what_it_pays:"Classified aerospace assemblers $32â$48/hr; cleared engineers $105kâ$155k. Midwest cost of living makes the money stretch.",hiring_now:"Boeing St Louis is actively hiring.",source:"Industry press",
1notes:"F/A-XX selection could dramatically boost",key_employers:"Boeing"},{metro:"Tucson AZ (Raytheon RTX)",country:"US",state_region:"Arizona",location:"Tucson, AZ",latitude:"32.2217",longitude:"-110.9265",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense (missiles)",headline:"Stinger, Javelin, and Standard Missiles. Production ramping to refill stockpiles.",whats_being_built:"Raytheon is ramping production of Stinger, Javelin, and Standard Missile families to replenish stockpiles drawn down by transfers to Ukraine and Israel.",why_youre_in_demand:"The US defense trades market is tight. Munitions production requires security clearances and specialized skills that take time to develop.",what_it_pays:"Cleared technicians $70kâ$105k; ITAR-restricted engineers $110kâ$160k.",hiring_now:"Raytheon is actively hiring in Tucson.",source:"Industry press",notes:"Munitions surge market",key_employers:"Raytheon, RTX"},{metro:"Malmstrom MT / Minot ND / Warren WY (Sentinel silo construction)",country:"US",state_region:"Montana + ND + WY",location:"Great Falls, MT",latitude:"47.5053",longitude:"-111.3008",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense (ICBM field construction)",headline:"450 nuclear missile silos being rebuilt across the High Plains. The largest Air Force project ever.",whats_being_built:"New silos will be constructed on 450 existing Minuteman III sites across Montana, North Dakota, and Wyoming. 1,000 to 1,500 construction workers needed at peak. This is the largest Air Force infrastructure project in history.",why_youre_in_demand:"Rural High Plains populations are small. Outside labor will need to be brought in. If you're willing to relocate, the competition is thin.",what_it_pays:"Construction trades $35â$55/hr base plus $125â$200/day per-diem for rural ICBM work.",hiring_now:"Bechtel is hiring for ICBM infrastructure.",source:"Lewistown News; Bechtel",notes:"Largest Air Force project ever",key_employers:"Northrop Grumman, Bechtel"},{metro:"Denver / Boulder CO (Lockheed Waterton + Ball Aerospace + Buckley SFB)",country:"US",state_region:"Colorado",location:"Denver, CO",latitude:"39.7392",longitude:"-104.9903",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense + aerospace (space)",headline:"Orion, GPS III, and classified overhead programs. Denver is America's space operations hub.",whats_being_built:"Lockheed Space at Waterton runs Orion and GPS III. Ball Aerospace, Buckley Space Force Base, and multiple classified overhead programs anchor the region.",why_youre_in_demand:"Colorado aerospace workforce is ageing. Cost of living squeeze on recruiting means employers have to offer more to compete.",what_it_pays:"Cleared space-program engineers $115kâ$175k; technicians $75kâ$110k. Denver COL adjustment is a live issue.",hiring_now:"Lockheed, BAE, and L3 all have active listings.",source:"Industry reports",notes:"Classified space epicenter",key_employers:"Lockheed Martin, Ball Aerospace, BAE Systems, L3Harris"},{metro:"New Bedford MA (US offshore wind)",country:"US",state_region:"Massachusetts",location:"New Bedford, MA",latitude:"41.6362",longitude:"-70.9342",tier:"3",certainty:"Could slip",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (offshore wind staging)",headline:"US offshore wind staging hub. Vineyard Wind and Revolution Wind launch from here. Policy uncertainty remains.",whats_being_built:"New Bedford Marine Commerce Terminal stages Vineyard Wind and Revolution Wind. Paulsboro NJ and Brayton Point MA are emerging as additional hubs.",why_youre_in_demand:"The US offshore wind workforce sits at 8,400 currently. The pipeline exists but Inflation Reduction Act delays and federal policy uncertainty are stalling near-term hiring.",what_it_pays:"Union wages $45â$65/hr when projects active; offshore techs $90kâ$140k with day rates.",hiring_now:"Avangrid, Ãrsted, and GE have active contract roles, but this one could slip depending on policy.",source:"DOE reports",notes:"US offshore wind still emerging",key_employers:"Avangrid, Orsted, GE"}
1,{metro:"Slough / West London",country:"UK",state_region:"England (SE)",location:"Slough, England",latitude:"51.5105",longitude:"-0.5950",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"30+ data centres. 1 gigawatt of capacity. A 6 gigawatt AI target by 2030. They need 300,000 new engineers globally.",whats_being_built:"Over 30 operational data centres deliver 1 gigawatt of capacity and 14,000 jobs. The UK government has set a 6 gigawatt AI-capable target for 2030. This is the UK's data centre anchor.",why_youre_in_demand:"19% of UK data centre professionals are over 55. Half could retire in three years. 29% have under three years' experience. The workforce is simultaneously ageing out and under-experienced.",what_it_pays:"M&E engineers £55kâ£85k; data-centre electricians £42kâ£62k; site managers £75kâ£110k. DC roles consistently beat construction rates.",hiring_now:"Constant hyperscaler and M&E contractor roles across Slough and West London.",source:"Kao Data Jan 2026; DACPros Dec 2025",notes:"UK data-center anchor",key_employers:"Equinix, Digital Realty, CyrusOne"},{metro:"Barrow-in-Furness",country:"UK",state_region:"England (NW)",location:"Barrow-in-Furness, England",latitude:"54.1096",longitude:"-3.2286",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Defence (nuclear submarines)",headline:"BAE is growing from 10,000 to 17,000 in Barrow. A third of the town already works there.",whats_being_built:"BAE Systems is expanding from 10,000 toward around 16,500 workers by 2027, having already added 3,000 since 2023 to reach 13,500. More than £6bn is committed across the Barrow and Derby facilities for the Dreadnought and SSN-AUKUS programmes. The SSN-AUKUS submarine programme projects 30,000 jobs, 30,000 apprenticeships and 14,000 graduate roles nationally.",why_youre_in_demand:"A third of Barrow's working-age population already works at BAE. The town's population is the constraint. They're investing £220 million in regeneration to attract people to move here.",what_it_pays:"Average salary £39K versus the Cumbria median of £29.9K. The premium is real and rising.",hiring_now:"801 apprentices plus graduate hires for Barrow in 2025 alone.",source:"In-Cumbria (2026); GOV.UK National Endeavour (Apr 2026); Navy Lookout Jan 2026; BAE",notes:"Workforce target restated to around 16,500 by 2027 under the GOV.UK National Endeavour announcement of April 2026.",key_employers:"BAE Systems"},{metro:"Somerset (Hinkley Point C)",country:"UK",state_region:"England (SW)",location:"Bridgwater, England",latitude:"51.1270",longitude:"-3.0040",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Energy (nuclear)",headline:"A £46 billion nuclear power station. Fewer than 5,000 UK welders are certified for the work.",whats_being_built:"Hinkley Point C is a twin-reactor nuclear build. The nuclear workforce is forecast to rise from 35,900 in 2025 to 46,000+ by 2030. The South West nuclear workforce has already tripled to 27,000+.",why_youre_in_demand:"Fewer than 5,000 UK welders are certified for nuclear-grade work. The Bridgwater Welding Centre trains 350 to 500 a year, which isn't enough for Hinkley, Sizewell, and the SMR pipeline combined. If you're nuclear-certified, you're scarce.",what_it_pays:"Nuclear-cleared welders and high-voltage specialists typically earn 10 to 20%+ above civil rates.",hiring_now:"Balfour Beatty, Bailey, Doosan, Cavendish, and Altrad are all hiring constantly.",source:"NIA Oxford Economics 2025; ECITB",notes:"UK nuclear labour anchor",key_employers:"EDF, Balfour Beatty, Doosan, Cavendish, Altrad"},{metro:"Derby (Rolls-Royce Raynesway)",country:"UK",state_region:"England (E Mids)",location:"Derby, England",latitude:"52.9225",longitude:"-1.4746",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Defence (nuclear reactors)",headline:"AUKUS is doubling the Rolls-Royce Derby site. £2.4 billion from Australia. 1,170 new jobs.",whats_being_built:"Rolls-Royce Submarines broke ground at Raynesway on 3 July 2026 on over 100,000 square metres of new manufacturing and office facilities, creating 1,170 skilled roles and supporting the Dreadnought and SSN-AUKUS reactors. President Abi Clayton called
1it a significant step forward in the critical growth of the business. Australian AUKUS investment of £2.4 billion is doubling the site, and £3 billion is committed across Barrow and Derby for advanced nuclear manufacturing. Separately, Rolls-Royce SMR's £12m Pioneer Works manufacturing development centre was announced on 26 June 2026, adding around 40 skilled roles and opening later in 2026.",why_youre_in_demand:"Derby draws from the same nuclear-cleared workforce pool as Barrow and Hinkley. East Midlands specialist welding and non-destructive testing capacity is fully committed.",what_it_pays:"Nuclear-cleared engineers £55kâ£85k; skilled trades £40kâ£58k. Cost of living much lower than the South East.",hiring_now:"Rolls-Royce Raynesway and its supply chain are actively hiring.",source:"Rolls-Royce press release (3 Jul 2026); The Business Desk (Jul 2026); World Nuclear News (Jun 2026); Navy Lookout",notes:"Ground broken 3 July 2026, so the 1,170 roles are now a live build rather than a commitment.",key_employers:"Rolls-Royce"},{metro:"Sheffield / South Yorkshire (Forgemasters)",country:"UK",state_region:"England (Yorkshire)",location:"Sheffield, England",latitude:"53.3811",longitude:"-1.4701",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Advanced manufacturing (defence forgings)",headline:"The UK's sovereign forge capability. £1.3 billion recapitalisation. A 13,000-tonne forge by end of decade.",whats_being_built:"Sheffield Forgemasters is MoD-owned sovereign capability. Total recapitalisation has reached £1.3 billion (up from £900m after a further £425m announced in the 2025 Spending Review). Workforce growing from 650 to 720+, with 900+ construction workers on-site. A 13,000-tonne forge and 30,000 sqm machine shop are planned by end of 2028. South Yorkshire is one of five UK Defence Growth Deal areas designated under the September 2025 Defence Industrial Strategy. Rotherham hosts one of the five new Defence Technical Excellence Colleges.",why_youre_in_demand:"21 apprentices plus 6 in 2025, 18 more in 2026. Still below what AUKUS demands. The pipeline is being built but it's not big enough yet.",what_it_pays:"Apprentice entry £22kâ£28k; skilled forge and machining trades £38kâ£55k. Skill premium rising as demand outstrips training.",hiring_now:"Apprentice and engineering roles are regularly posted.",source:"BBC Jun 2025; gov.uk Defence Nuclear Enterprise 2025; Defence Industrial Strategy Sep 2025",notes:"Sovereign UK forge capability",key_employers:"Sheffield Forgemasters (MoD)"},{metro:"Humber (Grimsby/Hull)",country:"UK",state_region:"England (Yorkshire and Humber)",location:"Hull, England",latitude:"53.7456",longitude:"-0.3367",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Energy (offshore wind)",headline:"40,000 UK offshore wind jobs today. 74,000 to 95,000 needed by 2030. Yorkshire and Humber is a top three region.",whats_being_built:"The UK has 40,000 offshore wind jobs today and needs 74,000 to 95,000 by 2030. Yorkshire and Humber ranks as a top-three region for that growth.",why_youre_in_demand:"A 6 to 8% global technician shortfall is forecast by 2028. 40% of 532,000 global roles need new entrants. If you have mechanical, electrical, or marine skills, the wind sector wants you.",what_it_pays:"Typical offshore wind salary sits £10K above the UK average. £60.8 billion of private investment between 2021 and 2026.",hiring_now:"Siemens Gamesa at Hull and Ãrsted at Grimsby are both actively hiring.",source:"RenewableUK Skills Intelligence 2025; Mane",notes:"Offshore wind anchor",key_employers:"Siemens Gamesa, Orsted"},{metro:"HS2 Corridor (London-Birmingham)",country:"UK",state_region:"England (London + W Mids)",location:"Birmingham, England",latitude:"52.4862",longitude:"-1.8904",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Construction and skilled trades",headline:"33,000 people building HS2. 2,032 apprenticeships started. 3,700 UK businesses in the supply chain.",whats_being_built:"33,000 workers are building HS2. 2,032 apprentices have started, exceeding the 2,000 target. 5,645 formerly unemployed people have been placed. 3,700+ UK businesses are in the supply chain.",why_youre_in_demand:"The Construction Industry Training Board forecasts 240,000 additional construction workers needed over five years UK-wide. HS2 is the largest single draw on that pool.",what_it_pays:"HS2 workforce wage floor is set by collective agreements. The scale of the project creates wage stability.",hiring_now:"34 new apprentice plus 16 graduate roles opened in February 2026.",source:"HS2 Media Centre Jan 2026; New Civil Engineer",notes:"Most visible UK construction pipeline",key_employers:"HS2 Ltd, Balfour Beatty, Skanska"}
1,{metro:"Suffolk (Sizewell C)",country:"UK",state_region:"England (East)",location:"Leiston, England",latitude:"52.2130",longitude:"1.6205",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (nuclear)",headline:"Final investment decision confirmed. Framatome contract awarded. The East of England nuclear workforce is up 27%.",whats_being_built:"Sizewell C received final investment decision in July 2025. Framatome has been awarded a multi-billion-euro contract. The East of England nuclear workforce stands at 2,300, up 27%. Regional GVA is up 20% to £1.2 billion.",why_youre_in_demand:"Hinkley, Sizewell, and the SMR pipeline will all compete for the same welders, engineers, and project managers in the late 2020s. Bidding wars are expected around 2027.",what_it_pays:"Nuclear-cleared trades £45kâ£68k; cleared engineers £60kâ£90k. Bidding war between sites will push it higher.",hiring_now:"Rullion and the supply chain are scaling up.",source:"World Nuclear News Jun 2025; Enlit World",notes:"Hinkley successor",key_employers:"EDF, Framatome, Rullion"},{metro:"Teesside",country:"UK",state_region:"England (NE)",location:"Middlesbrough, England",latitude:"54.5742",longitude:"-1.2349",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (offshore wind + CCS + hydrogen)",headline:"Offshore wind, carbon capture, hydrogen, and now a £10 billion AI campus. Teesside is the UK's energy transition anchor.",whats_being_built:"SeAH Wind has £225 million of UK Export Finance backing. A carbon capture and storage cluster is a UK priority. Blackstone is investing £10 billion in an AI campus at nearby Blyth.",why_youre_in_demand:"90% of oil and gas workers have transferable skills. A Fair Work Charter requires employers to invest in a skills fund. If you're coming from oil and gas, your experience translates directly.",what_it_pays:"Process operators £35kâ£50k; skilled trades £40kâ£58k; engineers £55kâ£80k. Skills passport active for cross-sector transitions.",hiring_now:"Multiple offshore wind and carbon capture roles are active.",source:"GOV.UK Oct 2025; GE Renewable Energy",notes:"Energy transition anchor",key_employers:"SeAH Wind, Blackstone"},{metro:"Aberdeen / NE Scotland",country:"UK",state_region:"Scotland",location:"Aberdeen, Scotland",latitude:"57.1497",longitude:"-2.0943",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (oil-and-gas transition to wind)",headline:"The UK's highest projected wind workforce requirement. Oil and gas skills translate directly.",whats_being_built:"Aberdeen is projected to have the highest wind-workforce requirement of any UK region. The transition from oil and gas to offshore wind is the core story.",why_youre_in_demand:"The Oil and Gas Transition Training Fund covers 300 workers, with £18 million scaling over 2026 to 2029. If you're in oil and gas, the government is literally funding your transition.",what_it_pays:"Offshore wind techs £45kâ£65k plus day rates; engineers £60kâ£90k. Retraining packages available.",hiring_now:"Training cohort openings plus direct wind-company hiring.",source:"GOV.UK Clean Energy Jobs Plan",notes:"Transition capital",key_employers:"Orsted, SSE, Shell"},{metro:"East London (Docklands/Havering/Dagenham)",country:"UK",state_region:"England (London)",location:"London, England",latitude:"51.5416",longitude:"0.1372",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Digital Reef. CoreWeave. Colt. Data centres spreading east from Slough into London.",whats_being_built:"Digital Reef is building 600 megawatts at Havering at £1.7 billion. Colt Hayes has 60 megawatts. CoreWeave has committed £1.75 billion for a London build with NVIDIA H200s.",why_youre_in_demand:"Same M&E talent drain as Slough. Traditional Docklands data centre work is spreading into Havering and beyond.",what_it_pays:"Data-centre M&E engineers £55kâ£82k; site electricians £45kâ£62k with London weighting.",hiring_now:"Multiple hyperscaler contractor postings.",source:"DACPros",notes:"London DC expansion",key_employers:"Digital Reef, CoreWeave, Colt"}
1,{metro:"Glasgow (BAE Govan + Scotstoun)",country:"UK",state_region:"Scotland",location:"Glasgow, Scotland",latitude:"55.8642",longitude:"-4.2518",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (shipbuilding)",headline:"Type 26 frigates. £7.9 billion programme. 1,700 skilled jobs in Glasgow plus 2,300 UK supply chain.",whats_being_built:"The Type 26 frigate programme is worth £7.9 billion. Eight ships total, 29 globally including Australia and Canada. 1,700 skilled jobs in Glasgow plus 2,300 UK supply chain roles through 2035. The PM's Strategic Defence Review (launched at Govan in 2025) committed to up to twelve new attack submarines and Scotland is one of the five UK Defence Growth Deal areas, focused on maritime and space innovation.",why_youre_in_demand:"BAE Govan is running at full capacity. Around one-sixth of HMS Birmingham is being subcontracted because the yard can't do it all. £12 million Applied Shipbuilding Academy. 700 apprentices in training.",what_it_pays:"Shipbuilding trades £38kâ£55k; cleared engineers £55kâ£80k. Premium over the regional median.",hiring_now:"Ongoing 2025 apprentice and skilled-trade intake.",source:"BAE Systems; DE&S; Defence Industrial Strategy Sep 2025",notes:"Clyde shipbuilding anchor",key_employers:"BAE Systems"},{metro:"Plymouth / Devonport",country:"UK",state_region:"England (SW)",location:"Plymouth, England",latitude:"50.3755",longitude:"-4.1427",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (naval nuclear refit)",headline:"Home port for all eight Type 26 frigates from 2028. Nuclear submarine refits. Babcock is the anchor employer.",whats_being_built:"Devonport is the planned home port for all eight Type 26 frigates from 2028 to 2035, and takes £7.1bn over ten years under Project Royal Oak, the £26bn Royal Navy base programme announced on 16 July 2026. Babcock runs the yard. Plymouth is one of five UK Defence Growth Deal areas designated under the September 2025 Defence Industrial Strategy, focused on marine autonomy and naval base regeneration, receiving £50m of dedicated funding. Plymouth also hosts one of the five new Defence Technical Excellence Colleges.",why_youre_in_demand:"Nuclear-cleared workforce competes with Barrow, Derby, and Hinkley. If you have clearances and marine engineering experience, every UK naval yard wants you.",what_it_pays:"Nuclear-cleared trades £42kâ£62k; cleared engineers £55kâ£82k.",hiring_now:"Babcock and MoD contract postings are active.",source:"GOV.UK/MOD (16 Jul 2026); DE&S; Navy Lookout; Defence Industrial Strategy Sep 2025",notes:"£7.1bn allocated under Project Royal Oak, second only to Faslane. Ten-year envelope rather than immediate site capex.",key_employers:"Babcock"},{metro:"Preston / Warton / Samlesbury",country:"UK",state_region:"England (NW)",location:"Preston, England",latitude:"53.7632",longitude:"-2.7031",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (combat air â GCAP/Typhoon/F-35)",headline:"GCAP Tempest. Typhoon. F-35 components. BAE has 2,400 new training roles across the UK in 2025.",whats_being_built:"BAE Systems has 2,400+ new apprentice, undergrad, and graduate roles in 2025, roughly 15% of its UK workforce in training. 1,500 of those are for Northern England. The GCAP next-gen fighter programme is anchored here.",why_youre_in_demand:"Lancashire aerospace is ageing. BAE has spent over £1 billion on UK training since 2020, which tells you how serious the shortage is.",what_it_pays:"Cleared aerospace technicians £40kâ£58k; cleared engineers £55kâ£85k. Premium over civilian equivalents.",hiring_now:"Regular BAE Lancashire apprentice intakes run in February and March each year.",source:"Prolific North Dec 2024; BAE",notes:"GCAP Tempest anchor",key_employers:"BAE Systems"},{metro:"East Anglia (Norfolk + Suffolk: wind + drones)",country:"UK",state_region:"England (East)",location:"Norwich, England",latitude:"52.6309",longitude:"1.2974",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (offshore wind) + Defence (drones)",headline:"Top-three UK wind region. Now home to Britain's first Ukrainian drone factory. £200 million invested in Suffolk.",whats_being_built:"East Anglia ranks as a top-three UK region for wind growth, with £60.8 billion of private investment between 2021 and 2026 (peaking at £10.6 billion in 2026). Layered on top: Ukrspecsystems (Ukraine's largest drone manufacturer) opened its first UK factory in Mildenhall, Suffolk on 25 February 2026 - an 11,000 m² production facility plus a test and training site at Elmsett. The £200 million investment will create up to 500 jobs across the factory and supply chain, with plans to expand to further East Anglia sites over three years. Production of SHARK and Mini-SHARK reconnaissance drones for Ukrainian and UK armed forces.",why_youre_in_demand:"The wind industry needs 10,000 new entrants per year UK-wide; East Anglia is a primary hub. Separately, the Ukrspecsystems factory is hiring aerospace assembly, electronics, and test trades
1- timed to absorb 550 Lotus workers being laid off at Hethel, Norfolk. Operation Interflex (UK-led Ukrainian armed forces training) is also based in East Anglia, creating additional defence-services demand.",what_it_pays:"Offshore wind techs £42k-£62k plus day rates; vessel crew £45k-£70k. Drone factory: aerospace assembly £30k-£45k; electronics and test engineers £45k-£70k.",hiring_now:"ScottishPower, Ãrsted, and Vattenfall actively hiring on wind. Ukrspecsystems ramping factory hiring at Mildenhall/Elmsett through 2026.",source:"OWIC/RenewableUK; ITV News Anglia Feb 2026; gov.uk Sep 2025; Defence Industry EU Feb 2026",notes:"Wind hub + first Ukrainian drone factory in UK",key_employers:"ScottishPower, Orsted, Vattenfall, Ukrspecsystems"},{metro:"Sunderland / NE England (AESC + Nissan)",country:"UK",state_region:"England (NE)",location:"Sunderland, England",latitude:"54.9062",longitude:"-1.3811",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (EV + batteries)",headline:"AESC's battery plant opened December 2025. Six-fold increase in UK battery output. 1,000+ jobs.",whats_being_built:"AESC Plant 2 opened December 2025 at 15.8 gigawatt-hours, supporting 1,000+ jobs with £1 billion of UK government-backed financing, a six-fold increase in UK battery output. The second gigafactory is publishing job listings as it nears full launch, and supplies cells for the new Nissan Leaf.",why_youre_in_demand:"Active recruiting in a region with limited battery manufacturing history. The workforce is being built from scratch, which means experience from adjacent sectors is exactly what they need.",what_it_pays:"Wages sit above the Sunderland median. £25.8K rising to £28.3K plus 12 to 30% shift allowance.",hiring_now:"AESC has continuous open roles in production, quality assurance, maintenance, and engineering.",source:"GOV.UK May 2025; electrive Dec 2025; ElectricDrives (2026); AESC",notes:"Second gigafactory now advertising roles, so this is an active hiring pin rather than a build commitment.",key_employers:"AESC, Nissan"},{metro:"Portsmouth",country:"UK",state_region:"England (SE)",location:"Portsmouth, England",latitude:"50.8198",longitude:"-1.0880",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (naval base + shipbuilding)",headline:"Royal Navy headquarters. One of six major UK shipyards in the 2025 shipbuilding boom.",whats_being_built:"Portsmouth is the Royal Navy's fleet headquarters and one of six major UK shipyards ramping up alongside Barrow, Govan, Devonport, Rosyth and Faslane. It takes £3.9bn over ten years under Project Royal Oak, the £26bn Royal Navy base programme announced on 16 July 2026, the largest naval-infrastructure investment since the Cold War.",why_youre_in_demand:"Cleared marine trades are being rotated across all six yards. The total demand exceeds the total supply.",what_it_pays:"Marine trades £38kâ£55k with security-clearance uplift £5kâ£10k.",hiring_now:"Morson and BAE Portsmouth are both actively contract-hiring.",source:"GOV.UK/MOD (16 Jul 2026); Morson; Portsmouth News",notes:"£3.9bn allocated under Project Royal Oak. Ten-year envelope rather than immediate site capex.",key_employers:"BAE Systems, Morson"},{metro:"Rosyth / Fife (Babcock)",country:"UK",state_region:"Scotland",location:"Rosyth, Scotland",latitude:"56.0328",longitude:"-3.4326",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (shipbuilding + carrier refit)",headline:"Queen Elizabeth class carrier refits. One of six UK shipyards in the 2025 boom.",whats_being_built:"Rosyth is Babcock's carrier-refit hub and one of six major UK shipyards in the current boom.",why_youre_in_demand:"Same UK-wide constraint on security-cleared marine trades. Six shipyards, not enough workers.",what_it_pays:"Marine trades £38kâ£55k; cleared roles £45kâ£65k.",hiring_now:"Babcock Rosyth roles are active.",source:"Morson",notes:"Queen Elizabeth class carrier refit",key_employers:"Babcock"},{metro:"Newport / South Wales (Vishay + KLA + IQE + CSconnected)",country:"UK",
1state_region:"Wales",location:"Newport, Wales",latitude:"51.5842",longitude:"-2.9977",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (semiconductors)",headline:"Europe's compound semiconductor cluster. Vishay expanding £250 million. 39% of the UK chip workforce approaching retirement.",whats_being_built:"Vishay is investing £250 million, creating 500+ jobs. KLA opened a $138 million R&D facility. The South Wales cluster generates £600 million in annual revenue, backed by the £1 billion UK National Semiconductor Strategy.",why_youre_in_demand:"39% of the UK semiconductor workforce is approaching retirement. The £35 million Talent Expansion Programme is a direct response to the shortage.",what_it_pays:"Semiconductor technicians £35kâ£52k; engineers £50kâ£75k. Above South West Wales average.",hiring_now:"Vishay Newport, KLA, and IQE are all in continuous hiring.",source:"Mordor Intelligence Aug 2025; Vishay Newport; KLA Sep 2025",notes:"Compound semiconductor cluster + Wales is one of five UK Defence Growth Deal areas (UAV focus, with Tekever in Pembrokeshire)",key_employers:"Vishay, KLA, IQE"},{metro:"Cambridge",country:"UK",state_region:"England (East)",location:"Cambridge, England",latitude:"52.2053",longitude:"0.1218",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (chip design + quantum)",headline:"ARM underpins 99%+ of smartphones globally. Quantum and photonics clusters are active. Design, not assembly.",whats_being_built:"ARM's Cambridge base underpins 99%+ of smartphones globally. Quantum and photonics design clusters are active. This is chip design, not manufacturing.",why_youre_in_demand:"Deep-tech talent bidding war. 23% of UK semiconductor new hires come from overseas, which tells you the domestic pipeline isn't producing enough.",what_it_pays:"Software and design engineers £60kâ£110k; chip-design specialists £80kâ£140k. Knowledge work, not trades-heavy.",hiring_now:"ARM and the local start-up ecosystem are both actively hiring.",source:"UK Plan for Chips Sep 2025",notes:"Chip design anchor",key_employers:"ARM"},{metro:"Blyth / Cobalt Park (NE AI Growth Zone)",country:"UK",state_region:"England (NE)",location:"Blyth, England",latitude:"55.1252",longitude:"-1.5145",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers (emerging)",headline:"£30 billion of investment. 5,000+ new jobs. Blackstone, Nscale, OpenAI, and Nvidia. Spades in the ground.",whats_being_built:"Up to £30 billion of investment creating 5,000+ new jobs. Nscale, OpenAI and Nvidia are all establishing operations at Cobalt Park, with construction started in September 2025. The anchor is QTS and Blackstone's £10bn campus three miles away at Cambois, where the first two data halls were approved in December 2025 and enabling works are underway.",why_youre_in_demand:"The North East construction and high-voltage engineering workforce is rebuilding from the steel and shipbuilding base. If you have that background, it's directly transferable.",what_it_pays:"Data-centre construction trades £38kâ£55k; ops technicians £40kâ£58k. Skills-fund-backed training scaling.",hiring_now:"Nscale, Cobalt Park, and Blackstone are in early hiring. Fastest-moving Tier 2 pin in the UK.",source:"GOV.UK Sep 2025; North East CA; Construction News Aug 2025; Silicon UK Dec 2025",notes:"Enabling works underway on the Cambois anchor campus, which has its own row. Blackstone has committed £110m to a council-run skills and transport fund along the Northumberland Line corridor.",key_employers:"Blackstone, Nscale, OpenAI, Nvidia"},{metro:"Hartlepool (X-Energy/Centrica SMRs)",country:"UK",state_region:"England (NE)",location:"Hartlepool, England",latitude:"54.6862",longitude:"-1.2126",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (advanced nuclear SMR)",headline:"Up to 12 advanced nuclear reactors under a UK-US pact. £12 billion for the North East. 2,500 jobs.",whats_being_built:"Up to 12 advanced modular reactors announced under the UK-US nuclear pact. Power for 1.5 million homes. The programme is valued at £12 billion in the North East with around 2,500 high-quality jobs.",why_youre_in_demand:"The SMR workforce is expected to come partly from Sellafield decommissioning cross-training. If you have nuclear experience, the transition path is clear.",what_it_pays:"Nuclear-cleared trades £42kâ£62k; cleared engineers £55kâ£82k.",hiring_now:"Early X-Energy and Centrica partner roles are being posted.",source:"GOV.UK Sep 2025",notes:"UK AMR build",key_employers:"X-Energy, Centrica"},{metro:"Culham / Oxfordshire (AI Growth Zone + fusion)",country:"UK",
1state_region:"England (SE)",location:"Culham, England",latitude:"51.6544",longitude:"-1.2353",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers + fusion energy",headline:"The UK's first AI Growth Zone. Fusion research hub. A new supercomputer for the Atomic Energy Authority.",whats_being_built:"First AI Growth Zone designated. The UK Atomic Energy Authority runs the national fusion hub here. A new AI supercomputer is being built for UKAEA.",why_youre_in_demand:"The fusion workforce is small and highly specialised. The AI Growth Zone is stacking construction trades demand on top of Oxfordshire's already pressured labour market.",what_it_pays:"Fusion and accelerator engineers £55kâ£95k; cleared specialists £70kâ£120k. Highly specialised premium.",hiring_now:"UKAEA, Nscale, and contractors are hiring.",source:"GOV.UK; AI CERTs News",notes:"Fusion-plus-AI cluster",key_employers:"UK Atomic Energy Authority, Nscale"},{metro:"North Wales (AI Growth Zone)",country:"UK",state_region:"Wales",location:"Wrexham, Wales",latitude:"53.0478",longitude:"-2.9916",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Newly confirmed AI Growth Zone. 3,400+ jobs. £100 billion+ of investment unlocked.",whats_being_built:"North Wales, covering Anglesey and Gwynedd, has been confirmed as an AI Growth Zone, projected to create around 3,450 jobs and unlock £100 billion+ of investment across the AI Growth Zone framework. Gigawatt-ready infrastructure.",why_youre_in_demand:"Rural North Wales has a small trades pool. The region relies on Merseyside and Cheshire labour pools. If you're local, you're first in line.",what_it_pays:"Construction trades £35kâ£52k; ops technicians £38kâ£55k. Skills-fund-backed wage floor rising.",hiring_now:"Early contractor announcements are being made.",source:"GOV.UK (2026); Intelligent Data Centres Dec 2025",notes:"Jobs figure restated to around 3,450 from GOV.UK's AI Growth Zone breakdown.",key_employers:"DESNZ (AI Growth Zone designation); developers TBC"},{metro:"Loughton (Microsoft/Nscale AI campus)",country:"UK",state_region:"England (East)",location:"Loughton, England",latitude:"51.6471",longitude:"0.0552",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Microsoft has committed $15 billion of UK capital expenditure. Nscale is building the UK's largest supercomputer.",whats_being_built:"Microsoft has committed $15 billion of UK capex. Nscale is building the UK's largest supercomputer. Loughton and Essex are becoming part of the London data centre expansion.",why_youre_in_demand:"London and Essex M&E labour is already stretched by Slough and East London builds.",what_it_pays:"Data-centre M&E engineers £55kâ£82k with London weighting; site electricians £45kâ£62k.",hiring_now:"Nscale and Microsoft hiring is slowly ramping.",source:"Intelligent Data Centres Dec 2025",notes:"UK AI compute centrepiece",key_employers:"Microsoft, Nscale"},{metro:"Anglesey / Wylfa",country:"UK",state_region:"Wales",location:"Holyhead, Wales",latitude:"53.2681",longitude:"-4.3610",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (future nuclear)",headline:"Designated for the UK's next large-scale nuclear site. Pre-construction phase.",whats_being_built:"Wylfa is designated for the next large-scale UK nuclear build. Great British Energy - Nuclear signed the contract on 13 April 2026 unlocking three Rolls-Royce SMR units at the site, which is expected to support around 3,000 peak-construction jobs plus 5,000 UK supply-chain roles. Rolls-Royce SMR's first manufacturing development centre, Pioneer Works in Derby, was announced on 26 June 2026 at £12m and around 40 skilled roles, opening later in 2026.",why_youre_in_demand:"When this moves, it will draw on the same scarce nuclear-certified workforce as Hinkley and Sizewell. Early positioning matters.",what_it_pays:"Nuclear-cleared rates expected at £42kâ£65k once site programmes confirm scope.",hiring_now:"Pre-construction phase. Watch this space.",source:"NucNet (Apr 2026); World Nuclear News (Jun 2026); NIA; ECITB",notes:"Moved past pre-construction: GBE-N contract signed 13 April 2026 for three units. Peak-construction hiring follows the build programme rather than starting immediately.",key_employers:"Great British Energy - Nuclear, Rolls-Royce SMR"}
1,{metro:"Coventry (Volklec gigafactory)",country:"UK",state_region:"England (W Mids)",location:"Coventry, England",latitude:"52.4068",longitude:"-1.5197",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Advanced manufacturing (EV + batteries)",headline:"Volklec's £1 billion 10 GWh gigafactory plan. UK battery production restart.",whats_being_built:"Volklec, a Midlands-based startup backed by Frontive Group, is building UK lithium-ion battery production via a technology partnership with China's Far East Battery. First cells from UKBIC's existing 100 MWh line in Coventry from late 2025; a 1 GWh power-cell line is targeted for end of 2026. The full 10 GWh £1 billion gigafactory is the long-term roadmap, with site not yet confirmed (Coventry Airport in talks). Approximately 1,000 highly skilled jobs targeted by 2030.",why_youre_in_demand:"The Midlands battery workforce is being rebuilt from a combustion-engine base. If you have automotive manufacturing experience, you're the target recruit. Pipeline of UK battery startups (Volklec, Agratas) is currently fragile, so trained workers are scarce.",what_it_pays:"Battery production operators £28k-£40k; skilled trades £38k-£55k; engineers £50k-£75k.",hiring_now:"Volklec hiring ramping at UKBIC; full gigafactory hiring contingent on site selection and FID.",source:"Power Technology Feb 2025; E&T May 2025",notes:"Gigafactory site not yet confirmed; UKBIC production ramping",key_employers:"Volklec"},{metro:"Somerset (Tata Agratas gigafactory)",country:"UK",state_region:"England (SW)",location:"Bridgwater, England",latitude:"51.1279",longitude:"-3.0035",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (EV + batteries)",headline:"Tata's £4 billion gigafactory. The largest EV battery plant in the UK. Opens late 2027.",whats_being_built:"Tata is building a £4 billion gigafactory at Bridgwater with a confirmed National Grid connection. The £380 million government grant was confirmed on 9 April 2026. At 40 GWh it will be one of Europe's largest gigafactories and the largest EV battery plant in the UK, supporting 4,200 direct jobs plus 300 apprenticeships. The plant opens late 2027.",why_youre_in_demand:"The trained pipeline needs to be ready by 2027. They're building it now.",what_it_pays:"Expected at top of UK battery market: operators £30kâ£42k; skilled trades £40kâ£58k; engineers £55kâ£80k.",hiring_now:"Tata Agratas and general contractor early hiring is underway.",source:"GOV.UK (Apr 2026); E&T Feb 2025",notes:"Government grant confirmed April 2026, which moved this from committed-in-principle to funded. Apprenticeship intake is a named route in.",key_employers:"Tata, Agratas"},{metro:"Belfast (Harland & Wolff + Spirit)",country:"UK",state_region:"Northern Ireland",location:"Belfast, Northern Ireland",latitude:"54.5970",longitude:"-5.9300",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence + aerospace",headline:"Harland & Wolff restructuring. Fleet Solid Support ships. Airbus A220 wing work. Northern Ireland's defence recovery.",whats_being_built:"Navantia UK's investment in the Belfast yard reached £98.5m, up from the £77m originally committed, for the Fleet Solid Support programme, with a new panel line and robotic plasma cutting operational from July 2026 and the workforce heading toward around 2,000 by 2030. Airbus Belfast (acquired from Spirit AeroSystems in late 2025) runs A220 wing manufacturing and assembly. Northern Ireland's £50m Defence Growth Deal was announced on 22 April 2026, the fifth regional deal, supporting hundreds of jobs and underpinning the Thales Belfast missile cluster.",why_youre_in_demand:"Northern Ireland's industrial pipeline is ramping from a low base. The workforce transition is ongoing, and experienced people are in demand.",what_it_pays:"Shipbuilding and aerospace trades £35kâ£52k; engineers £48kâ£72k. Floor rising with Boeing's entry.",hiring_now:"Harland & Wolff and Airbus Belfast are both active.",source:"Belfast News Letter (Apr 2026); GOV.UK (Apr 2026); Defence Online; Spirit SEC Form 8-K",notes:"Navantia investment up to £98.5m and new plant operational July 2026. H&W Belfast yard still trades under that name. Exact announcement day for the Navantia figure is not firmly pinned; treat as late April.",key_employers:"Navantia UK, Airbus"}
1,{metro:"Stevenage (MBDA missiles)",country:"UK",state_region:"England (SE)",location:"Stevenage, England",latitude:"51.9017",longitude:"-0.2025",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defence (munitions)",headline:"MBDA missile production scaling to refill UK stockpiles. £4.5 billion in spending driving the push.",whats_being_built:"MBDA is scaling missile production to refill stocks drawn down by Ukraine and Israel. £4.5 billion in UK munitions spending is driving the hiring push.",why_youre_in_demand:"Munitions production requires security clearances and specialised manufacturing skills. The cleared pool is limited.",what_it_pays:"Munitions-cleared technicians £42kâ£60k; cleared engineers £55kâ£85k.",hiring_now:"MBDA and its supply chain are actively hiring.",source:"UK SDR 2025",notes:"Munitions surge",key_employers:"MBDA"},{metro:"Bristol / Filton (Airbus + Rolls-Royce)",country:"UK",state_region:"England (SW)",location:"Filton, England",latitude:"51.5101",longitude:"-2.5730",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defence + aerospace",headline:"Airbus wings. Rolls-Royce engines. BAE Systems. Bristol anchors the UK aerospace spine.",whats_being_built:"Airbus builds A400M and A350 wings here. Rolls-Royce builds Trent engines. Bristol anchors the GCAP and Tempest engineering spine alongside BAE.",why_youre_in_demand:"Cleared aerospace engineering is being drawn to Samlesbury and Warton for GCAP. Bristol has to compete to keep its own people.",what_it_pays:"Aerospace trades £40kâ£58k; cleared engineers £55kâ£85k.",hiring_now:"Airbus, Rolls-Royce, and BAE Filton are all actively hiring.",source:"Industry reports",notes:"Classical UK aero cluster",key_employers:"Airbus, Rolls-Royce, BAE Systems"},{metro:"Edinburgh / Glasgow / Aberdeen (Scotland data centres)",country:"UK",state_region:"Scotland",location:"Edinburgh, Scotland",latitude:"55.9533",longitude:"-3.1883",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Scotland's wind surplus makes electricity cheap. Data centres are following the power.",whats_being_built:"DataVita is expanding. CoreWeave has committed £1.5 billion. An AI Growth Zone offers a £24/megawatt-hour electricity discount in Scotland. Scotland's wind energy surplus is attracting compute investment.",why_youre_in_demand:"Scotland's high-voltage workforce is being built. If you have energy or electrical infrastructure experience, you're the pipeline.",what_it_pays:"Data-centre M&E £48kâ£72k; wind techs £42kâ£62k. Scottish premiums emerging.",hiring_now:"DataVita, CoreWeave partners, and hyperscalers are all in early hiring.",source:"Intelligent Data Centres Dec 2025",notes:"Scotland AI energy play",key_employers:"DataVita, CoreWeave"},{metro:"Cheshire + Lincolnshire + Pembrokeshire (skills pilots)",country:"UK",state_region:"England + Wales",location:"Chester, England",latitude:"53.2143",longitude:"-2.5920",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (clean transition)",headline:"£2.5 million for clean energy skills pilots. Regional training programmes beginning now.",whats_being_built:"Up to £2.5 million for 2025-26 regional skills interventions for clean energy across Cheshire, Lincolnshire, and Pembrokeshire.",why_youre_in_demand:"These are early-stage pilots designed to build the clean energy workforce from the ground up. Getting in early means being first in line when the projects scale.",what_it_pays:"Skills-fund-backed wage floor £30kâ£45k for trades; £45kâ£65k for engineers.",hiring_now:"Pilot cohorts are beginning now.",source:"GOV.UK Clean Energy Jobs Plan Oct 2025",notes:"Regional policy innovation pin",key_employers:"DfE/UK Government (skills pilots)"},{metro:"Faslane / Clyde",country:"UK",state_region:"Scotland",location:"Helensburgh, Scotland",latitude:"56.0651",longitude:"-4.8138",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (submarine base)",headline:"Royal Navy submarine base. £250 million expansion confirmed in the Strategic Defence Review.",whats_being_built:"Faslane is the Royal Navy's submarine base and the single largest recipient under Project Royal Oak, the £26bn Royal Navy base programme announced by Minister Luke Pollard on 16 July 2026 and the largest naval-infrastru
1cture investment since the Cold War. Faslane takes £15.1bn of that over ten years, ahead of Devonport at £7.1bn and Portsmouth at £3.9bn. The 2025 Strategic Defence Review had already directed £250 million of expansion investment.",why_youre_in_demand:"Cleared marine trades compete with Barrow, Devonport, and Rosyth. The same workers, six sites.",what_it_pays:"Submarine-base trades £40kâ£58k; cleared roles £48kâ£72k.",hiring_now:"Morson and MoD contract roles are active.",source:"GOV.UK/MOD (16 Jul 2026); Morson; UK SDR 2025",notes:"£15.1bn over ten years under Project Royal Oak, the largest single allocation in the programme. Ten-year spending envelope rather than immediate site capex.",key_employers:"Babcock, MoD"},{metro:"Thacker Pass / Humboldt County NV",country:"US",state_region:"Nevada",location:"Winnemucca, NV",latitude:"41.4540",longitude:"-118.0000",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (critical minerals)",headline:"The largest lithium project under construction in the US. 1,800 workers by end of 2026.",whats_being_built:"Lithium Americas has a $2.23 billion DOE loan plus a 5% US government equity stake. 1,800 peak construction workers by end of 2026. 350 permanent roles from 2027. Bechtel is running a Project Labor Agreement. Production starts late 2027.",why_youre_in_demand:"Winnemucca has a population of 7,400. They've built a 2,000-room workforce housing hub and it's already at 700+ workers with plans for 1,500+. They're bringing people in because there's nobody local to hire.",what_it_pays:"Prevailing wage under the Project Labor Agreement. Electricians are in highest demand. Around 2,000 direct construction jobs.",hiring_now:"Around 1,000 workers on site now, rising to 1,800 by year-end. Bechtel and subcontractors are hiring.",source:"Construction Digital Mar 2026; Lithium Americas SEC 8-K Feb 2026",notes:"Largest US lithium project under construction",key_employers:"Lithium Americas, Bechtel"},{metro:"Lima OH (JSMC Tank Plant)",country:"US",state_region:"Ohio",location:"Lima, OH",latitude:"40.7428",longitude:"-84.1052",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (armoured vehicles)",headline:"The only place in America that builds main battle tanks. Workforce tripled since 2015.",whats_being_built:"The sole US main battle tank producer. M1A2 Abrams, Stryker, M10 Booker, NAMER, and M-SHORAD all built here. The Ukraine order is complete. A $2 billion facility modernisation was announced in 2024.",why_youre_in_demand:"The workforce has rebounded from 400 in 2015 to 856+ civilians. They're actively recruiting 25+ welders in 2025 and expanding into mechanics. 227 Ohio suppliers feed this plant.",what_it_pays:"UAW Local 2075 represented. Entry around $20/hr ($41K) versus the Lima median of $31K. Tank-plant roles command a wage premium.",hiring_now:"Active welder hires in 2025, with mechanics next. Ohio Means Jobs partnership feeding the pipeline.",source:"Hometownstations Sep 2025; AEDG May 2025",notes:"Sole US main battle tank manufacturer; 227 OH suppliers",key_employers:"General Dynamics Land Systems"},{metro:"Boston / Greater Boston MA",country:"US",state_region:"Massachusetts",location:"Boston, MA",latitude:"42.3601",longitude:"-71.0589",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (technology + missiles)",headline:"RTX headquarters. Raytheon missiles. MIT Lincoln Lab. Draper. The densest defense tech cluster in the US.",whats_being_built:"RTX headquarters plus Raytheon Missiles & Defense. MIT Lincoln Lab anchors federally funded research. Draper Lab, GD Mission Systems, BAE Electronic Systems, and MBDA US all operate here. Munitions production is ramping to replace Ukraine and Israel drawdowns.",why_youre_in_demand:"Cleared engineering workforce is in national shortage. Retention is hard because the Boston tech sector pays well and doesn't require clearances.",what_it_pays:"Classified-program engineers $130kâ$190k; cleared technicians $85kâ$125k. Boston COL is real but compensation reflects it.",hiring_now:"Thousands of open defense listings across Greater Boston.",s
1ource:"Industry reports; RTX careers",notes:"Defense technology cluster (not heavy shipbuilding)",key_employers:"RTX, Raytheon, MIT Lincoln Lab, Draper Lab, BAE Systems"},{metro:"San Diego CA (NASSCO + L3Harris + Naval Base)",country:"US",state_region:"California",location:"San Diego, CA",latitude:"32.7157",longitude:"-117.1611",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (shipbuilding + systems)",headline:"Pacific Fleet headquarters. NASSCO shipyard. L3Harris systems. A veteran-rich hiring market.",whats_being_built:"GD NASSCO builds commercial and Navy auxiliary ships. L3Harris runs systems integration. Naval Base San Diego is Pacific Fleet headquarters. Northrop has a systems integration presence.",why_youre_in_demand:"The cleared workforce is tight. San Diego's cost of living squeezes recruitment, which means employers have to pay more to get and keep people.",what_it_pays:"Prevailing wage shipyard trades $32â$48/hr; cleared roles $85kâ$125k. Substantial veteran-transition pipeline in place.",hiring_now:"GD NASSCO and L3Harris have consistent openings.",source:"Industry reports",notes:"Pacific Fleet hub; veteran-rich pool",key_employers:"General Dynamics NASSCO, L3Harris, Northrop Grumman"},{metro:"Puget Sound / Bremerton WA (PSNS&IMF)",country:"US",state_region:"Washington",location:"Bremerton, WA",latitude:"47.5673",longitude:"-122.6329",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (naval shipyard)",headline:"The largest US Navy shipyard. Carrier and submarine refits. Federal civil service hiring.",whats_being_built:"Puget Sound Naval Shipyard and Intermediate Maintenance Facility is the largest US Navy shipyard. The yard performs aircraft carrier and submarine refits under federal civil service rules.",why_youre_in_demand:"The cleared workforce is ageing. Pacific Northwest cost of living puts pressure on recruitment. Federal pay grades plus cleared premiums are the draw.",what_it_pays:"Federal GS-9 to GS-12 ($65kâ$110k) plus cleared premium and federal benefits.",hiring_now:"PSNS is continuously hiring apprentices, trades, and engineers.",source:"Navy.mil; industry reports",notes:"West Coast Navy refit anchor",key_employers:"US Navy (PSNS&IMF)"},{metro:"Quonset Point RI (Electric Boat)",country:"US",state_region:"Rhode Island",location:"North Kingstown, RI",latitude:"41.5959",longitude:"-71.4112",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (submarines)",headline:"Electric Boat's sister facility. Virginia and Columbia class sub modules built here.",whats_being_built:"Electric Boat subassembly for Virginia and Columbia class submarines. Rapid expansion for SSN-AUKUS and Columbia ramp. This is Groton's overflow, and it's growing fast.",why_youre_in_demand:"Same workforce challenges as Groton. Rhode Island has a tight labor market overall, and cleared marine trades are scarce.",what_it_pays:"Union-scale shipyard trades $30â$45/hr; cleared roles add 15â20%.",hiring_now:"EB Quonset Point is actively hiring.",source:"USNI; industry reports",notes:"Groton's sister facility for sub modules",key_employers:"General Dynamics Electric Boat"},{metro:"Virginia Beach / CVOW VA",country:"US",state_region:"Virginia",location:"Virginia Beach, VA",latitude:"36.8529",longitude:"-75.9780",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (offshore wind)",headline:"The largest US offshore wind project under construction. $9.8 billion. Dominion Energy.",whats_being_built:"Coastal Virginia Offshore Wind is a $9.8 billion project, the largest offshore wind build in the US. Dominion Energy leads the construction.",why_youre_in_demand:"Northern Virginia and Newport News trades are already tight. Offshore wind is drawing additional marine trades from the same pool. Three competing mega-projects in the same state.",what_it_pays:"PLA prevailing wages $42â$60/hr; offshore technicians $85kâ$130k. Competitive with HII shipyard wages.",hiring_now:"Active construction and operations and maintenance contractor hiring.",source:"Dominion Energy; industry reports",notes:"Flagship US offshore wind project",key_employers:"Dominion Energy"},{metro:"Taylor TX (Samsung $17B fab)",country:"US",state_region:"Texas",location:"Taylor, TX",latitude:"30.5705",longitude:"-97.4092",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (semiconductors)",headline:"Samsung chose Taylor over Austin for a $17 billion semiconductor fab. $40 billion more is planned.",whats_being_built:"Samsung is building a $17 billion semiconductor fab in Taylor. An additional $40 b
1illion+ is planned. Samsung chose Taylor specifically for the expansion, not Austin.",why_youre_in_demand:"Texas semiconductor trades are being pulled from Austin. Samsung is offering aggressive wage and relocation packages because they're competing with TSMC Phoenix and Intel Ohio.",what_it_pays:"Cleared chip technicians $75kâ$120k; process engineers $115kâ$165k. Above-market plus relocation packages.",hiring_now:"Samsung and contractor hiring in the hundreds.",source:"Industry reports",notes:"Texas chip corridor",key_employers:"Samsung"},{metro:"Sherman TX (Texas Instruments)",country:"US",state_region:"Texas",location:"Sherman, TX",latitude:"33.6357",longitude:"-96.6089",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (semiconductors)",headline:"Texas Instruments. $30 billion. Multiple fabs. 3,000+ jobs. The Texas chip corridor keeps growing.",whats_being_built:"Texas Instruments is building a $30 billion multi-fab campus for analog chip production, with 3,000+ jobs projected at full build. Coherent is separately expanding indium phosphide manufacturing in Sherman under Commerce Department incentives announced on 16 June 2026, adding more than 1,000 jobs.",why_youre_in_demand:"Rural North Texas trades pool is being filled from scratch. Sherman is becoming a commuter hub from Dallas, which tells you the local workforce wasn't big enough.",what_it_pays:"TI fab technicians $70kâ$110k; engineers $105kâ$150k. Premium wages plus relocation assistance.",hiring_now:"TI and contractor hiring is active.",source:"Semiconductor Industry Association (Jun 2026); industry reports",notes:"Two separate semiconductor employers now committed in the same small metro, which stacks demand for the same technicians.",key_employers:"Texas Instruments, GlobalWafers"},{metro:"Warner Robins GA (WR-ALC)",country:"US",state_region:"Georgia",location:"Warner Robins, GA",latitude:"32.6130",longitude:"-83.5980",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense (USAF depot)",headline:"Warner Robins Air Logistics Complex. F-15, C-5 Galaxy, C-130 Hercules maintenance. One of three USAF depots.",whats_being_built:"WR-ALC maintains F-15 fighters, C-5 Galaxy transports, and C-130 Hercules aircraft. One of three US Air Force depots, and a critical piece of military readiness.",why_youre_in_demand:"Cleared civil-service pipeline is tight. Georgia Tech and Middle Georgia State partnerships feed the pipeline, but it's not enough.",what_it_pays:"Federal GS-9 to GS-12 ($60kâ$105k) plus cleared and depot premiums.",hiring_now:"WR-ALC runs continuous DoD civilian hiring.",source:"Industry reports; AFMC",notes:"USAF MRO anchor",key_employers:"US Air Force (WR-ALC)"},{metro:"Tinker AFB / Oklahoma City OK (OC-ALC)",country:"US",state_region:"Oklahoma",location:"Oklahoma City, OK",latitude:"35.4146",longitude:"-97.3869",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense (USAF depot)",headline:"26,000 people. KC-46 tanker, B-1B, B-52, and engine overhaul. The largest USAF depot by headcount.",whats_being_built:"Tinker OC-ALC has around 26,000 workers. KC-46 tanker, B-1B, B-52, E-6B, E-3 AWACS, and propulsion overhaul. It's the largest USAF depot by headcount and anchors Oklahoma City's aerospace cluster.",why_youre_in_demand:"Oklahoma trades are steady but the federal civil-service base is ageing. Experienced aircraft maintenance technicians are in consistent demand.",what_it_pays:"Federal GS-9 to GS-12 ($60kâ$105k) plus aerospace trades premiums; WG-10 wage-grade trades $30â$42/hr.",hiring_now:"OC-ALC runs continuous hiring. Oklahoma City anchors a broader aerospace cluster.",source:"Industry reports; Tinker AFB",notes:"Largest USAF depot by headcount",key_employers:"US Air Force (OC-ALC)"},{metro:"Appalachian Hydrogen Hub (WV/OH/PA)",country:"US",state_region:"West Virginia + Ohio + Pennsylvania",location:"Morgantown, WV",latitude:"38.5976",longitude:"-80.4549",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"21,000 direct jobs. $925 million federal. Natural gas plus carbon capture. The coal communities' next chapter.",whats_being_built:"ARCH2 has up to $925 million in federal funding plus private match. 21,000 direct jobs: 18,000 in construction, 3,000 permanent. Natural gas plus carbon capture pathway. Funding maintained by the current administration.",why_youre_in_demand:"This hub is designed specifically for coal-community workforce transition. Pipeline, construction, and process plant skills from the fossil fuel industry are exactly what's needed.",what_it_pays:"PLA prevailing wages $38â$55/hr supporting a workforce transition from coal.",hiring_now:"Phase 1 planning staff are on site. Construction roles from 2027.",source:"White House Oct 2023; Earthjustice; Nat Law Review Jul 2025",notes:"Largest single H2 hub jobs number",key_employers:"ARCH2"},{metro:"Gulf Coast Hydrogen Hub (Houston TX)",country:"US",state_region:"Texas",location:"Houston, TX",latitude:"29.7604",longitude:"-95.3698",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"The largest US hydrogen hub. 45,000 direct jobs. $1.2 billion federal. Houston is going hydrogen.",whats_being_built:"HyVelocity has up to $1.2 billion in federal funding. 45,000 direct jobs: 35,000 in construction, 10,000 permanent. This is the largest of the seven federal hydrogen hubs.",why_youre_in_demand:"Houston's skilled trades are already drawn into LNG construction. Hydrogen adds another layer of demand on an already tight market.",what_it_pays:"PLA Gulf Coast premium $42â$60/hr for instrumentation, pipefitting, and electrical.",hiring_now:"Phase 1 planning is active.",source:"White House 2023; DOE",notes:"Largest US hydrogen hub",key_employers:"HyVelocity"},{metro:"Mid-Atlantic Hydrogen Hub (MACH2 PA/DE/NJ)",country:"US",state_region:"Pennsylvania + Delaware + New Jersey",location:"Philadelphia, PA",latitude:"39.9526",longitude:"-75.1652",tier:"3",certainty:"Could slip",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"Mid-Atlantic hydrogen hub. 20,800 jobs. $750 million federal. Funding under review.",whats_being_built:"MACH2 has up to $750 million in federal funding. 20,800 direct jobs: 14,400 in construction, 6,400 permanent. DOE awarded $18.8 million in January 2025 for Phase 1.",why_youre_in_demand:"The Northeast trades pool is already tight from AWS Pennsylvania builds and data center construction. Adding hydrogen creates more competition for the same workers.",what_it_pays:"Prevailing wage plus Project Labor Agreement. $14 million committed to regional workforce development.",hiring_now:"Phase 1 planning. This one could slip depending on administration priorities.",source:"Earthjustice; White House 2023",notes:"Northeast H2 hub",key_employers:"MACH2"},{metro:"Midwest Hydrogen Hub (MachH2 IL/IN/MI)",country:"US",state_region:"Illinois + Indiana + Michigan",location:"Chicago, IL",latitude:"41.8781",longitude:"-87.6298",tier:"3",certainty:"Could slip",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"Midwest hydrogen hub across Illinois, Indiana, and Michigan. Federal funding maintained but pace may slow.",whats_being_built:"MachH2 is one of seven federally funded hydrogen hubs, spanning Illinois, Indiana, and Michigan. Focus on industrial hydrogen and transportation.",why_youre_in_demand:"Midwest industrial trades are the target workforce. Pipeline, process, and construction skills are transferable.",what_it_pays:"PLA prevailing wages $40â$58/hr across the Midwest corri
1dor.",hiring_now:"Phase 1 planning. This one could slip depending on federal administration priorities.",source:"BPI Network Oct 2025",notes:"Steel/fertilizer decarb focus",key_employers:"MachH2"},{metro:"Heartland Hydrogen Hub (MN/ND/SD)",country:"US",state_region:"Minnesota + North Dakota + South Dakota",location:"Bismarck, ND",latitude:"46.8772",longitude:"-96.7898",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"Agricultural hydrogen in the Upper Midwest. $925 million federal. 3,880 direct jobs.",whats_being_built:"The Heartland hub has up to $925 million in federal funding. It supports 3,880 direct jobs producing agricultural hydrogen for fertiliser and ammonia. Federal funding has been maintained.",why_youre_in_demand:"Rural Upper Midwest trades pool is small. Construction and process plant skills are needed, and there aren't many people locally who have them.",what_it_pays:"PLA prevailing wages $35â$52/hr; agricultural-adjacent wage scales.",hiring_now:"Phase 1 planning is active.",source:"White House 2023; Nat Law Review",notes:"Ag-focused H2 hub",key_employers:"Heartland Hydrogen Hub"},{metro:"Pacific Northwest Hydrogen Hub (PNWH2 WA/OR/MT)",country:"US",state_region:"Washington + Oregon + Montana",location:"Seattle, WA",latitude:"45.5152",longitude:"-122.6784",tier:"3",certainty:"Could slip",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"Pacific Northwest hydrogen hub. Washington, Oregon, and Montana. Federal funding, but pace uncertain.",whats_being_built:"PNWH2 spans Washington, Oregon, and Montana. Focus on clean hydrogen from hydroelectric and renewable sources.",why_youre_in_demand:"Pacific Northwest energy and construction trades are needed. The region has a strong trades base but it's being pulled in multiple directions.",what_it_pays:"Federal prevailing wages $40â$58/hr.",hiring_now:"Early-stage. Could slip depending on federal priorities.",source:"Earthjustice",notes:"PNW H2 hub",key_employers:"PNWH2"},{metro:"California Hydrogen Hub (ARCHES)",country:"US",state_region:"California",location:"Los Angeles, CA",latitude:"34.0522",longitude:"-118.2437",tier:"3",certainty:"Could slip",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (hydrogen)",headline:"California's ARCHES hydrogen hub. Renewable hydrogen. Federal funding under review.",whats_being_built:"ARCHES is California's federally funded hydrogen hub, focused on renew
1able hydrogen from solar, wind, and biomass sources.",why_youre_in_demand:"California construction and energy trades are needed. The state has a large workforce but competing priorities.",what_it_pays:"California prevailing wages $55â$78/hr with PLA coverage.",hiring_now:"Early-stage. This one could slip.",source:"BPI Network Oct 2025; Earthjustice",notes:"CA H2 hub",key_employers:"ARCHES"},{metro:"Salton Sea CA (geothermal lithium)",country:"US",state_region:"California",location:"Imperial County, CA",latitude:"33.3023",longitude:"-115.8478",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Advanced manufacturing (critical minerals)",headline:"Lithium from geothermal brine. The Salton Sea could become America's lithium valley.",whats_being_built:"Multiple companies are developing lithium extraction from geothermal brine at the Salton Sea. This could create a domestic lithium supply for EV batteries.",why_youre_in_demand:"Geothermal and mineral extraction skills are rare. Process plant operators and chemical technicians are the target workforce.",what_it_pays:"Geothermal and lithium extraction operators $32â$48/hr; engineers $95kâ$140k. Southern California COL varies by location.",hiring_now:"Development-stage hiring. Early movers get in first.",source:"DOE; industry reports",notes:'"Lithium Valley" cluster',key_employers:"Berkshire Hathaway Energy, EnergySource"},{metro:"Paulsboro NJ (EEW offshore wind monopile)",country:"US",state_region:"New Jersey",location:"Paulsboro, NJ",latitude:"39.8282",longitude:"-75.2404",tier:"3",certainty:"Could slip",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (offshore wind manufacturing)",headline:"EEW's monopile fabrication facility. Building the foundations for US offshore wind. Policy uncertainty looms.",whats_being_built:"EEW operates an offshore wind monopile fabrication facility at Paulsboro. These are the steel foundations that offshore wind turbines sit on.",why_youre_in_demand:"Welders and steel fabricators with heavy industrial experience are the target workforce. The work is highly specialized.",what_it_pays:"Industrial fabrication trades $32â$48/hr; welders with offshore certs $40â$58/hr.",hiring_now:"Active when projects are confirmed. Could slip if US offshore wind policy shifts.",source:"DOE reports",notes:"US offshore wind supply chain",key_employers:"EEW"},{metro:"Port Talbot",country:"UK",state_region:"Wales",location:"Port Talbot, Wales",latitude:"51.5836",longitude:"-3.7761",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (floating offshore wind)",headline:"The steelworks is closing. Floating offshore wind is moving in. Port Talbot's workforce is transitioning.",whats_being_built:"Port Talbot is transitioning from steel production to floating offshore wind and clean energy. The Celtic Sea floating wind pipeline is the primary growth driver.",why_youre_in_demand:"If you have heavy industrial or steel experience, the skills are directly transferable to offshore wind fabrication and assembly. The transition pipeline is real.",what_it_pays:"Offshore wind fabrication trades £35kâ£52k; engineers £50kâ£72k. Above South Wales median; transition support available.",hiring_now:"Floating offshore wind contractor and fabrication roles are emerging.",source:"New Civil Engineer Sep 2024; GOV.UK Mar 2025",notes:"UK floating wind manufacturing anchor",key_employers:"Celtic Sea developers"},{metro:"Milford Haven / Pembrokeshire (Celtic Freeport)",country:"UK",state_region:"Wales",location:"Milford Haven, Wales",latitude:"51.7128",longitude:"-5.0339",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (hydrogen + offshore wind ops)",headline:"Celtic Freeport. Hydrogen, offshore wind operations, and marine energy. Pembrokeshire is reinventing itself.",whats_being_built:"Milford Haven is anchoring the Celtic Freeport with hydrogen production, offshore wind operations, and marine energy.",why_youre_in_demand:"Marine, petrochemical, and port operations skills translate directly to the new energy economy. Pembrokeshire's existing workforce has the foundation.",what_it_pays:"Emerging freeport and clean-energy roles £32kâ£48k for trades; £45kâ£68k for engineers.",hiring_now:"Freeport and energy contractor roles are emerging.",source:"GOV.UK Mar 2025; Pembrokeshire Herald Mar 2026",notes:"Celtic Freeport anchor (alongside Port Talbot)",key_employers:"Celtic Freeport"}
1,{metro:"Greater Manchester (AI Growth Zone)",country:"UK",state_region:"England (NW)",location:"Manchester, England",latitude:"53.4808",longitude:"-2.2426",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Newly confirmed AI Growth Zone. Manchester is bidding for hyperscale data centre investment.",whats_being_built:"Greater Manchester has been designated as an AI Growth Zone, positioning the city to attract hyperscale data centre and AI compute investment.",why_youre_in_demand:"Manchester's M&E and construction trades will be needed as data centre builds begin. Early positioning matters.",what_it_pays:"Data-centre construction trades £38kâ£55k; ops technicians £40kâ£58k; M&E engineers £52kâ£75k.",hiring_now:"Early-stage. Watch for contractor announcements.",source:"Intelligent Data Centres Dec 2025; HSF Kramer",notes:"5th UK AIGZ",key_employers:"DESNZ (AI Growth Zone designation); developers TBC"},{metro:"Anglesey Freeport (Holyhead + Energy Island)",country:"UK",state_region:"Wales",location:"Holyhead, Wales",latitude:"53.2681",longitude:"-4.3610",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (tidal + wind + hydrogen)",headline:"Anglesey Freeport. Tidal, wind, and hydrogen. A multi-energy island play.",whats_being_built:"Anglesey Freeport combines tidal energy, offshore wind, and hydrogen production. The Energy Island concept aims to make Anglesey a multi-energy hub.",why_youre_in_demand:"Marine and energy construction skills are needed. Rural North Wales has a limited workforce, so people with relevant experience have leverage.",what_it_pays:"Emerging freeport and energy roles £30kâ£45k for trades; £45kâ£65k for engineers.",hiring_now:"Early-stage development. Position yourself now.",source:"Pembrokeshire Herald Mar 2023",notes:"North Wales clean energy (separate from Wylfa nuclear pin)",key_employers:"Stena Line, M-Sparc, Bechtel (Wylfa adj.)"},{metro:"Cornwall (Cornish Lithium + Cornish Tin)",country:"UK",state_region:"England (SW)",location:"Camborne, England",latitude:"50.4167",longitude:"-5.0833",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Advanced manufacturing (critical minerals)",headline:"Lithium and tin from Cornish mines. Critical minerals extraction is coming back to the UK.",whats_being_built:"Cornish Lithium and Cornish Tin are developing critical minerals extraction from historic Cornish mining sites. The UK's domestic supply chain for battery materials starts here.",why_youre_in_demand:"Mining, geology, and extraction skills are rare in the UK. If you have relevant experience, you're part of a very small pool.",what_it_pays:"Extraction operators £32kâ£45k; mining and process engineers £48kâ£72k. COL lower than South East.",hiring_now:"Cornish Lithium and Cornish Tin are in development-phase hiring.",source:"UK Critical Minerals Strategy; industry reports",notes:"UK critical minerals pin",key_employers:"Cornish Lithium, Cornish Tin"},{metro:"Merseyside / Liverpool",country:"UK",state_region:"England (NW)",location:"Liverpool, England",latitude:"53.4084",longitude:"-2.9916",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers + offshore wind supply chain",headline:"Data centres and offshore wind supply chain. Liverpool is building its Next Economy infrastructure.",whats_being_built:"Merseyside is developing data centre capacity and offshore wind supply chain operations. Liverpool's port and industrial infrastructure provides the foundation.",why_youre_in_demand:"Construction and M&E trades are needed. Merseyside has a strong industrial heritage workforce that's transferable.",what_it_pays:"Data-centre and wind trades £35kâ£52k; engineers £48kâ£70k. Premium over standard Merseyside rates.",hiring_now:"Early-stage development. Contractor roles emerging.",source:"Industry reports",notes:"NW England developing Tier 3",key_employers:"Peel Ports, Unilever, Jaguar Land Rover (Halewood), AstraZeneca"}
1,{metro:"Grangemouth (Scotland)",country:"UK",state_region:"Scotland",location:"Grangemouth, Scotland",latitude:"56.0134",longitude:"-3.7220",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (refinery transition)",headline:"Scotland's oil refinery is transitioning. Same site, different energy. The workers transfer too.",whats_being_built:"Grangemouth's refinery is transitioning from fossil fuel processing to clean energy. The industrial site and its workforce are being repurposed.",why_youre_in_demand:"Petrochemical and process plant skills are directly transferable to clean energy operations. If you've worked in refining, you already have what they need.",what_it_pays:"Process operators and transition roles £40kâ£58k; instrumentation and engineers £55kâ£80k. Expected to maintain refinery-level wages.",hiring_now:"Transition planning is active. Workforce engagement ongoing.",source:"UK Clean Energy Jobs Plan Oct 2025",notes:"Refinery transition anchor",key_employers:"Petroineos"},{metro:"Detroit Arsenal / Sterling Heights MI (TACOM + GDLS)",country:"US",state_region:"Michigan",location:"Sterling Heights, MI",latitude:"42.5803",longitude:"-83.0302",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (ground vehicles engineering)",headline:"TACOM and General Dynamics Land Systems. The engineering center for US ground combat vehicles.",whats_being_built:"Detroit Arsenal and Sterling Heights house TACOM (the Army's ground vehicle command) and General Dynamics Land Systems. This is where ground combat vehicles are engineered and program-managed.",why_youre_in_demand:"Michigan's auto engineering talent is being pulled between defense, EV, and commercial. The cleared engineering pool is especially tight.",what_it_pays:"Defense engineers $95kâ$140k; cleared technicians $70kâ$105k; skilled trades $32â$45/hr.",hiring_now:"GDLS and TACOM civilian roles are continuously posted.",source:"TACOM army.mil; industry reports",notes:"Engineering/RDT&E half of Abrams",key_employers:"General Dynamics Land Systems, US Army TACOM"},{metro:"Jacksonville FL (BAE Systems shipyard)",country:"US",state_region:"Florida",location:"Jacksonville, FL",latitude:"30.3322",longitude:"-81.6557",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (shipbuilding + commercial)",headline:"BAE Systems shipyard. Commercial and Navy work. Florida's other maritime hub.",whats_being_built:"BAE Systems operates a shipyard handling both commercial and Navy maintenance work. Jacksonville is a growing maritime hub alongside the Space Coast.",why_youre_in_demand:"Florida's shipyard trades are stretched between Jacksonville, Cape Canaveral, and offshore wind support. No state income tax sweetens the deal.",what_it_pays:"Shipyard trades $26â$40/hr; engineers $80kâ$115k. Florida no-state-tax advantage.",hiring_now:"BAE Jacksonville is actively hiring across shipyard trades.",source:"Space Florida Jan 2026",notes:"New Southeast Navy repair hub",key_employers:"BAE Systems"},{metro:"Malta / Saratoga County NY (GlobalFoundries Fab 8 + Wolfspeed Marcy)",country:"US",state_region:"New York",location:"Malta, NY",latitude:"42.9834",longitude:"-73.8354",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Advanced manufacturing (semiconductors)",headline:"GlobalFoundries' main US fab. Part of $16 billion two-state expansion with Vermont. Wolfspeed alongside.",whats_being_built:"GlobalFoundries operates Fab 8 in Malta - its primary US semiconductor manufacturing site. Part of GF's $16 billion two-state expansion (June 2025), paired with the Essex Junction Vermont fab. Adds $3 billion of R&D investment on top of the $13 billion existing buildout, backed by $1.5 billion in CHIPS Act direct funding ($550 million via NY State Green CHIPS Program). Construction of a new 358,000 sq ft facility at Malta commenced in 2025, with plans to triple Malta production capacity over the next decade toward 1 million wafers per year. Wolfspeed is separately expanding at Marcy. Together with Micron Syracuse, Upstate NY is now a semiconductor megacluster.",why_youre_in_demand:"Upstate New York's manufacturing workforce is rebuilding. Competition with Micron's massive Syracuse build and GF's parallel Vermont expansion means fab technicians have multi-site leverage. Specialist GaN process engineers can choose between Malta and Essex Junction VT.",what_it_pays:"Fab technicians $70kâ$105k; engineers $100kâ$145k. COL much lower than downstate.",hiring_now:"GlobalFoundries and Wolfspeed are both hiring.",source:"GlobalFoundries Jun 2025; NIST CHIPS Nov 2024; NY Governor Hochul; SEC Form 6-K",notes:"GF Fab 8; paired with Essex Junction VT in $16B two-state expansion + Micron Syracuse triangle",key_employers:"GlobalFoundries, Wolfspeed"},{metro:"Portsmouth NH / Kittery ME (Portsmouth Naval Shipyard US)",country:"US",state_region:"New Hampshire + Maine",location:"Kittery, ME",latitude:"43.0770",longitude:"-70.7470",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (submarine refit)",headline:"The oldest continuously operating US Navy shipyard. Submarine refits. Federal civil service.",whats_being_built:"Portsmouth Naval Shipyard performs submarine refits and is a critical piece of the Navy's maintenance infrastru
1cture. Continuous operations since 1800.",why_youre_in_demand:"New England's cleared maritime trades pool is tight. The yard competes with Electric Boat and Bath Iron Works for the same workers.",what_it_pays:"Federal GS-9 to GS-12 ($65kâ$110k) plus clearance premium.",hiring_now:"Portsmouth Naval Shipyard is continuously hiring.",source:"Navsea.navy.mil; Ziprecruiter; DOD hiring",notes:"Atlantic Navy sub refit anchor (distinct from UK Portsmouth)",key_employers:"US Navy (Portsmouth Naval Shipyard)"},{metro:"Buffalo NY / Amherst NY (Tesla Gigafactory 2 + Moog + Northrop)",country:"US",state_region:"New York",location:"Buffalo, NY",latitude:"42.8864",longitude:"-78.8784",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Advanced manufacturing + Defense",headline:"Tesla Gigafactory 2 plus Moog and Northrop. Western New York's advanced manufacturing cluster.",whats_being_built:"Tesla Gigafactory 2 handles solar and energy storage. Moog builds precision motion control for aerospace and defense. Northrop has a local presence.",why_youre_in_demand:"Western New York has a smaller manufacturing workforce than downstate. Competition with Micron Syracuse is pulling talent east.",what_it_pays:"Advanced manufacturing trades $28â$42/hr; engineers $85kâ$125k. Buffalo COL among lowest in NY state.",hiring_now:"Tesla, Moog, and Northrop all have active listings.",source:"Industry reports",notes:"Secondary NY cluster",key_employers:"Tesla, Moog, Northrop Grumman"},{metro:"Council Bluffs IA + Altoona IA + Rosemount MN (data centers)",country:"US",state_region:"Iowa + Minnesota",location:"Council Bluffs, IA",latitude:"41.2619",longitude:"-95.8608",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Hyperscale data centers across Iowa and Minne
1sota. Cheap power and cold air. Perfect conditions.",whats_being_built:"Google, Meta, and Microsoft all operate hyperscale data centers across Iowa and Minnesota. Cheap power and natural cooling make the region attractive.",why_youre_in_demand:"Rural Midwest data center locations have limited local workforces. Data center technicians and electricians have to be recruited from elsewhere.",what_it_pays:"Hyperscaler data-center techs $65kâ$95k; construction electricians $38â$52/hr. Midwest COL makes the math work.",hiring_now:"Google, Meta, and Microsoft contractor roles are active.",source:"Google.com/datacenters; industry reports",notes:"Secondary Midwest data-center pins",key_employers:"Google, Meta, Microsoft"},{metro:"New Orleans / Baton Rouge LA (petrochemical corridor)",country:"US",state_region:"Louisiana",location:"Baton Rouge, LA",latitude:"30.0271",longitude:"-90.4125",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (petrochemicals)",headline:"The petrochemical corridor. Refineries, chemical plants, and constant maintenance work.",whats_being_built:"Louisiana's petrochemical corridor runs continuous operations. Refineries and chemical plants require constant maintenance, turnaround, and expansion work.",why_youre_in_demand:"Louisiana trades are being pulled between petrochemicals, LNG, and the new data center pipeline. Three competing sectors, one workforce.",what_it_pays:"Process operators $32â$48/hr; instrumentation techs $80kâ$115k; engineers $100kâ$145k. Well above regional medians with overtime.",hiring_now:"Continuous contractor and plant-operator hiring across the corridor.",source:"Louisiana Economic Development; 1012 Industry Report",notes:"Baton Rouge petrochem corridor",key_employers:"Shell, ExxonMobil, Dow"},{metro:"Immingham + Grimsby (offshore wind detail)",country:"UK",state_region:"England (Yorkshire and Humber)",location:"Grimsby, England",latitude:"53.6180",longitude:"-0.1964",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (offshore wind)",headline:"Offshore wind operations and maintenance hub. Siemens Gamesa, Ãrsted, and RWE all operate from here.",whats_being_built:"Immingham and Grimsby are the UK's primary offshore wind operations and maintenance hub. Siemens Gamesa, Ãrsted, and RWE all run operations from these ports.",why_youre_in_demand:"Offshore wind technicians are in global shortage. If you have marine, mechanical, or electrical skills, the wind sector is actively recruiting from adjacent industries.",what_it_pays:"Offshore wind O&M techs £42kâ£62k plus offshore allowances £80â£150/day.",hiring_now:"Siemens Gamesa, Ãrsted, and RWE are all hiring from the Humber.",source:"OWIC/RenewableUK; Ãrsted",notes:"Splitting out the Humber O&M story",key_employers:"Siemens Gamesa, Orsted, RWE"},{metro:"Orkney + Shetland + Outer Hebrides",country:"UK",state_region:"Scotland",location:"Kirkwall, Scotland",latitude:"59.0500",longitude:"-3.0000",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Energy (tidal + wind + wave)",headline:"Tidal, wave, and wind energy. The UK's most remote energy frontier. Premium pay for those willing to go.",whats_being_built:"Orkney, Shetland, and the Outer Hebrides are at the frontier of tidal, wave, and offshore wind energy. Test sites and demonstration projects are active.",why_youre_in_demand:"Remote island locations mean a tiny local workforce. Experience with marine energy, electrical systems, or offshore operations makes you recruitable.",what_it_pays:"Base trades £35kâ£52k plus £80â£200/day remote-location and island allowances.",hiring_now:"Energy developer and contractor roles are active in small numbers.",source:"EMEC Orkney; industry reports",notes:"Scottish islands marine energy",key_employers:"EMEC, SSE"},{metro:"Crewe",country:"UK",state_region:"England (NW)",location:"Crewe, England",latitude:"53.0970",longitude:"-2.4466",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Advanced manufacturing (EV + luxury auto)",headline:"Bentley's EV transition. Rolls-Royce Motor Cars nearby. The Cheshire luxury auto cluster is going electric.",whats_being_built:"Bentley is transitioning to electric vehicle production at Crewe. Rolls-Royce Motor Cars operates nearby. The Cheshire luxury automotive cluster is retooling for electrification.",why_youre_in_demand:"EV powertrain and battery integration skills are needed. Traditional automotive manufacturing experience is the starting point.",what_it_pays:"Luxury automotive trades £35kâ£52k; skilled assembly £40kâ£58k; engineers £48kâ£72k. Premium over standard UK manufacturing.",hiring_now:"Bentley and supply chain hiring for EV transition roles.",source:"Industry reports",notes:"Luxury EV transition story",key_employers:"Bentley, Rolls-Royce Motor Cars"}
1,{metro:"Cheltenham + Harwell",country:"UK",state_region:"England (SW + SE)",location:"Cheltenham, England",latitude:"51.9003",longitude:"-2.0783",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defence (cyber + fusion research)",headline:"GCHQ headquarters plus the Harwell science campus. Cyber and fusion research in the Cotswolds.",whats_being_built:"Cheltenham hosts GCHQ headquarters. Harwell is a major science campus with fusion research, space, and data facilities.",why_youre_in_demand:"Cleared cyber analysts and research technicians are in short supply. These are niche roles with security requirements.",what_it_pays:"Cleared cyber roles £55kâ£95k with TS premiums. Fusion and accelerator engineers £45kâ£75k. Cost of living moderate vs London.",hiring_now:"GCHQ and Harwell campus employers are hiring.",source:"GCHQ; UKAEA",notes:"Cleared professional hub (not trades-heavy)",key_employers:"GCHQ, UK Atomic Energy Authority"},{metro:"Port of Dover + London Gateway",country:"UK",state_region:"England (SE)",location:"Dover, England",latitude:"51.1287",longitude:"1.3105",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Construction + maritime logistics",headline:"The UK's busiest passenger port plus a growing container terminal. Construction and maritime logistics.",whats_being_built:"Dover handles more passenger traffic than any UK port. London Gateway is expanding as a container terminal. Both require ongoing construction and operational staff.",why_youre_in_demand:"Port construction and maritime logistics roles are in demand. The combination of expansion at both sites creates consistent need.",what_it_pays:"HGV and port operatives £32kâ£45k with shift premiums; crane and straddle operators £40kâ£55k. Construction trades £35kâ£55k at prevailing rates.",hiring_now:"Both ports are hiring across construction and operations.",source:"Industry reports",notes:"Maritime logistics only (weaker shortage signal)",key_employers:"DP World"},{metro:"Inland Empire CA (Amazon + logistics cluster)",country:"US",state_region:"California",location:"Riverside, CA",latitude:"34.0633",longitude:"-117.2509",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Logistics",headline:"America's largest inland logistics hub. Warehouses stretching to the horizon. Constant hiring.",whats_being_built:"The Inland Empire is the largest inland logistics hub in the US. Amazon, FedEx, UPS, and hundreds of other operators run massive warehouse and distribution operations here.",why_youre_in_demand:"The sheer volume of warehouse and logistics operations means turnover is constant and employers are always hiring. Forklift operators, warehouse managers, and logistics coordinators are perpetually needed.",what_it_pays:"Warehouse and ops $22â$28/hr (Amazon floor); skilled forklift and maintenance $28â$40/hr. Cheaper than coastal CA metros.",hiring_now:"Thousands of active roles across Amazon, FedEx, UPS, and third-party logistics operators.",source:"Amazon hiring portal; KTLA Feb 2025; Inland Empire Economic Partnership",notes:"Largest US logistics cluster",key_employers:"Amazon, FedEx, UPS"},{metro:"Memphis TN (FedEx SuperHub + Amazon)",country:"US",state_region:"Tennessee",location:"Memphis, TN",latitude:"35.0497",longitude:"-89.9769",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Logistics",headline:"FedEx's global SuperHub. The sorting center that runs American e-commerce.",whats_being_built:"Memphis hosts FedEx's global SuperHub, one of the most critical logistics nodes in the US. Amazon has expanded its presence significantly.",why_youre_in_demand:"Logistics and warehouse labor turns over fast. The scale of Memphis operations means there are always openings.",what_it_pays:"Hub operators $20â$26/hr; A&P mechanics $35â$48/hr; maintenance $26â$38/hr. No state income tax.",hiring_now:"FedEx and Amazon are constantly hiring across Memphis.",source:"FedEx Corp; industry reports",notes:"Air cargo + e-commerce crossover",key_employers:"FedEx, Amazon"},{metro:"Louisville KY (UPS Worldport)",country:"US",state_region:"Kentucky",location:"Louisville, KY",latitude:"38.1740",longitude:"-85.7361",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Logistics",headline:"UPS Worldport. The largest automated package handling facility in the world.",whats_being_built:"Louisville hosts UPS Worldport, the world's largest automated package handling facility. It's the backbone of UPS's global air network.",why_youre_in_demand:"Automation maintenance technicians, package handlers, and logistics coordinators are in constant demand. The facility runs 24/7 year-round.",what_it_pays:"UPS full-time package handlers $23â$28/hr; aircraft mechanics $38â$52/hr; logistics ops $24â$34/hr. Favourable COL.",hiring_now:"UPS Worldport runs continuous hiring.",source:"UPS; Louisville Regional Airport Authority",notes:"Global air logistics anchor",key_employers:"UPS"},{metro:"UK Midlands Golden Triangle (Magna Park + DIRFT + Lutterworth)",country:"UK",
1state_region:"England (East Midlands)",location:"Lutterworth, England",latitude:"52.4533",longitude:"-1.0658",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Logistics",headline:"The UK's logistics golden triangle. If it ships in Britain, it probably came through here.",whats_being_built:"Magna Park, DIRFT, and the Lutterworth corridor form the UK's logistics heart. Central location, motorway access, and massive warehouse footprint make this the default hub for national distribution.",why_youre_in_demand:"Warehouse and logistics labour is always in demand. The golden triangle's central location means employers compete with every other sector for the same workers.",what_it_pays:"Warehouse operatives £24kâ£30k; HGV drivers £32kâ£42k; team leaders £30kâ£40k. Low Midlands COL.",hiring_now:"Continuous hiring across the triangle.",source:"UKWA; Logistics UK 2025; CILT 2022",notes:"UKs logistics Golden Triangle",key_employers:"Amazon, DHL, Royal Mail"},{metro:"London Gateway + Port of Felixstowe (port logistics)",country:"UK",state_region:"England (SE + East)",location:"Thurrock, England",latitude:"51.5110",longitude:"0.4900",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Logistics",headline:"The UK's two busiest container ports. Automation increasing but operators still needed.",whats_being_built:"London Gateway and Felixstowe are the UK's busiest container ports. Expansion and automation investment is ongoing at both.",why_youre_in_demand:"Port operations require crane operators, logistics coordinators, and maintenance technicians. Automation is increasing but operators are still the backbone.",what_it_pays:"Port operatives £32kâ£45k; crane and straddle operators £40kâ£55k; HGV £35kâ£48k. Premium over standard warehouse.",hiring_now:"Both ports run continuous hiring.",source:"DP World; PoF",notes:"UK maritime-to-inland logistics anchor",key_employers:"DP World, Hutchison Ports"},{metro:"Fort Meade MD (US Cyber Command + NSA)",country:"US",state_region:"Maryland",location:"Fort Meade, MD",latitude:"39.1083",longitude:"-76.7594",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Cybersecurity",headline:"US Cyber Command and NSA. The beating heart of American cyber operations. Cleared operators only.",whats_being_built:"Fort Meade houses both US Cyber Command and the National Security Agency. This is the center of gravity for American cyber operations.",why_youre_in_demand:"The cleared cyber workforce is in national-security-level demand. If you have a TS/SCI clearance and cyber skills, you essentially cannot be unemployed.",what_it_pays:"Cleared cyber operators $110kâ$170k; TS/SCI premiums $15kâ$30k. DC-area COL high but compensation matches.",hiring_now:"Constant hiring across government and contractor roles.",source:"Fort Meade Alliance; National Defense Magazine Jun 2024; Federal News Network",notes:"Cleared cyber capital of US",key_employers:"NSA, US Cyber Command, Booz Allen Hamilton, Leidos"},{metro:"Joint Base San Antonio-Lackland TX",country:"US",state_region:"Texas",location:"San Antonio, TX",latitude:"29.3841",longitude:"-98.5818",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Cybersecurity",headline:"Where the Air Force trains its cyber operators. The pipeline starts here.",whats_being_built:"Joint Base San Antonio-Lackland is where the Air Force trains cyber warfare operators. The base anchors San Antonio's growing cyber cluster.",why_youre_in_demand:"Cyber operators leaving the military are immediately recruitable by defense contractors and agencies. The transition pipeline is well-established.",what_it_pays:"Cleared cyber roles $95kâ$145k. San Antonio COL much lower than DC or California.",hiring_now:"Defense contractor cyber roles are consistently posted.",source:"Breaking Defense Aug 2025; AFCEA May 2025",notes:"USAF cyber anchor",key_employers:"US Air Force, Booz Allen Hamilton, SAIC"},{metro:"Colorado Springs CO (Space Force + NORAD cyber)",country:"US",state_region:"Colorado",location:"Colorado Springs, CO",latitude:"38.8339",longitude:"-104.8214",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Cybersecurity",headline:"Space Force. NORAD. Peterson and Schriever bases. Cleared cyber and space operations.",whats_being_built:"Colorado Springs hosts Space Force headquarters, NORAD, and Peterson and Schriever bases. Cleared cyber and space operations roles anchor the market.",why_youre_in_demand:"Cleared space and cyber operations workforce is extremely scarce. Military veterans with relevant MOS codes are the primary pipeline.",what_it_pays:"Cleared space and cyber roles $100kâ$155k. Colorado Springs COL lower than Denver.",hiring_now:"Defense contractors and federal agencies are consistently hiring.",source:"USSF;
1 USNORTHCOM",notes:"Space-domain cyber hub",key_employers:"US Space Force, Northrop Grumman, L3Harris"},{metro:"Manchester UK (GCHQ + private SOC cluster)",country:"UK",state_region:"England (NW)",location:"Manchester, England",latitude:"53.4808",longitude:"-2.2426",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Cybersecurity",headline:"GCHQ North. Growing private security operations centre cluster. Manchester is the UK's second cyber city.",whats_being_built:"GCHQ has a Manchester presence. A growing cluster of private security operations centres is making Manchester the UK's second cyber hub after Cheltenham.",why_youre_in_demand:"Cleared cyber analysts and security operations staff are in short supply nationally. Manchester's lower cost of living versus London attracts talent.",what_it_pays:"Cyber roles £45kâ£75k; cleared positions £60kâ£95k. Above Manchester median.",hiring_now:"GCHQ and private SOC operators are hiring.",source:"GCHQ; National Cyber Force",notes:"UK northern cyber cluster",key_employers:"GCHQ, BAE Systems"},{metro:"Thames Water region (London + SE England water)",country:"UK",state_region:"England (SE + London)",location:"London, England",latitude:"51.5074",longitude:"-0.1278",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Water",headline:"£19.8 billion investment over five years. Thames Water alone needs thousands of workers. Nobody talks about water.",whats_being_built:"Thames Water's AMP8 programme is one of the largest infrastru
1cture investments in southern England. Pipe replacement, treatment plant upgrades, and network resilience work are all ramping.",why_youre_in_demand:"Water sector workforce is ageing faster than most infrastructure sectors. Pipe layers, treatment plant operators, and network technicians are in consistent demand.",what_it_pays:"Operatives £28kâ£38k; engineers £45kâ£68k; skilled trades £35kâ£52k. Strong pension and benefits.",hiring_now:"Thames Water and its contractor supply chain are actively hiring.",source:"Water Magazine May 2025; Smart Water Magazine Oct 2025; Murray McIntosh",notes:"Largest UK water utility",key_employers:"Thames Water"},{metro:"Severn Trent (Midlands water)",country:"UK",state_region:"England (West + East Midlands)",location:"Coventry, England",latitude:"52.4862",longitude:"-1.8904",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Water",headline:"Severn Trent's AMP8 programme. Multi-billion-pound infrastructure investment across the Midlands.",whats_being_built:"Severn Trent's AMP8 programme covers pipe replacement, treatment upgrades, and network resilience across the Midlands.",why_youre_in_demand:"Same ageing workforce challenge as across the UK water sector. Experience with civil engineering, pipework, or treatment plant operations translates directly.",what_it_pays:"Operatives £26kâ£36k; engineers £42kâ£62k; skilled trades £32kâ£48k.",hiring_now:"Severn Trent and contractors are hiring.",source:"Morson Jan 2025; Severn Trent careers",notes:"Veteran-friendly water anchor",key_employers:"Severn Trent"},{metro:"UK water sector (overall AMP8)",country:"UK",state_region:"England + Wales",location:"United Kingdom",latitude:"52.3555",longitude:"-1.1743",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Water",headline:"AMP8: £88 billion across the UK water sector over five years. The biggest infrastru
1cture cycle most people have never heard of.",whats_being_built:"AMP8 is the UK water regulator's investment cycle. £88 billion across all water companies over five years for pipe replacement, treatment upgrades, flood resilience, and environmental improvements.",why_youre_in_demand:"The water sector workforce is ageing and underinvested. Civil engineers, pipe layers, treatment plant operators, and environmental technicians are all needed.",what_it_pays:"Operatives £26kâ£38k; engineers £42kâ£68k; skilled trades £32kâ£52k. Very secure.",hiring_now:"All UK water companies and their contractor supply chains are hiring.",source:"CIWEM Your Future report Oct 2025; Alexander Associates; Morson",notes:"UKs largest workforce gap",key_employers:"Thames Water, Severn Trent, United Utilities, Anglian Water, Yorkshire Water, Wessex Water, South West Water, Southern Water, Northumbrian Water, Welsh Water, Affinity Water"},{metro:"US water infrastructure (national)",country:"US",state_region:"Multiple states",location:"United States",latitude:"39.8283",longitude:"-98.5795",tier:"2",certainty:"Likely",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Water",headline:"Lead pipe replacement. Treatment plant upgrades. Billions in federal funding. America's water infrastructure is being rebuilt.",whats_being_built:"The Infrastructure Investment and Jobs Act directs billions toward lead pipe replacement, treatment plant upgrades, and water system modernisation across the US.",why_youre_in_demand:"The water utility workforce is ageing. Pipe layers, water treatment operators, and utility technicians are consistently in demand across every state.",what_it_pays:"Water utility operators $25â$38/hr; treatment plant operators $55kâ$85k; union rates in many markets.",hiring_now:"Municipal water utilities and contractors are hiring nationally.",source:"US EPA; Bipartisan Infrastructure Law",notes:"US water pipeline aggregated view",key_employers:"EPA (national infra), American Water, Veolia, Suez, municipal utilities nationwide"},{metro:"Dominion Energy Virginia (utilities + grid)",country:"US",state_region:"Virginia",location:"Richmond, VA",latitude:"37.5407",longitude:"-77.4360",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Utilities",headline:"Dominion Energy is powering Northern Virginia's data center explosion. The grid needs people to build it.",whats_being_built:"Dominion Energy is expanding generation and transmission capacity to support Northern Virginia's data center corridor. Grid infrastructure investment is massive and ongoing.",why_youre_in_demand:"Linemen and grid technicians are in national shortage. Every new data center needs grid capacity, and the people who build that capacity are scarce.",what_it_pays:"Linemen $40â$58/hr with overtime; substation techs $75kâ$115k. Union rates apply.",hiring_now:"Dominion Energy and its contractors are actively hiring.",source:"Dominion Energy careers; Indeed",notes:"VA grid + veteran-friendly",key_employers:"Dominion Energy"},{metro:"US utilities grid (national linemen shortage)",country:"US",state_region:"Multiple states",location:"United States",latitude:"39.8283",longitude:"-98.5795",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Utilities",headline:"The US needs tens of thousands of new linemen. The grid is ageing. The workforce is ageing faster.",whats_being_built:"The US electrical grid requires massive investment in transmission, distribution, and modernisation. Every data center, every EV charger, and every solar farm needs grid capacity.",why_youre_in_demand:"The average lineman is over 50. Retirements are outpacing new entrants. If you can climb a pole and work high voltage, you won't be out of work for the rest of your career.",what_it_pays:"Linemen earn strong wages, typically $70K to $100K+ with overtime. Union apprenticeships are the standard pathway.",hiring_now:"Utilities and line contractors are hiring nationally. Every state.",source:"IBEW; Edison Electric Institute; Lineman Central",notes:"National US grid pattern",key_employers:"Duke Energy, Dominion, PG&E, Southern Co, Xcel, FPL, AEP (national IOUs); IBEW Linemen JATC"}
1,{metro:"Birmingham (National Grid regional hub)",country:"UK",state_region:"England (West Midlands)",location:"Birmingham, England",latitude:"52.4862",longitude:"-1.8904",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Utilities",headline:"National Grid is investing billions in the UK's electricity network. The workforce pipeline isn't keeping up.",whats_being_built:"National Grid is expanding and upgrading the UK's electricity transmission network to support net zero, data centres, and electrification. Multi-billion-pound investment over the next decade.",why_youre_in_demand:"High-voltage engineers, cable jointers, and substation technicians are in acute shortage. National Grid has regional training partnerships but the demand exceeds supply.",what_it_pays:"Linesmen £38kâ£55k; HV specialists £55kâ£85k; engineers £50kâ£78k.",hiring_now:"National Grid and its contractor partners are hiring across the UK.",source:"National Grid Dec 2024 RIIO-T3; Linxon Sep 2025; Energy Digital Aug 2025",notes:"UKs biggest grid workforce commitment ever",key_employers:"National Grid"},{metro:"Brightline West corridor (Las Vegas to Rancho Cucamonga)",country:"US",state_region:"Nevada + California",location:"Las Vegas, NV",latitude:"35.5000",longitude:"-115.5000",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Transportation",headline:"America's first true high-speed rail. Las Vegas to LA. Billions in construction. Thousands of jobs.",whats_being_built:"Brightline West is building high-speed rail from Las Vegas to Rancho Cucamonga. Billions in construction spending with thousands of construction jobs.",why_youre_in_demand:"Rail and heavy civil construction trades are in demand. This is a multi-year build in the desert, which means per diem and premium rates.",what_it_pays:"PLA prevailing wages $42â$62/hr plus $100â$150/day per-diem for travel workers.",hiring_now:"Construction contractor hiring is active.",source:"Brightline West; Newsweek Jan 2026; NDOT",notes:"First US privately-funded HSR",key_employers:"Brightline West"},{metro:"California High-Speed Rail (Central Valley)",country:"US",state_region:"California",location:"Fresno, CA",latitude:"36.7500",longitude:"-119.7500",tier:"2",certainty:"Likely",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Transportation",headline:"California's high-speed rail is under construction in the Central Valley. Slow progress, real jobs.",whats_being_built:"California High-Speed Rail is under active construction in the Central Valley. Progress has been slow and politically fraught, but the construction workforce is real and employed.",why_youre_in_demand:"Heavy civil and rail construction trades are needed. Central Valley has a smaller trades pool than coastal California.",what_it_pays:"California prevailing wages $55â$78/hr. High COL partially offset by Central Valley pricing.",hiring_now:"Construction contractor roles are active.",source:"CA HSR 2025 Project Update; Gov Newsom Jan 2025",notes:"US largest HSR public project",key_employers:"California High-Speed Rail Authority"},{metro:"UK Network Rail + East West Rail",country:"UK",state_region:"England (Oxford-Cambridge)",location:"Bedford, England",latitude:"52.0406",longitude:"-0.7594",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Transportation",headline:"Network Rail upgrades plus East West Rail. Multi-year UK rail construction pipeline.",whats_being_built:"Network Rail runs continuous upgrade and maintenance programmes across the UK network. East West Rail is a new line connecting Oxford, Milton Keynes, and Cambridge.",why_youre_in_demand:"Rail construction trades are in consistent demand. Signalling, track, and electrification specialists are particularly scarce.",what_it_pays:"Rail trades £38kâ£58k base; weekend and night work £45kâ£68k with premiums.",hiring_now:"Network Rail, East West Rail, and their contractors are hiring.",source:"Network Rail CP7; NSAR; New Civil Engineer Nov 2020",notes:"Non-HS2 UK rail pipeline",key_employers:"Network Rail, East West Rail"},{metro:"Boeing Charleston SC (commercial aerospace)",country:"US",state_region:"South Carolina",location:"North Charleston, SC",latitude:"32.7767",longitude:"-79.9311",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Commercial aerospace",headline:"Boeing builds the 787 Dreamliner here. Charleston is Boeing's non-union production anchor.",whats_being_built:"Boeing's Charleston facility builds the 787 Dreamliner. It's Boeing's primary non-union production site and a critical part of the commercial aircraft supply chain.",why_youre_in_demand:"Boeing is under pressure to increase production rates. Experienced aircraft assembly technicians are in demand.",what_it_pays:"Assemblers $25â$38/hr; A&P mechanics $32â$48/hr; engineers $85kâ$125k. Favourable SC COL.",hiring_now:"Boeing Charleston is actively hiring across production roles.",source:"Boeing Media Nov 2025; Trident Tech Dec 2025",notes:"US commercial aerospace anchor",key_employers:"Boeing"},{metro:"Puget Sound WA (commercial aerospace Boeing)",country:"US",state_region:"Washington",location:"Everett, WA",latitude:"47.4829",longitude:"-122.2171",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Commercial aerospace",headline:"Boeing's original home. 737 MAX and 777X production. The workforce is rebuilding after the strike.",whats_being_built:"Puget Sound is Boeing's headquarters for commercial aviation. 737 MAX and 777X production are the primary lines. The workforce is being rebuilt after the 2024 strike and production disruptions.",why_youre_in_demand:"Boeing lost experienced workers during the strike and production pause. They're rebuilding and need skilled assembly, quality, and maintenance technicians.",what_it_pays:"IAM union assemblers $32â$48/hr; A&P $38â$55/hr; engineers $105kâ$150k. High COL but wages reflect it.",hiring_now:"Boeing Puget Sound is actively hiring.",source:"Boeing Commercial; IAM District 751",notes:"West coast commercial aero hub",key_employers:"Boeing"},{metro:"Tulsa OK (American Airlines MRO)",country:"US",state_region:"Oklahoma",location:"Tulsa, OK",latitude:"36.1540",longitude:"-95.9928",tier:"3",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Commercial aerospace",headline:"American Airlines' largest maintenance base. The planes come here to get fixed.",whats_being_built:"Tulsa hosts American Airlines' largest maintenance, repair, and overhaul facility. It's one of the biggest airline MRO operations in the world.",why_youre_in_demand:"Aircraft maintenance technicians are in global shortage. Experienced A&P mechanics are especially valuable.",what_it_pays:"A&P mechanics $32â$48/hr; avionics techs $35â$52/hr. Low Oklahoma COL.",hiring_now:"American Airlines MRO Tulsa has consistent openings.",source:"American Airlines; Oklahoma Department of Commerce",notes:"Major US MRO hub",key_employers:"American Airlines"},{metro:"Airbus Broughton UK + Filton + BA Cardiff",country:"UK",
1state_region:"Wales + England (SW)",location:"Broughton, Wales",latitude:"53.1705",longitude:"-2.9795",tier:"3",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Commercial aerospace",headline:"Airbus wings at Broughton. BA maintenance at Cardiff. The UK's commercial aerospace corridor.",whats_being_built:"Airbus builds wings at Broughton in North Wales. British Airways runs maintenance operations at Cardiff. These sites form part of the UK's commercial aerospace manufacturing base.",why_youre_in_demand:"Aerospace manufacturing and MRO technicians are in demand as production rates increase post-pandemic.",what_it_pays:"Aerospace assemblers £32kâ£48k; composite specialists £40kâ£58k; engineers £52kâ£78k.",hiring_now:"Airbus Broughton and BA Cardiff are both hiring.",source:"Airbus UK; BA Engineering; Welsh Government",notes:"UK commercial aero anchor",key_employers:"Airbus, British Airways"},{metro:"AWS Mississippi (Madison/Hinds/Warren Counties)",country:"US",state_region:"Mississippi",location:"Madison County, MS",latitude:"32.4632",longitude:"-90.1118",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"$25 billion across Mississippi. The largest private investment in state history. And they just announced another $11 billion.",whats_being_built:"AWS has committed $25 billion to Mississippi across Madison, Hinds, and Warren Counties. $10 billion announced January 2024 in Madison County (Project Atlas, 1,000 direct jobs), $11 billion expansion announced April 2026 (700 new jobs), $3 billion in Warren County (Vicksburg, MACROHARDRR-area) announced November 2025, plus $1 billion in Clinton retrofitting the former Delphi plant.",why_youre_in_demand:"75+ Mississippi companies already engaged on construction and operations, employing thousands of construction workers, electricians, and operational staff. AccelerateMS and Holmes/Hinds Community Colleges running specialized training programs. 6,500+ learners trained so far. Pipeline still nowhere near demand.",what_it_pays:"Data center construction electricians $35-$55/hr; AWS data center technicians $65k-$95k; trained operational staff $70k-$110k. Mississippi Major Economic Impact Authority incentives include 30-year rolling tax exemption supporting wage growth.",hiring_now:"75+ contractor companies plus direct AWS roles. Construction continuous through 2026 and beyond.",source:"About Amazon Nov 2025; governorreeves.ms.gov Apr 2026; Construction Dive Jan 2024",notes:"Largest private investment in MS state history; the second 'Digital Delta' anchor",key_employers:"AWS, Amazon"},{metro:"Port Washington WI (Stargate Lighthouse - OpenAI/Oracle/Vantage)",country:"US",state_region:"Wisconsin",location:"Port Washington, WI",latitude:"43.3873",longitude:"-87.8731",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"$15 billion. 4,000 union construction jobs. The flagship Midwest Stargate site.",whats_being_built:"OpenAI, Oracle, and Vantage Data Centers' $15 billion 'Lighthouse' campus announced October 2025. 670-acre site outside Milwaukee, 4 data centers, approximately 1 gigawatt of AI capacity. Construction underway, completion 2028. Part of the OpenAI-Oracle $300 billion partnership and the broader $500 billion Stargate commitment.",why_youre_in_demand:"4,000+ skilled construction jobs at peak, most of which will be union. Vantage investing $175 million minimum in regional infrastructure (water, wastewater, power, water tower). Upper Midwest trades pool is being built up from a small base.",what_it_pays:"IBEW union construction rates with data center premium; mechanical and electrical trades $42-$65/hr; site superintendents $130k-$180k. Closed-loop liquid cooling means specialized HVAC and refrigeration techs commanding above-market rates.",hiring_now:"Construction team selected November 2025; full-scale hiring ramp in 2026. 700 long-term OpenAI/Oracle jobs and 330 Vantage permanent roles once operational.",source:"Vantage Data Centers Oct 2025; Construction Dive Oct 2025; ENR Nov 2025",notes:"Flagship Midwest Stargate site; equal in scale to Northern Virginia or Abilene",key_employers:"Vantage Data Centers, Oracle, OpenAI"},{metro:"Shackelford County TX (Stargate - Vantage/Oracle)",country:"US",state_region:"Texas",location:"Albany, TX",latitude:"32.7349",longitude:"-99.3489",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"A second Stargate megasite, right next to Abilene. 1.4 gigawatts. 10 buildings. First one opens late 2026.",whats_being_built:"1,200-acre Vantage campus with 10 data center buildings, approximately 1.4 gigawatts of capacity, powered by on-site natural gas microgrid. First building scheduled to come online late 2026; roofing visible in satellite imagery as of April 2026. Across the county line from the Abilene flagship Stargate site.",why_youre_in_demand:"This site is part of the Texas trades bidding war alongside Abilene Stargate, Samsung Taylor, Sherman TI, and DFW data centers. Same workforce pool, multiple gigawatt-scale builds happening simultaneously.",what_it_pays:"Data center construction electricians $42-$60/hr; gas microgrid specialists at premium; site superintendents $135k-$185k. Wage pressure rising as it competes directly with Abilene 50 miles away.",hiring_now:"Vantage contractor pipeline active across West Texas. Major hiring ramp through 2026.",source:"OpenAI Sep 2025; DCD Sep 2025; Epoch AI Apr 2026",notes:"Twin-site Stargate cluster with Abilene; combined dwarfs original footprint",key_employers:"Vantage, Oracle, OpenAI"},{metro:"Doña Ana County NM (Stargate / Project Jupiter)",country:"US",state_region:"New Mexico",location:"Las Cruces, NM",latitude:"32.3199",longitude:"-106.7637",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"New Mexico's first hyperscale AI site. Project Jupiter. Up to $165 billion of scheme spend.",whats_being_built:"STACK Infrastru
1cture and BorderPlex Digital Assets developing Project Jupiter, 4 large data center buildings. Confirmed as a Stargate site in September 2025. Total scheme value announced at up to $165 billion in July 2025; capacity and timeline still being detailed.",why_youre_in_demand:"New Mexico has a small trades pool. Construction workforce will be drawn from El Paso TX and across the border, plus Phoenix overflow. Bilingual trades workers especially valuable.",what_it_pays:"Cross-border construction wages $38-$55/hr; ops technicians $65k-$95k; relocation packages for skilled trades from outside the region.",hiring_now:"STACK and BorderPlex contractor pipeline scaling up.",source:"OpenAI Sep 2025; DCD Sep 2025",notes:"Project Jupiter; first NM hyperscale AI site",key_employers:"STACK Infrastructure, BorderPlex Digital Assets, Oracle, OpenAI"},{metro:"Lordstown OH (Stargate - SoftBank/Foxconn)",country:"US",state_region:"Ohio",location:"Lordstown, OH",latitude:"41.1639",longitude:"-80.8662",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers + advanced manufacturing",headline:"Foxconn meets Stargate. Northeast Ohio gets a second tech boom.",whats_being_built:"SoftBank-Foxconn joint venture at the former GM Lordstown plant. Manufacturing facility for AI servers and data center equipment, plus initial data center capacity (~0.3 GW). Existing substation from prior Foxconn EV plant gives a head start. Combined with Milam County TX targets 1.5 GW within 18 months of Sept 2025 announcement.",why_youre_in_demand:"Mahoning Valley has experienced industrial workforce from the GM plant era. Reskilling pipeline already exists. Competing with Anduril Arsenal-1 and Intel Columbus for the same Ohio trades.",what_it_pays:"Manufacturing technicians $30-$45/hr; data center electricians $42-$58/hr; engineers $85k-$130k. Union-friendly market with strong IBEW presence.",hiring_now:"Early SoftBank-Foxconn ramp; full hiring pipeline through 2026-2027.",source:"OpenAI Sep 2025; Epoch AI Apr 2026",notes:"Stargate manufacturing hub; pairs with Milam County TX",key_employers:"SoftBank, Foxconn, OpenAI"},{metro:"Milam County TX (Stargate - SoftBank)",country:"US",state_region:"Texas",location:"Rockdale, TX",latitude:"30.7869",longitude:"-96.9755",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Central Texas Stargate. SoftBank's hardware. OpenAI's workload.",whats_being_built:"Central Texas Stargate site announced September 2025. SoftBank owns hardware; serves OpenAI workloads. Combined with Lordstown OH targets 1.5 GW within 18 months. Detailed capacity and timeline being finalized.",why_youre_in_demand:"Adds to Texas trades bidding war already pulling from Abilene Stargate, Shackelford County, Samsung Taylor, and DFW data centers.",what_it_pays:"Construction electricians $40-$58/hr; ops technicians $65k-$95k.",hiring_now:"Site development ramping; contractor pipeline forming.",source:"OpenAI Sep 2025",notes:"Part of Stargate Texas cluster",key_employers:"SoftBank, OpenAI"},{metro:"Stargate Michigan (Related Digital)",country:"US",state_region:"Michigan",location:"Saline, MI",latitude:"42.7325",longitude:"-84.5555",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Michigan joins the Stargate map. 2,500 union construction jobs.",whats_being_built:"Related Digital-developed Stargate site announced October 2025. Construction expected to begin early 2026. DTE Energy serving via existing excess transmission capacity. Closed-loop cooling system. Project funds any required grid upgrades.",why_youre_in_demand:"Michigan's auto-trades pool transitioning toward data center and EV battery work. Strong UAW and building trades presence. Construction trades highly skilled and unionized.",what_it_pays:"Union construction trades $38-$58/hr; data center M&E specialists $42-$62/hr; ops technicians $70k-$110k.",hiring_now:"Related Digital contractor pipeline forming; early 2026 ramp.",source:"OpenAI Oct 2025",notes:"Stargate Michigan; 2,500+ union construction jobs",key_employers:"Related Digital, OpenAI"},{metro:"xAI Memphis TN / Southaven MS (Colossus + MACROHARDRR)",country:"US",state_region:"Tennessee/Mississippi",location:"Memphis, TN",latitude:"35.0456",longitude:"-90.0428",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"555,000 GPUs. Two gigawatts. The fastest hyperscale build ever attempted.",whats_being_built:"xAI's Colossus 1 was built in 122 days, doubled to 200,000 GPUs in 92 days more. Total at 2 GW and 555,000 GPUs as of January 2026, single largest AI training facility globally at $18 billion invested. MACROHARDRR (Southaven MS) announced January 2026 at $20 billion, 800,000+ sq ft, 2 GW, operations beginning February 2026. Largest private investment in MS state history.",why_youre_in_demand:"xAI is recruiting electricians, M&E engineers, HVAC specialists, and power infrastru
1cture trades at compressed timelines that conventional data center construction does not produce. Nvidia, Dell, and Supermicro all establishing Memphis operations off the back of xAI.",what_it_pays:"xAI roles at premium to market: data center technicians $75k-$120k; M&E engineers $85k-$140k; construction electricians $45-$70/hr. Rapid scaling means above-market sign-on bonuses.",hiring_now:"320 permanent at Memphis ramping up. Southaven adding 100 permanent plus thousands of construction trades.",source:"x.ai/memphis; Greater Memphis Chamber Jan 2026; Action News 5 Jan 2026",notes:"Two-state mega-cluster; compressed timelines unlike conventional DC builds",key_employers:"xAI, Nvidia, Dell, Supermicro"},{metro:"West Wales / Pembrokeshire (Tekever drones)",country:"UK",state_region:"Wales",location:"Pembrokeshire, Wales",latitude:"51.7128",longitude:"-4.7344",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defence (drones/UAVs)",headline:"Britain's drone-making capital. Tekever, Snowdonia, and a Defence Growth Deal designation.",whats_being_built:"Wales is one of five UK Defence Growth Deal areas under the September 2025 Defence Industrial Strategy, focused on UAV development. Tekever (Pembrokeshire) is the anchor company, supplying StormShroud and AR3/AR5 platforms to the RAF. Tekever has acquired West Wales Airport for flight test operations. The Snowdonia Aerospace Centre and the Welsh Centre for Defence Autonomy provide test infrastru
1cture and academic backing. A new Tekever factory in Swindon will scale production to 1,000 jobs from 2026.",why_youre_in_demand:"Rural West Wales has a small skilled trades pool. The drone manufacturing ramp is steep and competing with Ukrspecsystems' £200 million East Anglia drone factory for the same UK assembly workforce. If you have aerospace assembly, electronics, or test experience, you're a target.",what_it_pays:"Aerospace assembly £30k-£45k; electronics and test engineers £45k-£70k; senior engineers £65k-£90k.",hiring_now:"Tekever hiring across Pembrokeshire and Swindon; defence supply chain across Wales scaling.",source:"Defence Online Sep 2025; gov.uk Sep 2025; Defence Industrial Strategy",notes:"Wales Defence Growth Deal; UAV development cluster",key_employers:"Tekever"},{metro:"Swindon (Tekever drone factory)",country:"UK",state_region:"England",location:"Swindon, England",latitude:"51.5558",longitude:"-1.7797",tier:"2",certainty:"Coming",tier_context:"Production starts 2026.",demand_signal:"Watch",sector:"Defence (drones)",headline:"UK's largest drone factory. 1,000 highly skilled jobs. Tekever opens 2026.",whats_being_built:"Tekever (the UK's homegrown drone manufacturer) will open the country's largest drone production facility in Swindon in 2026, creating 1,000 high-skilled jobs. The site will produce the AR5 unmanned aerial system in the UK for the first time and scale up AR3 / StormShroud production for the RAF. Swindon has historical defence-aerospace ties going back to Supermarine Spitfire production. Part of the wider Wales / South West UAV ecosystem and the £140m UK Defence Innovation drone investment programme.",why_youre_in_demand:"Swindon's industrial workforce includes ex-Honda and BMW Mini workers needing redeployment. Aerospace assembly, electronics, and test capabilities translate directly into Tekever's production lines.",what_it_pays:"Aerospace assembly £30k-£45k; electronics and test engineers £45k-£70k; senior engineers £65k-£90k.",hiring_now:"Tekever ramp begins 2026; supply chain and contractor hiring already active.",source:"gov.uk Sep 2025; MoD press release",notes:"UK's largest drone factory; opens 2026",key_employers:"Tekever, RAF"},{metro:"Yeovil (Leonardo Helicopters + DTEC)",country:"UK",state_region:"England",location:"Yeovil, England",latitude:"50.9437",longitude:"-2.6371",tier:"3",certainty:"Likely",tier_context:"Defence Technical Excellence College + Leonardo workforce.",demand_signal:"Growing",sector:"Defence (rotorcraft)",headline:"Leonardo Helicopters' UK home. One of five new Defence Technical Excellence Colleges.",whats_being_built:"Yeovil hosts Leonardo Helicopters' UK headquarters and is the home of the New Medium Helicopter programme. Yeovil has been designated as one of five new Defence Technical Excellence Colleges (April 2026), backed by a share of £175m of government funding. Specialist training for the AW101, AW149, and AW159 platforms; the DTEC will broaden the regional skills pipeline.",why_youre_in_demand:"Rotorcraft is a specialist field with a small UK workforce. Leonardo is competing for the same composite and engineering trades as Airbus Broughton and BAE Warton.",what_it_pays:"Aerospace trades £35k-£52k; engineers £50k-£75k; rotorcraft specialists at premium.",hiring_now:"Leonardo recruiting across engineering, aerospace assembly, and skilled trades; DTEC partner roles ramping 2026 onward.",source:"ADS Group; gov.uk Apr 2026",notes:"Defence Technical Excellence College + Leonardo Helicopters",key_employers:"Leonardo Helicopters"},{metro:"Houston TX (Apple AI server factory + Nvidia/Foxconn)",country:"US",state_region:"Texas",location:"Houston, TX",latitude:"29.7604",longitude:"-95.3698",tier:"2",certainty:"Coming",tier_context:"Production starts 2026.",demand_signal:"Watch",sector:"Advanced manufacturing (AI hardware)",headline:"Apple's $500B US plan lands in Houston. Foxconn building AI servers. Nvidia supercomputers next door.",whats_being_built:"Apple announced a $500 billion four-year US investment in February 2025, anchored by a 250,000 sq ft AI server manufacturing facility in Houston (in partnership with Foxconn) that will produce servers for Apple Intelligence. Slated to open in 2026 and employ thousands. Nvidia is separately partnering with Foxconn on a Houston supercomputer manufacturing plant (announced April 2025) to produce Blackwell-based AI systems. Mass production at both 12-15 months from announcement. Part of Nvidia's plan to produce $500 billion of AI infrastru
1cture in the US within four years.",why_youre_in_demand:"Houston already has a deep tech and engineering workforce from energy, aerospace, and medical. AI server assembly, electronics, and skilled trades all needed. Foxconn's compressed ramp timelines mean hiring waves arrive fast.",what_it_pays:"Production technicians $25-$40/hr; electronics engineers $90k-$140k; manufacturing engineers $85k-$130k; skilled trades $40-$55/hr.",hiring_now:"Foxconn / Apple / Nvidia supply chain hiring ramping through 2026.",source:"Apple newsroom Feb 2025; Nvidia blog Apr 2025; CNBC Feb 2025",notes:"Apple Foxconn AI servers + Nvidia Foxconn supercomputers; both ramping 2026",key_employers:"Apple, Foxconn, Nvidia"},{metro:"Fort Worth TX (Wistron AI supercomputer plants)",country:"US",state_region:"Texas",location:"Fort Worth, TX",latitude:"32.7555",longitude:"-97.3308",tier:"2",certainty:"Coming",tier_context:"Production starts mid-late 2026.",demand_signal:"Watch",sector:"Advanced manufacturing (AI hardware)",headline:"Wistron's $761 million AI supercomputer plants. Building the first Nvidia supercomputers ever made in America.",whats_being_built:"Wistron is investing $761 million across two AI supercomputer manufacturing plants in Fort Worth's Alliance development (announced August 2025), partnering with Nvidia to produce Blackwell-based AI supercomputers. 766,994 sq ft facility renovation; production ramps 12-15 months from announcement. Wistron's board approved an additional $500m investment into a new US subsidiary to support this expansion. Layers on top of the existing DFW data center build-out.",why_youre_in_demand:"Fort Worth/Alliance has a strong industrial workforce from Bell Textron, Lockheed Martin, and aviation MRO. Minimum average salary for the 800+ Wistron jobs is $63,000 - well above local average. Compresses the Texas trades bidding war further.",what_it_pays:"Production roles $63k+ minimum average per Wistron filings; engineers $90k-$140k; skilled trades $40-$58/hr.",hiring_now:"Wistron contractor pipeline active; production hiring ramping mid-2026.",source:"Fort Worth Report Aug 2025; Nvidia blog Apr 2025",notes:"Nvidia AI supercomputers; layers on DFW data center cluster",key_employers:"Wistron, Nvidia"},{metro:"West Lafayette IN (SK Hynix)",country:"US",state_region:"Indiana",location:"West Lafayette, IN",latitude:"40.4259",longitude:"-86.9081",tier:"2",certainty:"Coming",tier_context:"Mass production 2028.",demand_signal:"Watch",sector:"Advanced manufacturing (semiconductors)",headline:"SK Hynix's $3.87 billion HBM packaging plant. The largest economic development in Indiana history.",whats_being_built:"SK Hynix is investing approximately $3.87 billion at the Purdue Research Park in West Lafayette to build the first US 2.5D advanced semiconductor packaging plant. The facility will mass-produce next-generation HBM (high-bandwidth memory) chips - critical to AI accelerators - in partnership with Purdue University and Ivy Tech Community College. Backed by up to $458 million in CHIPS Act direct funding. Construction underway, equipment installation 2027, mass production second half of 2028. The facility will create 1,000+ new jobs.",why_youre_in_demand:"Indiana's semiconductor workforce is being built from a small base. Purdue and Ivy Tech are scaling training and curriculum specifically for this project. Cleanroom technicians, semiconductor engineers, and packaging specialists all in early demand.",what_it_pays:"Cleanroom technicians $75k-$110k; advanced packaging engineers $95k-$145k; construction trades $35-$58/hr.",hiring_now:"Construction trades ramp through 2026-2027; production hiring 2027 onwards.",source:"NIST CHIPS; SK Hynix Apr 2024; DCD Jan 2026; Purdue Engineering",notes:"First US 2.5D packaging plant; HBM for AI accelerators",key_employers:"SK Hynix"},{metro:"Essex Junction VT (GlobalFoundries)",country:"US",state_region:"Vermont",location:"Essex Junction, VT",latitude:"44.4906",longitude:"-73.1107",tier:"3",certainty:"Coming",tier_context:"Modernization underway; mass production scaling.",demand_signal:"Growing",sector:"Advanced manufacturing (semiconductors)",headline:"America's first high-volume gallium nitride fab. GlobalFoundries' $16 billion US push includes Vermont.",whats_being_built:"GlobalFoundries' Essex Junction fab is the US's first and largest Trusted 200mm semiconductor facility. The site is part of GF's $16 billion US investment (announced June 2025, building on a 2024 $13 billion plan + $3 billion R&D addition), which spans Vermont and the Malta NY campus. Vermont fab is being modernized as the first US facility for high-volume gallium nitride (GaN) semiconductors used in EVs, power grids, data centers, and 5G/6G. ~1,800 employees today. Backed by $125 million CHIPS Act direct funding + additional CHIPS support.",why_youre_in_demand:"Vermont's industrial workforce is small and tight; GF is the state's largest tech employer. GaN production requires specialized cleanroom and process engineering skills.",what_it_pays:"Cleanroom technicians $70k-$105k; process engineers $90k-$140k; skilled trades $38-$55/hr.",hiring_now:"GlobalFoundries actively recruiting across the Essex Junction site; consistent hiring through modernization.",source:"GlobalFoundries Jun 2025; NIST CHIPS Nov 2024; Vermont Business Magazine",notes:"First US high-volume GaN fab; paired with Malta NY Fab 8 in GF's $16B two-state expansion",key_employers:"GlobalFoundries"}
1,{metro:"Lincoln + Newark (Lincoln College DTEC)",country:"UK",state_region:"England (East Midlands)",location:"Lincoln, England",latitude:"53.2307",longitude:"-0.5406",tier:"3",certainty:"Coming",tier_context:"DTEC launches 2026. RAF + Babcock + Rheinmetall pipeline.",demand_signal:"Watch",sector:"Defence (aerospace + advanced manufacturing)",headline:"The East and West Midlands DTEC. Lincoln College plus the Air and Space Institute at Newark. RAF Cranwell next door.",whats_being_built:"Lincoln College is one of five Defence Technical Excellence Colleges announced April 2026, leading a joint East/West Midlands bid. Hub-and-spoke delivery includes the Air and Space Institute at Newark-on-Trent and Telford College (Babcock partnership at MoD Donnington). Long-standing partnerships with RAF Cranwell, BAE Systems, and Babcock. Curriculum focus: aerospace engineering, digital defence, advanced manufacturing. Rheinmetall announced a new Telford gun-barrel facility in May 2025; RBSL also operates in Telford.",why_youre_in_demand:"The East Midlands defence supply chain is dispersed and the workforce pipeline is fragmented. The DTEC is being set up specifically to scale and standardise training. If you have RAF, Babcock, or aerospace MRO experience, you're a natural fit for the spoke training centres.",what_it_pays:"Aerospace trades £35k-£52k; cleared engineers £50k-£75k; Babcock-aligned skilled trades £38k-£58k.",hiring_now:"Babcock, Rheinmetall, RBSL hiring across Midlands; DTEC partner roles ramping 2026 onward.",source:"Lincoln College Apr 2026; gov.uk Apr 2026; Shropshire Live",notes:"East/West Midlands DTEC hub; RAF Cranwell + Air and Space Institute",key_employers:"Babcock, RAF, BAE Systems, Rheinmetall, RBSL"},{metro:"Blackpool / Fylde (Blackpool & Fylde College DTEC)",country:"UK",state_region:"England (NW)",location:"Blackpool, England",latitude:"53.8175",longitude:"-3.0357",tier:"3",certainty:"Coming",tier_context:"DTEC launches 2026. Talent pipeline for BAE Warton + Barrow.",demand_signal:"Watch",sector:"Defence (aerospace + naval)",headline:"£10 million DTEC investment. The talent pipeline for BAE Warton, Samlesbury, and Barrow submarines.",whats_being_built:"Blackpool & The Fylde College is one of five Defence Technical Excellence Colleges (April 2026), receiving £10 million of the £50 million programme. Multi-year BAE Systems partnership (13+ years) delivering Higher Apprenticeships, Foundation Degrees, and BEng (Hons) in Aerospace Engineering. The college is the primary talent pipeline feeding BAE Warton (Typhoon, F-35 components, GCAP Tempest), Samlesbury, and Barrow submarine programmes. Aerospace cluster includes Magellan Aerospace, Force Technology, Rolls-Royce supply chain, Thyssenkrupp Aerospace, Collins Aerospace. University of Lancashire's 'Altitude' facility nearby for air and space technology research.",why_youre_in_demand:"The NW aerospace workforce is competing for the same people across Warton, Samlesbury, Barrow, and Manchester. Blackpool's labour costs are some of the lowest in the country for aerospace/engineering, but BAE Systems is consistently bidding wages up. If you're in the trade, every NW defence prime wants you.",what_it_pays:"Aerospace trades £35k-£55k; cleared engineers £50k-£82k; BAE-pathway apprentices ramp through Level 4-6.",hiring_now:"BAE Systems Lancashire intakes February and March each year; Magellan, Force Technology, Collins Aerospace continuously recruiting.",source:"Blackpool Gazette Apr 2026; CollabGroup; BAE Systems Higher Apprenticeships",notes:"NW aerospace DTEC; talent pipeline for BAE Warton + Barrow",key_employers:"BAE Systems, Magellan Aerospace, Force Technology, Collins Aerospace"},{metro:"Rotherham (RNN Group DTEC + AMRC)",country:"UK",state_region:"England (Yorkshire)",location:"Rotherham, England",latitude:"53.4326",longitude:"-1.3635",tier:"3",certainty:"Coming",tier_context:"DTEC launches 2026. AMRC + South Yorkshire Defence Growth Deal.",demand_signal:"Watch",sector:"Defence (advanced manufacturing R&D)",headline:"South Yorkshire's defence R&D engine. RNN Group runs the DTEC. AMRC runs the Factory of the Future.",whats_being_built:"RNN Group (Rotherham College, North Notts College, Dearne Valley College, University Centre Rotherham) is one of five Defence Technical Excellence Colleges (April 2026). Tied to South Yorkshire's £50 million Defence Growth Deal under the September 2025 Defence Industrial Strategy. Sits alongside the University of Sheffield AMRC 'Factory of the Future' in Rotherham - the UK's flagship advanced manufacturing R&D centre working with Rolls-Royce, BAE Systems, Airbus, Messier
1-Bugatti-Dowty, and 200+ companies. AMRC Training Centre runs apprenticeships for Sheffield City Region employers.",why_youre_in_demand:"Sheffield/Rotherham is the UK's densest defence advanced-manufacturing R&D cluster. Pairs naturally with the Sheffield Forgemasters recapitalisation across the city. AMRC apprenticeships place into 200+ regional employers including Sheffield Forgemasters itself.",what_it_pays:"Advanced manufacturing technicians £35k-£55k; R&D engineers £50k-£80k; AMRC apprenticeships pay competitively with industry placements.",hiring_now:"AMRC Training Centre 2027 apprenticeship applications open later 2026; Forgemasters and Sheffield supply chain recruiting continuously.",source:"Defence Online Apr 2026; AMRC; University of Sheffield; gov.uk",notes:"Pairs with Sheffield Forgemasters row + South Yorkshire Defence Growth Deal",key_employers:"Rolls-Royce, BAE Systems, Airbus, Sheffield Forgemasters (via AMRC)"},{metro:"Montgomery County MO (AWS + Google New Florence)",country:"US",state_region:"Missouri",location:"New Florence, MO",latitude:"38.9095",longitude:"-91.4468",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Amazon and Google picked the same rural Missouri town, 26 days apart.",whats_being_built:"Amazon is putting $10bn into a 1,000-acre campus near New Florence, with site work already started. Google announced a $15bn Missouri investment 26 days earlier, including a data center in the same small town. Over 400 permanent jobs plus thousands in construction.",why_youre_in_demand:"Two hyperscalers building in the same rural county at once. The whole area employs 280 pipefitters and 410 HVAC mechanics. The math doesn't work without bringing people in.",what_it_pays:"Power-line installers average $83,770 with a median of $90,680, the best-paid trade here. Pipefitters average $65,060, top ten percent above $101,850.",hiring_now:"Google is training 2,300 laborers and 1,500 apprentices through the training center in New Florence.",source:"About Amazon (15 Jun 2026); Data Center Knowledge (17 Jun 2026); Site Selection Magazine (Aug 2026); FOX 2 St. Louis (16 Jun 2026); BLS OES May 2025 nonmetro estimates",notes:"Two committed hyperscalers in one rural county. Ameren Missouri utility agreement in place and site work began April 2026.",key_employers:"Amazon Web Services, Google, Nebius, Ameren Missouri"},{metro:"Kansas City metro / De Soto KS (Digital Realty + Google)",country:"US",state_region:"Kansas",location:"De Soto, KS",latitude:"38.9791",longitude:"-94.9682",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Millwrights here work at over twice the national rate. Digital Realty just contracted 600 megawatts.",whats_being_built:"Digital Realty bought 1,440 acres and contracted 600 megawatts with Evergy by early 2028, rising to 2 gigawatts. Phase one is nine buildings across 280 acres plus an on-site substation. Google is developing a second campus on 500 acres in the Northland.",why_youre_in_demand:"Millwrights here work at 2.25 times the national rate and sheet metal at 1.28. The trades a data center needs are already established, which means real halls, real contractors and real apprenticeships.",what_it_pays:"Power-line installers average $94,560 with a $101,740 median. Pipefitters average $79,030 and electricians $77,660.",hiring_now:"IBEW Local 124 runs referral and apprenticeship. The substation work starts first.",source:"Data Center Dynamics (22 Jun 2026); Commercial Property Executive (25 Jun 2026); Baltel Project Mica record (Aug 2026); BLS OES May 2025 metro estimates",notes:"Site sits in Johnson County, Kansas, within the Kansas City metro, so the state differs from the metro name. Confirm which union local holds that jurisdiction. Coordinates are the town of De Soto rather than the parcel.",key_employers:"Digital Realty, Google, Evergy"},{metro:"Sacramento CA (Prime Data Centers McClellan Park)",country:"US",state_region:"California",location:"North Highlands, CA",latitude:"38.6663",longitude:"-121.3996",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Power-line installer
1s here average $121,600. This one project is small, but the market is not.",whats_being_built:"Prime Data Centers broke ground on SMF02 in May 2026, 150,000 sq ft and 18 megawatts at McClellan Business Park. The campus now runs to 26 megawatts across 215,000 sq ft, with more phases approved on the 38-acre site.",why_youre_in_demand:"Sacramento electricians are employed at 1.21 times the national rate and paid well above national average, so demand already outstrips supply. Prime is filling the gap for companies wanting high-density compute outside the Bay Area.",what_it_pays:"Power-line installers average $121,600 with a $127,160 median, the highest-paid trade in the metro. Electricians average $79,870, top ten percent above $130,020.",hiring_now:"Clune Construction is the general contractor. IBEW Local 340 runs the apprenticeship.",source:"Prime Data Centers (7 May 2026); Data Center Dynamics (8 Jun 2026); Business Wire (7 May 2026); BLS OES May 2025 metro estimates",notes:"SMF02 is 250 construction and 30 permanent roles; the metro's trades pay is the wider draw. Campus is in unincorporated Sacramento County, marketed as Sacramento.",key_employers:"Prime Data Centers, Clune Construction, SMUD"},{metro:"La Porte IN (Microsoft Radius Industrial Park)",country:"US",state_region:"Indiana",location:"La Porte, IN",latitude:"41.6106",longitude:"-86.7228",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Microsoft is building six buildings on 489 acres. The whole metro employs 130 electricians.",whats_being_built:"Microsoft broke ground in June 2026 on six buildings across 489 acres at Radius Industrial Park. Phase one alone is expected to create more than 600 permanent jobs on top of the construction, and a Datacenter Academy with Ivy Tech comes with it.",why_youre_in_demand:"The entire metro employs 130 electricians, 90 pipefitters and 90 HVAC mechanics. Brad Smith said at the groundbreaking that Microsoft is committed to filling these jobs from local communities. There's almost nobody here to do the work.",what_it_pays:"Construction equipment operators average $84,420 with a $98,120 median, the best-paid trade here. Sheet metal workers average $82,370 and pipefitters $77,450.",hiring_now:"Ground is broken and the trades work is live now. Start with the La Porte County building trades locals.",source:"Microsoft Local (23 Jun 2026); Data Center Dynamics (18 Jun 2026); Ivy Tech Community College (17 Jun 2026); ABC57 (Jun 2026); BLS OES May 2025 metro estimates",notes:"Construction headcount reported as both 300-400 and thousands. The Ivy Tech academy serves students from 2027-28, so it is a schools pipeline; adults should approach the La Porte County building trades locals directly.",key_employers:"Microsoft, Ivy Tech Community College"},{metro:"El Paso TX (Meta 1GW campus)",country:"US",state_region:"Texas",location:"El Paso, TX",latitude:"31.7619",longitude:"-106.4850",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Data centers",headline:"Meta went from needing 1,800 construction workers to over 4,000. The metro has 1,380 electricians.",whats_being_built:"Meta raised its El Paso investment from $1.5bn to more than $10bn in March 2026, targeting 1 gigawatt by 2028. Its construction crew requirement went from 1,800 to over 4,000 in the same revision. Ground broke in October 2025.",why_youre_in_demand:"The requirement more than doubled inside a year in a metro that employs 1,380 electricians in total. Meta has committed to working with local trade partners and put $500,000 into workforce development with El Paso schools.",what_it_pays:"Power-line installers average $78,970. Electricians average $52,140 and pipefitters $56,270, so a megaproject drawing travelling trades pays well above local scale.",hiring_now:"JE Dunn and Hensel Phelps are the general contractors. IBEW Local 583 runs a five-year apprenticeship.",source:"Data Center Dynamics (18 Jun 2026); CNBC (26 Mar 2026); ConstructConnect (20 Oct 2025); City of El Paso data centres page (Aug 2026); BLS OES May 2025 metro estimates",notes:"Local pay baseline sits below the national average, so the case here is volume of work rather than rate. Investment revised up more than sixfold inside a year. Coordinates are the city rather than the parcel west of Highway 54.",key_employers:"Meta, JE Dunn, Hensel Phelps"},{metro:"Philadelphia PA (Navy Yard shipbuilding cluster)",country:"US",state_region:"Pennsylvania",location:"Philadelphia, PA",latitude:"39.8892",longitude:"-75.1685",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Defense (shipbuilding)",headline:"Two shipyards on one site, $4bn of submarine work booked to 2035, and both want welders.",whats_being_built:"Rhoads Industries and General Dynamics Electric Boat hold a ten-year, $2.5bn submarine agreement carrying 1,350 jobs through 2035. Hanwha Philly Shipyard won $1.5bn of vessel orders supporting 2,000+ jobs. Rhoads is building a 95,000 sq ft facility adding 450 more.",why_youre_in_demand:"Both companies say they expect to double employment in the next few years. Rhoads employs 700 building submarine decks and sections, Hanwha around 2,000. This is permanent industrial work tied to programmes running to 2035.",what_it_pays:"Hanwha says its union workers average $34/hr, with overtime taking the top jobs past $100K. Ironworkers across the metro average $92,840 and pipefitters $83,660.",hiring_now:"Hanwha runs a 14-week welder training programme through the Navy Yard. Applications go in rounds.",source:"Philadelphia Inquirer (1 Apr 2026); Billy Penn (15 Jul 2026); Navy Yard welder training programme (Jul 2026); WITF; BLS OES May 2025 metro estimates",notes:"Strongest US defense entry in this batch: signed contracts, an employer-stated wage, a named training route and permanent rather than temporary work. Hanwha's welder program carries a Philadelphia residency requirement, so flag that to anyone who would relocate.",key_employers:"Hanwha Philly Shipyard, Rhoads Industries, General Dynamics Electric Boat"},{metro:"York PA (Kratos Defense)",country:"US",state_region:"Pennsylvania",location:"York, PA",latitude:"39.9626",longitude:"-76.7277",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (missiles + radar)",headline:"A new plant building air defense and counter-drone hardware, in a town already full of machinists.",whats_being_built:"Kratos opened a 167,000 sq ft plant in York in July 2026 and is adding over $7m of new manufacturing equipment. It builds hardware for air defense, missile, radar, hypersonic and counter-drone programs, including directed energy weapons and mobile launchers.",why_youre_in_demand:"Structural metal fabricators here work at 2.56 times the national rate, industrial machinery mechanics at 2.16 and machinists at 1.6. York is already a manufacturing town, so the supplier base and the apprenticeships are in place.",what_it_pays:"Pipef
1itters average $81,300 and the top ten percent clear $147,310, the widest top-end spread in the metro. Construction supervisors average $86,620.",hiring_now:"New equipment is going in now, so machine operators and setup technicians are the near-term need.",source:"Kratos Defense (15 Jul 2026); Defence Industry Europe (Jul 2026); BLS OES May 2025 metro estimates",notes:"The 440+ employee figure that circulates covers all three Kratos Pennsylvania facilities combined, not the York plant alone.",key_employers:"Kratos Defense"},{metro:"Brownsville TX (Saronic Port Alpha)",country:"US",state_region:"Texas",location:"Brownsville, TX",latitude:"25.9530",longitude:"-97.4160",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defense (autonomous vessels)",headline:"A $3.2bn robot shipyard, and Texas is paying veterans a bonus to go and build it.",whats_being_built:"Saronic is building Port Alpha, a $3.2bn shipyard on 835 acres at the Port of Brownsville, with up to 10,000 jobs at full build-out. Construction starts in 2026 and the yard opens in 2028, backed by an $80m Texas Enterprise Fund grant.",why_youre_in_demand:"Structural fabricators here already work at 2.61 times the national rate, a legacy of ship-breaking and SpaceX at Starbase. Texas attached a $78,000 Veteran Created Job Bonus to the package, so this one is built for people leaving the military.",what_it_pays:"The state projects roughly $750m in annual wages across 10,000 jobs, about $75,000 a head. Local welders currently average $48,680, so the uplift here is the biggest on the map.",hiring_now:"Texas State Technical College and Texas Southmost College run the welding and industrial maintenance programs.",source:"Office of the Texas Governor (Jul 2026); Defense News (17 Jul 2026); Naval News (Jul 2026); Rio Grande Guardian (Jul 2026); BLS OES May 2025 metro estimates",notes:"Two-year horizon: announced July 2026, ground not yet broken, no contractor named, and the 10,000 jobs are a ten-year full-build-out projection. The state package includes a $78,000 Veteran Created Job Bonus, which is worth surfacing to this audience.",key_employers:"Saronic Technologies"},{metro:"Troy AL (Lockheed Martin Building 47)",country:"US",state_region:"Alabama",location:"Troy, AL",latitude:"31.8088",longitude:"-85.9700",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (missiles)",headline:"Lockheed is quadrupling THAAD production. Troy has 400 welders.",whats_being_built:"Lockheed broke ground in May 2026 on Building 47, an 87,000 sq ft munitions production center for THAAD and the Next Generation Interceptor that nearly doubles Troy's production space. It sits inside a $9bn plan through 2030 across more than 20 facilities.",why_youre_in_demand:"Lockheed holds a contract action worth up to $35bn to quadruple THAAD production. Troy has 640 industrial machinery mechanics and 400 welders in the whole area, against a company already employing almost 4,000 people across Alabama.",what_it_pays:"Machinists average $62,560, the best-paid production trade here. Power-line installers average $70,680 and work at 3.56 times the national rate.",hiring_now:"Apply through Lockheed Martin's Troy Operations page. They recruit only through their own team.",source:"Lockheed Martin (21 May 2026); Lockheed Martin Troy careers page (Aug 2026); The Daily Record; StockTitan; BLS OES May 2025 nonmetro estimates",notes:"No published headcount or wage for Building 47, so pay figures are area-wide. Lockheed recruits only through its own talent acquisition team and warns that third parties phoning or emailing about jobs are fraudulent.",key_employers:"Lockheed Martin"},{metro:"Camden AR (Lockheed + General Dynamics rocket motors)",country:"US",state_region:"Arkansas",location:"Camden, AR",latitude:"33.5845",longitude:"-92.8343",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (munitions)",headline:"Millwrights here work at nearly seven times the national rate. There are 210 of them.",whats_being_built:"Lockheed broke ground in January 2026 on a Munitions Acceleration Center built to train the workforce for THAAD, PAC-3 and other systems using robotics and digital tooling. The wider rocket motor complex runs to 16 facilities across 270 acres with General Dynamics.",why_youre_in_demand:"Millwrights here work at 6.87 times the national rate and industrial machinery mechanics at 3.26. Lockheed is going from 96 THAAD interceptors a year to 400. That doesn't come out of a pool of 210 millwrights.",what_it_pays:"Power-line installer
1s average $83,130. Millwrights average $67,540 and industrial machinery mechanics $67,300, with top earners above $95,000.",hiring_now:"The Munitions Acceleration Center is the training route in. Apply through Lockheed Martin.",source:"Lockheed Martin via Barchart (29 Jan 2026); Lockheed Martin (21 May 2026); Design & Development Today; BLS OES May 2025 nonmetro estimates",notes:"Clearest training-to-employment route in this batch. The THAAD framework agreement still needs an initial contract award tied to final FY2026 appropriations, so the production ramp is not yet fully funded.",key_employers:"Lockheed Martin, General Dynamics Ordnance and Tactical Systems"},{metro:"Cincinnati / Evendale OH (General Tool naval power)",country:"US",state_region:"Ohio",location:"Evendale, OH",latitude:"39.2570",longitude:"-84.4630",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (naval power generation)",headline:"47 jobs at about $87,000 a head. Local machinists average $57,360.",whats_being_built:"General Tool's 56,000 sq ft Naval Power Generation Facility opened in May 2026, adding 47 jobs and $4.1m of payroll. It is the exclusive partner for the Rolls-Royce generator set that powers Flight III Arleigh Burke destroyers, three to a ship.",why_youre_in_demand:"The expansion takes output from two ships a year to three. Cincinnati is a machining town, with industrial machinery mechanics at 1.66 times the national rate and the AeroHub sitting next door to GE Aerospace.",what_it_pays:"The 47 posts average about $87,000. Aircraft mechanics across the metro average $89,580 and industrial machinery mechanics $70,140.",hiring_now:"Apply direct to General Tool Company at the Evendale AeroHub.",source:"General Tool Company via PR Newswire (29 May 2026); Area Development (5 Jun 2026); Interesting Engineering (1 Jun 2026); BLS OES May 2025 metro estimates",notes:"47 posts, which may already be filled. Included as a signal that the Cincinnati aerospace supply chain is expanding around GE Aerospace.",key_employers:"General Tool Company, Rolls-Royce, GE Aerospace"},{metro:"Mesa AZ (Boeing Apache + Phantom Works)",country:"US",state_region:"Arizona",location:"Mesa, AZ",latitude:"33.4658",longitude:"-111.7373",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Defense (aerospace)",headline:"A two-week boot camp gets you into Apache production. Phantom Works is on the same campus.",whats_being_built:"Boeing has built military helicopters in Mesa for over four decades, and the campus is home to AH-64 Apache production with 2,862 delivered. In November 2025 it won a $4.7bn Apache contract plus a $2.7bn support award. Boeing employs 4,500+ across Arizona.",why_youre_in_demand:"The backlog is the reason to look here. Aircraft mechanics work at 1.81 times the national rate, and the Apache line feeds Boeing's Phantom Works composites facility on the same campus. That one needs a clearance, which you may already have.",what_it_pays:"Aircraft structure assemblers average $75,000 with a $79,850 median. Aircraft mechanics average $79,630.",hiring_now:"Maricopa Community Colleges runs two-week Boeing boot camps for people with no background at all.",source:"KTAR (Jul 2026); East Valley Tribune (Jul 2026); Connect CRE (Jul 2026); Mesa Tribune (Aug 2023); Boeing Arizona careers page (Aug 2026); BLS OES May 2025 metro estimates",notes:"The fabrication center was still in Mesa planning review as of July 2026, so its 260 jobs are not yet committed. The route worth surfacing to service leavers is the no-experience boot camp into Apache production and the clearance-gated Phantom Works composites facility on the same campus.",key_employers:"Boeing, Maricopa Community Colleges"},{metro:"Hopedale MA (Maersk Boston fulfillment hub)",country:"US",state_region:"Massachusetts",location:"Hopedale, MA",latitude:"42.1290",longitude:"-71.5350",tier:"1",certainty:"Happening now",tier_context:"Peak demand. Apply today.",demand_signal:"Go now",sector:"Logistics",headline:"Opens late August 2026 and hiring is already open. One of the few you can act on this week.",whats_being_built:"Maersk is putting $100m into a 617,000 sq ft fulfillment hub at 75 Plain Street, opening late August 2026 with close to 1,000 permanent jobs. The site runs conveyor and sortation systems at up to 330,000 units a day.",why_youre_in_demand:"Automation at that throughput needs maintenance cover on every shift, and the Worcester area has 770 industrial machinery mechanics in total. Hiring is already open across operations and support.",what_it_pays:"Industrial machinery mechanics average $72,020 with a top decile of $95,440. Supervisors average $69,040.",hiring_now:"Hiring is open now through Maersk's careers site, ahead of the late August start.",source:"Maersk (15 Jul 2026); Logistics Management (Jul 2026); Franklin Observer (Jul 2026); BLS OES May 2025 metro estimates",notes:"Hiring live now. The facility serves a single large-scale e-commerce customer Maersk has not named, so the staffing model rests on one contract. Maintenance technician roles are the ones worth targeting.",key_employers:"Maersk"},{metro:"McDonough GA (Highline Warren logistics center)",country:"US",state_region:"Georgia",location:"McDonough, GA",latitude:"33.4473",longitude:"-84.1469",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Logistics",headline:"160 jobs in an existing 1.1 million sq ft building. Aim for maintenance, not the floor.",whats_being_built:"Highline Warren is putting $170m into a logistics and operations center at 830 Highway 42 South, more than 1.1 million sq ft, with 160 jobs. Operations start late 2026 and the site will reach roughly 95 percent of the US population.",why_youre_in_demand:"Henry County is a distribution corridor, with industrial truck operators at twice the national rate. The scarce roles are the ones that keep an automated site running, and those are the ones to go for.",what_it_pays:"Industrial machinery mechanics average $65,780 with a top decile of $88,910. Transport supervisors average $67,430.",hiring_now:"Hiring starts late 2026 at highlinewarren.com/job-openings.",source:"Georgia Department of Economic Development (14 Jul 2026); Office of Governor Brian Kemp (14 Jul 2026); Henry County GA (Jul 2026); Pulse 2.0 (Jul 2026); BLS OES May 2025 metro estimates",notes:"Job count quoted as 160 by the state and nearly 200 by the Henry County chair, so 160 is the conservative figure. Highline Warren has published no wage.",key_employers:"Highline Warren"},{metro:"Salisbury NC (American Eagle Outfitters distribution hub)",country:"US",state_region:"North Carolina",location:"Salisbury, NC",latitude:"35.6704",longitude:"-80.4742",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Logistics",headline:"70 skilled posts averaging $57,351. That is the contractual floor, not the 200-job headline.",whats_being_built:"American Eagle Outfitters is putting $41m into a 472,890 sq ft distribution hub at 1415 Peeler Road, opening early 2027. About 70 of the roles are skilled positions covering management, maintenance and operations.",why_youre_in_demand:"The draw is 150 million consumers within a day's drive. Rowan County has plenty of warehouse labour, so the leverage is in the maintenance and automation skills those 70 roles need.",what_it_pays:"The 70 skilled positions average $57,351, in line with Rowan County's average wage. Industrial machinery mechanics across the metro average $66,620.",hiring_now:"Rowan-Cabarrus Community College is a named partner and the route into the skilled roles.",source:"Office of Governor Josh Stein (17 Jul 2026); NC Department of Commerce (17 Jul 2026); Area Development (20 Jul 2026); WLOS; BLS OES May 2025 metro estimates",notes:"The $150,000 One North Carolina Fund grant is performance-based and AEO must create 70 jobs to receive any payment, so 70 is the contractual floor while 200+ is the company projection. Warehouse floor pay is well below the $57,351 headline.",key_employers:"American Eagle Outfitters, Rowan-Cabarrus Community College"},{metro:"Baltimore MD (Frederick Douglass Tunnel)",country:"US",state_region:"Maryland",location:"Baltimore, MD",latitude:"39.2905",longitude:"-76.6540",t
1ier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Transportation",headline:"A decade of union tunnel work under a project labor agreement. That is a career, not a job.",whats_being_built:"The $5.9bn Frederick Douglass Tunnel replaces a 150-year-old crossing. Major construction began in 2023, tunnel boring machines start in 2028 and full completion runs to 2035. On-site headcount starts around 300 and peaks near 1,000.",why_youre_in_demand:"Amtrak has put $5m into a Baltimore Workforce Hub inside over $50m of community benefits, and most of these roles need no degree. Tunnel boring alone runs from 2028 into the early 2030s.",what_it_pays:"Power-line installers average $97,060 with a $107,170 median. Electricians average $72,790 with a top decile of $113,090.",hiring_now:"Kiewit and J.F. Shea hold the main contract. The Construction Trades Workforce Initiative feeds this project.",source:"Maryland Department of Commerce (Apr 2025); Office of Governor Wes Moore (May 2026); Railway News (17 May 2026); BLS OES May 2025 metro estimates",notes:"The 30,000 jobs and 20,000 construction jobs quoted by the White House are program-wide economic-impact projections, not on-site headcount. The PLA carries local hire goals and Amtrak has partnered with the Baltimore Mayor's Office of Employment Development, so someone relocating competes against a stated local preference. Coordinates are approximate to West Baltimore, not the portal.",key_employers:"Amtrak, Kiewit, J.F. Shea"},{metro:"Albuquerque NM (Securin)",country:"US",state_region:"New Mexico",location:"Albuquerque, NM",latitude:"35.1372",longitude:"-106.6303",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Cybersecurity",headline:"A homegrown cyber firm is tripling in size, next door to the national labs.",whats_being_built:"Securin is adding 93 jobs and moving from a 3,000 sq ft office to a 13,000 sq ft building in the North Valley, more than tripling from 37 employees. The work is adversarial security testing and AI-driven threat analysis.",why_youre_in_demand:"Albuquerque is a real cyber cluster, with information security analysts employed at 2.5 times the national rate off the back of the national laboratories. Securin's chief executive trained in the labs at New Mexico Tech.",what_it_pays:"The 93 new roles average about $71,000. Experienced information security analysts here average $142,700.",hiring_now:"Apply direct to Securin. New Mexico Tech and UNM are the named talent pipelines.",source:"New Mexico Economic Development Department (13 Jul 2026); Albuquerque Regional Economic Alliance (13 Jul 2026); KRQE (Jul 2026); Area Development (15 Jul 2026); BLS OES May 2025 metro estimates",notes:"Securin is tripling headcount from a base of 37. The North Valley building address is not published, so the pin is approximate to the district.",key_employers:"Securin"},{metro:"Leeds / Skelton Grange (Microsoft)",country:"UK",state_region:"England (Yorkshire)",location:"Leeds, England",latitude:"53.7635",longitude:"-1.4885",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"Three data halls of 424,000 sq ft each, ten minutes from the city centre. Construction starts 2027.",whats_being_built:"Leeds City Council approved Microsoft's plan in April 2026 to turn the former Skelton Grange power station into three data centre buildings of roughly 424,000 sq ft each, plus a substation. Construction starts early 2027 and supports around 740 jobs across six years.",why_youre_in_demand:"CITB puts the UK short of 225,000 construction workers by 2028, with another 104,000 electricians needed by 2032. Microsoft has a second Yorkshire scheme at Eggborough, so the region is about to compete with itself for the same trades.",what_it_pays:"Data centre and specialist facility work runs £28 to £35 an hour PAYE, roughly £54,600 to £68,250 before overtime. The JIB Technician rate is £22.45.",hiring_now:"Get your ECS Gold Card in place now: NVQ Level 3 plus AM2.",source:"C
1onstruction Enquirer (27 Apr 2026); Industrialised Construction (5 May 2026); Insider Media (17 Apr 2026); Data Center Dynamics (18 Jun 2026); JIB national electrical rates (5 Jan 2026)",notes:"Operational jobs figure inconsistent: the campus is credited with more than 350 roles while the detailed planning assessment puts it at 163 net full time equivalents. Buildings are about 424,000 sq ft each, not the 500,000 first reported. No main contractor named.",key_employers:"Microsoft, Harworth Group"},{metro:"Cambois / Blyth (QTS + Blackstone)",country:"UK",state_region:"England (NE)",location:"Cambois, England",latitude:"55.1548",longitude:"-1.5340",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"They had to commit to the training before they got the planning permission.",whats_being_built:"QTS and Blackstone are building a £10bn campus on the former Blyth Power Station site, up to ten data halls across 540,000 square metres scaling to 720MW. Enabling works are underway. 1,200 long-term construction jobs, 400 permanent roles and up to 2,700 indirect.",why_youre_in_demand:"This is the first UK data centre build granted National Skills Academy for Construction status by CITB, so the training targets are written into the planning consent. Blackstone has put £110m into a council skills and transport fund.",what_it_pays:"Data centre work runs £28 to £35 an hour PAYE, roughly £54,600 to £68,250. With travel and lodging on infrastructure of this scale, gross earnings approach £75,000.",hiring_now:"Ask Northumberland County Council for the QTS skills coordinator. That job exists because the consent created it.",source:"Northumberland County Council (2025); Construction News (27 Aug 2025); Construction Enquirer (26 Aug 2025); Silicon UK (4 Dec 2025); CITB; JIB national electrical rates (5 Jan 2026)",notes:"Clearest UK entry in this batch. First new-build UK data centre granted National Skills Academy for Construction status by CITB, which ties the build to formal workforce development targets and created a named employment and skills coordinator role. No main contractor named yet.",key_employers:"QTS, Blackstone, Cundall, Arcadis"},{metro:"Hertfordshire / South Mimms (Equinix)",country:"UK",state_region:"England (East)",location:"South Mimms, England",latitude:"51.7085",longitude:"-0.2355",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Data centers",headline:"250MW across two million sq ft on 85 acres. Equinix's largest European investment to date.",whats_being_built:"Equinix is investing £3.9bn at South Mimms on the M25: 250MW or more across two million square feet on 85 acres, its largest European investment to date. Around 2,500 construction jobs, then more than 200 permanent roles.",why_youre_in_demand:"Equinix already runs 14 UK data centres and employs more than 1,200 people here, so this is a career ladder rather than a single project. The dry-cooling design pushes the mechanical scope towards air handling and refrigeration.",what_it_pays:"London JIB rates put an Approved Electrician on £22.48 an hour, £43,836 a year, rising to £46,521 with the transport allowance. Specialist facility work runs £28 to £35 an hour.",hiring_now:"Land is bought and consent is in place. Apply to Equinix and watch for contractor appointments.",source:"Equinix (30 Oct 2025); New Civil Engineer (30 Oct 2025); Computer Weekly (Oct 2025); Techerati (Oct 2025); JIB London electrical rates (5 Jan 2026)",notes:"Land bought and consent in place, but no build start date published and no main works contractor named. Jobs figures come from Equinix and KPMG rather than a contractor.",key_employers:"Equinix"},{metro:"Great Yarmouth (Norfolk offshore wind O&M)",country:"UK",state_region:"England (East)",location:"Great Yarmouth, England",latitude:"52.6070",longitude:"1.7300",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Energy (offshore wind)",headline:"The build ends. The maintenance contract doesn't.",whats_being_built:"A £28m operations and maintenance hub is under construction, backed by a £15m National Wealth Fund loan. The port is getting 240 metres of refurbished river quay and a new pontoon for crew transfer vessels. Aroun
1d 650 new jobs.",why_youre_in_demand:"RWE is basing operations for the Norfolk Offshore Wind Zone here, three windfarms at 1.4GW each. Those turbines need maintaining for decades, so this is an operations base rather than a build that ends.",what_it_pays:"Offshore wind and engineering construction work runs £24 to £30 an hour plus shift premiums, with travel and lodging lifting gross pay further.",hiring_now:"Approach RWE for the operations and maintenance roles, and the councils for construction packages.",source:"Great Yarmouth Borough Council (2026); DESNZ (17 Jun 2025); Insider Media (18 Jun 2025); reNews (17 Jun 2025); JIB national electrical rates (5 Jan 2026)",notes:"The £1bn Great British Energy figure is a national programme across at least four ports including Leith, Teesside and Port Talbot, not £1bn for Great Yarmouth. This is an operations base rather than a build site, so the work is durable rather than a construction spike.",key_employers:"RWE, Norfolk County Council, Great Yarmouth Borough Council"},{metro:"Inverclyde / Greenock (Inchgreen dry dock)",country:"UK",state_region:"Scotland",location:"Greenock, Scotland",latitude:"55.9450",longitude:"-4.7850",tier:"3",certainty:"Likely",tier_context:"Position yourself. 12-36 months out.",demand_signal:"Coming",sector:"Defence (ship repair + marine engineering)",headline:"Only a handful of UK docks can take an aircraft carrier. This one is coming back.",whats_being_built:"A £20m investment funds new dock gates and pumping systems to bring Inchgreen back to modern standards by 2027, plus a new training and skills centre on site. Around 350 direct jobs in ship repair, refit and heavy engineering.",why_youre_in_demand:"At 305 metres, Inchgreen is one of very few UK docks that can take a Queen Elizabeth class carrier. Rosyth is currently the only viable option for those 65,000-tonne ships, and access there is tight and tidally restricted.",what_it_pays:"Marine and engineering construction trades on the Clyde run £24 to £30 an hour plus shift premiums. The SJIB Technician rate is £22.45.",hiring_now:"The on-site skills centre is the route in. Peel Ports Clydeport and Inverclyde Council run the joint venture.",source:"GOV.UK (Jul 2026); Navy Lookout (27 Nov 2025); Inverclyde Now (2025); UK Defence Journal; SJIB/JIB electrical rates (5 Jan 2026)",notes:"The Inchgreen investment sits alongside the £26bn Project Royal Oak naval base programme rather than within it. No future use for the dock has been specified and the minister declined to say whether warship docking is in scope, so the 350 jobs depend on commercial tenants not yet named.",key_employers:"Peel Ports Clydeport, Inverclyde Council"},{metro:"Indianapolis IN (Meta LEAP campus + Workforce Academy)",country:"US",state_region:"Indiana",location:"Indianapolis, IN",latitude:"39.7684",longitude:"-86.1581",tier:"2",certainty:"Happening now",tier_context:"Strong demand. Hiring is active.",demand_signal:"Growing",sector:"Data centers",headline:"Meta will train you for free and guarantee you a job at the end of it.",whats_being_built:"Meta picked Indianapolis as one of four pilot metros for America's Workforce Academy, a $115m skilled-trades training program announced in June 2026 that comes with a job guarantee. Its $10bn campus at Lebanon in the LEAP district needs around 4,000 construction workers and comes online between late 2027 and early 2028.",why_youre_in_demand:"Meta built the academy because the trades shortage is the bottleneck on every one of these projects. Indiana is absorbing three hyperscale campuses at once, with Microsoft at La Porte and Granger and AWS at New Carlisle all chasing the same crews.",what_it_pays:"The academy places you into a job at the end, which is the part worth having. Meta has not published rates for the intake.",hiring_now:"Applications run through Meta's America's Workforce Academy for the Indianapolis pilot.",source:"CBS News (Jun 2026); Axios (Jun 2026); Fortune (Jun 2026); ConstructConnect; ENR",notes:"Wage figures still to be researched for this row: no BLS metro pull, and Meta has published no academy rates. Lebanon sits in Boone County, about 30 miles northwest of Indianapolis.",key_employers:"Meta, Turner Construction"}],x=["Go now","Growing","Coming"],w=["Data centers","Defense","Energy","Advanced manufacturing","Construction","Cybersecurity","Commercial aerospace","Logistics","Utilities","Water"],v={"data centers":"Data centers","data center":"Data centers",datacenters:"Data centers",defense:"Defense",defence:"Defense",energy:"Energy","advanced manufacturing":"Advanced manufacturing",manufacturing:"Advanced manufacturing",semiconductors:"Advanced manufacturing",chips:"Advanced manufacturing",batteries:"Advanced manufacturing",construction:"Construction","construction and skilled trades":"Construction","skilled trades":"Construction",cybersecurity:"Cybersecurity",cyber:"Cybersecurity","commercial aerospace"
1:"Commercial aerospace",aerospace:"Commercial aerospace",logistics:"Logistics","maritime logistics":"Logistics",transportation:"Logistics",utilities:"Utilities",water:"Water"},_=e=>{let t=e.replace(/\([^)]*\)/g,"").replace(/\(.*$/,"").trim().toLowerCase();if(!t)return null;if(v[t])return v[t];for(let[e,a]of Object.entries(v).sort((e,t)=>t[0].length-e[0].length))if(t.includes(e))return a;return null},k=e=>{if(!e)return[];let t=[],a=0,n="";for(let i of e)"("===i?a++:")"===i&&(a=Math.max(0,a-1)),0===a&&("+"===i||"/"===i||"&"===i)?(n.trim()&&t.push(n),n=""):n+=i;return n.trim()&&t.push(n),t},S=(e,t)=>"en-GB"===t&&e?[[/\bcenters\b/g,"centres"],[/\bCenters\b/g,"Centres"],[/\bcenter\b/g,"centre"],[/\bCenter\b/g,"Centre"],[/\bdefense\b/g,"defence"],[/\bDefense\b/g,"Defence"]].reduce((e,[t,a])=>e.replace(t,a),e):e,A={"Go now":"Peak demand. Apply today.",Growing:"Strong demand. Hiring is active.",Coming:"Position yourself. 12-36 months out."},N={"Go now":"demand-go-now",Growing:"demand-growing",Coming:"demand-coming"},C={"Go now":"Peak demand. Hiring is urgent.",Growing:"Strong demand. Hiring is active.",Coming:"Investment committed. Hiring 12-36 months out."},j=e=>e.tier_context?.trim()||A[e.demand_signal],E=e=>{let t,a,n=(e=>{let t=[];for(let a of k(e)){let e=_(a);e&&!t.includes(e)&&t.push(e)}return t})(e.sector??""),i=n[0]??"Construction",r=Number(e.tier),s=[1,2,3].includes(r)?r:3,o=(t=(e.certainty??"").trim().toLowerCase()).startsWith("happening")?"Happening now":t.startsWith("likely")?"Likely":"Could slip",l=("go now"===(a=(e.demand_signal??"").trim().toLowerCase())?"Go now":"growing"===a?"Growing":"coming"===a?"Coming":null)??(1===s?"Go now":2===s||"Happening now"===o?"Growing":"Coming"),c=e.country?.trim()==="UK"?"UK":"US",d=e=>"US"===c&&e?[[/\bcentre\b/g,"center"],[/\bCentre\b/g,"Center"],[/\bCENTRE\b/g,"CENTER"],[/\bcentres\b/g,"centers"],[/\bCentres\b/g,"Centers"],[/\bdefence\b/g,"defense"],[/\bDefence\b/g,"Defense"]].reduce((e,[t,a])=>e.replace(t,a),e):e;return{metro:e.metro.trim(),country:c,state_region:e.state_region?.trim()??"",location:e.location?.trim()??"",latitude:Number(e.latitude),longitude:Number(e.longitude),tier:s,certainty:o,demand_signal:l,tier_context:d(e.tier_context?.trim()??""),sector:e.sector?.trim()??"",sectors:n.length?n:[i],primarySector:i,headline:d(e.headline?.trim()??""),whats_being_built:d(e.whats_being_built?.trim()??""),why_youre_in_demand:d(e.why_youre_in_demand?.trim()??""),what_it_pays:d(e.what_it_pays?.trim()??""),hiring_now:d(e.hiring_now?.trim()??""),source:d(e.source?.trim()??""),notes:d(e.notes?.trim()??""),rent_2bed:e.rent_2bed?.trim()??"",rent_note:e.rent_note?.trim()??"",key_employers:(e.key_employers??"").split(",").map(e=>e.trim()).filter(Boolean)}},M={US:[[24.5,-125],[49.5,-66]],UK:[[49.8,-8.5],[60.9,2]],Both:[[24.5,-125],[60.9,2]]},T={"Data centers":"data center technician",Defense:"defense manufacturing",Energy:"power plant technician","Advanced manufacturing":"manufacturing technician",Construction:"construction",Cybersecurity:"cybersecurity","Commercial aerospace":"aircraft maintenance",Logistics:"warehouse maintenance technician",Utilities:"lineman",Water:"water treatment"},O=[[/construction/i,"construction"],[/\bcyber\b|\bSOC\b/i,"cybersecurity"],[/\btransportation\b|\brail\b|\btransit\b|\btunnel\b/i,"rail construction"],[/naval power/i,"manufacturing technician"],[/aerospace[^)]*\bnaval\b|\bnaval\b[^)]*aerospace/i,"aerospace manufacturing"],[/shipbuild|shipyard|naval|submarine|carrier|vessel|ship repair|marine engineering/i,"shipyard welder"],[/munition|missile|rocket motor|energetics|ICBM/i,"munitions manufacturing"],[/semiconductor|chip|\bfab\b/i,"semiconductor technician"],[/\bauto\b|luxury auto|automotive|vehicle assembly|car plant/i,"automotive assembly"],[/batter|gigafactory|\bEV\b/i,"battery manufacturing"],[/nuclear|reactor|\bSMR\b|fission/i,"nuclear technician"],[/offshore wind|\bwind\b|turbine|tidal/i,"wind turbine technician"],[/hydrogen/i,"hydrogen plant technician"],[/drone|\bUAV\b|autonomous/i,"drone manufacturing"],[/aerospace|combat air|rotorcraft|helicopter/i,"aerospace manufacturing"],[/critical minerals|lithium/i,"mining technician"],[/petrochemical|refinery|\bLNG\b/i,"process operator"]],R=(e,t)=>"UK"===t?e.replace(/\bcenter\b/g,"centre").replace(/\bdefense\b/g,"defence"):e,L=new Set(["Defense"]),I=e=>e.split(";")[0].replace(/\([^)]*\)/g," ").replace(/\(.*$/," ").replace(/\s*\/\s*/g," ").replace(/\s{2,}/g," ").trim(),P=e=>e.location?.trim()||I(e.metro),F=e=>`https://www.google.com/search?${new URLSearchParams({q:e}).toString()}&ibp=htl;jobs`,D=e=>F(`${(e=>{let t=k(e.sector);for(let a of L.has(e.primarySector)?t:t.slice(0,1)){let t=O.find(([e])=>e.test(a));if(t)return R(t[1],e.country)}return R(T[e.primarySector],e.country)})(e)} jobs ${P(e)}`),B=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}),H=new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",maximumFractionDigits:0}),$=e=>{let t=e.rent_2bed?.trim();if(!t)return null;let a=Number(t);if(!Number.isFinite(a)||a<=0)return null;let n="UK"===e.country?H:B,i=e.rent_note?.trim();return`Median rent (2-bed): ${n.format(a)}/mo${i?` (${i})`:""}`},U=({children:e})=>(0,t.jsx)("div",{className:"mb-1.5 text-[13px] font-medium text-muted-foreground",children:e}),G=({text:e})=>(0,t.jsx)("p",{className:"text-sm leading-relaxed text-foreground",children:e||"â"}),W=({metro:e,onRemove:a,showRemove:n,locale:i})=>{let r=$(e);return(0,t.jsxs)("article",{className:"flex h-full flex-col overflow-hidden rounded-xl border border-border bg-card shadow-card",children:[(0,t.jsxs)("header",{className:"border-b border-border p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"text-xs font-medium text-muted-foreground",children:[e.country," · ",e.state_region]}),(0,t.jsx)("h3",{className:"mt-1 break-words text-xl font-extrabold leading-tight",children:e.metro})]}),n&&a&&(0,t.jsx)("button",{onClick:()=>a(e),"aria-label":`Remove ${e.metro}`,className:"shrink-0 rounded-md p-1.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:(0,t.jsx)(u.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)("span",{className:"rounded-full px-2.5 py-1 text-xs font-semibold text-white",style:{backgroundColor:`hsl(var(--${N[e.demand_signal]}))`},title:C[e.demand_signal],children:e.demand_signal}),(0,t.jsx)("span",{className:"rounded-full border border-border px-2.5 py-1 text-xs text-foreground",children:S(e.primarySector,i)})]}),(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:j(e)})]}),(0,t.jsxs)("div",{className:"flex-1 space-y-5 p-5",children:[e.headline&&(0,t.jsx)("p",{className:"text-[19px] font-medium leading-snug text-foreground",children:e.headline}),(0,t.jsxs)("section",{children:[(0,t.jsx)(U,{children:"What's being built"}),(0,t.jsx)(G,{text:e.whats_being_built})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)(U,{children:"Why you're in demand"}),(0,t.jsx)(G,{text:e.why_youre_in_demand})]}),(0,t.jsxs)("section",{className:"rounded-lg bg-secondary/70 p-4",children:[(0,t.jsx)(U,{children:"What it pays"}),(0,t.jsx)("p",{className:"text-sm leading-relaxed text-foreground",children:e.what_it_pays||"â"}),r&&(0,t.jsxs)("p",{className:"mt-3 flex items-center gap-2 rounded-md border border-border bg-background px-3 py-2 text-sm font-semibold text-foreground",children:[(0,t.jsx)("span",{"aria-hidden":!0,
1className:"inline-block h-2 w-2 rounded-full bg-primary"}),r]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)(U,{children:"Hiring now"}),(0,t.jsx)(G,{text:e.hiring_now})]}),e.source&&(0,t.jsxs)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:["Based on: ",e.source]})]}),(0,t.jsx)("footer",{className:"border-t border-border bg-background p-5",children:(0,t.jsx)(h.Button,{color:"blue",size:32,to:D(e),target:"_blank",iconAfter:(0,t.jsx)(g.ArrowRight,{className:"h-4 w-4"}),className:"w-full font-bold",children:"See roles here"})})]})},K=({onAddAnother:e})=>(0,t.jsxs)("button",{onClick:e,className:"flex h-full min-h-[400px] flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed border-border text-muted-foreground transition-colors hover:border-foreground/40 hover:text-foreground",children:[(0,t.jsx)(y,{className:"h-6 w-6"}),(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Add another metro"})]}),z=({metros:e,locale:n,onClose:i,onRemove:s,onAddAnother:o})=>{let c=!l("md",{ssrMatches:!0}),[d,u]=(0,a.useState)(0);if(0===e.length)return null;let m=e.length<3,g=Math.min(d,e.length-1),b=e.length+ +!!m,x=`Comparing ${e.length} ${1===e.length?"metro":"metros"}`,w=(0,t.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border px-4 py-3 md:px-6",children:[(0,t.jsx)(h.Button,{color:"gray",variant:"link",size:14,onClick:i,iconBefore:(0,t.jsx)(p.ArrowLeft,{className:"h-4 w-4"}),children:"Back to map"}),(0,t.jsx)("div",{className:"text-sm font-bold md:text-base",children:x}),m?(0,t.jsx)(h.Button,{color:"outline-gray",size:32,onClick:o,iconBefore:(0,t.jsx)(y,{className:"h-4 w-4"}),className:"font-medium",children:"Add another"}):(0,t.jsx)("div",{className:"w-[120px]"})]});return(0,t.jsx)(r.Overlay,{isOpen:!0,setIsOpen:i,title:x,header:w,size:"full",height:"full",className:"rounded-none bg-background",bodyClassName:"bg-secondary/30",children:c?(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"sticky top-0 z-20 flex border-b border-border bg-background",children:[e.map((e,a)=>(0,t.jsx)("button",{onClick:()=>u(a),className:(0,f.cn)("flex-1 truncate border-b-2 px-2 py-2.5 text-xs font-medium",g===a?"border-foreground text-foreground":"border-transparent text-muted-foreground"),children:e.metro},e.metro)),m&&(0,t.jsx)("button",{onClick:o,className:"px-3 py-2.5 text-xs font-medium text-muted-foreground hover:text-foreground","aria-label":"Add another metro",children:(0,t.jsx)(y,{className:"h-4 w-4"})})]}),(0,t.jsx)("div",{className:"p-4",children:(0,t.jsx)(W,{metro:e[g],onRemove:s,showRemove:e.length>1,locale:n})})]}):(0,t.jsxs)("div",{className:"grid items-stretch gap-5 p-5",style:{gridTemplateColumns:`repeat(${b}, minmax(0, 1fr))`},children:[e.map(a=>(0,t.jsx)(W,{metro:a,onRemove:s,showRemove:e.length>1,locale:n},a.metro)),m&&(0,t.jsx)(K,{onAddAnother:o})]})})};e.s([],6329),e.i(6329);var V=e.i(28918),J=e.i(46376),q=e.i(2077),Y=e.i(56789),X=e.i(75606),Z=e.i(56434),Q=e.i(9407),ee=e.i(75812);let et={checked:e=>e?{"data-checked":""}:{"data-unchecked":""},...Q.transitionStatusMapping,...ee.fieldValidityMapping};var ea=e.i(64350),en=e.i(88015),ei=e.i(52245),er=e.i(40886);let es="data-composite-item-active";var eo=e.i(38452),el=e.i(73553);function ec(e){let{render:t,className:n,style:i,state:r=Y.EMPTY_OBJECT,props:s=Y.EMPTY_ARRAY,refs:o=Y.EMPTY_ARRAY,metadata:l,stateAttributesMapping:c,tag:d="div",...u}=e,{compositeProps:h,compositeRef:m}=function(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:i}=(0,eo.useCompositeRootContext)(),{ref:r,index:s}=(0,el.useCompositeListItem)(e),o=n===s,l=a.useRef(null),c=(0,V.useMergedRefs)(r,l);return{compositeProps:{tabIndex:o?0:-1,onFocus(){i(s)},onMouseMove(){let e=l.current;if(!t||!e)return;let a=e.hasAttribute("disabled")||"true"===e.ariaDisabled;o||a||e.focus()}},compositeRef:c,index:s}}({metadata:l});return(0,ei.useRenderElement)(d,e,{state:r,ref:[m,...o],props:[h,...s,u],stateAttributesMapping:c})}var ed=e.i(69690),eu=e.i(57153),eh=e.i(47778),em=e.i(31421),ep=e.i(38489);let eg=a.createContext(void 0);var ey=e.i(86698),ef=e.i(33332);let eb=a.createContext(void 0),ex=a.forwardRef(function(e,n){let{render:i,className:r,disabled:s=!1,readOnly:o=!1,required:l=!1,"aria-labelledby":c,value:d,inputRef:u,nativeButton:h=!1,id:m,style:p,...g}=e,y=a.useContext(eg),{disabled:f,readOnly:b,required:x,form:w,checkedValue:v,touched:_=!1,validation:k,name:S,setCheckedValue:A=Y.NOOP,setTouched:N=Y.NOOP,registerInputRef:C=Y.NOOP}=y??{},{setTouched:j,setFilled:E,state:M,disabled:T}=(0,ed.useFieldRootContext)(),O=(0,eu.useFieldItemContext)(),{labelId:R,getDescriptionProps:L}=(0,eh.useLabelableContext)(),I=T||O.disabled||f||s,P=b||o,F=x||l,D=y?v===d:""===d,B=a.useRef(null),H=a.useRef(null),$=k?.registerInput,U=a.useCallback(e=>$?.(e,{controlRef:B,value:void 0}),[$]),G=(0,V.useMergedRefs)(u,H,C,U);(0,J.useIsoLayoutEffect)(()=>{H.current?.checked&&E(!0)},[E]),(0,J.useIsoLayoutEffect)(()=>
1{if(H.current){if(I&&D)return void C(null);C(H.current)}},[D,I,C]);let W=(0,en.useBaseUiId)(),K=(0,ep.useLabelableId)({id:m,implicit:!1,controlRef:B}),z=h?void 0:K,Q=(0,em.useAriaLabelledBy)(c,R,H,!h,z),{getButtonProps:ee,buttonRef:eo}=(0,er.useButton)({disabled:I,native:h,composite:!1}),el={type:"radio",ref:G,form:w,id:z,name:S,tabIndex:-1,style:S?q.visuallyHiddenInput:q.visuallyHidden,"aria-hidden":!0,...void 0!==d?{value:(0,ey.serializeValue)(d)}:Y.EMPTY_OBJECT,disabled:I,checked:D,required:F,readOnly:P,onChange(e){if(e.nativeEvent.defaultPrevented||I||P||void 0===d)return;let t=(0,X.createChangeEventDetails)(Z.REASONS.none,e.nativeEvent);A(d,t),t.isCanceled||j(!0)},onClick(e){e.stopPropagation()},onFocus(){B.current?.focus()}},ef=a.useMemo(()=>({...M,required:F,disabled:I,readOnly:P,checked:D}),[M,I,P,D,F]),ex=void 0!==y,ew=[n,B,eo],ev=[{role:"radio","aria-checked":D,"aria-labelledby":Q,[es]:D?"":void 0,id:h?K:W,onKeyDown(e){"Enter"===e.key&&e.preventDefault()},onClick(e){if(e.defaultPrevented||I||P)return;e.preventDefault();let t=H.current;t&&(0,ea.dispatchClickWithModifiers)(t,e)},onFocus(e){e.defaultPrevented||I||P||!_||(H.current?.click(),N(!1))}},g,ee,L,k?e=>k.getValidationProps(I,e):Y.EMPTY_OBJECT],e_=(0,ei.useRenderElement)("span",e,{enabled:!ex,state:ef,ref:ew,props:ev,stateAttributesMapping:et});return(0,t.jsxs)(eb.Provider,{value:ef,children:[ex?(0,t.jsx)(ec,{tag:"span",render:i,className:r,style:p,state:ef,refs:ew,props:ev,stateAttributesMapping:et}):e_,(0,t.jsx)("input",{...el,suppressHydrationWarning:!0})]})});var ew=e.i(37584),ev=e.i(23910);let e_=a.forwardRef(function(e,t){let{render:n,className:i,style:r,keepMounted:s=!1,...o}=e,l=function(){let e=a.useContext(eb);if(void 0===e)throw Error((0,ef.default)(52));return e}(),c=l.checked,{mounted:d,transitionStatus:u,setMounted:h}=(0,ev.useTransitionStatus)(c),m={...l,transitionStatus:u},p=a.useRef(null),g=(0,ei.useRenderElement)("span",e,{ref:[t,p],state:m,props:o,stateAttributesMapping:et});return((0,ew.useOpenChangeComplete)({open:c,ref:p,onComplete(){c||h(!1)}}),s||d)?g:null});e.s(["Indicator",0,e_,"Root",0,ex],66747);var ek=e.i(66747),ek=ek,eS=e.i(51437),eA=e.i(67865),eN=e.i(47554),eC=e.i(73327),ej=e.i(53687),eE=e.i(90803),eM=e.i(21082);let eT=[];var eO=e.i(72855);function eR(e){let{render:n,className:i,style:r,refs:s=Y.EMPTY_ARRAY,props:o=Y.EMPTY_ARRAY,state:l=Y.EMPTY_OBJECT,stateAttributesMapping:c,highlightedIndex:d,onHighlightedIndexChange:u,orientation:h,grid:m,loopFocus:p,onLoop:g,enableHomeAndEndKeys:y,onMapChange:f,stopEventPropagation:b=!0,rootRef:x,disabledIndices:w,modifierKeys:v,highlightItemOnHover:_=!1,tag:k="div",...S}=e,{props:A,highlightedIndex:N,onHighlightedIndexChange:C,elementsRef:j,onMapChange:E,relayKeyboardEvent:M}=function(e){let{loopFocus:t=!0,orientation:n="both",grid:i,onLoop:r,direction:s,highlightedIndex:o,onHighlightedIndexChange:l,rootRef:c,enableHomeAndEndKeys:d=!1,stopEventPropagation:u,disabledIndices:h,modifierKeys:m=eT}=e,[p,g]=a.useState(0),y=null!=i,f=a.useRef(null),b=(0,V.useMergedRefs)(f,c),x=a.useRef([]),w=a.useRef(!1),v=o??p,_=(0,eA.useStableCallback)((e,t=!1)=>{if((l??g)(e),t){let t=x.current[e];(0,eC.scrollIntoViewIfNeeded)(f.current,t,s,n)}}),k=(0,eA.useStableCallback)(e=>{if(0===e.size||w.current)return;w.current=!0;let t=Array.from(e.keys()),a=t.find(e=>e?.hasAttribute(es))??null,i=a?e.get(a)?.index??-1:-1;if(-1!==i)_(i);else if((0,eM.isListIndexDisabled)(t,v,h)){let e=(0,eM.findNonDisabledListIndex)(t,{disabledIndices:h});(0,eM.isIndexOutOfListBounds)(t,e)||_(e)}(0,eC.scrollIntoViewIfNeeded)(f.current,a,s,n)});(0,J.useIsoLayoutEffect)(()=>{if(null==h||null!=o||!w.current)return;let e=x.current;if((0,eM.isListIndexDisabled)(e,v,h)){let t=(0,eM.findNonDisabledListIndex)(e,{disabledIndices:h});(0,eM.isIndexOutOfListBounds)(e,t)||_(t)}},[h,o,v,x,_]);let S=(0,eA.useStableCallback)((e,t,a)=>r?r(e,t,a,x):a),A=(0,eA.useStableCallback)(e=>{let a=e.key===eC.HOME||e.key===eC.END;if(!eC.COMPOSITE_KEYS.has(e.key)||!d&&a||function(e,t){for(let a of eC.MODIFIER_KEYS)if(!t.includes(a)&&e.getModifierState(a))return!0;return!1}(e,m)||!f.current)return;let o="rtl"===s,l=o?eC.ARROW_LEFT:eC.ARROW_RIGHT,c=o?eC.ARROW_RIGHT:eC.ARROW_LEFT,p="vertical"===n?eC.ARROW_DOWN:l,g="vertical"===n?eC.ARROW_UP:c,b=(0,eN.getTarget)(e.nativeEvent);if(null!=b&&(0,eC.isNativeInput)(b)&&!(0,eE.isElementDisabled)(b)){let t=b.selectionStart,a=b.selectionEnd,n=b.value;if(null==t||e.shiftKey||t!==a||e.key!==g&&t<n.length||e.key!==p&&t>0)return}let w=v,k=(0,eM.getMinListIndex)(x,h),A=(0,eM.getMaxListIndex)(x,h);null!=i&&(w=i({disabledIndices:h,elementsRef:x,event:e,highlightedIndex:v,loopFocus:t,maxIndex:A,minIndex:k,onLoop:S,orientation:n,rtl:o}));let N="vertical"!==n&&e.key===l||"horizontal"!==n&&e.key===eC.ARROW_DOWN,C="vertical"!==n&&e.key===c||"horizontal"!==n&&e.key===eC.ARROW_UP;d&&(e.key===eC.HOME?w=k:e.key===eC.END&&(w=A)),w===v&&(N||C)&&(t&&w===A&&N?(w=k,r&&(w=r(e,v,w,x))):t&&w===k&&C?(w=A,r&&(w=r(e,v,w,x))):w=(0,eM.findNonDisabledListIndex)(x.current,{startingIndex:w,decrement:C,disabledIndices:h})),w===v||(0,eM.isIndexOutOfListBounds)(x.current,w)||(u&&e.stopPropagation(),(y||a||N||C)&&e.preventDefault(),_(w,!0),queueMicrotask(()=>
1{x.current[w]?.focus()}))});return{props:{ref:b,onFocus(e){let t=f.current,a=(0,eN.getTarget)(e.nativeEvent);t&&null!=a&&(0,eC.isNativeInput)(a)&&a.setSelectionRange(0,a.value.length)},onKeyDown:A},highlightedIndex:v,onHighlightedIndexChange:_,elementsRef:x,onMapChange:k,relayKeyboardEvent:A}}({grid:m,loopFocus:p,onLoop:g,orientation:h,highlightedIndex:d,onHighlightedIndexChange:u,rootRef:x,stopEventPropagation:b,enableHomeAndEndKeys:y,direction:(0,eO.useDirection)(),disabledIndices:w,modifierKeys:v}),T=(0,ei.useRenderElement)(k,e,{state:l,ref:s,props:[A,...o,S],stateAttributesMapping:c}),O=a.useMemo(()=>({highlightedIndex:N,onHighlightedIndexChange:C,highlightItemOnHover:_,relayKeyboardEvent:M}),[N,C,_,M]);return(0,t.jsx)(eo.CompositeRootContext.Provider,{value:O,children:(0,t.jsx)(ej.CompositeList,{elementsRef:j,onMapChange:e=>{f?.(e),E(e)},children:T})})}var eL=e.i(81104),eI=e.i(55627),eP=e.i(87068),eF=e.i(84708),eD=e.i(6039);let eB=[eC.SHIFT],eH=a.forwardRef(function(e,n){let{render:i,className:r,disabled:s,readOnly:o,required:l,onValueChange:c,value:d,defaultValue:u,form:h,name:m,inputRef:p,id:g,style:y,...f}=e,{setTouched:b,setFocused:x,validationMode:w,name:v,disabled:_,state:k,validation:S,setDirty:A,setFilled:N,validityData:C}=(0,ed.useFieldRootContext)(),{labelId:j}=(0,eh.useLabelableContext)(),{clearErrors:E,elementRef:M}=(0,eF.useFormContext)(),T=(0,eP.useFieldsetRootContext)(!0),O=_||s,R=v??m,L=(0,en.useBaseUiId)(g),[I,P]=(0,eS.useControlled)({controlled:d,default:u,name:"RadioGroup",state:"value"}),[F,D]=a.useState(!1),B=(0,eA.useStableCallback)((e,t)=>{c?.(e,t),t.isCanceled||P(e)}),H=S.getInputControl,$=a.useMemo(()=>({get current(){return H()}}),[H]),U=a.useRef(null),G=a.useRef(null);function W(e){let t;return p&&("function"==typeof p?t=p(e):p.current=e),U.current=e,t}let K=(0,eA.useStableCallback)(e=>{if(!e||e.disabled)return;G.current||(G.current=e);let t=U.current,a=e.checked||null==t||t.disabled?W(e):void 0;return()=>{G.current===e&&(G.current=null),U.current===e?a?(a(),U.current=null):W(null):a?.()}}),z=(0,eA.useStableCallback)(()=>{let e=M.current;if(!e)return I??null;for(let t of S.registeredInputs.keys())if(t.checked&&(0,eI.isEligibleInput)(t,e))return I??null;return null});(0,eL.useRegisterFieldControl)($,L,I??null,z,!O,m),(0,eD.useValueChanged)(I,()=>{E(R),A(I!==C.initialValue),N(null!=I),S.change(I);let e=G.current;null==I&&e&&!e.disabled&&W(e)});let V=j??T?.legendId,J={...k,disabled:O??!1,required:l??!1,readOnly:o??!1},q=a.useMemo(()=>({checkedValue:I,disabled:O,form:h,validation:S,name:R,readOnly:o,registerInputRef:K,required:l,setCheckedValue:B,setTouched:D,touched:F}),[I,O,h,S,R,o,K,l,B,D,F]);return(0,t.jsx)(eg.Provider,{value:q,children:(0,t.jsx)(eR,{render:i,className:r,style:y,state:J,props:[{id:g,role:"radiogroup","aria-required":l||void 0,"aria-disabled":O||void 0,"aria-readonly":o||void 0,"aria-labelledby":V,onFocus(){x(!0)},onBlur(e){(0,eN.contains)(e.currentTarget,e.relatedTarget)||(b(!0),x(!1),"onBlur"===w&&S.commit(I))},onKeyDownCapture(e){e.key.startsWith("Arrow")&&(D(!0),x(!0))}},f,e=>S.getValidationProps(O??!1,e)],refs:[n],stateAttributesMapping:ee.fieldValidityMapping,enableHomeAndEndKeys:!1,modifierKeys:eB})})}),e$=({value:e,onChange:a,options:n,disabled:i=!1,ariaLabel:r="Select option",size:s="default",iconOnly:o=!1,className:l})=>{let c="small"===s;return(0,t.jsx)(eH,{value:e,onValueChange:e=>a(e),disabled:i,"aria-label":r,className:(0,f.cn)("inline-flex items-center bg-gray-100 rounded-full w-fit",c?"gap-0.5 h-8 px-0.5":"gap-1 h-10 px-1",i&&"opacity-50",l),children:n.map(a=>{let n=e===a.value;return(0,t.jsxs)(ek.Root,{value:a.value,nativeButton:!0,render:(0,t.jsx)("button",{type:"button"}),"aria-label":o?a.label:void 0,className:(0,f.cn)("flex items-center gap-1.5 rounded-full text-sm font-semibold transition-all outline-none focus-visible:ring",c?"h-7":"h-8",o?c?"px-3":"px-3.5":c?"px-2.5":"px-3",n?"bg-white text-gray-800 shadow-sm":"text-gray-500 hover:text-gray-700",i&&"pointer-events-none"),children:[a.icon,!o&&a.label]},a.value)})})},eU=[{value:"US",label:"US"},{value:"UK",label:"UK"},{value:"Both",label:"Both"}
1],eG=({value:e,onChange:a})=>(0,t.jsx)(e$,{value:e,onChange:e=>a(e),options:eU,ariaLabel:"Country view"}),eW={"Data centers":"The world is building more data centres than it can staff. Every hyperscaler campus needs electricians, mechanics, and operators â for decades, not months.",Defense:"Western shipyards, arsenals, and depots are scaling up faster than they've hired in 40 years. Cleared experience and hands-on trades are in acute shortage.",Energy:"The grid build-out â nuclear, gas, wind, transmission â is bottlenecked on people, not permits. Linemen, welders, and operators are being recruited nationally.","Advanced manufacturing":"New fabs, gigafactories, and missile plants are coming online with thousands of seats each. Technicians who can run machines are worth their weight.",Construction:"Megaprojects are stacking up faster than the trades can absorb them. Crews, foremen, and skilled crafts are the limiting factor on every site.",Cybersecurity:"Defenders are outnumbered. Cleared cyber operators, SOC analysts, and engineers are short across government and critical infrastructure.","Commercial aerospace":"Boeing, Airbus, and their suppliers are racing to clear a multi-year backlog. A&P mechanics, machinists, and assemblers are being courted on signing bonuses.",Logistics:"Ports, rail, and warehouses are the choke point of the real economy. Operators, dispatchers, and equipment techs keep moving up the pay band.",Utilities:"Water, power, and gas utilities are losing a generation to retirement just as load is climbing. Linemen and plant operators are now top-tier hires.",Water:"Aging treatment plants and new desalination are being rebuilt at once. Licensed operators and mechanical techs are scarce in almost every region."},eK={"Data centers":`<rect x="6" y="5" width="12" height="4" rx="1" fill="none" stroke="currentColor" stroke-width="1.6"/> 2 <rect x="6" y="11" width="12" height="4" rx="1" fill="none" stroke="currentColor" stroke-width="1.6"/> 3 <circle cx="9" cy="7" r="0.8" fill="currentColor"/> 4 <circle cx="9" cy="13" r="0.8" fill="currentColor"/>`,Defense:'<path d="M12 4 L18 6 V12 C18 16 15 18.5 12 20 C9 18.5 6 16 6 12 V6 Z" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>',Energy:'<path d="M13 4 L7 13 H11 L10 20 L17 11 H13 Z" fill="currentColor"/>',"Advanced manufacturing":`<circle cx="12" cy="12" r="3" fill="none" stroke="currentColor" stroke-width="1.6"/> 5 <path d="M12 4v3 M12 17v3 M4 12h3 M17 12h3 M6.3 6.3l2.1 2.1 M15.6 15.6l2.1 2.1 M6.3 17.7l2.1-2.1 M15.6 8.4l2.1-2.1" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>`,Construction:`<path d="M5 16 H19 V18 H5 Z" fill="currentColor"/> 6 <path d="M7 16 C7 11 9 8 12 8 C15 8 17 11 17 16" fill="none" stroke="currentColor" stroke-width="1.6"/> 7 <path d="M11 8 V5 H13 V8" fill="none" stroke="currentColor" stroke-width="1.6"/>`,Cybersecurity:`<rect x="6" y="11" width="12" height="9" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.6"/> 8 <path d="M9 11 V8 C9 6 10.3 4.5 12 4.5 C13.7 4.5 15 6 15 8 V11" fill="none" stroke="currentColor" stroke-width="1.6"/> 9 <circle cx="12" cy="15" r="1.2" fill="currentColor"/>`,"Commercial aerospace":'<path d="M2 13 L11 11 L14 5 L16 5 L15 11 L22 12 L22 14 L15 14 L16 19 L14 19 L11 14 L4 15 Z" fill="currentColor"/>',Logistics:`<rect x="3" y="8" width="11" height="8" fill="none" stroke="currentColor" stroke-width="1.6"/> 10 <path d="M14 11 H18 L21 14 V16 H14 Z" fill="none" stroke="currentColor" stroke-width="1.6"/> 11 <circle cx="7" cy="17.5" r="1.5" fill="currentColor"/> 12 <circle cx="17" cy="17.5" r="1.5" fill="currentColor"/>`,Utilities:'<path d="M6 20 L12 4 L18 20 M9 12 L15 12 M8 16 H16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>',Water:'<path d="M12 4 C12 4 6 11 6 15 C6 18.3 8.7 21 12 21 C15.3 21 18 18.3 18 15 C18 11 12 4 12 4 Z" fill="currentColor"/>'},ez=(e,t=38)=>{if(!e)return null;let a=e.split(/[.!?]\s|,\s/)[0]?.trim()??"";return a?a.length<=t?a:a.slice(0,t-1).trimEnd()+"â¦":null},eV=({results:e,onSelect:a,locale:n})=>{let i=e.slice(0,40);return(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Results"}),(0,t.jsxs)("ul",{className:"mt-2 space-y-1.5",children:[i.map(e=>{let i=[ez(e.what_it_pays),ez(e.hiring_now,30),S(e.primarySector,n)].filter(
12Boolean);return(0,t.jsx)("li",{children:(0,t.jsx)("button",{type:"button",onClick:()=>a?.(e),className:"w-full rounded-lg bg-muted/40 px-3 py-2.5 text-left transition-colors hover:bg-muted",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-sm font-bold text-foreground",children:e.metro}),(0,t.jsx)("div",{className:"mt-0.5 line-clamp-2 text-xs leading-snug text-muted-foreground",children:i.join(" · ")})]}),(0,t.jsx)("span",{className:"shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold text-white",style:{backgroundColor:`hsl(var(--${N[e.demand_signal]}))`},children:e.demand_signal})]})})},`${e.country}-${e.metro}`)}),e.length>i.length&&(0,t.jsxs)("li",{className:"px-1 pt-1 text-xs text-muted-foreground",children:["+",e.length-i.length," more on the map"]})]})]})},eJ=({label:e,active:a,onClick:n,title:i,accent:r,icon:s})=>{let o=a&&r?{backgroundColor:`hsl(var(--${r}))`,color:"white"}:a?{backgroundColor:"#000",color:"#fff"}:{backgroundColor:"#fff",boxShadow:"inset 0 0 0 1px rgba(0,0,0,0.04)"};return(0,t.jsxs)("button",{type:"button",onClick:n,"aria-pressed":a,title:i,style:o,className:"inline-flex items-center gap-2 rounded-full px-4 py-[9px] text-[13.5px] font-normal text-foreground transition-colors",children:[s&&(0,t.jsx)("span",{"aria-hidden":!0,className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:s}),e]})},eq=({label:e,count:a,onClear:n})=>(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"eyebrow",children:[e,a>0&&(0,t.jsxs)("span",{className:"ml-2 font-normal normal-case tracking-normal text-foreground",children:["(",a,")"]})]}),a>0&&(0,t.jsx)("button",{type:"button",onClick:n,className:"text-[12px] font-medium text-muted-foreground transition-colors hover:text-foreground",children:"Clear"})]}),eY=({filters:e,onChange:a,onReset:n,visibleCount:i,totalCount:r,locale:s,activeSkillTerm:o,results:l,onSelectMetro:c})=>{let d,m=(e,t)=>
12{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a},p=e.search.trim().length>0||e.signals.size>0||e.sectors.size>0;return(0,t.jsxs)("div",{className:"flex h-full flex-col gap-5 overflow-y-auto py-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"eyebrow",htmlFor:"nem-search",children:"Search"}),(0,t.jsxs)("div",{className:"relative mt-2",children:[(0,t.jsx)("input",{id:"nem-search",type:"search",placeholder:"Search by place or skillâ¦",value:e.search,onChange:t=>a({...e,search:t.target.value}),className:(0,f.cn)("h-11 w-full rounded-xl border-0 bg-white px-3.5 text-sm outline-none","shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04)] focus-visible:shadow-[inset_0_0_0_1.5px_hsl(var(--primary))]",e.search&&"pr-9")}),e.search&&(0,t.jsx)("button",{type:"button","aria-label":"Clear search",onClick:()=>a({...e,search:""}),className:"absolute right-2 top-1/2 -translate-y-1/2 rounded-md p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,t.jsx)(u.X,{className:"h-3.5 w-3.5"})})]}),o&&(0,t.jsxs)("p",{className:"mt-2 text-xs text-muted-foreground",children:["Showing ",(0,t.jsx)("span",{className:"font-semibold text-foreground",children:i})," of ",r," metros for"," ",(0,t.jsx)("span",{className:"font-semibold text-primary",children:o.toLowerCase()})]}),e.search.trim()&&0===i&&(0,t.jsxs)("p",{className:"mt-2 text-xs leading-relaxed text-muted-foreground",children:["No metros match ",(0,t.jsxs)("span",{className:"font-semibold text-foreground",children:['"',e.search.trim(),'"']}),". Try a different skill, or browse by sector."]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(eq,{label:"Demand",count:e.signals.size,onClear:()=>a({...e,signals:new Set})}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:x.map(n=>(0,t.jsx)(eJ,{label:n,active:e.signals.has(n),title:C[n],accent:N[n],onClick:()=>a({...e,signals:m(e.signals,n)})},n))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(eq,{label:"Sector",count:e.sectors.size,onClear:()=>a({...e,sectors:new Set})}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:w.map(n=>(0,t.jsx)(eJ,{label:S(n,s),active:e.sectors.has(n),title:eW[n],icon:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",dangerouslySetInnerHTML:{__html:eK[n]}}),onClick:()=>a({...e,sectors:m(e.sectors,n)})},n))}),1===e.sectors.size&&(d=Array.from(e.sectors)[0],(0,t.jsxs)("div",{className:"mt-3 rounded-[14px] bg-secondary p-4",children:[(0,t.jsxs)("div",{className:"eyebrow mb-1.5",children:["Why ",S(d,s).toLowerCase()]}),(0,t.jsx)("p",{className:"text-[13.5px] leading-[1.5] text-[hsl(var(--rd-ink-700))]",children:eW[d]})]}))]}),l&&l.length>0&&p&&(0,t.jsx)(eV,{results:l,onSelect:c,locale:s}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between border-t border-border pt-4",children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Showing ",(0,t.jsx)("span",{className:"font-bold text-foreground",children:i})," of ",r]}),(0,t.jsx)(h.Button,{color:"gray",variant:"link",size:14,onClick:n,disabled:!p,children:"Reset all"})]})]})},eX=[{term:"Electrician",synonyms:["electrician","electrical","ibew","high-voltage","high voltage","wiring"]},{term:"Welder",synonyms:["welder","welding","weld","pipefitter","fabricat"]},{term:"Mechanic",synonyms:["mechanic","mechanical","maintenance technician","a&p"]},{term:"Nuclear",synonyms:["nuclear","reactor","clearance","cleared","nnsa","fission","fusion"]},{term:"Cyber",synonyms:["cyber","security operations","soc","gchq","nsa","ts/sci"]},{term:"Data centre",synonyms:["data centre","data center","megawatt","hyperscal"]},{term:"Shipbuilding",synonyms:["shipbuild","shipyard","submarine","frigate","destroyer","naval"]},{term:"Wind",synonyms:["wind","offshore","turbine","blade"]},{term:"Semiconductor",synonyms:["semiconductor","fab","chip","clean room","wafer"]},{term:"Construction",synonyms:["construction","civil","scaffol","crane","groundwork"]},{term:"Logistics",synonyms:["logistics","warehouse","forklift","freight","port"]},{term:"Battery / EV",synonyms:["battery","gigafactory"," ev","electric vehicle"]}
12],eZ=e=>{let t=e.trim().toLowerCase();if(!t)return null;for(let e of eX)if(e.term.toLowerCase()===t||e.synonyms.some(e=>e.trim().toLowerCase()===t))return e;return null},eQ=(e,t)=>{let a=` ${[e.sector,e.headline,e.whats_being_built,e.why_youre_in_demand,e.what_it_pays,e.hiring_now].join(" \n ").toLowerCase()} `;return t.some(e=>a.includes(e.toLowerCase()))},e0=e=>`/next-economy-map/hotspot/${e2(e)}`,e2=e=>`${e.country.toLowerCase()}-${e.metro.toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}`,e1=(e,t)=>{let a=t.toLowerCase();return e.find(e=>e2(e)===a)??null};var e5=e.i(16327);let e3=(0,n.default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),e4={"Go now":"Hiring urgent",Growing:"Active demand",Coming:"12-36 months out"},e6=()=>{let[e,n]=(0,a.useState)(!0);return(0,t.jsx)("div",{className:"absolute bottom-4 left-4 z-[500] max-w-[calc(100%-2rem)]",children:(0,t.jsxs)("div",{className:"flex items-stretch overflow-hidden rounded-[14px] bg-card text-foreground shadow-floating",children:[e&&(0,t.jsx)("ul",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 px-4 py-2.5",children:x.map(e=>{let a="Coming"===e;return(0,t.jsxs)("li",{className:"flex items-center gap-2 whitespace-nowrap",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"inline-block h-[14px] w-[14px] shrink-0 rounded-full",style:{backgroundColor:a?"#FFFFFF":`hsl(var(--${N[e]}))`,border:a?"1.5px solid #BABABA":"none"}}),(0,t.jsxs)("span",{className:"leading-tight",children:[(0,t.jsx)("span",{className:"block text-[13px] font-medium",children:e}),(0,t.jsx)("span",{className:"block text-[11px] text-muted-foreground",children:e4[e]})]})]},e)})}),(0,t.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:(0,f.cn)("flex shrink-0 items-center gap-2 px-4 py-3",e&&"border-l border-border"),"aria-expanded":e,"aria-label":e?"Collapse legend":"Expand legend",children:[(0,t.jsx)(e3,{className:"size-3.5 text-muted-foreground"}),(0,t.jsx)("span",{className:"eyebrow",children:"Legend"}),(0,t.jsx)(e5.ChevronDown,{className:(0,f.cn)("size-3.5 text-muted-foreground transition-transform",e&&"rotate-180")})]})]})})};var e7=e.i(8019);let e8=(e="")=>(0,e7.envOr)(e,"cb1_2ci8_1_f23dfc76dc210ba416a411a8"),e9=(e,t=e8())=>`https://{s}.basemaps.cartocdn.com/${e}/{z}/{x}/{y}{r}.png?key=${encodeURIComponent(t)}`,te=e9("light_nolabels"),tt=e9("light_only_labels"),ta=(e,{demand_signal:t,sector:a,active:n})=>{let i=n?44:36,r=getComputedStyle(document.documentElement),s=`--${N[t]}`,o=r.getPropertyValue(s).trim()||"218 92% 54%",l=`hsl(${o})`,c="Coming"===t,d=c?"#6B6B6B":"#FFFFFF",u=i+22,h=u/2,m=u/2,p=i/2-1,g=n?`<circle cx="${h}" cy="${m}" r="${p+3}" fill="none" stroke="#FFFFFF" stroke-width="4" /> 13 <circle cx="${h}" cy="${m}" r="${p+5}" fill="none" stroke="${l}" stroke-width="1" stroke-opacity="0.35" />`:"",y=Math.round(.5*i),f=(u-y)/2,b=` 14 <div class="rd-pin-inner" style="position:relative;width:${u}px;height:${u}px;color:${d};"> 15 <svg class="rd-pin-halo" width="${u}" height="${u}" viewBox="0 0 ${u} ${u}" 16 style="position:absolute;inset:0;display:block;overflow:visible;transform-origin:${h}px ${m}px;"> 17 <circle cx="${h}" cy="${m}" r="${i/2+8}" fill="${c?"#6B6B6B":l}" fill-opacity="0.12" /> 18 </svg> 19 <svg class="rd-pin-body" width="${u}" height="${u}" viewBox="0 0 ${u} ${u}" 20 style="position:absolute;inset:0;display:block;overflow:visible;"> 21 ${g} 22 <circle cx="${h}" cy="${m}" r="${p}" 23 fill="${c?"#FFFFFF":l}" stroke="${c?"#BABABA":l}" stroke-width="${c?1.5:2}" /> 24 </svg> 25 <svg width="${y}" height="${y}" viewBox="0 0 24 24" 26 style="position:absolute;left:${f}px;top:${f}px;color:${d};pointer-events:none;" stroke-width="2.2"> 27 ${eK[a]} 28 </svg> 29 </div> 30 `;return e.divIcon({className:"redeployable-pin",html:b,iconSize:[u,u],iconAnchor:[u/2,u/2],popupAnchor:[0,-u/2]})},tn=e=>`${e.country}-${e.metro}`,ti=({metros:n,matchedKeys:i,view:r,selectedMetro:s,onSelect:o})=>{let l=(0,a.useRef)(null),c=(0,a.useRef)(null),d=(0,a.useRef)(null),u=(0,a.useRef)(new Map),[h,m]=(0,a.useState)(!1),p=(0,a.useRef)(o);p.current=o;let g=(0,a.useMemo)(()=>n.filter(e=>"Both"===r||e.country===r),[n,r]),y=(0,a.useMemo)(()=>
30{if(!i)return g;let e=g.filter(e=>i.has(tn(e)));return e.length>0?e:g},[g,i]);return(0,a.useEffect)(()=>{let t,a=!1,n=[],i=u.current;return e.A(71400).then(e=>{let i=e.default??e;if(a||!l.current||c.current)return;d.current=i;let r=i.map(l.current,{center:[39.5,-50],zoom:3,minZoom:2,scrollWheelZoom:!0,worldCopyJump:!0,zoomControl:!0,attributionControl:!0});c.current=r,r.attributionControl.setPrefix(""),i.tileLayer(te,{subdomains:"abcd",attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> © <a href="https://carto.com/attributions">CARTO</a>',maxZoom:19}).addTo(r),i.tileLayer(tt,{subdomains:"abcd",maxZoom:19}).addTo(r),r.invalidateSize(),(t=new ResizeObserver(()=>r.invalidateSize())).observe(l.current),[50,200,500].forEach(e=>n.push(setTimeout(()=>r.invalidateSize(),e))),m(!0)}),()=>{a=!0,t?.disconnect(),n.forEach(clearTimeout),c.current?.remove(),c.current=null,i.clear()}},[]),(0,a.useEffect)(()=>{let e=d.current,t=c.current;if(!e||!t)return;let a=u.current,n=new Set(g.map(tn));for(let[e,t]of a)n.has(e)||(t.remove(),a.delete(e));for(let n of g){let r=tn(n),o=null!=s&&tn(s)===r,l=!i||i.has(r),c=ta(e,{demand_signal:n.demand_signal,sector:n.primarySector,active:o}),d=o?1e3:1===n.tier?500:250*(2===n.tier),u=a.get(r);u?u.setIcon(c):((u=e.marker([n.latitude,n.longitude],{icon:c,title:n.metro,keyboard:!0})).on("click",()=>p.current(n)),u.addTo(t),a.set(r,u)),u.setZIndexOffset(d),u.setOpacity(l?1:.1)}},[h,g,i,s]),(0,a.useEffect)(()=>{let e=d.current,t=c.current;if(!e||!t)return;t.invalidateSize();let a=setTimeout(()=>{if(y.length>1){let a=e.latLngBounds(y.map(e=>[e.latitude,e.longitude]));t.fitBounds(a,{padding:[60,60],maxZoom:7})}else t.fitBounds(M[r],{padding:[40,40]})},60);return()=>clearTimeout(a)},[h,r,y]),(0,a.useEffect)(()=>{let e=c.current;if(!e||!s)return;let t=Math.max(e.getZoom(),5);e.flyTo([s.latitude,s.longitude],t,{duration:.8,easeLinearity:.25})},[s]),(0,t.jsx)("div",{ref:l,className:"h-full w-full","aria-hidden":"true"})},tr=(0,n.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),ts=(0,n.default)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),to=({children:e})=>(0,t.jsxs)("h3",{className:"mb-2.5 flex items-center gap-2.5 text-[13px] font-semibold uppercase tracking-[0.06em] text-foreground",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"h-4 w-[5px] shrink-0 rounded-[3px] bg-primary"}),e]}),tl=({title:e,children:a})=>a&&("string"!=typeof a||a.trim())?(0,t.jsxs)("section",{children:[(0,t.jsx)(to,{children:e}),(0,t.jsx)("div",{className:"text-[15px] leading-[1.55] text-[hsl(var(--rd-grey-700))]",children:a})]}):null,tc=({sector:e,locale:a})=>{let n=eK[e];return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-border bg-muted px-3 py-1.5 text-[13px] text-foreground",children:[n&&(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",className:"text-foreground",dangerouslySetInnerHTML:{__html:n}}),S(e,a)]})},td="flex h-[34px] w-[34px] items-center justify-center rounded-[9px] border border-border bg-muted text-muted-foreground transition-colors hover:text-foreground",tu=({metro:e,locale:n,onClose:i,isCompared:r,canAddCompare:s,onToggleCompare:o})=>{let l=!r&&!s,[m,p]=(0,a.useState)(!1),y=async()=>{let t=`${window.location.origin}${(0,c.withLocale)(n,e0(e))}`,a=`${e.metro} â Redeployable`,i=e.headline||`Where your skills are needed: ${e.metro}.`;try{if(navigator.share)return void await navigator.share({title:a,text:i,url:t})}catch{}try{await navigator.clipboard.writeText(t),p(!0),setTimeout(()=>p(!1),2e3)}catch{}},f=$(e),b=("Go now"===e.demand_signal||"Growing"===e.demand_signal)&&e.key_employers.length>0;return(0,t.jsxs)("div",{className:"flex h-full flex-col",children:[(0,t.jsxs)("div",{className:"shrink-0 border-b border-border px-[30px] pb-5 pt-[26px]",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"text-[12px] font-medium uppercase tracking-[0.12em] text-primary",children:[e.country," · ",e.state_region]}),(0,t.jsx)("h2",{className:"mt-2 text-balance text-[28px] font-semibold leading-[1.05] tracking-[-0.02em]",children:e.metro})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,t.jsx)("button",{onClick:y,"aria-label":"Share this metro",title:m?"Link copied":"Share / copy link",className:td,children:m?(0,t.jsx)(tr,{className:"h-4 w-4 text-primary"}):(0,t.jsx)(ts,{className:"h-4 w-4"})}),o&&(0,t.jsx)("button",{onClick:()=>!l&&o(e),"aria-label":r?"Remove from comparison":"Add to comparison","aria-pressed":r,disabled:l,title:l?"Remove one to add another.":r?"In comparison":"Add to compare",className:`${td} ${r?"border-transparent bg-foreground text-background hover:text-background":""}
30 ${l?"cursor-not-allowed opacity-40":""}`,children:r?(0,t.jsx)(tr,{className:"h-4 w-4"}):(0,t.jsx)(d,{className:"h-4 w-4"})}),(0,t.jsx)("button",{onClick:i,"aria-label":"Close",className:td,children:(0,t.jsx)(u.X,{className:"h-4 w-4"})})]})]}),(0,t.jsxs)("div",{className:"mt-3.5 flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)("span",{className:"inline-flex items-center rounded-full px-3 py-1.5 text-[13px] font-medium text-white",style:{backgroundColor:`hsl(var(--${N[e.demand_signal]}))`},title:C[e.demand_signal],children:e.demand_signal}),e.sectors.map(e=>(0,t.jsx)(tc,{sector:e,locale:n},e))]}),(0,t.jsx)("p",{className:"mt-2.5 text-[13px] text-[hsl(var(--rd-source))]",children:j(e)})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto px-[30px] py-6",children:[e.headline&&(0,t.jsx)("p",{className:"mb-[22px] text-balance font-heading text-[20px] font-semibold leading-[1.25] text-foreground",children:e.headline}),(0,t.jsxs)("div",{className:"space-y-[22px]",children:[(0,t.jsx)(tl,{title:"What's being built",children:e.whats_being_built}),(0,t.jsx)(tl,{title:"Why you're in demand",children:e.why_youre_in_demand}),(0,t.jsx)(tl,{title:"What it pays",children:e.what_it_pays}),f&&(0,t.jsxs)("div",{className:"flex items-center gap-2.5 rounded-xl bg-[hsl(var(--rd-blue-050))] px-4 py-3.5 text-[14px] font-medium text-foreground",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"inline-block h-2.5 w-2.5 shrink-0 rounded-full bg-primary"}),f]}),(0,t.jsx)(tl,{title:"Hiring now",children:e.hiring_now}),b&&(0,t.jsxs)("section",{children:[(0,t.jsx)(to,{children:"Key employers"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.key_employers.map(a=>(0,t.jsx)("a",{href:F(`${I(a)} jobs ${P(e)}`),target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center rounded-full bg-muted px-3 py-1.5 text-[13px] font-medium text-foreground transition-colors hover:bg-foreground hover:text-background",children:a},a))})]})]}),(0,t.jsx)("div",{className:"mt-7",children:(0,t.jsx)(h.Button,{color:"blue",size:48,to:D(e),target:"_blank",iconAfter:(0,t.jsx)(g.ArrowRight,{className:"h-4 w-4"}),className:"w-full rounded-[14px] py-4 text-base font-semibold shadow-brand",children:"See roles here"})}),e.source&&(0,t.jsxs)("p",{className:"mt-4 text-[12px] leading-relaxed text-[hsl(var(--rd-source))]",children:["Based on: ",e.source]})]})]})},th=({metro:e,locale:a,onClose:n,isCompared:i=!1,canAddCompare:s=!0,onToggleCompare:o})=>{let c=!l("md",{ssrMatches:!0});return e?c?(0,t.jsx)(r.Overlay,{isOpen:!0,setIsOpen:n,placement:"bottom",size:"full",title:"Metro details",hideTitle:!0,className:"h-[85dvh] bg-card",bodyClassName:"overflow-y-hidden",children:(0,t.jsx)(tu,{metro:e,locale:a,onClose:n,isCompared:i,canAddCompare:s,onToggleCompare:o})}):(0,t.jsx)("aside",{className:"flex h-full w-[440px] shrink-0 flex-col overflow-hidden rounded-[14px] border-l border-border bg-card shadow-[-18px_0_40px_rgba(10,10,15,0.06)]","aria-label":"Metro details",children:(0,t.jsx)(tu,{metro:e,locale:a,onClose:n,isCompared:i,canAddCompare:s,onToggleCompare:o})}):null},tm=()=>({search:"",signals:new Set,sectors:new Set});e.s(["NextEconomyMapContent",0,({locale:e,tool:n,initialSlug:s})=>{let o=(0,a.useMemo)(()=>b.filter(e=>e.metro&&e.latitude&&e.longitude).map(E),[]),d=o.length,u=(0,a.useMemo)(()=>s?e1(o,s):null,[o,s]),[h,p]=(0,a.useState)(u?u.country:"en-US"===e?"US":"UK"),[g,y]=(0,a.useState)(tm()),[f,x]=(0,a.useState)(u??null),[w,v]=(0,a.useState)(!1),[_,k]=(0,a.useState)([]),[S,A]=(0,a.useState)(!1),N=!l("md",{ssrMatches:!0}),C=e=>k(t=>t.some(t=>t.metro===e.metro)?t.filter(t=>t.metro!==e.metro):t.length>=3?t:[...t,e]),j=e=>k(t=>t.filter(t=>t.metro!==e.metro)),M=t=>{x(t);let a=t?(0,c.withLocale)(e,e0(t)):(0,c.withLocale)(e,"/next-economy-map");window.history.replaceState(window.history.state,"",a)};(0,a.useEffect)(()=>{let e=()=>{let e=window.location.pathname.replace(/\/$/,"").split("/"),t="hotspot"===e[e.length-2]?e[e.length-1]:null;x(t?e1(o,t):null)};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[o]);let T=(0,a.useMemo)(()=>o.filter(e=>"Both"===h||e.country===h),[o,h]),O=(0,a.useMemo)(()=>{let e=g.search.trim().toLowerCase(),t=eZ(e);return T.filter(a=>{if(e)if(t){if(!eQ(a,t.synonyms))return!1}else{let t=a.metro.toLowerCase().includes(e)||a.state_region.toLowerCase().includes(e)||a.location.toLowerCase().includes(e),n=eQ(a,[e]);if(!t&&!n)return!1}return(!g.signals.size||!!g.signals.has(a.demand_signal))&&(!g.sectors.size||!!a.sectors.some(e=>g.sectors.has(e)))&&!0})},[T,g]),R=(0,a.useMemo)(()=>{let e=eZ(g.search);return e?e.term:null},[g.search]),L=(0,a.useMemo)(()=>g.search.trim().length>0||g.signals.size>0||g.sectors.size>0?new Set(O.map(e=>`${e.country}-${e.metro}`)):null,[O,g]),I=(0,t.jsx)(eY,{filters:g,onChange:y,onReset:()=>y(tm()),visibleCount:O.length,totalCount:T.length,locale:e,activeSkillTerm:R,results:O,onSelectMetro:e=>{M(e),v(!1)}});return(0,t.jsxs)("section",{"aria-label":n.eyebrow,className:"flex w-full flex-col bg-white",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-8 border-b border-border pb-10 md:flex-row md:items-end md:justify-between md:gap-12",children:[(0,t.jsxs)("div",{className:"max-w-[46rem]",children:[(0,t.jsx)("span",{className:"text-[13px] font-medium uppercase tracking-[0.12em] text-[hsl(var(--rd-grey-500))]",children:n.eyebrow}),(0,t.jsxs)("h2",{className:"mt-4 text-[clamp(2rem,4vw,3.25rem)] font-semibold leading-[1.02] tracking-tight text-black",children:[n.headlineLead.replace("{count}",String(d))," ",(0,t.jsx)("span",{className:"text-primary",children:n.headlineHighlight})]}),(0,t.jsx)("p",{className:"mt-4 max-w-[52ch] text-base leading-relaxed text-[hsl(var(--rd-grey-700))]",children:n.subtitle})]}),(0,t.jsx)("div",{className:"shrink-0",children:(0,t.jsx)(eG,{value:h,onChange:p})})]}),(0,t.jsxs)("div",{className:"flex h-[calc(100vh-1px)] min-h-[520px] bg-white md:h-[64vh]",children:[!N&&(0,t.jsx)("aside",{className:"w-[320px] shrink-0 overflow-y-auto bg-white pr-6",children:I}),(0,t.jsx)("main",{className:"relative min-h-0 min-w-0 flex-1 md:py-4",children:(0,t.jsxs)("div",{className:"relative isolate h-full overflow-hidden rounded-[14px] bg-card shadow-card md:ml-4",children:[(0,t.jsx)(ti,{metros:T,matchedKeys:L,view:h,selectedMetro:f,onSelect:M}),(0,t.jsx)(e6,{}),N&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>v(!0),className:"absolute bottom-5 left-1/2 z-[500] inline-flex -translate-x-1/2 items-center gap-2 rounded-[10px] bg-primary px-5 py-3 font-bold text-white shadow-lg",children:[(0,t.jsx)(i,{className:"h-4 w-4"}),"Filters"]}),(0,t.jsx)(r.Overlay,{isOpen:w,setIsOpen:v,placement:"bottom",size:"full",title:"Filters",className:"h-[80dvh] bg-background",bodyClassName:"px-6",children:I})]})]})}),!N&&f&&(0,t.jsx)("div",{className:"shrink-0 md:py-4 md:pr-4",children:(0,t.jsx)(th,{metro:f,locale:e,onClose:()=>M(null),isCompared:_.some(e=>e.metro===f.metro),canAddCompare:_.length<3,onToggleCompare:C})})]}),(0,t.jsx)(m,{metros:_,onRemove:j,onClear:()=>k([]),onOpenCompare:()=>A(!0),bottomOffset:N?80:16}),N&&f&&(0,t.jsx)(th,{metro:f,locale:e,onClose:()=>M(null),isCompared:_.some(e=>e.metro===f.metro),canAddCompare:_.length<3,onToggleCompare:C}),S&&(0,t.jsx)(z,{metros:_,locale:e,onClose:()=>A(!1),onRemove:j,onAddAnother:()=>A(!1)})]})}],93148)},83364,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(11234),i=e.i(63260);let r=(0,i.asset)("our-story_team.jpg"),s=[{name:"Andrew Martinez-Fonts",role:"VP Product",photo:(0,i.asset)("our-story_andrew-martinez-fonts.jpg"),linkedIn:"https://www.linkedin.com/in/amartinezfonts/"},{name:"Ben Read",role:"Co-founder and CEO",photo:(0,i.asset)("our-story_ben-read.jpg"),linkedIn:"https://www.linkedin.com/in/ben-read-7681b8161/"},{name:"Brittany Belt",role:"Co-founder and COO",photo:(0,i.asset)("our-story_brittany-belt.jpg"),linkedIn:"https://www.linkedin.com/in/brittanybelt/"},{name:"Henry Dockerty",role:"Ops",photo:(0,i.asset)("our-story_henry-dockerty.jpg"),linkedIn:"https://www.linkedin.com/in/henrydockerty/"},{name:"Matt Moran",role:"Founding Engineer",photo:(0,i.asset)("our-story_matt-moran.jpg"),linkedIn:"https://www.linkedin.com/in/matt-moran-070b06195/"},{name:"Suzie Conaghan",role:"Customer Success",photo:(0,i.asset)("our-story_suzie-conaghan.jpg"),linkedIn:"https://www.linkedin.com/in/suzanne-c-06755a203/"},{name:"Tom Wood",role:"Engineer",photo:(0,i.asset)("our-story_tom-wood.jpg"),linkedIn:"https://www.linkedin.com/in/tomwood-cs/"}],o=[{src:(0,i.asset)("press_nbc.webp"),alt:"NBC",href:"https://www.11alive.com/article/money/economy/nonprofit-study-redeployable-hire-heroes-ai-proof-jobs-for-veterans/85-e1ab1e6e-b3b2-4aa3-979b-d01c1f11dc41",height:56},{src:(0,i.asset)("press_federal-news-network.png"),alt:"Federal News Network",href:"https://federalnewsnetwork.com/veterans-affairs/2026/02/as-ai-transforms-the-workforce-a-new-report-finds-veterans-may-have-an-edge/",height:38},{src:(0,i.asset)("press_military-com.svg"),alt:"Military.com",href:"https://www.military.com/feature/2026/03/04/6-ai-proof-sweet-spot-careers-where-veterans-dominate-2026-new-report-reveals-winners.html",height:52}],l=[{outlet:"Newport News Daily",date:"Jul 2026",href:"https://www.newportnewsdaily.com/p/newport-news-shipbuilding-focuses-on-veterans-to-fill-the-ranks"},{outlet:"American Warrior Radio",date:"Jun 2026",href:"https://americanwarriorradio.com/2026/06/redeployable-io-ceo-co-founder-ben-read/"},{outlet:"NBC Atlanta",date:"Apr 2026",href:"https://www.11alive.com/article/money/economy/nonprofit-study-redeployable-hire-heroes-ai-proof-jobs-for-veterans/85-e1ab1e6e-b3b2-4aa3-979b-d01c1f11dc41"},{outlet:"Security Clearance Careers",date:"Apr 2026",href:"https://news.clearancejobs.com/2026/04/28/career-guide-for-transitioning-services-members/"},{outlet:"Security Clearance Careers",date:"Apr 2026",href:"https://news.clearancejobs.com/2026/04/20/job-search-strategy-where-veterans-should-focus-in-2026/"},{outlet:"Oscar Mike Radio",date:"Mar 2026",href:"https://podcasts.apple.com/us/podcast/oscar-mike-radio/id1177042501?i=1000756242283"},{outlet:"Military.com",date:"Mar 2026",href:"https://www.military.com/feature/2026/03/04/6-ai-proof-sweet-spot-careers-where-veterans-dominate-2026-new-report-reveals-winners.html"},{outlet:"HR Empowerment",date:"Mar 2026",href:"https://podcasts.apple.com/us/podcast/hr-empowerment/id1681612919?i=1000752481335"},{outlet:"Homefront Sitrep",date:"Feb 2026",href:"https://podcasts.apple.com/us/podcast/homefront-sitrep/id1675628730?i=1000750597549"},{outlet:"Federal News Network",date:"Feb 2026",href:"https://federalnewsnetwork.com/veterans-affairs/2026/02/as-ai-transforms-the-workforce-a-new-report-finds-veterans-may-have-an-edge/"},{outlet:"Conversations with a Vet",date:"Dec 2025",href:"https://www.youtube.com/watch?v=Ju0E5FvHf6g&t=109s"},{outlet:"Military.com",date:"Dec 2025",href:"https://www.military.com/feature/2025/12/10/combat-ready-career-ready-ai-powered-transition-todays-forces.html"}],c="[email protected]";e.s(["OurStoryContent",0,({copy:e})=>{let[i,d]=(0,a.useState)(!1),u=(0,a.useId)();return(0,t.jsxs)("div",{className:"ourstory",children:[(0,t.jsx)("header",{id:"top",className:"os-hero",children:(0,t.jsxs)("div",{className:"os-hero-inner",children:[(0,t.jsxs)("div",{className:"os-hero-text",children:[(0,t.jsx)("p",{className:"os-eyebrow os-eyebrow--accent",children:e.hero.eyebrow}),(0,t.jsxs)("h1",{className:"os-hero-title",children:[e.hero.titleLead,(0,t.jsx)("span",{className:"os-accent",children:e.hero.titleHighlight})]})]}),(0,t.jsx)("img",{className:"os-hero-image",src:r,alt:e.hero.imageAlt})]})}),(0,t.jsx)("section",{className:"os-band os-mission",children:(0,t.jsxs)("div",{className:"os-band-inner os-mission-inner",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"os-eyebrow",children:e.mission.eyebrow}),(0,t.jsx)("h2",{className:"os-heading",children:e.mission.heading})]}),(0,t.jsx)("div",{className:"os-prose",children:e.mission.paragraphs.map(e=>(0,t.jsx)("p",{children:e},e))})]})}),(0,t.jsx)("section",{className:"os-band os-press",children:(0,t.jsxs)("div",{className:"os-band-inner",children:[(0,t.jsx)("h2",{className:"os-eyebrow os-eyebrow--center",children:e.press.eyebrow}),(0,t.jsx)("div",{className:"os-press-logos",children:o.map(a=>(0,t.jsxs)("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)("img",{src:a.src,alt:a.alt,style:{height:`${a.height}px`},loading:"lazy"}),(0,t.jsx)("span",{className:"sr-only",children:e.press.newTab})]},a.alt))}),(0,t.jsx)("div",{className:"os-press-toggle",children:(0,t.jsx)(n.Button,{variant:"bare",onClick:()=>d(e=>!e),"aria-expanded":i,"aria-controls":u,children:i?e.press.hideAll:e.press.showAll})}),(0,t.jsxs)("div",{className:"os-mentions",id:u,hidden:!i,children:[(0,t.jsx)("h3",{className:"os-eyebrow",children:e.press.listHeading}),l.map(a=>(0,t.jsxs)("a",{className:"os-mention",href:a.href,target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)("span",{className:"os-mention-outlet",children:a.outlet}),(0,t.jsxs)("span",{className:"os-mention-date",children:[a.date," ",(0,t.jsx)("span",{"aria-hidden":"true",children:"â"}),(0,t.jsx)("span",{className:"sr-only",children:e.press.newTab})]})]},`${a.outlet}-${a.href}`))]}),(0,t.jsxs)("p",{className:"os-press-contact",children:[e.press.contactLead," ",(0,t.jsx)("a",{href:`mailto:${c}`,children:c}),"."]})]})}),(0,t.jsx)("section",{className:"os-band os-team",children:(0,t.jsxs)("div",{className:"os-band-inner",children:[(0,t.jsx)("p",{className:"os-eyebrow",children:e.team.eyebrow}),(0,t.jsxs)("div",{className:"os-team-intro",children:[(0,t.jsx)("h2",{className:"os-heading os-heading--lg",children:e.team.heading}),(0,t.jsx)("p",{className:"os-team-blurb",children:e.team.intro})]}),(0,t.jsx)("ul",{className:"os-team-grid",children:s.map(a=>(0,t.jsxs)("li",{children:[(0,t.jsx)("img",{className:"os-team-photo",src:a.photo,alt:"",loading:"lazy"}),(0,t.jsx)("h3",{className:"os-team-name",children:a.name}),(0,t.jsx)("p",{className:"os-team-role",children:a.role}),(0,t.jsxs)("a",{className:"os-team-link",href:a.linkedIn,target:"_blank",rel:"noopener noreferrer","aria-label":e.team.linkedInLabel.replace("{name}",a.name),children:[e.team.linkedIn," ",(0,t.jsx)("span",{"aria-hidden":"true",children:"â"})]})]},a.linkedIn))})]})})]})}],83364)},20814,e=>{"use strict";var t=e.i(43476),a=e.i(70703),n=e.i(87596),i=e.i(2582),r=e.i(87036),s=e.i(63260);let o=(0,a.default)(()=>e.A(62464).then(e=>e.SkillsTranslatorTool),{loadableGenerated:{modules:[31948]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"translator-embed-loading","aria-hidden":"true"})}),l="https://app.redeployable.io/signup",c="translator-tool",d=[(0,s.asset)("st-feature-skills-translation.png"),(0,s.asset)("st-feature-cv-builder.png"),
30(0,s.asset)("st-feature-upskilling-plan.png"),(0,s.asset)("st-feature-interview-prep.png"),(0,s.asset)("st-feature-job-simulations.png"),(0,s.asset)("st-feature-hiring-teams.png")],u=(0,s.asset)("st-cta-gradient.jpg"),h="linear-gradient(rgba(0, 26, 102, 0.45), rgba(0, 26, 102, 0.45))",m="bg-[#fafaf7]",p=({children:e,className:a})=>(0,t.jsx)(n.Overline2,{as:"p",className:(0,i.cn)("font-semibold text-blue-600",a),children:e}),g=()=>(0,t.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:(0,t.jsx)("polyline",{points:"20 6 9 17 4 12",stroke:"currentColor",strokeWidth:"3.5",strokeLinecap:"round",strokeLinejoin:"round"})}),y=({value:e,label:a})=>{let r=/^[+\-\d]/.test(e);return(0,t.jsxs)("div",{className:"rounded-[18px] bg-blue-50 px-6 py-6",children:[(0,t.jsx)("p",{className:(0,i.cn)("font-heading font-semibold leading-none tracking-[-0.02em] text-blue-600",r?"text-[32px] sm:text-[38px]":"text-[24px] sm:text-[26px]"),children:e}),(0,t.jsx)(n.Body16,{className:"mt-2 text-gray-700",children:a})]})};e.s(["CTA_SCRIM",0,h,"FEATURE_ICONS",0,d,"SkillsTranslatorContent",0,({copy:e,apiUrl:a})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("section",{className:(0,i.cn)(m,"pt-14 lg:pt-20"),children:(0,t.jsxs)("div",{className:"site-container text-center",children:[(0,t.jsx)("div",{className:"hero-in hero-in-1",children:(0,t.jsx)(p,{className:"inline-block rounded-lg bg-blue-50 px-3.5 py-2",children:e.hero.eyebrow})}),(0,t.jsxs)("h1",{className:"hero-in hero-in-1 mx-auto mt-6 max-w-[900px] font-heading text-[40px] font-semibold leading-[0.98] tracking-[-0.02em] text-balance sm:text-[52px] lg:text-[64px] lg:leading-[0.95]",children:[e.hero.titleLead,(0,t.jsx)("span",{className:"text-blue-600",children:e.hero.titleHighlight})]}),(0,t.jsx)(n.Body18,{className:"hero-in hero-in-2 mx-auto mt-6 max-w-[58ch] text-gray-700 lg:text-[19px]",children:e.hero.subtitle}),(0,t.jsxs)("div",{className:"hero-in hero-in-2 mt-9 flex flex-col items-center gap-4",children:[(0,t.jsx)("a",{href:`#${c}`,className:"rounded-[10px] bg-blue-600 px-8 py-4 font-heading text-[17px] font-semibold text-white shadow-[0_24px_60px_rgba(0,51,255,0.18)] transition-colors hover:bg-blue-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600",children:e.hero.cta}),(0,t.jsx)(n.Body16,{className:"font-medium text-gray-700",children:e.hero.ctaNote})]})]})}),(0,t.jsx)("section",{id:c,tabIndex:-1,className:(0,i.cn)(m,"scroll-mt-24 pt-14 outline-none lg:pt-16"),children:(0,t.jsx)("div",{className:"site-container",children:(0,t.jsx)("div",{className:"translator-embed-wrap hero-in hero-in-2",children:(0,t.jsx)(o,{copy:e.tool,apiUrl:a})})})}),(0,t.jsx)("section",{className:(0,i.cn)(m,"pt-8 pb-20 lg:pb-22"),children:(0,t.jsx)("div",{className:"site-container",children:(0,t.jsxs)(r.Reveal,{className:"grid overflow-hidden rounded-[24px] border border-border bg-white shadow-[0_6px_14px_rgba(10,10,15,0.08),0_2px_4px_rgba(10,10,15,0.04)] lg:grid-cols-2",children:[(0,t.jsxs)("div",{className:"p-8 lg:p-12",children:[(0,t.jsx)(p,{children:e.taste.eyebrow}),(0,t.jsx)("h2",{className:"mt-3 font-heading text-[28px] font-semibold leading-[1.02] tracking-[-0.02em] sm:text-[38px] sm:leading-[0.98]",children:e.taste.title}),(0,t.jsx)(n.Body16,{className:"mt-4 text-gray-700",children:e.taste.body}),(0,t.jsx)("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"mt-7 inline-block rounded-[10px] bg-blue-600 px-6 py-4 font-heading text-base font-semibold text-white shadow-[0_24px_60px_rgba(0,51,255,0.18)] transition-colors hover:bg-blue-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600",children:e.taste.cta})]}),(0,t.jsx)("ul",{className:"flex flex-col gap-5 border-border bg-blue-50 p-8 lg:border-l lg:p-12",children:e.taste.points.map(e=>(0,t.jsxs)("li",{className:"flex items-start gap-3.5",children:[(0,t.jsx)("span",{className:"mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-blue-600 text-white",children:(0,t.jsx)(g,{})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-heading text-[17px] font-semibold tracking-[-0.01em]",children:e.title}),(0,t.jsx)(n.Body14,{className:"mt-1 text-gray-700",children:e.body})]})]},e.title))})]})})}),(0,t.jsx)("section",{className:(0,i.cn)(m,"pb-20 lg:pb-22"),children:(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsxs)("div",{className:"max-w-[660px]",children:[(0,t.jsx)(p,{children:e.platform.eyebrow}),(0,t.jsx)("h2",{className:"mt-3 font-heading text-[30px] font-semibold leading-[1.02] tracking-[-0.02em] text-balance sm:text-[42px] sm:leading-[0.98]",children:e.platform.t
30itle}),(0,t.jsx)(n.Body18,{className:"mt-4 text-gray-700 lg:text-[17px]",children:e.platform.intro})]}),(0,t.jsx)("ul",{className:"mt-11 grid gap-5 sm:grid-cols-2 lg:grid-cols-3",children:e.platform.features.map((e,a)=>(0,t.jsxs)(r.Reveal,{as:"li",className:"rounded-[18px] border border-border bg-white p-7 transition-[transform,box-shadow] hover:-translate-y-1 hover:shadow-[0_6px_14px_rgba(10,10,15,0.08),0_2px_4px_rgba(10,10,15,0.04)]",children:[d[a]&&(0,t.jsx)("img",{src:d[a],alt:"","aria-hidden":"true",width:96,height:96,loading:"lazy",className:"block size-24 object-contain"}),(0,t.jsx)("h3",{className:"mt-4 font-heading text-[19px] font-semibold tracking-[-0.01em]",children:e.title}),(0,t.jsx)(n.Body14,{className:"mt-2 text-gray-600",children:e.body})]},e.title))})]})}),(0,t.jsx)("section",{className:"border-t border-border bg-white py-20 lg:py-22",children:(0,t.jsxs)("div",{className:"site-container grid gap-12 lg:grid-cols-2 lg:items-center lg:gap-14",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(p,{children:e.stepDown.eyebrow}),(0,t.jsx)("h2",{className:"mt-3.5 font-heading text-[32px] font-semibold leading-[1.02] tracking-[-0.02em] text-balance sm:text-[46px] sm:leading-[0.98]",children:e.stepDown.title}),(0,t.jsx)(n.Body18,{className:"mt-5 text-gray-700",children:e.stepDown.body}),(0,t.jsx)(n.Body18,{className:"mt-4 font-medium text-blue-600",children:e.stepDown.emphasis})]}),(0,t.jsx)("div",{className:"flex flex-col gap-4",children:e.stepDown.stats.map(e=>(0,t.jsx)(r.Reveal,{children:(0,t.jsx)(y,{value:e.value,label:e.label})},e.value))})]})}),(0,t.jsx)("section",{className:"bg-blue-600 bg-cover bg-center py-20 text-center text-white lg:py-22",style:{backgroundImage:`${h}, url(${u})`},children:(0,t.jsxs)("div",{className:"site-container",children:[(0,t.jsxs)("h2",{className:"font-heading text-[32px] font-semibold leading-[1.02] tracking-[-0.02em] text-balance sm:text-[48px] sm:leading-[0.98]",children:[e.closing.titleLine1,(0,t.jsx)("br",{}),e.closing.titleLine2]}),(0,t.jsx)(n.Body18,{className:"mx-auto mt-5 max-w-[48ch] text-white",children:e.closing.body}),(0,t.jsx)("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"mt-8 inline-block rounded-[10px] bg-white px-7 py-4 font-heading text-base font-semibold text-blue-600 transition-opacity hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",children:e.closing.cta})]})})]})])},20653,e=>{"use strict";var t=e.i(43476),a=e.i(71645);let n=(0,e.i(56420).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var i=e.i(63676),r=e.i(22016),s=e.i(87596),o=e.i(2582),l=e.i(88698),c=e.i(8684),d=e.i(30475);e.s(["TransitionArticlesIndexContent",0,({locale:e,copy:u,items:h})=>{let[m,p]=(0,a.useState)(""),[g,y]=(0,a.useState)("all"),f=m.trim().toLowerCase();(0,a.useEffect)(()=>{let e=()=>{let e=(0,d.branchFromAnchor)(window.location.hash.replace(/^#/,""));y(e?e.name:"all")};return e(),window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]);let b=(0,a.useCallback)(e=>{y(e);let t="all"===e?window.location.pathname+window.location.search:`#${(0,d.branchAnchor)(e)}`;window.history.replaceState(null,"",t)},[]),x=(0,a.useMemo)(()=>h.map(e=>{let t=(0,d.branchOf)(e.title);return{...e,branch:t.name,role:(0,d.roleNameOf)(e.title,t.name)}}),[h]),w=(0,a.useCallback)((e,t)=>""===f||e.toLowerCase().includes(f)||t.toLowerCase().includes(f),[f]),v=(0,a.useMemo)(()=>{let e=new Map;for(let t of d.BRANCHES)e.set(t.name,0);for(let t of x)w(t.role,t.title)&&e.set(t.branch,(e.get(t.branch)??0)+1);return e},[x,w]),_=(0,a.useMemo)(()=>d.BRANCHES.filter(e=>"all"===g||e.name===g).map(e=>({branch:e,roles:x.filter(t=>t.branch===e.name&&w(t.role,t.title)).sort((e,t)=>e.role.localeCompare(t.role))})).filter(e=>e.roles.length>0),[x,g,w]),k=(0,a.useMemo)(()=>_.reduce((e,t)=>e+t.roles.length,0),[_]),S=1===k?u.resultSingular:u.resultPlural,A="all"===g?u.armedForcesLabel:g,N=""===f?u.resultsAll.replace("{count}",String(k)).replace("{word}",S).replace("{scope}",A):0===k?"":u.resultsFiltered.replace("{count}",String(k)).replace("{word}",S).replace("{scope}",A),C=[{key:"all",label:u.allBranchesLabel,count:null}].concat(d.BRANCHES.map(e=>
30({key:e.name,label:e.name,count:v.get(e.name)??0})));return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("section",{className:"site-container pb-2 pt-16 text-center sm:pt-20",children:[(0,t.jsx)(s.Overline1,{as:"p",className:"mb-5 tracking-[0.14em] text-blue-600",children:u.eyebrow}),(0,t.jsxs)(s.H1,{className:"mx-auto max-w-[15ch] text-[clamp(2.5rem,6vw,3.75rem)] leading-[0.95]",children:[u.titlePrefix," ",(0,t.jsx)("span",{className:"text-blue-600",children:u.titleHighlight})," ",u.titleSuffix]}),(0,t.jsx)(s.Body16,{as:"p",className:"mx-auto mt-6 max-w-[60ch] text-lg text-gray-600",children:u.description}),(0,t.jsxs)("div",{className:"mx-auto mt-9 max-w-xl",children:[(0,t.jsx)("label",{htmlFor:"trade-search",className:"sr-only",children:u.searchPlaceholder}),(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-[14px] border border-gray-200 bg-white px-5 py-4 shadow-[0_6px_14px_rgba(10,10,15,0.04)] focus-within:border-blue-600",children:[(0,t.jsx)(n,{className:"size-5 flex-none text-gray-400","aria-hidden":"true"}),(0,t.jsx)("input",{id:"trade-search",type:"search",value:m,onChange:e=>p(e.target.value),placeholder:u.searchPlaceholder,className:"min-w-0 flex-1 bg-transparent text-gray-900 outline-none placeholder:text-gray-400"}),m&&(0,t.jsx)("button",{type:"button",onClick:()=>p(""),"aria-label":u.resetLabel,className:"flex-none rounded-full p-1 text-gray-400 hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-600/20",children:(0,t.jsx)(i.X,{className:"size-4","aria-hidden":"true"})})]})]})]}),(0,t.jsxs)("div",{className:"site-container flex flex-col items-center gap-4 pt-8",children:[(0,t.jsx)("div",{className:"flex flex-wrap justify-center gap-2.5",children:C.map(e=>{let a=g===e.key;return(0,t.jsxs)("button",{type:"button",onClick:()=>b(e.key),"aria-pressed":a,className:(0,o.cn)("inline-flex items-center gap-2 rounded-full border px-4 py-2.5 text-sm font-medium transition-colors","focus:outline-none focus:ring-2 focus:ring-blue-600/20",a?"border-blue-600 bg-blue-600 text-white":"border-gray-200 bg-white text-gray-700 hover:border-blue-600"),children:[e.label,null!==e.count&&(0,t.jsx)("span",{className:(0,o.cn)("rounded-full px-[7px] py-[3px] text-xs font-semibold leading-none",a?"bg-white/20 text-white":"bg-gray-100 text-gray-500"),children:e.count})]},e.key)})}),N&&(0,t.jsx)(s.Body16,{as:"span",className:"text-sm text-gray-500","aria-live":"polite",children:N})]}),(0,t.jsx)("main",{className:"site-container pb-10 pt-9",children:0===k?(0,t.jsxs)("div",{role:"status",className:"py-16 text-center",children:[(0,t.jsx)(s.Sub20,{as:"p",className:"mb-2.5 text-[26px]",children:u.noResultsTitle.replace("{query}",m.trim())}),(0,t.jsx)(s.Body16,{as:"p",className:"mb-6 text-gray-500",children:u.noResultsBody}),(0,t.jsx)("button",{type:"button",onClick:()=>{p(""),b("all")},className:"rounded-xl bg-blue-600 px-6 py-3 text-sm font-medium text-white hover:bg-[#0039c9] focus:outline-none focus:ring-2 focus:ring-blue-600/30",children:u.showAllLabel})]}):(0,t.jsx)("div",{className:"flex flex-col gap-[52px]",children:_.map(a=>(0,t.jsxs)("section",{children:[(0,t.jsxs)("div",{className:"mb-5 flex items-center gap-4",children:[(0,t.jsx)("span",{className:"h-[30px] w-[5px] flex-none rounded-[3px] bg-blue-600","aria-hidden":"true"}),(0,t.jsx)(s.Sub20,{as:"h2",className:"text-[30px] leading-none",children:a.branch.name}),(0,t.jsxs)(s.Body16,{as:"span",className:"text-sm font-medium text-gray-500",children:[a.roles.length," ",1===a.roles.length?u.resultSingular:u.resultPlural]})]}),(0,t.jsx)("ul",{className:"border-t border-gray-200 sm:columns-2 lg:columns-3",children:a.roles.map(a=>(0,t.jsx)("li",{className:"break-inside-avoid",children:(0,t.jsxs)(r.default,{href:(0,c.withLocale)(e,`/military-transition-articles/${a.slug}`),className:"flex items-center justify-between gap-3 border-b border-gray-200 py-3.5 text-gray-800 transition-[color,padding] hover:pl-2 hover:text-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-600/20",children:[(0,t.jsx)(s.Body16,{as:"span",className:"text-[15px] font-medium",children:a.role}),(0,t.jsx)("span",{"aria-hidden":"true",className:"flex-none text-gray-300",children:"â"})]})},a.slug))})]},a.branch.name))})}),(0,t.jsx)(l.TransitionEmployerCta,{locale:e,copy:u.employer})]})}],20653)},88698,30475,e=>{"use strict";var t=e.i(43476),a=e.i(22016),n=e.i(87596),i=e.i(2582),r=e.i(8684);e.s(["TransitionEmployerCta",0,({locale:e,copy:s})=>(0,t.jsx)("section",{className:"site-container pb-16",children:(0,t.jsxs)("div",{className:"grid items-center gap-8 rounded-[22px] bg-[#EEF1FF] px-8 py-11 sm:px-12 lg:grid-cols-[1.4fr_1fr]",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Overline1,{as:"p",className:"mb-3 text-blue-600",children:s.eyebrow}),(0,t.jsx)(n.H3,{as:"h2",className:"max-w-[18ch] text-left text-[clamp(1.75rem,4vw,2.125rem)] leading-[1.05]",children:s.heading}),(0,t.jsx)(n.Body18,{as:"p",className:"mt-3 max-w-[52ch] text-gray-700",children:s.body})]}),(0,t.jsx)("div",{className:"flex lg:justify-end",children:(0,t.jsx)(a.default,{href:(0,r.withLocale)(e,"/m
30ilitary-skills-translator"),className:(0,i.cn)("inline-flex items-center gap-2 rounded-xl bg-blue-600 px-7 py-4 font-medium text-white","transition-colors hover:bg-[#0039c9] focus:outline-none focus:ring-2 focus:ring-blue-600/30"),children:s.button})})]})})],88698);let s=[{name:"Royal Air Force",abbr:"RAF"},{name:"Royal Navy",abbr:"RN"},{name:"British Army",abbr:"Army"},{name:"Royal Marines",abbr:"RM"}],o=e=>e.toLowerCase().replace(/\s+/g,"-");e.s(["BRANCHES",0,s,"CATEGORY_PILL",0,{leave:"text-blue-600 bg-[#EEF1FF]",roadmap:"text-[#B4531F] bg-[#FBE4D3]",career:"text-[#2A4E9A] bg-[#DCE6FA]",retire:"text-[#4A4A45] bg-[#ECECE8]"},"GUIDE_CATEGORIES",0,["leave","roadmap","career","retire"],"branchAnchor",0,o,"branchFromAnchor",0,e=>s.find(t=>o(t.name)===e),"branchOf",0,e=>s.find(t=>e.startsWith(t.name))??s[0],"categoryOf",0,e=>{let t=e.toLowerCase();return/should i leave|thinking of leaving|is it time to leave/.test(t)?"leave":/roadmap|transition(ing)? to civ|successful transition/.test(t)?"roadmap":/career opportunit|career path|civilian success|opportunities for/.test(t)?"career":/retirement|resettlement|planning your military/.test(t)?"retire":null},"roleNameOf",0,(e,t)=>e.startsWith(t)?e.slice(t.length).trim():e],30475)},87973,e=>{"use strict";var t=e.i(43476),a=e.i(22016),n=e.i(87596),i=e.i(2582),r=e.i(88698),s=e.i(8684),o=e.i(30475);let l=["Zero","One","Two","Three","Four"];e.s(["TransitionHubContent",0,({locale:e,copy:c,title:d,leadHtml:u,articles:h,siblingRoles:m})=>{let p=(0,s.withLocale)(e,"/military-transition-articles"),g=(0,o.branchOf)(d),y=(0,o.roleNameOf)(d,g.name),f=y.lastIndexOf(" "),b=f>=0?y.slice(0,f+1):"",x=f>=0?y.slice(f+1):y,w=o.GUIDE_CATEGORIES.map(e=>{let t=h.find(t=>(0,o.categoryOf)(t.title)===e);return t?{category:e,article:t,copy:c.categories[e]}:null}).filter(e=>null!==e),v=m.slice(0,12);return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("article",{className:"site-container",children:[(0,t.jsx)("nav",{"aria-label":"Breadcrumb",className:"pt-7",children:(0,t.jsxs)("ol",{className:"flex flex-wrap items-center gap-2 text-sm text-gray-500",children:[(0,t.jsx)("li",{children:(0,t.jsx)(a.default,{href:p,className:"text-gray-500 hover:text-blue-600",children:c.breadcrumbLabel})}),(0,t.jsx)("li",{"aria-hidden":"true",className:"text-gray-300",children:"/"}),(0,t.jsx)("li",{children:(0,t.jsx)(a.default,{href:`${p}#${(0,o.branchAnchor)(g.name)}`,className:"font-medium text-blue-600 hover:underline",children:g.name})}),(0,t.jsx)("li",{"aria-hidden":"true",className:"text-gray-300",children:"/"}),(0,t.jsx)("li",{"aria-current":"page",className:"text-gray-800",children:y})]})}),(0,t.jsxs)("header",{className:"max-w-[60ch] pt-7",children:[(0,t.jsxs)(n.Overline1,{as:"p",className:"text-blue-600",children:[g.name," ",c.eyebrowSuffix]}),(0,t.jsxs)(n.H1,{className:"mt-3.5 text-left text-[clamp(2.25rem,5vw,3rem)] leading-[0.98]",children:[b,(0,t.jsx)("span",{className:"text-blue-600",children:x})]}),u&&(0,t.jsx)("div",{className:"bb-prose mt-4 text-lg text-gray-700",dangerouslySetInnerHTML:{__html:u}})]}),w.length>0&&(0,t.jsxs)("section",{className:"pt-12",children:[(0,t.jsxs)("div",{className:"mb-5 flex items-center gap-4",children:[(0,t.jsx)("span",{className:"h-[26px] w-[5px] flex-none rounded-[3px] bg-blue-600","aria-hidden":"true"}),(0,t.jsx)(n.Sub20,{as:"h2",className:"text-2xl leading-none",children:c.guidesHeading.replace("{count}",l[w.length]).replace("{guides}",1===w.length?c.guideSingular:c.guidePlural).replace("{role}",`${g.abbr} ${y}`)})]}),(0,t.jsx)("div",{className:"grid gap-5 md:grid-cols-2",children:w.map(({category:r,article:l,copy:d})=>(0,t.jsxs)(a.default,{href:(0,s.withLocale)(e,`/military-transition-article/${l.slug}`),className:(0,i.cn)("group flex flex-col gap-3.5 rounded-[18px] border border-gray-200 bg-white p-8 text-gray-900","transition-[transform,box-shadow,border-color] hover:-translate-y-0.5 hover:border-blue-600","hover:shadow-[0_14px_30px_rgba(10,10,15,0.09)] focus:outline-none focus:ring-2 focus:ring-blue-600/20"),children:[(0,t.jsx)("span",{className:(0,i.cn)("inline-flex w-fit items-center rounded-full px-3 py-1.5 text-xs font-medium",o.CATEGORY_PILL[r]),children:d.label}),(0,t.jsx)(n.Sub20,{as:"h3",className:"text-[23px] leading-[1.08]",children:d.title}),(0,t.jsx)(n.Body16,{as:"p",className:"text-[15px] text-gray-500",children:d.description}),(0,t.jsxs)("span",{className:"mt-1 inline-flex items-center gap-2 text-[15px] font-medium text-blue-600",children:[c.readLink,(0,t.jsx)("span",{"aria-hidden":"true",children:"â"})]})]},r))})]}),v.length>0&&(0,t.jsxs)("section",{className:"mt-[52px] border-t border-gray-200 pt-11",children:[(0,t.jsxs)("div",{className:"mb-5 flex flex-wrap items-baseline justify-between gap-4",children:[(0,t.jsx)(n.Sub20,{as:"h2",className:"text-2xl leading-none",children:c.otherRolesHeading.replace("{abbr}",g.abbr)}),(0,t.jsxs)(a.default,{href:p,className:"text-[15px] font-medium text-blue-600 hover:underline",children:[c.allRolesLink," â"]})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2.5",children:v.map(n=>(0,t.jsx)(a.default,{href:(0,s.withLocale)(e,`/military-transition-articles/${n.slug}`),className:"rounded-full border border-gray-200 bg-white px-4 py-2.5 text-sm font-medium text-gray-700 transition-colors hover:border-blue-600 hover:text-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-600/20",children:n.role},n.slug))})]})]}),(0,t.jsx)("div",{className:"pt-14",children:(0,t.jsx)(r.TransitionEmployerCta,{locale:e,copy:c.employer})})]})}])},13511,e=>{"use strict";var t=e.i(43476),a=e.i(11234),n=e.i(2582);e.s(["CtaButton",0,({href:e,children:i,variant:r="solid",className:s,newTab:o=!0})=>(0,t.jsx)(a.Button,{to:e,target:o?"_blank":void 0,color:"solid"===r?"blue":"outline-blue",className:(0,n.cn)("h-auto rounded-lg px-6 py-4 font-medium leading-none","solid"===r?"border-0 hover:bg-[#0039c9]":"border-[1.5px]",s),children:i})])},87036,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(2582);e.s(["Reveal",0,({children:e,as:i,delay:r,className:s})=>{let o=(0,a.useRef)(null),[l,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=o.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0].isIntersecting&&(c(!0),t.disconnect())}
30,{threshold:.15,rootMargin:"0px 0px -10% 0px"});return t.observe(e),()=>t.disconnect()},[]),(0,t.jsx)(i??"div",{ref:o,className:(0,n.cn)("reveal",r&&`reveal-delay-${r}`,l&&"is-visible",s),children:e})}])},90595,e=>{"use strict";let t=["January","February","March","April","May","June","July","August","September","October","November","December"];e.s(["formatDate",0,(e,a)=>{if(!e)return"";let[n,i,r]=e.split("-").map(Number);return n&&i&&r?"en-US"===a?`${t[i-1]} ${r}, ${n}`:`${r} ${t[i-1]} ${n}`:e}])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.