@font-face{font-family:Inter;src:url('assets/fonts/inter-400.ttf')}@font-face{font-family:Inter;src:url('assets/fonts/inter-600.ttf');font-weight:600}@font-face{font-family:Manrope;src:url('assets/fonts/manrope-500.ttf');font-weight:500}@font-face{font-family:Manrope;src:url('assets/fonts/manrope-700.ttf');font-weight:700}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#ffffff;color:#15191f;font-family:Inter,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #a66e00;outline-offset:5px}p{line-height:1.75;color:#515b67}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;font-weight:700}h1{font-family:Manrope,Arial,sans-serif;letter-spacing:-3.7px;font-size:clamp(48px,5.1vw,78px);line-height:1.09}h2{font-size:35px;letter-spacing:-1.3px;line-height:1.2}h3{font-size:24px;letter-spacing:-.7px;line-height:1.3}em{font-family:inherit;font-style:normal;font-weight:inherit;color:inherit}header,.institution,main,footer{padding-left:5.2%;padding-right:5.2%}.institution{height:37px;background:#15191f;color:#ffffff;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.5px}header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce1e7}.logo{width:230px;display:block}.logo img{width:100%;display:block}nav{display:flex;gap:29px;height:100%;align-items:center}nav a{height:100%;display:grid;place-items:center;position:relative;font-size:13px}nav a[aria-current]:after{position:absolute;bottom:23px;content:'';width:22px;height:3px;background:#f5a800}nav a:hover{color:#15191f}.menu{display:none}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:600;line-height:1.7}.dot-square{display:inline-block;width:7px;height:7px;background:#f5a800;margin-right:8px}.hero{min-height:560px;display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:20px}.hero h1{margin:30px 0 23px}.hero p{font-size:16px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:#15191f;color:#fff;padding:17px 23px;font-size:12px;transition:background .2s,transform .2s}.button:hover{background:#303b49;transform:translateY(-2px)}.hero-note{font-size:10px;color:#596473;margin-top:25px}.hero-note strong{font-weight:400;color:#15191f}.energy-art{height:440px;position:relative;overflow:hidden;border-left:1px solid #dce1e7;background:#ffffff}.energy-art canvas{width:100%;height:100%;display:block}.art-top,.art-bottom{position:absolute;left:25px;right:0;display:flex;justify-content:space-between;font:9px monospace;letter-spacing:1px;color:#596473;z-index:1}.art-top{top:0}.art-bottom{bottom:0;align-items:center}.art-bottom button{border:0;background:transparent;font:10px monospace;color:#515b67;padding:10px}.principles{border-top:1px solid #dce1e7;border-bottom:1px solid #dce1e7;display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;padding:23px 0;align-items:center;gap:30px}.principles>span{font-size:14px;letter-spacing:2px;display:flex;justify-content:space-between;border-right:1px solid #dce1e7;padding-right:30px}.principles>span span{font:10px monospace;color:#15191f}.principles p{font-size:11px;margin:0;padding-left:10px;line-height:1.5}.home-bottom{display:grid;grid-template-columns:.9fr 1fr 1.15fr;gap:32px;padding:50px 0 60px}.section-intro h2{margin:17px 0}.section-intro p{font-size:12px;max-width:260px}.text-link{display:inline-block;border-bottom:1px solid #a9b2be;padding:7px 0;font-size:12px}.text-link:hover{color:#755000}.feature{background:#f0f3f6;padding:26px;position:relative;overflow:hidden;min-height:285px}.feature h3{margin:22px 0 12px}.feature p{max-width:210px;font-size:12px}.round-arrow{display:grid;place-items:center;width:35px;height:35px;border:1px solid #9da8b6;border-radius:50%;position:absolute;bottom:22px;left:26px}.circuit-art{position:absolute;width:130px;height:170px;bottom:-45px;right:-20px;transform:rotate(-28deg)}.circuit-art i{position:absolute;width:90px;height:120px;border:1px solid #9da8b6;border-radius:20px;left:0;top:0}.circuit-art i:nth-child(2){left:16px;top:12px}.circuit-art i:nth-child(3){left:32px;top:24px}.circuit-art i:nth-child(4){left:48px;top:36px}.bench img{height:190px;width:100%;object-fit:cover;filter:none}.bench>div{padding-top:18px}.bench h3{font-size:20px;margin-top:10px}.bench h3 span{float:right}.page-head{padding:64px 0 45px}.page-head h1{margin:25px 0 20px}.page-head>p{max-width:600px;font-size:16px}.research-list article{display:grid;grid-template-columns:.18fr 1fr .6fr;gap:30px;border-top:1px solid #dce1e7;padding:45px 0}.number{font:14px monospace;color:#755000}.research-list h2{margin:12px 0 20px}.research-list p{max-width:550px}.line-icon{display:flex;align-items:center;justify-content:center;font:600 35px Inter;color:#334155;gap:15px;background:#f0f3f6}.line-icon span{color:#a66e00}.source-note{font-size:11px;padding:22px 0 36px}.source-note a{text-decoration:underline}.pi{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;background:#f0f3f6;padding:40px;margin-bottom:55px}.monogram{font:700 105px Manrope;color:#334155;border-right:1px solid #c8d0da;display:flex;flex-direction:column;justify-content:center}.monogram span{font:9px Inter;letter-spacing:2px;margin-top:12px}.pi h2{margin:16px 0}.section-bar{display:flex;justify-content:space-between;align-items:center;margin:30px 0 24px;gap:20px}.section-bar h2{font-size:27px;margin:0}.filters{display:flex;gap:8px}.filters button{border:1px solid #dce1e7;background:transparent;padding:9px 17px;font-size:11px;border-radius:30px}.filters button.active{background:#15191f;color:white;border-color:#15191f}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.person[hidden]{display:none}.person img,.initials{width:100%;height:260px;object-fit:cover;object-position:center 25%;margin-bottom:22px;background:#edf1f5}.initials{display:flex;flex-direction:column;justify-content:center;align-items:center;font:700 68px Manrope;color:#334155}.initials span{font:8px Inter;letter-spacing:1.5px;margin-top:25px}.person h3{margin:9px 0}.person p{font-size:12px}.programmes{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:65px}.programmes article{background:#f0f3f6;padding:35px}.programmes h2{margin:25px 0 15px;font-size:30px}.collection-note{font-size:12px;max-width:750px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:15px 0 65px}.project-card img{height:230px;object-fit:cover;width:100%;margin-bottom:20px;filter:none;transition:filter .2s}.project-card:hover img{filter:saturate(1)}.project-card h3{margin:12px 0}.project-card p{font-size:12px}.detail{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;padding-bottom:70px}.detail img{width:100%;max-height:550px;object-fit:contain;background:#f0f3f6}.detail aside{padding:25px 0}.detail h2{margin:25px 0}.publication-panel{padding:50px;background:#f0f3f6;max-width:900px}.publication-panel h2{margin:25px 0}.publication-panel p{max-width:650px}.publication-placeholder{display:flex;gap:40px;padding:35px 0;font:10px monospace;letter-spacing:1px}.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;border-top:1px solid #dce1e7;padding:45px 0}.contact-grid h2{margin:20px 0}.contact-email{display:block;font-size:clamp(14px,2vw,25px);color:#755000;padding:12px 0 25px;overflow-wrap:anywhere}.address{border-left:1px solid #dce1e7;padding-left:50px}.small{font-size:11px;margin-top:30px}.join{display:flex;gap:40px;align-items:center;background:#f0f3f6;padding:35px;margin-bottom:60px}.join h2{font-size:25px;flex:1;margin:0}.join p{flex:2;font-size:12px;margin:0}.join .button{white-space:nowrap}.sources{max-width:850px;padding-bottom:55px}.sources h2{font-size:25px;margin-top:35px}.sources a{text-decoration:underline}footer{background:#15191f;color:#ffffff;padding-top:35px;padding-bottom:20px;display:grid;grid-template-columns:1fr 1fr;gap:20px}footer b{font:26px Manrope;letter-spacing:1px}footer p{font-size:10px;color:#bec6d1;margin:8px 0}footer>div:nth-child(2){text-align:right;font-size:11px;line-height:2}.dot{color:#f5a800}.foot-bottom{grid-column:1/-1;border-top:1px solid #404954;margin-top:18px;padding-top:18px;display:flex;justify-content:space-between;color:#bec6d1;font-size:9px}.skip{position:absolute;top:-100px;z-index:10;background:white;padding:15px}.skip:focus{top:0}main{min-height:60vh}@media(min-width:1600px){header,.institution,main,footer{padding-left:calc((100% - 1440px)/2);padding-right:calc((100% - 1440px)/2)}}@media(max-width:1000px){nav{gap:18px}.logo{width:190px}.hero{min-height:540px}.hero h1{font-size:55px}.hero .eyebrow{font-size:8px}.home-bottom{gap:20px}.section-intro h2{font-size:28px}.bench img{height:175px}.people-grid{gap:22px}.person img,.initials{height:220px}}@media(max-width:760px){header{height:85px}.institution{font-size:7px;letter-spacing:.6px}.institution a{display:none}.logo{width:190px}.menu{display:block;border:1px solid #a9b2be;padding:9px 13px;background:transparent;font-size:11px}nav{display:none;position:absolute;top:122px;left:0;right:0;background:#ffffff;height:auto;z-index:5;padding:20px 6%;border-bottom:1px solid #dce1e7;flex-wrap:wrap}nav.open{display:flex}nav a{height:40px}nav a[aria-current]:after{bottom:0}.hero{grid-template-columns:1fr;gap:30px;padding:40px 0 30px}.hero h1{font-size:54px;letter-spacing:-3px}.hero p{font-size:14px}.hero .eyebrow{font-size:8px}.energy-art{height:270px;border-left:0;border-top:1px solid #dce1e7;padding-top:10px}.art-top{top:15px;left:0}.art-bottom{left:0}.principles{grid-template-columns:repeat(3,1fr);gap:15px;padding:20px 0}.principles>span{font-size:10px;padding-right:12px;letter-spacing:1px}.principles p{display:none}.home-bottom{grid-template-columns:1fr;padding-top:35px;gap:28px}.section-intro p{max-width:100%}.feature{min-height:260px}.bench img{height:240px}.page-head{padding:42px 0 25px}.page-head h1{font-size:49px;letter-spacing:-2.8px}.page-head p{font-size:14px}.research-list article{grid-template-columns:30px 1fr;gap:12px;padding:30px 0}.research-list h2{font-size:28px}.line-icon{grid-column:2;height:90px;font-size:25px}.pi{grid-template-columns:1fr;padding:25px;gap:25px}.monogram{font-size:65px;border:0;border-bottom:1px solid #c8d0da;padding-bottom:20px}.pi h2{font-size:28px}.section-bar{align-items:flex-start;flex-direction:column}.people-grid{grid-template-columns:1fr 1fr;gap:20px}.person img,.initials{height:180px}.initials{font-size:50px}.initials span{font-size:6px}.person h3{font-size:21px}.person .eyebrow{font-size:8px}.filters{flex-wrap:wrap}.filters button{padding:8px 13px}.programmes,.project-grid,.detail,.contact-grid{grid-template-columns:1fr}.programmes{gap:20px}.programmes article{padding:25px}.project-card img{height:260px}.publication-panel{padding:30px}.publication-placeholder{flex-wrap:wrap;gap:20px}.contact-grid{gap:25px}.address{border:0;padding-left:0}.join{display:block;padding:25px}.join p{margin:20px 0}.foot-bottom{gap:10px;flex-wrap:wrap}footer{grid-template-columns:1fr}footer>div:nth-child(2){text-align:left}.foot-bottom span:last-child{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Solid institutional palette and strong typographic hierarchy. */
nav{gap:5px}nav a{height:40px;padding:0 14px;font-weight:600;border-radius:3px}nav a[aria-current]{background:#15191f;color:#ffffff}nav a[aria-current]:after{display:none}nav a:hover{background:#edf1f5}nav a[aria-current]:hover{background:#303b49}
.hero h1{font-size:clamp(46px,4.65vw,70px);letter-spacing:-2.8px;line-height:1.1}.hero h1 em{display:block}.hero-copy{padding:24px 0}.hero p{color:#515b67}.hero-note strong{font-weight:600}
.button{font-weight:600;border-radius:3px}.button:hover{background:#15191f;color:#ffffff}.eyebrow{font-weight:600}.principles>span{font-weight:600}.principles>span span{color:#515b67}
.filters button{font-weight:600;border-radius:4px;border-color:#c8d0da;background:#f0f3f6;color:#334155}.filters button:hover{background:#e3e8ee}.filters button.active{background:#15191f;color:#ffffff;border-color:#15191f}
.feature{background:#15191f;color:#ffffff}.feature p{color:#cbd2db}.feature .eyebrow{color:#ffc24b}.feature .round-arrow{background:#ffffff;color:#15191f;border:0}.feature .circuit-art i{border-color:#6b7685}
.monogram{color:#15191f}.initials{color:#334155;background:#edf1f5}.person h3{font-size:23px}.programmes article{border-top:4px solid #f5a800}.pi{border-top:4px solid #f5a800}.publication-panel,.join{border-left:4px solid #f5a800}.text-link{font-weight:600}.contact-email{color:#15191f;font-weight:600}.contact-email:hover{color:#755000}footer b{font-weight:700}
@media(max-width:1000px){nav a{padding:0 10px}.hero h1{font-size:48px;letter-spacing:-2px}}
@media(max-width:760px){nav{background:#ffffff;gap:8px}nav a{height:40px;padding:0 15px}.hero h1{font-size:clamp(36px,9.8vw,54px);letter-spacing:-1.7px}.hero-copy{padding:0}.page-head h1{font-size:clamp(36px,9.8vw,49px);letter-spacing:-1.7px}.person h3{font-size:20px}.publication-panel,.join{border-left-width:3px}}
/* Reference refinement: quiet navigation and an outlined faculty action. */
nav{gap:23px}nav a{padding:0 2px;font-weight:400;border-radius:0;background:transparent}nav a[aria-current],nav a[aria-current]:hover,nav a:hover{background:transparent;color:#15191f}nav a[aria-current]{font-weight:600}nav a[aria-current]:after{display:block;position:absolute;content:'';height:2px;left:8px;right:8px;width:auto;bottom:-4px;background:#c7a653}nav a:hover{color:#515b67}
.pi .button{background:transparent;color:#252b33;border:1px solid #c8ced6;border-radius:9px;padding:14px 20px}.pi .button:hover{background:#ffffff;border-color:#8994a2;color:#15191f;transform:none}
@media(max-width:1000px){nav{gap:17px}nav a{padding:0 2px}}
@media(max-width:760px){nav{gap:12px 22px}nav a{padding:0 2px}nav a[aria-current]:after{bottom:1px}}
/* Readable institutional type scale. */
body{font-size:17px}nav a{font-size:18px;height:46px}nav{gap:26px}.institution{font-size:11px;height:40px}.eyebrow,.hero .eyebrow{font-size:12px;letter-spacing:1.3px}.hero p,.page-head>p{font-size:19px}.hero-note{font-size:14px}.button,.text-link{font-size:16px}.button{padding:17px 23px}.section-intro p,.feature p,.person p,.project-card p,.collection-note,.join p{font-size:16px}.section-intro p{max-width:310px}.feature p{max-width:260px}.feature{min-height:330px}.principles>span{font-size:17px}.principles>span span{font-size:12px}.principles p{font-size:14px}.filters button{font-size:15px;padding:10px 19px}.person .eyebrow{font-size:12px}.source-note,.small{font-size:14px}.art-top,.art-bottom{font-size:11px}.art-bottom button{font-size:12px}.publication-placeholder{font-size:13px}.monogram span,.initials span{font-size:11px}footer p,footer>div:nth-child(2){font-size:14px}.foot-bottom{font-size:12px}.bench .eyebrow{font-size:11px}.bench h3{font-size:23px}.home-bottom{gap:28px}
@media(min-width:761px) and (max-width:1100px){header{flex-wrap:wrap;height:auto;min-height:130px;gap:18px;padding-top:20px;padding-bottom:20px}nav{height:auto;gap:21px;flex-wrap:wrap}nav a{font-size:17px}.hero .eyebrow{font-size:11px}.home-bottom{grid-template-columns:1fr 1fr}.section-intro{grid-column:1/-1}.section-intro p{max-width:650px}}
@media(max-width:760px){body{font-size:16px}.institution{height:37px;font-size:9px;letter-spacing:.7px}nav{gap:12px 23px}nav a{font-size:17px;height:44px}.menu{font-size:14px}.hero .eyebrow,.eyebrow{font-size:11px}.hero p,.page-head>p{font-size:17px}.hero-note{font-size:14px}.button,.text-link{font-size:15px}.principles>span{font-size:12px;letter-spacing:.6px}.principles>span span{font-size:11px}.person p{font-size:15px}.person .eyebrow{font-size:11px}.initials span{font-size:8px}.art-top,.art-bottom{font-size:10px}.art-bottom button{font-size:11px}.feature{min-height:300px}.source-note{font-size:13px}.foot-bottom{font-size:12px;line-height:1.6}.contact-email{font-size:17px}.filters button{font-size:14px;padding:10px 13px}}

/* Larger logo and richer footer. */
.logo{width:340px}
footer{grid-template-columns:1.2fr 1fr .7fr 1.4fr;gap:40px;padding-top:50px;padding-bottom:22px}
footer>div:nth-child(2){text-align:left;font-size:14px;line-height:1.7}
.foot-brand p{font-size:14px;line-height:1.6}
.foot-title{display:block;font-size:12px;font-weight:600;letter-spacing:1.5px;color:#f5a800;margin-bottom:14px}
.foot-col a,.foot-map>a{display:block;font-size:14px;line-height:1;padding:7px 0;color:#ffffff}
.foot-col p{font-size:14px;line-height:1.7;margin:0 0 8px}
.foot-col a:hover,.foot-map>a:hover,.foot-bottom a:hover{color:#f5a800}
.foot-map iframe{display:block;width:100%;height:170px;border:0;background:#303b49;margin-bottom:8px}
.foot-bottom{font-size:12px}
@media(max-width:1100px){.logo{width:280px}footer{grid-template-columns:1fr 1fr}.foot-map{grid-column:1/-1}}
@media(max-width:760px){.logo{width:210px}footer{grid-template-columns:1fr;gap:28px}}
/* Accessible grouped navigation. */
header{height:auto;min-height:130px;gap:24px;flex-wrap:wrap;padding-top:24px;padding-bottom:24px}nav{gap:20px;height:auto;flex-wrap:wrap}.nav-group{display:flex;align-items:center;position:relative;gap:3px}.sub-toggle{border:0;background:transparent;color:inherit;padding:10px 3px;font-size:17px}.submenu{display:none;position:absolute;top:100%;left:-16px;min-width:225px;padding:12px;background:#fff;border:1px solid #dce1e7;border-radius:7px;box-shadow:0 12px 30px #15191f15;z-index:20}.submenu a{display:flex;height:auto;min-height:43px;padding:10px 12px;font-size:16px;font-weight:400;white-space:nowrap}.submenu a:hover{background:#f0f3f6;color:#15191f;border-radius:4px}.nav-group.expanded .submenu{display:block}.directory-section{padding:35px 0;border-top:1px solid #dce1e7;scroll-margin-top:25px}.directory-section h2{font-size:30px}#faculty{scroll-margin-top:25px}
@media(hover:hover){.nav-group:hover .submenu{display:block}}
@media(min-width:1101px) and (max-width:1450px){header nav{width:100%;justify-content:flex-end}}
@media(max-width:760px){header{min-height:95px;padding-top:16px;padding-bottom:16px}nav{top:132px;max-height:75vh;overflow:auto}.nav-group{width:100%;flex-wrap:wrap;justify-content:space-between}.nav-group>a{flex:1}.submenu{position:static;width:100%;box-shadow:none;margin:3px 0 8px}.nav-group .submenu a{font-size:16px}.sub-toggle{padding:10px 15px}}
/* One aligned header row; collapse before navigation becomes cramped. */
header{position:relative;flex-wrap:nowrap;min-height:120px;gap:26px;padding-top:22px;padding-bottom:22px}.logo{width:clamp(260px,24vw,330px)}header nav{width:auto;flex-wrap:nowrap;gap:clamp(12px,1.35vw,24px);justify-content:flex-end}header nav>a,.nav-group>a{white-space:nowrap;font-size:17px}.menu{flex-shrink:0}
@media(max-width:1279px){header{height:auto;min-height:104px;flex-wrap:nowrap}.logo{width:290px}.menu{display:block;border:1px solid #b9c2cd;border-radius:5px;background:#fff;padding:12px 18px;font-size:16px}header nav{display:none;position:absolute;top:100%;left:0;right:0;width:100%;height:auto;padding:20px 5.2%;background:#fff;border-bottom:1px solid #dce1e7;box-shadow:0 12px 22px #15191f0d;z-index:30;max-height:75vh;overflow-y:auto;flex-wrap:wrap;justify-content:flex-start;gap:12px 25px}header nav.open{display:flex}header nav>a{width:100%;justify-content:start;display:flex}.nav-group{width:100%;justify-content:space-between;flex-wrap:wrap}.nav-group>a{flex:1;display:flex;justify-content:start}.sub-toggle{padding:12px 18px}.submenu{position:static;width:100%;min-width:0;box-shadow:none;margin:4px 0 10px}.submenu a{font-size:16px}.nav-group>a[aria-current]:after,header nav>a[aria-current]:after{left:0;right:auto;width:35px;bottom:0}}
@media(max-width:760px){header{min-height:95px;padding-top:16px;padding-bottom:16px;gap:12px}.logo{width:min(245px,63vw)}.menu{padding:10px 13px;font-size:14px}header nav{top:100%}}
/* Active page uses the SPEAR amber wordmark colour, without a marker. */
header nav a[aria-current="page"],header nav a[aria-current="page"]:hover{color:#f5a800;background:transparent}header nav a[aria-current="page"]:after{display:none}
/* Brand-colour feedback for dropdown pointer and keyboard navigation. */
header nav .submenu a:hover,header nav .submenu a:focus-visible{color:#f5a800;background:#f0f3f6}
/* A little more brand presence, with consistent light directory controls. */


@media(min-width:761px) and (max-width:1279px){header .logo{width:325px}}
@media(max-width:760px){header .logo{width:min(265px,65vw)}}
.filters button.active,.filters button.active:hover,.filters button[aria-pressed="true"]{background:#f0f3f6;color:#f5a800;border-color:#c8d0da}
/* Consistent text-first selection and amber interaction feedback. */
.filters{gap:24px;flex-wrap:wrap}.filters button,.filters button:hover,.filters button.active,.filters button.active:hover,.filters button[aria-pressed="true"]{background:transparent;border:0;border-radius:0;padding:10px 0;color:#15191f}.filters button.active,.filters button[aria-pressed="true"],.filters button:hover,.filters button:focus-visible{color:#f5a800}
header nav a:hover,header nav a:focus-visible,.pi .button:hover,.pi .button:focus-visible,.text-link:hover,.text-link:focus-visible,.contact-email:hover,.contact-email:focus-visible,.footer-email:hover,footer a:hover,footer a:focus-visible{color:#f5a800}
.button:hover,.button:focus-visible{color:#f5a800}.pi .button:hover,.pi .button:focus-visible{background:transparent;transform:none}.project-card:hover h3,.project-card:focus-visible h3,.bench:hover h3,.bench:focus-visible h3{color:#f5a800}
@media(max-width:760px){.filters{gap:22px}.filters button{padding:10px 0}}
/* Stable selected state, legible actions, and the warm research highlight. */
.filters button.active,.filters button.active:hover,.filters button.active:focus-visible,.filters button[aria-pressed="true"],.filters button[aria-pressed="true"]:hover{color:#f5a800;background:transparent;border:0}
.button,.button:hover,.button:focus-visible{color:#ffffff;background:#15191f}.button:hover,.button:focus-visible{background:#303b49}
.pi .button{color:#252b33;background:transparent}.pi .button:hover,.pi .button:focus-visible{color:#f5a800;background:transparent}
.feature{background:#fbf5e5;color:#15191f}.feature p{color:#515b67}.feature .eyebrow{color:#b78017}.feature .round-arrow{background:#e8bd52;color:#15191f}.feature .circuit-art i{border-color:#ecd391}
/* Fixed proportions on every screen; no image distortion. */
.person img,.person .initials{aspect-ratio:3/4;height:auto;width:100%}.person img{object-fit:cover;object-position:center 25%}.bench img,.project-card img{aspect-ratio:16/9;height:auto;width:100%;object-fit:cover}.detail>img{height:auto;max-height:none;object-fit:contain}
/* Campus-led introduction and a quieter research link. */
.campus-hero{margin:0;width:100%;min-width:0}.campus-hero img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.campus-hero figcaption{font-size:11px;letter-spacing:1.3px;color:#596473;margin-top:16px;line-height:1.6}.hero-research-link{display:inline-flex;align-items:center;gap:40px;padding:12px 0;font-size:20px;font-weight:600;color:#15191f;background:transparent}.hero-research-link:hover,.hero-research-link:focus-visible{color:#f5a800}.hero-research-link span{font-size:25px}
@media(min-width:1600px){.people-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}}
@media(max-width:760px){.hero-research-link{font-size:18px}.campus-hero{margin:5px 0 12px}.campus-hero figcaption{font-size:10px}}
/* Matching outlined actions for the three homepage links. */
.hero-research-link,.home-bottom .section-intro .text-link,.home-bottom .bench h3{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #15191f;border-radius:9px;padding:13px 17px;background:transparent;color:#15191f;text-decoration:none;font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:600;line-height:1.5;letter-spacing:0;max-width:100%;min-height:52px}
.home-bottom .bench h3{display:flex;width:100%;margin-top:12px}.home-bottom .bench h3 span{float:none;flex-shrink:0}.hero-research-link span{font-size:20px}.hero-research-link:hover,.hero-research-link:focus-visible,.home-bottom .section-intro .text-link:hover,.home-bottom .section-intro .text-link:focus-visible,.home-bottom .bench:hover h3,.home-bottom .bench:focus-visible h3{color:#f5a800;border-color:#15191f;background:transparent}
@media(max-width:760px){.hero-research-link,.home-bottom .section-intro .text-link,.home-bottom .bench h3{font-size:15px;padding:12px 15px}}
/* Four balanced team cards at ordinary desktop widths. */
@media(min-width:1100px){.people-grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px;row-gap:32px}.person h3{font-size:21px}.person p{font-size:15px}.person img,.person .initials{margin-bottom:16px}.person .initials{font-size:58px}.person .initials span{font-size:9px}}
@media(min-width:761px) and (max-width:1099px){.people-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}}
/* More presence for the lab identity and campus photograph. */
@media(min-width:1280px){header .logo{width:clamp(345px,26vw,365px)}header{gap:20px}header nav{gap:clamp(12px,1.15vw,22px)}}
@media(min-width:761px){.hero{grid-template-columns:.94fr 1.18fr;gap:28px}.campus-hero{width:100%}}
@media(min-width:761px) and (max-width:1279px){header .logo{width:345px}}
@media(max-width:760px){header .logo{width:min(280px,66vw)}.hero{grid-template-columns:1fr}}
/* Subtle, consistent corners for content surfaces and imagery. */
:root{--surface-radius:12px;--control-radius:9px}
.campus-hero img,.bench img,.project-card img,.person img,.person .initials,.detail>img,.feature,.pi,.programmes article,.publication-panel,.join,.line-icon,.foot-map iframe,.footer-map iframe{border-radius:var(--surface-radius)}
.feature,.pi,.programmes article,.publication-panel,.join{overflow:hidden}
.button,.pi .button,.hero-research-link,.home-bottom .section-intro .text-link,.home-bottom .bench h3,.menu,.submenu{border-radius:var(--control-radius)}
@media(max-width:760px){:root{--surface-radius:10px;--control-radius:8px}}
/* Lab introduction replaces the original promotional headline. */
.hero .lab-expansion{font-size:clamp(30px,2.8vw,43px);line-height:1.17;letter-spacing:-1.2px;margin:22px 0 26px}.hero .about-heading{font-size:23px;letter-spacing:-.4px;margin:0 0 12px}.hero .about-intro{font-size:16px;line-height:1.8;margin-bottom:14px}.hero .hero-research-link{margin-top:8px}.hero{padding-top:30px;padding-bottom:35px}.home-bottom{border-top:1px solid #dce1e7}
@media(max-width:760px){.hero .lab-expansion{font-size:32px;letter-spacing:-1px}.hero .about-intro{font-size:16px}.hero{padding-top:32px;padding-bottom:25px}}

/* Original introductory typography with slightly stronger contrast. */
.hero .about-intro{color:#3f4853}
/* Consistent minimum contrast for neutral text on light surfaces. */
main p,main .source-note,main .small,main .collection-note,main .hero-note,main .hero-note strong,.campus-hero figcaption,main .initials,main .monogram,main .line-icon,main .publication-placeholder,main .number,main .eyebrow,.menu,header nav a:hover{color:#3f4853}
.hero .about-intro{color:#3f4853}.feature p,.person p,.project-card p,.join p,.section-intro p{color:#3f4853}
/* Preserve branding and interaction colours. */
header nav a[aria-current="page"],header nav a[aria-current="page"]:hover,header nav a:hover,header nav a:focus-visible{color:#f5a800}
.feature{padding-bottom:95px}.research-card-action{position:absolute;left:26px;right:26px;bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #15191f;border-radius:9px;padding:13px 17px;min-height:52px;color:#15191f;font-size:16px;font-weight:600;background:#fbf5e5;z-index:1}.feature:hover .research-card-action,.feature:focus-visible .research-card-action{color:#f5a800}
/* Only the outlined project action is a link, not its image or caption. */
.home-bottom .project-action{display:flex;width:100%;align-items:center;justify-content:space-between;gap:20px;margin-top:12px;border:1px solid #15191f;border-radius:var(--control-radius,9px);padding:13px 17px;background:transparent;color:#15191f;text-decoration:none;font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:600;line-height:1.5;letter-spacing:0;min-height:52px}.home-bottom .project-action:hover,.home-bottom .project-action:focus-visible{color:#f5a800}.project-action span{flex-shrink:0}
@media(max-width:760px){.home-bottom .project-action{font-size:15px;padding:12px 15px}}
/* Two-column news feed and a separate team invitation. */
.home-bottom.news-team{grid-template-columns:2fr 1fr;gap:32px}.home-news{min-width:0;padding:8px 0}.news-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.news-heading h2{margin:10px 0 20px}.news-pause{border:0;background:transparent;color:#3f4853;font-size:12px;padding:10px}.news-row{padding:20px 0;border-top:1px solid #dce1e7}.news-window{overflow:hidden;max-width:100%;margin-top:10px}.news-headline{display:inline-block;white-space:nowrap;margin:0;font-size:17px;color:#3f4853;line-height:1.8}.news-headline.scrolling{animation:news-slide var(--news-duration,22s) linear infinite alternate}.news-window:hover .news-headline,.news-team.paused .news-headline{animation-play-state:paused}@keyframes news-slide{0%,12%{transform:translateX(0)}88%,100%{transform:translateX(var(--news-shift,0px))}}
.outline-link{display:inline-block;border:1px solid #15191f;border-radius:9px;padding:13px 17px;margin-top:18px}.outline-link a{color:#15191f;font-size:16px;font-weight:600;line-height:1.5;text-decoration:none}.outline-link a span{margin-left:20px}.outline-link a:hover,.outline-link a:focus-visible{color:#f5a800}.team-highlight{position:relative;background:#fbf5e5;border-radius:12px;padding:28px;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start}.team-highlight h2{font-size:30px;margin:20px 0 16px}.team-highlight p{font-size:16px;color:#3f4853;line-height:1.8}.team-highlight .outline-link{position:relative;z-index:1;margin-top:auto;background:#fbf5e5}.team-highlight .circuit-art i{border-color:#ecd391}
@media(max-width:760px){.home-bottom.news-team{grid-template-columns:1fr}.team-highlight{min-height:320px}.news-heading{align-items:flex-start}.news-headline{font-size:16px}}
@media(prefers-reduced-motion:reduce){.news-headline.scrolling{animation:none;white-space:normal}.news-pause{display:none}}
/* Single-direction, seamless left-to-right news movement. */
.news-headline.scrolling{animation:news-loop var(--news-duration,24s) linear infinite;display:flex;width:max-content;gap:0;white-space:nowrap}.news-copy{flex-shrink:0;padding-right:70px}@keyframes news-loop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.archive-section{padding:15px 0 45px;border-top:1px solid #dce1e7}.archive-entry{padding:25px 0;border-bottom:1px solid #dce1e7}.archive-entry h3{margin:12px 0}.archive-entry[hidden]{display:none}.archive-status{font-size:14px;margin:20px 0 10px}.pagination{display:flex;gap:10px;height:auto;justify-content:flex-start;position:static;width:auto;padding:0;background:transparent;border:0;box-shadow:none}.pagination button,.year-toggle,.year-options button{font:inherit;border:1px solid #dce1e7;background:white;color:#15191f;padding:10px 15px;border-radius:7px}.pagination button[aria-current="page"]{color:#b0780a;border-color:#b0780a}.year-picker{position:relative}.year-options{position:absolute;right:0;top:100%;padding:8px;background:white;border:1px solid #dce1e7;border-radius:9px;min-width:150px;z-index:10}.year-options button{display:block;width:100%;border:0;text-align:left}.year-options button:hover,.year-toggle:hover{color:#f5a800}
@media(prefers-reduced-motion:reduce){.news-headline.scrolling{animation:none;display:block;white-space:normal}.news-copy{padding:0}.news-copy[aria-hidden]{display:none}}
.team-picker{position:relative}.team-toggle,.team-options button{font:inherit;border:1px solid #dce1e7;background:#fff;color:#15191f;padding:10px 15px;border-radius:7px}.team-toggle{color:#f5a800;min-width:135px;text-align:left}.team-options{position:absolute;right:0;top:100%;padding:8px;background:#fff;border:1px solid #dce1e7;border-radius:9px;min-width:150px;z-index:10}.team-options button{display:block;width:100%;border:0;text-align:left}.team-options button:hover,.team-options button:focus-visible,.team-options button.active{color:#f5a800}.team-options[hidden]{display:none}
/* Match the Team selector to the year selector. */
.team-toggle{color:#15191f}.team-toggle:hover,.team-toggle:focus-visible{color:#f5a800}
.archive-section{scroll-margin-top:24px}
/* A defined, quiet news surface beside the warm team card. */
.home-bottom.news-team .home-news{background:#f3f5f7;border:1px solid #e1e5ea;border-radius:var(--surface-radius,12px);padding:28px;min-width:0}.home-news .news-row{border-top-color:#d7dde5}.home-news .news-heading{gap:20px}.home-news .outline-link{background:#fff}.home-news .news-pause{border-radius:7px}.home-news .news-pause:hover{background:#e9edf2}.home-news .news-window{border-radius:3px}
@media(max-width:760px){.home-bottom.news-team .home-news{padding:22px 18px}.home-news .news-heading{gap:12px}.home-news .news-heading h2{font-size:28px}}
/* News moves only on deliberate hover or keyboard focus. */
.home-bottom.news-team .home-news{background:#fff;border:1px solid #15191f}
.home-news .news-headline.scrolling{animation:none;transform:translateX(0)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.home-news .news-row:hover .news-headline.scrolling,.home-news .news-row:focus-visible .news-headline.scrolling{animation:news-loop var(--news-duration,24s) linear infinite;animation-play-state:running}}
.news-row:focus-visible{outline:2px solid #b78017;outline-offset:4px;border-radius:5px}
@media(hover:none),(prefers-reduced-motion:reduce){.home-news .news-headline,.home-news .news-headline.scrolling{display:block;width:auto;white-space:normal;animation:none}.home-news .news-copy{padding:0}.home-news .news-copy[aria-hidden="true"]{display:none}}
/* Alternating archive rows, matching the homepage team panel. */
.archive-entry{padding:25px 24px;border-bottom:0;border-radius:var(--surface-radius,12px);margin-bottom:10px;background:#fff}.archive-entry.alternate-row{background:#fbf5e5}.archive-entry p:last-child{margin-bottom:0}
@media(max-width:760px){.archive-entry{padding:22px 17px}}

/* Preserve the original ticker layout; tint only rows one and three. */
.home-news .news-row:nth-child(odd){background:#fbf5e5;border-radius:10px}
/* Open white news section with highlights only on the first and third rows. */
.home-bottom.news-team .home-news{background:transparent;border:0;border-radius:0;padding:8px 0;box-shadow:none}.home-news .news-items{display:grid;gap:8px}.home-news .news-row{padding:20px 16px;border:0;background:transparent;border-radius:12px;min-width:0}.home-news .news-row:nth-child(odd){background:#fbf5e5}.home-news .news-heading{padding:0 0 8px}.home-news .news-window{margin-top:10px}.home-news .outline-link{margin-top:18px}
@media(max-width:760px){.home-bottom.news-team .home-news{padding:8px 0}.home-news .news-row{padding:18px 12px}}

/* Warm ivory backdrop complements the pale-yellow news highlights. */
.home-bottom.news-team .home-news{background:#fffdf7;border:0;border-radius:12px;padding:28px;box-shadow:none}
@media(max-width:760px){.home-bottom.news-team .home-news{padding:20px 16px}}

/* Expand only large desktop layouts; smaller breakpoints stay unchanged. */
@media(min-width:1600px){
 header,.institution,main,footer{padding-left:calc((100% - clamp(1440px,84vw,1760px))/2);padding-right:calc((100% - clamp(1440px,84vw,1760px))/2)}
 .hero .about-intro{max-width:640px}
}

/* Matching warm panels for archive content and the team introduction. */
.archive-panel{background:#fffdf7;border-radius:12px;padding:28px}
.archive-panel>.section-bar{margin-top:0}
.archive-panel .archive-entry{background:transparent}
.archive-panel .archive-entry.alternate-row{background:#fbf5e5}
.team-copy-panel{width:100%;background:#f7edcf;border-radius:12px;padding:20px;margin:20px 0 24px}
.team-copy-panel h2{margin:0 0 16px}
.team-copy-panel p{margin-bottom:0}
@media(max-width:760px){.archive-panel{padding:20px 12px}.team-copy-panel{padding:18px}}

/* Softer archive highlights and a consistent homepage panel palette. */
.archive-entry.alternate-row{background:#fffdf7}
.team-highlight{background:#fffdf7}
.team-copy-panel{background:#fbf5e5}
.team-highlight .outline-link{background:transparent}

/* Slightly larger curved-square decoration on the team card. */
.team-highlight .circuit-art{transform:rotate(-28deg) scale(1.3);transform-origin:bottom right;pointer-events:none}

/* Warm surfaces and alternating entries across the research directory. */
.pi,.initials,.line-icon,.publication-panel,.join,.detail img{background:#fbf5e5}
.pi .monogram{border-color:#e8dfc9}
.research-list article{padding:32px 24px;border:0;border-radius:12px;margin-bottom:10px;background:#fff}
.research-list article:nth-child(odd){background:#fffdf7}
.research-list .line-icon{min-height:150px}
.programmes article,.project-card{background:#fff;border-radius:12px}
.programmes article:nth-child(odd),.project-card:nth-child(odd){background:#fffdf7}
.project-card{padding:24px;min-width:0}
#journals.directory-section,#conferences.directory-section,#theses.directory-section{padding:28px 24px;border:0;border-radius:12px;margin-bottom:10px;background:#fff}
#journals.directory-section,#theses.directory-section{background:#fffdf7}
header nav .submenu a:hover,header nav .submenu a:focus-visible{background:#fffdf7}
@media(max-width:760px){
 .research-list article{padding:24px 16px}
 .project-card{padding:18px}
 #journals.directory-section,#conferences.directory-section,#theses.directory-section{padding:24px 17px}
}

/* Match the marked team and continuation panels to the light cream cards. */
.pi,.person .initials,.join{background:#fffdf7}

/* Light cream for the publication research-record panel. */
.publication-panel{background:#fffdf7}

/* Let the About copy fill its column only on very large screens. */
@media(min-width:1600px){.hero .about-intro{max-width:none}}
/* Consistent, restrained typography for interior pages. */
.page-head h1{font-size:clamp(32px,2.6vw,42px);line-height:1.2;letter-spacing:-1.2px;margin:20px 0 18px}
.page-head>p{font-size:17px;line-height:1.75}
.page-head>.eyebrow{font-size:14px;letter-spacing:1.2px}
.research-list h2,.programmes h2,.publication-panel h2,.directory-section h2,.pi h2{font-size:30px;line-height:1.25;letter-spacing:-.8px}
.archive-section>.section-bar h2{font-size:32px;line-height:1.25;letter-spacing:-.9px}
@media(max-width:760px){
 .page-head h1{font-size:32px;letter-spacing:-.8px}
 .page-head>p{font-size:16px}
 .page-head>.eyebrow{font-size:12px}
 .research-list h2,.programmes h2,.publication-panel h2,.directory-section h2,.pi h2{font-size:26px}
 .archive-section>.section-bar h2{font-size:28px}
}

/* Shared outlined action style, matching the homepage research link. */
main .button,main .text-link,main .hero-research-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #15191f;border-radius:9px;padding:13px 17px;background:transparent;color:#15191f;text-decoration:none;font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:600;line-height:1.5;letter-spacing:0;max-width:100%;min-height:52px;box-shadow:none;transform:none;transition:color .2s}
main .button:hover,main .button:focus-visible,main .text-link:hover,main .text-link:focus-visible,main .hero-research-link:hover,main .hero-research-link:focus-visible{background:transparent;color:#f5a800;border-color:#15191f;transform:none;text-decoration:none}
main .outline-link{background:transparent}
@media(max-width:760px){main .button,main .text-link,main .hero-research-link{font-size:15px;padding:12px 15px}.join .button{white-space:normal}}

/* Interior page titles match the content-heading scale. */
.page-head h1{font-size:30px;line-height:1.25;letter-spacing:-.8px}
@media(max-width:760px){.page-head h1{font-size:26px}}
