@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#122f30;--paper:#f7f8f4;--lime:#d5ef7d;--muted:#576664;--line:#ced5ce}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #557200;outline-offset:7px}.wrap{width:min(1280px,calc(100% - 112px));margin:auto}.skip{position:absolute;top:-100px;background:var(--lime);padding:12px;z-index:10}.skip:focus{top:10px}header{display:flex;align-items:center;justify-content:space-between;min-height:112px;border-bottom:1px solid var(--line)}.wordmark{font-weight:700;font-size:1.2rem;letter-spacing:-.045em}.mark{font-size:1.5rem;color:var(--ink);margin-left:14px}nav{display:flex;gap:34px;font-size:.9375rem}nav a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:6px}.eyebrow{display:flex;justify-content:space-between;font-size:.75rem;letter-spacing:.12em;font-weight:600;padding-top:52px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',sans-serif}h1{font-size:clamp(5rem,10.8vw,9.6rem);letter-spacing:-.075em;line-height:1.04;font-weight:500;margin:46px 0 55px}em{font-style:normal}h1 em{position:relative;isolation:isolate}h1 em:before{content:'';position:absolute;inset:56% -3% 2% -1%;background:var(--lime);z-index:-1;transform:rotate(-2deg)}.hero-bottom{display:flex;justify-content:space-between;gap:60px;align-items:flex-start;padding-bottom:64px}.intro{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.5;max-width:660px;letter-spacing:-.025em}.role{font-size:.75rem;letter-spacing:.06em;min-width:220px}.role strong{display:block;font-size:1.35rem;letter-spacing:-.02em;margin:3px 0 23px}.text-link{display:flex;justify-content:space-between;gap:30px;font-size:.9375rem;letter-spacing:0;border-bottom:1px solid var(--ink);padding-bottom:8px}.hero-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;font-size:.75rem;letter-spacing:.1em}.section{display:grid;grid-template-columns:1fr 2.3fr;gap:70px;padding-top:112px;padding-bottom:112px}.section-label{font-size:.75rem;font-weight:600;letter-spacing:.12em;line-height:1.5;padding-top:10px}.section-content{max-width:840px}h2{font-size:clamp(2.5rem,4.1vw,3.6rem);font-weight:500;line-height:1.15;letter-spacing:-.055em;margin-bottom:36px}.section-content>p{max-width:750px;color:var(--muted);margin-top:22px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid var(--line);margin-top:48px;padding-top:34px}.facts strong{display:block;font:500 2.35rem/1.3 'Manrope',sans-serif;letter-spacing:-.05em}.facts span{font-size:.9375rem;line-height:1.6;display:block;max-width:245px;color:var(--muted);margin-top:10px}.focus{background:var(--ink);color:var(--paper)}.focus h2{margin-bottom:52px}.focus-row{display:flex;gap:30px;padding:30px 0;border-top:1px solid #456060}.number{color:var(--lime);font-size:.8125rem;padding-top:6px}.focus-row h3{font-size:1.5rem;font-weight:500;letter-spacing:-.035em;margin-bottom:10px}.focus-row p{color:#c0cdca;max-width:600px;font-size:1rem}.lead{font-size:1.35rem}.principles{margin-top:44px}.principles article{padding:25px 0;border-top:1px solid var(--line)}.principles h3{font-size:1.2rem;font-weight:650;letter-spacing:-.03em;margin-bottom:8px}.principles p{color:var(--muted);font-size:1rem;max-width:620px}.closing{background:var(--lime);padding:72px 0 84px}.closing .wrap{display:grid;grid-template-columns:1fr 2.3fr;gap:70px}.closing p{font:500 clamp(2.5rem,4.6vw,4rem)/1.2 'Manrope',sans-serif;letter-spacing:-.055em}.closing em{color:#4f642c}footer{padding-top:32px;padding-bottom:32px;display:flex;justify-content:space-between;align-items:center;gap:24px}footer span{font-size:.8125rem;color:var(--muted)}@media(min-width:1500px){.hero{padding-top:20px}}@media(max-width:850px){.wrap{width:calc(100% - 56px)}header{min-height:90px}nav{gap:20px}.eyebrow{font-size:.6875rem;gap:30px}.hero-bottom{gap:40px}.intro{max-width:470px}.role{min-width:170px}.section{grid-template-columns:1fr;gap:30px;padding:76px 0}.closing .wrap{grid-template-columns:1fr;gap:26px}h1{margin-top:44px}.hero-foot{font-size:.6875rem}footer{flex-wrap:wrap}footer span:nth-child(2){order:3;width:100%}}@media(max-width:550px){body{font-size:1rem}.wrap{width:calc(100% - 40px)}header{min-height:82px}.wordmark{font-size:1.0625rem}nav{gap:16px;font-size:.8125rem}.mark{display:none}.eyebrow{padding-top:32px;letter-spacing:.06em;line-height:1.5}.eyebrow span:first-child{max-width:170px}.eyebrow span:last-child{text-align:right;max-width:95px}h1{font-size:clamp(3.4rem,13.3vw,5rem);margin:42px 0;letter-spacing:-.07em}.hero-bottom{display:block;padding-bottom:42px}.intro{font-size:1.25rem}.role{margin-top:34px;max-width:250px}.role strong{margin-bottom:14px}.hero-foot{gap:20px;font-size:.625rem;letter-spacing:.04em}.hero-foot span:last-child{text-align:right}.section{padding:64px 0;gap:25px}h2{font-size:2.45rem;margin-bottom:26px}.facts{gap:26px;margin-top:34px}.facts strong{font-size:1.7rem}.facts span{font-size:.875rem}.focus-row{gap:18px}.focus-row h3{font-size:1.3rem}.focus-row p,.principles p{font-size:1rem}.lead{font-size:1.2rem}.closing{padding:52px 0 60px}.closing p{font-size:2.35rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.closing h2{margin-bottom:24px}.closing .contact-copy{font:400 1.125rem/1.65 "DM Sans",sans-serif;letter-spacing:0;color:#344a2b}.contact-links{display:flex;gap:40px;flex-wrap:wrap;margin-top:32px}.contact-links a{font-size:1.0625rem;border-bottom:1px solid var(--ink);padding-bottom:7px}.contact-links span{margin-left:12px}.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}@media(max-width:550px){header{align-items:flex-start;padding-top:21px;padding-bottom:18px;gap:18px;flex-direction:column}nav{width:100%;justify-content:space-between}.contact-links{gap:24px}.closing .contact-copy{font-size:1rem}}

