/* ===== DESIGN TOKENS ===== */
:root{--font-display:"Aeonik Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono","Consolas","Monaco",monospace;--color-dark:#191c1f;--color-pure-white:#fff;--color-light-surface:#f4f4f4;--color-revolut-blue:#494fdf;--color-action-blue:#4f55f1;--color-blue-text:#376cd5;--color-danger:#e23b4a;--color-deep-pink:#e61e49;--color-warning:#ec7e00;--color-yellow:#b09000;--color-teal:#00a87e;--color-light-green:#428619;--color-green-text:#006400;--color-light-blue:#007bc2;--color-brown:#936d62;--color-red-text:#8b0000;--color-mid-slate:#505a63;--color-cool-gray:#8d969e;--color-gray-tone:#c9c9cd;--color-primary:var(--color-dark);--color-primary-hover:#000;--color-cyan:var(--color-light-blue);--color-link-dark:var(--color-dark);--color-link-hover:var(--color-mid-slate);--color-link-on-dark:var(--color-light-surface);--color-ice-mist:var(--color-light-surface);--color-divider:var(--color-gray-tone);--color-black:var(--color-dark);--color-shadow-black:transparent;--color-display-ink:var(--color-dark);--color-deep-charcoal:var(--color-dark);--color-body-gray:var(--color-mid-slate);--color-mute-gray:var(--color-cool-gray);--color-inverse-white:var(--color-pure-white);--color-commerce:var(--color-teal);--color-commerce-active:#008a67;--color-error:var(--color-danger);--shadow-feather:none;--shadow-tile:none;--shadow-card:none;--shadow-hero:none;--ring-focus:0 0 0 .125rem rgba(0,0,0,.5);--ring-hover-dark:0 0 0 .125rem rgba(0,0,0,.5);--gradient-light-start:var(--color-pure-white);--gradient-light-end:var(--color-pure-white);--gradient-dark-start:var(--color-dark);--gradient-dark-end:var(--color-dark);--radius-tight:4px;--radius-compact:8px;--radius-standard:12px;--radius-figure:12px;--radius-feature:20px;--radius-tag:9999px;--radius-hero:20px;--radius-button-pill:9999px;--radius-button-lg:9999px;--radius-pill:9999px;--radius-circle:100%;--space-0:0;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:14px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:80px;--space-12:88px;--space-13:120px;--text-hero-xl:clamp(4rem,8vw,8.5rem);--text-hero-l:clamp(3rem,6vw,5rem);--text-large-display:clamp(2rem,4vw,3rem);--text-mid-display:clamp(1.75rem,3.5vw,2.5rem);--text-compact-display:clamp(1.5rem,3vw,2rem);--text-body:1rem;--text-caption:.875rem;--text-micro:.75rem;--text-large:clamp(1.125rem,1.5vw,1.25rem);--text-body-large:clamp(1.0625rem,1.2vw,1.125rem);--leading-hero:1;--leading-body:1.5;--leading-caption:1.5;--leading-button:1.4;--tracking-hero:-2.72px;--tracking-display:-.8px;--tracking-button:0;--tracking-button-emph:0;--tracking-compact-button:0;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1);--transition-fast:150ms var(--ease-out);--transition-base:180ms var(--ease-out);--transition-hover:180ms var(--ease-out);--container-max:1280px;--container-wide:1920px;--radius-card:12px}
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{font-family:var(--font-body);font-size:var(--text-body);font-weight:400;line-height:var(--leading-body);color:var(--color-deep-charcoal);background-color:var(--color-pure-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-link-dark);text-decoration:none;transition:transform 160ms var(--ease-out),color var(--transition-fast),opacity var(--transition-fast)}
a:hover{opacity:.85}
a:active{transform:scale(.97)}
a:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:var(--radius-tight)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:var(--leading-hero);color:var(--color-display-ink);letter-spacing:var(--tracking-display)}
button{font-family:var(--font-body);cursor:pointer;border:none;background:none;color:inherit}
button:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:var(--radius-tight)}
ul,ol{list-style:none}
input,select{font-family:var(--font-body);font-size:1rem;color:var(--color-deep-charcoal)}
.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-5)}
@media(min-width:768px){.container{padding-inline:var(--space-11)}}
@media(min-width:1280px){.container{padding-inline:var(--space-12)}}
.container-wide{max-width:var(--container-wide)}
.section{padding-block:var(--space-13)}
@media(max-width:767px){.section{padding-block:var(--space-11)}}
.dark-surface{background:var(--color-black);color:var(--color-inverse-white)}
.dark-surface h1,.dark-surface h2,.dark-surface h3,.dark-surface h4,.dark-surface h5,.dark-surface h6,.dark-surface p{color:var(--color-inverse-white)}
.gradient-dark{background:linear-gradient(180deg,var(--gradient-dark-start),var(--gradient-dark-end))}
.blue-surface{background:var(--color-primary);color:var(--color-inverse-white)}
.blue-surface a{color:var(--color-inverse-white)}
.blue-surface a:hover{color:#fffc}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}
.material-symbols-outlined[data-weight=fill]{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-size:20px;font-weight:500;line-height:var(--leading-button);letter-spacing:var(--tracking-button);cursor:pointer;text-decoration:none;white-space:nowrap;border-radius:var(--radius-pill);transition:transform 160ms var(--ease-out),filter 200ms ease,opacity var(--transition-base),background var(--transition-base),border var(--transition-base)}
.btn:focus-visible{outline:none;box-shadow:var(--ring-focus)}
.btn--primary{background:var(--color-dark);color:var(--color-pure-white);border:2px solid transparent;padding:14px 32px}
.btn--primary:hover{opacity:.85}
.btn--primary:active{transform:scale(.97);filter:blur(1px);opacity:.9}
.btn--secondary{background:var(--color-light-surface);color:var(--color-dark);border:2px solid transparent;padding:14px 34px}
.btn--secondary:hover{opacity:.85}
.btn--secondary:active{transform:scale(.97);filter:blur(1px);opacity:.9}
.btn--commerce{background:transparent;color:var(--color-dark);border:2px solid var(--color-dark);padding:14px 32px}
.btn--commerce:hover{background:rgba(25,28,31,.05)}
.btn--commerce:active{transform:scale(.97);filter:blur(1px);background:rgba(25,28,31,.1)}
.btn--ghost{background:rgba(244,244,244,.1);color:var(--color-pure-white);border:2px solid var(--color-pure-white);padding:14px 32px}
.btn--ghost:hover{background:rgba(244,244,244,.2)}
.btn--ghost:active{transform:scale(.97);filter:blur(1px);background:rgba(244,244,244,.3)}

/* ===== BADGE ===== */
.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-family:var(--font-body);font-size:var(--text-micro);font-weight:500;border-radius:var(--radius-compact);white-space:nowrap}
.badge--default{background:var(--color-ice-mist);color:var(--color-body-gray)}
.badge--accent{background:rgba(73,79,223,.1);color:var(--color-revolut-blue)}
.badge--orange{background:rgba(236,126,0,.1);color:var(--color-warning)}

