:root{--bg:#f7f9fc;--surface:#fff;--text:#172033;--muted:#5f6b7a;--line:#dfe5ee;--accent:#2f5ea8;--accent-dark:#23477f;--soft:#edf3fb;--shadow:0 18px 50px rgba(26,43,74,.10);--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--bg);font-family:Inter,system-ui,sans-serif;line-height:1.7}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1120px,calc(100% - 40px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:10;background:rgba(247,249,252,.9);border-bottom:1px solid rgba(223,229,238,.8);backdrop-filter:blur(14px)}.nav-wrap{min-height:70px;display:flex;align-items:center;justify-content:space-between}.brand{font-family:"Source Serif 4",serif;font-size:1.24rem;font-weight:700}.nav-links{display:flex;gap:24px;font-size:.92rem;color:var(--muted)}.nav-links a:hover{color:var(--accent)}.nav-toggle{display:none;border:0;background:transparent;font-size:1.35rem}
.hero{min-height:72vh;display:grid;grid-template-columns:1.45fr .55fr;gap:70px;align-items:center;padding:72px 0}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.11em;font-size:.78rem;font-weight:700;margin:0 0 12px}.section-kicker{font-family:"Source Serif 4",serif;color:var(--accent-dark);font-size:clamp(2.15rem,3.4vw,3.15rem);font-weight:700;letter-spacing:-.025em;line-height:1.12;margin:0 0 28px}h1,h2{font-family:"Source Serif 4",serif;line-height:1.12;margin:0}h1{font-size:clamp(3rem,6vw,5rem);letter-spacing:-.04em}h2{font-size:clamp(2rem,3.2vw,3rem);letter-spacing:-.025em}h3{font-size:1.32rem;line-height:1.35;margin:0}.lead{max-width:760px;font-size:clamp(1.08rem,1.8vw,1.3rem);color:var(--muted);margin:24px 0 0}.hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 19px;border:1px solid var(--line);border-radius:999px;font-weight:600;background:var(--surface)}.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(47,94,168,.13)}.social-links{display:flex;gap:22px;margin-top:22px;flex-wrap:wrap;font-size:.94rem;color:var(--accent)}.portrait-card{max-width:320px;justify-self:end;border-radius:32px;padding:15px;background:linear-gradient(145deg,#fff,#eaf0f8);box-shadow:var(--shadow)}.portrait-card img{width:100%;border-radius:22px;aspect-ratio:4/5;object-fit:cover}
.section{padding:96px 0}.alt-bg{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.split-intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:76px;align-items:start}.prose{font-size:1.04rem;color:var(--muted)}.prose p:first-child{margin-top:0}.section-deck{max-width:720px;color:var(--muted);font-size:1.02rem;margin:16px 0 0}
.timeline{margin-top:10px}.timeline-item{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:24px 0;border-top:1px solid var(--line)}.timeline-item:last-child{border-bottom:1px solid var(--line)}.timeline-item h3{margin-bottom:5px}.timeline-item p{margin:0;color:var(--muted)}.timeline-date{color:var(--accent);font-weight:700}
.research-list{margin-top:8px}.research-project{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:48px;align-items:center;padding:46px 0;border-top:1px solid var(--line)}.research-project:last-child{border-bottom:1px solid var(--line)}.research-visual{position:relative;min-height:300px;border-radius:20px;overflow:hidden;border:1px solid #d7e0ed;background:linear-gradient(145deg,#eef4fb,#dfeaf7);box-shadow:0 14px 36px rgba(30,58,99,.08)}
.research-image-card{background:#fff;padding:0;display:flex;align-items:center;justify-content:center;min-height:0;aspect-ratio:16/9}
.research-image-card img{width:100%;height:100%;object-fit:contain;background:#fff}
.visual-label{position:absolute;left:18px;top:16px;z-index:2;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#355c91;background:rgba(255,255,255,.82);padding:7px 10px;border-radius:999px}.project-title{font-family:Inter,system-ui,sans-serif;font-size:clamp(1.28rem,1.85vw,1.72rem);letter-spacing:.01em;line-height:1.32;margin:0 0 18px;color:var(--accent);font-weight:800}.project-title span{display:inline-block;margin-right:10px;color:var(--accent);font-family:Inter,system-ui,sans-serif;font-size:1em;font-weight:800;letter-spacing:.02em}.research-copy>p{color:var(--muted);margin:0 0 20px;font-size:1.03rem}.paper-meta{border-left:3px solid var(--accent);padding-left:16px;display:grid;gap:5px;font-size:.9rem}.paper-meta span{color:var(--muted)}.paper-meta a{color:var(--accent);font-weight:600;line-height:1.45}.paper-meta a:hover{text-decoration:underline}
.tree-schematic{position:absolute;inset:70px 36px 32px;display:flex;align-items:center;justify-content:center;gap:24px}.radar{width:42px;height:70px;border-radius:8px;background:#315f9e;box-shadow:8px 8px 0 #b9cbe2}.waves{color:#5280bd;font-size:2rem;letter-spacing:-5px}.trunk{width:118px;height:170px;border-radius:45% 46% 42% 48%;background:repeating-linear-gradient(90deg,#9b6844 0 9px,#b7835c 9px 17px);position:relative}.trunk span{position:absolute;width:38px;height:52px;border-radius:50%;background:#49382f;left:45px;top:65px}
.visual-migration .workflow{position:absolute;left:32px;right:32px;top:92px;display:flex;justify-content:space-between;align-items:center}.workflow b{background:#fff;padding:12px 13px;border-radius:12px;color:#284f83;box-shadow:0 8px 22px rgba(40,79,131,.12)}.workflow i{font-style:normal;color:#7294bd;font-size:1.4rem}.scan-grid{position:absolute;left:50px;right:50px;bottom:36px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.scan-grid span{height:84px;border-radius:10px;background:repeating-linear-gradient(0deg,#e8f0fa 0 8px,#5d87bb 8px 11px,#e8f0fa 11px 19px)}
.visual-msformer{display:flex;align-items:center;justify-content:center;gap:13px;padding:60px 24px 20px}.bscan{width:92px;height:150px;border-radius:10px;background:repeating-radial-gradient(ellipse at center,#28538b 0 3px,#9cb9d9 4px 8px,#edf4fb 9px 14px)}.bscan.before{clip-path:polygon(0 0,25% 0,25% 100%,45% 100%,45% 0,65% 0,65% 100%,80% 100%,80% 0,100% 0,100% 100%,0 100%)}.network{width:80px;height:80px;border-radius:18px;background:#2f5ea8;color:#fff;display:grid;place-items:center;text-align:center;font-weight:700;line-height:1.1}.arrow{color:#6d8eb5;font-size:1.4rem}.visual-em .mesh{position:absolute;inset:62px 28px 28px;background-image:linear-gradient(#7595bb 1px,transparent 1px),linear-gradient(90deg,#7595bb 1px,transparent 1px);background-size:22px 22px;transform:perspective(420px) rotateX(58deg);border:1px solid #7696bd}.field-ring{position:absolute;border:3px solid rgba(47,94,168,.55);border-radius:50%;left:50%;top:55%;transform:translate(-50%,-50%)}.r1{width:65px;height:65px}.r2{width:125px;height:125px}.r3{width:190px;height:190px}
.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:30px}.news-list{margin-top:16px;border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:160px 1fr;gap:30px;padding:28px 0;border-bottom:1px solid var(--line)}.news-item time{color:var(--accent);font-weight:700}.news-item h3{margin-bottom:7px}.news-item p{margin:0 0 8px;color:var(--muted)}.news-item a,.text-link{color:var(--accent);font-weight:600}
.video-card{margin-top:18px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:0 12px 32px rgba(26,43,74,.08)}.video-frame{position:relative;width:100%;aspect-ratio:16/9;background:#eaf0f8}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-caption{padding:16px 18px;color:var(--muted);font-size:.96rem}.video-caption strong{display:block;color:var(--text);margin-bottom:2px}
.publication-list{margin-top:16px;border-top:1px solid var(--line)}.pub-year-block{padding:30px 0;border-bottom:1px solid var(--line)}.year-heading{font-family:"Source Serif 4",serif;font-size:clamp(1.55rem,2.2vw,2rem);letter-spacing:-.015em;color:var(--accent-dark);margin:0 0 16px}.publication{display:block;padding:20px 0;border-top:1px solid rgba(223,229,238,.75)}.publication:first-of-type{border-top:0}.publication h4{font-size:1.08rem;line-height:1.42;margin:0 0 7px;color:var(--text)}.publication p{margin:4px 0}.venue{color:var(--muted);font-style:italic}.year-grouped{border-bottom:0}.muted{color:var(--muted)}.clean-list{margin:18px 0 0;padding-left:20px;color:var(--muted)}.clean-list li{margin:9px 0}.two-column-list{columns:2;column-gap:44px}
.contact-band{background:var(--accent-dark);color:#fff}.contact-band .section-kicker{color:#fff}.contact-band p{color:#dbe8fb}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.button.light{background:#fff;color:var(--accent-dark);border-color:#fff}footer{padding:28px 0}.footer-inner{display:flex;justify-content:space-between;color:var(--muted);font-size:.9rem}
@media(max-width:850px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:70px;left:0;right:0;background:var(--surface);flex-direction:column;padding:22px 20px;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.hero{grid-template-columns:1fr;min-height:auto;gap:40px}.portrait-card{justify-self:start;max-width:250px}.split-intro{grid-template-columns:1fr;gap:25px}.research-project{grid-template-columns:1fr;gap:28px}.research-visual{min-height:280px}.contact-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.container{width:min(100% - 28px,1120px)}.section{padding:74px 0}.timeline-item,.news-item{grid-template-columns:1fr;gap:5px}.section-heading-row{align-items:flex-start;flex-direction:column}.two-column-list{columns:1}.footer-inner{flex-direction:column;gap:4px}.research-visual{min-height:250px}.visual-msformer{gap:7px;padding-left:10px;padding-right:10px}.bscan{width:65px;height:125px}.network{width:62px;height:70px}.tree-schematic{inset-left:15px;inset-right:15px}}

@media(max-width:850px){.research-image-card{min-height:0}}


/* Research layout v2: title / media / description / paper */
.research-section .research-stack-list{display:grid;gap:28px;margin-top:10px}
.research-project-stacked{display:flex;flex-direction:column;gap:20px;padding:30px 32px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#ffffff 0%, #fbfcff 100%);box-shadow:0 14px 36px rgba(26,43,74,.06)}
.research-project-stacked .project-title{margin:0;font-size:clamp(1.35rem,2vw,1.8rem)}
.research-project-stacked .research-visual{width:100%;min-height:0;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:linear-gradient(145deg,#eef4fb,#dfeaf7)}
.research-project-stacked .research-copy{display:flex;flex-direction:column;gap:16px}
.research-project-stacked .research-copy>p{margin:0;font-size:1.02rem;line-height:1.8;color:var(--muted)}
.research-project-stacked .paper-meta{margin-top:2px;background:#fff;border:1px solid #d9e2ef;border-left:4px solid var(--accent);border-radius:14px;padding:16px 18px 16px 16px;box-shadow:0 8px 22px rgba(47,94,168,.05)}
.research-project-stacked .research-image-card{padding:0;background:#fff}
.research-project-stacked .research-image-card img{object-fit:contain;padding:0;background:#fff}
.research-project-stacked .visual-migration .workflow{top:84px}
.research-project-stacked .visual-msformer{padding-top:68px}
.research-project-stacked .visual-em .mesh{inset:68px 38px 34px}
@media(max-width:850px){.research-project-stacked{padding:24px}.research-project-stacked .research-visual{aspect-ratio:16/10}}
@media(max-width:560px){.research-project-stacked{padding:20px}.research-project-stacked .paper-meta{padding:14px}.research-project-stacked .research-visual{aspect-ratio:4/3}}


/* Research paper citation formatting */
.research-project-stacked .paper-meta p {
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.65;
}
.research-project-stacked .paper-meta em {
  color: var(--text);
}
.research-project-stacked .paper-meta p a {
  color: var(--accent);
  font-weight: 700;
  white-space: nowrap;
}
.research-project-stacked .paper-meta p a:hover {
  text-decoration: underline;
}


/* Ensure all research project titles are left-aligned */
.research-project-stacked .project-title,
.research-project-stacked .project-title span {
  text-align: left;
}

.research-project-stacked {
  align-items: stretch;
}

.research-project-stacked .project-title {
  width: 100%;
  align-self: stretch;
}


/* Project 4 dynamic visual panel placeholder */
.project4-dynamic-panel {
  padding: 18px;
  background: linear-gradient(135deg, #f8fbff 0%, #eef4fb 100%);
  border: 1px solid #d7e0ed;
  border-radius: 22px;
  display: grid;
  grid-template-columns: 1.05fr 1.05fr 1fr 1fr;
  grid-template-rows: 1.05fr .78fr;
  gap: 14px;
  min-height: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.project4-dynamic-panel .p4-panel-cell {
  position: relative;
  min-width: 0;
  min-height: 0;
  background: rgba(255,255,255,.82);
  border: 1px solid #dce5f2;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(26,43,74,.06);
}

.p4-background {
  grid-column: 1;
  grid-row: 1 / 3;
}

.p4-method {
  grid-column: 2;
  grid-row: 1 / 3;
}

.p4-animation-group {
  grid-column: 3 / 5;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  padding: 44px 12px 12px;
}

.p4-results {
  grid-column: 3 / 5;
  grid-row: 2;
  padding: 44px 12px 12px;
}

.p4-cell-title,
.p4-group-title {
  position: absolute;
  left: 12px;
  right: 12px;
  top: 10px;
  z-index: 2;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--accent);
  font-size: .72rem;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  border: 1px solid rgba(47,94,168,.12);
}

.p4-placeholder {
  height: 100%;
  padding: 58px 18px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
  color: var(--muted);
  background:
    radial-gradient(circle at 50% 34%, rgba(47,94,168,.10), transparent 30%),
    linear-gradient(135deg, rgba(47,94,168,.06), rgba(64,124,184,.04));
}

.p4-placeholder strong {
  color: var(--accent-dark);
  font-size: .98rem;
  line-height: 1.35;
}

.p4-placeholder span {
  font-size: .82rem;
  line-height: 1.55;
}

.p4-gif-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  height: 100%;
  min-height: 0;
}

.p4-gif-card {
  min-width: 0;
  min-height: 0;
  background: #f7f9fc;
  border: 1px solid #e1e7f0;
  border-radius: 14px;
  padding: 30px 10px 10px;
  position: relative;
  display: grid;
  place-items: center;
}

.p4-mini-title {
  position: absolute;
  left: 10px;
  right: 10px;
  top: 8px;
  color: var(--accent-dark);
  font-size: .72rem;
  font-weight: 800;
  text-align: center;
}

.p4-gif-placeholder {
  width: min(100%, 150px);
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(29,56,96,.15), rgba(47,94,168,.05)),
    repeating-linear-gradient(0deg, rgba(47,94,168,.16) 0 1px, transparent 1px 14px),
    repeating-linear-gradient(90deg, rgba(47,94,168,.16) 0 1px, transparent 1px 14px);
  border: 1px dashed rgba(47,94,168,.35);
  display: grid;
  place-items: center;
  color: var(--accent);
  font-size: .78rem;
  font-weight: 800;
}

.p4-result-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  height: 100%;
  min-height: 0;
}

.p4-result-card {
  min-width: 0;
  min-height: 0;
  border: 1px dashed rgba(47,94,168,.32);
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff, #f4f7fb);
  display: grid;
  place-items: center;
  padding: 10px;
  text-align: center;
}

.p4-result-card span {
  color: var(--accent-dark);
  font-size: .74rem;
  font-weight: 800;
  line-height: 1.35;
}

.project4-dynamic-panel img,
.project4-dynamic-panel video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

@media(max-width: 850px) {
  .project4-dynamic-panel {
    aspect-ratio: auto;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
  }
  .p4-background { grid-column: 1; grid-row: 1; min-height: 260px; }
  .p4-method { grid-column: 2; grid-row: 1; min-height: 260px; }
  .p4-animation-group { grid-column: 1 / 3; grid-row: 2; min-height: 260px; }
  .p4-results { grid-column: 1 / 3; grid-row: 3; min-height: 190px; }
}

@media(max-width: 560px) {
  .project4-dynamic-panel {
    grid-template-columns: 1fr;
  }
  .p4-background,
  .p4-method,
  .p4-animation-group,
  .p4-results {
    grid-column: 1;
    grid-row: auto;
  }
  .p4-gif-grid,
  .p4-result-grid {
    grid-template-columns: 1fr;
  }
  .p4-animation-group,
  .p4-results,
  .p4-background,
  .p4-method {
    min-height: 240px;
  }
}


/* Project 4 inserted media refinements */
.p4-gif-card {
  background: #ffffff;
}

.p4-gif-media {
  width: min(100%, 160px);
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid #dfe7f2;
  background: #f7f9fc;
}

.p4-result-card {
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 5px;
  overflow: hidden;
}

.p4-result-card img {
  width: 100%;
  height: 100%;
  max-height: 115px;
  object-fit: contain;
  background: #fff;
  border-radius: 8px;
}

.p4-result-card span {
  display: block;
  padding-top: 2px;
}

@media(max-width: 850px) {
  .p4-gif-media {
    width: min(100%, 210px);
  }
  .p4-result-card img {
    max-height: 170px;
  }
}


/* Project 4 static inserted media */
.p4-static-media {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #fff;
}


/* Project 4 composite results panel */
.p4-results {
  display: flex;
  flex-direction: column;
  padding: 42px 10px 10px;
}

.p4-result-composite {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p4-result-figure-wrap {
  flex: 1 1 auto;
  min-height: 0;
  border: 1px solid rgba(47,94,168,.18);
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  padding: 8px;
  overflow: hidden;
}

.p4-result-figure {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.p4-result-note {
  flex: 0 0 auto;
  font-size: .72rem;
  line-height: 1.25;
  color: var(--accent);
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  padding: 0 6px 2px;
}

/* Disable legacy three-card result layout if still present elsewhere */
.p4-result-grid { display: none; }

@media(max-width: 850px) {
  .p4-results {
    min-height: 230px;
  }
  .p4-result-note {
    font-size: .78rem;
  }
}


/* Project 4 result takeaway highlight */
.p4-result-note {
  flex: 0 0 auto;
  font-size: .76rem;
  line-height: 1.2;
  color: var(--accent);
  font-weight: 800;
  letter-spacing: .01em;
  text-align: center;
  padding: 4px 8px 6px;
}

.p4-result-note .p4-highlight {
  color: #d94f2a;
  font-weight: 900;
}


/* Ensure Project 4 result takeaway matches the panel-title typography */
.p4-result-note {
  font-size: .72rem;
  line-height: 1.25;
  color: var(--accent);
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  padding: 6px 10px;
}

.p4-result-note .p4-highlight {
  color: #d94f2a;
  font-weight: 900;
}


/* Project 2 corrected figure-based layout */
.project2-figure-panel {
  padding: 18px;
  background: linear-gradient(135deg, #f8fbff 0%, #eef4fb 100%);
  border: 1px solid #d7e0ed;
  border-radius: 22px;
  display: grid;
  grid-template-rows: 1fr 0.92fr;
  gap: 16px;
  aspect-ratio: 16 / 10.2;
  overflow: hidden;
}

.p2-method-block,
.p2-result-block {
  min-width: 0;
  min-height: 0;
  background: rgba(255,255,255,.86);
  border: 1px solid #dce5f2;
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(26,43,74,.06);
  overflow: hidden;
}

.p2-method-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
}

.p2-panel-title {
  align-self: center;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: var(--accent);
  font-size: .76rem;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  border: 1px solid rgba(47,94,168,.12);
}

.p2-method-image-slot {
  flex: 1 1 auto;
  min-height: 0;
  border: 1px dashed rgba(47,94,168,.32);
  border-radius: 14px;
  background:
    linear-gradient(180deg, #ffffff, #f7faff),
    repeating-linear-gradient(90deg, rgba(47,94,168,.05) 0 1px, transparent 1px 34px);
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.45;
  font-weight: 700;
  padding: 14px;
}

.p2-result-block {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
}

.p2-result-title-row {
  display: grid;
  grid-template-columns: 5.08fr 5.8fr;
  gap: 12px;
  align-items: stretch;
}

.p2-result-title {
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: var(--accent);
  font-size: .72rem;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  border: 1px solid rgba(47,94,168,.12);
}

.p2-result-title span {
  color: var(--muted);
  font-weight: 700;
  letter-spacing: 0;
}

.p2-result-image-slot {
  min-height: 0;
  border: 1px dashed rgba(47,94,168,.32);
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff, #f7faff);
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
  font-weight: 700;
  padding: 14px;
}

.project2-figure-panel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* Replacement hooks:
   1) Replace .p2-method-image-slot content with:
      <img src="assets/images/research/project2-methodology.png" alt="...">
   2) Replace .p2-result-image-slot content with:
      <img src="assets/images/research/project2-results-comparison.png" alt="...">
   3) Result title columns follow the provided physical widths:
      left 5.08 in, right 5.80 in.
*/

@media(max-width: 850px) {
  .project2-figure-panel {
    aspect-ratio: auto;
    grid-template-rows: auto auto;
  }

  .p2-method-block {
    min-height: 300px;
  }

  .p2-result-block {
    min-height: 260px;
  }
}

@media(max-width: 560px) {
  .p2-result-title-row {
    grid-template-columns: 1fr;
  }
}


/* Project 2 split-panel layout v2: top methodology image + bottom composite results image */
.project2-split-panel-v2 {
  width: 100%;
  padding: 18px;
  background: linear-gradient(135deg, #f8fbff 0%, #eef4fb 100%);
  border: 1px solid #d7e0ed;
  border-radius: 22px;
  display: grid;
  grid-template-rows: 0.95fr 1.05fr;
  gap: 16px;
  aspect-ratio: 16 / 10.4;
  overflow: hidden;
}

.project2-split-panel-v2 .p2v2-method-section,
.project2-split-panel-v2 .p2v2-results-section {
  min-width: 0;
  min-height: 0;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid #dce5f2;
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(26, 43, 74, 0.06);
  overflow: hidden;
}

.p2v2-method-section {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
}

.p2v2-title-pill {
  justify-self: center;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--accent);
  font-size: .76rem;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  border: 1px solid rgba(47, 94, 168, 0.12);
}

.p2v2-method-slot {
  min-height: 0;
  border: 1px dashed rgba(47, 94, 168, 0.36);
  border-radius: 14px;
  background:
    linear-gradient(180deg, #ffffff, #f7faff),
    repeating-linear-gradient(90deg, rgba(47, 94, 168, .045) 0 1px, transparent 1px 34px);
  display: grid;
  place-items: center;
  color: var(--muted);
  text-align: center;
  font-size: .82rem;
  line-height: 1.45;
  font-weight: 700;
  padding: 14px;
}

.p2v2-results-section {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
}

.p2v2-result-title-row {
  display: grid;
  grid-template-columns: 5.08fr 5.8fr;
  gap: 12px;
  align-items: stretch;
}

.p2v2-result-title {
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--accent);
  font-size: .72rem;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  border: 1px solid rgba(47, 94, 168, 0.12);
}

.p2v2-result-title span {
  display: block;
  color: var(--muted);
  font-weight: 700;
  letter-spacing: 0;
}

.p2v2-result-image-wrap {
  min-height: 0;
  border-radius: 14px;
  border: 1px solid rgba(47, 94, 168, .18);
  background: #ffffff;
  padding: 8px;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.p2v2-result-image-wrap img,
.p2v2-method-slot img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

@media(max-width: 850px) {
  .project2-split-panel-v2 {
    aspect-ratio: auto;
    grid-template-rows: auto auto;
  }
  .p2v2-method-section { min-height: 320px; }
  .p2v2-results-section { min-height: 300px; }
}

@media(max-width: 560px) {
  .p2v2-result-title-row {
    grid-template-columns: 1fr;
  }
}


/* Project 2 inserted methodology/results images */
.p2v2-method-image-wrap,
.p2v2-result-image-wrap {
  background: #ffffff;
}

.p2v2-method-image-wrap,
.p2v2-result-image-wrap {
  padding: 0;
  border: none;
}

.p2v2-method-image-wrap img,
.p2v2-result-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.p2v2-results-no-title {
  grid-template-rows: minmax(0, 1fr);
  padding: 12px;
}

.p2v2-results-no-title .p2v2-result-image-wrap {
  min-height: 0;
  border-radius: 14px;
  overflow: hidden;
}

@media(max-width: 850px) {
  .p2v2-results-no-title {
    min-height: 260px;
  }
}


/* Project 2 single 16:9 composite figure */
.research-image-card img[src*="project2-composite-16x9"] {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  display: block;
  background: #fff;
}


/* About-first homepage redesign */
.about-section-redesigned {
  padding-top: 78px;
}

.about-grid-new {
  display: grid;
  grid-template-columns: 0.9fr 0.55fr 1.65fr;
  align-items: start;
  column-gap: 44px;
}

.about-left-panel h2 {
  margin: 0 0 22px;
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 4vw, 3rem);
  line-height: 1.05;
  color: var(--accent-dark);
}

.about-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 11px;
  margin: 0 0 18px;
}

.about-actions .button {
  min-width: 126px;
  justify-content: center;
}

.about-socials {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
}

.about-socials a {
  color: var(--accent);
  font-size: .84rem;
  font-weight: 600;
  text-decoration: none;
}

.about-socials a:hover {
  color: var(--accent-dark);
}

.about-photo-panel {
  display: flex;
  justify-content: center;
  padding-top: 8px;
}

.about-photo-panel img {
  width: 124px;
  height: 124px;
  object-fit: cover;
  border-radius: 26px;
  padding: 10px;
  background: #ffffff;
  border: 1px solid #e0e7f0;
  box-shadow: 0 18px 38px rgba(26,43,74,.10);
}

.about-text-panel {
  max-width: 650px;
}

.about-text-panel p:first-child {
  margin-top: 0;
}

@media(max-width: 850px) {
  .about-section-redesigned {
    padding-top: 56px;
  }

  .about-grid-new {
    grid-template-columns: 1fr;
    row-gap: 24px;
  }

  .about-actions,
  .about-socials {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px 16px;
  }

  .about-photo-panel {
    justify-content: flex-start;
    padding-top: 0;
  }

  .about-photo-panel img {
    width: 106px;
    height: 106px;
  }
}


/* Corrected News layout: title first, then text-left/image-right */
.news-item.news-item-with-image {
  grid-template-columns: 160px minmax(0, 1fr);
}

.news-main-with-image {
  min-width: 0;
}

.news-main-with-image h3 {
  margin: 0 0 8px;
}

.news-body-with-image {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(240px, 2fr);
  gap: 28px;
  align-items: start;
}

.news-body-with-image .news-text {
  min-width: 0;
}

.news-body-with-image .news-text p {
  margin: 0 0 8px;
}

.news-body-with-image .news-text a {
  display: inline-block;
  margin-right: 18px;
  margin-top: 4px;
}

.news-image-right {
  margin: 0;
  width: 100%;
}

.news-image-right img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  border-radius: 16px;
  border: 1px solid var(--line);
  box-shadow: 0 12px 28px rgba(26,43,74,.10);
}

@media(max-width: 820px) {
  .news-body-with-image {
    grid-template-columns: 1fr;
  }

  .news-body-with-image .news-text a {
    display: block;
    margin-right: 0;
  }
}




/* Header and About refinements */
.site-header {
  min-height: 72px;
}

.nav-wrap {
  padding-top: 18px;
  padding-bottom: 18px;
}

.brand {
  font-size: 1.34rem;
  font-weight: 800;
  letter-spacing: .01em;
}

.nav-links {
  gap: 30px;
}

.nav-links a {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: .015em;
}

.about-grid-new {
  grid-template-columns: 0.85fr 0.85fr 1.55fr;
  column-gap: 52px;
}

.about-photo-panel {
  justify-content: center;
  padding-top: 0;
}

.about-photo-panel img {
  width: clamp(220px, 18vw, 300px);
  height: clamp(280px, 23vw, 380px);
  object-fit: cover;
  object-position: center top;
  border-radius: 30px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e0e7f0;
  box-shadow: 0 22px 48px rgba(26,43,74,.13);
}

@media(max-width: 850px) {
  .site-header {
    min-height: 64px;
  }

  .brand {
    font-size: 1.16rem;
  }

  .nav-links a {
    font-size: .98rem;
  }

  .about-grid-new {
    grid-template-columns: 1fr;
    row-gap: 24px;
  }

  .about-photo-panel img {
    width: min(72vw, 260px);
    height: auto;
    aspect-ratio: 4 / 5;
  }
}


/* Refined header and portrait sizing */
.site-header {
  min-height: 78px;
}

.nav-wrap {
  max-width: 1360px;
  padding-top: 18px;
  padding-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(120px, 22vw, 360px);
}

.brand {
  font-size: clamp(1.55rem, 1.55vw, 1.9rem);
  font-weight: 850;
  letter-spacing: .01em;
  white-space: nowrap;
}

.nav-links {
  gap: clamp(24px, 2.2vw, 42px);
}

.nav-links a {
  font-size: clamp(1.15rem, 1.05vw, 1.36rem);
  font-weight: 650;
  letter-spacing: .015em;
}

.about-grid-new {
  grid-template-columns: 0.78fr 1.05fr 1.55fr;
  column-gap: clamp(44px, 4vw, 70px);
  align-items: start;
}

.about-photo-panel {
  justify-content: center;
  align-self: stretch;
  padding-top: 0;
}

.about-photo-panel img {
  width: clamp(260px, 22vw, 360px);
  height: auto;
  aspect-ratio: 1462 / 2048;
  object-fit: cover;
  object-position: center top;
  border-radius: 30px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e0e7f0;
  box-shadow: 0 24px 54px rgba(26,43,74,.14);
}

@media(max-width: 1100px) {
  .nav-wrap {
    gap: clamp(60px, 12vw, 160px);
  }

  .nav-links {
    gap: 22px;
  }

  .nav-links a {
    font-size: 1.06rem;
  }

  .about-grid-new {
    grid-template-columns: 0.78fr 0.95fr 1.45fr;
    column-gap: 36px;
  }

  .about-photo-panel img {
    width: clamp(230px, 21vw, 300px);
  }
}

@media(max-width: 850px) {
  .site-header {
    min-height: 68px;
  }

  .nav-wrap {
    justify-content: space-between;
    gap: 18px;
  }

  .brand {
    font-size: 1.32rem;
  }

  .nav-links a {
    font-size: 1rem;
  }

  .about-grid-new {
    grid-template-columns: 1fr;
    row-gap: 24px;
  }

  .about-photo-panel {
    justify-content: flex-start;
  }

  .about-photo-panel img {
    width: min(76vw, 320px);
    height: auto;
    aspect-ratio: 1462 / 2048;
  }
}


/* Final About portrait micro-adjustment */
.about-grid-new {
  grid-template-columns: 0.82fr 0.82fr 1.62fr;
  column-gap: clamp(34px, 3.2vw, 56px);
}

.about-photo-panel {
  justify-content: flex-start;
  transform: translateX(-18px);
}

.about-photo-panel img {
  width: clamp(235px, 19vw, 315px);
  height: auto;
  aspect-ratio: 1462 / 2048;
  object-fit: cover;
  object-position: center top;
}

@media(max-width: 1100px) {
  .about-grid-new {
    grid-template-columns: 0.78fr 0.82fr 1.52fr;
    column-gap: 32px;
  }

  .about-photo-panel {
    transform: translateX(-8px);
  }

  .about-photo-panel img {
    width: clamp(220px, 19vw, 280px);
  }
}

@media(max-width: 850px) {
  .about-photo-panel {
    transform: none;
  }

  .about-photo-panel img {
    width: min(72vw, 300px);
  }
}


/* Final About portrait balance: smaller and more centered between left links and text */
.about-grid-new {
  grid-template-columns: 0.86fr 0.68fr 1.66fr;
  column-gap: clamp(30px, 2.6vw, 46px);
}

.about-photo-panel {
  justify-content: center;
  transform: translateX(-42px);
}

.about-photo-panel img {
  width: clamp(210px, 16.5vw, 275px);
  height: auto;
  aspect-ratio: 1462 / 2048;
  object-fit: cover;
  object-position: center top;
}

@media(max-width: 1100px) {
  .about-grid-new {
    grid-template-columns: 0.82fr 0.68fr 1.58fr;
    column-gap: 28px;
  }

  .about-photo-panel {
    transform: translateX(-24px);
  }

  .about-photo-panel img {
    width: clamp(200px, 17vw, 245px);
  }
}

@media(max-width: 850px) {
  .about-photo-panel {
    transform: none;
    justify-content: flex-start;
  }

  .about-photo-panel img {
    width: min(68vw, 280px);
  }
}


/* Make advisor links visibly clickable in Education & Experience */
.timeline-item p a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}

.timeline-item p a:hover {
  color: var(--accent-dark);
  text-decoration: underline;
}
