:root{--paper:#f5f5f2;--ink:#202321;--muted:#6d726e;--line:#dcded8;--accent:#536a54;--blue:#4d7291;--font:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:6px}::selection{background:#cedbca}.wrap{width:min(1320px,calc(100% - 112px));margin:auto}.header{position:sticky;top:0;z-index:20;background:rgba(245,245,242,.9);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}.nav{height:80px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:25px;font-weight:700;letter-spacing:-1.6px}.brand-dot{color:var(--accent)}.nav-links{display:flex;gap:34px;font-size:16px;color:#505550}.nav-links a{position:relative;padding:8px 0}.nav-links a:after{content:"";position:absolute;bottom:1px;left:0;width:0;height:1px;background:var(--ink);transition:width .25s}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-cv{font-size:15px;border:1px solid #bfc4bc;border-radius:30px;padding:11px 17px;transition:background .2s}.nav-cv:hover{background:#e6e9e2}.nav-cv span{margin-left:15px}.menu-toggle{display:none}.eyebrow{font-size:14px;font-weight:600;letter-spacing:1.9px;line-height:1.5;margin:0}.live-dot{width:6px;height:6px;display:inline-block;background:#667c60;border-radius:50%;margin-right:10px;vertical-align:middle}.hero{padding-top:38px}.hero-intro{display:flex;justify-content:space-between;align-items:center}.hero-location{font-size:14px;color:var(--muted);margin:0}.hero-location span{margin-left:12px}.hero-grid{display:grid;grid-template-columns:1.03fr 1fr;align-items:center;min-height:650px;position:relative}.hero-copy{padding:45px 0 58px;position:relative;z-index:2}.hero h1{font-size:clamp(70px,7.3vw,108px);font-weight:600;letter-spacing:-7px;line-height:.99;margin:0 0 32px}.hero h1 span{color:#778a76}.hero-description{font-size:18px;color:#6b706b;line-height:1.6;letter-spacing:-.3px}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:30px}.button{display:inline-flex;align-items:center;gap:28px;border-radius:40px;padding:16px 22px;font-size:15px;font-weight:500}.primary{background:var(--ink);color:white;transition:background .2s,transform .2s}.primary:hover{background:#3f4d3e;transform:translateY(-2px)}.text-link{font-size:15px;display:inline-flex;gap:20px;align-items:center}.text-link:hover{color:var(--accent)}.hero-art{position:relative;width:120%;margin-left:-12%;padding-bottom:50px;align-self:stretch;display:flex;align-items:center}.hero-art>img{width:100%;height:auto;max-height:660px;object-fit:contain;transform:translateY(-5px)}.art-note{position:absolute;bottom:48px;left:16%;display:flex;gap:12px;align-items:flex-start}.small-cross{font-size:23px;line-height:1;color:#6c7a6b}.art-note p{font-size:14px;letter-spacing:1.3px;line-height:1.8;margin:0;color:#687466}.art-note p span{font-size:14px;letter-spacing:0;color:#90958c}.art-axis{position:absolute;bottom:54px;right:5%;font-size:14px;letter-spacing:1px;color:#969c94}.hero-bottom{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:25px 0 29px;font-size:14px;color:var(--muted);gap:12px}.hero-bottom p{margin:0}.hero-bottom p span{margin:0 8px}.hero-bottom a{font-size:22px;color:var(--ink)}.affiliations{background:#eaece6;border-block:1px solid #dfe2da}.affiliation-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:25px}.affiliation-inner p{font-size:14px;letter-spacing:1.4px;color:#7b8276;max-width:100px;line-height:1.8}.affiliation-inner span{font-size:17px;letter-spacing:-.5px;color:#676e62;font-weight:500}.section{padding-block:105px 110px}.section-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;gap:25px}.section-aside{font-size:14px;line-height:1.6;color:var(--muted);margin:0}h2{font-size:clamp(38px,4.3vw,62px);letter-spacing:-2.7px;line-height:1.06;font-weight:500;margin:0}p{line-height:1.65}.section-lede{color:var(--muted);font-size:16px;max-width:485px;margin:25px 0 44px}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.study-open{border:0;padding:0;text-align:left;width:100%;background:transparent}.work-image{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:1.48;background:#e7eae1}.work-image>img{width:100%;height:100%;object-fit:cover;transition:transform .65s}.study-open:hover .work-image>img{transform:scale(1.045)}.real-city{background:#e4e8e8}.image-tag{position:absolute;left:24px;top:23px;font-size:14px;letter-spacing:1.3px;color:#687363}.round-arrow{position:absolute;bottom:22px;right:22px;width:37px;height:37px;border-radius:50%;background:#ffffffb3;display:grid;place-items:center;font-size:19px;transition:background .2s}.study-open:hover .round-arrow{background:#fff}.work-meta{display:flex;justify-content:space-between;font-size:14px;letter-spacing:1.2px;color:var(--muted);padding:24px 0 17px}.work-card h3{font-size:33px;line-height:1.1;letter-spacing:-1px;font-weight:500;margin:0 0 15px}.work-card p{max-width:410px;font-size:16px;color:var(--muted);margin:0 0 20px}.explore-label{font-size:14px;display:flex;gap:20px;align-items:center}.microclimate{margin-top:65px;border-top:1px solid var(--line);padding-top:44px;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}.microclimate h3{font-size:32px;font-weight:500;line-height:1.13;letter-spacing:-1px;margin:18px 0}.microclimate p:not(.eyebrow){max-width:420px;font-size:16px;color:var(--muted)}.climate-visual{height:245px;position:relative;background:#e9e9e1;overflow:hidden;border-radius:4px}.thermal-field{position:absolute;inset:-30%;transform:rotate(-22deg);background:repeating-linear-gradient(90deg,transparent 0 67px,#eeeee8 67px 110px,transparent 110px 140px),repeating-linear-gradient(0deg,transparent 0 35px,#eeeeea 35px 72px,transparent 72px 118px),radial-gradient(ellipse at 20% 60%,#b4bca2,transparent 40%),radial-gradient(ellipse at 70% 20%,#b7b494,transparent 45%),radial-gradient(ellipse at 50% 50%,#c78051,transparent 60%);opacity:.8}.climate-visual>span{position:absolute;left:22px;top:20px;font-size:14px;letter-spacing:1.5px;color:#736c59}.thermal-key{position:absolute;bottom:17px;left:22px;display:flex;align-items:center;gap:10px}.thermal-key i{display:block;width:65px;height:4px;background:linear-gradient(90deg,#b4bca2,#c78051)}.thermal-key p{font-size:14px!important;margin:0}.about-section{background:#e9ece5;padding-block:100px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:50px}.about-grid h2{font-size:clamp(44px,5vw,71px);line-height:1.04}.about-grid h2 span{color:#7b8972}.about-copy{max-width:520px}.about-copy .large-copy{font-size:22px;line-height:1.45;letter-spacing:-.55px;margin:0 0 24px;color:var(--ink)}.about-copy>p{font-size:16px;color:#686f62;margin-bottom:20px}.degree-note{display:flex;align-items:center;gap:6px;padding:17px 0 26px;margin-top:24px;border-top:1px solid #cfd6c8}.degree-note .live-dot{flex-shrink:0}.degree-note p{font-size:14px;line-height:1.8;margin:0}.degree-note p span{color:var(--muted)}.experience{display:grid;grid-template-columns:1fr 2fr;gap:50px;margin-top:85px;padding-top:40px;border-top:1px solid #cfd6c8}.experience-title h3{font-size:21px;font-weight:500;letter-spacing:-.5px;margin:0 0 8px}.experience-title p{font-size:14px;color:var(--muted);margin:0}.timeline article{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid #cfd6c8;padding:0 0 27px;margin-bottom:26px}.timeline article:last-child{margin-bottom:0}.timeline-date{font-size:14px;letter-spacing:1px;color:var(--muted)}.timeline h4{font-weight:500;font-size:18px;margin:10px 0 7px;letter-spacing:-.3px}.timeline p{font-size:14px;margin:0;color:#636b5e}.timeline .timeline-detail{font-size:14px;line-height:1.8;padding-top:29px;text-align:right}.education{display:grid;grid-template-columns:1fr 2fr;column-gap:50px;row-gap:19px;margin-top:45px}.education>.eyebrow{grid-row:1/4}.education h4{font-size:15px;font-weight:500;margin:0 0 3px}.education p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0}.tool-section{padding-block:100px}.tool-top{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 48px;gap:30px}.tool-top>p{font-size:15px;color:var(--muted);margin:0 0 5px}.tool-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.tool-grid article{border-top:1px solid var(--line);padding-top:20px}.tool-number{font-size:14px;color:#86907f}.tool-grid h3{font-size:20px;font-weight:500;letter-spacing:-.5px;margin-top:25px}.tool-grid p{color:var(--muted);font-size:15px;line-height:1.9}.additional-tools{display:flex;gap:35px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:34px;padding-top:25px;font-size:14px;color:var(--muted)}.additional-tools p{font-size:14px;letter-spacing:1px;margin:0 30px 0 0}.publication-section{padding-block:95px;background:#edeee9}.publication-section h2{margin-bottom:48px}.pub-list{border-top:1px solid #d3d7cd}.pub-row{display:grid;grid-template-columns:90px 1fr 45px;gap:20px;border-bottom:1px solid #d3d7cd;padding:32px 0;transition:color .2s}.pub-row:hover{color:var(--accent)}.pub-year{font-size:16px;color:var(--muted);padding-top:2px}.pub-type{font-size:14px;letter-spacing:1px;color:var(--muted);margin:0 0 11px}.pub-row h3{font-size:22px;font-weight:500;letter-spacing:-.6px;line-height:1.35;max-width:850px;margin:0 0 12px}.authors{font-size:14px;color:var(--muted);margin:0}.pub-arrow{font-size:24px;text-align:right}.talks-title{font-size:23px;font-weight:500;letter-spacing:-.5px;margin:48px 0 27px}.talk-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px}.talk-grid a{border-top:1px solid #d3d7cd;padding-top:22px}.talk-grid h4{font-size:20px;font-weight:500;letter-spacing:-.5px;margin:20px 0 13px}.talk-grid a>p:not(.pub-type){font-size:15px;color:var(--muted);line-height:1.7}.talk-grid a>span{display:flex;justify-content:space-between;font-size:14px;margin-top:24px}.talk-grid b{font-size:17px;font-weight:400;transition:transform .2s}.talk-grid a:hover b{transform:translate(3px,-3px)}.funding-note{font-size:14px;color:var(--muted);margin:50px 0 0;border-top:1px solid #d3d7cd;padding-top:25px}.contact-section{background:#20251f;color:#eef0e8;padding-top:75px}.contact-section .eyebrow{color:#929e8a}.contact-location{font-size:14px;color:#929e8a;margin:0}.contact-section h2{font-size:clamp(42px,5.5vw,79px);letter-spacing:-3.5px;line-height:1.04;margin-top:60px}.contact-lede{font-size:16px;color:#acb3a6;line-height:1.8;margin-top:28px}.contact-actions{display:flex;align-items:center;gap:25px;margin-top:35px;flex-wrap:wrap}.email-link{font-size:clamp(18px,2.6vw,36px);letter-spacing:-1px}.email-link span{font-size:26px;margin-left:20px;color:#a8b89c}.copy-email{background:transparent;border:1px solid #54604e;color:#adba9f;border-radius:50%;width:38px;height:38px;display:grid;place-items:center}.copy-email:hover{background:#35412e}.copy-status{font-size:14px;color:#c4d2bb}.contact-links{display:flex;gap:32px;margin-top:42px;font-size:14px;color:#aeb9a6}.contact-links a:hover{color:white}footer{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #3e4937;margin-top:75px;padding-block:27px}footer p,footer>a:last-child{font-size:14px;color:#94a087}.footer-brand{font-size:16px;letter-spacing:-.5px}.footer-brand span{color:#9aac8a}.skip{position:fixed;left:20px;top:-100px;padding:15px;background:white;z-index:100}.skip:focus{top:15px}dialog{width:min(760px,calc(100% - 32px));border:0;border-radius:10px;padding:55px;background:var(--paper);color:var(--ink);max-height:85vh;overflow:auto;box-shadow:0 25px 100px #0003}dialog::backdrop{background:#1b251bcc;backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:18px;top:18px;border:1px solid var(--line);border-radius:50%;width:32px;height:32px;background:transparent}.dialog-close:hover{background:#e3e7df}dialog h2{font-size:40px;margin:24px 0;letter-spacing:-1.6px}dialog p{color:var(--muted);font-size:16px}dialog .dialog-tags{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}dialog .dialog-tags span{border:1px solid var(--line);border-radius:20px;font-size:14px;padding:8px 12px}dialog .button{margin-top:20px}.dialog-citation{font-size:14px!important;padding-top:20px;border-top:1px solid var(--line)}body.modal-open{overflow:hidden}@media(min-width:1600px){.hero-grid{min-height:710px}.hero h1{font-size:113px}.hero-art{width:124%}}@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero h1{letter-spacing:-4.5px;font-size:8.5vw}.hero-grid{min-height:590px}.hero-description{font-size:16px}.hero-art{width:120%;margin-left:-12%}.affiliation-inner span{font-size:16px}.timeline .timeline-detail{max-width:170px}.experience{grid-template-columns:.8fr 2fr}.education{grid-template-columns:.8fr 2fr}.nav-links{gap:24px}}@media(max-width:760px){.wrap{width:calc(100% - 40px)}.nav{height:65px}.wordmark{font-size:23px}.nav-cv{margin-left:auto;margin-right:20px;font-size:14px;padding:9px 13px}.nav-cv span{margin-left:10px}.menu-toggle{display:flex;flex-direction:column;gap:5px;border:0;background:transparent;padding:9px 0 9px 9px;justify-content:center;width:30px;height:32px}.menu-toggle span{height:1px;width:21px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}.nav-links{position:absolute;display:none;left:0;right:0;top:65px;background:var(--paper);padding:20px;flex-direction:column;gap:12px;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.nav-links a{width:max-content}.hero{padding-top:28px}.hero-location{font-size:14px}.eyebrow{font-size:14px;letter-spacing:1.5px}.hero-grid{grid-template-columns:1fr;min-height:0}.hero-copy{padding:44px 0 0}.hero h1{font-size:clamp(68px,15vw,105px);letter-spacing:-5px;line-height:.99;margin-bottom:25px}.hero-description{font-size:16px}.hero-actions{gap:25px;margin-top:24px}.button{padding:14px 20px;font-size:14px}.hero-art{width:105%;margin-left:-2.5%;height:auto;min-height:300px;padding-bottom:22px;margin-top:0}.hero-art>img{max-height:450px;margin-top:-5px;margin-bottom:0}.art-note{bottom:20px;left:10%}.art-note p{font-size:14px}.art-note p span{font-size:14px}.art-axis{bottom:30px}.hero-bottom{padding-block:22px;flex-wrap:wrap;font-size:14px;position:relative}.hero-bottom p:first-child{width:90%}.hero-bottom a{position:absolute;right:0;top:24px}.affiliation-inner{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-block:23px;min-height:0}.affiliation-inner p{font-size:14px;margin:0}.affiliation-inner span{font-size:16px}.section{padding-block:65px}.section-top{margin-bottom:25px}.section-aside{font-size:14px}h2{font-size:40px;letter-spacing:-1.8px}.section-lede{font-size:16px;margin-top:22px}.work-grid{grid-template-columns:1fr;gap:40px}.work-card h3{font-size:30px}.work-card p{max-width:400px}.work-meta{padding:20px 0 13px}.work-image{aspect-ratio:1.5}.microclimate{grid-template-columns:1fr;margin-top:45px;padding-top:30px;gap:20px}.microclimate h3{font-size:29px}.climate-visual{height:210px}.about-section{padding-block:65px}.about-grid{grid-template-columns:1fr;gap:30px;margin-top:35px}.about-grid h2{font-size:49px}.about-copy .large-copy{font-size:20px}.experience{grid-template-columns:1fr;gap:30px;margin-top:55px;padding-top:30px}.timeline article{gap:20px}.timeline .timeline-detail{max-width:140px;font-size:14px}.timeline h4{font-size:17px}.timeline p{font-size:14px}.education{grid-template-columns:1fr;row-gap:20px;margin-top:35px}.education>.eyebrow{grid-row:auto}.education h4{line-height:1.6}.tool-section{padding-block:65px}.tool-top{display:block;margin:25px 0 35px}.tool-top>p{margin-top:25px}.tool-grid{grid-template-columns:1fr;gap:22px}.tool-grid article{display:grid;grid-template-columns:25px 1fr;column-gap:15px}.tool-number{grid-row:1/3;padding-top:7px}.tool-grid h3{margin:4px 0 10px;font-size:20px}.tool-grid p{margin:0}.additional-tools{gap:16px;margin-top:30px;font-size:14px}.additional-tools p{width:100%;margin:0 0 2px}.publication-section{padding-block:65px}.publication-section .section-top .text-link{font-size:14px;gap:10px}.publication-section h2{margin-bottom:32px}.pub-row{grid-template-columns:38px 1fr 17px;gap:10px;padding:25px 0}.pub-year{font-size:14px}.pub-type{font-size:14px;line-height:1.7}.pub-row h3{font-size:18px;letter-spacing:-.3px}.authors{font-size:14px}.pub-arrow{font-size:19px}.talk-grid{grid-template-columns:1fr;gap:30px}.talks-title{margin-top:35px;font-size:22px}.talk-grid h4{font-size:20px}.funding-note{font-size:14px;margin-top:35px}.contact-section{padding-top:45px}.contact-section .section-top{display:block}.contact-location{font-size:14px;margin-top:13px}.contact-section h2{font-size:44px;letter-spacing:-2px;margin-top:40px}.contact-lede{font-size:15px}.contact-actions{gap:12px;margin-top:28px}.email-link{font-size:21px;letter-spacing:-.7px}.email-link span{font-size:20px;margin-left:5px}.copy-email{width:32px;height:32px}.contact-links{gap:20px;flex-wrap:wrap;font-size:14px;margin-top:30px}footer{margin-top:45px;flex-wrap:wrap;gap:10px;padding-block:24px}footer .footer-brand{width:100%;margin-bottom:7px}footer p{margin:0}footer>a:last-child{margin-left:auto}dialog{padding:45px 24px 30px}dialog h2{font-size:32px}dialog p{font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Readable supporting text, with room for larger labels on narrow screens. */
.hero-intro,.hero-actions,.hero-bottom,.work-meta{flex-wrap:wrap}
.hero-intro{gap:12px}
.art-note p span{display:block;max-width:270px;line-height:1.5}
.affiliation-inner p{max-width:160px}
.work-meta{gap:12px;line-height:1.6}
.section-aside{max-width:260px}
@media(max-width:760px){
 .hero-actions{gap:18px}
 .text-link{gap:12px}
 .button{gap:18px}
 .section-top{flex-wrap:wrap;gap:18px}
 .hero-art{padding-bottom:55px}
 .art-note{left:7%;bottom:20px;right:7%}
 .art-note p span{max-width:260px}
 .art-axis{display:none}
 .affiliation-inner{grid-template-columns:1fr}
 .affiliation-inner p{max-width:none}
 .timeline article{flex-direction:column;gap:10px}
 .timeline .timeline-detail{max-width:none;padding-top:0;text-align:left}
 .tool-grid{grid-template-columns:1fr}
 .additional-tools{gap:16px 24px}
 .contact-links{gap:20px 25px}
 footer{gap:14px}
}
