:root{--paper:#f8f7f3;--ink:#202c2a;--muted:#586560;--accent:#a33f25;--line:#d9ded6;--green:#e9eee7;--white:#fff;scroll-behavior:smooth;scroll-padding-top:30px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{background:#e5b29c;color:#172622}.wrap{max-width:1120px;margin:auto;padding-inline:36px}.masthead{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font:700 32px Georgia,serif;letter-spacing:-2px}.wordmark span,h1 span{color:var(--accent)}nav{display:flex;gap:32px;font-size:14px;font-weight:500}.hero{display:grid;grid-template-columns:1.45fr 1fr;gap:90px;align-items:center;padding-top:78px;padding-bottom:74px}.eyebrow,.small-label{font-size:11px;font-weight:600;letter-spacing:1.45px;text-transform:uppercase}.eyebrow{margin:0 0 22px;color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:8px}h1{font:400 clamp(64px,6.8vw,91px)/.97 Georgia,serif;letter-spacing:-4px;margin:0 0 28px}h2{font:400 36px/1.17 Georgia,serif;letter-spacing:-1.1px;margin:0}h3,p{margin:0}h3{line-height:1.25}.lead{font-size:25px;line-height:1.35;letter-spacing:-.5px;margin-bottom:19px}.bio{max-width:440px;color:var(--muted);font-size:16px}.hero-links{display:flex;gap:27px;align-items:center;margin-top:29px;font-size:13px;font-weight:600}.button{background:var(--ink);color:white;padding:13px 19px;display:inline-flex;gap:32px;border-radius:3px}.button:hover{background:var(--accent);color:white}.text-link{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:16px}.portrait{margin:0;transform:rotate(2deg);padding:11px;background:white;box-shadow:0 9px 30px #20312b0c;border:1px solid var(--line)}.portrait img{display:block;width:100%;height:auto;aspect-ratio:1/1.06;object-fit:cover}.portrait figcaption{display:flex;justify-content:space-between;gap:12px;font-size:9px;color:var(--muted);padding:13px 2px 2px;letter-spacing:.5px}.focus{padding-top:24px;padding-bottom:24px;border-block:1px solid var(--line);display:flex;align-items:center;gap:60px}.focus>span{font-size:10px;font-weight:600;letter-spacing:1.3px;color:var(--muted)}.focus p{font-size:13px}.focus i{font-style:normal;margin:0 21px;color:#8f9993}.block{padding-top:80px;padding-bottom:80px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:36px;margin-bottom:31px}.section-heading .eyebrow{margin-bottom:15px}.section-heading>p{max-width:320px;font-size:14px;color:var(--muted)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.work-card{padding:30px;border:1px solid var(--line);background:#f1f0e9;border-radius:4px}.work-card.precursor{background:var(--green)}.card-top{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:30px}.small-label{font-size:9px;color:var(--muted);letter-spacing:1px}.work-symbol{font:400 25px/1 Georgia,serif;border:1px solid #a8b7a5;border-radius:50%;padding:8px;color:#405f45}.signal{width:85px;fill:none;stroke:#55765b;stroke-width:1.7}.work-card h3{font:400 31px Georgia,serif;letter-spacing:-.5px;margin-bottom:13px}.work-card p{font-size:14px;color:var(--muted);max-width:380px;margin-bottom:25px}.work-card a{border-top:1px solid #cdd3c8;padding-top:20px;display:flex;justify-content:space-between}.writing{background:#eeeee8;border-block:1px solid var(--line)}.section-intro{font-size:14px;color:var(--muted);margin-bottom:27px}.posts{border-top:1px solid #cdd4ca}.post{display:grid;grid-template-columns:122px 1fr 20px;gap:24px;align-items:center;padding:23px 0;border-bottom:1px solid #cdd4ca;transition:padding .18s}.post:hover{padding-left:8px}.post time{font-size:10px;letter-spacing:.65px;color:var(--muted)}.post h3{font-size:17px;font-weight:500;letter-spacing:-.15px}.post p{font-size:13px;color:var(--muted);margin-top:5px}.post>span{font-size:22px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-bottom:1px solid var(--line)}.about-grid p:not(.eyebrow){font-size:15px;margin-bottom:19px}.muted{color:var(--muted)}.research{padding-bottom:35px}.research-links{display:flex;gap:20px;font-size:12px}.publication{padding:24px 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.publication strong{font-weight:400}.publication em{display:inline-block;font-style:normal;color:var(--ink);font-size:17px;font-weight:500;margin:7px 0}.publication br:first-of-type{display:block}.publication-list .publication:last-child{padding-bottom:30px}details{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;font-size:14px;display:flex;justify-content:space-between;padding:18px 0;font-weight:500}summary::-webkit-details-marker{display:none}details[open] summary span{transform:rotate(45deg)}.detail-content{padding-bottom:20px}.detail-content ul{padding-left:20px;font-size:14px;color:var(--muted)}.detail-content li{margin:12px 0}.detail-content a{text-decoration:underline;text-underline-offset:3px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.project-card{border-top:1px solid var(--line);padding:23px 0}.project-card h4{margin:0 0 9px;font-size:16px;font-weight:500}.project-card h4 a:after{content:' ↗';color:var(--accent);font-size:14px}.project-card p{font-size:13px;color:var(--muted)}footer{background:var(--ink);color:#f4f4ec;padding:55px 0 24px}footer .eyebrow{color:#bec9c1}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:50px}.contact-link{font-size:16px;border-bottom:1px solid #6c7a73;padding:9px 0;display:flex;gap:24px}footer a:hover{color:#e5b29c}.footer-bottom{border-top:1px solid #49564f;display:flex;justify-content:space-between;gap:20px;padding-top:22px;font-size:10px;color:#c2cdc5}.footer-bottom>div{display:flex;gap:16px}.skip{position:absolute;top:-100px;left:20px;padding:12px;background:white;z-index:10}.skip:focus{top:12px}@media(max-width:800px){.wrap{padding-inline:25px}.masthead{height:86px}nav{gap:20px;font-size:12px}.hero{gap:35px;padding-top:55px;padding-bottom:55px;grid-template-columns:1.4fr 1fr}h1{font-size:67px}.hero .eyebrow{font-size:9px;letter-spacing:.7px}.lead{font-size:22px}.bio{font-size:14px}.portrait figcaption{font-size:8px;flex-direction:column;gap:0}.focus{gap:25px}.focus i{margin:0 8px}.block{padding-block:55px}h2{font-size:30px}.section-heading{gap:25px}.about-grid{gap:35px}.contact-row{align-items:start;flex-direction:column}.footer-bottom{flex-wrap:wrap}.research-links{flex-direction:column;gap:7px}}@media(max-width:560px){.wrap{padding-inline:22px}.masthead{height:78px}nav{gap:16px;font-size:11px}.hero{grid-template-columns:1fr;padding-top:38px;gap:36px}h1{font-size:72px}.hero .eyebrow{font-size:9px}.portrait{width:68%;justify-self:center;transform:rotate(1.5deg)}.portrait figcaption{flex-direction:row;font-size:8px}.focus{display:block;padding-block:19px}.focus p{font-size:11px;margin-top:7px}.focus i{margin:0 7px}.section-heading{display:block}.section-heading>p,.section-heading>a,.research-links{margin-top:18px}.work-grid,.about-grid,.project-grid{grid-template-columns:1fr}.work-card{padding:25px}.card-top{margin-bottom:23px}.block{padding-block:45px}.post{grid-template-columns:1fr 18px;gap:7px;padding:20px 0}.post time{grid-column:1}.post div{grid-column:1}.post>span{grid-column:2;grid-row:1/3}.post h3{font-size:16px}.post p{font-size:12px}.about-grid{gap:25px}.research-links{flex-direction:row}.contact-row{margin-bottom:35px}footer{padding-top:40px}.contact-link{font-size:14px}.footer-bottom{gap:16px}.footer-bottom>div{flex-wrap:wrap}.hero-links{gap:24px}h2{font-size:30px}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}}
:root{color-scheme:dark;--paper:#101514;--ink:#e3e9e4;--muted:#a1aea6;--accent:#a7cda8;--line:#2b3630;--green:#16231d;--white:#e3e9e4}
body{background:var(--paper);-webkit-font-smoothing:antialiased}
::selection{background:#91b393;color:#101514}
.masthead{height:96px}.wordmark{font:600 25px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-1.7px}
nav,.eyebrow,.small-label,.focus>span,.portrait figcaption,.post time,.footer-bottom,.research-links{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
nav{font-size:12px;color:#a6b4aa}.eyebrow{font-size:10px;letter-spacing:1.1px}.dot{width:6px;height:6px;box-shadow:0 0 12px #a7cda82b}
.hero{position:relative;grid-template-columns:1.3fr 1fr;gap:65px;padding-top:72px;padding-bottom:66px;min-height:590px}
h1{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:570;font-size:clamp(64px,6.6vw,88px);line-height:.99;letter-spacing:-5px;margin-bottom:30px}
h2{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:500;font-size:32px;letter-spacing:-1.2px;line-height:1.2}
.lead{font-size:24px;color:#cbd7cf;letter-spacing:-.6px}.bio{font-size:15px;max-width:420px}
.button{background:#a7cda8;color:#101a14;border:1px solid #a7cda8;border-radius:2px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
.button:hover{background:#c4e2c5;color:#101a14}.text-link{color:#b1cfb4;font-size:12px}
.portrait{position:relative;transform:none;align-self:center;padding:0;background:transparent;border:0;box-shadow:none;isolation:isolate}
.portrait:before{content:"";position:absolute;inset:12px -18px 30px;background-image:linear-gradient(#7a9b7c12 1px,transparent 1px),linear-gradient(90deg,#7a9b7c12 1px,transparent 1px);background-size:29px 29px;z-index:-1;mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent)}
.portrait img{width:100%;height:auto;aspect-ratio:1/1.09;object-fit:cover;object-position:center 40%;filter:grayscale(1) brightness(.8) contrast(1.07);border-radius:3px;mask-image:linear-gradient(to bottom,#000 68%,transparent 100%)}
.portrait figcaption{position:relative;margin-top:-23px;padding:15px 0 0;border-top:1px solid #35473b;display:flex;flex-direction:row;justify-content:space-between;font-size:9px;letter-spacing:0;color:#9eb0a3}
.focus{gap:55px}.focus p{color:#b7c5bc}.focus i{color:#577160}
.work-card{background:#151d19;border:1px solid #303e34;border-radius:3px}.work-card.precursor{background:#18241d}.work-card h3{font-family:inherit;font-weight:500;font-size:30px;letter-spacing:-1px}.work-card a{border-color:#354337}.work-symbol{border-color:#48634c;color:#a7cda8}.signal{stroke:#a7cda8}.small-label{color:#a3b6a7}
.writing{background:#131b17}.posts,.post{border-color:#303c33}.post h3{color:#e3e9e4}.post:hover h3,.post>span{color:var(--accent)}.post time{font-size:10px}.post p{color:#a1aea6}
.publication em{font-size:16px}.publication strong{font-size:12px}.publication-list .publication:first-child{border-top:1px solid var(--line)}summary{color:#c9d5cc}summary span{font:400 20px ui-monospace,monospace;color:var(--accent)}.project-card h4{font-size:16px}.project-card p{font-size:13px}.detail-content a{text-decoration-color:#617c66}.skip{background:#22382a;color:white}
footer{background:#0b110e;border-top:1px solid var(--line)}footer .eyebrow{color:#8faa97}.footer-bottom{border-color:#28372d;font-size:9px;color:#94a69a}.contact-link{color:#c4dbc9;border-color:#496351}.contact-row h2{font-weight:450}footer a:hover{color:#c4e2c5}
@media(max-width:800px){.hero{gap:36px;padding-block:55px;min-height:0}h1{font-size:65px;letter-spacing:-3.5px}h2{font-size:28px}.portrait figcaption{font-size:8px;gap:4px;flex-wrap:wrap}.hero .eyebrow{font-size:8px;letter-spacing:.55px}.lead{font-size:21px}.focus{gap:25px}.masthead{height:84px}}
@media(max-width:560px){.hero{grid-template-columns:1fr;gap:30px;padding-top:40px;padding-bottom:34px}.intro{position:relative;z-index:1}h1{font-size:69px;letter-spacing:-4px}.hero .eyebrow{font-size:8px;letter-spacing:.4px;white-space:normal}.portrait{width:82%;max-width:340px;justify-self:center}.portrait img{aspect-ratio:1/1;object-position:center 32%}.portrait figcaption{font-size:8px;flex-wrap:nowrap}.masthead{height:76px}nav{font-size:10px;gap:14px}.focus p{font-size:11px}.work-card{padding:25px}.post h3{font-size:16px}.contact-link{font-size:14px}.footer-bottom{font-size:9px}.section-heading h2{font-size:28px}.button{gap:22px}}
:root{--paper:#111111;--ink:#f0eeee;--muted:#aaa5a6;--accent:#cf8992;--line:#343032;--green:#211719;--white:#f0eeee}
body{background:#111111}::selection{background:#8c3442;color:#fff}
.wordmark span,h1 span{color:#a44050}nav{color:#b6b0b2}.dot{background:#a44050;box-shadow:none}
h1{font-size:clamp(62px,6.1vw,82px);letter-spacing:-4.5px;line-height:1.01}.lead{color:#e1dcdd}.bio{color:var(--muted)}
.button{background:#762c39;border-color:#8c3a48;color:#fff}.button:hover{background:#8c3442;color:#fff}.text-link{color:#d8a2a9}
.portrait:before{background-image:linear-gradient(#ad717712 1px,transparent 1px),linear-gradient(90deg,#ad717712 1px,transparent 1px)}
.portrait figcaption{border-color:#493337;color:#b2a4a7}.portrait img{filter:grayscale(1) brightness(.8) contrast(1.07)}
.focus p{color:#c1babc}.focus i{color:#88505a}.work-card{background:#191718;border-color:#393034}.work-card.precursor{background:#24191c}.work-card a{border-color:#493239}.work-symbol{border-color:#81424d;color:#d297a1}.signal{stroke:#bd7280}.small-label{color:#baa5a9}
.writing{background:#171314}.posts,.post{border-color:#3b2d31}.post h3{color:#f0eeee}.post p{color:#aaa5a6}summary{color:#d9d0d3}.detail-content a{text-decoration-color:#8d5661}.skip{background:#762c39;color:white}
footer{background:#0a0909}footer .eyebrow{color:#bf959e}.footer-bottom{border-color:#36282c;color:#b5a7ab}.contact-link{color:#e2c8cd;border-color:#78434f}footer a:hover{color:#f0c3cb}
@media(max-width:800px){h1{font-size:63px;letter-spacing:-3px}}
@media(max-width:560px){h1{font-size:64px;letter-spacing:-3.5px}.hero{gap:26px}}
.portrait{width:100%;max-width:310px;justify-self:center;transform:none;background:none;border:0;padding:0}
.portrait:before{display:none}
.portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 36%;filter:none;mask-image:none;border-radius:6px}
.portrait figcaption{margin-top:0;padding-top:14px;border-top:0;color:var(--muted);font-size:9px;justify-content:flex-start}
.portrait figcaption span+span{display:none}
@media(max-width:800px){.portrait{max-width:260px}}
@media(max-width:560px){.portrait{width:68%;max-width:235px;justify-self:start;margin-top:8px}.portrait img{aspect-ratio:4/5;object-position:50% 36%}.portrait figcaption{font-size:9px;padding-top:11px}}
.wordmark{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:18px;font-weight:550;letter-spacing:-.35px;line-height:1.3}
.masthead{gap:28px}
.hero h1{font-size:clamp(45px,4.7vw,64px);line-height:1.08;letter-spacing:-2.8px;margin-bottom:20px}
.hero{min-height:560px}
.work-card .project-role{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:#d8a2a9;margin-top:-3px;margin-bottom:19px}
@media(max-width:800px){.wordmark{font-size:16px}.masthead nav{gap:17px}.hero h1{font-size:48px;letter-spacing:-2px}}
@media(max-width:560px){.masthead{height:auto;min-height:104px;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding-block:18px}.wordmark{font-size:18px}.masthead nav{gap:25px;font-size:11px}.hero h1{font-size:47px;letter-spacing:-2px}.hero{min-height:0}}
