:root{
--black:#050505;
--ink:#111111;
--white:#ffffff;
--offwhite:#f6f5f1;
--paper:#fbfaf7;
--soft:#e8e6df;
--line:#d8d6cf;
--muted:#6f6f6f;
--lightmuted:#9a9a9a;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
font-family:"Poppins",Arial,sans-serif;
background:var(--offwhite);
color:var(--black);
overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
button,input,select{font:inherit}

body:before{
content:"";
position:fixed;
inset:0;
z-index:-3;
background:
linear-gradient(180deg,#ffffff 0%,#f6f5f1 48%,#ededeb 100%);
}

body:after{
content:"";
position:fixed;
inset:0;
z-index:-2;
opacity:.45;
pointer-events:none;
background-image:
linear-gradient(rgba(0,0,0,.035) 1px,transparent 1px),
linear-gradient(90deg,rgba(0,0,0,.035) 1px,transparent 1px);
background-size:84px 84px;
mask-image:radial-gradient(circle at center,black,transparent 78%);
}

.grain{
position:fixed;
inset:0;
pointer-events:none;
z-index:99;
opacity:.045;
background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.container{width:min(1180px,calc(100% - 40px));margin:auto}
section{position:relative;padding:82px 0}

header{
position:fixed;
z-index:80;
top:18px;
left:50%;
transform:translateX(-50%);
width:min(1180px,calc(100% - 28px));
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.78);
backdrop-filter:blur(24px);
border-radius:999px;
}

.nav{
display:grid;
grid-template-columns:190px 1fr 330px;
align-items:center;
gap:18px;
padding:10px 12px 10px 22px;
}

.logo{
  display:flex;
  align-items:center;
  width:180px;
}
.logo img{
  display:block;
  width:170px;
  height:auto;
}

.links{
display:flex;
justify-content:center;
gap:24px;
font-size:11px;
text-transform:uppercase;
letter-spacing:.18em;
color:var(--muted);
font-weight:500;
}
.links a:hover{color:var(--black)}

.nav-actions{display:flex;justify-content:flex-end;gap:10px}

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
border-radius:999px;
padding:13px 18px;
font-size:13px;
font-weight:600;
border:1px solid var(--black);
transition:.25s ease;
cursor:pointer;
white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--black);color:var(--white);border-color:var(--black)}
.btn.primary:hover{background:transparent;color:var(--black)}
.btn.secondary{background:transparent;color:var(--black);border-color:rgba(0,0,0,.28)}
.btn.secondary:hover{background:var(--black);color:var(--white);border-color:var(--black)}
.btn.dark{background:var(--black);color:white;border-color:var(--black)}

.hero{
min-height:100vh;
display:flex;
align-items:center;
padding-top:150px;
}

.eyebrow{
display:inline-flex;
padding:10px 14px;
border:1px solid rgba(0,0,0,.12);
border-radius:999px;
background:rgba(255,255,255,.55);
color:var(--muted);
font-size:11px;
font-weight:500;
letter-spacing:.24em;
text-transform:uppercase;
margin-bottom:26px;
}

h1{
font-size:clamp(58px,10vw,142px);
line-height:.82;
letter-spacing:-.09em;
font-weight:700;
max-width:1080px;
}

.hero-grid{
display:grid;
grid-template-columns:1.15fr .85fr;
gap:48px;
align-items:end;
margin-top:48px;
}

.lead{
max-width:690px;
color:var(--muted);
font-size:clamp(18px,2vw,23px);
font-weight:300;
line-height:1.7;
}

.hero-panel{
border:1px solid rgba(0,0,0,.12);
border-radius:38px;
background:rgba(255,255,255,.66);
overflow:hidden;
position:relative;
min-height:300px;
padding:24px;
}

.hero-panel:before{
content:"";
position:absolute;
width:330px;
height:330px;
border-radius:50%;
border:1px solid rgba(0,0,0,.08);
right:-90px;
top:-100px;
animation:float 5s ease-in-out infinite alternate;
}

@keyframes float{
from{transform:translate(0,0) scale(1)}
to{transform:translate(-30px,35px) scale(1.18)}
}