/* Personal point of view and restrained motion */
.viewpoint{position:relative;overflow:clip;background:var(--lime);padding:120px 0 108px}.viewpoint-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 2.3fr;gap:70px}.viewpoint-mark{position:absolute;right:-.04em;bottom:-.34em;color:rgba(18,47,48,.07);font:800 clamp(15rem,38vw,38rem)/1 'Manrope',sans-serif;letter-spacing:-.12em;user-select:none}.statement{max-width:900px;font:500 clamp(2.7rem,5vw,5.1rem)/1.08 'Manrope',sans-serif;letter-spacing:-.065em}.statement.accent{margin-top:18px;color:#39502f}.thinking{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:82px;padding-top:20px;border-top:1px solid rgba(18,47,48,.35);font-size:.72rem;font-weight:700;letter-spacing:.13em}.thinking span:not(:first-child){padding-left:18px;border-left:1px solid rgba(18,47,48,.2)}.focus-row{transition:transform .28s ease,border-color .28s ease}.focus-row:hover{transform:translateX(10px);border-color:var(--lime)}.focus-row:hover h3{color:var(--lime)}.principles article{display:grid;grid-template-columns:48px 1fr;gap:18px;transition:padding-left .28s ease}.principles article:hover{padding-left:12px}.principles article>span{font-size:.75rem;font-weight:600;color:#75923c;padding-top:5px}.contact-links a{transition:transform .2s ease}.contact-links a:hover{transform:translateY(-3px)}.has-motion .section,.has-motion .viewpoint-grid,.has-motion .closing .wrap{opacity:0;transform:translateY(30px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.25,1)}.has-motion .section.in-view,.has-motion .viewpoint-grid.in-view,.has-motion .closing .wrap.in-view{opacity:1;transform:none}@media(max-width:850px){.viewpoint{padding:84px 0 78px}.viewpoint-grid{grid-template-columns:1fr;gap:30px}.thinking{margin-top:58px}}@media(max-width:550px){.viewpoint{padding:66px 0 60px}.statement{font-size:2.5rem}.thinking{grid-template-columns:1fr 1fr;gap:15px;margin-top:44px}.thinking span:not(:first-child){padding-left:0;border-left:0}.thinking span:nth-child(even){padding-left:15px;border-left:1px solid rgba(18,47,48,.2)}nav{gap:12px;font-size:.75rem}.viewpoint-mark{font-size:17rem}}@media(prefers-reduced-motion:reduce){.focus-row,.principles article,.contact-links a{transition:none}.focus-row:hover,.principles article:hover,.contact-links a:hover{transform:none}}

/* Deliberate opening and editorial portrait */
.intro-curtain{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:var(--ink);color:var(--lime);overflow:hidden;pointer-events:none;animation:curtain-leave 1.05s cubic-bezier(.76,0,.24,1) .72s forwards}.intro-curtain span{font:700 clamp(5rem,16vw,14rem)/1 'Manrope',sans-serif;letter-spacing:-.09em;animation:curtain-type .85s cubic-bezier(.16,1,.3,1) both}.intro-curtain i{position:absolute;left:0;right:0;bottom:0;height:8px;background:var(--lime);animation:curtain-line .62s cubic-bezier(.16,1,.3,1) .08s both}.hero-main{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(290px,.56fr);gap:clamp(36px,5vw,80px);align-items:end;margin:38px 0 46px}.hero-main h1{margin:0}.portrait-frame{margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;min-height:510px}.portrait-panel{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--lime);clip-path:inset(0 100% 0 0);animation:portrait-reveal 1.05s cubic-bezier(.16,1,.3,1) 1.28s forwards}.portrait-panel:after{content:'';position:absolute;inset:0;background:var(--lime);mix-blend-mode:multiply;opacity:.12;pointer-events:none}.portrait-panel img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 26%;filter:saturate(.78) contrast(1.04);transform:scale(1.09);animation:portrait-settle 1.4s cubic-bezier(.16,1,.3,1) 1.2s forwards}.portrait-frame figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:12px;font-size:.62rem;font-weight:700;letter-spacing:.11em}.portrait-frame figcaption span:last-child{text-align:right;color:var(--muted)}header,.eyebrow,.hero-bottom,.hero-foot{animation:hero-rise .78s cubic-bezier(.16,1,.3,1) both}header{animation-delay:1.06s}.eyebrow{animation-delay:1.14s}.hero-bottom{animation-delay:1.34s}.hero-foot{animation-delay:1.42s}.hero-main h1{animation:hero-title .95s cubic-bezier(.16,1,.3,1) 1.14s both}.hero-main h1 em:before{transform-origin:left center;animation:highlight-draw .78s cubic-bezier(.16,1,.3,1) 1.74s both}