/* ===== HEADER ===== */
.header{position:fixed;top:0;left:0;width:100%;z-index:100;background:var(--color-black);height:80px;transition:transform .3s var(--ease-out),background .3s var(--ease-out)}
.header--hidden{transform:translateY(-100%)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:100%}
.header__logo{flex-shrink:0}
.header__logo-text{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--color-inverse-white);transition:color var(--transition-fast)}
.header__logo:hover .header__logo-text{color:var(--color-cyan)}
.header__nav{display:none}
.header__nav-list{display:flex;gap:var(--space-5)}
.header__nav-link{display:flex;align-items:center;padding:var(--space-2) 0;font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--color-inverse-white);transition:color var(--transition-fast),opacity var(--transition-fast);position:relative}
.header__nav-link:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--color-pure-white);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease-out)}
.header__nav-item:hover .header__nav-link:after,.header__nav-link--active:after{transform:scaleX(1);transform-origin:left}
.header__nav-link:hover,.header__nav-link--active{color:var(--color-pure-white)}
.header__nav-arrow{display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:6px;transition:transform .2s var(--ease-out)}
.header__nav-item--has-children:hover .header__nav-arrow{transform:translateY(2px) rotate(45deg)}
.header__nav-item--has-children{position:relative}
.header__dropdown-wrapper{position:absolute;top:100%;left:-20px;padding-top:24px;opacity:0;visibility:hidden;transform:scale(.95) translateY(10px);transform-origin:top center;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),visibility .2s;z-index:1000}
.header__dropdown{background:var(--color-black);border:1px solid rgba(255,255,255,.1);min-width:200px;padding:var(--space-2);display:flex;flex-direction:column;gap:2px}
.header__nav-item--has-children:hover .header__dropdown-wrapper{opacity:1;visibility:visible;transform:scale(1) translateY(0)}
.header__dropdown-link{display:block;padding:var(--space-2) var(--space-3);font-family:var(--font-display);font-size:14px;font-weight:500;color:#ffffffb3;transition:all var(--transition-fast)}
.header__dropdown-link:hover{background:#ffffff0d;color:var(--color-inverse-white);padding-left:var(--space-4)}
.header__actions{display:none}
.header__cv-btn{display:inline-flex;align-items:center;padding:10px 24px;font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--color-dark);background:var(--color-pure-white);border-radius:9999px;transition:opacity var(--transition-fast),transform 160ms var(--ease-out),filter var(--transition-fast);white-space:nowrap}
.header__cv-btn:hover{opacity:.9}
.header__cv-btn:active{transform:scale(.97);filter:blur(1px)}
.header__menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px}
.header__menu-icon,.header__menu-icon:before,.header__menu-icon:after{display:block;width:24px;height:2px;background:var(--color-inverse-white);border-radius:2px;transition:transform var(--transition-base),opacity var(--transition-base)}
.header__menu-icon:before,.header__menu-icon:after{content:"";position:absolute}
.header__menu-icon:before{transform:translateY(-8px)}
.header__menu-icon:after{transform:translateY(8px)}
.header__menu-btn[aria-expanded=true] .header__menu-icon{background:transparent}
.header__menu-btn[aria-expanded=true] .header__menu-icon:before{transform:translateY(0) rotate(45deg)}
.header__menu-btn[aria-expanded=true] .header__menu-icon:after{transform:translateY(0) rotate(-45deg)}
.header__mobile-panel{display:none;position:fixed;inset:80px 0 0;background:var(--color-black);padding:var(--space-8);overflow-y:auto;z-index:99}
.header__mobile-panel[aria-hidden=false]{display:block}
.header__mobile-list{display:flex;flex-direction:column;gap:var(--space-2)}
.header__mobile-link{display:block;padding:var(--space-4) var(--space-5);font-family:var(--font-display);font-size:24px;font-weight:500;color:var(--color-inverse-white);transition:color var(--transition-fast),background var(--transition-fast)}
.header__mobile-link:hover,.header__mobile-link.active{color:var(--color-cyan);background:#ffffff0d}
.header__mobile-link--child{padding-left:var(--space-9);font-size:20px;opacity:.8}
@media(min-width:1200px){.header__nav,.header__actions{display:flex}.header__menu-btn{display:none}.header__mobile-panel{display:none!important}}

/* ===== HERO ===== */
.hero{margin-top:calc(var(--space-13) * 1.5);margin-bottom:calc(var(--space-13) * 1.5);display:grid;grid-template-columns:1fr;gap:var(--space-13);align-items:center}
@media(min-width:1024px){.hero{grid-template-columns:1.1fr .9fr;gap:var(--space-13)}}
.hero__content{display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.hero__name{font-family:var(--font-display);font-size:var(--text-hero-xl);font-weight:500;line-height:.95;letter-spacing:-.04em;color:var(--color-dark);word-break:break-word;hyphens:auto}
.hero__subtitle{font-family:var(--font-body);font-size:clamp(1.125rem,1.5vw,1.25rem);line-height:1.5;color:var(--color-mid-slate);margin-top:var(--space-6);max-width:90%}
.hero__actions{margin-top:var(--space-9);display:flex;justify-content:flex-start;gap:var(--space-5)}
.hero__visual-container{position:relative;width:100%;aspect-ratio:1/1;max-width:500px;margin:0 auto}
.hero__visual-shadow{position:absolute;inset:24px -24px -24px 24px;background:var(--color-dark);border-radius:var(--radius-hero);z-index:0;opacity:0}
.hero__visual{position:relative;width:100%;height:100%;border-radius:var(--radius-hero);overflow:hidden;z-index:1;border:3px solid var(--color-dark)}
.hero__image{width:100%;height:100%;display:block;object-fit:cover}
.hero__links{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-7)}
.hero__ext-link{font-size:var(--text-caption);color:var(--color-mid-slate);transition:color var(--transition-fast)}
.hero__ext-link:hover{color:var(--color-dark)}

/* ===== STATS ===== */
.stats{margin-inline:auto;margin-bottom:var(--space-13);width:100%;display:flex;justify-content:center}
.stats__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);width:100%}
@media(min-width:768px){.stats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.stats__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stats__card{border-radius:var(--radius-hero);padding:var(--space-9);display:flex;flex-direction:column;justify-content:space-between;min-height:200px}
@media(min-width:768px){.stats__card--wide{grid-column:span 2}}
.stats__card--light{background:var(--color-light-surface);color:var(--color-dark)}
.stats__card--light .stats__label{color:var(--color-mid-slate)}
.stats__card--dark{background:var(--color-dark);color:var(--color-pure-white)}
.stats__card--dark .stats__label{color:var(--color-cool-gray)}
.stats__label{font-family:var(--font-body);font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-4)}
.stats__value{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;display:flex;align-items:baseline;line-height:1}
@media(min-width:1024px){.stats__card--wide .stats__value{font-size:var(--text-hero-l)}}

