@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@500;600;700&display=swap');
:root{--bg:#f4f1ea;--paper:#fbfaf6;--ink:#18211e;--muted:#68716c;--green:#315c4b;--terra:#bd704c;--line:#d9d6ce}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.55}a{color:inherit}
.nav,main,footer{max-width:1180px;margin:auto}.nav{padding:27px 34px 0;display:flex;justify-content:space-between}.nav nav{display:flex;gap:27px}.nav a{text-decoration:none;color:var(--muted);font-size:.84rem}.nav a:hover{color:var(--green)}main{padding:0 34px}
.hero{min-height:760px;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center;padding:52px 0 70px;border-bottom:1px solid var(--line)}
.person{font-family:"Manrope";font-weight:600;font-size:1.08rem;margin:0 0 7px;color:var(--ink)}.eyebrow{font-size:.69rem;font-weight:600;letter-spacing:.14em;color:var(--green);margin:0}.hero-role{color:var(--green)}
.hero h1{font-family:"Manrope";font-size:clamp(2.55rem,3.75vw,3.55rem);line-height:1.09;letter-spacing:-.045em;margin:27px 0 27px;font-weight:650;max-width:660px;color:var(--ink)}.hero h1 span{display:block;white-space:nowrap}
.intro{color:var(--muted);font-size:1rem;line-height:1.62;max-width:570px;margin:0 0 24px}.tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px}.tools span{font-size:.76rem;font-weight:600;padding:6px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(251,250,246,.38)}.scroll-link{display:inline-block;text-decoration:none;border-bottom:1px solid var(--ink);font-weight:600;padding-bottom:3px}.scroll-link b{color:var(--terra);margin-left:8px}
.lens{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:29px;min-height:515px;overflow:hidden;box-shadow:0 16px 42px rgba(24,33,30,.04)}.lens-head{position:relative;z-index:2;display:flex;justify-content:space-between;font-size:.65rem;font-weight:600;letter-spacing:.12em;color:var(--muted)}.lens-head span:first-child{color:var(--green)}
.lens-stage{position:relative;z-index:2}.first{padding:50px 0 31px}.step,.metric{font-size:.65rem;letter-spacing:.12em;color:var(--muted);margin:0}.first>strong{display:block;font-family:"Manrope";font-size:4.35rem;letter-spacing:-.065em;line-height:1;color:var(--terra);margin:7px 0}.thought{font-family:"Manrope";font-size:1.13rem;font-weight:600;margin:19px 0 0}
.lens-divider{position:relative;z-index:2;display:flex;align-items:center;gap:13px;font-size:.65rem;letter-spacing:.12em;font-weight:600;color:var(--green)}.lens-divider i{height:1px;flex:1;background:var(--line)}
.second{padding-top:23px}.context-stat{display:grid;grid-template-columns:1fr 1fr;gap:18px}.context-stat div{border-bottom:1px solid var(--line);padding-bottom:14px}.context-stat small{display:block;color:var(--muted);font-size:.61rem;letter-spacing:.06em}.context-stat strong{font-family:"Manrope";font-size:1.42rem;color:var(--ink)}.question{font-family:"Manrope";font-size:1.17rem;font-weight:600;margin:21px 0 13px}.second a{font-size:.81rem;font-weight:600;text-decoration:none;color:var(--terra)}

.section{padding:92px 0;border-bottom:1px solid var(--line)}.section>h2,.about h2{font-family:"Manrope";font-size:clamp(2.25rem,4.3vw,3.7rem);line-height:1.05;letter-spacing:-.05em;margin:14px 0 43px}
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.project-grid article{min-height:315px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:30px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.project-grid article:hover{transform:translateY(-3px);box-shadow:0 13px 30px rgba(24,33,30,.055)}.num{font-size:.64rem;letter-spacing:.09em;color:var(--green);font-weight:600;margin:0}.project-grid h3{font-family:"Manrope";font-size:1.6rem;line-height:1.17;letter-spacing:-.035em;margin:31px 0 14px}.project-grid article>p:not(.num){color:var(--muted);font-size:.9rem}.project-grid a{margin-top:auto;text-decoration:none;font-size:.87rem;font-weight:600}.project-grid a:hover{color:var(--terra)}
.interlude{margin:0 -34px;padding:64px 34px;display:grid;grid-template-columns:80px 1fr 1fr;gap:36px;align-items:center;border-bottom:1px solid var(--line);background:linear-gradient(100deg,rgba(49,92,75,.055),rgba(189,112,76,.035))}.interlude-mark{font-family:"Manrope";font-size:3.2rem;color:var(--terra);opacity:.35}.interlude h2{font-family:"Manrope";font-size:2rem;letter-spacing:-.04em;margin:9px 0}.interlude p{color:var(--muted);max-width:500px;margin-bottom:0}.interlude-result{border-left:1px solid var(--line);padding-left:35px}.interlude-result span{display:block;color:var(--terra);font-family:"Manrope";font-size:1.55rem;font-weight:700}.interlude-result strong{display:block;font-family:"Manrope";font-size:1.2rem;margin:7px 0 17px}.interlude-result a{font-size:.82rem;font-weight:600;text-decoration:none}
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.body-copy{color:var(--muted);font-size:1.04rem;padding-top:15px;max-width:620px}.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}.skill-grid div{background:var(--bg);padding:27px}.skill-grid h3{font-family:"Manrope";margin:0 0 7px}.skill-grid p{color:var(--muted);margin:0}.contact h2{max-width:750px}.contact div{display:flex;gap:28px}.contact a{font-weight:600;text-decoration:none;border-bottom:1px solid var(--ink)}footer{padding:29px 34px 45px;color:var(--muted);font-size:.77rem}
@media(max-width:800px){.nav{padding:22px 20px 0}.nav>div{display:none}.nav nav{width:100%;justify-content:space-between;gap:8px}main{padding:0 20px}.hero{grid-template-columns:1fr;gap:42px;padding:55px 0 65px}.hero h1{font-size:clamp(2.25rem,9.5vw,3.4rem)}.hero h1 span{white-space:normal}.lens{min-height:500px}.section{padding:70px 0}.project-grid,.about,.skill-grid{grid-template-columns:1fr}.about{gap:5px}.interlude{margin:0 -20px;padding:50px 20px;grid-template-columns:1fr;gap:20px}.interlude-mark{display:none}.interlude-result{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}footer{padding-left:20px}}

/* About portrait: intentionally secondary to the story, not a hero image */
.portrait{margin:30px 0 0;width:min(245px,78%);aspect-ratio:4/5;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:var(--paper)}
.portrait img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(100%);opacity:.94}
@media(max-width:800px){.portrait{width:min(220px,65%);margin-top:24px;margin-bottom:24px}}

/* Final About spacing polish */
.about.section{padding-top:82px;padding-bottom:62px}
@media(max-width:800px){.about.section{padding-top:68px;padding-bottom:52px}}