/* Full section wipes, followed by staggered content */
.has-motion .section,.has-motion .viewpoint-grid,.has-motion .closing .wrap{opacity:1;transform:none;position:relative}.has-motion .section:after,.has-motion .viewpoint-grid:after,.has-motion .closing .wrap:after{content:'';position:absolute;z-index:20;inset:-2px;background:var(--lime);transform:scaleX(1);transform-origin:left;pointer-events:none}.has-motion .focus .section:after{background:var(--paper)}.has-motion .viewpoint-grid:after{background:var(--ink)}.has-motion .closing .wrap:after{background:var(--ink)}.has-motion .in-view:after{transform:scaleX(0);transform-origin:right;transition:transform 1.05s cubic-bezier(.76,0,.24,1)}.has-motion .section .section-label,.has-motion .section .section-content,.has-motion .viewpoint-grid>*,.has-motion .closing .wrap>*{opacity:0;transform:translateY(34px)}.has-motion .in-view .section-label,.has-motion .in-view .section-content,.has-motion .viewpoint-grid.in-view>*,.has-motion .closing .wrap.in-view>*{opacity:1;transform:none;transition:opacity .55s ease .62s,transform .72s cubic-bezier(.16,1,.3,1) .62s}.has-motion .in-view .section-content{transition-delay:.72s}

