:root{--paper:#fbfaf8;--ink:#23282b;--muted:#5d6367;--line:#d8d9d6;--wash:#eeefec;--accent:#a94035;--content:1280px}
*{box-sizing:border-box}
html{scroll-behavior:auto;scroll-padding-top:32px}
body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.65 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{font-weight:600;line-height:1.15;letter-spacing:-.025em}
a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}
img{display:block;width:100%;height:auto}video{display:block;width:100%;background:#141719}
button,a,summary,video{-webkit-tap-highlight-color:transparent}
a:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid var(--accent);outline-offset:6px}
.wrap{width:min(var(--content),calc(100% - 112px));margin-inline:auto}
.skip{position:absolute;left:20px;top:-100px;padding:12px 22px;background:var(--ink);color:white;z-index:5}.skip:focus{top:16px}
.header{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:100px;border-bottom:1px solid var(--line)}
.wordmark{font-weight:700;letter-spacing:-.04em;font-size:24px;white-space:nowrap}.name-dot{color:var(--accent)}
.header nav{display:flex;align-items:center;gap:32px;font-size:16px}.header nav a{padding-block:12px}.header .nav-resume{border-bottom:1px solid var(--ink);padding-bottom:5px}
.eyebrow{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted);margin-bottom:22px}
.hero{display:grid;grid-template-columns:1fr 1.1fr;gap:76px;align-items:center;padding-block:72px 90px}
.hero h1{font-size:clamp(54px,5.5vw,78px);letter-spacing:-.055em;margin-bottom:24px;line-height:1.05}
.role{font-size:21px;line-height:1.5;margin-bottom:27px}.intro{font-size:21px;line-height:1.65;max-width:530px}.hero-note{font-size:18px;line-height:1.7;color:var(--muted);margin-top:18px;max-width:470px}
.hero-photo img{aspect-ratio:4/3;object-fit:cover;object-position:55% center}.hero-photo figcaption{font-size:13px;color:var(--muted);margin-top:12px}
.text-links{display:flex;gap:30px;margin-top:30px;font-size:16px}.text-links a,.inline-link{border-bottom:1px solid #979d9f;padding-bottom:3px}
.section-heading{border-top:1px solid var(--line);padding-top:30px;display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:42px}
.section-heading h2{font-size:38px}.section-heading>span{font-size:15px;color:var(--muted)}
.research{padding-bottom:90px}
.research-feature{display:grid;grid-template-columns:1.45fr 1fr;gap:52px;align-items:center}
.research-feature video{aspect-ratio:16/9;object-fit:contain}
figcaption{font-size:15px;line-height:1.6;color:var(--muted);margin-top:12px}
.research-summary h3{font-size:34px;line-height:1.15;margin-bottom:22px;max-width:400px}.research-summary p{font-size:18px;line-height:1.75}
.project-link{display:inline-block;font-size:16px;line-height:1.65;border-bottom:1px solid #989d9e;padding-bottom:4px;margin-top:26px}.project-link span{margin-left:8px}
.current-work{display:grid;grid-template-columns:1fr 3fr;gap:45px;border-top:1px solid var(--line);padding-top:32px;margin-top:42px}.current-work>h3{font-size:20px;line-height:1.5}
.current-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px}.current-grid h4{font-size:22px;margin-bottom:14px}.current-grid p{font-size:17px;line-height:1.75;color:var(--muted)}
.projects{padding-bottom:94px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px 44px}
.project-card{display:block}.project-image{background:var(--wash);overflow:hidden;aspect-ratio:3/2}
.project-image img{width:100%;height:100%;object-fit:cover}.selene-image img{object-position:center 67%}.hubbell-image img{object-position:center 50%}
.card-copy{padding-top:22px}.project-org{font-size:15px;line-height:1.5;color:var(--muted);margin-bottom:12px}
.card-copy h3{font-size:31px;line-height:1.17;max-width:520px}.card-description{font-size:18px;line-height:1.7;margin-top:15px;max-width:540px;color:var(--muted)}
.project-card .project-link{margin-top:20px}.project-card:hover h3,.project-row:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.earlier-projects{padding-bottom:88px}.project-list{display:grid;gap:36px}
.project-row{display:grid;grid-template-columns:340px 1fr;gap:44px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:36px}.project-row .card-copy{padding:0}.project-row .project-link{margin-top:16px}.project-row .card-description{max-width:650px}.project-row .project-image{aspect-ratio:4/3}.tidal-turbine-image img{object-position:center 55%}
.text-project{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 0 0}.text-project h3{font-size:28px;margin-bottom:12px}.text-project p:not(.project-org){font-size:18px;color:var(--muted)}.text-project>span{font-size:27px}
.footer{border-top:1px solid var(--line);padding-block:40px 50px;display:flex;justify-content:space-between;align-items:center;gap:44px}.footer h2{font-size:30px;margin-bottom:15px}.footer p{font-size:18px}.footer-note{font-size:15px!important;color:var(--muted);margin-top:10px}.footer-links{display:flex;align-items:flex-start;flex-direction:column;gap:16px;font-size:18px}.footer-links a{border-bottom:1px solid #979d9f;padding-bottom:3px}
/* Project pages: introduction, role, media, then a stable reading column. */
.project-header{padding-top:48px;max-width:1060px}.back{display:inline-block;font-size:15px;color:var(--muted);margin-bottom:35px}.project-header .eyebrow{margin-bottom:16px}.project-header h1{font-size:clamp(44px,5vw,66px);line-height:1.07;letter-spacing:-.045em;margin-bottom:25px;max-width:1000px}
.project-lead{font-size:23px;line-height:1.6;max-width:860px;color:var(--muted)}
.project-facts{display:flex;flex-wrap:wrap;gap:25px 60px;border-top:1px solid var(--line);padding-top:24px;margin:30px 0 0}.project-facts>div{min-width:150px;max-width:360px}.project-facts dt{font-size:14px;color:var(--muted);margin-bottom:6px}.project-facts dd{font-size:17px;line-height:1.6;margin:0}
.project-banner{margin:42px 0 0}.project-banner img,.project-banner video{max-height:650px;object-fit:contain;background:var(--wash)}.project-banner.photo img{object-fit:cover}.project-banner figcaption{max-width:950px}.project-banner.portrait-banner{max-width:1050px}.project-banner.portrait-banner img{max-height:none;object-fit:contain}.project-banner.turbine-banner{max-width:650px;margin-inline:auto}
.project-body{display:grid;grid-template-columns:195px minmax(0,1fr);gap:70px;padding:66px 0 90px}.project-sidebar{align-self:start;position:sticky;top:30px;max-height:calc(100vh - 60px);overflow:auto}.case-nav{display:flex;flex-direction:column;gap:15px;line-height:1.5;font-size:15px}.case-nav>p{font-size:14px;color:var(--muted);margin-bottom:9px}.case-nav a:hover{text-decoration:underline;text-underline-offset:5px}.project-copy{max-width:950px;min-width:0}
.project-copy>section{margin-top:68px;scroll-margin-top:30px}.project-copy>section:first-child{margin-top:0}.project-copy h2{font-size:32px;line-height:1.2;margin-bottom:24px;max-width:760px}.project-copy h3{font-size:26px;margin-bottom:20px}.project-copy p{font-size:19px;line-height:1.8;margin-bottom:22px;max-width:75ch;color:#3e464b}.project-copy ul{font-size:18px;line-height:1.8;padding-left:23px;margin-bottom:28px;max-width:75ch}
.project-copy figure{margin:32px 0}.project-copy figure img{max-height:640px;object-fit:contain;background:var(--wash)}.project-copy figcaption{font-size:15px;line-height:1.6;max-width:85ch}.project-copy .paper{font-size:17px;line-height:1.75;padding-top:26px;border-top:1px solid var(--line);margin-top:34px}.credit{font-size:15px!important}
.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0}.case-gallery figure{margin:0}.case-gallery figure img{height:300px;object-fit:cover}.case-gallery .contain img{object-fit:contain}
.media-full{display:block;cursor:zoom-in}.media-full:focus-visible{outline-offset:4px}.document-image{max-width:640px;margin-inline:auto!important}.project-copy .document-image img{max-height:none}.wide-detail img{max-height:none!important;background:white!important}.small-detail{max-width:580px;margin-inline:auto!important}.small-detail img{max-height:500px!important}.project-copy .personal-photo{max-width:650px;margin-inline:auto}.project-copy .personal-photo img{max-height:500px;object-fit:contain}
.case-table-wrap{margin:28px 0;overflow-x:auto}.case-table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.7}.case-table th{font-weight:600;text-align:left;background:var(--wash)}.case-table td,.case-table th{border-bottom:1px solid var(--line);padding:16px 18px;vertical-align:top}.case-table td:first-child{width:29%;font-weight:500}.case-table td{color:#3e464b}
.project-copy video,.motion-figure video{aspect-ratio:16/9;object-fit:contain;background:#141719}.motion-figure figcaption strong{display:block;font-size:20px;font-weight:500;color:var(--ink);margin-bottom:7px}.motion-grid{align-items:start}.portrait-demo{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:center;margin:42px 0}.portrait-demo figure{margin:0}.portrait-demo video{aspect-ratio:9/16;max-height:580px}.portrait-demo p{font-size:18px}.portrait-demo h3{font-size:28px}
.selene-lead-gallery{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:960px;margin:42px auto 0;align-items:start}.selene-lead-gallery img{aspect-ratio:3/4;object-fit:contain;background:var(--wash)}.case-gallery.selene-part-gallery img{height:auto;aspect-ratio:4/3;object-fit:contain}.case-gallery.selene-build-gallery img{height:400px;object-fit:contain}.case-gallery.selene-cad-gallery img{object-fit:contain}
.project-end{display:flex;justify-content:space-between;gap:28px;border-top:1px solid var(--line);padding-top:26px;margin-bottom:75px;font-size:17px}.project-end a{border-bottom:1px solid #979d9f}
/* Background is separate from the project overview. */
.about-header{padding:64px 0 56px}.about-header h1{font-size:64px;margin-bottom:28px;letter-spacing:-.045em}.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:60px}.about-intro p{font-size:21px;line-height:1.75;max-width:650px}.background-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;border-top:1px solid var(--line);padding:40px 0 75px}.background-grid h2{font-size:34px;margin-bottom:34px}.education>div{margin-bottom:28px}.education h3{font-size:20px;line-height:1.4;margin-bottom:9px}.education p,.education a{font-size:17px}.muted{color:var(--muted)}.education .project-link{margin-top:10px}.roles{list-style:none;padding:0;margin:0}.roles li{display:grid;grid-template-columns:125px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.roles li:first-child{padding-top:0}.roles time{font-size:15px;color:var(--muted);padding-top:3px}.roles h3{font-size:20px;line-height:1.4}.roles p{font-size:17px;line-height:1.6;margin-top:7px;color:var(--muted)}.roles a{text-decoration:underline;text-decoration-color:#a4a8aa;text-underline-offset:5px}.roles .role-detail{font-size:16px;margin-top:12px}.additional-work{padding:38px 0 80px;border-top:1px solid var(--line)}.additional-work h2{font-size:34px;margin-bottom:25px}.additional-work>p{font-size:19px;max-width:900px;margin-bottom:24px}.additional-work a{border-bottom:1px solid #979d9f}.coursework{max-width:950px}.coursework h3{font-size:25px;margin:34px 0 15px}.coursework p{font-size:18px;line-height:1.8}.coursework-gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:28px 0 40px}.coursework-gallery img{aspect-ratio:4/3;object-fit:cover}
@media(min-width:1600px){.hero{padding-block:90px 110px}.hero h1{font-size:82px}.hero-photo img{aspect-ratio:3/2}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero{gap:42px}.hero h1{font-size:62px}.intro{font-size:20px}.role{font-size:20px}.research-feature{gap:34px;grid-template-columns:1.25fr 1fr}.research-summary h3{font-size:30px}.project-grid{gap:50px 32px}.card-copy h3{font-size:28px}.current-work{grid-template-columns:1fr;gap:23px}.project-body{grid-template-columns:170px minmax(0,1fr);gap:45px}.case-gallery{gap:22px}.case-gallery figure img{height:260px}.background-grid{gap:45px}.project-row{grid-template-columns:300px 1fr;gap:35px}}
@media(max-width:800px){.wrap{width:calc(100% - 48px)}.header{min-height:88px}.header nav{gap:22px;font-size:15px}.hero{grid-template-columns:1fr;gap:36px;padding-block:48px 65px}.hero-copy{max-width:620px}.hero h1{font-size:66px}.hero .eyebrow{margin-bottom:18px}.intro{font-size:22px;max-width:620px}.hero-note{max-width:none}.hero-photo img{aspect-ratio:3/2}.hero-photo figcaption{font-size:14px}.section-heading{padding-top:25px;margin-bottom:32px}.section-heading h2{font-size:34px}.research-feature{grid-template-columns:1fr;gap:30px}.research-summary h3{font-size:33px;max-width:none}.research-summary p{max-width:680px}.current-work{margin-top:35px;padding-top:27px}.current-grid{gap:30px}.research{padding-bottom:68px}.projects{padding-bottom:70px}.project-grid{gap:48px 30px}.project-image{aspect-ratio:4/3}.card-copy h3{font-size:26px}.card-description{font-size:17px}.project-row{grid-template-columns:240px 1fr;gap:28px}.project-row .card-description{font-size:17px}.project-row .project-link{font-size:15px}.footer{align-items:flex-start;flex-direction:column;gap:30px}.footer-links{flex-direction:row;flex-wrap:wrap;gap:25px;font-size:17px}.project-header{padding-top:34px}.project-header h1{font-size:48px}.project-lead{font-size:21px}.project-facts{gap:20px 40px}.project-body{grid-template-columns:1fr;gap:38px;padding-top:36px}.project-sidebar{position:static;max-height:none;overflow:visible}.case-nav{flex-direction:row;flex-wrap:wrap;gap:12px 24px;padding:22px 0;border-block:1px solid var(--line);font-size:16px}.case-nav>p{width:100%;margin:0 0 3px;font-size:14px}.project-copy{max-width:none}.project-copy p{font-size:18px}.project-copy h2{font-size:30px}.case-gallery figure img{height:300px}.background-grid{grid-template-columns:1fr;gap:48px}.education{display:grid;grid-template-columns:1fr 1fr;gap:25px}.education h2{grid-column:1/-1;margin-bottom:0}.education>div{margin:0}.education .project-link{justify-self:start;align-self:start}.about-intro{grid-template-columns:1fr;gap:24px}.about-intro p{font-size:20px}.about-header{padding-top:45px}.about-header h1{font-size:56px}}
@media(max-width:600px){body{font-size:17px}.wrap{width:calc(100% - 40px)}.header{min-height:78px;gap:15px}.wordmark{font-size:21px}.header nav{gap:17px;font-size:14px}.header .nav-resume{display:none}.hero{padding-block:38px 52px}.hero h1{font-size:58px}.hero .eyebrow{font-size:14px}.role{font-size:20px;margin-bottom:22px}.intro{font-size:21px;line-height:1.6}.hero-note{font-size:18px}.text-links{margin-top:24px;font-size:17px}.hero-photo img{aspect-ratio:4/3}.hero-photo figcaption{font-size:13px}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:32px;line-height:1.15}.section-heading>span{display:block;margin-top:12px;font-size:15px}.research-summary h3{font-size:31px}.research-summary p{font-size:18px}.research-feature figcaption{font-size:14px}.project-link{font-size:16px}.current-grid{grid-template-columns:1fr;gap:27px}.current-work>h3{font-size:18px;color:var(--muted)}.current-grid h4{font-size:23px}.current-grid p{font-size:18px}.project-grid{grid-template-columns:1fr;gap:44px}.card-copy{padding-top:20px}.card-copy h3{font-size:29px}.card-description{font-size:18px;margin-top:13px}.project-org{font-size:15px;margin-bottom:10px}.project-card .project-link{margin-top:18px}.project-row{grid-template-columns:1fr;gap:21px;padding-bottom:32px}.project-row .card-description{font-size:18px}.project-row .project-link{font-size:16px}.project-row .project-image{aspect-ratio:3/2}.text-project h3{font-size:28px}.text-project p:not(.project-org){font-size:18px}.earlier-projects{padding-bottom:58px}.footer{padding-block:32px 40px;gap:27px}.footer h2{font-size:28px}.footer p{font-size:17px}.footer-note{font-size:15px!important}.footer-links{flex-direction:column;gap:15px}.project-header{padding-top:30px}.back{margin-bottom:28px;font-size:15px}.project-header h1{font-size:42px;line-height:1.08;overflow-wrap:break-word}.project-header .eyebrow{font-size:15px;margin-bottom:17px}.project-lead{font-size:20px;line-height:1.65}.project-facts{gap:20px 30px;margin-top:25px;padding-top:22px}.project-facts>div{min-width:0}.project-facts dt{font-size:14px}.project-facts dd{font-size:16px}.project-banner{margin-top:30px}.project-banner figcaption{font-size:14px}.project-body{padding-bottom:60px}.case-nav{gap:12px 20px;font-size:15px}.project-copy>section{margin-top:48px}.project-copy h2{font-size:29px;margin-bottom:20px}.project-copy p{font-size:18px;line-height:1.8}.project-copy figure{margin-block:27px}.project-copy figcaption{font-size:15px}.case-gallery{grid-template-columns:1fr;gap:28px;margin-block:27px}.case-gallery figure{margin:0}.case-gallery figure img{height:auto;max-height:520px;object-fit:contain}.case-table{font-size:15px}.case-table td,.case-table th{padding:13px 10px}.case-table td:first-child{width:30%}.portrait-demo{grid-template-columns:1fr;gap:28px;margin-block:32px}.portrait-demo figure{width:min(100%,330px);margin-inline:auto}.portrait-demo h3{font-size:27px}.portrait-demo p{font-size:18px}.selene-lead-gallery{grid-template-columns:1fr;gap:28px;margin-top:30px;max-width:430px}.case-gallery.selene-build-gallery img{height:auto;max-height:none}.project-end{font-size:16px;margin-bottom:55px;gap:25px}.about-header h1{font-size:48px}.about-intro p{font-size:19px}.education{grid-template-columns:1fr;gap:27px}.background-grid h2{font-size:31px}.roles li{grid-template-columns:1fr;gap:7px;padding-block:24px}.roles h3{font-size:21px}.roles p{font-size:17px}.roles time{font-size:15px}.roles .role-detail{font-size:17px}.coursework-gallery{grid-template-columns:1fr;gap:28px}.additional-work h2{font-size:31px}.additional-work>p{font-size:18px}.coursework h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:360px){.header{flex-wrap:wrap;gap:7px;padding-block:15px}.header nav{width:100%;justify-content:space-between;gap:18px}.header nav a{padding-block:6px}.hero h1{font-size:48px}.hero .eyebrow{font-size:13px}.footer-links{font-size:16px}}

.experience-brief{padding-top:30px}.experience-brief p:not(.project-org){max-width:800px}.brief-copy{padding:38px 0 46px;max-width:860px}

.research-history-link{font-size:16px;line-height:1.7;margin-top:30px;max-width:900px}.project-copy h3{margin-top:30px}.case-gallery.motion-grid video{background:#eeefec}
