:root{--ink:#29262a;--muted:#686169;--accent:#7c2945;--accent-dark:#5f1730;--line:#e8e0e3;--paper:#fff;--wash:#faf6f7;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.8 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent-dark)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,a:focus-visible,summary:focus-visible{outline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.25}h1,h2{color:var(--accent)}h1{font-size:48px}h2{font-size:32px}h3{font-size:24px}p{margin-bottom:18px}strong{font-weight:600}.container{width:min(1120px,calc(100% - 80px));margin-inline:auto}.muted{color:var(--muted)}.skip-link{position:fixed;left:16px;top:-90px;padding:10px 20px;background:white;z-index:100}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);z-index:20}.header-inner{max-width:1380px;margin:auto;min-height:84px;padding:12px 40px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:16px;font-weight:600;white-space:nowrap}.brand-mark{font-family:var(--serif);color:var(--accent);font-size:35px;line-height:1;font-style:italic;font-weight:500}.site-header nav{display:flex;gap:25px}.site-header nav a{position:relative;font-size:14px;text-decoration:none;color:var(--muted);padding:13px 0}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--accent)}.site-header nav a[aria-current]::after{content:'';position:absolute;bottom:5px;height:2px;background:var(--accent);left:0;right:0}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:345px minmax(0,1fr);gap:76px;align-items:center;padding:70px 0 64px}.portrait{width:100%;aspect-ratio:342/409;object-fit:cover}.portrait-caption{font-size:12px;color:var(--muted);margin:14px 0 0;letter-spacing:.01em}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-weight:600;margin-bottom:16px}.hero h1{font-size:58px;letter-spacing:-.035em;line-height:1.03;margin-bottom:17px}.hero .role{font-size:15px;color:var(--muted);margin-bottom:27px}.about-label{font-size:23px;margin-bottom:12px}.hero-copy>p:not(.eyebrow):not(.role){font-size:15px;line-height:1.85}.social-links{display:flex;flex-wrap:wrap;gap:22px;margin:22px 0}.social-links a{font-size:13px;text-decoration:none;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--accent);color:#fff;padding:10px 20px;font-size:14px;font-weight:500;text-decoration:none;border:1px solid var(--accent);transition:background .15s}.button:hover{background:var(--accent-dark);color:white}.home-section{padding:49px 0;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:30px}.section-heading h2{margin-bottom:0}.section-heading>a,.section-note{font-size:13px}.section-note{color:var(--muted)}.news-list{padding:0;margin:0;list-style:none}.news-list li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;margin-bottom:23px}.news-list li:last-child{margin-bottom:0}.news-list time{font-size:13px;color:var(--muted);padding-top:3px}.news-list p{margin:0;font-size:15px}.section-intro{max-width:700px;color:var(--muted)}.interests{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:30px}.interests article{position:relative;padding-left:42px}.interest-number{position:absolute;left:0;top:3px;font-size:12px;color:var(--accent)}.interests h3{font-size:24px;margin-bottom:12px}.interests p{color:var(--muted);font-size:15px;margin-bottom:0}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.video{margin:0;min-width:0}.video video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#171317}.video video:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.video figcaption{font-size:14px;margin-top:13px;color:var(--ink)}.education-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.education{display:flex;flex-direction:column;align-items:flex-start;gap:19px}.education img{height:77px;width:77px;object-fit:contain}.education h3{font-size:21px;margin-bottom:12px}.education p{font-size:14px;margin:0 0 5px}.site-footer{margin-top:56px;border-top:1px solid var(--line);background:var(--wash)}.footer-inner{width:min(1120px,calc(100% - 80px));margin:auto;min-height:112px;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:13px}.footer-name{font-family:var(--serif);font-size:18px;text-decoration:none}.footer-inner p{margin:0;color:var(--muted)}.footer-inner p span{margin:0 13px}.footer-inner p a{color:var(--muted);text-decoration:none}.page-heading{padding:60px 0 38px;border-bottom:1px solid var(--line);margin-bottom:42px;max-width:100%}.page-heading h1{margin-bottom:15px;letter-spacing:-.02em}.page-heading p{margin:0;max-width:740px;color:var(--muted)}.publication-section{margin:40px 0 55px}.publication-section>h2{font-size:27px;margin-bottom:16px}.publication{padding:26px 0;border-bottom:1px solid var(--line)}.publication h3{font-size:23px;max-width:950px;line-height:1.4;margin-bottom:12px}.publication h3 a{color:var(--ink);text-decoration:none}.publication h3 a:hover{color:var(--accent)}.publication p{margin-bottom:6px;font-size:14px}.authors{color:var(--muted)}.venue{font-style:italic}.resource-links{display:flex;gap:23px;margin-top:13px;font-size:13px}.project-index{padding:18px 24px;background:var(--wash);font-size:14px;margin-bottom:40px}.project-index summary{cursor:pointer;font-weight:600;color:var(--accent)}.project-index ol{padding-left:20px;line-height:2}.project-entry{padding:22px 0 50px;margin-bottom:30px;border-bottom:1px solid var(--line);scroll-margin-top:100px}.project-entry h2{max-width:860px;font-size:30px}.project-copy{max-width:850px}.project-copy p{font-size:15px}.institution{font-weight:600;color:var(--muted);font-size:13px!important}.project-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-top:28px;align-items:center}.project-media>:only-child{width:100%;max-width:650px;grid-column:1/-1}.project-media>img{max-height:400px;object-fit:contain}.drive-video{aspect-ratio:16/9;margin-bottom:35px}.drive-video p{font-size:13px;margin-top:10px}.robot-entry{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:65px;align-items:start;padding:30px 0 55px;margin-bottom:34px;border-bottom:1px solid var(--line);scroll-margin-top:110px}.robot-copy h2{font-size:31px}.robot-copy p:not(.eyebrow){font-size:15px}.robot-media{display:grid;gap:23px}.robot-media>img{width:100%;max-height:420px;object-fit:contain;background:var(--wash)}.media-entry{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:18px 0 50px;margin-bottom:35px;border-bottom:1px solid var(--line)}.media-entry h2{font-size:30px}.media-entry p:not(.eyebrow){font-size:15px}.media-entry>div>a{font-size:14px}.award{display:grid;grid-template-columns:100px 1fr;gap:35px;border-bottom:1px solid var(--line);padding:25px 0 34px}.award-year{color:var(--accent);font-size:17px;padding-top:4px}.award h2{font-size:27px;margin-bottom:12px}.award div p{max-width:800px;color:var(--muted);font-size:15px;margin-bottom:0}.cv-actions{display:flex;gap:28px;align-items:center;margin:0 0 32px}.text-action{font-size:14px}.cv-preview{border:1px solid var(--line);background:var(--wash)}.cv-preview object{width:100%;height:950px;display:block}.cv-preview object p{padding:30px}.art-intro{max-width:780px;margin-bottom:42px}.art-intro>a{font-size:14px}.art-gallery{columns:3;column-gap:25px}.artwork{display:block;break-inside:avoid;margin-bottom:25px;overflow:hidden;background:var(--wash)}.artwork img{width:100%;transition:transform .25s}.artwork:hover img{transform:scale(1.025)}.lightbox{max-width:94vw;width:max-content;max-height:94vh;padding:50px 22px 12px;border:0;background:var(--paper)}.lightbox::backdrop{background:rgba(30,20,25,.85)}.lightbox img{max-width:85vw;max-height:75vh;width:auto;object-fit:contain}.lightbox-close{position:absolute;right:14px;top:0;border:0;background:none;font-size:33px;cursor:pointer;color:var(--accent)}.lightbox-caption{font-size:12px;text-align:center;margin:12px 0 0}
@media(min-width:1500px){.header-inner{max-width:1400px}}
@media(max-width:1150px){.header-inner{padding-inline:28px;gap:20px}.site-header nav{gap:18px}.brand{font-size:14px}.hero{grid-template-columns:300px 1fr;gap:45px}.hero h1{font-size:52px}}
@media(max-width:950px){.site-header nav{gap:14px}.site-header nav a{font-size:12px}.brand>span:last-child{display:none}.hero{grid-template-columns:260px 1fr;gap:36px}.hero h1{font-size:46px}.container,.footer-inner{width:calc(100% - 56px)}.hero-copy>p:not(.eyebrow):not(.role){font-size:14px}.education-grid{gap:24px}.robot-entry{gap:35px}.media-entry{gap:35px}}
@media(max-width:700px){html{scroll-padding-top:85px}.container,.footer-inner{width:calc(100% - 40px)}.header-inner{min-height:70px;padding:12px 20px;flex-wrap:wrap;gap:0}.brand{font-size:14px}.brand>span:last-child{display:inline}.brand-mark{font-size:30px}.menu-toggle{display:flex;align-items:center;gap:9px;border:1px solid var(--line);padding:6px 10px;color:var(--ink);background:white;font-size:12px;cursor:pointer}.menu-toggle svg{fill:none;stroke:currentColor;stroke-width:1.5}.site-header nav{display:none;flex-basis:100%;padding:12px 0 8px;grid-template-columns:repeat(2,1fr);gap:1px 18px}.site-header nav[data-open]{display:grid}.site-header nav a{font-size:14px;padding:9px 0}.site-header nav a[aria-current]::after{right:auto;width:24px;bottom:3px}.hero{grid-template-columns:1fr;gap:30px;padding:32px 0 38px}.portrait-wrap{display:flex;align-items:flex-end;gap:20px}.portrait{width:150px;height:180px;flex-shrink:0}.portrait-caption{max-width:130px;font-size:12px;margin-bottom:6px}.hero h1{font-size:46px}.hero h1 br{display:none}.hero h1{max-width:450px}.hero .role{margin-bottom:24px;font-size:14px}.hero-copy>p:not(.eyebrow):not(.role){font-size:15px}.hero .eyebrow{margin-bottom:10px}.social-links{gap:20px;margin-top:22px}.home-section{padding:34px 0}.section-heading{margin-bottom:23px;gap:10px}.section-heading h2{font-size:28px}.section-note{display:none}.news-list li{grid-template-columns:1fr;gap:5px;margin-bottom:26px}.news-list p{font-size:14px}.news-list time{font-size:12px}.interests{grid-template-columns:1fr;gap:28px}.interests h3{font-size:23px}.video-grid{grid-template-columns:1fr;gap:30px}.video figcaption{font-size:13px}.education-grid{grid-template-columns:1fr;gap:30px}.education{flex-direction:row;gap:20px}.education img{width:63px;height:63px;flex-shrink:0}.education h3{font-size:20px}.education p{font-size:13px}.footer-inner{flex-direction:column;align-items:flex-start;gap:12px;padding:26px 0}.footer-inner p{font-size:12px}.site-footer{margin-top:36px}.page-heading{padding:36px 0 26px;margin-bottom:27px}.page-heading h1{font-size:39px}.page-heading p{font-size:15px}.publication-section{margin:30px 0 40px}.publication h3{font-size:22px}.publication p{font-size:13px}.publication-section>h2{font-size:26px}.project-entry h2{font-size:27px}.project-entry{padding:15px 0 32px}.project-media{grid-template-columns:1fr}.robot-entry,.media-entry{grid-template-columns:1fr;gap:20px;padding:15px 0 36px;margin-bottom:22px}.robot-copy h2{font-size:28px}.robot-copy .eyebrow{margin-bottom:10px}.robot-media>img{max-height:400px}.award{grid-template-columns:1fr;gap:7px;padding:17px 0 26px}.award-year{margin-bottom:0;font-size:14px}.award h2{font-size:25px}.award div p{font-size:14px}.cv-actions{gap:18px;flex-wrap:wrap}.cv-preview object{height:650px}.art-gallery{columns:2;column-gap:14px}.artwork{margin-bottom:14px}.art-intro p{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media print{.site-header,.site-footer,.video video,.cv-actions,.skip-link{display:none}.container{width:100%}.hero{padding-top:0}a{color:inherit}.page-heading{padding-top:0}.cv-preview object{height:auto}}

/* Compact robot galleries keep descriptions above their related media. */
.robot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 40px}
.robot-grid .robot-entry{display:flex;flex-direction:column;gap:18px;padding:0 0 30px;margin:0;min-width:0}
.robot-grid .robot-copy h2{font-size:28px;margin-bottom:14px}
.robot-grid .robot-copy .eyebrow{margin-bottom:9px}
.robot-grid .robot-copy p:last-child{margin-bottom:0}
.robot-grid .robot-media{width:100%;gap:20px;margin-top:auto}
.robot-grid .robot-media>img{width:100%;height:280px;max-height:none;object-fit:contain;background:transparent}
.robot-grid .robot-entry--feature{grid-column:1/-1;gap:24px}
.robot-entry--feature .robot-copy{max-width:900px}
.robot-grid .robot-entry--feature .robot-media{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;margin-top:0}
.robot-grid .robot-entry--feature .robot-media>img{height:310px}
.robot-grid .robot-entry--feature .robot-media--trio{grid-template-columns:1fr 1fr 2fr;align-items:center}
.robot-grid .robot-media--trio>img{height:300px}
@media(max-width:950px){
  .robot-grid{gap:28px}
  .robot-grid .robot-copy h2{font-size:25px}
  .robot-grid .robot-media>img{height:230px}
  .robot-grid .robot-entry--feature .robot-media>img{height:250px}
}
@media(max-width:700px){
  .robot-grid{grid-template-columns:1fr;gap:28px}
  .robot-grid .robot-entry{gap:17px;padding-bottom:25px}
  .robot-grid .robot-media>img{height:auto;max-height:270px}
  .robot-grid .robot-entry--feature .robot-media{gap:18px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .robot-grid .robot-entry--feature .robot-media>img{height:auto;aspect-ratio:1;max-height:230px}
  .robot-grid .robot-entry--feature .video{grid-column:1/-1}
}