.metric-grid{
position:relative;
z-index:2;
display:grid;
grid-template-columns:repeat(3,1fr);
gap:12px;
}
.metric{
padding:18px;
border-radius:22px;
background:var(--paper);
border:1px solid rgba(0,0,0,.1);
}
.metric b{
display:block;
font-size:34px;
font-weight:700;
letter-spacing:-.055em;
}
.metric span{
display:block;
margin-top:5px;
font-size:12px;
color:var(--muted);
font-weight:300;
}

.signal-map{
position:absolute;
left:24px;
right:24px;
bottom:22px;
height:130px;
border-radius:26px;
border:1px solid rgba(0,0,0,.1);
background:
radial-gradient(circle at 20% 50%,rgba(0,0,0,.18),transparent 10%),
radial-gradient(circle at 50% 34%,rgba(0,0,0,.12),transparent 9%),
radial-gradient(circle at 80% 62%,rgba(0,0,0,.22),transparent 10%),
rgba(255,255,255,.72);
overflow:hidden;
}
.signal-map:after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(90deg,transparent,rgba(0,0,0,.12),transparent);
animation:sweep 3.4s linear infinite;
}
@keyframes sweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

.section-intro{
display:grid;
grid-template-columns:1.15fr .85fr;
gap:64px;
align-items:center;
margin-bottom:42px;
}
.section-title{
font-size:clamp(46px,7vw,92px);
line-height:.9;
letter-spacing:-.075em;
font-weight:700;
max-width:930px;
}
.section-intro p{
color:var(--muted);
font-size:20px;
font-weight:300;
line-height:1.65;
border-left:1px solid rgba(0,0,0,.14);
padding-left:46px;
min-height:130px;
display:flex;
align-items:center;
}

.priority{
border-top:1px solid var(--line);
border-bottom:1px solid var(--line);
background:rgba(255,255,255,.42);
}

.pillar-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:18px;
}
.pillar{
min-height:380px;
padding:30px;
border-radius:38px;
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.62);
overflow:hidden;
position:relative;
transition:.3s ease;
}
.pillar:hover{
transform:translateY(-8px);
border-color:var(--black);
background:var(--white);
}
.pillar small{
font-weight:500;
color:var(--muted);
letter-spacing:.18em;
text-transform:uppercase;
}
.pillar h3{
font-size:40px;
line-height:.96;
letter-spacing:-.06em;
margin:106px 0 20px;
font-weight:700;
}
.pillar p{
color:var(--muted);
line-height:1.72;
font-weight:300;
}

.jobs{
background:var(--black);
color:var(--white);
}

.jobs .eyebrow{
color:#bdbdbd;
background:rgba(255,255,255,.06);
border-color:rgba(255,255,255,.14);
}

.jobs .section-intro p{color:rgba(255,255,255,.62);border-left-color:rgba(255,255,255,.18)}
.jobs-layout{
display:grid;
grid-template-columns:.72fr 1.28fr;
gap:26px;
align-items:start;
}
.filter-box,.job-card{
background:#111;
border:1px solid rgba(255,255,255,.14);
box-shadow:none;
}
.filter-box{
padding:24px;
border-radius:32px;
position:sticky;
top:120px;
}
.filter-box h3{
font-size:30px;
letter-spacing:-.05em;
margin-bottom:18px;
font-weight:700;
}
.filter-row{display:grid;gap:10px;margin-top:16px}
.filter-row label{
font-size:12px;
text-transform:uppercase;
letter-spacing:.16em;
color:rgba(255,255,255,.45);
font-weight:500;
}
select{
padding:14px;
border-radius:16px;
border:1px solid rgba(255,255,255,.16);
background:#050505;
color:white;
font-weight:500;
}
.job-list{display:grid;gap:14px}
.job-card{
padding:24px;
border-radius:30px;
display:grid;
grid-template-columns:1fr auto;
gap:20px;
transition:.25s ease;
}
.job-card:hover{
transform:translateX(8px);
border-color:white;
}
.job-card h3{
font-size:27px;
letter-spacing:-.045em;
font-weight:600;
}
.job-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.chip{
padding:7px 10px;
border-radius:999px;
background:rgba(255,255,255,.08);
color:rgba(255,255,255,.68);
font-size:12px;
font-weight:500;
}

