@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Newsreader:opsz,wght@6..72,400;6..72,450;6..72,500&display=swap');
:root{--paper:#fafbfc;--ink:#283343;--muted:#637084;--line:#dfe4eb;--blue:#44668b;--serif:'Newsreader',Georgia,serif;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:2px}::selection{background:#dce7f4}.wrap{width:min(1080px,calc(100% - 96px));margin-inline:auto}.site-header{height:110px;display:flex;justify-content:space-between;align-items:center}.wordmark{font-family:var(--serif);font-size:36px;letter-spacing:-2px}.wordmark span{color:#6684a6}.site-header nav{display:flex;gap:30px;align-items:center;font-size:14px}.nav-cv{border-left:1px solid var(--line);padding-left:30px}.nav-cv span{margin-left:6px}.profile{padding:62px 0 91px;display:grid;grid-template-columns:minmax(0,1fr) 216px;gap:110px}.eyebrow{font-size:11px;font-weight:550;letter-spacing:.16em;color:var(--muted);margin:0 0 20px}h1{font-family:var(--serif);font-weight:400;font-size:68px;letter-spacing:-2.6px;line-height:1.02;margin:0 0 28px}.name-period{color:#7d97b3}.intro{font-size:19px;line-height:1.7;margin:0 0 15px;letter-spacing:-.24px;max-width:650px}.secondary-intro{color:var(--muted);font-size:17px;line-height:1.7}.profile-links{display:flex;gap:28px;margin-top:27px;font-size:14px;font-weight:500}.profile-links span{color:var(--muted);margin-left:5px}.portrait{margin:22px 0 0}.portrait img{width:216px;height:266px;object-fit:cover;object-position:50% 43%;border-radius:4px;filter:saturate(.78)}.portrait figcaption{font-size:12px;line-height:1.7;color:var(--muted);margin-top:13px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:21px}.section-heading h2{font-family:var(--serif);font-size:36px;font-weight:400;letter-spacing:-1.1px;margin:0}.count{vertical-align:super;font-family:var(--sans);font-size:11px;margin-left:10px;color:var(--muted);letter-spacing:.03em}.section-aside{font-size:12px;color:var(--muted)}.publication-list{list-style:none;padding:0;margin:0}.publication-list li{display:grid;grid-template-columns:72px 1fr;gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.pub-year{font-size:13px;color:var(--muted);padding-top:4px;font-variant-numeric:tabular-nums}.pub-body h3{font-size:16px;font-weight:550;line-height:1.5;letter-spacing:-.12px;margin:0;max-width:880px}.pub-body h3 a:hover{text-decoration:underline;text-underline-offset:4px}.pub-body>p{font-size:13px;color:var(--muted);line-height:1.7;margin:7px 0 10px}.pub-body strong{font-weight:550;color:var(--ink)}.pub-bottom{display:flex;justify-content:space-between;gap:20px;align-items:baseline;font-size:12px;color:var(--muted)}.pub-bottom>div{display:flex;gap:20px}.pub-bottom a{color:var(--blue);white-space:nowrap}.pub-bottom a:hover{text-decoration:underline;text-underline-offset:4px}
/* The research section is an open field of connected scenes, organized by phase. */
h1{margin-bottom:10px}.affiliation{margin:0 0 27px;font-size:17px;letter-spacing:.015em;color:var(--muted)}
.email-address{font-size:14px;color:var(--ink);margin:24px 0 0;line-height:1.7;overflow-wrap:anywhere}.profile-links{margin-top:14px}
.research{padding-top:113px}
.research-heading{display:flex;justify-content:space-between;gap:35px;align-items:flex-end;margin-bottom:37px}
.research-heading .eyebrow{font-size:12px;margin-bottom:20px}
.research-heading h2{font-family:var(--serif);font-size:53px;line-height:1.08;font-weight:400;letter-spacing:-1.5px;margin:0}
.research-heading-note{padding-bottom:4px}.research-heading-note>p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 18px}
.motion-toggle{border:0;background:none;padding:0;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:8px;cursor:pointer}
.motion-toggle[hidden]{display:none}.motion-toggle:hover{color:var(--ink)}.motion-toggle>span{font-size:10px}
.research-ribbon{display:flex;justify-content:space-between;gap:20px;padding-block:19px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.research-ribbon>span{color:var(--ink)}.research-ribbon>span>span{margin-left:13px}.research-ribbon>div{display:flex;gap:25px}
.research-ribbon>div>span{display:flex;gap:9px;align-items:center}.legend-line{height:0;width:24px;border-top:2px solid #7087a2}.legend-line.dotted{border-top-style:dashed;border-color:#9b765d}
.research-atlas{position:relative;margin-top:25px;padding-bottom:26px;isolation:isolate}
.research-paths{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1}
.research-paths path{fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke-opacity .3s,stroke-width .3s}
.research-paths .thread-base{stroke-opacity:.58;stroke-width:2.1}.research-paths .thread-active{stroke-opacity:1;stroke-width:3.1}
.research-paths .thread-node{stroke-width:2;fill:var(--paper)}.research-paths .thread-dot{stroke:none}
.research-stage{display:grid;grid-template-columns:86px minmax(0,1fr);gap:20px;position:relative}
.stage-marker{padding-top:31px;align-self:stretch}.stage-marker-inner{position:sticky;top:32px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-block:8px;background:var(--paper)}
.stage-time{font-family:var(--serif);font-size:27px;line-height:1.1;letter-spacing:-.5px;color:var(--ink)}.stage-caption{font-size:11px;color:var(--muted);line-height:1.5;max-width:72px}
.stage-content{min-width:0;position:relative}.stage-intro{font-size:12px;font-weight:400;letter-spacing:.03em;color:var(--muted);padding-top:35px;margin:0 0 3px;height:56px}
.project-entry{position:relative;scroll-margin-top:36px;--project-color:#557da9;padding-bottom:27px;margin:0}
.project-entry+.project-entry{margin-top:7px}
.project-entry summary{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);align-items:center;list-style:none;cursor:pointer;min-height:345px;outline-offset:8px}
.project-entry summary::-webkit-details-marker{display:none}.project-entry summary:focus-visible{outline:1px solid #8ba3bf;border-radius:6px;outline-offset:6px}
.scene-wrap{grid-column:1;grid-row:1;position:relative;align-self:center}
.project-visual{position:relative;height:310px;min-width:0;overflow:hidden;isolation:isolate;background:transparent}
.project-visual:before{content:'';position:absolute;width:88%;height:74%;left:6%;top:16%;border-radius:50%;background:radial-gradient(ellipse,rgba(222,231,241,.24),transparent 68%);z-index:-1;pointer-events:none}
.project-visual canvas,.project-visual svg{display:block;width:100%;height:100%}.project-visual canvas{transition:filter .3s}.project-entry summary:hover canvas{filter:saturate(1.12)}
.scene-caption{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;line-height:1.5;letter-spacing:0;color:#6d7f93;margin:0 0 8px}
.scene-caption span{max-width:45%;text-align:center}.scene-caption i{flex-shrink:0;width:23px;height:1px;background:#c6d1de}.scene-caption .scene-arrow{font-size:12px}
.project-copy{grid-column:3;grid-row:1;padding:18px 0 13px;position:relative}
.project-kicker{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--project-color);line-height:1.65;margin:0 0 15px}
.project-title{font-family:var(--serif);font-size:36px;line-height:1.12;letter-spacing:-.9px;font-weight:400;margin:0 0 16px;max-width:410px}
.project-description{font-size:16px;line-height:1.75;color:#5a6a7e;margin:0;max-width:370px}
.project-meta{font-size:12px;color:var(--muted);line-height:1.7;margin-top:19px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.project-status{color:var(--project-color)}.meta-separator{color:#b3bcc8}
.project-expand{font-size:12px;display:inline-flex;gap:22px;align-items:center;color:var(--ink);margin-top:22px;border-bottom:1px solid #d1d9e3;padding-bottom:5px}
.expand-symbol{font-size:18px;font-weight:400;line-height:1;color:var(--project-color);transition:transform .25s}.close-label{display:none}
.project-entry[open] .expand-symbol{transform:rotate(45deg)}.project-entry[open] .read-label{display:none}.project-entry[open] .close-label{display:inline}
.project-entry.reverse .scene-wrap{grid-column:3}.project-entry.reverse .project-copy{grid-column:1}
.project-detail{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);padding-bottom:15px}
.project-detail-inner{grid-column:3;border-top:1px solid var(--line);padding-top:22px;animation:unfold .3s ease-out}
.project-entry.reverse .project-detail-inner{grid-column:1}
.project-detail p{font-size:15px;line-height:1.85;margin:0 0 18px}.project-detail .project-context{font-size:12px;color:var(--muted);line-height:1.75}
.project-links{display:flex;gap:22px;font-size:13px;color:var(--blue)}.project-links a:hover{text-decoration:underline;text-underline-offset:4px}
.project-connection{position:absolute;width:8px;height:8px;top:50%;left:-46px;transform:translateY(-50%);border-radius:50%;background:var(--paper);border:2px solid var(--project-color)}
.project-entry.reverse .project-connection{left:auto;right:-46px}
.research-stage+.research-stage{margin-top:16px}.research-stage:not(:first-child) .stage-content{border-top:1px solid var(--line)}
.research-stage[data-stage="2026"] .stage-intro{height:61px}
.research-stage[data-stage="2026"] .project-entry{margin-top:0}
.early-phase{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);align-items:center;padding:32px 0 45px;position:relative}
.phase-copy{grid-column:3;position:relative;padding-top:1px}.phase-kicker{font-size:11px;letter-spacing:.075em;text-transform:uppercase;color:#627e9e;margin:0 0 13px}
.phase-copy h3{font-family:var(--serif);font-size:29px;font-weight:400;letter-spacing:-.6px;line-height:1.15;margin:0 0 13px}
.phase-copy>p:not(.phase-kicker){font-size:14px;line-height:1.8;margin:0;color:var(--muted)}
.phase-note{grid-column:1;grid-row:1;justify-self:end;max-width:230px;line-height:1.7;font-size:12px;color:var(--muted);padding-right:20px;text-align:right}
.phase-note span{display:block;font-size:12px;color:var(--blue);margin-bottom:7px}.phase-copy .project-connection{top:40px}
.history-start{font-size:12px;color:var(--muted);margin:7px 0 0;padding:0 0 20px;text-align:center}.history-start:before{content:'';display:block;height:22px;width:1px;margin:0 auto 13px;background:#c7b39f}
.site-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-block:31px 38px;font-size:12px;color:var(--muted);margin-top:25px}.site-footer>span:first-child{color:var(--ink);font-weight:500}.site-footer a{font-size:12px}.site-footer a span{margin-left:9px}
.skip-link{position:fixed;top:12px;left:12px;transform:translateY(-200%);z-index:99;background:white;padding:10px 15px}.skip-link:focus{transform:translateY(0)}
@keyframes unfold{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.wrap{width:1120px}.profile{gap:140px;padding-top:73px;padding-bottom:104px}.site-header{height:118px}.project-visual{height:330px}.project-entry summary{min-height:366px}}
@media(max-width:1000px){.wrap{width:calc(100% - 72px)}.profile{gap:55px;grid-template-columns:minmax(0,1fr) 194px}.portrait img{width:194px;height:246px}h1{font-size:59px}.intro{font-size:18px}.secondary-intro{font-size:16px}.research-stage{grid-template-columns:59px minmax(0,1fr);gap:15px}.project-entry summary,.project-detail,.early-phase{grid-template-columns:minmax(0,1fr) 55px minmax(0,1fr)}.project-title{font-size:31px}.project-description{font-size:15px}.project-visual{height:270px}.project-entry summary{min-height:315px}.project-connection{left:-32px}.project-entry.reverse .project-connection{right:-32px}.research-heading h2{font-size:47px}.phase-note{max-width:195px;font-size:11px}.stage-time{font-size:25px}.stage-caption{font-size:10px}.project-kicker{font-size:10px}}
@media(max-width:740px){.wrap{width:calc(100% - 40px)}.site-header{height:82px}.site-header nav{gap:20px;font-size:12px}.nav-cv{padding-left:20px;white-space:nowrap}.wordmark{font-size:30px}.profile{position:relative;display:block;padding-top:38px;padding-bottom:55px}.profile-copy{display:contents}h1{font-size:46px;letter-spacing:-2px;max-width:calc(100% - 126px);line-height:1.03;min-height:100px;margin-bottom:10px}.affiliation{font-size:14px;margin-bottom:25px;max-width:calc(100% - 120px)}.portrait{position:absolute;right:0;top:34px;margin:0;width:111px}.portrait img{width:111px;height:138px}.portrait figcaption{display:none}.intro{font-size:17px;line-height:1.75}.secondary-intro{font-size:15px}.email-address{font-size:14px;margin-top:23px}.profile-links{font-size:13px;gap:25px;margin-top:13px}.section-heading h2{font-size:31px}.section-aside{font-size:10px}.count{font-size:10px}.publication-list li{grid-template-columns:37px 1fr;gap:14px;padding-block:21px}.pub-year{font-size:11px}.pub-body h3{font-size:14px;line-height:1.55}.pub-body>p{font-size:12px;margin-block:8px}.pub-bottom{font-size:11px;gap:12px;align-items:flex-end}.pub-bottom>div{gap:13px}.research{padding-top:72px}.research-heading{display:block;margin-bottom:27px}.research-heading h2{font-size:40px}.research-heading .eyebrow{font-size:11px;margin-bottom:16px}.research-heading-note{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-top:22px}.research-heading-note>p{font-size:13px;margin:0}.research-heading-note>p br{display:none}.motion-toggle{font-size:11px;white-space:nowrap}.research-ribbon{font-size:11px;padding-block:17px}.research-ribbon>div{gap:12px}.research-ribbon>div>span{gap:5px}.legend-line{width:14px}.research-ribbon>span>span{margin-left:5px}.research-atlas{margin-top:17px}.research-stage{grid-template-columns:51px minmax(0,1fr);gap:8px}.stage-marker{padding-top:26px}.stage-marker-inner{top:20px;gap:6px}.stage-time{font-size:23px}.stage-caption{font-size:9px;max-width:45px}.stage-intro{font-size:11px;padding-top:29px;height:57px}.project-entry summary,.project-detail,.early-phase{grid-template-columns:1fr;min-height:0}.project-entry .scene-wrap,.project-entry.reverse .scene-wrap{grid-column:1;grid-row:1;margin-left:-7px}.project-visual{height:270px}.scene-caption{font-size:12px;margin-bottom:12px;letter-spacing:0}.project-entry .project-copy,.project-entry.reverse .project-copy{grid-column:1;grid-row:2;padding:12px 0 18px 12px}.project-title{font-size:34px;max-width:100%;margin-bottom:15px}.project-description{font-size:16px;max-width:100%;line-height:1.7}.project-kicker{font-size:10px;margin-bottom:12px}.project-meta{font-size:11px;margin-top:17px}.project-expand{font-size:12px;margin-top:20px}.project-entry .project-connection,.project-entry.reverse .project-connection{left:-15px;right:auto;top:25px}.project-entry{padding-bottom:26px;margin-bottom:0}.project-entry+.project-entry{margin-top:0}.project-detail-inner,.project-entry.reverse .project-detail-inner{grid-column:1;margin-left:12px;padding-top:20px}.project-detail p{font-size:15px}.project-detail .project-context{font-size:12px}.project-links{font-size:12px}.research-stage+.research-stage{margin-top:14px}.early-phase{padding:30px 0 30px 12px;gap:20px}.phase-copy{grid-column:1;grid-row:1}.phase-copy h3{font-size:28px}.phase-note{grid-column:1;grid-row:2;justify-self:start;text-align:left;padding:0;max-width:100%;font-size:12px;border-left:1px solid var(--line);padding-left:15px}.phase-note span{margin-bottom:3px}.phase-copy .project-connection{left:-27px;top:30px}.history-start{font-size:11px}.site-footer{gap:20px;font-size:11px;padding-block:26px}.site-footer>span:nth-child(2){display:none}.site-footer a{font-size:11px}}
@media(max-width:420px){.site-header nav{gap:13px;font-size:11px}.nav-cv{padding-left:13px}.site-header .wordmark{margin-right:15px}.project-visual{height:226px}.research-stage{grid-template-columns:42px minmax(0,1fr);gap:7px}.stage-time{font-size:21px}.stage-caption{font-size:9px}.project-title{font-size:31px}.project-description{font-size:15px}.research-heading h2{font-size:37px}.research-ribbon{align-items:flex-start}.research-ribbon>div{display:grid;gap:8px}.research-heading-note{gap:18px}.research-heading-note>p{font-size:12px}.project-entry .project-copy,.project-entry.reverse .project-copy{padding-left:9px}.project-entry .project-connection,.project-entry.reverse .project-connection{left:-15px}.scene-caption{gap:7px;font-size:12px;letter-spacing:0}.scene-caption i{width:15px}.pub-bottom>span{max-width:150px}.pub-bottom>div{gap:9px}.project-meta{font-size:11px}.early-phase{padding-left:9px}.phase-copy .project-connection{left:-24px}.project-detail-inner,.project-entry.reverse .project-detail-inner{margin-left:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.site-header nav,.research-paths,.project-expand,.motion-toggle,.site-footer a{display:none}.wrap{width:100%}.profile{padding-top:20px;padding-bottom:30px}.project-entry{break-inside:avoid}.project-visual{height:180px}.research{padding-top:40px}.publication-list li{break-inside:avoid}.project-detail{display:block}.stage-marker-inner{position:static}}
@media(max-width:740px){.profile-heading{min-height:157px;max-width:calc(100% - 130px);padding-bottom:23px}.profile-heading h1{max-width:none;min-height:0;margin-bottom:10px}.profile-heading .affiliation{max-width:none;margin-bottom:0}}

/* Subtle personal interests and a video preview shared by mouse, keyboard and touch. */
.personal-interests{font-size:15px;line-height:1.8;color:var(--muted);margin:23px 0 0}
.interest-trigger{display:inline;border:0;border-bottom:1px dotted #9faebf;border-radius:0;padding:0;background:transparent;color:#4c6c8e;font:inherit;line-height:inherit;cursor:pointer;text-underline-offset:4px}
.interest-trigger:hover,.interest-trigger[aria-expanded="true"]{color:var(--ink);border-bottom-style:solid}
.interest-preview{position:fixed;inset:auto;margin:0;width:340px;max-width:calc(100vw - 32px);padding:14px;border:1px solid #dbe2ea;border-radius:9px;background:var(--paper);color:var(--ink);box-shadow:0 14px 44px #26354b21;overflow:auto;max-height:calc(100dvh - 32px)}
.interest-preview:not(:popover-open):not(.is-open){display:none}
.interest-preview::backdrop{background:transparent;pointer-events:none}
.interest-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 10px}
.interest-preview h2{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;letter-spacing:-.3px;margin:0}
.interest-preview-close{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;padding:0;border:0;border-radius:4px;background:transparent;font-size:23px;color:var(--muted);cursor:pointer}
.interest-preview-close:hover{background:#e9eef4;color:var(--ink)}
.interest-preview video{display:block;width:100%;height:min(340px,45dvh);object-fit:contain;background:#e9eef2;border-radius:4px}
.interest-preview p{font-size:13px;line-height:1.65;margin:12px 1px 1px;color:var(--muted)}
.project-lineage{font-size:12px;line-height:1.65;color:var(--project-color);margin:8px 0 -7px}
.project-connection{box-shadow:0 0 0 3px var(--paper);transition:background .2s}
.project-connection.connection-active{background:var(--project-color)}
.single-caption{max-width:100%;padding-inline:8px;text-align:center}
@media(max-width:740px){.personal-interests{font-size:14px;margin-top:20px}.project-lineage{font-size:12px}}

/* Invitation access stays quiet and inline with the public profile. */
.private-access{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 15px;margin-top:16px;max-width:600px;color:var(--muted)}
.private-access>p{font-size:12px;line-height:1.7;margin:0}
.private-access-action{border:0;border-bottom:1px solid #bdc9d6;border-radius:0;padding:0 0 2px;background:transparent;color:var(--blue);font-size:12px;line-height:1.6;cursor:pointer}
.private-access-action:hover{color:var(--ink);border-bottom-color:var(--ink)}
.private-access-action:disabled{color:var(--muted);cursor:wait}
.private-access-action[hidden],[data-private-detail][hidden],[data-private-context][hidden],[data-private-note][hidden]{display:none!important}
.project-detail .project-access-note{font-size:13px;line-height:1.8;color:var(--muted);max-width:360px}
@media(max-width:740px){.profile-links{flex-wrap:wrap;gap:10px 25px}.private-access{margin-top:13px;gap:5px 14px}.private-access>p{font-size:12px;max-width:100%}.project-detail .project-access-note{font-size:13px}}
@media print{.private-access-action{display:none}}

/* Frame the original signature's ink and blend its white paper into the page. */
.site-footer{align-items:center}
.footer-signature{display:block;flex:none;width:30px;height:48px;overflow:hidden}
.footer-signature img{display:block;width:64px;max-width:none;height:auto;transform:translate(-16.5px,-3.5px);mix-blend-mode:multiply}
@media(max-width:740px){.footer-signature{width:26px;height:41px}.footer-signature img{width:54px;transform:translate(-14px,-3px)}}
