:root {
  color-scheme: light;
  --navy: #0c2340;
  --navy-deep: #08192e;
  --blue: #173f67;
  --sky: #58c8dd;
  --gold: #ecc078;
  --paper: #f6f7f5;
  --ink: #142a40;
  --muted: #516172;
  --edge: #d9e1e5;
  --max: 1190px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.57; }
body, button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
img { display:block; max-width: 100%; }
.container { width: min(calc(100% - 64px), var(--max)); margin-inline: auto; }
.skip { position: absolute; transform: translateY(-160%); padding: 10px 18px; background: white; z-index: 100; }
.skip:focus { transform: translateY(0); }
.motion-band { height: 105px; background: #091d35; color: #fff; position: relative; overflow: hidden; }
.motion-band::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #091d35 0%, transparent 26%, transparent 75%, #091d35 100%); }
#flow-canvas { position:absolute; inset:0; width:100%; height:100%; }
.motion-content { display: flex; position:relative; z-index:1; align-items:center; justify-content: space-between; height:100%; gap: 1rem; }
.university-id { display:flex; align-items:center; gap: 17px; }
.ur-mark { display: grid; place-items:center; font-family: Georgia, serif; font-weight:700; letter-spacing: -.06em; width: 46px; height: 46px; border: 1px solid #79a4c8; font-size: 21px; background: #0d3155; }
.ur-line { font-size: 11px; text-transform: uppercase; letter-spacing: .17em; font-weight: 750; opacity: .88; }
.ur-name { font-size: 21px; font-family: Georgia, 'Times New Roman', serif; letter-spacing: -.015em; line-height: 1.25; }
.motion-toggle { font: inherit; font-size: 12px; cursor:pointer; color: #dceaf4; padding: 9px 13px; border: 1px solid #81a2bb99; background: #092039ba; border-radius: 99px; }
.topnav { background: white; border-bottom: 1px solid #e1e8ee; }
.nav-inner { display: flex; min-height: 76px; align-items:center; justify-content: space-between; gap:20px; }
.site-name { text-decoration:none; font-weight: 800; font-size: 16px; letter-spacing: -.02em; color: var(--navy); }
.site-name small { font-weight: 550; color: var(--muted); font-size: 11px; display:block; letter-spacing:.11em; text-transform:uppercase; margin-top: 2px; }
.nav-links { display: flex; flex-wrap:wrap; align-items:center; gap: 23px; }
.nav-links a { font-size: 13px; color: #314456; text-decoration:none; font-weight:650; }
.nav-links a:hover { color: #007fa0; }
.nav-links .nav-contact { background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 3px; }
.hero { overflow: hidden; background: radial-gradient(circle at 79% 30%,#163e64 0,#0c2340 42%, #091b31 100%); color: white; }
.hero-inner { display:grid; grid-template-columns: 1fr 0.94fr; align-items:center; gap: min(8vw, 90px); min-height: 600px; padding-block: 68px 76px; }
.eyebrow { font-weight: 800; text-transform:uppercase; letter-spacing:.19em; font-size:11px; color:#78cde1; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 500; }
h1 { font-size: clamp(48px, 5.25vw, 80px); line-height: 1.04; letter-spacing: -.035em; margin:24px 0 24px; }
h1 em { font-style:normal; color: var(--gold); }
.hero p { color:#c5d5e3; max-width: 560px; font-size:17px; line-height: 1.8; }
.actions { display:flex; flex-wrap:wrap; gap:13px; margin-top: 29px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:13px; text-decoration:none; font-weight:750; padding:13px 20px; min-height:44px; border-radius:3px; }
.button.primary { background:#f0c47e; color:#081a2d; }
.button.secondary { border:1px solid #89a4bb; color:#f4f8fb; }
.button.dark { background:var(--navy); color:white; }
.hero-meta { display:flex; gap:15px; margin-top:40px; flex-wrap:wrap; color:#b1c8da; text-transform:uppercase; font-size:10px; letter-spacing:.12em; }
.hero-meta span:not(:last-child)::after { content:' /'; color:#68d5e4; margin-left:16px; }
.hero-art { position:relative; padding-bottom:20px; }
.hero-art::before { content:''; display:block; position:absolute; width:70%; aspect-ratio:1; border-radius:50%; background:#2d6e8e; filter:blur(70px); opacity:.22; right:-10%; top:3%; }
.hero-image-wrap { position: relative; border: 1px solid #ffffff37; background:#819bd5; overflow:hidden; border-radius:4px; box-shadow: 0 36px 70px #020c18a1; }
.hero-image-wrap img { width:100%; height: 440px; object-fit: contain; }
.image-cap { position:relative; z-index:1; padding: 15px 18px; color: #dcebf5; background:#072037; border-top: 1px solid #7594af55; font-size:12px; }
.hero-label { position:absolute; z-index:2; top:-19px; left:-18px; background:#f4c879; color:#13253a; padding:10px 14px; font-weight:800; text-transform:uppercase; letter-spacing:.11em; font-size:10px; }
.section { padding: 90px 0; }
.section.white { background: #fff; }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:33px; }
h2 { font-size: clamp(34px, 3.4vw, 52px); line-height:1.16; letter-spacing: -.027em; margin: 13px 0 8px; }
.lead { max-width: 580px; color: #5a6975; font-size: 16px; margin: 0; }
.section-kicker { color:#087b98; text-transform:uppercase; font-weight:850; font-size:11px; letter-spacing:.2em; }
.text-link { display:inline-flex; gap:7px; color:var(--blue); text-decoration:none; font-size:13px; font-weight:750; white-space:nowrap; border-bottom: 1px solid #7f9cb2; padding-bottom:4px; }
.featured-grid { display:grid; grid-template-columns: 1.55fr 1fr; gap:24px; }
.featured-card, .research-card { background:white; border:1px solid var(--edge); overflow:hidden; border-radius:4px; }
.media { display:grid; place-items:center; background:#e5edfa; overflow:hidden; }
.media img { width:100%; height:100%; object-fit: contain; }
.featured-card .media { height: 335px; background:linear-gradient(#d9e6f5,#edf2fa); }
.featured-card:nth-child(2) .media { background:#8faadf; }
.featured-card:nth-child(2) .media img { max-height:330px; }
.featured-body { padding:25px 28px 28px; }
.micro { color:#147e9b; font-size:10px; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
h3 { font-size:22px; font-weight:700; line-height:1.35; letter-spacing:-.02em; margin:8px 0; }
.featured-body p,.research-card p { font-size:14px; color:var(--muted); margin:0; }
.topic-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.research-card .media { height:230px; background:#b0c4e2; }
.research-card .media.scaffold { background:#fff; }
.research-card .media.mix { background:#879fcc; }
.research-card .card-body { padding:22px 24px 26px; }
.research-card h3 { font-size:18px; }
.student-panel { display:grid; grid-template-columns: .95fr 1.05fr; gap:65px; align-items:center; padding:55px 68px; background:#09243e; color:white; border-radius:4px; }
.student-panel p {color:#b9cddd; }
.student-panel h2 { margin-top:10px; }
.student-icons { display:grid; grid-template-columns: 1fr 1fr; gap:14px; }
.student-icon { border:1px solid #52738c; border-radius:4px; padding:24px 21px; background:#153754; }
.student-icon strong {display:block; font-size:15px; margin-bottom:6px; }
.student-icon span {display:block;color:#bcd0dc;font-size:12px; }
.student-icon b {color:#76c8da;display:block;font-size:25px;margin-bottom:12px;font-weight:500; }
.bio-grid {display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.bio-card {padding:38px; border:1px solid var(--edge); background:white;border-radius:4px; }
.bio-card p {color:var(--muted);font-size:15px;}
.course-list {list-style:none;padding:0;margin:18px 0 24px;display:grid;gap:10px;}
.course-list li { border-bottom:1px solid #e0e7ea;padding-bottom:9px;display:flex;gap:14px;font-size:14px; }
.course-list span {color:#0f7d98;font-weight:800;min-width:82px;}
.publication {padding:25px 29px; background:#eaf0f3;border-left:4px solid #087a95; }
.publication p {margin:0;color:#3f5365;font-size:14px;}
.publication small {display:block;color:#4d687b;margin-top:8px;}
.cta {background:#f0c57f;padding:60px 0;color:#13283c;}
.cta-inner {display:flex;align-items:center;justify-content:space-between;gap:24px;}
.cta h2 {margin:0 0 10px;font-size:clamp(28px,3vw,44px);}
.cta p {margin:0;max-width:560px;color:#45515c;}
.footer {background:#081c32;color:#c1d4e1;padding:48px 0;}
.footer-inner {display:flex;justify-content:space-between;gap:30px;align-items:start;}
.footer strong {color:white;font-weight:750;}
.footer p {margin:8px 0;font-size:13px;}
.footer a {color:#c1e3ef;}
.footer .fineprint {color:#91a8ba;font-size:12px;max-width:430px;}
@media (max-width: 960px) {
 .hero-inner {grid-template-columns:1fr 1fr;gap:32px; min-height:unset;}
 h1 {font-size:clamp(42px,5vw,65px);}
 .hero-image-wrap img {height:360px;}
 .student-panel {padding:40px;gap:35px;}
 .nav-links {gap:13px;}
}
@media (max-width: 730px) {
 .container {width:min(calc(100% - 36px),var(--max));}
 .motion-band {height:94px;}
 .ur-name {font-size:17px;}
 .ur-line {font-size:9px;}
 .motion-toggle {font-size:11px;}
 .nav-inner {align-items:start;flex-direction:column;gap:12px;padding:18px 0;}
 .nav-links {gap:14px;}
 .nav-links .nav-contact {padding:6px 9px;}
 .hero-inner {grid-template-columns:1fr;gap:45px;padding:57px 0 62px;}
 .hero-image-wrap img {height:390px;}
 .hero-label {left:0;}
 .hero p {font-size:16px;}
 .hero-meta {margin-top:28px;}
 .section {padding:63px 0;}
 .section-head {display:block;}
 .section-head .text-link {margin-top:20px;}
 .featured-grid,.topic-grid,.bio-grid,.student-panel {grid-template-columns:1fr;}
 .student-panel {padding:28px;}
 .student-icons {gap:9px;}
 .student-icon {padding:17px;}
 .bio-card {padding:26px;}
 .cta-inner,.footer-inner {display:block;}
 .cta .button {margin-top:25px;}
 .featured-card .media {height:290px;}
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Additional research-group pages */
.nav-links a[aria-current="page"] { color:#087b98; border-bottom:2px solid #087b98; padding-bottom:4px; }
.page-hero { background:linear-gradient(118deg,#071d34,#17466a); color:#fff; padding:75px 0 85px; }
.page-hero h1 { font-size:clamp(43px,5vw,68px); margin:16px 0 19px; }
.page-hero p { color:#d1e1ed; max-width:850px; font-size:18px; line-height:1.75; }
.page-content { max-width:1110px; }
.page-content > h2 { margin-top:48px; }
.page-content > h2:first-child {margin-top:0}
.page-content > p, .page-content > ul { max-width:930px; }
.page-content a:not(.button) {text-underline-offset:3px}
.notice {background:#eaf1f5;border-left:4px solid #1688a2;padding:19px 24px;margin:20px 0 30px;color:#233e54;}
.list-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0 35px; }
.directory-item {background:#fff;border:1px solid var(--edge);padding:23px 25px;border-radius:4px;}
.directory-item h3 {font-size:19px;margin:7px 0;}
.directory-item p {font-size:14px;color:var(--muted);margin:0}
.archive-year {margin:42px 0 48px}
.archive-year h2 {font-size:35px}
.source-note {font-size:13px;color:#687987; margin:35px 0;}
.page-actions {display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.research-area {padding:24px 0 42px;border-bottom:1px solid var(--edge);margin-bottom:28px}
.research-area-head {display:grid;grid-template-columns:1fr 275px;gap:25px;align-items:center}
.research-area-head img {width:275px;height:180px;object-fit:contain;background:#dfe9f3;border-radius:4px}
.research-area h2 {font-size:clamp(27px,3vw,43px)}
.plain-list {line-height:1.85}
.publication-list {padding-left:27px;max-width:960px}
.publication-list li {padding:12px 0;border-bottom:1px solid var(--edge)}
@media(max-width:730px) {.list-grid,.research-area-head {grid-template-columns:1fr}.research-area-head img {width:100%}.page-hero {padding:60px 0 65px}}