.routes{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:18px;
}
.route-card{
min-height:430px;
padding:32px;
border-radius:40px;
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.62);
cursor:pointer;
transition:.3s ease;
}
.route-card:hover{
transform:translateY(-10px);
background:white;
border-color:var(--black);
}
.route-card b{
font-size:13px;
color:var(--muted);
letter-spacing:.18em;
text-transform:uppercase;
font-weight:500;
}
.route-card h3{
font-size:43px;
line-height:.95;
letter-spacing:-.065em;
margin-top:96px;
font-weight:700;
}
.route-card p{
margin-top:22px;
color:var(--muted);
line-height:1.72;
font-weight:300;
}

.service-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:14px;
}
.service-tile{
min-height:220px;
padding:24px;
border-radius:30px;
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.62);
transition:.25s ease;
}
.service-tile:hover{
background:var(--black);
color:var(--white);
transform:translateY(-5px);
}
.service-tile small{
font-weight:500;
color:var(--muted);
}
.service-tile:hover small{color:rgba(255,255,255,.55)}
.service-tile h3{
font-size:25px;
letter-spacing:-.045em;
line-height:1;
margin-top:58px;
font-weight:600;
}

.audience-intro{
display:grid;
grid-template-columns:1.15fr .85fr;
gap:64px;
align-items:center;
margin-bottom:42px;
}
.audience-intro h2{
font-size:clamp(54px,7vw,104px);
line-height:.88;
letter-spacing:-.08em;
font-weight:800;
max-width:760px;
}
.audience-copy{
border-left:1px solid rgba(0,0,0,.14);
padding-left:46px;
min-height:150px;
display:flex;
align-items:center;
}
.audience-copy p{
font-size:22px;
line-height:1.65;
font-weight:300;
color:var(--muted);
max-width:520px;
}

.audience{
display:grid;
grid-template-columns:1fr 1fr;
gap:18px;
}
.aud-card{
padding:38px;
min-height:360px;
border-radius:42px;
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.62);
}
.aud-card h3{
font-size:52px;
line-height:.9;
letter-spacing:-.07em;
margin:60px 0 22px;
font-weight:700;
}
.aud-card p{
color:var(--muted);
line-height:1.72;
font-weight:300;
}

.proof{
display:grid;
grid-template-columns:1.25fr .75fr;
gap:18px;
}
.proof-main,.proof-side{
border-radius:42px;
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.62);
padding:38px;
}
.proof-main h2{
font-size:clamp(54px,8vw,112px);
line-height:.84;
letter-spacing:-.085em;
font-weight:700;
}
.proof-side{display:grid;gap:12px}
.proof-stat{
padding:24px;
border-radius:28px;
background:var(--paper);
border:1px solid rgba(0,0,0,.08);
}
.proof-stat b{
font-size:46px;
letter-spacing:-.055em;
font-weight:700;
}
.proof-stat span{
display:block;
color:var(--muted);
margin-top:4px;
font-weight:300;
}

.resource-page{display:none;padding-top:150px}
.resource-page.active{display:block}
.resource-hero h1{font-size:clamp(58px,9vw,126px)}
.resource-block{
display:grid;
grid-template-columns:.64fr 1.36fr;
gap:28px;
padding:42px 0;
border-top:1px solid var(--line);
}
.resource-block h2{
font-size:48px;
line-height:.96;
letter-spacing:-.065em;
font-weight:700;
}
.resource-details{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:14px;
}
.detail{
padding:24px;
border-radius:28px;
border:1px solid rgba(0,0,0,.12);
background:rgba(255,255,255,.62);
}
.detail h3{
font-size:23px;
margin-bottom:12px;
font-weight:600;
}
.detail li{
color:var(--muted);
line-height:1.65;
margin-left:18px;
font-weight:300;
}

.cta{
border-radius:48px;
padding:58px;
background:var(--black);
color:var(--white);
overflow:hidden;
position:relative;
}
.cta h2{
font-size:clamp(48px,7vw,94px);
line-height:.9;
letter-spacing:-.078em;
max-width:900px;
font-weight:700;
}
.cta p{
color:rgba(255,255,255,.64);
font-size:19px;
line-height:1.72;
max-width:670px;
margin-top:22px;
font-weight:300;
}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.cta .btn.primary{
background:var(--white);
color:var(--black);
border-color:var(--white);
}
.cta .btn.primary:hover{
background:transparent;
color:var(--white);
}
.cta .btn.secondary{
color:var(--white);
border-color:rgba(255,255,255,.32);
}
.cta .btn.secondary:hover{
background:var(--white);
color:var(--black);
}