/* ===== BIO SECTION (homepage) ===== */
.bio{margin-bottom:var(--space-13);display:grid;grid-template-columns:1fr;gap:var(--space-11)}
@media(min-width:1024px){.bio{grid-template-columns:1fr 1fr}}
.bio__content{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.bio__title{font-size:var(--text-large-display);color:var(--color-dark);margin-bottom:var(--space-7)}
.bio__text{font-size:var(--text-body-large);color:var(--color-mid-slate);margin-bottom:var(--space-9)}
.bio__award{background:var(--color-light-surface);border-radius:var(--radius-hero);padding:var(--space-9);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.bio__award-icon-bg{position:absolute;top:0;right:0;padding:var(--space-7);opacity:.1}
.bio__award-icon-bg span{font-size:120px}
.bio__award-label{font-size:var(--text-body);color:var(--color-mid-slate);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-3)}
.bio__award-title{font-size:var(--text-compact-display);color:var(--color-dark);margin-bottom:var(--space-5)}
.bio__award-desc{font-size:var(--text-body);color:var(--color-dark)}

/* ===== RESEARCH (homepage) ===== */
.research{margin-bottom:var(--space-13)}
.research__title{font-size:var(--text-large-display);color:var(--color-dark);margin-bottom:var(--space-9)}
.research__grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:768px){.research__grid{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(200px,auto))}}
.research__card{border-radius:var(--radius-hero);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;background:var(--color-dark);color:var(--color-pure-white)}
.research__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3;mix-blend-mode:luminosity;transition:transform .7s}
.research__card:hover .research__bg{transform:scale(1.05)}
.research__content-wrapper{position:relative;z-index:10;display:flex;flex-direction:column;justify-content:space-between;height:100%}
.research__card--main .research__content-wrapper{padding:var(--space-9)}
.research__card--secondary .research__content-wrapper,.research__card--small .research__content-wrapper{padding:var(--space-7)}
.research__card--main{grid-column:1/-1;min-height:400px}
@media(min-width:768px){.research__card--main{grid-column:span 2;grid-row:span 2}.research__card--secondary{grid-column:span 2}}
.research__icon-large{font-size:48px;margin-bottom:var(--space-7);color:var(--color-pure-white)}
.research__main-heading{font-size:clamp(2rem,5vw,4rem);line-height:1;letter-spacing:var(--tracking-hero);margin-bottom:var(--space-5);color:var(--color-pure-white)}
.research__main-text{max-width:80%}
.research__icon{font-size:32px;color:var(--color-pure-white);margin-bottom:var(--space-5)}
.research__card-heading{font-size:var(--text-compact-display);color:var(--color-pure-white)}
.research__card-text{color:var(--color-cool-gray);margin-top:var(--space-9)}
.research__card--small .research__content-wrapper{justify-content:center}
.research__small-heading{font-size:20px;color:var(--color-pure-white)}

