@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f6f5f0;--ink:#203b32;--muted:#647066;--line:#d8ddd2;--green:#193c32;--lime:#d9e9a2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #739a39;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;line-height:1.15}img{display:block;width:100%}.wrap{max-width:1280px;width:calc(100% - 112px);margin:auto}header{height:88px;padding:0 56px;max-width:1440px;margin:auto;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line)}.brand{font:800 38px/1 Manrope,Arial;letter-spacing:-4px}.brand span{color:#829953}nav{display:flex;gap:35px;margin-left:auto;font-size:12px}nav a:hover{color:#789548}.controls{display:flex;gap:8px}#language{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:11px}#menu{display:none;background:none;font-size:23px}.skip{position:absolute;top:-60px;left:20px;background:var(--green);color:white;padding:10px;z-index:30}.skip:focus{top:10px}.hero{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:85px;padding-block:68px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:600;text-transform:uppercase;display:flex;align-items:center;gap:9px}.eyebrow i{width:7px;height:7px;border-radius:50%;background:#829953}.hero h1{font-size:clamp(65px,7.7vw,110px);font-weight:600;line-height:1.02;letter-spacing:-7px;margin:26px 0 24px}.hero h1 span{color:#90a95e}.statement{font-size:22px;font-weight:500;letter-spacing:-.6px;margin-bottom:14px}.intro{color:var(--muted);font-size:14px;max-width:470px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.button{padding:14px 22px;border:1px solid var(--green);border-radius:3px;font-size:12px;font-weight:500;transition:transform .2s}.button:hover{transform:translateY(-3px);background:#e5e9db}.primary,.primary:hover{background:var(--green);color:white}.current{margin-top:30px;font-size:10px;color:var(--muted)}.current span{display:block;font-size:9px;letter-spacing:1.5px;margin-bottom:4px}.visual{position:relative;padding-bottom:28px}.portrait{aspect-ratio:4/4.7;position:relative;overflow:hidden;background:#e0e5d8;border-radius:4px}.portrait img{height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.7)}.portrait:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#10291bb0)}.index{position:absolute;top:20px;left:20px;background:var(--bg);padding:5px 10px;font-size:9px;letter-spacing:2px}.caption{position:absolute;bottom:24px;left:24px;right:24px;display:flex;justify-content:space-between;color:white;font-size:10px;z-index:1}.badge{position:absolute;bottom:0;left:-22px;right:30px;background:var(--lime);border-radius:3px;display:flex;align-items:center;gap:15px;padding:17px 23px;box-shadow:0 8px 30px #173c3110}.badge b{font-size:32px;font-weight:400}.badge strong{display:block;font-size:13px}.badge small{display:block;font-size:10px}.badge>span{font-size:10px;margin-left:auto}.metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 0;border-block:1px solid var(--line)}.metrics>div{border-left:1px solid var(--line);padding:0 26px}.metrics>div:first-child{border-left:0;padding-left:0}.metrics strong{font:500 32px Manrope,Arial;letter-spacing:-1.5px}.metrics strong span{font-size:20px}.metrics p{color:var(--muted);font-size:10px;margin-top:7px}.section{padding-block:95px}.section .eyebrow{margin-bottom:20px}h2{font-size:40px;font-weight:500;letter-spacing:-1.8px}.heading{display:flex;justify-content:space-between;align-items:end;gap:40px}.heading>p{max-width:290px;font-size:13px;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:32px 0 27px}.filters button{border:1px solid var(--line);border-radius:25px;padding:8px 19px;background:transparent;font-size:11px}.filters .active{background:var(--green);color:white;border-color:var(--green)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px}.project[hidden]{display:none}.art{height:225px;position:relative;overflow:hidden;border-radius:4px;background:#e5eadc}.art svg{height:100%;width:100%}.art-label{position:absolute;top:18px;left:20px;font-size:9px;letter-spacing:1.5px}.art-metric{position:absolute;right:22px;bottom:14px;font:500 29px Manrope,Arial;letter-spacing:-1px}.project-meta{font-size:9px;letter-spacing:1px;text-transform:uppercase;display:flex;justify-content:space-between;color:var(--muted);margin-top:19px}.project h3{font-size:22px;letter-spacing:-.7px;margin:10px 0}.project p{font-size:13px;color:var(--muted)}details{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}summary{cursor:pointer;font-weight:600}details p{margin-top:10px}.note{font-size:10px;color:var(--muted);margin-top:28px}.experience{background:#eceedf;border-block:1px solid var(--line)}.split{display:grid;grid-template-columns:.9fr 1.2fr;gap:100px}.split h2{max-width:400px}.split .intro{margin-top:20px}.text-link{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-top:25px;font-size:12px}#timeline article{padding:25px 0;border-bottom:1px solid #cbd3be}#timeline article:first-child{padding-top:0}#timeline article:last-child{border:0}.date{font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.date span{font-size:9px;border:1px solid #a1b18b;border-radius:20px;padding:1px 8px}#timeline h3{font-size:20px;margin:11px 0 5px}#timeline .company{font-size:12px}#timeline .desc{font-size:12px;color:var(--muted);margin-top:11px}.lead{font-size:20px;line-height:1.55}.skills{margin-top:27px}.skills>div{border-top:1px solid var(--line);padding:18px 0}.skills h3{font-size:13px;margin-bottom:6px}.skills p{font-size:12px;color:var(--muted)}.credentials{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-bottom:90px}.credentials article{padding:25px;border:1px solid var(--line);border-radius:4px}.credentials .eyebrow{font-size:9px}.credentials h3{font-size:17px;line-height:1.4;margin:20px 0 12px}.credentials p:not(.eyebrow){font-size:11px;color:var(--muted)}.contact{background:var(--green);color:var(--bg);padding:75px 0}.contact .eyebrow{color:var(--lime)}.contact-title{display:flex;justify-content:space-between;align-items:center;gap:45px;margin:28px 0}.contact h2{font-size:54px;max-width:760px;letter-spacing:-2px}.arrow{width:85px;height:85px;border:1px solid #668073;border-radius:50%;display:grid;place-items:center;font-size:40px;flex-shrink:0}.arrow:hover{background:var(--lime);color:var(--green)}.contact p:not(.eyebrow){font-size:13px;color:#c2d0c6}.contact-links{display:flex;gap:35px;flex-wrap:wrap;margin-top:40px;border-top:1px solid #466454;padding-top:25px;font-size:13px}.contact-links a:hover{color:var(--lime)}footer{display:flex;justify-content:space-between;align-items:center;padding-block:28px;font-size:10px;color:var(--muted)}footer .brand{font-size:30px;color:var(--ink)}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}header{padding-inline:32px}.hero{gap:40px}.hero h1{letter-spacing:-5px}.statement{font-size:19px}.metrics strong{font-size:26px}.metrics>div{padding-inline:15px}.split{gap:50px}h2{font-size:34px}.contact h2{font-size:44px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}header{height:74px;padding-inline:20px;position:relative;z-index:5}.brand{font-size:33px}.controls{margin-left:auto}#menu{display:block;width:38px}nav{display:none;position:absolute;top:73px;left:0;right:0;background:var(--bg);padding:24px;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #173c3110}nav.open{display:flex;flex-direction:column;gap:23px}.hero{grid-template-columns:1fr;gap:36px;padding-block:42px}.hero h1{font-size:clamp(60px,20vw,78px);letter-spacing:-5px}.statement{font-size:20px}.visual{max-width:440px;width:100%;margin:auto;padding-left:10px}.portrait{aspect-ratio:4/4}.badge{left:0;right:20px}.metrics{grid-template-columns:1fr 1fr;padding:12px 0}.metrics>div{padding:18px!important;border:0}.metrics>div:nth-child(even){border-left:1px solid var(--line)}.metrics strong{font-size:28px}.metrics p{font-size:9px}.section{padding-block:60px}.heading{display:block}.heading>p{margin-top:20px;max-width:100%}h2{font-size:33px}.projects,.split{grid-template-columns:1fr;gap:35px}.art{height:210px}.filters{gap:6px}.filters button{padding:8px 14px}.credentials{grid-template-columns:1fr;gap:12px;padding-bottom:60px}.credentials article{padding:22px}.credentials h3{margin-top:12px}.contact{padding-block:50px}.contact h2{font-size:35px;letter-spacing:-1.5px}.contact-title{gap:15px}.arrow{width:48px;height:48px;font-size:25px}.contact-links{flex-direction:column;gap:17px;font-size:12px}.contact-links a{overflow-wrap:anywhere}.eyebrow{font-size:9px}footer{gap:15px}footer p{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Architectural palette and purposeful interaction feedback. */
:root{--bg:#f4f5f6;--ink:#202d3d;--muted:#5c6877;--line:#d4dae1;--green:#182b43;--lime:#dfd3bb;--accent:#927344;--ease:cubic-bezier(.22,1,.36,1)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:var(--accent)}
.brand span,.hero h1 span{color:var(--accent)}.eyebrow i{background:var(--accent)}nav a:hover{color:var(--accent)}
.portrait{background:#dfe4eb}.portrait:after{background:linear-gradient(transparent,#14243bbd)}
.badge{box-shadow:0 10px 30px #182b4312}.button:hover{background:#e3e8ef}.primary:hover{background:#263f5d}
.visual{padding-bottom:42px}
.caption{bottom:62px}
.badge{left:-18px;right:24px;bottom:0;z-index:2;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:14px;padding:18px 22px;min-height:78px}
.badge b{font-size:28px;line-height:1;text-align:center}.badge>div{min-width:0}.badge strong{font-size:13px;line-height:1.25;letter-spacing:.1px}.badge small{font-size:10px;line-height:1.45;margin-top:5px;max-width:190px}.badge>span{margin-left:0;align-self:start;padding-top:2px;font-variant-numeric:tabular-nums}
.art{background:#e3e8ee}.experience{background:#e8ecf1}#timeline article{border-color:var(--line)}.date span{border-color:#a6b2c1}
.arrow{border-color:#647286}.contact p:not(.eyebrow){color:#c4cedb}.contact-links{border-color:#43546b}
.button,.filters button,#language,#menu,.arrow{position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),background-color .25s,color .25s,border-color .25s,box-shadow .25s}
.button:hover,.arrow:hover{box-shadow:0 7px 18px #182b4315}.button:active,.filters button:active,#language:active,#menu:active,.arrow:active{transform:scale(.96)}
.filters button:hover:not(.active),#language:hover{background:#e3e8ef;border-color:#a6b2c1}
nav a,.text-link,.contact-links a,footer>a:last-child{position:relative;transition:color .2s}
nav a:after,.contact-links a:after,footer>a:last-child:after{content:'';position:absolute;left:0;bottom:-5px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
nav a:hover:after,nav a[aria-current]:after,.contact-links a:hover:after,footer>a:last-child:hover:after{transform:scaleX(1)}
.project .art svg{transition:transform .65s var(--ease)}.project:hover .art svg{transform:scale(1.035)}
summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:4px 0;transition:color .2s}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:20px;font-weight:400;line-height:1;transition:transform .3s var(--ease)}details[open]>summary:after{transform:rotate(45deg)}summary:hover{color:var(--accent)}
.click-wave{position:absolute;border-radius:50%;width:20px;height:20px;background:currentColor;opacity:0;pointer-events:none;z-index:-1;animation:click-wave .55s ease-out forwards}
@keyframes click-wave{from{opacity:.18;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(25)}}
@media(max-width:700px){nav.open{animation:menu-in .3s var(--ease)}.visual{padding-left:0;padding-bottom:58px}.caption{bottom:72px}.badge{left:10px;right:10px;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;padding:16px 18px;min-height:76px}.badge b{font-size:25px}.badge small{max-width:150px}@keyframes menu-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:390px){.badge{left:8px;right:8px;grid-template-columns:28px minmax(0,1fr);padding:14px 16px}.badge>span{grid-column:2;grid-row:2;padding-top:0}.badge small{max-width:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
