:root{--ink:#07131d;--ink2:#102737;--paper:#f4f7f5;--white:#fff;--green:#46d6a0;--green2:#127153;--gold:#f5b942;--muted:#60717c;--line:rgba(7,19,29,.14);--radius:1.25rem;--shadow:0 24px 80px rgba(6,24,34,.14);--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;line-height:1.65;overflow-x:hidden}img{display:block;max-width:100%}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.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-link{position:fixed;left:1rem;top:-4rem;z-index:1000;background:var(--green);color:var(--ink);padding:.75rem 1rem;border-radius:.5rem;font-weight:800}.skip-link:focus{top:1rem}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:5.25rem;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,4vw,4rem);color:#fff;transition:.3s}.site-header.scrolled{height:4.5rem;background:rgba(7,19,29,.94);backdrop-filter:blur(16px);box-shadow:0 10px 35px rgba(0,0,0,.12)}.brand{display:inline-flex;align-items:center;gap:.75rem}.brand-mark{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.36);border-radius:50%;font-size:.75rem;font-weight:900;letter-spacing:.06em;color:var(--green)}.brand-copy{display:grid;line-height:1.2}.brand-copy strong{font-size:.92rem}.brand-copy small{color:rgba(255,255,255,.65);font-size:.75rem;margin-top:.12rem}.site-nav{display:flex;align-items:center;gap:1.7rem;font-size:.91rem;font-weight:650}.site-nav a{color:rgba(255,255,255,.8);transition:color .2s}.site-nav a:hover,.site-nav a.active{color:var(--green)}.site-nav .nav-contact{color:var(--ink);background:var(--green);padding:.58rem 1rem;border-radius:999px}.site-nav .nav-contact:hover{color:var(--ink);background:#74e5bb}.menu-toggle{display:none;border:0;background:transparent;padding:.5rem}.menu-toggle span:not(.sr-only){width:1.55rem;height:2px;display:block;background:#fff;margin:5px 0}
.hero{min-height:100svh;position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.72fr);align-items:center;gap:clamp(3rem,7vw,8rem);padding:8rem max(1rem,calc((100vw - var(--max))/2)) 4rem;color:#fff;background:var(--ink);isolation:isolate;overflow:hidden}.hero:after{content:"";position:absolute;right:-12rem;bottom:-15rem;width:44rem;height:44rem;border-radius:50%;background:radial-gradient(circle,rgba(70,214,160,.18),transparent 66%);z-index:-1}.hero-contours{position:absolute;inset:0;z-index:-1;opacity:.32;background:radial-gradient(ellipse at 70% 30%,transparent 0 12%,rgba(102,184,212,.22) 12.2% 12.45%,transparent 12.7% 18%,rgba(102,184,212,.17) 18.2% 18.42%,transparent 18.7% 25%,rgba(102,184,212,.14) 25.2% 25.4%,transparent 25.8%),radial-gradient(ellipse at 13% 84%,transparent 0 15%,rgba(70,214,160,.18) 15.2% 15.4%,transparent 15.8% 23%,rgba(70,214,160,.13) 23.2% 23.4%,transparent 23.8%)}.hero-copy{max-width:760px}.eyebrow,.kicker{margin:0 0 1rem;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:850}.eyebrow{color:rgba(255,255,255,.68);display:flex;align-items:center;gap:.65rem}.eyebrow span{width:1.9rem;height:2px;background:var(--green)}.kicker{color:var(--green2)}.hero h1{margin:0;max-width:780px;font-size:clamp(3.5rem,7vw,7.4rem);line-height:.93;letter-spacing:-.065em;font-weight:760}.hero h1 em{display:block;color:var(--green);font-style:normal}.hero-intro{max-width:670px;color:rgba(255,255,255,.72);font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.6;margin:2rem 0 0}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:2.1rem 0 2.8rem}.button{min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;border-radius:999px;padding:.75rem 1.25rem;font-weight:760;font-size:.94rem;transition:.2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--green);color:var(--ink)}.button-primary:hover{background:#70e5ba}.button-ghost{border:1px solid rgba(255,255,255,.35);color:#fff}.button-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}.impact-row{margin:0;padding-top:1.45rem;border-top:1px solid rgba(255,255,255,.14);display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.impact-row dt{color:#fff;font-size:clamp(1.45rem,2.4vw,2.05rem);font-weight:780;letter-spacing:-.04em}.impact-row dd{margin:.15rem 0 0;color:rgba(255,255,255,.56);font-size:.76rem;line-height:1.35}.hero-visual{align-self:center;position:relative;max-width:450px;justify-self:end}.portrait-frame{position:relative;background:#152632;padding:.65rem;border-radius:15rem 15rem 1.4rem 1.4rem;box-shadow:var(--shadow)}.portrait-frame:before{content:"";position:absolute;inset:-1rem 1.5rem 2.6rem -1rem;border:1px solid rgba(70,214,160,.42);border-radius:inherit;z-index:-1}.portrait-frame img{width:100%;aspect-ratio:.78;object-fit:cover;object-position:center 18%;border-radius:14rem 14rem .9rem .9rem}.coordinate-tag{position:absolute;right:-1rem;bottom:1.5rem;padding:.62rem .9rem;color:var(--ink);background:var(--gold);font:800 .68rem/1.2 ui-monospace,monospace;letter-spacing:.04em;transform:rotate(-2deg)}.hero-note{width:88%;margin:1rem 0 0 auto;display:flex;align-items:center;gap:.7rem;color:rgba(255,255,255,.7);font-size:.79rem;line-height:1.4}.hero-note p{margin:0}.hero-note strong{color:#fff;display:block}.pulse{width:.65rem;height:.65rem;flex:0 0 auto;border-radius:50%;background:var(--green);animation:pulse 2s infinite}
.section{max-width:var(--max);margin:0 auto;padding:clamp(5rem,9vw,8.5rem) 1rem}.section-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.58fr);gap:3rem;align-items:end;margin-bottom:2.5rem}.section-heading .kicker{margin-bottom:.55rem}.section-heading h2,.field-copy h2,.about-copy h2,.contact-inner h2{margin:0;font-size:clamp(2.35rem,5vw,4.9rem);letter-spacing:-.055em;line-height:1.03}.section-heading>p{margin:0;color:var(--muted);max-width:490px}.section-work{padding-bottom:7rem}.filter-bar{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.6rem}.filter{cursor:pointer;border:1px solid var(--line);background:transparent;border-radius:999px;padding:.55rem .95rem;font-size:.86rem;font-weight:730}.filter:hover,.filter.active{color:#fff;background:var(--ink);border-color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 35px rgba(7,19,29,.05);transition:.25s}.project-card.hidden{display:none}.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.project-open{width:100%;height:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;display:grid;grid-template-columns:42% 1fr}.project-featured{grid-column:1/-1}.project-featured .project-open{grid-template-columns:52% 1fr}.project-image{min-height:330px;overflow:hidden;background:#dae4df}.project-featured .project-image{min-height:480px}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s}.project-card:hover .project-image img{transform:scale(1.045)}.project-image.image-field img{object-position:center 30%}.project-body{padding:clamp(1.35rem,3vw,2.2rem);display:flex;flex-direction:column;align-items:flex-start}.project-meta{width:100%;display:flex;justify-content:space-between;gap:1rem;color:var(--green2);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:850}.project-meta time{color:var(--muted);white-space:nowrap}.project-body h3{margin:.8rem 0 .75rem;font-size:clamp(1.45rem,2.2vw,2.25rem);letter-spacing:-.035em;line-height:1.1}.project-body p{color:var(--muted);margin:0 0 1.2rem}.tag-list,.tool-row{list-style:none;padding:0;margin:auto 0 1.4rem;display:flex;flex-wrap:wrap;gap:.45rem}.tag-list li,.tool-row span{border:1px solid var(--line);border-radius:999px;padding:.36rem .66rem;color:#425863;background:#f7f9f8;font-size:.72rem;font-weight:700}.text-link{margin-top:auto;color:var(--ink);font-size:.88rem;font-weight:800;border-bottom:1px solid var(--ink)}
.field-section{max-width:none;padding-left:max(1rem,calc((100vw - var(--max))/2));padding-right:max(1rem,calc((100vw - var(--max))/2));display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,7vw,7rem);color:#fff;background:var(--ink2)}.field-copy>p:not(.kicker){color:rgba(255,255,255,.67);font-size:1.05rem}.field-copy .kicker{color:var(--green)}.process-list{list-style:none;padding:1rem 0 0;margin:0}.process-list li{display:grid;grid-template-columns:2.6rem 1fr;gap:.75rem;padding:1rem 0;border-top:1px solid rgba(255,255,255,.12)}.process-list li>span{color:var(--green);font:800 .72rem/1.5 ui-monospace,monospace}.process-list strong{font-size:.98rem}.process-list p{margin:.15rem 0 0;color:rgba(255,255,255,.58);font-size:.88rem;line-height:1.5}.field-gallery{display:grid;grid-template-columns:1.3fr .7fr;grid-template-rows:1fr 1fr;gap:.75rem;min-height:680px}.gallery-item{position:relative;border:0;padding:0;cursor:zoom-in;overflow:hidden;border-radius:1rem;background:#1d3442}.gallery-large{grid-row:1/3}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.gallery-item:hover img{transform:scale(1.04)}.gallery-item span{position:absolute;left:.8rem;bottom:.8rem;padding:.35rem .6rem;border-radius:999px;background:rgba(7,19,29,.82);color:#fff;font-size:.72rem;font-weight:750}
.coverage{padding:3.2rem 0;color:#fff;background:#0b202c;overflow:hidden}.coverage-heading{max-width:var(--max);margin:0 auto 1.5rem;padding:0 1rem;display:flex;justify-content:space-between;align-items:end}.coverage-heading .kicker{margin:0;color:var(--green)}.coverage-heading h2{margin:0;font-size:clamp(1.7rem,3vw,2.5rem);letter-spacing:-.04em}.state-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.state-track{display:flex;width:max-content;animation:marquee 42s linear infinite}.state-track span{margin-right:.75rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.6rem 1rem;color:rgba(255,255,255,.76);font-size:.85rem;white-space:nowrap}
.expertise-section{padding-bottom:6rem}.expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.expertise-card{position:relative;min-height:310px;padding:2rem;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.expertise-card:after{content:"";position:absolute;right:-4rem;top:-4rem;width:12rem;height:12rem;border:1px solid rgba(18,113,83,.15);border-radius:50%;box-shadow:0 0 0 1.7rem rgba(18,113,83,.05),0 0 0 3.4rem rgba(18,113,83,.03)}.expertise-index{color:var(--green2);font:800 .75rem/1 ui-monospace,monospace}.expertise-card h3{margin:3rem 0 .7rem;font-size:1.8rem;letter-spacing:-.04em}.expertise-card p{max-width:520px;color:var(--muted);margin:0 0 1.6rem}.expertise-card .tool-row{margin:auto 0 0}.maps-section{padding-top:4rem}.map-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.map-tile{position:relative;height:390px;border:0;padding:0;border-radius:1rem;overflow:hidden;cursor:zoom-in;background:#fff;box-shadow:0 10px 30px rgba(7,19,29,.07)}.map-tile:nth-child(even){transform:translateY(1.5rem)}.map-tile img{width:100%;height:100%;object-fit:cover;transition:transform .65s}.map-tile:hover img{transform:scale(1.05)}.map-tile>span{position:absolute;inset:auto .65rem .65rem;padding:.65rem .8rem;display:flex;border-radius:.75rem;background:rgba(7,19,29,.88);color:#fff;text-align:left}.map-tile strong,.map-tile small{display:block}.map-tile small{color:rgba(255,255,255,.58);font-size:.67rem}
.about-section{display:grid;grid-template-columns:.76fr 1.24fr;gap:clamp(3rem,7vw,7rem);align-items:center}.about-image{position:relative}.about-image:after{content:"";position:absolute;inset:1.2rem -1.2rem -1.2rem 1.2rem;border:1px solid var(--green2);border-radius:1rem;z-index:-1}.about-image img{width:100%;aspect-ratio:.82;object-fit:cover;object-position:center 35%;border-radius:1rem}.about-copy>p:not(.kicker){color:var(--muted);font-size:1.03rem}.education-list{margin-top:2rem;border-top:1px solid var(--line)}.education-list>div{display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.education-list time{color:var(--green2);font-weight:850}.education-list p{margin:0;line-height:1.4}.education-list strong,.education-list span{display:block}.education-list span{margin-top:.3rem;color:var(--muted);font-size:.85rem}
.contact-section{padding:1rem}.contact-inner{max-width:calc(var(--max) - 2rem);margin:0 auto;padding:clamp(3rem,8vw,6.5rem);border-radius:1.5rem;color:#fff;background:var(--green2);position:relative;overflow:hidden}.contact-inner:after{content:"";position:absolute;width:28rem;height:28rem;border:1px solid rgba(255,255,255,.16);border-radius:50%;right:-9rem;top:-13rem;box-shadow:0 0 0 3rem rgba(255,255,255,.04),0 0 0 6rem rgba(255,255,255,.025)}.contact-inner .kicker{color:#b5ffdf}.contact-inner h2{max-width:820px}.contact-inner>p:not(.kicker){max-width:650px;color:rgba(255,255,255,.72)}.contact-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem;position:relative;z-index:1}.button-light{color:var(--ink);background:#fff}.button-outline-light{color:#fff;border:1px solid rgba(255,255,255,.5)}.button-outline-light:hover{background:rgba(255,255,255,.1);border-color:#fff}.site-footer{max-width:var(--max);margin:0 auto;padding:2rem 1rem 3rem;display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.83rem}.site-footer p{margin:0}.site-footer span{color:var(--green2);margin:0 .35rem}.site-footer a{color:var(--ink);font-weight:750}
dialog{border:0;padding:0}dialog::backdrop{background:rgba(3,11,17,.82);backdrop-filter:blur(8px)}.project-dialog{width:min(1120px,calc(100% - 2rem));max-height:calc(100svh - 2rem);border-radius:1.35rem;background:#fff;color:var(--ink);overflow:auto;box-shadow:var(--shadow)}.dialog-shell{display:grid;grid-template-columns:.82fr 1.18fr;min-height:650px}.dialog-close,.lightbox-close{position:fixed;z-index:5;right:max(1.5rem,calc((100vw - 1080px)/2));top:1.5rem;width:2.65rem;height:2.65rem;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(7,19,29,.8);color:#fff;font-size:1.6rem;cursor:pointer}.dialog-image{min-height:650px;background:#e4ebe7}.dialog-image img{width:100%;height:100%;object-fit:cover}.dialog-content{padding:clamp(2rem,5vw,4.5rem)}.dialog-content h2{font-size:clamp(2.2rem,4vw,4.1rem);line-height:1.02;letter-spacing:-.055em;margin:0 0 1rem}.dialog-lead{color:var(--muted);font-size:1.05rem}.dialog-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;margin:2rem 0}.dialog-columns h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.11em}.dialog-columns ul{padding-left:1.1rem;color:#465a65}.dialog-columns li{margin-bottom:.5rem}.dialog-outcome{padding:1.2rem;background:#edf6f2;border-left:3px solid var(--green2)}.dialog-outcome span{color:var(--green2);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:850}.dialog-outcome p{margin:.35rem 0 0}.lightbox{width:min(1200px,calc(100% - 2rem));max-height:calc(100svh - 2rem);background:transparent;overflow:visible}.lightbox figure{margin:0;display:grid;place-items:center}.lightbox img{max-height:calc(100svh - 6rem);width:auto;border-radius:.8rem;box-shadow:var(--shadow)}.lightbox figcaption{margin-top:.7rem;color:#fff;text-align:center;font-size:.88rem}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}.reveal[data-delay="1"]{transition-delay:.12s}.reveal.visible{opacity:1;transform:none}@keyframes pulse{70%{box-shadow:0 0 0 .7rem rgba(70,214,160,0)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:980px){.hero{grid-template-columns:1fr .58fr;gap:2.5rem}.hero h1{font-size:clamp(3.6rem,8vw,5.7rem)}.impact-row{grid-template-columns:repeat(2,1fr)}.hero-visual{max-width:350px}.field-section,.about-section{grid-template-columns:1fr}.field-gallery{min-height:560px}.map-gallery{grid-template-columns:repeat(2,1fr)}.map-tile:nth-child(even){transform:none}.dialog-shell{grid-template-columns:1fr}.dialog-image{min-height:360px;height:48vh}.dialog-close{right:1.5rem}}
@media(max-width:760px){html{scroll-padding-top:4.5rem}.site-header{height:4.5rem;padding:0 1rem;background:rgba(7,19,29,.94)}.brand-copy small{display:none}.menu-toggle{display:block;cursor:pointer}.site-nav{position:absolute;top:4.5rem;left:0;right:0;display:none;padding:1rem;background:var(--ink);box-shadow:0 20px 40px rgba(0,0,0,.25)}.site-nav.open{display:grid}.site-nav a{padding:.7rem .25rem}.site-nav .nav-contact{text-align:center}.hero{min-height:auto;grid-template-columns:1fr;padding-top:7.5rem}.hero-copy{order:1}.hero-visual{width:min(86%,400px);justify-self:center;order:2}.hero h1{font-size:clamp(3.4rem,17vw,5.2rem)}.hero-intro{font-size:1.05rem}.impact-row{margin-top:.5rem}.section-heading{grid-template-columns:1fr;gap:1rem}.project-grid{grid-template-columns:1fr}.project-featured{grid-column:auto}.project-open,.project-featured .project-open{grid-template-columns:1fr}.project-image,.project-featured .project-image{min-height:300px;max-height:420px}.field-gallery{min-height:650px;grid-template-columns:1fr 1fr;grid-template-rows:1.25fr .75fr}.gallery-large{grid-column:1/3;grid-row:auto}.coverage-heading{display:block}.coverage-heading h2{margin-top:.35rem}.expertise-grid,.map-gallery{grid-template-columns:1fr}.expertise-card{min-height:280px}.map-tile{height:420px}.contact-inner{border-radius:1rem}.contact-actions{align-items:stretch}.contact-actions .button{width:100%}.site-footer{display:block}.site-footer a{display:inline-block;margin-top:.6rem}.dialog-columns{grid-template-columns:1fr}.dialog-image{height:36vh;min-height:260px}}
@media(max-width:460px){.brand-copy strong{font-size:.82rem}.brand-mark{width:2.2rem;height:2.2rem}.impact-row dd{font-size:.7rem}.hero-actions .button{width:100%}.field-gallery{min-height:540px}.map-tile{height:350px}.education-list>div{grid-template-columns:3.5rem 1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Lokoja flood-resilience case study */
.project-lokoja{border-color:rgba(18,113,83,.34);box-shadow:0 22px 65px rgba(18,113,83,.12)}.project-lokoja .project-meta span{color:var(--green2)}
.button-dark-outline{border:1px solid var(--line);color:var(--ink)}.button-dark-outline:hover{border-color:var(--ink);background:rgba(7,19,29,.04)}
.lokoja-case{background:#fff}.lokoja-intro{display:grid;grid-template-columns:1.45fr .85fr;gap:clamp(2rem,7vw,6rem);align-items:end;padding-top:6.5rem;padding-bottom:3.5rem}.lokoja-intro h2,.case-copy h3,.case-results h3,.decision-value h3{margin:.3rem 0 1.25rem;font-size:clamp(2.5rem,5vw,5.4rem);line-height:1.02;letter-spacing:-.055em}.lokoja-lead{max-width:800px;color:var(--muted);font-size:1.08rem}.lokoja-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}.lokoja-facts{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.lokoja-facts div{padding:1.25rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.lokoja-facts dt{font-size:clamp(1.65rem,3vw,2.55rem);font-weight:900;line-height:1;letter-spacing:-.05em;color:var(--green2)}.lokoja-facts dd{margin:.45rem 0 0;color:var(--muted);font-size:.76rem;line-height:1.4}.lokoja-hero{max-width:1440px;margin:0 auto;padding:0 1rem 5rem}.lokoja-hero button{display:block;width:100%;padding:0;border:0;border-radius:1.25rem;overflow:hidden;cursor:zoom-in;background:var(--ink);box-shadow:var(--shadow);position:relative}.lokoja-hero img{width:100%;aspect-ratio:16/9;object-fit:cover}.lokoja-hero span{position:absolute;left:1rem;bottom:1rem;padding:.5rem .8rem;border-radius:999px;background:rgba(7,19,29,.88);color:#fff;font-size:.76rem;font-weight:750}.lokoja-story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,7vw,7rem);padding-top:5rem;padding-bottom:6rem}.case-copy h3,.case-results h3,.decision-value h3{font-size:clamp(2.2rem,4vw,4rem)}.case-copy>p:not(.kicker){color:var(--muted);font-size:1.03rem}.case-note{padding:1rem 1.2rem;border-left:3px solid var(--green2);background:#edf6f2}.case-workflow{list-style:none;padding:0;margin:0}.case-workflow li{display:grid;grid-template-columns:3.2rem 1fr;gap:.85rem;padding:1.25rem 0;border-top:1px solid var(--line)}.case-workflow li>span{font:850 .75rem/1.5 ui-monospace,monospace;color:var(--green2)}.case-workflow strong{font-size:1.05rem}.case-workflow p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.55}.case-results{background:var(--ink2);color:#fff}.case-results>.section{padding-top:6rem;padding-bottom:6rem}.case-results .section-heading>p{color:rgba(255,255,255,.65)}.case-results .kicker{color:var(--green)}.result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:3.5rem}.result-card{min-height:220px;padding:1.4rem;border:1px solid rgba(255,255,255,.14);border-radius:1rem;background:rgba(255,255,255,.045);display:flex;flex-direction:column}.result-card span{color:var(--green);font-size:.7rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.result-card strong{margin:1.25rem 0 .6rem;font-size:clamp(2rem,3vw,3.3rem);line-height:1;letter-spacing:-.05em}.result-card p{margin:auto 0 0;color:rgba(255,255,255,.62);font-size:.82rem;line-height:1.5}.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.evidence-figure{padding:0;border:0;border-radius:1rem;overflow:hidden;background:#fff;cursor:zoom-in;text-align:left}.evidence-figure img{width:100%;aspect-ratio:1.45;object-fit:cover}.evidence-figure>span{display:block;padding:.85rem 1rem;color:var(--ink)}.evidence-figure strong,.evidence-figure small{display:block}.evidence-figure small{color:var(--muted);font-size:.72rem;margin-top:.15rem}.decision-value{padding-top:6rem;padding-bottom:6rem}.decision-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);color:var(--muted);font-size:1.03rem}.case-tools{margin-top:2rem}
@media(max-width:980px){.lokoja-intro,.lokoja-story{grid-template-columns:1fr}.result-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.lokoja-intro{padding-top:5rem}.lokoja-actions .button{width:100%}.lokoja-facts{grid-template-columns:1fr 1fr}.lokoja-hero{padding-bottom:2.5rem}.lokoja-story{padding-top:3rem;padding-bottom:4.5rem}.result-grid,.evidence-grid,.decision-columns{grid-template-columns:1fr}.result-card{min-height:190px}.case-results>.section,.decision-value{padding-top:4.5rem;padding-bottom:4.5rem}.lokoja-hero span{font-size:.68rem}}

/* Compact homepage portrait */
@media(min-width:981px){.hero{grid-template-columns:minmax(0,1fr) 240px;gap:clamp(2rem,5vw,5rem)}.hero-visual{width:220px;max-width:220px}.portrait-frame{padding:.45rem;border-radius:1rem}.portrait-frame:before{inset:-.65rem .8rem 1.6rem -.65rem;border-radius:1rem}.portrait-frame img{aspect-ratio:4/5;border-radius:.7rem;object-position:center 18%}.coordinate-tag{right:-.55rem;bottom:.8rem;padding:.45rem .58rem;font-size:.55rem}.hero-note{width:100%;font-size:.72rem}}
@media(max-width:980px) and (min-width:761px){.hero-visual{max-width:230px}.portrait-frame,.portrait-frame img{border-radius:1rem}.portrait-frame img{aspect-ratio:4/5}}
@media(max-width:760px){.hero-visual{width:190px;max-width:190px}.portrait-frame,.portrait-frame img{border-radius:1rem}.portrait-frame img{aspect-ratio:4/5}.coordinate-tag{right:-.5rem;font-size:.54rem}}

/* Multi-page portfolio */
.multipage{background:#f4f7f5}.multipage .site-header{background:rgba(7,19,29,.96)}.multipage .site-nav a.active:not(.nav-contact){color:var(--green)}.multipage .site-nav a.active:not(.nav-contact):after{width:100%}
.profile-hero{min-height:92svh;display:grid;grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr);gap:clamp(3rem,8vw,8rem);align-items:center;padding:8.5rem max(1rem,calc((100vw - var(--max))/2)) 4.5rem;color:#fff;background:var(--ink);overflow:hidden;position:relative}.profile-hero:after{content:"";position:absolute;width:34rem;height:34rem;border:1px solid rgba(70,214,160,.13);border-radius:50%;left:-15rem;bottom:-20rem;box-shadow:0 0 0 4rem rgba(70,214,160,.035),0 0 0 8rem rgba(70,214,160,.02)}.profile-photo-wrap,.profile-intro{position:relative;z-index:1}.profile-photo-wrap{justify-self:center;text-align:center}.profile-photo-ring{width:clamp(230px,26vw,340px);aspect-ratio:1;border:.55rem solid #fff;border-radius:50%;padding:.35rem;background:var(--gold);box-shadow:0 26px 70px rgba(0,0,0,.36);position:relative}.profile-photo-ring:after{content:"";position:absolute;inset:-1.3rem;border:1px solid rgba(70,214,160,.4);border-radius:50%;transform:translate(.7rem,-.7rem)}.profile-photo-ring img{width:100%;height:100%;object-fit:cover;object-position:center 17%;border-radius:50%;position:relative;z-index:1}.profile-location{display:inline-block;margin-top:1.2rem;color:rgba(255,255,255,.62);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.profile-intro h1{margin:.35rem 0 1.3rem;font-size:clamp(4.2rem,8vw,8.4rem);line-height:.88;letter-spacing:-.075em}.profile-intro h1 em{color:var(--green);font-style:normal}.profile-lead{max-width:850px;margin:0;color:#fff;font-size:clamp(1.2rem,2vw,1.62rem);line-height:1.45}.profile-summary{max-width:760px;color:rgba(255,255,255,.63);font-size:1rem}.profile-intro .button-ghost{color:#fff;border-color:rgba(255,255,255,.38)}.profile-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}.profile-links a{color:rgba(255,255,255,.74);font-size:.83rem;font-weight:750;border-bottom:1px solid rgba(255,255,255,.3)}.profile-links a:hover{color:var(--green)}
.home-proof{max-width:var(--max);margin:-1px auto 0;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line)}.home-proof div{padding:1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.home-proof strong,.home-proof span{display:block}.home-proof strong{font-size:clamp(1.45rem,2.8vw,2.6rem);letter-spacing:-.045em;color:var(--green2)}.home-proof span{margin-top:.25rem;color:var(--muted);font-size:.78rem}.home-feature{padding-top:7rem;padding-bottom:7rem}.home-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.feature-story{border:1px solid var(--line);border-radius:1.15rem;overflow:hidden;background:#fff}.feature-story a{display:block;color:inherit}.feature-story img{width:100%;aspect-ratio:1.55;object-fit:cover;transition:transform .55s}.feature-story:hover img{transform:scale(1.025)}.feature-story div{padding:1.45rem}.feature-story span,.portfolio-card span{color:var(--green2);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.feature-story h3{margin:.55rem 0;font-size:clamp(1.45rem,2.5vw,2.25rem);line-height:1.08;letter-spacing:-.035em}.feature-story p{color:var(--muted)}.feature-story strong{font-size:.82rem}.section-link{display:inline-flex;margin-top:2rem;color:var(--green2);font-weight:850}.home-band{background:#e5f2ec}.home-band-inner{padding-top:6rem;padding-bottom:6rem}.home-band-inner h2{max-width:1000px;margin:.25rem 0 2rem;font-size:clamp(2.6rem,5.5vw,5.4rem);line-height:1;letter-spacing:-.06em}.home-band-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,7rem);max-width:1050px;color:var(--muted);font-size:1.06rem}
.page-hero{padding:10rem max(1rem,calc((100vw - var(--max))/2)) 6rem;color:#fff;background:var(--ink)}.page-hero h1{max-width:1100px;margin:.4rem 0 1.25rem;font-size:clamp(3.8rem,8vw,7.8rem);line-height:.92;letter-spacing:-.07em}.page-hero h1 em{font-style:normal;color:var(--green)}.page-hero>p:last-of-type{max-width:760px;color:rgba(255,255,255,.68);font-size:1.18rem}.resume-hero .button{margin-top:1rem}
.about-profile{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);align-items:center;padding-top:7rem;padding-bottom:7rem}.about-profile-image{position:relative}.about-profile-image img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:1rem;box-shadow:var(--shadow)}.about-profile-image span{position:absolute;left:.8rem;bottom:.8rem;padding:.45rem .7rem;border-radius:999px;background:rgba(7,19,29,.84);color:#fff;font-size:.72rem}.about-profile-copy h2,.field-notes h2,.education-panel h2{margin:.25rem 0 1.2rem;font-size:clamp(2.6rem,5vw,4.8rem);line-height:1.02;letter-spacing:-.055em}.about-profile-copy>p:not(.kicker),.field-notes-copy>p:not(.kicker){color:var(--muted);font-size:1.05rem}.values-section{background:var(--ink2);color:#fff}.values-section>.section{padding-top:6rem;padding-bottom:6rem}.values-section .kicker{color:var(--green)}.values-section .section-heading>p{color:rgba(255,255,255,.62)}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:2rem}.values-grid article{padding:1.4rem;border:1px solid rgba(255,255,255,.13);border-radius:1rem}.values-grid span{color:var(--green);font:850 .73rem/1 ui-monospace,monospace}.values-grid h3{margin:3.5rem 0 .65rem}.values-grid p{margin:0;color:rgba(255,255,255,.62);font-size:.86rem}.field-notes{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,7vw,7rem);align-items:center;padding-top:7rem;padding-bottom:7rem}.field-notes-gallery{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.field-notes-gallery img{width:100%;height:430px;object-fit:cover;border-radius:1rem}.field-notes-gallery img:nth-child(2){margin-top:2.2rem}.education-panel{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(3rem,8vw,8rem);padding-top:2rem;padding-bottom:7rem}
.page-cta{padding:1rem}.page-cta>div{max-width:calc(var(--max) - 2rem);margin:0 auto;padding:clamp(3rem,7vw,5rem);border-radius:1.3rem;background:var(--green2);color:#fff}.page-cta .kicker{color:#bcf7df}.page-cta h2{max-width:900px;margin:.3rem 0 2rem;font-size:clamp(2.5rem,5vw,4.8rem);line-height:1;letter-spacing:-.055em}
.resume-layout{max-width:var(--max);margin:0 auto;padding:6rem 1rem;display:grid;grid-template-columns:280px 1fr;gap:clamp(3rem,8vw,8rem)}.resume-sidebar{align-self:start;position:sticky;top:7rem}.resume-sidebar>div{padding:1.4rem 0;border-top:1px solid var(--line)}.resume-sidebar a,.resume-sidebar span{display:block;margin:.45rem 0;color:var(--muted);font-size:.87rem}.resume-sidebar ul{margin:.5rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.87rem}.resume-sidebar li{margin:.45rem 0}.resume-block{padding:0 0 4.5rem;margin-bottom:4.5rem;border-bottom:1px solid var(--line)}.resume-block:last-child{margin-bottom:0}.resume-profile{font-size:clamp(1.45rem,2.7vw,2.2rem);line-height:1.38;letter-spacing:-.025em}.timeline article{display:grid;grid-template-columns:170px 1fr;gap:2rem;padding:2rem 0;border-top:1px solid var(--line)}.timeline time,.timeline span{display:block}.timeline time{font-weight:850;color:var(--green2)}.timeline span{margin-top:.3rem;color:var(--muted);font-size:.78rem}.timeline h2{margin:0;font-size:1.6rem}.timeline h3{margin:.2rem 0 1rem;color:var(--muted);font-size:.9rem}.timeline ul{padding-left:1.1rem;color:#40545e}.timeline li{margin:.45rem 0}.resume-education{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.resume-education article{padding:1.25rem;border:1px solid var(--line);border-radius:.8rem;background:#fff}.resume-education time{color:var(--green2);font-weight:850}.resume-education h2{font-size:1rem;line-height:1.45}.resume-education p,.development-list{color:var(--muted);font-size:.86rem}.development-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.portfolio-catalogue{padding-top:4rem;padding-bottom:7rem}.portfolio-filter{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:2rem}.portfolio-filter button{padding:.68rem 1rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:750 .8rem/1 inherit;cursor:pointer}.portfolio-filter button.active,.portfolio-filter button:hover{background:var(--green2);border-color:var(--green2);color:#fff}.portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.portfolio-card{border:1px solid var(--line);border-radius:1rem;background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s}.portfolio-card:hover{transform:translateY(-3px);box-shadow:0 20px 45px rgba(15,49,51,.1)}.portfolio-card.hidden{display:none}.portfolio-card a,.portfolio-static{display:grid;grid-template-columns:.8fr 1.2fr;color:inherit;height:100%}.portfolio-card img{width:100%;height:100%;min-height:330px;object-fit:cover}.portfolio-card a>div,.portfolio-static>div{padding:1.4rem;display:flex;flex-direction:column}.portfolio-card h2{margin:.65rem 0;font-size:1.45rem;line-height:1.08;letter-spacing:-.035em}.portfolio-card p{color:var(--muted);font-size:.88rem}.portfolio-card ul{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0;margin:auto 0 1rem}.portfolio-card li{padding:.28rem .5rem;border-radius:999px;background:#e9f3ee;color:#245648;font-size:.68rem;font-weight:740}.portfolio-card strong,.portfolio-card small{font-size:.76rem}.portfolio-card small{color:var(--muted)}
@media(max-width:980px){.profile-hero{grid-template-columns:260px 1fr;gap:3rem}.profile-intro h1{font-size:clamp(4rem,9vw,6.3rem)}.values-grid{grid-template-columns:1fr 1fr}.about-profile,.field-notes,.education-panel{grid-template-columns:1fr}.about-profile-image{max-width:520px}.resume-layout{grid-template-columns:1fr}.resume-sidebar{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.portfolio-card a,.portfolio-static{grid-template-columns:1fr}.portfolio-card img{height:320px;min-height:0}}
@media(max-width:760px){.profile-hero{grid-template-columns:1fr;text-align:left;padding-top:7rem}.profile-photo-wrap{justify-self:start;margin-left:.75rem}.profile-photo-ring{width:210px}.profile-intro h1{font-size:clamp(3.8rem,16vw,5.6rem)}.home-proof{grid-template-columns:1fr 1fr}.home-feature-grid,.home-band-grid,.portfolio-grid{grid-template-columns:1fr}.page-hero{padding-top:8rem}.page-hero h1{font-size:clamp(3.2rem,14vw,5.2rem)}.values-grid{grid-template-columns:1fr}.field-notes-gallery img{height:330px}.resume-sidebar{grid-template-columns:1fr}.timeline article{grid-template-columns:1fr;gap:1rem}.resume-education,.development-list{grid-template-columns:1fr}.portfolio-card img{height:auto;aspect-ratio:1.45}.contact-section{padding-top:4rem}}
@media(max-width:460px){.home-proof{grid-template-columns:1fr}.profile-links{gap:1rem}.field-notes-gallery{grid-template-columns:1fr}.field-notes-gallery img{height:330px}.field-notes-gallery img:nth-child(2){margin-top:0}}

/* Editorial links to published environmental research — no changes to core portfolio design. */
.research-spotlight{margin-top:2.1rem;padding:1.55rem;border:1px solid #d4e5dc;border-radius:1.15rem;background:#f0f7f3}
.research-heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:end;gap:1.6rem;margin-bottom:1.2rem}
.research-heading .kicker{margin:0 0 .35rem}
.research-heading h3{margin:0;color:var(--ink);font-size:clamp(1.38rem,2.3vw,2.15rem);line-height:1.1;letter-spacing:-.045em}
.research-heading>p{margin:0;max-width:580px;color:var(--muted);font-size:.89rem;line-height:1.6}
.research-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.research-links>a{min-width:0;display:flex;flex-direction:column;gap:.64rem;padding:1.2rem;border:1px solid #d4e1db;border-radius:.85rem;background:#fff;color:var(--ink);transition:transform .2s,border-color .2s,box-shadow .2s}
.research-links>a:hover{transform:translateY(-2px);border-color:var(--green2);box-shadow:0 12px 30px rgba(16,55,52,.09)}
.research-links>a:focus-visible{outline:3px solid var(--green2);outline-offset:3px}
.research-links .research-label{color:var(--green2);font-size:.66rem;line-height:1.35;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.research-links strong{font-size:1.12rem;line-height:1.2;letter-spacing:-.02em}
.research-links>a>span:not(.research-label){color:var(--muted);font-size:.83rem;line-height:1.6}
.research-links em{margin-top:auto;color:var(--green2);font-style:normal;font-weight:850;font-size:.78rem}
@media(max-width:980px){.research-heading{grid-template-columns:1fr;gap:.6rem}.research-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.research-spotlight{padding:1rem}.research-links{grid-template-columns:1fr}.research-links>a{padding:1.15rem}}

/* Pages CMS safe appearance presets. Default "green" retains the original design. */
body.tone-teal{--green:#4cdbd3;--green2:#117671}
body.tone-blue{--green:#86c4ff;--green2:#205d94}
body.tone-teal .button-primary:hover{background:#85ede6}
body.tone-blue .button-primary:hover{background:#b5dbff}
body.tone-teal .site-nav .nav-contact:hover{background:#85ede6}
body.tone-blue .site-nav .nav-contact:hover{background:#b5dbff}