/* ===== FILTER BAR ===== */
.filter-bar{padding:var(--space-5);background:#f5f7fa4d;border-radius:var(--radius-hero);margin-bottom:var(--space-8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.filter-bar__controls{display:grid;grid-template-columns:1fr;gap:var(--space-4)}
@media(min-width:640px){.filter-bar__controls{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.filter-bar__control{display:flex;flex-direction:column;gap:var(--space-1)}
.filter-bar__label{font-family:var(--font-body);font-size:var(--text-micro);font-weight:500;color:var(--color-body-gray)}
.filter-bar__input,.filter-bar__select{padding:var(--space-2) var(--space-3);font-size:var(--text-caption);color:var(--color-deep-charcoal);background:var(--color-pure-white);border:1px solid var(--color-mute-gray);border-radius:var(--radius-tight);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}
.filter-bar__input:focus,.filter-bar__select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--ring-focus)}
.filter-bar__input::placeholder{color:#0009}
.filter-bar__footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-divider)}
.filter-bar__count{font-size:var(--text-caption);color:var(--color-body-gray)}
.filter-bar__reset{font-size:var(--text-caption);font-weight:500;color:var(--color-body-gray);padding:var(--space-1) var(--space-3);border-radius:var(--radius-compact);transition:color var(--transition-fast),background var(--transition-fast)}
.filter-bar__reset:hover{color:var(--color-primary)}
.filter-bar__reset:focus-visible{outline:none;box-shadow:var(--ring-focus)}

