@charset "UTF-8";
:root{--paper:#eeede6;--ink:#29392f;--quiet:#747a6d;--rule:#c8cdbf;--side:254px;--gutter:56px;color-scheme:light;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #79753d;outline-offset:7px}::selection{color:var(--paper);background:var(--ink)}
.skip-link{position:fixed;left:20px;top:-80px;z-index:100;padding:15px;background:var(--paper);font-size:13px}.skip-link:focus{top:16px}
.identity{position:fixed;left:0;top:0;width:var(--side);height:100svh;z-index:8;padding:56px 24px 34px 44px;display:flex;flex-direction:column}
.identity-name{font:400 30px/.99 Georgia,'Times New Roman',serif;letter-spacing:-1.3px;text-decoration:none;white-space:nowrap}.identity-dot{color:#81907a}.identity-field{font-size:11px;line-height:1.65;margin:25px 0 48px;color:var(--quiet)}
.identity nav{display:flex;flex-direction:column;gap:20px}.identity nav a{display:flex;gap:23px;font-size:13px;text-decoration:none;width:fit-content;position:relative}.identity nav a span{font-size:9px;color:var(--quiet);padding-top:3px}.identity nav a:after{content:'';position:absolute;left:33px;bottom:-5px;width:0;height:1px;background:currentColor;transition:width .3s}.identity nav a:hover:after,.identity nav a.active:after{width:calc(100% - 33px)}
.identity-bottom{margin-top:auto;font-size:10px;line-height:1.8;color:var(--quiet)}.identity-bottom p{margin:0 0 15px}.identity-bottom a{text-decoration:none;color:var(--ink)}.identity-bottom a span{margin-left:20px}
.entrance-runway{height:100svh;position:relative}.viewport{height:100svh;position:sticky;top:0;isolation:isolate;overflow:hidden;background:var(--paper)}.enhanced .entrance-runway{height:218svh}
.arrival{margin-left:var(--side);height:100%;padding:54px var(--gutter) 28px 24px;display:flex;flex-direction:column;transform-origin:center}.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1.1px;text-transform:uppercase;color:var(--quiet)}
.arrival h2{font:400 clamp(44px,5.4vw,86px)/1.02 Georgia,'Times New Roman',serif;letter-spacing:-3px;margin:35px 0 30px}.arrival h2 em{font-weight:400}.research-image{margin:0;position:relative;flex:1;min-height:120px;max-height:46svh;overflow:hidden}.research-image img{width:100%;height:100%;object-fit:cover;display:block;object-position:50% 58%}.image-label{position:absolute;left:22px;bottom:20px;color:#fffdf2;font:400 19px Georgia,serif;letter-spacing:-.4px}
.image-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:19px}.image-caption>div{display:flex;gap:24px}.caption-number{font-size:10px;padding-top:3px;color:var(--quiet)}.image-caption p{font-size:11px;line-height:1.7;margin:0}.image-caption p span{color:var(--quiet);font-size:10px}.text-button{border:0;border-bottom:1px solid var(--rule);padding:9px 0;background:none;color:var(--ink);font-size:11px;white-space:nowrap}.text-button span{margin-left:24px}.text-button:hover{border-color:var(--ink)}
.opening-meta,.opening-footer,.skip-opening,.entrance-progress{display:none}
.enhanced .opening-meta{display:flex;position:absolute;z-index:12;top:40px;left:var(--gutter);right:var(--gutter);justify-content:space-between;color:#fffdf2;font-size:10px;letter-spacing:1.8px;text-transform:uppercase;pointer-events:none}.enhanced .opening-footer{display:flex;align-items:center;position:absolute;z-index:12;left:var(--gutter);right:var(--gutter);bottom:44px;justify-content:space-between;color:#fffdf2;gap:30px}.opening-footer>p{margin:0;font:400 15px Georgia,serif}.scroll-cue{display:flex;align-items:center;gap:20px;background:none;border:0;color:inherit;padding:16px 0;font-size:11px;letter-spacing:.8px}.scroll-line{width:70px;height:1px;background:#fffdf288;transform-origin:left;transition:transform .35s}.scroll-cue:hover .scroll-line{transform:scaleX(1.3)}.scroll-arrow{font-size:21px}.opening-number{font-size:10px;letter-spacing:1.4px}
.enhanced .skip-opening{display:block;position:absolute;right:var(--gutter);top:82px;z-index:13;color:#fffdf2;text-decoration:none;font-size:10px;letter-spacing:.4px;padding:8px 0}.skip-opening span{margin-left:8px}.enhanced .entrance-progress{display:block;position:absolute;bottom:0;left:0;right:0;height:2px;z-index:13;background:#fffdf21a}.entrance-progress>span{display:block;height:100%;background:#fffdf2;transform:scaleX(0);transform-origin:left}
.portfolio-body{margin-left:var(--side);padding:60px var(--gutter) 0 24px}.editorial-section{display:grid;grid-template-columns:140px 1fr;gap:35px;padding:80px 0;border-top:1px solid var(--rule);scroll-margin-top:38px}.section-label{font-size:10px;line-height:1.7;letter-spacing:.5px;padding-top:9px;color:var(--quiet)}.editorial-section h2{font:400 clamp(32px,3.8vw,55px)/1.08 Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-1.7px;margin:0 0 32px}.editorial-section p{font-size:14px;line-height:1.9;max-width:550px;margin:0 0 18px;color:#56604f}.text-link{display:inline-block;text-decoration:none;font-size:11px;padding:12px 0 9px;border-bottom:1px solid var(--rule);margin-top:12px}.text-link>span{margin-left:30px}.text-link:hover{border-color:var(--ink)}.publication{display:grid;grid-template-columns:1fr auto;text-decoration:none;border-top:1px solid var(--rule);padding:22px 0;gap:10px}.publication>span:first-child{grid-column:1 / -1;color:var(--quiet);font-size:9px;letter-spacing:.5px}.publication h3{font:400 19px/1.4 Georgia,serif;margin:0;max-width:500px}.publication>span:last-child{align-self:center;padding:10px}.publication:hover h3{text-decoration:underline;text-underline-offset:4px}.forthcoming{font-style:italic;color:var(--quiet)!important}.contact-section h2{font-size:clamp(40px,5vw,72px)}.back-top{display:block;margin-top:50px;text-decoration:none;font-size:10px;color:var(--quiet)}.colophon{border-top:1px solid var(--rule);padding:28px 0 35px;display:flex;justify-content:space-between;gap:30px;font-size:9px;line-height:1.8;color:var(--quiet)}.colophon p{margin:0}.colophon a{text-underline-offset:3px}
dialog{color:var(--ink);background:var(--paper);border:0;padding:40px;max-width:760px;width:calc(100% - 40px);max-height:90svh;box-shadow:0 15px 100px #13221925}dialog::backdrop{background:#19251e88;backdrop-filter:blur(8px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;font-size:9px;text-transform:uppercase;letter-spacing:.8px;gap:20px}.dialog-top button{padding:12px 0;border:0;background:none;color:inherit;font-size:11px;white-space:nowrap}dialog h2{font:400 clamp(32px,5vw,58px)/1.07 Georgia,serif;letter-spacing:-1.6px;margin:50px 0 30px}dialog p{font-size:14px;line-height:1.9;max-width:570px}.dialog-note{color:var(--quiet)}body.dialog-open{overflow:hidden}
@media(min-width:1600px){:root{--side:310px;--gutter:76px}.identity{padding-left:64px}.identity-name{font-size:34px}.arrival{padding-left:35px}}
@media(max-width:1000px){:root{--side:210px;--gutter:30px}.identity{padding-left:28px;padding-right:15px}.identity-name{font-size:26px}.arrival{padding-left:10px}.arrival h2{font-size:clamp(43px,5.6vw,64px);letter-spacing:-2px}.editorial-section{grid-template-columns:100px 1fr;gap:20px}.portfolio-body{padding-left:10px}}
@media(max-width:700px){:root{--side:0px;--gutter:24px}.identity{width:100%;height:85px;background:var(--paper);padding:18px 24px;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--rule)}.identity-name{font-size:22px;letter-spacing:-.8px}.identity-field,.identity-bottom{display:none}.identity nav{flex-direction:row;gap:17px}.identity nav a{font-size:10px;gap:0;padding:10px 0}.identity nav a span{display:none}.identity nav a:after{left:0;bottom:3px}.identity nav a:hover:after,.identity nav a.active:after{width:100%}.identity nav a:first-child{display:none}.enhanced .entrance-runway{height:195svh}.arrival{padding:113px 24px 25px;margin:0}.section-top{font-size:8px;letter-spacing:.5px}.arrival h2{font-size:clamp(38px,8.5vw,59px);letter-spacing:-1.7px;margin:29px 0 26px}.research-image{max-height:none;min-height:90px}.image-caption{gap:15px;padding-top:17px}.image-caption>div{gap:12px}.image-caption p{font-size:10px}.image-caption p span{font-size:9px}.text-button{font-size:10px}.text-button span{margin-left:12px}.image-label{font-size:17px;left:16px;bottom:18px}.enhanced .opening-meta{top:30px;left:24px;right:24px;font-size:8px;letter-spacing:1px}.opening-meta>span:last-child{max-width:90px;text-align:right;line-height:1.7}.enhanced .opening-footer{left:24px;right:24px;bottom:32px;gap:10px}.opening-footer>p{font-size:12px;max-width:100px}.opening-number{display:none}.scroll-cue{font-size:10px;gap:12px}.scroll-line{width:25px}.enhanced .skip-opening{right:24px;top:85px;font-size:9px}.portfolio-body{margin:0;padding:25px 24px 0}.editorial-section{display:block;padding:45px 0;scroll-margin-top:100px}.section-label{margin-bottom:24px;padding-top:0;font-size:9px}.editorial-section h2{font-size:37px;letter-spacing:-1.4px}.editorial-section p{font-size:13px}.colophon{display:block;font-size:9px}.colophon>span{display:block;margin-bottom:15px}dialog{padding:25px}dialog h2{margin-top:35px}.dialog-top{font-size:8px}html{scroll-padding-top:100px}}
@media(max-height:650px) and (min-width:701px){.arrival{padding-top:30px}.arrival h2{font-size:50px;margin:22px 0}.identity{padding-top:35px}.identity-field{margin:20px 0 30px}.identity nav{gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.enhanced .entrance-runway{height:135svh}}

.identity{z-index:30}.identity-name{margin:0;position:relative;transform-origin:0 0;will-change:transform;width:max-content;isolation:isolate}.identity-name a{color:inherit;text-decoration:none}.identity-dot{color:inherit}
.enhanced .identity-name{font-weight:400;will-change:auto}.enhanced .identity{background:transparent}
.hero-photo{margin:0;position:absolute;left:calc(var(--side) + 24px);right:var(--gutter);top:42%;height:43%;z-index:10;overflow:hidden;pointer-events:none}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 58%}.hero-photo .photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0c201a17 0%,transparent 32%,#06130ec9 100%);pointer-events:none}.enhanced .hero-photo{top:0;left:0;right:auto;will-change:width,height,transform}.hero-photo .image-label{z-index:1}.research-image{background:transparent}.arrival{transform:none}
#photo-dialog{width:min(1100px,calc(100% - 36px));max-width:1100px;padding:22px;background:#eeede6;max-height:95svh}.viewer-top,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px}.viewer-top{margin-bottom:18px;font-size:10px;letter-spacing:1px}.viewer-top button,.viewer-bottom>button{padding:12px;background:none;border:0;color:var(--ink)}.viewer-top button{font-size:11px}.viewer-bottom>button{font-size:24px;min-width:44px;min-height:44px}.viewer-bottom{margin-top:15px;text-align:center}.viewer-bottom p{font:400 18px/1.3 Georgia,serif;margin:0 0 5px;max-width:none}.viewer-bottom a{font-size:10px;color:var(--quiet);text-underline-offset:3px}#viewer-image{width:100%;height:66svh;object-fit:contain;display:block;background:#e4e6dc}#photo-count{min-width:65px}
@media(max-width:1000px){.hero-photo{left:calc(var(--side) + 10px)}}
@media(max-width:700px){.enhanced .identity{background:rgba(238,237,230,var(--identity-reveal,0));border-bottom-color:rgba(200,205,191,var(--identity-reveal,0))}.identity nav a[href="#teaching"],.identity nav a[href="#contact"]{display:none}.identity nav{gap:15px}.identity nav a{font-size:10px}.hero-photo{left:24px;right:24px;top:34%;height:57%}.enhanced .hero-photo{left:0;top:0;right:auto}.viewer-bottom p{font-size:16px}.viewer-bottom a{font-size:9px}#photo-dialog{padding:15px}.viewer-bottom{gap:8px}#viewer-image{height:60svh}}
@media(max-width:360px){.identity{padding-left:20px;padding-right:20px;gap:12px}.identity-name{font-size:20px}.identity nav{gap:12px}.identity nav a{font-size:9px}}
@media(prefers-reduced-motion:reduce){.identity-name,.hero-photo{will-change:auto}}


.overview-anchor{position:absolute;top:calc(100% - 100svh + 36px);left:0;width:1px;height:1px;pointer-events:none}
@media(max-width:700px){.overview-anchor{top:calc(100% - 100svh + 100px)}}


html.enhanced{scroll-behavior:auto;scroll-padding-top:0}
.enhanced .overview-anchor{top:calc(100% - 100svh)}

.enhanced #home-content{scroll-margin-top:36px}
@media(max-width:700px){.enhanced #home-content{scroll-margin-top:100px}}

.external-arrow{display:inline-block;width:.75em;height:.75em;vertical-align:.04em;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:square;stroke-linejoin:miter;flex-shrink:0}