footer{
padding:36px 0;
border-top:1px solid var(--line);
color:var(--muted);
}
footer .container{
display:flex;
justify-content:space-between;
gap:20px;
font-size:14px;
font-weight:300;
}

.reveal{opacity:0;transform:translateY(32px);transition:.72s ease}
.reveal.show{opacity:1;transform:translateY(0)}


.map-panel{
position:absolute;
left:24px;
right:24px;
bottom:22px;
height:130px;
border-radius:26px;
border:1px solid rgba(0,0,0,.1);
background:rgba(255,255,255,.72);
overflow:hidden;
padding:14px;
}
.map-panel svg{width:100%;height:100%;opacity:.72;display:block}
.map-dot{fill:var(--black)}
.map-line{fill:none;stroke:rgba(0,0,0,.38);stroke-width:.8;stroke-dasharray:420;animation:drawLine 3.5s ease-in-out infinite alternate}
@keyframes drawLine{from{stroke-dashoffset:420}to{stroke-dashoffset:0}}

.job-card,.service-tile{cursor:pointer}
.job-card .btn{align-self:center}


.modal-overlay{
position:fixed;
inset:0;
z-index:200;
background:rgba(0,0,0,.58);
backdrop-filter:blur(7px);
display:flex;
align-items:center;
justify-content:center;
padding:20px;
opacity:0;
pointer-events:none;
transition:opacity .75s ease;
}
.modal-overlay.active{opacity:1;pointer-events:auto}
.modal-card{
width:min(760px,100%);
max-height:86vh;
overflow:auto;
border-radius:36px;
background:var(--paper);
color:var(--black);
border:1px solid rgba(0,0,0,.15);
box-shadow:0 30px 90px rgba(0,0,0,.25);
padding:34px;
transform:translateY(22px) scale(.97);
transition:transform .75s ease;
}
.modal-overlay.active .modal-card{transform:translateY(0) scale(1)}
.modal-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}
.modal-card h2{font-size:clamp(34px,5vw,58px);line-height:.94;letter-spacing:-.065em;font-weight:700}
.close-modal{
width:42px;height:42px;border-radius:50%;
border:1px solid rgba(0,0,0,.16);background:white;cursor:pointer;font-size:22px;line-height:1;
}
.modal-meta{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.modal-section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.modal-section h3{font-size:18px;margin-bottom:10px}
.modal-section p,.modal-section li{color:var(--muted);line-height:1.7;font-weight:300}
.modal-section ul{padding-left:20px}

@media(max-width:940px){
header{top:10px;border-radius:30px}
.nav{grid-template-columns:1fr;gap:12px}
.links,.nav-actions{justify-content:flex-start;flex-wrap:wrap}
.hero-grid,.section-intro,.audience-intro,.jobs-layout,.proof,.resource-block,.audience{grid-template-columns:1fr}
.pillar-grid,.routes,.service-grid,.resource-details{grid-template-columns:1fr}
.metric-grid{grid-template-columns:1fr}
.filter-box{position:relative;top:0}
section{padding:62px 0}
.hero{padding-top:210px}
.job-card{grid-template-columns:1fr}
footer .container{flex-direction:column}
.section-intro{gap:22px;margin-bottom:32px}
.section-intro p{border-left:0;padding-left:0;min-height:auto;font-size:18px}
.audience-intro{gap:22px;margin-bottom:32px}
.audience-copy{border-left:0;padding-left:0;min-height:auto}
.audience-copy p{font-size:18px}
}

/* Apply Now form */
.apply-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.apply-form-grid .full{grid-column:1/-1}
.apply-form-grid label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin:10px 0 7px;font-weight:500}
.apply-form-grid input,.apply-form-grid textarea,.apply-form-grid select{width:100%;padding:13px 14px;border-radius:15px;border:1px solid rgba(0,0,0,.14);background:white;font:inherit;color:var(--black)}
.apply-form-grid textarea{min-height:90px;resize:vertical}
.apply-note{font-size:13px;color:var(--muted);line-height:1.6;margin-top:10px}
.apply-msg{font-size:13px;min-height:20px;margin-top:12px;color:#386641}
.apply-msg.error{color:#9b1c1c}
@media(max-width:700px){.apply-form-grid{grid-template-columns:1fr}.apply-form-grid .full{grid-column:auto}}