/* ===== PUBLICATIONS ===== */
.pub-card{display:block;padding:var(--space-7);background:var(--color-pure-white);border-radius:var(--radius-card);border:1px solid var(--color-gray-tone);text-decoration:none;color:inherit;transition:border-color var(--transition-fast),transform var(--transition-fast)}
a.pub-card:hover{border-color:var(--color-dark);transform:translateY(-2px)}
.pub-card--featured{border-color:var(--color-dark);background:var(--color-light-surface)}
.pub-card__meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}
.pub-card__type{font-family:var(--font-body);font-size:var(--text-caption);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-dark)}
.pub-card__year{font-family:var(--font-display);font-size:var(--text-body);color:var(--color-mid-slate)}
.pub-card__title{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;line-height:var(--leading-body);color:var(--color-dark);margin-bottom:var(--space-3)}
.pub-card__authors{font-size:var(--text-body);color:var(--color-mid-slate);margin-bottom:var(--space-2)}
.pub-card__venue{font-size:var(--text-body);color:var(--color-dark);font-weight:500;margin-bottom:var(--space-5)}
.pub-card__keywords{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.pub-hero{padding-block:var(--space-13)}
.pub-hero__title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark)}
.pub-hero__divider{width:96px;height:4px;background:var(--color-dark);margin-top:var(--space-3)}
.pub-main{padding-bottom:var(--space-13)}
.pub-grid{display:grid;grid-template-columns:1fr;gap:var(--space-9)}
@media(min-width:1024px){.pub-grid{grid-template-columns:8fr 4fr}}
.pub-content{display:flex;flex-direction:column;gap:var(--space-13)}
.pub-section-title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-7);border-bottom:2px solid var(--color-dark);display:inline-block;padding-bottom:var(--space-2)}
.pub-featured-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:768px){.pub-featured-grid{grid-template-columns:repeat(2,1fr)}}
.pub-filter{margin-bottom:var(--space-7)}
.pub-list{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.pub-sidebar{align-self:start;position:sticky;top:120px}
.pub-sidebar-card{background:var(--color-light-surface);padding:var(--space-9);border-radius:var(--radius-card)}
.pub-sidebar-title{font-family:var(--font-display);font-size:var(--text-compact-display);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-7)}
.pub-sidebar-stats{display:flex;flex-direction:column;gap:var(--space-5)}
.pub-stat{display:flex;align-items:center;gap:var(--space-5)}
.pub-stat-icon{width:48px;height:48px;border-radius:50%;background:var(--color-dark);display:flex;align-items:center;justify-content:center;color:var(--color-pure-white)}
.pub-stat-content{display:flex;flex-direction:column}
.pub-stat-label{font-family:var(--font-body);font-size:var(--text-body);font-weight:600;color:var(--color-mid-slate);text-transform:uppercase;letter-spacing:.1em}
.pub-stat-value{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark)}
.pub-sidebar-divider{border:none;border-top:1px solid var(--color-gray-tone);margin:0}
.pub-empty{text-align:center;padding:var(--space-13) var(--space-6);color:var(--color-mid-slate)}
.result-count{margin-bottom:var(--space-5);font-size:var(--text-caption);color:var(--color-cool-gray)}

/* ===== PROJECTS ===== */
.proj-hero{padding-block:var(--space-13)}
.proj-title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark);letter-spacing:-2.72px;line-height:1;margin-bottom:var(--space-5)}
.proj-divider{width:80px;height:4px;background:var(--color-dark)}
.proj-main{padding-bottom:var(--space-13)}
.proj-list{display:flex;flex-direction:column;gap:var(--space-7)}
.proj-row{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-7);border:1px solid var(--color-dark);border-radius:var(--radius-card)}
@media(min-width:768px){.proj-row{flex-direction:row;gap:var(--space-11)}}
.proj-row__meta{display:flex;flex-direction:column;gap:var(--space-2);min-width:150px}
.proj-row__duration{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark)}
.proj-row__status{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--color-mid-slate)}
.proj-row__content{display:flex;flex-direction:column;gap:var(--space-3)}
.proj-row__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-2)}
.proj-row__agency,.proj-row__role{font-size:var(--text-body);color:var(--color-dark)}
.proj-row__desc{margin-top:var(--space-3);font-size:var(--text-body);color:var(--color-mid-slate)}

/* ===== STUDENTS ===== */
.students-hero{margin-top:var(--space-13);margin-bottom:var(--space-11)}
.students-hero__title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark)}
.students-hero__divider{width:96px;height:4px;background:var(--color-dark);margin-top:var(--space-3)}
.students-main{margin-bottom:var(--space-13)}
.students-group{margin-bottom:var(--space-13)}
.students-group__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-7);border-bottom:2px solid var(--color-dark);display:inline-block;padding-bottom:var(--space-2)}
.students-grid{display:grid;grid-template-columns:1fr;gap:var(--space-7)}
@media(min-width:768px){.students-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.students-grid{grid-template-columns:repeat(3,1fr)}}

/* ===== STUDENT CARD ===== */
.student-card{padding:var(--space-7);background:var(--color-pure-white);border-radius:var(--radius-card);border:1px solid var(--color-gray-tone);transition:border-color var(--transition-fast),transform var(--transition-fast);display:flex;flex-direction:column}
.student-card:hover{border-color:var(--color-dark);transform:translateY(-2px)}
.student-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}
.student-card__badges{display:flex;gap:var(--space-1)}
.student-card__year{font-family:var(--font-display);font-size:var(--text-body);color:var(--color-mid-slate)}
.student-card__name{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-2)}
.student-card__topic{font-size:var(--text-body);color:var(--color-mid-slate);line-height:var(--leading-body);margin-bottom:var(--space-4);flex-grow:1}
.student-card__meta{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-caption);color:var(--color-cool-gray);border-top:1px solid var(--color-gray-tone);padding-top:var(--space-3)}

