@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter+Tight:wght@400;500;600;700&family=Michroma&display=swap');
:root{--black:#050505;--white:#fff;--graphite:#1b1b1b;--light:#e8e8e8;--steel:#8d8d8d;--gold:#b89a5a;--max:1480px;--pad:clamp(20px,4vw,72px);--display:'Michroma',Arial,sans-serif;--body:'Inter Tight',Arial,sans-serif;--mono:'IBM Plex Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--black);font-family:var(--body);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}img{max-width:100%}::selection{background:var(--gold);color:var(--black)}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:#000;padding:12px;z-index:999}.skip:focus{left:12px;top:12px}.shell{max-width:var(--max);margin:auto;padding-left:var(--pad);padding-right:var(--pad)}
.header{position:fixed;z-index:80;top:0;left:0;right:0;height:84px;border-bottom:1px solid rgba(255,255,255,.13);display:flex;align-items:center;transition:.25s;background:rgba(5,5,5,.18);backdrop-filter:blur(8px);color:#fff}.header.scrolled,.header.light{background:rgba(5,5,5,.97)}.nav{width:100%;max-width:var(--max);margin:auto;padding:0 var(--pad);display:flex;align-items:center;gap:30px}.brand-link{display:flex;align-items:center;flex:0 0 auto}.brand-logo{display:block;object-fit:contain}.header-logo{width:86px;height:72px}.footer-logo{width:175px;height:auto;margin:0 0 18px}.about-logo{width:min(240px,60%);height:auto;margin:0 0 38px}.navlinks{margin-left:auto;display:flex;align-items:center;gap:25px;font-size:12px;font-weight:600;letter-spacing:.08em}.navlinks a{opacity:.86}.navlinks a:hover,.navlinks a:focus{opacity:1}.nav-cta{border:1px solid rgba(255,255,255,.45);padding:10px 13px}.nav-cta:hover{background:#fff;color:#000}.menu-btn{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;padding:9px 11px;font-family:var(--mono);font-size:11px}.mobile-menu{position:fixed;z-index:79;inset:78px 0 0;background:#050505;color:white;padding:30px var(--pad);transform:translateY(-110%);transition:.25s;overflow:auto}.mobile-menu.open{transform:translateY(0)}.mobile-menu a{display:block;padding:18px 0;border-bottom:1px solid #2c2c2c;font-family:var(--display);font-size:clamp(18px,5vw,28px)}
.hero{min-height:96vh;background:var(--black);color:white;padding:150px 0 45px;position:relative;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:9vw 9vw;mask-image:linear-gradient(to bottom,#000 10%,transparent 85%)}.hero:after{content:'';position:absolute;width:68vw;height:1px;background:rgba(184,154,90,.65);right:-8vw;top:44%;transform:rotate(-24deg);transform-origin:right}.hero .shell{position:relative;z-index:2}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}.eyebrow.gold{color:var(--gold)}.hero h1,.page-hero h1{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:-.025em;line-height:.95;margin:24px 0;font-size:clamp(58px,9vw,145px);max-width:1260px}.hero h1 .outline{-webkit-text-stroke:1px rgba(255,255,255,.75);color:transparent}.hero-copy{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:50px;align-items:end;margin-top:80px}.hero-copy p{font-size:clamp(20px,2vw,30px);max-width:820px;margin:0;line-height:1.25}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #3b3b3b;margin-top:55px}.hero-meta div{padding:18px 12px 0 0}.hero-meta b{display:block;font-family:var(--mono);font-size:10px;font-weight:400;color:var(--steel);margin-bottom:5px}.hero-meta span{font-size:13px}
.btns{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid currentColor;padding:14px 17px;font-size:12px;letter-spacing:.06em;font-weight:600;text-transform:uppercase;min-height:48px}.btn.light{background:#fff;color:#050505;border-color:#fff}.btn.dark{background:#050505;color:#fff;border-color:#050505}.btn.ghost{background:transparent;color:inherit}.btn .arr,.arrow{color:var(--gold);transition:transform .2s}.btn:hover .arr,.text-link:hover .arrow{transform:translateX(4px)}
.section{padding:clamp(76px,9vw,145px) 0}.section.dark{background:#050505;color:#fff}.section.graphite{background:#101010;color:#fff}.section.light{background:#f5f5f3}.section-title{display:grid;grid-template-columns:1fr 2fr;gap:50px;border-top:1px solid currentColor;padding-top:20px;margin-bottom:65px}.section-title h2{font-family:var(--display);font-weight:400;font-size:clamp(34px,5vw,72px);line-height:1.05;margin:0;text-transform:uppercase;max-width:900px}.section-title p{margin:0 0 0 auto;max-width:560px;font-size:20px;color:var(--steel)}
.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:start}.statement{font-family:var(--display);font-size:clamp(34px,5vw,73px);line-height:1.06;text-transform:uppercase;margin:0}.statement .gold{color:var(--gold)}.intro-copy{max-width:580px;font-size:20px}.intro-copy p:first-child{font-size:26px;line-height:1.3;margin-top:0}
.cap-list{border-top:1px solid #333}.cap-row{display:grid;grid-template-columns:100px minmax(260px,1.05fr) 1.4fr 150px;gap:28px;padding:28px 0;border-bottom:1px solid #333;align-items:start;transition:.2s}.cap-row:hover{background:#0d0d0d;padding-left:12px;padding-right:12px}.cap-num{font-family:var(--mono);font-size:11px;color:var(--gold)}.cap-row h3{font-family:var(--display);font-weight:400;font-size:clamp(18px,2.1vw,29px);text-transform:uppercase;margin:0;line-height:1.2}.cap-row p{margin:0;color:#aaa}.text-link{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;display:inline-flex;gap:9px;align-items:center;white-space:nowrap}
.process{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid #333}.step{padding:24px 22px 10px 0;min-height:200px;border-right:1px solid #333}.step:last-child{border-right:0}.step b{font-family:var(--mono);font-size:11px;color:var(--gold);font-weight:400}.step h3{font-size:16px;text-transform:uppercase;margin:48px 0 10px}.step p{font-size:14px;color:#999;margin:0}
.sector-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #c7c7c7;border-left:1px solid #c7c7c7}.sector-card{min-height:300px;padding:28px;border-right:1px solid #c7c7c7;border-bottom:1px solid #c7c7c7;position:relative;overflow:hidden;display:flex;flex-direction:column;transition:.25s}.sector-card:after{content:'';position:absolute;width:230px;height:1px;background:#c7c7c7;right:-90px;bottom:60px;transform:rotate(-35deg);transition:.25s}.sector-card:hover{background:#050505;color:#fff}.sector-card:hover:after{background:var(--gold);right:-60px}.sector-card .eyebrow{color:#777}.sector-card h3{font-family:var(--display);font-size:22px;font-weight:400;text-transform:uppercase;line-height:1.18;margin:55px 0 12px;max-width:250px}.sector-card p{font-size:14px;color:#777;max-width:280px}.sector-card .text-link{margin-top:auto}.sector-card:hover p,.sector-card:hover .eyebrow{color:#aaa}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#333;border:1px solid #333}.project-card{background:#090909;color:#fff;min-height:520px;display:flex;flex-direction:column}.media-panel{height:235px;background:#111;position:relative;overflow:hidden;border-bottom:1px solid #333}.media-panel:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:42px 42px}.media-panel:after{content:attr(data-mark);position:absolute;left:26px;bottom:18px;font-family:var(--display);font-size:clamp(28px,4vw,52px);color:#242424;white-space:nowrap;transition:.25s}.project-card:hover .media-panel:after{color:#4b4231;transform:translateX(5px)}.project-body{padding:26px;display:flex;flex-direction:column;flex:1}.project-body h3{font-family:var(--display);font-size:20px;line-height:1.25;font-weight:400;text-transform:uppercase;margin:24px 0 16px}.project-body p{color:#999;margin:0 0 26px}.project-body .text-link{margin-top:auto}
.partners{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #333}.partner{padding:30px 30px 30px 0;border-right:1px solid #333}.partner+.partner{padding-left:30px}.partner:last-child{border-right:0}.partner h3{font-family:var(--display);font-size:22px;font-weight:400;text-transform:uppercase;line-height:1.25;margin:50px 0 18px}.partner p{color:#999;max-width:380px}
.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.mapbox{min-height:460px;border:1px solid #333;position:relative;background:#080808;overflow:hidden}.mapbox:before{content:'SOUTHERN AFRICA';position:absolute;font-family:var(--display);font-size:clamp(40px,7vw,90px);color:#141414;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-16deg);white-space:nowrap}.mapbox .node{position:absolute;width:9px;height:9px;background:var(--gold);border-radius:50%}.mapbox .node:after{content:attr(data-label);position:absolute;left:15px;top:-5px;font-family:var(--mono);font-size:10px;color:#999;white-space:nowrap}.mapbox .zw{left:56%;top:54%}.mapbox .za{left:49%;top:74%}.mapbox .sadc{left:70%;top:42%;background:#fff}
.cta{display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:end}.cta h2{font-family:var(--display);font-size:clamp(44px,7vw,102px);font-weight:400;text-transform:uppercase;line-height:.98;margin:0}.cta p{color:#aaa;max-width:420px;font-size:20px}
.page-hero{background:#050505;color:#fff;padding:170px 0 80px;min-height:62vh;position:relative;overflow:hidden}.page-hero:after{content:'';position:absolute;right:-10vw;top:55%;width:70vw;height:1px;background:#4a4030;transform:rotate(-22deg)}.page-hero .shell{position:relative;z-index:2}.page-hero h1{font-size:clamp(47px,7vw,110px);max-width:1250px}.page-hero .lede{font-size:clamp(19px,2vw,29px);max-width:820px;color:#b9b9b9}
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px}.prose{max-width:850px}.prose h2,.prose h3{font-family:var(--display);font-weight:400;text-transform:uppercase}.prose h2{font-size:clamp(30px,4vw,54px)}.prose p,.prose li{font-size:18px;color:#555}.dark .prose p,.dark .prose li{color:#aaa}.rule-list{border-top:1px solid #ccc}.rule-item{display:grid;grid-template-columns:110px 1fr;gap:30px;padding:24px 0;border-bottom:1px solid #ccc}.dark .rule-list,.dark .rule-item{border-color:#333}.rule-item b{font-family:var(--mono);font-size:11px;color:var(--gold);font-weight:400}.rule-item h3{margin:0 0 8px;font-size:20px}.rule-item p{margin:0;color:#777}
.leader-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ccc;border:1px solid #ccc}.leader-card{background:#fff;padding:30px;min-height:300px;display:flex;flex-direction:column}.leader-card .portrait{height:140px;background:#f1f1ef;position:relative;overflow:hidden;margin-bottom:25px}.portrait:before{content:'';position:absolute;width:150px;height:150px;border:1px solid #d8d8d8;transform:rotate(45deg);right:-55px;bottom:-75px}.leader-card h3{font-family:var(--display);font-size:18px;font-weight:400;text-transform:uppercase;line-height:1.3;margin:0}.leader-card .role{font-family:var(--mono);font-size:10px;color:#777;margin:10px 0 22px}.leader-card p{color:#777;margin:0 0 20px}.leader-card .text-link{margin-top:auto}
.detail-meta{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #333;border-bottom:1px solid #333;margin-top:55px}.detail-meta div{padding:20px 18px 20px 0;border-right:1px solid #333}.detail-meta div:last-child{border-right:0}.detail-meta b{font-family:var(--mono);font-size:10px;color:#777;font-weight:400;display:block;margin-bottom:5px}.detail-meta span{font-size:14px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:35px}.filter{background:transparent;border:1px solid #bbb;padding:9px 12px;font-family:var(--mono);font-size:10px;text-transform:uppercase;cursor:pointer}.filter.active,.filter:hover{background:#050505;color:#fff;border-color:#050505}.project-card.hidden{display:none}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field.full{grid-column:1/-1}.field label{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.field input,.field textarea,.field select{width:100%;border:1px solid #bdbdbd;background:#fff;padding:14px;border-radius:0;min-height:49px}.field textarea{min-height:150px;resize:vertical}.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#666}.status{margin-top:14px;font-size:14px}.status.error{color:#8b1515}.status.ok{color:#2c5c32}.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ccc;border:1px solid #ccc}.contact-cards.single{grid-template-columns:1fr}.contact-card{background:#fff;padding:30px}.contact-card b{font-family:var(--mono);font-size:10px;color:#777;font-weight:400}.contact-card h3{font-family:var(--display);font-size:18px;font-weight:400;text-transform:uppercase}.contact-card a,.contact-card .email-display{display:block;margin:8px 0}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.btn[disabled]{opacity:.55;cursor:wait}.empty{border:1px solid #ccc;padding:50px;min-height:270px;display:flex;flex-direction:column;justify-content:center}.empty h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:28px;margin:0 0 15px}.empty p{max-width:700px;color:#777}.footer{background:#050505;color:#fff;padding:70px 0 30px}.footer-top{display:grid;grid-template-columns:1.2fr 2fr;gap:80px;padding-bottom:60px}.footer-brand .wordmark{font-size:25px}.footer-brand p{font-family:var(--display);font-size:25px;max-width:330px;text-transform:uppercase;line-height:1.25}.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.footer-col b{display:block;font-family:var(--mono);font-size:10px;color:#777;font-weight:400;margin-bottom:15px}.footer-col a,.footer-col .email-display{display:block;color:#aaa;margin:7px 0;font-size:14px}.footer-bottom{border-top:1px solid #2e2e2e;padding-top:22px;display:flex;justify-content:space-between;gap:30px;color:#777;font-family:var(--mono);font-size:10px}
@media(max-width:1100px){.navlinks{display:none}.menu-btn{display:block}.hero-copy,.section-title,.intro-grid,.region-grid,.split,.cta,.footer-top{grid-template-columns:1fr}.hero-copy{margin-top:50px}.process{grid-template-columns:repeat(3,1fr)}.sector-grid{grid-template-columns:repeat(2,1fr)}.work-grid,.partners,.leader-grid{grid-template-columns:repeat(2,1fr)}.cap-row{grid-template-columns:70px 1fr 1.2fr}.cap-row .text-link{grid-column:2}.section-title p{margin:0}.footer-top{gap:40px}}
@media(max-width:700px){body{font-size:16px}.header{height:72px}.header-logo{width:68px;height:60px}.mobile-menu{inset:72px 0 0}.hero{padding-top:120px}.hero h1{font-size:clamp(48px,15vw,80px)}.hero-copy p{font-size:20px}.hero-meta{grid-template-columns:1fr}.hero-meta div{border-bottom:1px solid #252525;padding-bottom:13px}.section{padding:72px 0}.section-title{gap:24px;margin-bottom:40px}.statement{font-size:35px}.cap-row{grid-template-columns:42px 1fr;gap:12px}.cap-row p,.cap-row .text-link{grid-column:2}.process{grid-template-columns:1fr}.step{border-right:0;border-bottom:1px solid #333;min-height:auto;padding:22px 0}.step h3{margin-top:24px}.sector-grid,.work-grid,.partners,.leader-grid,.contact-cards{grid-template-columns:1fr}.partner,.partner+.partner{padding:28px 0;border-right:0;border-bottom:1px solid #333}.project-card{min-height:470px}.page-hero{padding-top:120px;min-height:55vh}.detail-meta{grid-template-columns:1fr 1fr}.detail-meta div:nth-child(2){border-right:0}.form{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-cols{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column}.mapbox{min-height:330px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