@keyframes curtain-type{from{opacity:0;transform:translateY(55px);letter-spacing:.02em}to{opacity:1;transform:none;letter-spacing:-.09em}}@keyframes curtain-line{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes curtain-leave{0%{transform:translateY(0)}100%{transform:translateY(-101%)}}@keyframes portrait-reveal{to{clip-path:inset(0 0 0 0)}}@keyframes portrait-settle{to{transform:scale(1)}}@keyframes hero-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes hero-title{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}@keyframes highlight-draw{from{transform:rotate(-2deg) scaleX(0)}to{transform:rotate(-2deg) scaleX(1)}}

@media(max-width:1000px){.hero-main{grid-template-columns:minmax(0,1.3fr) minmax(250px,.7fr)}.portrait-frame{min-height:430px}h1{font-size:clamp(4rem,9.5vw,7.5rem)}}@media(max-width:700px){.hero-main{grid-template-columns:1fr;margin-top:38px}.hero-main h1{font-size:clamp(3.6rem,15.5vw,5.4rem)}.portrait-frame{min-height:0;width:74%;margin:-12px 0 0 auto}.portrait-frame figcaption{display:block}.portrait-frame figcaption span{display:block}.portrait-frame figcaption span:last-child{text-align:left;margin-top:4px}.hero-bottom{margin-top:12px}.intro-curtain span{font-size:8rem}}@media(prefers-reduced-motion:reduce){.intro-curtain{display:none}.portrait-panel{clip-path:none}.portrait-panel,.portrait-panel img,header,.eyebrow,.hero-bottom,.hero-foot,.hero-main h1,.hero-main h1 em:before{animation:none}.has-motion .section:after,.has-motion .viewpoint-grid:after,.has-motion .closing .wrap:after{display:none}.has-motion .section .section-label,.has-motion .section .section-content,.has-motion .viewpoint-grid>*,.has-motion .closing .wrap>*{opacity:1;transform:none}}

/* Motion v2: varied choreography; content stays visible if animation is unavailable. */
.closing{position:relative;overflow:hidden;min-height:72vh;display:flex;align-items:center}.closing:before{content:'06';position:absolute;right:-.05em;bottom:-.34em;color:rgba(18,47,48,.08);font:800 clamp(17rem,42vw,42rem)/1 'Manrope',sans-serif;letter-spacing:-.12em;pointer-events:none}.closing .wrap{position:relative;z-index:1;width:min(1280px,calc(100% - 112px))}.closing h2{font-size:clamp(3rem,5.4vw,5.2rem);max-width:900px}.contact-links a{font:500 clamp(1.05rem,1.65vw,1.35rem)/1.35 'Manrope',sans-serif}.focus,.viewpoint,.closing{will-change:clip-path}.focus-row,.principles article{will-change:transform,opacity}@media(max-width:850px){.closing{min-height:64vh}.closing .wrap{width:calc(100% - 56px)}}@media(max-width:550px){.closing{min-height:82vh}.closing .wrap{width:calc(100% - 40px)}.closing h2{font-size:2.7rem}.closing:before{font-size:20rem;bottom:-.2em;right:-.14em}}
html,body{overflow-x:clip}

@media(max-width:700px){.viewpoint{background:var(--paper);color:var(--ink)}.viewpoint .statement.accent{color:#4f642c}.viewpoint .viewpoint-mark{color:rgba(18,47,48,.055)}.viewpoint .thinking{border-color:rgba(18,47,48,.28)}.viewpoint .thinking span:not(:first-child),.viewpoint .thinking span:nth-child(even){border-color:rgba(18,47,48,.18)}}

@media(prefers-reduced-motion:reduce){.js #about .section-label,.js #about h2,.js #about .section-content>p,.js #about .facts>div,.js #focus,.js #focus .section-label,.js #focus h2,.js #focus .focus-row,.js #viewpoint,.js #viewpoint .section-label,.js #viewpoint .statement,.js #viewpoint .thinking,.js #viewpoint .viewpoint-mark,.js #approach .section-label,.js #approach h2,.js #approach .lead,.js #approach .principles article,.js #contact,.js #contact .section-label,.js #contact h2,.js #contact .contact-copy,.js #contact .contact-links a{opacity:1;transform:none;clip-path:none}}

/* Keep the contact marker in view while the closing section scrolls. */
.closing{min-height:115vh;align-items:stretch;padding:0}.closing .wrap{padding:17vh 0 14vh;align-content:start}.closing .section-label{position:sticky;top:12vh;align-self:start;height:max-content;z-index:3;background:var(--lime);padding:10px 0}
@media(max-width:850px){.closing{min-height:112vh}.closing .wrap{padding:11vh 0 10vh}.closing .section-label{top:22px}}

/* Every numbered section marker follows the reader within its own section. */
.section-label{position:sticky;top:clamp(24px,8vh,82px);align-self:start;height:max-content;z-index:5;padding:10px 0}.about .section-label,.approach .section-label{background:var(--paper)}.focus .section-label{background:var(--ink)}.viewpoint .section-label,.closing .section-label{background:var(--lime)}.closing .section-label{top:clamp(24px,8vh,82px)}
@media(max-width:700px){.section-label,.closing .section-label{top:18px}.viewpoint .section-label{background:var(--paper)}}

/* Give the Point of View marker scroll runway without leaving a large empty tail. */
.viewpoint{min-height:auto}.viewpoint-grid{min-height:clamp(600px,62vh,680px);align-content:start}
@media(max-width:850px){.viewpoint-grid{min-height:85vh}}

/* Selected work: concrete evidence in the existing editorial layout. */
.impact .section-label{background:var(--paper)}
.impact-story{border-top:1px solid var(--line);margin-top:44px;padding-top:28px}
.impact-story .impact-sector{font-size:.75rem;font-weight:600;letter-spacing:.09em;margin-bottom:14px;color:var(--muted)}
.impact-story h3{font-size:clamp(1.65rem,2.5vw,2.2rem);font-weight:500;line-height:1.2;letter-spacing:-.045em;margin-bottom:20px}
.impact-story>p:not(.impact-sector):not(.impact-role){color:var(--muted);margin-top:16px;max-width:750px}
.impact-result{border-left:3px solid #8ca542;padding:4px 0 4px 22px;margin-top:26px}
.impact-result strong{display:block;font:500 clamp(1.8rem,3vw,2.7rem)/1.2 'Manrope',sans-serif;letter-spacing:-.045em}
.impact-result span{display:block;color:var(--muted);font-size:1rem;margin-top:8px}
.impact-story .impact-role{font-size:.875rem;margin-top:20px;color:var(--muted)}
.impact-role span{margin:0 8px}
@media(max-width:550px){.impact-story{margin-top:32px;padding-top:24px}.impact-result{padding-left:16px}.impact-role span{margin:0 4px}}

/* Content remains readable before, during and without entrance animation. */
header,.eyebrow,.hero-bottom,.hero-foot,.hero-main h1,.hero-main h1 em:before,.portrait-panel,.portrait-panel img{animation:none}
.portrait-panel{clip-path:none}.portrait-panel img{transform:none}
.closing{overflow:clip;min-height:85vh}.closing .wrap{padding:11vh 0;align-content:stretch}
.viewpoint-grid{min-height:0}.viewpoint{padding:88px 0}.thinking{margin-top:48px}
.impact-result{margin:18px 0 24px}
@media(max-width:850px){.closing{min-height:0}.closing .wrap{padding:76px 0;align-content:start}.viewpoint{padding:76px 0}}
@media(max-width:550px){.viewpoint{padding:64px 0}.closing .wrap{padding:64px 0}}

/* Restored opening sequence; reduced-motion visitors see the page immediately. */
.no-js .intro-curtain{display:none}
@media(prefers-reduced-motion:no-preference){
header,.eyebrow,.hero-bottom,.hero-foot{animation:hero-rise 1s cubic-bezier(.22,.61,.36,1) 1s both}
.hero-main h1{animation:hero-title 1.15s cubic-bezier(.22,.61,.36,1) 1.05s both}
.hero-main h1 em:before{animation:highlight-draw .9s cubic-bezier(.22,.61,.36,1) 1.6s both}
.portrait-panel{animation:portrait-reveal 1.15s cubic-bezier(.22,.61,.36,1) 1.1s both}
.portrait-panel img{animation:portrait-settle 1.5s cubic-bezier(.22,.61,.36,1) 1.05s both}
@keyframes portrait-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes portrait-settle{from{transform:scale(1.09)}to{transform:scale(1)}}
}