/* ===== AWARDS ===== */
.awards-hero{padding-block:var(--space-13)}
.awards-title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark);letter-spacing:-2.72px;line-height:1;margin-bottom:var(--space-5)}
.awards-divider{width:80px;height:4px;background:var(--color-dark);margin-bottom:var(--space-11)}
.awards-main{padding-bottom:var(--space-13);display:flex;flex-direction:column;gap:var(--space-13)}
.award-featured{padding:var(--space-9);background:var(--color-dark);color:var(--color-pure-white);border-radius:var(--radius-card)}
.award-featured__title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;line-height:1.1;margin-bottom:var(--space-3);color:var(--color-pure-white)}
.award-featured__org{font-family:var(--font-display);font-size:var(--text-large);color:var(--color-gray-tone);margin-bottom:var(--space-5)}
.award-featured__desc{font-size:var(--text-body-large);max-width:800px}
.awards-list{display:flex;flex-direction:column}
.award-row{display:flex;flex-direction:column;padding-block:var(--space-7);border-bottom:1px solid var(--color-gray-tone);gap:var(--space-3)}
@media(min-width:768px){.award-row{flex-direction:row;gap:var(--space-11)}}
.award-row__year{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark);min-width:120px}
.award-row__content{display:flex;flex-direction:column;gap:var(--space-1)}
.award-row__title{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark)}
.award-row__org{font-size:var(--text-body);color:var(--color-mid-slate)}

/* ===== ACHIEVEMENTS ===== */
.achievements{margin-top:var(--space-13);margin-bottom:var(--space-13)}
.achievements__header{margin-bottom:var(--space-11)}
.achievements__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark)}
.achievements__divider{width:96px;height:4px;background:var(--color-dark);margin-top:var(--space-3)}
.achievements__list{display:flex;flex-direction:column;gap:var(--space-9)}

/* ===== MILESTONE ===== */
.milestone{display:flex;flex-direction:column;gap:var(--space-5)}
@media(min-width:768px){.milestone{flex-direction:row;align-items:flex-start;gap:var(--space-9)}}
.milestone__sidebar{display:none}
@media(min-width:768px){.milestone__sidebar{display:flex;flex-direction:column;width:25%;text-align:right;padding-top:var(--space-2);padding-right:var(--space-7);border-right:2px solid var(--color-gray-tone);min-height:100px}}
.milestone__category{font-family:var(--font-body);font-size:var(--text-body);font-weight:600;color:var(--color-mid-slate);text-transform:uppercase;letter-spacing:.1em}
.milestone__year{font-family:var(--font-display);font-size:var(--text-body);color:var(--color-cool-gray);margin-top:var(--space-2)}
.milestone__card{flex:1;background:var(--color-pure-white);padding:var(--space-7);border:1px solid var(--color-gray-tone);border-radius:var(--radius-card);position:relative;overflow:hidden}
.milestone__indicator{position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--color-dark)}
.milestone__content{margin-left:var(--space-3)}
.milestone__title{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-3)}
.milestone__desc{font-family:var(--font-body);color:var(--color-mid-slate)}

/* ===== COLLABORATORS ===== */
.collab-hero{margin-top:var(--space-13);margin-bottom:var(--space-11)}
.collab-hero__title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark)}
.collab-hero__divider{width:96px;height:4px;background:var(--color-dark);margin-top:var(--space-3)}
.collab-main{margin-bottom:var(--space-13)}
.collab-group{margin-bottom:var(--space-13)}
.collab-group__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-7);border-bottom:2px solid var(--color-dark);display:inline-block;padding-bottom:var(--space-2)}
.collab-grid{display:grid;grid-template-columns:1fr;gap:var(--space-7)}
@media(min-width:640px){.collab-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.collab-grid{grid-template-columns:repeat(3,1fr)}}

/* ===== COLLABORATOR CARD ===== */
.collab-card{display:flex;flex-direction:column;padding:var(--space-7);background:var(--color-pure-white);border-radius:var(--radius-card);border:1px solid var(--color-gray-tone);text-decoration:none;color:inherit;transition:border-color var(--transition-fast),transform var(--transition-fast)}
a.collab-card:hover{border-color:var(--color-dark);transform:translateY(-2px)}
.collab-card__name{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-2)}
.collab-card__institution{font-size:var(--text-body);color:var(--color-mid-slate);margin-bottom:var(--space-5);flex-grow:1}
.collab-card__meta{display:flex;gap:var(--space-2);flex-wrap:wrap;padding-top:var(--space-3);border-top:1px solid var(--color-gray-tone)}
.collab-card__tag{font-size:var(--text-caption);color:var(--color-cool-gray)}

/* ===== RESEARCH (page) ===== */
.research-hero{padding-block:var(--space-13)}
.research-title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark);letter-spacing:-2.72px;line-height:1;margin-bottom:var(--space-5)}
.research-divider{width:80px;height:4px;background:var(--color-dark)}
.research-main{padding-bottom:var(--space-13)}
.research-grid{display:grid;grid-template-columns:1fr;gap:var(--space-7);margin-bottom:var(--space-11)}
@media(min-width:768px){.research-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.research-grid{grid-template-columns:repeat(3,1fr)}}
.research-card{border:1px solid var(--color-dark);padding:var(--space-7);border-radius:var(--radius-card);background:var(--color-pure-white);display:flex;flex-direction:column;gap:var(--space-5)}
.research-card--primary{background:var(--color-dark);color:var(--color-pure-white)}
.research-card--primary .research-card__title{color:var(--color-pure-white)}
.research-card--primary .research-card__desc{color:var(--color-gray-tone)}
.research-card--primary .tag{border-color:var(--color-gray-tone);color:var(--color-pure-white)}
.research-card__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;color:var(--color-dark)}
.research-card__desc{font-size:var(--text-body);color:var(--color-mid-slate);flex-grow:1}
.research-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tag{font-size:var(--text-caption);font-weight:500;padding:var(--space-1) var(--space-3);border:1px solid var(--color-dark);border-radius:var(--radius-pill);color:var(--color-dark)}
.research-cta{display:flex;gap:var(--space-5)}

