:root{--bg:#141419;--surface:#1d1d25;--ink:#f4f2f8;--muted:#aaa8b8;--accent:#b8a2ff;--line:#35343f;--max:1200px;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,video:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:#7055ba;color:white}.wrap{width:min(var(--max),calc(100% - 96px));margin:auto}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ink);color:var(--bg);padding:12px}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:30;background:rgba(20,20,25,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.header-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;line-height:1.3;font-size:16px;font-weight:650;letter-spacing:-.4px}.monogram{width:39px;height:39px;display:grid;place-items:center;background:var(--accent);color:#191323;font-weight:800;font-size:14px;border-radius:50%}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:450;letter-spacing:.09em;text-transform:uppercase;margin-top:3px}nav{display:flex;align-items:center;gap:29px;font-size:14px}nav a:hover,footer a:hover{color:var(--accent)}.nav-pdf{border:1px solid #777083;padding:9px 16px;border-radius:5px}.menu-toggle{display:none;background:none;color:var(--ink);border:1px solid var(--line);padding:8px 13px;border-radius:4px}.eyebrow{font-size:12px;color:var(--accent);font-weight:650;letter-spacing:.17em;text-transform:uppercase}.hero{padding:84px 0 62px}.hero-top{display:grid;grid-template-columns:1.5fr 1fr;gap:80px;align-items:end;margin-bottom:50px}.hero h1{font-size:clamp(45px,5.6vw,76px);line-height:1.05;letter-spacing:-3.5px;font-weight:650;margin:18px 0 0}.hero h1 span{color:var(--accent)}.hero-intro{color:var(--muted);font-size:18px;max-width:400px;margin:0 0 7px}.text-link{display:inline-flex;gap:22px;align-items:center;color:var(--ink);border-bottom:1px solid var(--accent);padding:10px 0;margin-top:18px;font-size:14px;font-weight:600}.text-link:hover{color:var(--accent)}.hero-film{position:relative;border-radius:8px;overflow:hidden;background:#1b2028;border:1px solid #42414a;display:block}.hero-film img{width:100%;height:470px;object-fit:cover;object-position:center 62%;filter:brightness(.77);transition:filter .3s,transform .6s}.hero-film:hover img{filter:brightness(.9);transform:scale(1.015)}.hero-film:after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(transparent,rgba(7,9,15,.92))}.film-label{position:absolute;top:24px;left:28px;z-index:1;background:#16161edf;border:1px solid #55525f;padding:7px 13px;border-radius:30px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.film-bottom{position:absolute;bottom:32px;left:34px;right:34px;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:20px}.film-bottom h2{font-size:36px;line-height:1.15;letter-spacing:-1px;margin:7px 0}.film-bottom p{margin:0;color:#cac7d3;font-size:15px}.circle-arrow{border:1px solid #ffffff75;border-radius:50%;width:60px;height:60px;display:grid;place-items:center;font-size:25px;flex-shrink:0;background:#ffffff0d}.skill-strip{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.section{padding:65px 0}.section-heading{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:32px}.section-heading h2,.about h2{font-size:42px;line-height:1.15;letter-spacing:-1.7px;margin:12px 0 0;font-weight:600}.section-heading p{font-size:14px;color:var(--muted);max-width:340px;margin:0}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 32px}.filters button{border:1px solid var(--line);border-radius:50px;color:var(--muted);background:transparent;font-size:12px;padding:9px 16px;cursor:pointer}.filters button:hover{color:var(--ink);border-color:#777083}.filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#191323}.projects{display:grid;grid-template-columns:1fr 1fr;gap:48px 30px}.project-card{min-width:0}.project-card[hidden]{display:none}.card-image{display:block;position:relative;overflow:hidden;border-radius:6px;background:var(--surface);aspect-ratio:16/10;border:1px solid var(--line)}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.card-image:hover img{transform:scale(1.035)}.card-image .card-index{position:absolute;top:14px;left:14px;background:#15151edb;border:1px solid #ffffff26;padding:4px 9px;border-radius:3px;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.card-image .card-go{position:absolute;right:14px;bottom:14px;width:38px;height:38px;display:grid;place-items:center;background:var(--ink);color:var(--bg);border-radius:50%;font-size:21px}.card-meta{display:flex;justify-content:space-between;gap:10px;margin-top:19px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.project-card h3{font-size:27px;letter-spacing:-.7px;font-weight:600;line-height:1.2;margin:9px 0}.project-card h3 a:hover{color:var(--accent)}.project-card p{font-size:15px;color:var(--muted);margin:0;max-width:490px}.tags{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:18px 0 0}.tags li{font-size:11px;line-height:1.5;border:1px solid var(--line);border-radius:3px;padding:4px 8px;color:#c8c5d2}.about{display:grid;grid-template-columns:.75fr 1.3fr;gap:100px;align-items:center;border-top:1px solid var(--line);margin-top:28px;padding-top:90px}.portrait{width:100%;max-width:335px;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:6px;filter:saturate(.65)}.about p{color:var(--muted);font-size:16px;margin:22px 0}.about .text-link{margin-top:0}.contact{border-top:1px solid var(--line);margin-top:55px;padding:80px 0}.contact h2{font-size:clamp(38px,5vw,66px);line-height:1.1;letter-spacing:-2px;max-width:820px;font-weight:600;margin:18px 0 28px}.contact-links{display:flex;gap:36px;flex-wrap:wrap}.contact-links a{font-size:16px;border-bottom:1px solid #706978;padding-bottom:5px;overflow-wrap:anywhere}.contact-links a:hover{color:var(--accent)}.contact p{color:var(--muted);max-width:620px;font-size:16px}footer{border-top:1px solid var(--line);padding:25px 0;color:var(--muted);font-size:12px}.footer-inner{display:flex;justify-content:space-between;gap:20px}.project-header{padding:55px 0 35px}.back{font-size:13px;color:var(--muted);display:inline-block;margin-bottom:34px}.back:hover{color:var(--accent)}.project-header h1{font-size:clamp(39px,5vw,66px);line-height:1.1;letter-spacing:-2.5px;margin:13px 0 17px;font-weight:600}.project-header .subtitle{color:var(--muted);font-size:21px;max-width:780px;margin:0}.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:30px;border-top:1px solid var(--line);padding-top:24px}.project-meta h2{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-weight:500;margin:0 0 8px}.project-meta p{font-size:14px;margin:0}.project-meta .tags{margin:0}.project-media{margin:0}.project-media video{width:100%;display:block;background:#0a0a0c;max-height:700px;border:1px solid var(--line);border-radius:6px}.project-media img{width:100%;max-height:650px;object-fit:contain;background:var(--surface);border-radius:6px}.project-media figcaption{font-size:12px;color:var(--muted);margin-top:12px}.project-body{max-width:830px;margin:55px auto 80px}.project-body .intro{font-size:23px;line-height:1.65;color:#dedbe6;margin-bottom:42px}.project-body section{margin:36px 0}.project-body h2{font-size:25px;line-height:1.3;letter-spacing:-.5px;font-weight:600;margin:0 0 14px}.project-body p{color:var(--muted);font-size:16px;margin:0}.flow-panel{background:var(--surface);border:1px solid var(--line);padding:26px;border-radius:6px;margin:35px 0}.flow-panel h2{font-size:19px}.flow{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;counter-reset:flow;padding:0;margin:24px 0 0}.flow li{counter-increment:flow;background:var(--bg);padding:19px 16px;font-size:13px;border-left:2px solid var(--accent);color:#d5d0e1}.flow li:before{content:counter(flow,decimal-leading-zero);display:block;color:var(--accent);font-size:10px;letter-spacing:.1em;margin-bottom:6px}.note{border-left:2px solid #746788;padding:16px 20px;font-size:13px!important;background:#1c1a23;margin-top:40px!important}.next-project{border-top:1px solid var(--line);padding:35px 0 65px;display:flex;justify-content:space-between;align-items:center;gap:20px}.next-project span{font-size:12px;color:var(--muted)}.next-project h2{font-size:28px;margin:8px 0;font-weight:500}.next-project:hover h2{color:var(--accent)}.noscript{color:var(--muted);font-size:13px}.status{font-size:12px;color:var(--muted);margin-bottom:20px}.error-page{padding:100px 0}.error-page h1{font-size:60px;line-height:1.1}.error-page p{color:var(--muted)}
@media(min-width:1500px){.hero h1{font-size:76px}}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.hero-top{gap:30px;grid-template-columns:1.3fr 1fr}.hero h1{font-size:52px;letter-spacing:-2px}.hero-intro{font-size:16px}.hero-film img{height:400px}.about{gap:45px}nav{gap:19px}.brand small{display:none}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}.header-inner{height:72px}.brand{font-size:13px}.monogram{width:34px;height:34px}.menu-toggle{display:block;font-size:12px}nav{position:absolute;top:72px;left:0;right:0;background:#1b1b23;padding:20px;flex-direction:column;align-items:stretch;gap:5px;border-bottom:1px solid var(--line)}nav[hidden]{display:none}nav a{padding:10px}.nav-pdf{margin-top:8px}.hero{padding:47px 0 28px}.hero-top{grid-template-columns:1fr;gap:25px;margin-bottom:30px}.hero h1{font-size:49px;letter-spacing:-2.5px}.hero-intro{max-width:100%}.hero-film img{height:330px;object-position:53% 65%}.film-label{left:17px;top:17px;font-size:9px}.film-bottom{left:18px;right:18px;bottom:20px;gap:10px}.film-bottom h2{font-size:28px;max-width:235px}.film-bottom p{font-size:12px;max-width:230px}.circle-arrow{width:44px;height:44px;font-size:21px}.skill-strip{justify-content:flex-start;gap:13px 21px;font-size:10px;padding:19px 0}.section{padding:40px 0}.section-heading{display:block}.section-heading h2,.about h2{font-size:34px}.section-heading p{margin-top:18px;max-width:100%}.filters{gap:7px;margin-bottom:25px}.filters button{padding:8px 12px;font-size:11px}.projects{grid-template-columns:1fr;gap:36px}.project-card h3{font-size:25px}.card-meta{margin-top:15px}.about{grid-template-columns:1fr;gap:30px;padding-top:45px;margin-top:0}.portrait{width:190px}.about p{font-size:15px}.contact{padding:44px 0;margin-top:15px}.contact h2{font-size:40px;letter-spacing:-1.5px}.contact-links{gap:20px}.contact-links a{font-size:14px}.footer-inner{font-size:11px;flex-wrap:wrap;gap:8px}.project-header{padding:32px 0 24px}.back{margin-bottom:26px}.project-header h1{font-size:43px;letter-spacing:-1.7px}.project-header .subtitle{font-size:18px}.project-meta{grid-template-columns:1fr;gap:20px;margin-top:23px}.project-body{margin:35px auto 50px}.project-body .intro{font-size:20px}.project-body h2{font-size:23px}.project-body p{font-size:15px}.flow-panel{padding:20px}.flow{grid-template-columns:1fr}.next-project h2{font-size:24px}.project-media figcaption{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Research profile and publication pages */
.about{align-items:start}
.about-copy p:first-child{margin-top:0}
[hidden]{display:none!important}
.hero-affiliation{display:block;font-size:13px;color:var(--accent);margin-top:17px}
.hero-links,.about-links,.publication-header-links{display:flex;gap:26px;flex-wrap:wrap}
.hero-links .text-link{font-size:13px}
.research-section{border-bottom:1px solid var(--line);padding-top:35px;padding-bottom:58px}
.research-intro{font-size:22px;color:#d8d4e0;max-width:860px;margin:0 0 38px}
.research-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.research-topics article{border-top:1px solid #5c506e;padding-top:23px}
.research-topics .eyebrow{font-size:10px}
.research-topics h3{font-size:22px;line-height:1.3;letter-spacing:-.4px;font-weight:550;margin:12px 0}
.research-topics p,.research-practice p{font-size:15px;color:var(--muted);margin:0}
.research-practice{display:flex;justify-content:space-between;align-items:center;gap:45px;margin-top:34px}
.research-practice p{max-width:740px}
.research-practice .text-link{flex-shrink:0;font-size:12px;margin-top:0}
.publication-header{padding:52px 0 46px;max-width:950px}
.publication-header h1{font-size:clamp(43px,5.5vw,72px);line-height:1.1;letter-spacing:-2.8px;font-weight:600;margin:16px 0 24px}
.publication-header>p{font-size:21px;max-width:760px;color:var(--muted);margin:0}
.publication-header-links{gap:36px}
.publication{display:grid;grid-template-columns:72px 1fr;gap:30px;border-top:1px solid var(--line);padding:44px 0 48px;scroll-margin-top:106px}
.publication-number{font-size:35px;font-weight:350;letter-spacing:-1px;color:#887b9f;line-height:1.3}
.publication-meta{display:flex;gap:20px;align-items:center;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.publication h2{font-size:29px;line-height:1.3;font-weight:550;letter-spacing:-.7px;margin:16px 0 18px;max-width:960px}
.publication h2 a:hover{color:var(--accent)}
.publication p{margin:0}
.publication .authors{font-size:14px;color:#c7c2d2;margin-bottom:19px}
.authors strong{font-weight:550;color:#eeeaf6}
.publication .venue{font-size:16px;color:var(--ink)}
.publication .publication-details{font-size:13px;color:var(--muted);margin-top:5px}
.publication .publication-summary{font-size:16px;color:var(--muted);max-width:880px;margin-top:23px}
.publication .doi{font-size:12px;color:var(--muted);margin-top:18px;overflow-wrap:anywhere}
.doi a{color:var(--accent)}
.publication-links{display:flex;gap:28px;flex-wrap:wrap}
.publication-links .text-link{font-size:13px;margin-top:16px}
.publication-end{border-top:1px solid var(--line);padding:40px 0 65px}
.publication-end h2{font-size:28px;font-weight:550;letter-spacing:-.6px}
.publication-end p{color:var(--muted);font-size:16px;max-width:780px}
.research-context{border-top:1px solid var(--line);padding-top:25px}
@media(max-width:1050px) and (min-width:851px){nav{gap:16px;font-size:12px}.brand{font-size:14px}.brand small{display:none}.nav-pdf{padding:8px 11px}}
@media(max-width:850px){.header-inner{height:72px}.brand small{display:none}.menu-toggle{display:block;font-size:12px}nav{position:absolute;top:72px;left:0;right:0;background:#1b1b23;padding:20px;flex-direction:column;align-items:stretch;gap:5px;border-bottom:1px solid var(--line)}nav a{padding:10px}.nav-pdf{margin-top:8px}.research-topics{gap:22px}.research-practice{display:block}.research-practice .text-link{margin-top:15px}.publication{grid-template-columns:42px 1fr;gap:20px}.publication h2{font-size:26px}}
@media(max-width:640px){.hero-affiliation{font-size:12px}.film-label{max-width:calc(100% - 34px);letter-spacing:.045em;font-size:8px}.research-section{padding-top:20px;padding-bottom:38px}.research-intro{font-size:19px}.research-topics{grid-template-columns:1fr;gap:24px}.research-topics h3{font-size:22px}.research-topics p,.research-practice p{font-size:15px}.publication-header{padding:32px 0}.publication-header h1{font-size:45px;letter-spacing:-1.7px}.publication-header>p{font-size:18px}.publication-header-links{gap:8px 22px}.publication-header-links .text-link{font-size:12px}.publication{grid-template-columns:1fr;gap:12px;padding:30px 0}.publication-number{font-size:23px}.publication h2{font-size:25px;letter-spacing:-.45px}.publication-meta{font-size:9px;gap:14px}.publication .authors{font-size:13px}.publication .publication-summary{font-size:15px}.publication-links{gap:8px 22px}.publication-links .text-link{font-size:12px}.publication-end h2{font-size:25px}.contact-links a{font-size:13px}}
