:root{--green-900: #24502f;--green-700: #2f6b3f;--green-300: #a9d1a4;--green-100: #d3ebd0;--green-50: #eef7ec;--peach-500: #f09a72;--peach-200: #fcd5c0;--peach-50: #fff3ec;--rust: #b4532a;--cream: #faf7f2;--white: #ffffff;--ink: #141414;--ink-soft: #2b2b2b;--muted: #5d5d58;--line: rgba(20, 20, 20, 0.1);--serif: 'Fraunces', Georgia, 'Times New Roman', serif;--sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;--radius: 20px;--radius-lg: 32px;--shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 12px 32px -12px rgba(36, 80, 47, 0.18);--container: 1180px;--gutter: clamp(16px, 4vw, 40px);--nav-h: 72px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--ink-soft);background:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}img{max-width:100%;display:block;height:auto}a{color:var(--green-700);text-decoration-color:var(--green-300);text-decoration-thickness:2px;text-underline-offset:4px}a:hover{color:var(--green-900);text-decoration-color:var(--peach-500)}h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);line-height:1.15;margin:0 0 .5em;font-weight:600}p{margin:0 0 1em}button{font:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--peach-500);outline-offset:3px;border-radius:6px}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--ink);color:var(--white);padding:10px 16px;border-radius:8px}.skip:focus{top:16px;color:var(--white)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:999px;border:1.5px solid var(--ink);background:var(--ink);color:var(--white);font-weight:600;font-size:15px;letter-spacing:.01em;text-decoration:none;transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease}.btn:hover{background:var(--green-100);border-color:var(--green-100);color:var(--ink);transform:translateY(-2px)}.btn--ghost{background:rgba(0,0,0,0);color:var(--ink)}.btn--ghost:hover{background:var(--green-100);border-color:var(--green-100);color:var(--ink)}.btn--sm{padding:9px 18px;font-size:14px}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--green-900);background:var(--white);border:1px solid var(--line);padding:7px 14px;border-radius:999px}.dot{width:8px;height:8px;border-radius:50%;background:var(--green-300);box-shadow:0 0 0 4px var(--green-100)}.kicker{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--rust);margin-bottom:12px}.section{padding:clamp(72px,10vw,128px) 0}.section__title{font-size:clamp(32px,4.4vw,52px);letter-spacing:-0.015em;max-width:18ch}.section__lede{color:var(--muted);max-width:60ch}.nav{position:sticky;top:0;z-index:50;height:var(--nav-h);background:rgba(250,247,242,.82);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid rgba(0,0,0,0);transition:border-color .2s ease,background .2s ease}.nav.is-scrolled{border-bottom-color:var(--line);background:rgba(250,247,242,.94)}.nav__inner{height:100%;display:flex;align-items:center;justify-content:space-between}.nav__brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.nav__brand:hover{color:var(--ink)}.nav__brand:hover .nav__logo{transform:rotate(-6deg)}.nav__logo{width:46px;height:46px;flex-shrink:0;transition:transform .3s ease}.nav__name{display:flex;flex-direction:column;line-height:1.15}.nav__title{font-family:var(--serif);font-weight:600;font-size:20px;color:var(--ink)}.nav__tagline{font-size:13px;color:var(--muted);margin-top:2px}@media(max-width: 420px){.nav__tagline{display:none}}.nav__menu{display:flex;align-items:center;gap:28px}.nav__menu a:not(.btn){color:var(--ink-soft);text-decoration:none;font-size:15px;font-weight:500;position:relative}.nav__menu a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:var(--peach-500);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav__menu a:not(.btn):hover::after,.nav__menu a:not(.btn).is-active::after{transform:scaleX(1)}.nav__toggle{display:none;background:none;border:0;width:44px;height:44px;padding:0;position:relative}.nav__bars,.nav__bars::before,.nav__bars::after{position:absolute;left:11px;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}.nav__bars{top:21px}.nav__bars::before{content:"";left:0;top:-7px}.nav__bars::after{content:"";left:0;top:7px}.nav__toggle[aria-expanded=true] .nav__bars{background:rgba(0,0,0,0)}.nav__toggle[aria-expanded=true] .nav__bars::before{transform:translateY(7px) rotate(45deg)}.nav__toggle[aria-expanded=true] .nav__bars::after{transform:translateY(-7px) rotate(-45deg)}@media(max-width: 860px){.nav__toggle{display:block}.nav__menu{position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);border-bottom:1px solid var(--line);padding:8px var(--gutter) 24px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s}.nav__menu.is-open{opacity:1;transform:none;visibility:visible}.nav__menu a:not(.btn){padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}.nav__menu a:not(.btn)::after{display:none}.nav__menu .btn{margin-top:16px}}.hero{position:relative;padding:clamp(40px,7vw,96px) 0 clamp(64px,8vw,112px);overflow:hidden}.hero::before{content:"";position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle, var(--green-100) 0%, rgba(211, 235, 208, 0) 70%);left:-260px;top:-200px;z-index:-1}.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,6vw,80px);align-items:center}.hero__title{font-size:clamp(40px,6.2vw,76px);font-weight:400;letter-spacing:-0.025em;line-height:1.04;margin:24px 0 24px}.hero__title em{font-style:italic;color:var(--green-700);position:relative;white-space:nowrap}.hero__title em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.08em;height:.32em;background:var(--green-100);z-index:-1;border-radius:4px}.hero__title em:last-child::after{background:var(--peach-200)}.hero__lede{font-size:clamp(17px,1.6vw,19px);color:var(--muted);max-width:54ch}.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.hero__media{position:relative;justify-self:center;width:min(100%,440px)}.hero__blob{position:absolute;inset:8% -8% -6% 10%;background:var(--peach-200);border-radius:58% 42% 46% 54%/46% 52% 48% 54%;z-index:-1;animation:blob 14s ease-in-out infinite alternate}.hero__photo{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:220px 220px var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow);border:6px solid var(--white)}.hero__badge{position:absolute;left:-24px;bottom:40px;display:flex;align-items:center;gap:12px;background:var(--green-100);border-radius:22px;padding:16px 22px 16px 20px;gap:14px;box-shadow:var(--shadow)}.hero__badge strong{font-family:var(--serif);font-size:56px;font-weight:600;color:var(--green-700);line-height:.9;letter-spacing:-0.03em;white-space:nowrap}.hero__badge strong span{font-size:inherit;color:inherit;line-height:inherit}.hero__badge>span{font-size:14px;line-height:1.35;color:var(--ink-soft)}@media(max-width: 860px){.hero__grid{grid-template-columns:1fr}.hero__media{width:min(80%,340px);order:-1}.hero__badge{left:-12px;bottom:24px}}@keyframes blob{0%{border-radius:58% 42% 46% 54%/46% 52% 48% 54%;transform:rotate(0deg)}100%{border-radius:42% 58% 60% 40%/56% 40% 60% 44%;transform:rotate(6deg)}}.stats{background:var(--ink);color:var(--white);padding:48px 0}.stats__grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:32px}@media(max-width: 760px){.stats__grid{grid-template-columns:repeat(2, 1fr)}}.stat{border-left:2px solid var(--green-300);padding-left:20px}.stat__num,.stat__plus{font-family:var(--serif);font-size:clamp(40px,5vw,56px);line-height:1;color:var(--white)}.stat__plus{color:var(--peach-500)}.stat p{margin:10px 0 0;font-size:14px;color:rgba(255,255,255,.72)}.about__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,96px)}.about__body{font-size:18px}.about__body p:first-child::first-letter{font-family:var(--serif);float:left;font-size:64px;line-height:.9;padding:6px 10px 0 0;color:var(--green-700)}.about__facts{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--line)}.about__facts li{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}.about__facts span{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding-top:2px}@media(max-width: 860px){.about__grid{grid-template-columns:1fr}.about__facts li{grid-template-columns:1fr;gap:4px}}.expertise{background:var(--green-50);position:relative}.cards{display:grid;grid-template-columns:repeat(3, 1fr);gap:20px;margin-top:48px}@media(max-width: 960px){.cards{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 620px){.cards{grid-template-columns:1fr}}.card{background:var(--white);border-radius:var(--radius);padding:32px 28px;transition:transform .25s ease,box-shadow .25s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card h3{font-size:22px;margin:20px 0 10px}.card p{color:var(--muted);font-size:16px;margin:0}.card__icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--peach-50);border:1px solid var(--peach-200)}.card__icon svg{width:26px;height:26px;fill:none;stroke:var(--rust);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card:nth-child(even) .card__icon{background:var(--green-50);border-color:var(--green-100)}.card:nth-child(even) .card__icon svg{stroke:var(--green-700)}.timeline{list-style:none;margin:48px 0 0;padding:0;border-top:1px solid var(--ink)}.job{border-bottom:1px solid var(--line)}.job__head{width:100%;background:none;border:0;text-align:left;color:inherit;display:grid;grid-template-columns:200px 1fr 40px;grid-template-areas:"when role chev" "when org chev";column-gap:24px;padding:28px 0}.job__head:hover .job__role{color:var(--green-700)}.job__head:hover .job__chev{background:var(--green-100);border-color:var(--green-300)}.job__when{grid-area:when;font-size:14px;font-weight:600;color:var(--rust);padding-top:6px}.job__role{grid-area:role;font-family:var(--serif);font-size:clamp(20px,2.4vw,26px);color:var(--ink);line-height:1.25;transition:color .2s ease}.job__org{grid-area:org;color:var(--muted);font-size:15px;margin-top:4px}.job__chev{grid-area:chev;align-self:center;justify-self:end;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--ink);position:relative}.job__chev::before,.job__chev::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--ink);transform:translate(-50%, -50%);transition:transform .25s ease}.job__chev::after{transform:translate(-50%, -50%) rotate(90deg)}.job.is-open .job__chev{background:var(--green-100);border-color:var(--green-300)}.job.is-open .job__chev::after{transform:translate(-50%, -50%) rotate(0deg)}.job__body{display:none;padding:0 0 32px 224px}.job__body>p{font-size:18px;color:var(--ink-soft);max-width:70ch}.job__body ul{margin:0;padding-left:18px}.job__body ul li{margin-bottom:8px;color:var(--muted)}.job__body ul li::marker{color:var(--green-300)}.job__body h4{font-family:var(--sans);font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--green-900);margin-bottom:12px}.job.is-open .job__body{display:block}.job__cols{display:grid;grid-template-columns:repeat(2, 1fr);gap:20px;margin-top:24px}.job__cols>div{background:var(--white);border-radius:var(--radius);padding:24px;border:1px solid var(--line)}.job__cols li{font-size:15.5px}@media(max-width: 760px){.job__head{grid-template-columns:1fr 40px;grid-template-areas:"when chev" "role chev" "org chev"}.job__when{padding:0 0 6px}.job__body{padding-left:0}.job__cols{grid-template-columns:1fr}}.work-section{background:var(--white)}.work-section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:40px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter{border:1.5px solid var(--line);background:var(--cream);color:var(--ink-soft);border-radius:999px;padding:9px 18px;font-size:14px;font-weight:500;transition:all .2s ease}.filter:hover{border-color:var(--ink)}.filter.is-active{background:var(--green-100);border-color:var(--green-300);color:var(--ink)}.works{display:grid;grid-template-columns:repeat(3, 1fr);gap:28px 24px}@media(max-width: 960px){.works{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 560px){.works{grid-template-columns:1fr}}.work.is-extra,.work.is-hidden{display:none}.works.show-all .work.is-extra:not(.is-hidden){display:block}.work__media{display:block;width:100%;padding:0;border:0;background:var(--green-50);border-radius:var(--radius);overflow:hidden;position:relative;aspect-ratio:16/10.2}.work__media img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s ease}.work__media::after{content:"+";position:absolute;right:14px;bottom:14px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:var(--ink);background:var(--peach-200);transform:scale(0.6);opacity:0;transition:all .25s ease}.work__media:hover img,.work__media:focus-visible img{transform:scale(1.04)}.work__media:hover::after,.work__media:focus-visible::after{opacity:1;transform:scale(1)}.work__badge{position:absolute;left:14px;top:14px;background:var(--green-100);color:var(--green-900);border:1px solid var(--green-300);font-size:12px;font-weight:600;letter-spacing:.04em;padding:4px 10px;border-radius:999px}.work__meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 4px 0}.work__title{font-size:19px;margin:0}.work__link{flex-shrink:0;font-size:14px;font-weight:600;text-decoration:none;color:var(--green-700);border-bottom:2px solid var(--green-300)}.work__link:hover{color:var(--green-900);border-bottom-color:var(--peach-500)}.work__link--muted{color:var(--muted);font-weight:500;border-bottom:0}.works__more{text-align:center;margin-top:48px}.skills{background:#fffaf7}.skills__grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:20px;margin-top:48px}@media(max-width: 960px){.skills__grid{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 620px){.skills__grid{grid-template-columns:1fr}}.skillset{background:var(--white);border-radius:var(--radius);padding:28px;border:1px solid var(--peach-200)}.skillset h3{font-size:20px;margin-bottom:16px}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.chips li{font-size:13.5px;padding:6px 12px;border-radius:999px;background:var(--green-50);color:var(--green-900);border:1px solid var(--green-100)}.faq{background:var(--white)}.faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,96px);align-items:start}.faq__list{border-top:1px solid var(--ink)}.faq__item{border-bottom:1px solid var(--line)}.faq__question{list-style:none;cursor:pointer;position:relative;padding:22px 52px 22px 0;font-family:var(--serif);font-size:clamp(18px,2vw,22px);color:var(--ink);line-height:1.3}.faq__question::-webkit-details-marker{display:none}.faq__question::before,.faq__question::after{content:"";position:absolute;right:12px;top:50%;width:14px;height:1.5px;background:var(--ink);transition:transform .25s ease}.faq__question::after{transform:rotate(90deg)}.faq__question:hover{color:var(--green-700)}.faq__item[open] .faq__question::after{transform:rotate(0deg)}.faq__answer{margin:0;padding:0 52px 24px 0;color:var(--muted);max-width:68ch}@media(max-width: 860px){.faq__grid{grid-template-columns:1fr}}.contact{background:var(--green-50);color:var(--ink-soft);position:relative;overflow:hidden}.contact::after{content:"";position:absolute;right:-180px;bottom:-220px;width:520px;height:520px;border-radius:50%;background:var(--green-100);opacity:.5}.contact .kicker{color:var(--rust)}.contact .section__title{color:var(--ink)}.contact__grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}.contact__intro>p{color:var(--ink-soft);font-size:18px;max-width:44ch}.contact__list{list-style:none;padding:0;margin:32px 0 0}.contact__list li{padding:14px 0;border-top:1px solid rgba(20,20,20,.15);display:grid;grid-template-columns:110px 1fr;gap:12px}.contact__list span{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--green-900);padding-top:2px}.contact__list a{color:var(--ink)}@media(max-width: 860px){.contact__grid{grid-template-columns:1fr}}.form{background:var(--white);color:var(--ink-soft);border-radius:var(--radius-lg);padding:clamp(24px,4vw,40px);box-shadow:0 24px 60px -24px rgba(0,0,0,.35)}.form__row{margin-bottom:18px}.form label{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:6px}.form input,.form textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);padding:13px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--cream);transition:border-color .2s ease,background .2s ease}.form input:focus,.form textarea:focus{outline:none;border-color:var(--green-300);background:var(--white);box-shadow:0 0 0 4px var(--green-50)}.form input.is-invalid,.form textarea.is-invalid{border-color:var(--rust);background:var(--peach-50)}.form textarea{resize:vertical;min-height:140px}.form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form .btn{width:100%;margin-top:6px}.form .btn[disabled]{opacity:.6;pointer-events:none}.form__status{margin:14px 0 0;font-size:15px;min-height:1.4em}.form__status.is-success{color:var(--green-700);font-weight:600}.form__status.is-error{color:var(--rust)}.footer{background:var(--ink);color:rgba(255,255,255,.7);padding:28px 0;font-size:14px}.footer__inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer p{margin:0}.footer a{color:var(--white);text-decoration:none}.footer a:hover{color:var(--peach-200)}.lightbox{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:rgba(20,20,20,.88);padding:64px 72px}.lightbox[hidden]{display:none}.lightbox__figure{margin:0;max-width:1200px;width:100%}.lightbox__figure img{width:100%;max-height:calc(100vh - 160px);object-fit:contain;border-radius:12px;background:var(--white)}.lightbox__figure figcaption{color:var(--white);font-family:var(--serif);font-size:20px;text-align:center;margin-top:16px}.lightbox__close,.lightbox__nav{position:absolute;border:0;background:var(--white);color:var(--ink);width:48px;height:48px;border-radius:50%;font-size:28px;line-height:1;display:grid;place-items:center}.lightbox__close:hover,.lightbox__nav:hover{background:var(--peach-200)}.lightbox__close{top:16px;right:16px}.lightbox__nav{top:50%;transform:translateY(-50%)}.lightbox__nav--prev{left:16px}.lightbox__nav--next{right:16px}@media(max-width: 640px){.lightbox{padding:72px 16px}.lightbox__nav{top:auto;bottom:16px;transform:none}}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.js .reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none !important;transition:none !important}.js .reveal{opacity:1;transform:none}}