/* ===== PRESENTATIONS ===== */
.presentations{padding-top:var(--space-13);padding-bottom:var(--space-13)}
.presentations__header{margin-bottom:var(--space-12)}
.presentations__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;line-height:1.1;margin-bottom:var(--space-4);color:var(--color-dark)}
.presentations__subtitle{font-size:var(--text-large);color:var(--color-mid-slate);max-width:600px;margin-bottom:var(--space-6)}
.presentations__line{width:96px;height:4px;background:var(--color-dark)}
.presentations__list{display:flex;flex-direction:column;gap:var(--space-10)}
.pres-item{display:grid;grid-template-columns:80px 1fr;gap:var(--space-8);padding-bottom:var(--space-10);border-bottom:1px solid var(--color-divider)}
@media(max-width:640px){.pres-item{grid-template-columns:1fr;gap:var(--space-2)}}
.pres-item__year{font-family:var(--font-display);font-size:var(--text-large);font-weight:600;color:var(--color-dark);opacity:.4}
.pres-item__title{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;margin-bottom:var(--space-3);line-height:1.3;color:var(--color-dark)}
.pres-item__venue{font-size:var(--text-body);color:var(--color-mid-slate);margin-bottom:var(--space-6);line-height:1.6}
.pres-item__action{display:flex}

/* ===== MEMBERSHIPS ===== */
.memberships{padding-top:var(--space-13);padding-bottom:var(--space-13)}
.memberships__header{margin-bottom:var(--space-12)}
.memberships__title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;line-height:1.1;margin-bottom:var(--space-4);color:var(--color-dark)}
.memberships__subtitle{font-size:var(--text-large);color:var(--color-mid-slate);max-width:600px;margin-bottom:var(--space-6)}
.memberships__line{width:96px;height:4px;background:var(--color-dark)}
.memberships__grid{display:grid;grid-template-columns:1fr;gap:var(--space-12)}
@media(min-width:1024px){.memberships__grid{grid-template-columns:1fr 1fr;align-items:start}}
.memberships__section-title{font-family:var(--font-display);font-size:var(--text-large-display);font-weight:500;margin-bottom:var(--space-4);color:var(--color-dark)}
.memberships__section-desc{font-size:var(--text-body);color:var(--color-mid-slate);margin-bottom:var(--space-8)}
.memberships__list{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.memberships__item{padding:var(--space-3) var(--space-4);background:var(--color-light-surface);border-radius:var(--radius-tight);font-size:var(--text-caption);color:var(--color-dark);font-weight:500;border-left:2px solid var(--color-dark);line-height:1.4}

/* ===== CONTACT ===== */
.contact-page{padding-block:var(--space-13)}
.contact-main{display:grid;grid-template-columns:1fr;gap:var(--space-9)}
@media(min-width:768px){.contact-main{grid-template-columns:1fr 1fr}}
.contact-info h2{font-size:var(--text-compact-display);margin-bottom:var(--space-6)}
.contact-detail{margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-gray-tone)}
.contact-detail:last-child{border-bottom:none}
.contact-detail__label{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.05em;color:var(--color-mid-slate);margin-bottom:var(--space-1)}
.contact-detail__value{font-size:var(--text-body);color:var(--color-dark)}
.contact-links{display:flex;flex-direction:column;gap:var(--space-4)}
.contact-link{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-light-surface);border-radius:var(--radius-pill);font-size:var(--text-body);color:var(--color-dark);transition:background var(--transition-fast)}
.contact-link:hover{background:var(--color-gray-tone)}

/* ===== CTA SECTION ===== */
.cta{padding-block:var(--space-13)}
.cta__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-6)}
.cta__title{font-size:var(--text-large-display);color:var(--color-inverse-white)}
.cta__desc{font-size:var(--text-body);color:var(--color-cool-gray);max-width:480px}
.cta__actions{display:flex;gap:var(--space-5);align-items:center}
.cta__email{font-size:var(--text-body);color:var(--color-inverse-white)!important;border-bottom:1px solid var(--color-cool-gray);padding-bottom:2px}

