@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:#183b3d;--muted:#586c6b;--paper:#f7f8f4;--line:#dce4dd;--teal:#22786a;--lime:#dcebb3;--serif:Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--teal);outline-offset:5px}.wrap{width:min(1240px,calc(100% - 100px));margin:auto}.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:100}.skip:focus{top:0}header{position:sticky;top:0;z-index:30;background:#f7f8f4ee;backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}.nav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-1.5px;font-size:26px}.brand span{color:var(--teal)}nav{display:flex;align-items:center;gap:30px}nav a{font-size:13px;font-weight:550}nav a:hover{color:var(--teal)}.contact-nav{border:1px solid var(--line);padding:9px 17px;border-radius:30px}.arrow{display:inline-block;margin-left:10px}.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:7px 12px;color:var(--ink)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:650;display:flex;gap:10px;align-items:center}.dot{height:7px;width:7px;background:#489b6a;border-radius:50%;box-shadow:0 0 0 4px #489b6a12}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:70px;align-items:center;padding:85px 0 80px}.hero h1{font:650 clamp(42px,4.8vw,69px)/1.09 Manrope,sans-serif;letter-spacing:-3.8px;margin:25px 0 25px}.hero h1 em{font-family:var(--serif);font-weight:400;color:var(--teal)}.hero p{color:var(--muted);max-width:470px;font-size:16px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 28px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:12px 20px;font-size:13px;font-weight:600;transition:transform .25s,background .25s;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.btn:hover{transform:translateY(-3px);background:#edf0e9}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:var(--teal)}.hero-note{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:10px}.hero-note:before{content:'';width:28px;height:1px;background:var(--teal)}.art-panel{position:relative;aspect-ratio:1/1.06;border-radius:160px 160px 12px 12px;background:#e6ede2;overflow:hidden;isolation:isolate}.art-panel:after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23344b39' opacity='.14' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");opacity:.25;pointer-events:none}.orbit{position:absolute;width:580px;height:580px;left:50%;top:45%;transform:translate(-50%,-50%);border:1px solid #8ba58e55;border-radius:50%}.orbit.o2{width:440px;height:440px}.orbit.o3{width:300px;height:300px}.orb{position:absolute;width:250px;height:250px;border-radius:50%;top:20%;left:24%;background:radial-gradient(circle at 30% 22%,#dceeb8,#b0c4a0 43%,#597f6c 76%,#214c48);box-shadow:25px 35px 60px #274c4130,inset -20px -15px 30px #1f4b4930;animation:float 9s ease-in-out infinite}.wave-art{position:absolute;inset:0;width:100%;height:100%;animation:flow 14s ease-in-out infinite alternate}.art-kicker{position:absolute;top:37px;left:40px;font:10px/1.8 'DM Sans',sans-serif;letter-spacing:2px}.art-bottom{position:absolute;bottom:31px;left:30px;right:30px;display:flex;align-items:flex-end;justify-content:space-between}.art-bottom strong{font:400 31px/1.1 var(--serif)}.art-bottom span{font-size:9px;text-align:right;letter-spacing:1.6px}.floating-label{position:absolute;right:17px;top:50%;background:#ffffffda;border:1px solid #fff;border-radius:8px;padding:12px 16px;font-size:11px;box-shadow:0 12px 25px #2843390a;animation:float 9s ease-in-out -3s infinite}.floating-label b{display:block;font-size:12px}.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:28px;padding:27px 0;align-items:center}.trust-label{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted)}.trust strong{font:700 20px/1.2 Manrope,sans-serif;letter-spacing:-.5px}.trust small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.section{padding:92px 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:35px}.section-heading h2,h2{font:600 39px/1.2 Manrope,sans-serif;letter-spacing:-1.6px;margin:12px 0}.section-heading p{max-width:350px;color:var(--muted);font-size:13px;margin:0}.section-index{font:11px 'DM Sans',sans-serif;color:var(--teal);letter-spacing:1.5px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.filter{border:1px solid var(--line);padding:7px 15px;border-radius:30px;background:transparent;font-size:11px;color:var(--muted);cursor:pointer}.filter.active{background:var(--ink);border-color:var(--ink);color:white}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.project{transition:transform .3s}.project:hover{transform:translateY(-6px)}.project[hidden]{display:none}.project-visual{aspect-ratio:1.26;overflow:hidden;position:relative;border-radius:10px;margin-bottom:21px;background:#e7eee5}.project-visual svg{width:100%;height:100%;transition:transform .7s}.project:hover svg{transform:scale(1.045)}.project-type{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--teal);margin-bottom:9px}.project h3{font:650 20px/1.35 Manrope,sans-serif;letter-spacing:-.6px;margin:0 0 10px}.project p{font-size:13px;color:var(--muted);margin:0 0 16px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{font-size:9px;border:1px solid var(--line);padding:3px 8px;border-radius:4px;color:var(--muted)}.project-link{display:inline-block;font-weight:600;font-size:12px;margin-top:19px;border-bottom:1px solid #97b3a6;padding-bottom:3px}.experience{background:#edf1e9;border-block:1px solid var(--line)}.exp-layout{display:grid;grid-template-columns:.8fr 1.5fr;gap:100px}.exp-intro p{font-size:14px;color:var(--muted)}.timeline article{display:grid;grid-template-columns:1fr 2.1fr;gap:35px;padding:27px 0;border-bottom:1px solid #d3ddcf}.timeline article:first-child{padding-top:0}.timeline article:last-child{border:0;padding-bottom:0}.timeline time{font-size:10px;color:var(--muted)}.timeline h3{font:650 19px Manrope,sans-serif;margin:0 0 4px;letter-spacing:-.5px}.timeline .role{font-size:12px;color:var(--teal);margin:0 0 10px}.timeline p{font-size:13px;color:var(--muted);margin:0}.skills{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.skill-num{font-size:12px;color:var(--teal);border-bottom:1px solid var(--line);padding-bottom:15px}.skills h3{font:600 20px Manrope,sans-serif;letter-spacing:-.5px}.skills p{font-size:13px;color:var(--muted)}.about{display:grid;grid-template-columns:.9fr 1.3fr;gap:90px;border-top:1px solid var(--line);padding-top:80px;margin-top:80px}.about p{color:var(--muted);font-size:14px}.education{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.education strong{display:block;font-size:12px}.education small{font-size:11px;color:var(--muted)}.contact{background:var(--ink);color:#f2f5e8;border-radius:14px;padding:55px 65px;display:flex;align-items:center;justify-content:space-between;gap:40px;position:relative;overflow:hidden}.contact:before{content:'';position:absolute;width:480px;height:480px;border:1px solid #ffffff10;border-radius:50%;right:-100px;top:-140px;pointer-events:none}.contact h2{font-size:42px;margin:15px 0}.contact p{font-size:13px;color:#bdcec7;max-width:450px}.contact .btn{background:var(--lime);border-color:var(--lime);white-space:nowrap}.contact .eyebrow{color:var(--lime)}footer{display:flex;justify-content:space-between;gap:25px;padding:35px 0;color:var(--muted);font-size:11px}.socials{display:flex;gap:24px}.reveal{animation:appear .8s both}.js-reveal{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.js-reveal.visible{opacity:1;transform:none}.case-hero{padding:65px 0 45px;max-width:850px}.back{font-size:12px;color:var(--teal)}.case-hero h1{font:650 clamp(38px,5vw,65px)/1.12 Manrope,sans-serif;letter-spacing:-2.6px;margin:30px 0 20px}.case-hero .lead{font-size:19px;color:var(--muted)}.case-meta{display:flex;flex-wrap:wrap;gap:40px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.case-meta span{font-size:12px}.case-meta b{display:block;text-transform:uppercase;letter-spacing:1.5px;font-size:9px;color:var(--teal);margin-bottom:6px}.case-layout{display:grid;grid-template-columns:.6fr 2fr;gap:90px;padding:40px 0 80px}.case-layout aside{font-size:12px;color:var(--muted)}.case-layout aside a{display:block;padding:5px 0}.case-body section{margin-bottom:40px}.case-body h2{font-size:27px;letter-spacing:-.8px}.case-body p,.case-body li{font-size:15px;color:var(--muted)}.case-illustration{height:300px;border-radius:12px;overflow:hidden;background:#e7eee5}.case-illustration svg{height:100%;width:100%}.caption{font-size:10px!important;color:var(--muted);margin-top:8px}.next-case{border-top:1px solid var(--line);padding:30px 0;display:flex;justify-content:space-between;font-size:14px}@keyframes float{50%{transform:translateY(-15px)}}@keyframes flow{to{transform:translateY(16px) rotate(3deg)}}@keyframes appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@media(min-width:1500px){.hero{padding-block:100px}.hero h1{font-size:76px}}@media(max-width:1000px){.wrap{width:calc(100% - 60px)}.hero{gap:35px;padding:60px 0}.hero h1{font-size:51px;letter-spacing:-2.8px}.orb{width:190px;height:190px}.project-grid{gap:18px}.exp-layout{gap:45px}.about{gap:40px}.timeline article{gap:20px}.contact{padding:40px}.contact h2{font-size:34px}}@media(max-width:720px){.wrap{width:calc(100% - 40px)}.nav{height:72px}.menu-toggle{display:block}nav{display:none;position:absolute;left:0;right:0;top:72px;padding:24px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:18px}nav.open{display:flex}.hero{grid-template-columns:1fr;gap:35px;padding:45px 0}.hero h1{font-size:49px}.hero p{font-size:15px}.art-panel{max-height:420px;aspect-ratio:1.15;border-radius:120px 120px 10px 10px}.orb{width:220px;height:220px;left:25%;top:17%}.art-bottom strong{font-size:27px}.trust{grid-template-columns:repeat(3,1fr);gap:15px;padding:23px 0}.trust-label{grid-column:1/-1}.trust strong{font-size:16px}.trust small{font-size:9px}.section{padding:60px 0}.section-heading{display:block}.section-heading p{margin-top:15px;max-width:none}.section-heading h2,h2{font-size:33px}.project-grid{grid-template-columns:1fr;gap:40px}.project-visual{aspect-ratio:1.5}.project h3{font-size:23px}.exp-layout,.about,.case-layout{grid-template-columns:1fr;gap:30px}.timeline article{grid-template-columns:1fr;gap:8px}.skills{grid-template-columns:1fr;gap:25px}.skills h3{margin-block:13px}.about{padding-top:50px;margin-top:50px}.contact{padding:30px;display:block}.contact h2{font-size:32px}.contact .btn{margin-top:15px}footer{flex-direction:column;gap:10px;padding:25px 0}.case-hero{padding-top:40px}.case-hero h1{letter-spacing:-1.8px}.case-meta{gap:20px}.case-layout aside{display:none}.case-illustration{height:220px}.education{grid-template-columns:1fr;gap:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-reveal{opacity:1;transform:none}}
.art-kicker{top:62px;left:80px}@media(max-width:720px){.art-kicker{top:45px;left:65px;font-size:9px}}
.art-kicker{z-index:3}.project:hover .project-visual img{transform:scale(1.045)}.project-visual img{transition:transform .7s}
.portrait-panel{background:#d5e7e3;border-radius:150px 150px 14px 14px}.hero-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%;z-index:1}.portrait-panel .orb,.portrait-panel .orbit,.portrait-panel .art-kicker,.portrait-panel .floating-label{display:none}.portrait-panel:after{z-index:2;background:linear-gradient(0deg,#0d292a90,transparent 45%);opacity:1}.portrait-panel .wave-art{z-index:3;opacity:.22;top:55%;height:45%;mix-blend-mode:screen}.portrait-panel .wave-art g{stroke:#fff;opacity:.75}.portrait-panel .art-bottom{z-index:4;color:white}.portrait-panel .art-bottom strong{font-size:29px}.graduation-photo{margin:26px 0 0;max-width:370px}.graduation-photo img{display:block;width:100%;height:360px;object-fit:cover;object-position:50% 44%;border-radius:10px}.graduation-photo figcaption{font-size:10px;color:var(--muted);margin-top:10px;letter-spacing:.4px}@media(max-width:720px){.portrait-panel{aspect-ratio:1/1.15;max-height:480px;border-radius:110px 110px 10px 10px}.hero-portrait{object-position:50% 27%}.graduation-photo{max-width:none}.graduation-photo img{height:400px;object-position:50% 43%}}
.hero-portrait{object-position:50% 0}@media(max-width:720px){.hero-portrait{object-position:50% 0}}
.relocation-note{font-size:11px;color:var(--teal);margin-top:9px;padding-left:38px}
