@charset "UTF-8";
:root{--night:#08111f;--night-2:#0d1a2d;--night-3:#13233a;--paper:#f5f7fb;--white:#fff;--ink:#111b2b;--muted:#607087;--line:#dce3ed;--line-dark:rgba(190,207,231,.18);--blue:#6f8cff;--blue-strong:#4968ee;--cyan:#52d6e7;--serif:Georgia,"Times New Roman",serif;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--shadow:0 24px 70px rgba(24,42,71,.12)}
*{box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--blue);color:#fff}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--blue-strong)}button,summary,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:5px;border-radius:3px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:550;line-height:1.15}h1,h2{letter-spacing:-.055em}h2{font-size:clamp(42px,5vw,68px)}h2 em{color:var(--blue-strong);font-family:var(--serif);font-weight:400}em{font-style:italic}ul{padding-left:19px}strong{font-weight:650}[hidden]{display:none!important}.page-width{width:min(100%,1240px);margin:0 auto;padding-inline:40px}.eyebrow{font-size:10px;font-weight:700;line-height:1.6;letter-spacing:.17em;text-transform:uppercase}.small-heading{margin-bottom:25px;color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:18px;z-index:100;padding:12px 20px;background:var(--cyan);color:var(--night)}.skip-link:focus{top:12px}
.scroll-progress{position:fixed;inset:0 0 auto;z-index:50;height:3px;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 18px rgba(82,214,231,.45)}
.site-header{position:sticky;top:0;z-index:30;color:#eaf1ff;background:rgba(8,17,31,.82);border-bottom:1px solid var(--line-dark);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background .35s ease,box-shadow .35s ease}.site-header.is-scrolled{background:rgba(8,17,31,.96);box-shadow:0 12px 40px rgba(1,7,17,.25)}.header-inner{width:min(100%,1240px);height:72px;margin:auto;padding-inline:40px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{text-decoration:none}.brand-name{position:relative;font-size:14px;font-weight:700;letter-spacing:.01em}.brand-name::after{content:"";position:absolute;left:0;bottom:-8px;width:26px;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .4s cubic-bezier(.16,1,.3,1)}.brand:hover{color:#fff}.brand:hover .brand-name::after{width:100%}.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav a{position:relative;padding:12px 0;color:#bdc9dc;font-size:11px;font-weight:550;text-decoration:none;transition:color .25s ease}.site-header nav a:not(.nav-cv)::after{content:"";position:absolute;right:0;bottom:7px;left:0;height:1px;transform:scaleX(0);background:var(--cyan);transition:transform .3s ease}.site-header nav a:hover,.site-header nav a[aria-current="location"]{color:#fff}.site-header nav a:hover::after,.site-header nav a[aria-current="location"]::after{transform:scaleX(1)}.site-header nav .nav-cv{display:flex;gap:18px;padding:8px 15px;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:7px;transition:transform .3s ease,border-color .3s ease,background .3s ease}.site-header nav .nav-cv:hover{transform:translateY(-2px);border-color:var(--cyan);background:rgba(82,214,231,.08)}
.hero{position:relative;isolation:isolate;width:100%;max-width:none;min-height:calc(100svh - 72px);padding-top:48px;padding-inline:max(40px,calc((100vw - 1160px)/2));color:#fff;background:radial-gradient(circle at var(--glow-x,74%) var(--glow-y,28%),rgba(75,105,238,.23),transparent 27%),linear-gradient(135deg,var(--night),#091526 53%,#0e1d31)}.hero::before{content:"";position:absolute;inset:0;z-index:-2;opacity:.34;background-image:linear-gradient(rgba(154,177,213,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(154,177,213,.08) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,#000,transparent 88%);animation:grid-drift 24s linear infinite}.hero::after{content:"";position:absolute;z-index:-1;width:520px;height:520px;right:-200px;bottom:-260px;border-radius:50%;border:1px solid rgba(111,140,255,.18);box-shadow:0 0 0 90px rgba(111,140,255,.025),0 0 0 180px rgba(82,214,231,.018);animation:slow-spin 32s linear infinite}.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:24px;color:#8fa1bb;animation:fade-down .8s .05s both}.location{display:flex;align-items:center;gap:10px;font-size:10px}.small-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan);animation:soft-pulse 2.2s ease-in-out infinite}.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:clamp(60px,8vw,126px);min-height:550px;padding:54px 0 46px}.hero h1{font-size:clamp(78px,10vw,142px);font-weight:620;line-height:.82;letter-spacing:-.082em}.name-line{display:block;overflow:hidden;animation:name-rise 1s cubic-bezier(.16,1,.3,1) both}.name-line:nth-child(2){padding-bottom:.08em;animation-delay:.12s}.hero h1 em{color:transparent;font-family:var(--serif);font-weight:400;background:linear-gradient(105deg,#fff 16%,#84a0ff 48%,#65dfeb 70%,#fff 92%);background-size:220% auto;background-clip:text;-webkit-background-clip:text;animation:name-shimmer 7s linear infinite}.hero-role{max-width:540px;margin-top:35px;color:#aebbd0;font-size:14px;line-height:1.8;animation:fade-up .8s .42s both}.hero-role a{color:#fff;text-decoration-color:var(--cyan)}.hero-introduction{position:relative;animation:fade-up .9s .25s both}.hero-statement{margin-bottom:23px;font-size:clamp(31px,3vw,43px);font-weight:560;line-height:1.16;letter-spacing:-.04em}.hero-statement em{position:relative;color:var(--cyan);font-family:var(--serif);font-weight:400}.hero-statement em::after{content:"";position:absolute;right:0;bottom:-7px;left:0;height:2px;transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--cyan));animation:line-grow 1.05s .8s both}.hero-introduction>p:not(.hero-statement){max-width:510px;margin-bottom:20px;color:#98a9c1;font-size:14px;line-height:1.9}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 0}.button{position:relative;display:inline-flex;min-height:51px;align-items:center;justify-content:space-between;gap:44px;overflow:hidden;margin-top:8px;padding:12px 21px;border-radius:7px;font-size:11px;font-weight:700;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.button::before{content:"";position:absolute;inset:0;transform:translateX(-125%) skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transition:transform .65s ease}.button:hover::before{transform:translateX(125%) skewX(-20deg)}.button-dark{color:#06101e;border:1px solid transparent;background:linear-gradient(100deg,#7893ff,var(--cyan));box-shadow:0 12px 34px rgba(79,112,239,.23)}.button-dark:hover{color:#06101e;transform:translateY(-3px);box-shadow:0 18px 45px rgba(79,112,239,.35)}.button span{font-size:18px;animation:arrow-bob 1.8s ease-in-out infinite}.hero-email{margin-left:22px;color:#d8e3f2;font-size:11px;font-weight:600;text-decoration:none;transition:color .25s ease,transform .25s ease}.hero-email:hover{color:var(--cyan);transform:translateX(4px)}.hero-email span{padding-left:8px}.hero-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 0;border-block:1px solid var(--line-dark);animation:fade-up .8s .65s both}.hero-footer>p{display:flex;align-items:center;gap:11px;color:#c2cde0;font-size:10px}.status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#75e1a8;box-shadow:0 0 0 0 rgba(117,225,168,.55);animation:status-pulse 2.2s ease-out infinite}.profile-links{display:flex;flex-wrap:wrap;gap:22px}.profile-links a{color:inherit;font-size:10px;font-weight:600;text-decoration:none;white-space:nowrap;transition:color .25s ease,transform .25s ease}.profile-links a:hover{color:var(--cyan);transform:translateY(-2px)}.profile-links span{display:inline-block;margin-left:3px;transition:transform .25s ease}.profile-links a:hover span{transform:translate(2px,-2px)}.signal-strip{position:relative;z-index:2;width:calc(100vw - max(40px,calc((100vw - 1160px)/2)));margin-top:20px;overflow:hidden;color:#778ba8;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.signal-track{display:flex;width:max-content;align-items:center;gap:26px;padding:10px 0 18px;animation:ticker 28s linear infinite}.signal-track span{font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.signal-track i{width:4px;height:4px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px var(--blue)}
.hero-network{position:absolute;z-index:1;top:95px;right:max(28px,calc((100vw - 1240px)/2));width:390px;height:390px;opacity:.27;pointer-events:none;animation:network-float 9s ease-in-out infinite}.network-ring,.network-core,.network-node,.network-line{position:absolute;display:block}.network-ring{inset:50%;border:1px solid rgba(116,150,255,.55);border-radius:50%}.ring-one{width:250px;height:250px;margin:-125px;animation:slow-spin 18s linear infinite}.ring-one::before{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 16px var(--cyan)}.ring-two{width:340px;height:340px;margin:-170px;border-style:dashed;animation:slow-spin 28s linear infinite reverse}.network-core{top:50%;left:50%;width:62px;height:62px;transform:translate(-50%,-50%);border:1px solid rgba(82,214,231,.7);border-radius:18px;background:rgba(82,214,231,.08);box-shadow:inset 0 0 24px rgba(82,214,231,.12),0 0 34px rgba(82,214,231,.13);animation:core-pulse 3s ease-in-out infinite}.network-node{width:12px;height:12px;border:2px solid var(--blue);border-radius:50%;background:var(--night);box-shadow:0 0 15px rgba(111,140,255,.65)}.node-one{top:16%;left:18%}.node-two{right:10%;bottom:31%}.node-three{bottom:7%;left:25%}.network-line{top:50%;left:50%;width:150px;height:1px;transform-origin:left;background:linear-gradient(90deg,rgba(82,214,231,.8),transparent)}.line-one{transform:rotate(218deg)}.line-two{width:135px;transform:rotate(28deg)}
.section{padding-top:110px;padding-bottom:105px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:52px}.section-index{margin-bottom:18px;color:var(--blue-strong)}.section-intro{max-width:390px;padding-bottom:7px;color:var(--muted);font-size:13px;line-height:1.9}.section-heading h2 em{display:inline-block;transition:transform .45s cubic-bezier(.16,1,.3,1),color .3s ease}.section-heading:hover h2 em{transform:translateX(7px);color:var(--cyan)}
.research-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.research-topic{position:relative;min-height:245px;overflow:hidden;padding:27px 27px 24px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.75);transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,border-color .4s ease}.research-topic::before{content:"";position:absolute;inset:0;transform:translateY(102%);background:linear-gradient(145deg,var(--night-2),var(--night-3));transition:transform .45s cubic-bezier(.16,1,.3,1)}.research-topic>*{position:relative;z-index:1}.research-topic:hover{transform:translateY(-8px);border-color:transparent;box-shadow:var(--shadow);color:#fff}.research-topic:hover::before{transform:translateY(0)}.topic-number{display:inline-block;color:var(--blue-strong);font:italic 16px var(--serif);transition:color .3s ease,transform .4s ease}.research-topic:hover .topic-number{color:var(--cyan);transform:rotate(-8deg) scale(1.12)}.research-topic h3{margin:47px 0 13px;font-size:22px;letter-spacing:-.025em}.research-topic p{color:var(--muted);font-size:12px;line-height:1.85;transition:color .3s ease}.research-topic:hover p{color:#afbdd0}.subsection-heading{display:flex;align-items:center;justify-content:space-between;margin:68px 0 23px}.subsection-heading h3{font-size:12px;font-weight:700}.subsection-heading>span{color:var(--muted)}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;perspective:1100px}.project{position:relative;display:flex;min-height:410px;flex-direction:column;overflow:hidden;padding:33px;border-radius:15px;transform-style:preserve-3d;transition:transform .25s ease,box-shadow .4s ease}.project::before{content:"";position:absolute;inset:-50%;transform:translateX(-58%) rotate(10deg);background:linear-gradient(115deg,transparent 41%,rgba(255,255,255,.12) 50%,transparent 59%);transition:transform .9s ease;pointer-events:none}.project:hover::before{transform:translateX(58%) rotate(10deg)}.project:hover{box-shadow:0 28px 70px rgba(16,34,62,.2)}.project>*{position:relative;z-index:1}.project-health{color:#f2f6ff;background:linear-gradient(145deg,#0f2040,#17345b 72%,#1b4964)}.project-vision{color:var(--ink);border:1px solid var(--line);background:#fff}.project-top{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:39px}.project-category{max-width:280px;font-size:9px;font-weight:700;letter-spacing:.12em;line-height:1.8;text-transform:uppercase}.project-number{color:var(--cyan);font:italic 23px var(--serif);transition:transform .4s ease}.project-vision .project-number{color:var(--blue-strong)}.project:hover .project-number{transform:rotate(8deg) scale(1.13)}.project h4{max-width:470px;margin-bottom:20px;font-size:26px;letter-spacing:-.03em}.project p{margin-bottom:24px;color:#b2c0d4;font-size:12px;line-height:1.9}.project-vision p{color:var(--muted)}.project-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;margin-bottom:25px}.project-tags span{padding:4px 9px;border:1px solid rgba(181,205,236,.24);border-radius:100px;font-size:8px}.project-vision .project-tags span{border-color:var(--line)}.project a,.project-caption{display:block;padding-top:17px;border-top:1px solid rgba(181,205,236,.2);font-size:10px;text-decoration:none}.project a{display:flex;justify-content:space-between;color:#fff}.project a:hover{color:var(--cyan)}.project a span{font-size:16px}.project-caption{color:var(--muted);border-color:var(--line)}
.projects-section .subsection-heading{margin-top:0}.publications-section{border-block:1px solid var(--line);background:#edf2f9}.publications-section .section{padding-top:100px}.bibliography-download{white-space:nowrap}.text-link{display:inline-flex;align-items:center;gap:15px;padding:8px 0;color:var(--ink);font-size:11px;font-weight:700;text-decoration:none}.text-link span{display:inline-block;font-size:17px;transition:transform .25s ease}.text-link:hover span{transform:translate(3px,-3px)}.publication-toolbar{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-bottom:20px;border-bottom:1px solid #cad4e1}.publication-filters{display:flex;flex-wrap:wrap;gap:8px}.publication-filters button{padding:8px 13px;color:var(--muted);border:1px solid transparent;border-radius:100px;background:transparent;font-size:10px;transition:color .25s ease,border-color .25s ease,background .25s ease}.publication-filters button:hover{color:var(--ink);border-color:#c8d3e1}.publication-filters button[aria-pressed="true"]{color:#fff;border-color:var(--night);background:var(--night)}.publication-filters button span{margin-left:7px;font-size:8px}.publication-count{color:var(--muted);font-size:9px;white-space:nowrap}.publication{position:relative;display:grid;grid-template-columns:80px 1fr;gap:28px;overflow:hidden;padding:34px 18px 34px 0;border-bottom:1px solid #d3dce7;transition:padding .35s ease,background .35s ease}.publication::before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;transform:scaleY(0);background:linear-gradient(var(--blue),var(--cyan));transition:transform .35s ease}.publication:hover{padding-left:20px;background:rgba(255,255,255,.58)}.publication:hover::before{transform:scaleY(1)}.publication-year{padding-top:24px;color:var(--muted);font:italic 21px var(--serif);transition:transform .3s ease,color .3s ease}.publication:hover .publication-year{color:var(--blue-strong);transform:translateY(-4px)}.publication-category{margin-bottom:9px;color:var(--blue-strong);font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.publication h3{max-width:900px;margin-bottom:12px;font-size:23px;letter-spacing:-.025em;line-height:1.35}.publication h3 a{text-decoration:none;background-image:linear-gradient(var(--blue-strong),var(--blue-strong));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .5s cubic-bezier(.16,1,.3,1)}.publication:hover h3 a{background-size:100% 1px}.authors,.journal{color:var(--muted);font-size:11px;line-height:1.8}.authors strong{color:var(--ink)}.publication-note{margin-top:4px;color:var(--muted);font-size:9px}.publication-summary{max-width:760px;margin-top:13px;color:var(--muted);font-size:11px}.publication-actions{display:flex;flex-wrap:wrap;gap:5px 28px;align-items:flex-start;margin-top:13px}.publication-actions .text-link{padding:0;font-size:10px;line-height:25px}.citation{font-size:10px}.citation summary{display:flex;gap:11px;align-items:center;line-height:25px;font-weight:700;list-style:none}.citation summary::-webkit-details-marker,.coursework summary::-webkit-details-marker{display:none}.citation summary span,.coursework summary span{font-size:16px;transition:transform .3s ease}.citation[open]{width:100%}.citation[open] summary span,.coursework[open] summary span{transform:rotate(45deg)}.citation-content{margin:13px 0 3px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}.citation pre{margin:0 0 13px;white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.copy-citation{padding:6px 10px;color:var(--ink);border:1px solid var(--line);border-radius:5px;background:#fff;font-size:10px}.in-preparation{display:grid;grid-template-columns:160px 1fr;gap:26px;margin-top:34px;padding:25px 27px;border:1px solid #d5deea;border-radius:10px;background:rgba(255,255,255,.5)}.in-preparation .eyebrow{display:block;margin-bottom:8px;color:var(--muted);font-size:8px}.status-label{color:var(--blue-strong);font-size:9px}.in-preparation h3{margin-bottom:8px;font-size:21px;letter-spacing:-.02em}.in-preparation p{color:var(--muted);font-size:10px}.in-preparation .preparation-note{margin-top:6px}
.background-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-top:35px;border-top:1px solid var(--line)}.education-entry+.education-entry{margin-top:34px;padding-top:29px;border-top:1px solid var(--line)}.date-label{margin-bottom:11px;color:var(--blue-strong);font-size:9px;font-weight:650;letter-spacing:.04em}.education-entry h4{margin-bottom:8px;font-size:22px;letter-spacing:-.02em}.institution{font-size:12px}.institution span{display:block;margin-top:2px;color:var(--muted);font-size:10px}.grade{margin-top:15px;color:var(--muted);font-size:10px}.grade strong{color:var(--ink)}.coursework{margin-top:18px}.coursework summary{display:flex;max-width:200px;align-items:center;justify-content:space-between;font-size:10px;list-style:none}.coursework ul{margin:13px 0;padding:0;list-style:none}.coursework li{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-top:1px solid var(--line);font-size:10px}.honours{margin-top:33px;padding-top:29px;border-top:1px solid var(--line)}.honours .small-heading{margin-bottom:16px}.honours ul{margin:0;color:var(--muted);font-size:11px;line-height:1.8}.honours li{margin-bottom:8px}.honours li::marker{color:var(--blue-strong)}.experience-role{margin-bottom:17px;font-size:22px;letter-spacing:-.02em}.teaching-list>div{display:flex;justify-content:space-between;gap:22px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.teaching-list time{padding-top:2px;color:var(--muted);font-size:9px;white-space:nowrap}.experience-block{margin-top:33px}.experience-block .small-heading{margin-bottom:17px}.experience-block h4{margin-bottom:13px;font-size:20px;letter-spacing:-.02em}.experience-block h4 span{margin-left:12px;color:var(--muted);font-size:9px}.experience-block p{margin-bottom:13px;color:var(--muted);font-size:11px;line-height:1.85}.experience-block p strong{color:var(--ink)}.toolkit{margin-top:55px;padding-top:28px;border-top:1px solid var(--line)}.toolkit .small-heading{margin-bottom:22px}.toolkit-grid{display:grid;grid-template-columns:.9fr 1.2fr 1.1fr;gap:16px}.toolkit-grid>div{padding:19px;border:1px solid var(--line);border-radius:9px;background:#fff;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.toolkit-grid>div:hover{transform:translateY(-5px);border-color:#becbf0;box-shadow:0 13px 35px rgba(39,61,96,.08)}.toolkit h4{margin-bottom:8px;font-size:11px}.toolkit p{color:var(--muted);font-size:10px;line-height:1.85}
.contact-section{position:relative;overflow:hidden;color:#fff;border-top:1px solid var(--line-dark);background:var(--night)}.contact-section::before{content:"";position:absolute;inset:0;opacity:.24;background-image:radial-gradient(rgba(113,143,255,.6) 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(circle at 78% 45%,#000,transparent 48%);animation:grid-drift 30s linear infinite reverse}.contact-section::after{content:"";position:absolute;top:-230px;right:-120px;width:500px;height:500px;border:1px solid rgba(82,214,231,.14);border-radius:50%;box-shadow:0 0 0 70px rgba(82,214,231,.018),0 0 0 140px rgba(111,140,255,.018);animation:slow-spin 30s linear infinite}.contact-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:85px;padding-top:85px;padding-bottom:90px}.contact-section .section-index{color:var(--cyan)}.contact-section h2 em{color:var(--cyan)}.contact-copy>p{max-width:430px;margin-bottom:24px;color:#9fb0c8;font-size:13px;line-height:1.9}.contact-email{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px;padding-bottom:14px;color:#fff;border-bottom:1px solid rgba(183,205,235,.24);font-size:clamp(18px,2vw,25px);font-weight:600;letter-spacing:-.02em;text-decoration:none;transition:padding-left .35s ease,border-color .35s ease,color .25s ease}.contact-email:hover{padding-left:10px;color:var(--cyan);border-color:var(--cyan)}.contact-email>span{transition:transform .3s ease}.contact-email:hover>span{transform:translate(4px,-4px)}.contact-section .profile-links{color:#a7b7cc}.site-footer{display:flex;width:100%;max-width:none;min-height:82px;align-items:center;justify-content:space-between;gap:20px;padding-inline:max(40px,calc((100vw - 1160px)/2));color:#8190a5;background:var(--night);font-size:9px}.site-footer a{color:#b7c4d7;text-decoration:none}.site-footer a span{margin-left:7px}.signal-strip:hover .signal-track{animation-play-state:paused}
.motion-ready .reveal{opacity:0;filter:blur(6px);transform:translate3d(0,42px,0) scale(.985);transition:opacity .75s ease,filter .75s ease,transform .88s cubic-bezier(.16,1,.3,1);transition-delay:var(--delay,0ms)}.motion-ready .reveal.reveal-left{transform:translate3d(-44px,0,0)}.motion-ready .reveal.reveal-right{transform:translate3d(44px,0,0)}.motion-ready .reveal.is-visible{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1)}
@keyframes fade-down{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}@keyframes fade-up{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes name-rise{from{opacity:0;filter:blur(9px);transform:translateY(105%)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes line-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes name-shimmer{to{background-position:-220% center}}@keyframes grid-drift{to{background-position:56px 56px}}@keyframes slow-spin{to{transform:rotate(360deg)}}@keyframes soft-pulse{0%,100%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.28)}}@keyframes core-pulse{0%,100%{transform:translate(-50%,-50%) scale(.92) rotate(0)}50%{transform:translate(-50%,-50%) scale(1.08) rotate(8deg)}}@keyframes network-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-12px,18px,0)}}@keyframes status-pulse{0%{box-shadow:0 0 0 0 rgba(117,225,168,.5)}70%{box-shadow:0 0 0 10px rgba(117,225,168,0)}100%{box-shadow:0 0 0 0 rgba(117,225,168,0)}}@keyframes arrow-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes ticker{to{transform:translateX(-50%)}}
@media(min-width:1500px){.hero-grid{min-height:620px}}
@media(max-width:1050px){.page-width,.header-inner{padding-inline:28px}.hero,.site-footer{padding-inline:28px}.site-header nav{gap:21px}.hero-grid{gap:50px}.hero-network{right:-90px}.hero-footer{align-items:flex-start;flex-direction:column;gap:14px}.background-grid{gap:52px}.contact-inner{gap:50px}}
@media(max-width:760px){html{scroll-padding-top:68px}.page-width,.header-inner,.site-footer{padding-inline:20px}.site-header{overflow:hidden}.header-inner{height:66px;gap:14px}.brand-name{font-size:12px}.brand-name::after{bottom:-6px}.site-header nav{flex:1;justify-content:flex-end;gap:15px}.site-header nav a{font-size:9px}.site-header nav a:nth-child(3){display:none}.site-header nav .nav-cv{gap:8px;padding:5px 8px}.hero{min-height:auto;padding:30px 20px 0}.hero::before{background-size:40px 40px}.hero-topline .eyebrow{max-width:230px;font-size:8px}.location{font-size:9px;white-space:nowrap}.hero-grid{grid-template-columns:1fr;gap:35px;min-height:0;padding:46px 0 43px}.hero h1{font-size:clamp(76px,19vw,112px)}.hero-role{max-width:550px;margin-top:24px;font-size:12px}.hero-introduction{max-width:600px}.hero-statement{font-size:31px}.hero-introduction>p:not(.hero-statement){font-size:12px}.hero-network{top:210px;right:-190px;width:330px;height:330px;opacity:.19}.hero-footer{padding:18px 0}.hero-footer>p{font-size:9px}.hero-footer .profile-links{gap:17px}.hero-footer .profile-links a{font-size:9px}.signal-strip{width:calc(100vw - 20px);margin-top:14px}.section{padding-top:72px;padding-bottom:70px}.section-heading{display:block;margin-bottom:34px}.section-index{margin-bottom:14px}.section-intro{max-width:500px;margin-top:22px;font-size:12px}.research-topics{grid-template-columns:1fr}.research-topic{min-height:0;padding:23px}.research-topic h3{margin-top:28px}.subsection-heading{margin-top:44px}.projects-grid{grid-template-columns:1fr}.project{min-height:0;padding:26px}.project h4{font-size:24px}.publication-toolbar{align-items:flex-start;flex-direction:column;gap:13px}.publication{grid-template-columns:45px 1fr;gap:15px;padding:27px 8px 27px 0}.publication:hover{padding-left:10px}.publication-year{padding-top:24px;font-size:16px}.publication h3{font-size:20px}.in-preparation{grid-template-columns:1fr;gap:12px;padding:21px}.background-grid{grid-template-columns:1fr;gap:43px}.experience-column{padding-top:31px;border-top:1px solid var(--line)}.toolkit{margin-top:38px}.toolkit-grid{grid-template-columns:1fr;gap:10px}.contact-inner{grid-template-columns:1fr;gap:33px;padding-top:64px;padding-bottom:65px}.contact-copy>p{font-size:12px}.site-footer{min-height:72px;font-size:8px}.site-footer p:last-child{display:none}}
@media(max-width:480px){.header-inner{padding-inline:16px}.brand-name{display:block;font-size:11px;line-height:1.05;white-space:nowrap}.site-header nav{gap:10px}.site-header nav a{font-size:8px}.site-header nav a:nth-child(3),.site-header nav a:nth-child(4){display:none}.hero{padding-inline:17px}.hero-topline{align-items:flex-start}.hero-topline .eyebrow{max-width:175px;line-height:1.8}.hero h1{font-size:clamp(64px,21vw,92px)}.hero-statement{font-size:27px}.hero-statement br{display:none}.hero-actions{align-items:flex-start;flex-direction:column}.hero-email{margin:14px 0 0}.button{gap:34px}.hero-footer .profile-links{gap:13px}.section{padding-top:63px;padding-bottom:60px}h2{font-size:clamp(38px,12vw,52px)}.publication{grid-template-columns:1fr;gap:6px}.publication-year{padding-top:0}.publication-filters button{padding:7px 9px;font-size:9px}.citation-content{padding:13px}.contact-email{gap:8px;font-size:clamp(15px,4.7vw,19px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-ready .reveal{opacity:1!important;filter:none!important;transform:none!important}.signal-track{transform:none!important}}
@media print{html{scroll-padding:0}body{color:#111;background:#fff;font-size:11px}.site-header,.skip-link,.scroll-progress,.signal-strip,.hero-network,.publication-toolbar,.publication-actions,.hero-email,.button,.site-footer,.bibliography-download,.project-tags{display:none!important}.page-width,.hero{max-width:none;padding-inline:0}.hero{min-height:0;padding-top:0;color:#111;background:#fff}.hero::before,.hero::after{display:none}.hero-grid{min-height:0;margin:20px 0;padding:0;gap:40px}.hero h1{font-size:55px}.hero h1 em{color:#111;background:none}.hero-role,.hero-introduction>p:not(.hero-statement),.hero-footer>p,.profile-links a{color:#333}.hero-statement{font-size:25px}.section{padding:30px 0}.project{min-height:auto;break-inside:avoid;color:#111;border:1px solid #ccc;background:#f3f3f3}.project p,.project a{color:#111}.publications-section{background:#fff}.publication{break-inside:avoid}.contact-section{color:#111;background:#eee}.contact-copy>p,.contact-email,.contact-section .profile-links{color:#111}.background-grid{gap:40px}}
