/* Brand-led editorial prototype. Variance 6 / motion 4 / density 3.
   The established dark hero and light editorial body take precedence over skill defaults. */
:root{--heading-weight:800;--ink:#071225;--green:#52b747;--blue:#1c7abe;--paper:#f7f8f7;--line:#d7dcde;--soft:#52606b;--gutter:clamp(24px,5.2vw,88px)}
h1,h2,h3,h4,h5,h6{font-weight:var(--heading-weight)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ink);color:var(--ink);font-family:"Plus Jakarta Sans","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;font-weight:600}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:7px}::selection{background:var(--green);color:var(--ink)}.wrap{width:100%;max-width:1600px;margin:auto;padding-inline:var(--gutter)}.section{padding-block:112px}.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.17em;text-transform:uppercase;font-weight:600;margin:0 0 32px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:20px;top:-100px;background:white;padding:15px;z-index:4}.skip:focus{top:12px}
.header{position:fixed;top:0;left:0;width:100%;z-index:3;padding:28px var(--gutter);height:100px;display:flex;justify-content:space-between;align-items:center;color:white}.header.scrolled{background:#071225f5;box-shadow:0 1px 0 #ffffff1a}.logo{display:inline-flex;align-items:center;flex-shrink:0}.logo img{width:190px;height:auto;display:block}.header nav{display:flex;align-items:center;gap:36px;font-size:13px}.header nav>a:not(.nav-cta){padding-block:12px}.header nav>a:hover{color:#8bd77d}.nav-cta{border:1px solid #ffffff60;padding:14px 20px;display:flex;gap:30px;align-items:center}.nav-cta span{font-size:21px}.nav-cta:hover{background:var(--green);color:var(--ink)!important;border-color:var(--green)}.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:760px;min-height:max(740px,100svh);color:#fff;display:flex;align-items:center;background:#030b18}.earth{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,11,24,.65),rgba(3,11,24,.1) 80%),linear-gradient(0deg,#071225 0%,transparent 38%,rgba(3,11,24,.12))}.hero-content{padding-top:160px;padding-bottom:60px}.hero .eyebrow{color:#d0d9e2;margin-bottom:35px}h1{font-size:clamp(70px,8.9vw,142px);line-height:.99;letter-spacing:-.065em;font-weight:var(--heading-weight);margin:0 0 65px}.word{color:var(--green);display:inline-block;transition:opacity .22s,transform .22s}.word.changing{opacity:0;transform:translateY(9px)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.hero-bottom p{font-size:17px;line-height:1.7;color:#d3dbe3;margin:0}.round-link{display:flex;gap:24px;align-items:center;font-size:13px}.circle{width:58px;height:58px;border:1px solid #ffffff66;border-radius:50%;display:grid;place-items:center;font-size:26px;transition:background .2s,color .2s}.round-link:hover .circle{background:var(--green);color:var(--ink);border-color:var(--green)}
.services{background:var(--paper);max-width:none}.section-intro{max-width:850px}.section-intro h2{font-size:clamp(38px,4.3vw,68px);font-weight:var(--heading-weight);letter-spacing:-.045em;line-height:1.08;margin:0 0 28px}.muted{color:var(--soft)}.intro-copy{max-width:510px;font-size:17px;line-height:1.75;color:var(--soft);margin:0}.service-list{margin-top:64px}.service{border-top:1px solid var(--line);padding:30px 0}.service:last-child{border-bottom:1px solid var(--line)}summary{display:grid;grid-template-columns:12% 1fr 45px;align-items:center;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.number{font-size:13px;color:var(--soft);align-self:start;padding-top:8px}h3{margin:0;font-weight:var(--heading-weight)}.service h3{font-size:clamp(28px,3vw,45px);line-height:1.12;letter-spacing:-.035em}.service h3 br{display:none}.expand{width:42px;height:42px;border:1px solid #aeb8bd;border-radius:50%;position:relative}.expand:before,.expand:after{content:"";position:absolute;width:14px;height:1px;background:var(--ink);top:20px;left:13px}.expand:after{transform:rotate(90deg)}details[open] .expand{background:var(--green);border-color:var(--green)}details[open] .expand:after{transform:rotate(0)}.service-body{margin-left:12%;display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:26px 0 10px;max-width:950px}.service-body p{margin:0;line-height:1.8;font-size:16px;color:var(--soft)}.service-body ul{list-style:none;margin:0;padding:0;color:var(--ink);font-size:13px;line-height:2.1}.service-body li:before{content:"/";color:#397f31;margin-right:12px}
.about{background:#eaf0ec}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:8%}.about-label .eyebrow{margin-bottom:24px}.location{font-size:14px;line-height:1.7;color:var(--soft)}.about h2{font-size:clamp(38px,4.5vw,70px);font-weight:var(--heading-weight);letter-spacing:-.05em;line-height:1.08;margin:0 0 35px}.about h2 span{color:#317c2a}.about-copy>p{font-size:18px;line-height:1.8;max-width:660px;margin:0 0 20px}.about-copy>p:last-child{font-size:16px;color:var(--soft)}.approach{display:grid;grid-template-columns:repeat(3,1fr);gap:6%;margin-top:90px}.approach article{border-top:1px solid #bbc9c0;padding-top:24px}.step{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#46614c}.approach h3{font-size:25px;letter-spacing:-.03em;margin:26px 0 15px}.approach p{color:var(--soft);font-size:15px;line-height:1.8;margin:0;max-width:330px}
.contact{background:var(--ink);color:#fff}.contact .eyebrow{color:#bcc7d1}.contact-heading{display:flex;justify-content:space-between;align-items:center;gap:35px}.contact h2{font-size:clamp(40px,5.6vw,86px);font-weight:var(--heading-weight);line-height:1.07;letter-spacing:-.045em;margin:0}.contact h2 span{color:var(--green)}.contact-arrow{width:110px;height:110px;border-radius:50%;background:var(--green);color:var(--ink);font-size:66px;display:grid;place-items:center;flex-shrink:0;transition:transform .2s}.contact-arrow:hover{transform:rotate(45deg)}.contact-bottom{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-top:55px}.contact-bottom p{font-size:15px;color:#b9c6d0;line-height:1.8;margin:0}.email{font-size:clamp(19px,2.4vw,34px);letter-spacing:-.025em;padding-bottom:9px;border-bottom:1px solid #738293}.email:hover{color:var(--green)}.footer{display:flex;justify-content:space-between;gap:30px;align-items:center;border-top:1px solid #ffffff26;padding-block:38px;color:#b9c6d0}.footer .logo img{width:160px}.footer p{font-size:12px;line-height:1.9;margin:0}.footer>a:last-child{font-size:12px}.footer>a:last-child span{margin-left:18px}
@media(prefers-reduced-motion:no-preference){.reveal.pending{opacity:0;transform:translateY(20px)}.reveal{transition:opacity .6s ease,transform .6s ease}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:1600px){.services{padding-inline:max(var(--gutter),calc((100vw - 1424px)/2))}}
@media(max-width:1000px){h1{font-size:clamp(62px,9.2vw,100px)}.hero{min-height:760px}.hero-bottom{align-items:flex-start}.section{padding-block:85px}.contact-arrow{width:80px;height:80px;font-size:48px}.about-grid{gap:4%}.service h3{font-size:34px}}
@media(max-width:640px){html{scroll-padding-top:100px}.header{height:88px;padding-block:24px}.logo img{width:155px}.menu-toggle:not([hidden]){display:flex;align-items:center;gap:12px;color:white;background:transparent;border:1px solid #ffffff70;padding:9px 12px;font-size:12px}.menu-toggle span{font-size:20px;line-height:1}.header nav{gap:16px;font-size:12px}.header nav .nav-cta{padding:10px}.header nav .nav-cta span{display:none}.js .header nav{display:none;position:absolute;top:78px;left:24px;right:24px;background:#102039;padding:22px;box-shadow:0 16px 30px #0003}.js .header nav.open{display:flex;align-items:stretch;flex-direction:column}.js .header nav>a{padding:12px}.hero{min-height:760px;min-height:max(740px,100svh)}.hero-content{padding-top:145px;padding-bottom:48px}.earth{object-position:62% center;opacity:.75}.hero-shade{background:linear-gradient(90deg,#07122599,#07122522),linear-gradient(0deg,#071225,transparent 90%)}.hero .eyebrow{font-size:9px;letter-spacing:.12em;max-width:240px;margin-bottom:32px}h1{font-size:clamp(32px,10.4vw,66px);letter-spacing:-.06em;line-height:1.07;margin-bottom:42px}.hero-bottom{flex-direction:column;gap:30px}.hero-bottom p{font-size:16px;max-width:310px}.desktop-break{display:none}.circle{width:46px;height:46px;font-size:23px}.round-link{gap:20px}.section{padding-block:65px}.eyebrow{margin-bottom:24px;font-size:10px}.section-intro h2{font-size:36px}.intro-copy{font-size:15px;line-height:1.8}.service-list{margin-top:40px}.service{padding:25px 0}summary{grid-template-columns:32px 1fr 34px;gap:6px}.number{font-size:11px}.service h3{font-size:27px}.service h3 br{display:block}.expand{width:34px;height:34px}.expand:before,.expand:after{left:9px;top:16px}.service-body{margin-left:38px;grid-template-columns:1fr;gap:20px;padding-top:22px}.service-body p{font-size:15px}.about-grid{grid-template-columns:1fr;gap:30px}.about-label{display:flex;justify-content:space-between;gap:20px}.about-label .eyebrow{margin:0}.location{font-size:11px;margin:0}.about h2{font-size:39px;margin-bottom:27px}.about-copy>p{font-size:17px}.about-copy>p:last-child{font-size:15px}.approach{grid-template-columns:1fr;gap:32px;margin-top:42px}.approach h3{margin-top:20px}.approach p{max-width:none}.contact-heading{display:block}.contact h2{font-size:39px}.contact-arrow{width:62px;height:62px;font-size:38px;margin-top:30px}.contact-bottom{margin-top:32px;flex-direction:column;align-items:flex-start;gap:30px}.contact-bottom p{font-size:14px}.email{font-size:25px}.footer{flex-wrap:wrap;gap:26px;padding-block:30px}.footer .logo{width:100%}.footer p{font-size:11px}.footer .logo img{width:150px}}

/* Generated ambient globe, layered above the immediate still fallback. */
.hero-video{opacity:0;pointer-events:none;transition:opacity .45s ease}
.hero-video.ready{opacity:1}
@media(max-width:640px){.hero-video.ready{opacity:.75}}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}

/* Space depth: moving, twinkling points restricted to the dark side of the frame. */
.hero-stars{position:absolute;inset:-25px;z-index:-1;pointer-events:none;overflow:hidden;mask-image:linear-gradient(90deg,#000 0%,#000 22%,#0008 42%,transparent 68%)}
.hero-stars span{position:absolute;width:var(--size);height:var(--size);background:#dceeff;border-radius:50%;box-shadow:0 0 5px #9bccff99;animation:star-travel 20s ease-in-out infinite alternate;animation-delay:var(--delay)}
.hero-stars span::after{content:'';position:absolute;inset:-1px;background:#e7f5ff;border-radius:50%;animation:star-twinkle var(--duration) ease-in-out infinite;animation-delay:var(--delay)}
@keyframes star-travel{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--drift),-24px,0)}}
@keyframes star-twinkle{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:.85;transform:scale(1.15)}}
.motion-stopped .hero-stars span,.motion-stopped .hero-stars span::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.hero-stars{display:none}}
.footer-office address{font-style:normal;font-size:12px;line-height:1.9;margin:0 0 10px}
@media(max-width:640px){.footer-office{width:100%}.footer-office address{font-size:12px}}

/* Careers shares the editorial rhythm while giving applications their own space. */
.careers{background:var(--paper)}
.careers-intro{max-width:800px}
.careers-intro h2{font-size:clamp(40px,4.8vw,74px);font-weight:var(--heading-weight);letter-spacing:-.05em;line-height:1.08;margin:0 0 28px}
.careers-intro h2 span{color:#317c2a}
.careers-intro>p:last-child{font-size:18px;line-height:1.8;color:var(--soft);max-width:480px;margin:0}
.career-application{margin-top:60px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.career-application>summary{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:32px 0;list-style:none}
.career-invitation{display:flex;flex-direction:column;gap:13px}
.career-invitation strong{font-size:clamp(24px,2.7vw,38px);font-weight:500;letter-spacing:-.035em;line-height:1.2}
.career-invitation>span{font-size:13px;color:var(--soft)}
.career-apply-label{display:flex;align-items:center;gap:24px;font-size:14px;white-space:nowrap}
.career-expand{width:48px;height:48px;display:grid;place-items:center;background:var(--green);border-radius:50%;font-size:26px;color:var(--ink);transition:transform .2s}
.career-application[open] .career-expand{transform:rotate(45deg)}
.career-form-panel{border-top:1px solid var(--line);padding:40px 0 32px}
.career-form-intro h3{font-size:28px;letter-spacing:-.035em}
.career-form-intro p{font-size:15px;line-height:1.8;color:var(--soft);margin:12px 0 24px}
.career-privacy{font-size:12px;line-height:1.9;color:var(--soft);max-width:740px;margin:0 0 24px}
.career-privacy a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.career-form-status{font-size:14px;line-height:1.6;color:var(--soft);padding:24px 0;margin:0}
.career-form-frame{display:block;width:100%;height:1930px;border:0;background:var(--paper)}
.career-form-frame[hidden],.career-form-status[hidden],.career-form-link[hidden]{display:none}
.career-form-link{display:inline-flex;align-items:center;gap:16px;border-bottom:1px solid #89979e;padding:10px 0;font-size:13px;margin-top:16px}
.career-form-link:hover{color:#317c2a;border-color:#317c2a}
@media(max-width:640px){.careers-intro h2{font-size:39px}.careers-intro>p:last-child{font-size:16px}.career-application{margin-top:36px}.career-application>summary{align-items:flex-start;flex-direction:column;gap:24px;padding:28px 0}.career-invitation strong{font-size:26px}.career-apply-label{justify-content:space-between;width:100%;font-size:13px}.career-expand{width:40px;height:40px;font-size:24px}.career-form-panel{padding-top:28px}.career-form-intro h3{font-size:25px}.career-form-frame{height:2450px}}

/* Compact homepage invitation; full applications live on careers.html. */
.careers-teaser{padding-block:78px}
.careers-teaser>.wrap{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center}
.careers-teaser .careers-intro h2{font-size:clamp(36px,4vw,58px);margin-bottom:22px}
.careers-teaser .careers-intro>p:last-child{font-size:16px;max-width:470px}
.careers-teaser .eyebrow{margin-bottom:24px}
.career-page-link{display:inline-flex;align-items:center;gap:32px;background:var(--green);padding:18px 24px;white-space:nowrap;font-size:14px}
.career-page-link span{font-size:24px;line-height:1}
.career-page-link:hover{background:#74c56a}
.header a[aria-current="page"]{color:#8bd77d}
.career-page{background:var(--paper)}
.career-page main{min-height:70vh}
.career-page-intro{padding-top:166px;padding-bottom:65px}
.career-page-back{display:inline-block;font-size:12px;color:var(--soft);margin-bottom:48px}
.career-page-back:hover{color:var(--ink)}
.career-page-title{font-size:clamp(54px,6.6vw,98px);line-height:1.04;letter-spacing:-.055em;font-weight:var(--heading-weight);margin:0 0 30px}
.career-page-title span{color:#317c2a}
.career-page-intro>p:last-child{font-size:18px;line-height:1.8;color:var(--soft);max-width:550px;margin:0}
.career-page-application{padding-bottom:80px}
.career-page-application h2{font-size:29px;letter-spacing:-.03em;font-weight:var(--heading-weight);margin:0 0 18px}
.career-page-application .career-application-copy{font-size:15px;line-height:1.8;color:var(--soft);max-width:650px;margin:0 0 32px}
.career-page-application-intro{margin-bottom:32px}
.career-page-application-intro .eyebrow{margin-bottom:18px}
.career-page-application-intro>p:last-child{font-size:15px;line-height:1.8;color:var(--soft);max-width:650px;margin:0}
.career-page .footer{background:var(--ink);max-width:none}
@media(max-width:640px){.careers-teaser{padding-block:60px}.careers-teaser>.wrap{grid-template-columns:1fr;gap:28px}.career-page-link{justify-self:start}.career-page-intro{padding-top:126px;padding-bottom:42px}.career-page-back{margin-bottom:38px}.career-page-title{font-size:46px}.career-page-intro>p:last-child{font-size:16px}.career-page-application{padding-bottom:55px}}

/* Homepage logo starts in the hero and comes to rest on the header baseline. */
.header--hero{padding-inline:max(var(--gutter),calc(50vw - 800px + var(--gutter)));background:#071225f5;box-shadow:0 1px 0 #ffffff1a;transition:background-color .18s ease,box-shadow .18s ease}
.hero-logo-slot{display:none;width:190px;aspect-ratio:600/143;margin-bottom:28px}
.logo-dock-ready .hero-logo-slot{display:block}
.logo-dock-ready .header--hero:not(.scrolled){background:transparent;box-shadow:none}
.logo-dock-ready .header--hero .logo{transform:translate3d(0,var(--hero-logo-offset,0px),0)}
@media(max-width:900px){.hero-logo-slot{width:175px}}
@media(max-width:640px){.hero-logo-slot{width:155px;margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.header--hero{transition:none}}

/* Shared green emphasis for headings on light backgrounds. */
.heading-green{color:#317c2a}
