@font-face{font-family:'Life Outline';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/life-outline-regular.woff2') format('woff2')}
:root{--paper:#fdfdfb;--ink:#2d342a;--green:#70845f;--muted:#7f8579;--line:#dfe3d8;--px:0px;--py:0px;--sy:0px;scroll-behavior:smooth;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.6 'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:6px}img{max-width:100%}button img{pointer-events:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',sans-serif}::selection{background:#dce6cf}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;margin:0 5vw;border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{font:550 20px 'Manrope',sans-serif;letter-spacing:-.055em}.brand>span:not(.brand-dot){font-weight:400;color:var(--muted)}.brand-dot{color:var(--green);margin-left:2px}.site-header nav{display:flex;align-items:center;gap:30px;font-size:12px}.site-header nav a:hover,.text-links a:hover,.other-work a:hover{color:var(--green)}.pdf-link{border-bottom:1px solid #b7c2a9;padding-bottom:2px}
.hero{padding:50px 5vw 0;display:grid;grid-template-columns:.44fr .56fr;gap:4vw;min-height:calc(100svh - 94px);position:relative}.hero-copy{align-self:center;padding-bottom:70px;position:relative;z-index:4}.hero-copy .eyebrow{margin-bottom:27px;font-size:9px}.hero h1{font-family:'Life Outline',Arial,sans-serif;font-synthesis:none;font-size:clamp(40px,4.35vw,74px);line-height:1.15;letter-spacing:.005em;font-weight:400;font-kerning:none;color:transparent;-webkit-text-stroke:.75px var(--green)}.hero h1 em{font-style:normal;color:var(--green);-webkit-text-stroke:0}.hero h1>span{color:var(--green);-webkit-text-stroke:0}.hero-description{max-width:340px;color:var(--muted);font-size:13px;line-height:1.75;margin-top:27px}.explore-link{display:flex;align-items:center;gap:12px;font-size:11px;margin-top:27px;width:max-content}.arrow-circle{width:31px;height:31px;border:1px solid #bac5ae;border-radius:50%;display:grid;place-items:center;transition:transform .3s,background .3s}.explore-link:hover .arrow-circle{background:#edf0e6;transform:translateY(3px)}.explore-link small{font-size:9px;margin-left:12px;color:var(--muted)}.hero-baseline{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-top:1px solid var(--line);font-size:9px;color:var(--muted);letter-spacing:.025em;align-self:end}

.work{padding:115px 5vw 10px;scroll-margin-top:25px}.work-heading{display:grid;grid-template-columns:.23fr .47fr .3fr;gap:30px;align-items:end;padding-bottom:45px}.work-heading .eyebrow{align-self:start;margin-top:8px}.work-heading h2{font-size:clamp(35px,4vw,62px);line-height:1.04;letter-spacing:-.06em;font-weight:450}.work-heading h2 span{color:var(--green)}.work-heading>p:last-child{font-size:11px;line-height:1.8;color:var(--muted);padding-bottom:3px}.project-navigation{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;gap:16px;font-size:10px;position:sticky;top:0;background:#fdfdfbf2;backdrop-filter:blur(12px);z-index:20}.project-navigation a{display:flex;gap:11px;align-items:baseline;white-space:nowrap}.project-navigation a span{font-size:8px;color:var(--muted)}.project-navigation a:hover,.project-navigation a[aria-current=true]{color:var(--green)}.chapter{display:grid;grid-template-columns:.35fr .65fr;gap:6vw;padding:105px 0 125px;min-height:720px;border-bottom:1px solid var(--line);scroll-margin-top:78px}.chapter.reverse{grid-template-columns:.65fr .35fr}.chapter.reverse .chapter-copy{grid-column:2;grid-row:1}.chapter.reverse .chapter-visual{grid-column:1;grid-row:1}.chapter-number{font-size:11px;color:var(--green);display:block;margin-bottom:26px}.chapter-copy h3{font-size:13px;font-weight:500;letter-spacing:-.025em;margin-bottom:20px}.chapter-question{font:450 clamp(29px,3vw,46px)/1.16 'Manrope',sans-serif;letter-spacing:-.06em;max-width:365px}.chapter-question em{font-style:normal;color:var(--green)}.chapter-description{font-size:12px;color:var(--muted);line-height:1.8;margin-top:24px;max-width:300px}.chapter-tags{font-size:9px;letter-spacing:.025em;color:var(--green);margin-top:25px;line-height:1.8}.open-project{font-size:11px;border-bottom:1px solid #b4bfa8;padding:0 0 4px;margin-top:28px}.open-project span{padding-left:15px}.chapter-visual{position:relative;align-self:center;padding:5px 0 60px;min-width:0}.visual-open{display:block;width:100%;padding:0;position:relative;text-align:left}.main-image{display:block;width:100%;height:auto;max-height:550px;object-fit:contain;transition:transform 1.1s cubic-bezier(.2,.6,.2,1)}.visual-open:hover .main-image{transform:translateY(-4px)}.visual-caption{display:flex;justify-content:space-between;gap:15px;font-size:8px;color:var(--muted);letter-spacing:.05em;padding-top:14px;line-height:1.7}.detail-paper{position:absolute;bottom:-2%;right:-3%;width:36%;padding:7px;background:white;box-shadow:0 9px 25px -12px #2f3e3050;border:1px solid #e0e4d8;transform:rotate(3deg);transition:transform .7s;cursor:pointer}.detail-paper img{display:block;width:100%;height:auto}.detail-paper:hover{transform:rotate(0) translateY(-4px)}.chapter.reverse .detail-paper{right:auto;left:-3%;transform:rotate(-3deg)}.chapter.reverse .detail-paper:hover{transform:rotate(0) translateY(-4px)}.chapter-waste-to-value .detail-paper{width:37%;bottom:-7%;right:0}.chapter-sweltering-schools .detail-paper{width:77%;bottom:-5%;right:-2%;transform:rotate(1.5deg)}.chapter-green-renaissance .detail-paper{width:61%;bottom:0}.chapter-gba .detail-paper{width:25%;right:-2%;bottom:-3%}.chapter-gba .main-image{width:88%}.reveal{opacity:1;transform:none;transition:opacity 1.1s ease,transform 1.2s cubic-bezier(.16,1,.3,1)}.motion-ready .reveal:not(.in-view){opacity:0;transform:translateY(22px)}.chapter-copy.reveal{transition-delay:.08s}
.about{display:grid;grid-template-columns:1fr 1fr;gap:12vw;padding:105px 5vw}.about h2{font-size:clamp(31px,3.8vw,57px);line-height:1.08;letter-spacing:-.06em;font-weight:450;margin-top:20px;color:var(--green)}.about-copy{max-width:445px;padding-top:4px}.about-copy p{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:18px}.text-links{display:flex;gap:30px;font-size:11px;margin-top:26px}.other-work{margin:0 5vw;padding:25px 0 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px}.site-footer{margin:0 5vw;padding:23px 0 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted)}
.reader{border:0;margin:0;padding:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:var(--paper);color:var(--ink);overflow:hidden}.reader::backdrop{background:#fdfdfb}.reader[open]{display:flex;flex-direction:column}.reader-toolbar{height:74px;flex:none;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 4vw;background:var(--paper);gap:20px}.reader-toolbar>span:first-child{font-size:10px;color:var(--green)}.reader-toolbar-title{font-size:12px}.reader-toolbar button{font-size:11px;display:flex;align-items:center;gap:16px}.reader-toolbar button span{font-size:24px;font-weight:400}.reader-scroll{overflow-y:auto;overscroll-behavior:contain;flex:1;scroll-behavior:smooth}.reader-intro{padding:70px 8vw 55px;max-width:1200px;margin:auto}.reader-intro h2{font-size:clamp(31px,4.5vw,65px);font-weight:450;line-height:1.07;letter-spacing:-.06em;margin:16px 0 22px}.reader-question{font-size:clamp(19px,2.3vw,30px);font-family:'Manrope',sans-serif;letter-spacing:-.04em;color:var(--green);max-width:700px;line-height:1.3;margin-bottom:26px}.reader-intro #readerSummary{columns:2;column-gap:45px;font-size:13px;color:var(--muted);line-height:1.9}.reader-intro #readerSummary p{margin-bottom:16px;break-inside:avoid}.reader-links{display:flex;gap:25px;flex-wrap:wrap;margin-top:28px;font-size:11px}.reader-links a{border-bottom:1px solid #bac5af;padding-bottom:3px}.reader-spreads{padding:0 4vw;max-width:1800px;margin:auto}.reader-spread{margin:0 0 38px;border:1px solid #edf0e7;background:white}.reader-spread a{display:block}.reader-spread img{display:block;width:100%;height:auto}.reader-spread figcaption{border-top:1px solid #edf0e7;font-size:9px;color:var(--muted);padding:12px 16px;display:flex;justify-content:space-between;gap:10px}.reader-next{border-top:1px solid var(--line);margin:30px 4vw 0;padding:35px 4vw 60px;display:flex;flex-direction:column;gap:12px}.reader-next>span{font-size:10px;color:var(--muted)}.reader-next button{text-align:left;font:450 clamp(26px,3.5vw,46px) 'Manrope',sans-serif;letter-spacing:-.05em}.reader-next button:hover{color:var(--green)}.reader-open{overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.no-script{padding:40px 5vw}
@media(min-width:1700px){.hero{max-width:1700px;margin:auto}.desk{min-height:740px}.paper-system{top:65%}.hero h1{font-size:74px}.hero-copy{padding-bottom:90px}.work,.about{max-width:1700px;margin:auto}}
@media(max-width:1050px){.site-header nav{gap:20px}.hero{grid-template-columns:.46fr .54fr;gap:2vw;min-height:720px}.desk{min-height:570px}.hero h1{font-size:clamp(39px,5vw,56px)}.hero-copy{padding-bottom:55px}.hero-description{max-width:290px;font-size:12px}.paper-model{top:37%}.paper-plan{top:17%}.paper-system{top:70%;left:23%;width:75%}.desk-coordinate{bottom:18%;font-size:7px}.work{padding-top:85px}.work-heading{grid-template-columns:.18fr .47fr .35fr;gap:20px}.work-heading>p:last-child{font-size:10px}.chapter{gap:5vw;min-height:650px;padding:85px 0 115px}.chapter-question{font-size:32px}.project-navigation{font-size:9px;gap:10px}.project-navigation a{gap:7px}.chapter-description{font-size:11px}}
@media(max-width:700px){.site-header{height:77px;margin:0 6vw}.brand{font-size:18px}.site-header nav{font-size:10px;gap:17px}.site-header nav a:first-child{display:none}.hero{display:flex;flex-direction:column;gap:0;padding:36px 6vw 0;min-height:0}.hero-copy{padding:0;align-self:stretch}.hero-copy .eyebrow{font-size:8px;margin-bottom:21px}.hero h1{font-size:clamp(42px,10.5vw,68px);line-height:1.15;letter-spacing:.005em;-webkit-text-stroke:.7px var(--green)}.hero h1 br:nth-of-type(3){display:none}.hero-description{font-size:12px;max-width:350px;line-height:1.8;margin-top:24px}.explore-link{margin-top:22px;font-size:10px}.explore-link small{font-size:8px}.desk{width:100%;min-height:430px;height:430px;align-self:auto;flex:none;margin:18px 0 20px;perspective:1000px}.desk-sketch{top:0;left:6%;width:80%}.paper-model{top:35%;width:54%}.paper-plan{top:16%;left:50%;width:47%}.paper-system{top:69%;left:24%;width:75%}.paper-label{font-size:6.5px;padding:7px 0}.paper-label b{font-size:10px}.desk-coordinate{font-size:6.5px;bottom:20%;right:0}.replay-opening{bottom:0;font-size:8px}.hero-baseline{font-size:8px;padding:16px 0;flex-wrap:wrap;gap:12px}.hero-baseline span:last-child{display:none}.work{padding:70px 6vw 0}.work-heading{display:block;padding-bottom:30px}.work-heading .eyebrow{margin:0 0 18px}.work-heading h2{font-size:45px}.work-heading>p:last-child{font-size:11px;margin-top:22px}.project-navigation{overflow-x:auto;justify-content:flex-start;gap:23px;padding:15px 0;scrollbar-width:none;margin-right:-6vw;padding-right:6vw;font-size:9px}.project-navigation::-webkit-scrollbar{display:none}.chapter,.chapter.reverse{display:flex;flex-direction:column;gap:34px;padding:60px 0 95px;min-height:0;scroll-margin-top:67px}.chapter-number{margin-bottom:16px;font-size:10px}.chapter-copy h3{font-size:12px;margin-bottom:15px}.chapter-question{font-size:35px;max-width:360px}.chapter-description{max-width:360px;font-size:12px;margin-top:18px}.chapter-tags{font-size:8px;margin-top:17px}.open-project{font-size:10px;margin-top:19px}.chapter-visual{width:100%;padding:0 0 40px}.detail-paper{width:32%;right:-1%;bottom:0;padding:4px}.chapter.reverse .detail-paper{left:-1%}.chapter-waste-to-value .detail-paper{width:36%;bottom:-4%}.chapter-sweltering-schools .detail-paper{width:75%;right:0;bottom:0}.chapter-green-renaissance .detail-paper{width:55%;bottom:-1%}.chapter-gba .detail-paper{width:28%;right:0;bottom:-3%}.visual-caption{font-size:7px;padding-top:11px}.about{display:flex;flex-direction:column;gap:30px;padding:70px 6vw}.about h2{font-size:43px;margin-top:18px}.about-copy{max-width:none}.about-copy p{font-size:12px}.text-links{font-size:10px}.other-work{margin:0 6vw;padding:25px 0 35px;display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:10px}.other-work .eyebrow{grid-column:1/-1;font-size:8px}.site-footer{margin:0 6vw;padding:20px 0;flex-wrap:wrap;font-size:8px;gap:14px}.site-footer span:nth-child(2){display:none}.reader-toolbar{height:65px;padding:0 6vw;gap:10px}.reader-toolbar-title{font-size:10px;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-toolbar>span:first-child{font-size:8px}.reader-toolbar button{font-size:10px;gap:9px}.reader-intro{padding:40px 6vw 30px}.reader-intro h2{font-size:38px}.reader-question{font-size:24px}.reader-intro #readerSummary{columns:1;font-size:12px}.reader-links{font-size:10px;gap:20px}.reader-spreads{padding:0 3vw}.reader-spread{margin-bottom:20px}.reader-spread figcaption{font-size:7px;padding:9px 10px}.reader-next{padding:25px 3vw 40px}.reader-next button{font-size:30px}}
@media(max-width:380px){.site-header nav{gap:12px;font-size:9px}.brand{font-size:17px}.hero h1{font-size:40px}.desk{height:390px;min-height:390px}.paper-system{top:67%}.desk-coordinate{bottom:23%}.chapter-question{font-size:32px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.paper,.entered .paper{opacity:1;transform:rotate(var(--angle));will-change:auto}.desk-sketch,.entered .desk-sketch{opacity:.95;transform:none}.reveal,.motion-ready .reveal:not(.in-view){opacity:1;transform:none}.replay-opening{display:none}.reader-scroll{scroll-behavior:auto}}

/* Personal introduction and the portfolio’s founding sketch. */
.hero{row-gap:24px;column-gap:4vw;grid-template-rows:1fr auto;min-height:calc(100svh - 94px)}
.hero-copy{padding-bottom:24px}
.hero-identity{margin-bottom:28px}
.hero-role{font-size:clamp(14px,1.1vw,17px);line-height:1.5;font-weight:550;letter-spacing:-.015em;color:var(--green)}
.hero-location{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:12px;line-height:1.6;color:var(--muted)}
.location-dot{display:inline-block;width:5px;height:5px;flex:none;border-radius:50%;background:var(--green);opacity:.7}
.hero-illustration{margin:0;align-self:center;min-width:0;padding:0 0 25px;opacity:1;transition:opacity 1.7s ease .12s,transform 2s cubic-bezier(.16,1,.3,1) .12s}
.hero-illustration>img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain;mix-blend-mode:multiply}
.hero-illustration figcaption{display:flex;justify-content:space-between;gap:16px;margin:18px 3% 0;color:var(--muted);font-size:8px;letter-spacing:.035em}
.hero-illustration figcaption span:last-child{font-size:7px;letter-spacing:.09em}
.motion-ready:not(.entered) .hero-illustration{opacity:0;transform:translateY(14px)}
.entered .hero-illustration{opacity:1;transform:translateY(0)}
.hero-baseline{padding:16px 0;margin-top:0;font-size:10px}
.hero-baseline a:hover{color:var(--green)}
@media(min-width:1700px){.hero-illustration>img{max-height:580px}.hero-copy{padding-bottom:24px}}
@media(min-width:701px) and (max-height:850px){.hero{padding-top:28px;row-gap:18px}.hero-copy{padding-bottom:0}.hero-identity{margin-bottom:22px}.hero-illustration>img{max-height:440px}}
@media(max-width:1050px){.hero-illustration figcaption{font-size:7px;gap:8px}.hero-illustration figcaption span:last-child{display:none}}
@media(max-width:700px){.hero{gap:29px;padding-top:28px;min-height:0}.hero-copy{padding:0}.hero-identity{margin-bottom:24px}.hero-role{font-size:14px}.hero-location{font-size:11px}.hero h1 br:nth-of-type(3){display:initial}.hero-illustration{width:100%;padding:0;margin:0}.hero-illustration>img{width:100%;max-height:none}.hero-illustration figcaption{font-size:8px;margin:13px 0 0}.hero-illustration figcaption span:last-child{display:block;font-size:6px}.hero-baseline{width:100%;margin-top:0;font-size:8px;gap:12px}.hero-baseline a{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hero-illustration,.motion-ready:not(.entered) .hero-illustration{opacity:1;transform:none}}