/* ===== SECTION ===== */
.section-title{font-family:var(--font-display);font-size:var(--text-hero-l);font-weight:500;color:var(--color-dark);letter-spacing:-2.72px;line-height:1;margin-bottom:var(--space-5)}
.section-divider{width:80px;height:4px;background:var(--color-dark);margin-bottom:var(--space-7)}
.section-subtitle{font-size:var(--text-large);color:var(--color-mid-slate);max-width:800px;margin-bottom:var(--space-9);line-height:var(--leading-body)}
.cv-main{display:grid;grid-template-columns:1fr;gap:var(--space-9);padding-bottom:var(--space-13)}
@media(min-width:768px){.cv-main{grid-template-columns:280px 1fr}}
.cv-sidebar{order:-1}
.contact-box{background:var(--color-light-surface);border-radius:var(--radius-hero);padding:var(--space-7)}
.contact-box__title{font-size:var(--text-compact-display);margin-bottom:var(--space-7)}
.contact-box__item{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-gray-tone)}
.contact-box__item:last-child{border-bottom:none}
.contact-box__item strong{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.05em;color:var(--color-mid-slate)}
.contact-box__item span{font-size:var(--text-body);color:var(--color-dark)}
.cv-section{margin-bottom:var(--space-9)}
.cv-section>h2:first-child{font-size:var(--text-mid-display);margin-bottom:var(--space-7);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-dark)}
.bio-text p{margin-bottom:var(--space-5);font-size:var(--text-body);color:var(--color-mid-slate);line-height:var(--leading-body)}

/* ===== TIMELINE ===== */
.timeline{position:relative}
.timeline__line{position:absolute;left:11px;top:var(--space-4);bottom:0;width:2px;background:var(--color-gray-tone)}
.timeline__list{display:flex;flex-direction:column}
.timeline__item{position:relative;padding-bottom:var(--space-9);padding-left:var(--space-10)}
.timeline__item:last-child{padding-bottom:0}
.timeline__marker{position:absolute;left:0;top:4px;width:24px;height:24px;border-radius:50%;background:var(--color-dark);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px var(--color-pure-white);z-index:10}
.timeline__marker-inner{width:8px;height:8px;background:var(--color-pure-white);border-radius:50%}
.timeline__content{flex:1;min-width:0}
.timeline__title{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark);margin-bottom:var(--space-2)}
.timeline__subtitle{font-family:var(--font-body);font-size:var(--text-body);font-weight:600;color:var(--color-mid-slate);margin-bottom:var(--space-4)}
.timeline__detail{font-family:var(--font-body);font-size:var(--text-body);color:var(--color-cool-gray);line-height:var(--leading-body);max-width:640px}
.timeline__badge{margin-top:var(--space-3)}

/* ===== AWARDS GRID (homepage) ===== */
.awards-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:768px){.awards-grid{grid-template-columns:repeat(2,1fr)}}
.awards-cta{text-align:center;margin-top:var(--space-9)}
.award-card{background:var(--color-light-surface);border-radius:var(--radius-card);padding:var(--space-7);border:1px solid var(--color-gray-tone);transition:border-color var(--transition-fast),transform var(--transition-fast);display:flex;flex-direction:column;gap:var(--space-5)}
.award-card:hover{border-color:var(--color-dark);transform:translateY(-2px)}
.award-card--featured{border-color:var(--color-dark)}
.award-card__icon{width:64px;height:64px;border-radius:50%;background:var(--color-dark);display:flex;align-items:center;justify-content:center;color:var(--color-pure-white)}
.award-card__icon span{font-size:32px}
.award-card__content{display:flex;flex-direction:column;gap:var(--space-2);flex-grow:1}
.award-card__title{font-family:var(--font-display);font-size:var(--text-large);font-weight:500;color:var(--color-dark)}
.award-card__desc{font-size:var(--text-body);color:var(--color-mid-slate);flex-grow:1}
.award-card__footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-gray-tone)}
.award-card__org{font-size:var(--text-caption);color:var(--color-cool-gray)}

/* ===== FOOTER ===== */
.footer{background:var(--color-primary);color:var(--color-inverse-white);padding-block:var(--space-13)}
.footer__inner{display:flex;flex-direction:column;gap:var(--space-9)}
.footer__brand{display:flex;flex-direction:column;gap:var(--space-1)}
.footer__name{font-family:var(--font-display);font-size:1.375rem;font-weight:300;color:var(--color-inverse-white)}
.footer__designation,.footer__institution{font-size:var(--text-caption);color:#ffffffb3}
.footer__links{display:flex;flex-wrap:wrap;gap:var(--space-5)}
.footer__link{font-size:var(--text-caption);color:#fffc;transition:color var(--transition-fast)}
.footer__link:hover{color:var(--color-inverse-white)}
.footer__bottom{padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.15)}
.footer__copyright{font-size:var(--text-micro);color:#fff9}

/* ===== ANIMATIONS ===== */
.animate-in{opacity:0;transform:translateY(40px);filter:blur(8px);transition:opacity .8s ease,transform .8s ease,filter .8s ease}
.animate-in.visible{opacity:1;transform:translateY(0);filter:blur(0)}
@media(prefers-reduced-motion:reduce){.animate-in{opacity:1;transform:none;filter:none}}

/* ===== Page ===== */
.page{display:none}
.page.active{display:block}
