500;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{
  --navy:#0d2440;
  --navy-soft:#14385c;
  --ink:#183047;
  --muted:#657b8f;
  --teal:#11a59e;
  --teal-soft:#e8fbf8;
  --violet:#8457f6;
  --violet-soft:#f0ebff;
  --line:#dfe7ef;
  --paper:#f5f8fb;
  --white:#fff;
  --container:1160px;
  --radius:20px;
  --shadow:0 18px 45px rgba(13,36,64,.08);
  --shadow-soft:0 10px 24px rgba(13,36,64,.06);
}
html{scroll-behavior:smooth}
body{margin:0;direction:ltr!important;text-align:left;font-family:'DM Sans',Arial,sans-serif!important;color:var(--ink);background:var(--paper);line-height:1.68}
*,*:before,*:after{box-sizing:border-box}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}button,input,textarea{font:inherit}.shell{max-width:var(--container);width:calc(100% - 44px);margin:auto}

.site-header{position:sticky!important;top:0;z-index:5000;background:#fff!important;border-bottom:1px solid #e7edf3!important;box-shadow:0 8px 24px rgba(13,36,64,.06)!important;backdrop-filter:none!important}
.header-bar{height:88px!important;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;flex:0 0 auto;transition:transform .25s ease}.brand:hover{transform:translateY(-1px)}.brand img{width:auto;height:58px;object-fit:contain}
.site-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.site-nav a{position:relative;color:#4f6478;font-size:15px;font-weight:700;padding:12px 16px;border-radius:999px;transition:transform .22s ease,color .22s ease,background-color .22s ease,box-shadow .22s ease}.site-nav a::after{content:"";position:absolute;left:16px;right:16px;bottom:8px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--violet));transform:scaleX(0);transform-origin:center;transition:transform .22s ease;opacity:.95}.site-nav a:hover,.site-nav a.is-active{color:var(--navy);background:linear-gradient(135deg,rgba(17,165,158,.08),rgba(132,87,246,.08));box-shadow:inset 0 0 0 1px rgba(132,87,246,.09)}.site-nav a:hover::after,.site-nav a.is-active::after{transform:scaleX(1)}
.menu-toggle{display:none;background:#fff;border:1px solid var(--line);width:46px;height:46px;padding:9px;border-radius:14px;cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease}.menu-toggle:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.menu-toggle span{display:block;height:2px;background:var(--navy);margin:6px 0;border-radius:999px}

.site-footer{background:linear-gradient(140deg,#091b30,#0e2c47 58%,#143b54)!important;color:#c9d8e0!important;padding:72px 0 20px!important;margin-top:82px!important}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:70px;padding-bottom:45px}.footer-brand{font-family:Manrope,sans-serif;font-size:24px;font-weight:800;letter-spacing:.08em;color:white}.footer-brand span{background:linear-gradient(90deg,#69e2ce,#aa7fff);-webkit-background-clip:text;background-clip:text;color:transparent}.footer-grid h3{font-size:13px;color:#fff;text-transform:uppercase;letter-spacing:.12em;margin-bottom:15px}.footer-grid p{font-size:14px;color:#9db4c1;max-width:360px;margin-top:14px}.footer-grid a:not(.footer-brand){display:block;color:#d7e4ea;font-size:14px;margin:10px 0;transition:color .2s ease,transform .2s ease}.footer-grid a:not(.footer-brand):hover{color:#78ead8;transform:translateX(2px)}.footer-bottom{border-top:1px solid #294152;display:flex;justify-content:space-between;gap:18px;padding-top:20px;font-size:12px;color:#8fa7b4}

/* unify internal banners */
.about-hero,.projects-hero,.publications-hero,.blog-hero,.people-hero,.compact-hero{padding:54px 0 48px!important;min-height:auto!important}.about-hero h1,.projects-hero h1,.publications-hero h1,.blog-hero h1,.people-hero h1,.compact-hero h1{font-size:clamp(2rem,4vw,3rem)!important;line-height:1.08!important;letter-spacing:-.04em!important;margin:8px 0 12px!important}.about-hero p,.projects-hero p,.publications-hero p,.blog-hero p,.people-hero p,.compact-hero p{font-size:15px!important;max-width:680px!important}.about-hero .hero-label,.projects-hero .hero-label,.publications-hero .hero-label,.blog-hero .hero-label,.compact-hero .section-label,.people-hero .eyebrow{font-size:11px!important;letter-spacing:.18em!important}.people-section,.profile-top{position:relative;z-index:1}

:focus-visible{outline:3px solid rgba(17,165,158,.45);outline-offset:3px}
@media(max-width:980px){.header-bar{height:80px!important}.brand img{height:52px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:81px;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;padding:18px 24px 24px;box-shadow:0 24px 36px rgba(13,36,64,.14)}.site-nav.is-open{display:flex}.site-nav a{display:block;font-size:15px}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:640px){.shell{width:calc(100% - 32px)}.brand img{height:46px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.about-hero,.projects-hero,.publications-hero,.blog-hero,.people-hero,.compact-hero{padding:44px 0 38px!important}}

body .site-header .brand,body .site-header .site-nav a{text-decoration:none}.site-header .header-bar{max-width:var(--container)}
