:root {
  --bg: #f4f8fa;
  --surface: rgba(255,255,255,.82);
  --surface-solid: #ffffff;
  --ink: #142129;
  --soft-ink: #52656f;
  --muted: #84949c;
  --line: rgba(25,63,80,.10);
  --line-strong: rgba(25,63,80,.16);
  --accent: #467e91;
  --accent-dark: #28586a;
  --accent-soft: #e9f2f5;
  --accent-soft-2: #f0f7f9;
  --shadow: 0 30px 80px rgba(35,72,88,.10);
  --shadow-soft: 0 16px 44px rgba(35,72,88,.075);
  --shell: 1180px;
  --radius-lg: 30px;
  --radius-md: 20px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
::selection { background: #d9eaf0; color: var(--ink); }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid rgba(70,126,145,.22); outline-offset: 3px; }
button { font: inherit; }
.shell { width: min(calc(100% - 52px), var(--shell)); margin: 0 auto; }

.page-ambient { position: fixed; inset: 0; pointer-events: none; z-index: -2; overflow: hidden; }
.ambient-orb { position: absolute; border-radius: 50%; opacity: .62; }
.orb-one { width: 720px; height: 720px; right: -260px; top: -270px; background: radial-gradient(circle, rgba(176,216,229,.46) 0, rgba(219,237,243,.20) 45%, transparent 72%); }
.orb-two { width: 820px; height: 820px; left: -420px; top: 840px; background: radial-gradient(circle, rgba(195,226,220,.30) 0, rgba(232,243,241,.11) 47%, transparent 72%); }
.ambient-grid { position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(rgba(26,71,89,.032) 1px, transparent 1px), linear-gradient(90deg, rgba(26,71,89,.032) 1px, transparent 1px); background-size: 52px 52px; mask-image: linear-gradient(to bottom, black, transparent 76%); }
.cursor-glow { position: fixed; z-index: -1; width: 460px; height: 460px; border-radius: 50%; pointer-events: none; opacity: 0; transform: translate(-50%,-50%); background: radial-gradient(circle, rgba(132,190,207,.12), transparent 68%); transition: opacity .35s ease; }

.site-header { position: sticky; top: 14px; z-index: 50; padding: 12px 0 0; transition: .35s ease; }
.nav-wrap { min-height: 68px; padding: 10px 11px 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 22px; background: rgba(255,255,255,.74); border: 1px solid rgba(255,255,255,.92); border-radius: 23px; box-shadow: 0 13px 38px rgba(44,74,87,.085); backdrop-filter: blur(20px) saturate(1.35); transition: .35s ease; }
.site-header.scrolled .nav-wrap { min-height: 60px; background: rgba(255,255,255,.9); box-shadow: 0 11px 30px rgba(44,74,87,.11); }
.brand { display: grid; place-items: center; width: 43px; height: 43px; flex: 0 0 auto; border-radius: 14px; background: var(--ink); color: white; font-size: 12px; font-weight: 850; letter-spacing: .08em; box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 8px 18px rgba(18,32,40,.12); transition: transform .35s cubic-bezier(.2,.8,.2,1), border-radius .35s ease; }
.brand:hover { transform: rotate(-5deg) scale(1.05); border-radius: 50%; }
.primary-nav { display: flex; align-items: center; gap: 4px; }
.primary-nav a { position: relative; padding: 10px 12px; border-radius: 12px; font-size: 13px; font-weight: 650; color: #667881; transition: .2s ease; }
.primary-nav a:hover, .primary-nav a.active { color: var(--ink); background: rgba(70,126,145,.075); }
.primary-nav a.active::after { content: ""; position: absolute; left: 50%; bottom: 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); transform: translateX(-50%); }
.nav-actions { display: flex; align-items: center; gap: 7px; }
.icon-button, .menu-button { border: 0; background: transparent; cursor: pointer; }
.icon-button { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 12px; color: var(--soft-ink); background: rgba(255,255,255,.55); }
.copy-icon { width: 20px; height: 20px; display: grid; place-items: center; font-size: 10px; border-radius: 7px; background: var(--accent-soft); color: var(--accent-dark); }
.copy-label { font-size: 11px; font-weight: 700; }
.nav-cta { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: 12px; color: var(--ink); font-size: 13px; font-weight: 750; background: rgba(255,255,255,.72); transition: .25s ease; }
.nav-cta span { transition: transform .25s ease; }
.nav-cta:hover { border-color: rgba(70,126,145,.3); box-shadow: 0 8px 24px rgba(53,111,134,.08); }
.nav-cta:hover span { transform: translate(2px,-2px); }
.menu-button { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.65); }
.menu-button span { display: block; width: 16px; height: 1.5px; margin: 4px auto; background: var(--ink); transition: .25s ease; }

.hero { position: relative; min-height: calc(100vh - 28px); padding: 118px 0 88px; display: grid; grid-template-columns: minmax(0,1.04fr) minmax(400px,.96fr); grid-template-areas: "copy visual" "metrics visual"; gap: 42px 78px; align-items: center; }
.hero-copy { grid-area: copy; align-self: end; }
.hero-visual { grid-area: visual; position: relative; min-height: 610px; display: grid; place-items: center; align-self: stretch; }
.hero-metrics { grid-area: metrics; align-self: start; display: grid; grid-template-columns: repeat(3,1fr); max-width: 760px; border-top: 1px solid var(--line-strong); }
.hero-metrics div { position: relative; padding: 24px 26px 0 0; display: flex; flex-direction: column; gap: 3px; }
.hero-metrics div:not(:last-child)::after { content: ""; position: absolute; right: 18px; top: 25px; width: 1px; height: 35px; background: var(--line); }
.hero-metrics strong { font-size: 23px; letter-spacing: -.04em; }
.hero-metrics span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
.availability-pill { width: max-content; max-width: 100%; display: inline-flex; align-items: center; gap: 9px; padding: 7px 11px; border: 1px solid rgba(70,126,145,.13); border-radius: 999px; background: rgba(255,255,255,.76); color: var(--accent-dark); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 8px 24px rgba(53,111,134,.05); }
.pulse-dot { position: relative; width: 7px; height: 7px; border-radius: 50%; background: #528ea2; }
.pulse-dot::after { content: ""; position: absolute; inset: -4px; border: 1px solid rgba(82,142,162,.38); border-radius: 50%; animation: ping 2.4s ease-out infinite; }
@keyframes ping { 0% { transform: scale(.65); opacity: 1; } 75%,100% { transform: scale(1.7); opacity: 0; } }
.hero-kicker { margin: 34px 0 0; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
h1 { margin: 7px 0 19px; font-family: Georgia, "Times New Roman", ui-serif, serif; font-size: clamp(68px, 7.5vw, 106px); line-height: .88; letter-spacing: -.072em; font-weight: 500; }
h1 span { color: var(--accent); font-style: italic; }
.hero-role { margin: 0; font-size: clamp(22px,2.35vw,30px); line-height: 1.23; letter-spacing: -.038em; font-weight: 650; }
.hero-affiliation { margin: 11px 0 0; color: #62757f; font-size: 14px; }
.hero-summary { max-width: 665px; margin: 29px 0 0; color: #42555f; font-size: 16px; line-height: 1.82; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.hero-tags span { padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.62); color: #516670; font-size: 11px; transition: .25s ease; }
.hero-tags span:hover { transform: translateY(-2px); background: white; border-color: rgba(70,126,145,.22); box-shadow: 0 8px 18px rgba(36,74,91,.07); }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 47px; padding: 0 16px; border: 1px solid var(--line-strong); border-radius: 14px; background: rgba(255,255,255,.8); color: var(--ink); font-size: 13px; font-weight: 750; box-shadow: 0 8px 24px rgba(32,73,89,.04); transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease; }
.button span { transition: transform .22s ease; }
.button:hover { border-color: rgba(70,126,145,.32); box-shadow: 0 12px 30px rgba(32,73,89,.09); transform: translateY(-2px); }
.button:hover span { transform: translate(2px,-2px); }
.button.primary { background: var(--ink); color: white; border-color: var(--ink); box-shadow: 0 12px 28px rgba(18,32,40,.15); }

.profile-stage { position: relative; width: min(100%, 500px); min-height: 555px; padding: 25px; border: 1px solid rgba(255,255,255,.92); border-radius: 35px; background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(244,250,251,.83)); box-shadow: 0 42px 100px rgba(41,79,95,.16); backdrop-filter: blur(16px); overflow: hidden; transform-style: preserve-3d; }
.profile-stage::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,.28), transparent 35%), radial-gradient(circle at 77% 20%, rgba(161,207,220,.20), transparent 30%); pointer-events: none; }
.profile-stage::after { content: ""; position: absolute; inset: 0; opacity: .30; background-image: radial-gradient(rgba(72,120,139,.18) .75px, transparent .75px); background-size: 17px 17px; mask-image: radial-gradient(circle at 54% 44%, black, transparent 74%); pointer-events: none; }
.profile-stage-top, .profile-stage-bottom { position: relative; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.profile-stage-top strong { display: block; margin-top: 3px; font-size: 14px; letter-spacing: -.02em; }
.micro-label { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.live-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 999px; background: #eaf4f5; color: #397286; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.live-badge i { width: 5px; height: 5px; border-radius: 50%; background: #5f98a9; box-shadow: 0 0 0 4px rgba(95,152,169,.10); }
.atlas-window { position: relative; z-index: 3; height: 410px; margin: 14px -2px 3px; border: 1px solid rgba(38,83,101,.08); border-radius: 27px; overflow: hidden; background: linear-gradient(160deg, rgba(246,251,252,.96), rgba(236,246,248,.60)); }
.atlas-window::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(58,111,132,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(58,111,132,.035) 1px, transparent 1px); background-size: 28px 28px; }
.atlas-svg { position: absolute; left: 50%; top: 50%; width: 107%; height: 100%; transform: translate(-50%,-50%); overflow: visible; }
.atlas-contours path { fill: none; stroke: url(#atlasGradient); stroke-width: 1.25; opacity: .78; stroke-dasharray: 7 7; animation: contourFlow 24s linear infinite; }
.atlas-contours path:nth-child(2) { animation-direction: reverse; animation-duration: 30s; opacity: .58; }
.atlas-contours path:nth-child(3) { animation-duration: 19s; opacity: .46; }
.atlas-contours path:nth-child(4) { animation-direction: reverse; animation-duration: 17s; opacity: .40; }
@keyframes contourFlow { to { stroke-dashoffset: -180; } }
.atlas-connectors path { fill: none; stroke: rgba(69,126,147,.32); stroke-width: 1.1; stroke-dasharray: 3 7; animation: dash 16s linear infinite; }
@keyframes dash { to { stroke-dashoffset: -170; } }
.atlas-nodes circle { fill: white; stroke: #5c94aa; stroke-width: 2; filter: drop-shadow(0 7px 12px rgba(50,103,124,.16)); animation: nodeFloat 4.4s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: center; }
.atlas-nodes .core { fill: #457d91; stroke: #e0eef1; stroke-width: 5; }
.atlas-nodes circle:nth-child(2) { animation-delay: -.8s; }.atlas-nodes circle:nth-child(3) { animation-delay: -1.7s; }.atlas-nodes circle:nth-child(4) { animation-delay: -2.3s; }.atlas-nodes circle:nth-child(5) { animation-delay: -3s; }
@keyframes nodeFloat { from { transform: translateY(-3px); } to { transform: translateY(4px); } }
.atlas-glow { animation: glowPulse 3.2s ease-in-out infinite alternate; transform-origin: 286px 214px; }
@keyframes glowPulse { to { transform: scale(1.16); opacity: .65; } }
.atlas-crosshair line, .atlas-crosshair circle { fill: none; stroke: rgba(39,86,104,.19); stroke-width: 1; }
.atlas-crosshair circle { stroke-dasharray: 3 5; animation: spin 14s linear infinite; transform-origin: 286px 214px; }
@keyframes spin { to { transform: rotate(360deg); } }
.atlas-label { position: absolute; z-index: 4; min-width: 112px; padding: 9px 10px; border: 1px solid rgba(255,255,255,.9); border-radius: 13px; background: rgba(255,255,255,.78); box-shadow: 0 10px 24px rgba(39,77,92,.075); backdrop-filter: blur(10px); }
.atlas-label b, .atlas-label span { display: block; }.atlas-label b { font-size: 10px; }.atlas-label span { margin-top: 1px; color: var(--muted); font-size: 8px; }
.atlas-one { left: 20px; top: 80px; }.atlas-two { right: 19px; top: 78px; }.atlas-three { left: 36px; bottom: 34px; }.atlas-four { right: 24px; bottom: 38px; }
.profile-stage-bottom { padding: 16px 4px 0; }
.signal-card span { display: block; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.signal-card strong { display: block; margin-top: 4px; font-size: 12px; }
.mini-wave { height: 30px; display: flex; align-items: center; gap: 3px; }.mini-wave i { width: 3px; border-radius: 6px; background: #729fb0; animation: waveBar 1.5s ease-in-out infinite alternate; }.mini-wave i:nth-child(1){height:8px}.mini-wave i:nth-child(2){height:18px;animation-delay:-.3s}.mini-wave i:nth-child(3){height:11px;animation-delay:-.8s}.mini-wave i:nth-child(4){height:25px;animation-delay:-.55s}.mini-wave i:nth-child(5){height:15px;animation-delay:-.9s}.mini-wave i:nth-child(6){height:22px;animation-delay:-.15s}.mini-wave i:nth-child(7){height:9px;animation-delay:-.65s}
@keyframes waveBar { to { height: 6px; opacity: .45; } }
.floating-note { position: absolute; z-index: 8; display: flex; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid rgba(255,255,255,.94); border-radius: 16px; background: rgba(255,255,255,.86); box-shadow: 0 16px 38px rgba(39,77,92,.13); backdrop-filter: blur(12px); animation: floatNote 4.8s ease-in-out infinite alternate; }
.floating-note strong, .floating-note small { display: block; }.floating-note strong { font-size: 10px; }.floating-note small { color: var(--muted); font-size: 8px; }
.note-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: var(--accent-soft); color: var(--accent-dark); font-size: 9px; font-weight: 850; }
.note-one { left: -7px; bottom: 80px; }.note-two { right: -22px; top: 104px; animation-delay: -2.1s; }.note-three { right: 4px; bottom: 25px; animation-delay: -3.3s; }
@keyframes floatNote { to { transform: translateY(-9px) rotate(.6deg); } }
.scroll-cue { position: absolute; left: 0; bottom: 30px; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.scroll-cue i { position: relative; width: 28px; height: 1px; background: var(--line-strong); overflow: hidden; }.scroll-cue i::after { content: ""; position: absolute; width: 9px; height: 1px; left: -9px; background: var(--accent); animation: cue 1.8s ease-in-out infinite; }
@keyframes cue { to { left: 28px; } }

.research-ribbon { position: relative; width: 100%; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.52); backdrop-filter: blur(10px); }
.ribbon-track { width: max-content; display: flex; align-items: center; gap: 22px; padding: 13px 0; color: #6d7e86; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; animation: ribbonMove 42s linear infinite; }.ribbon-track i { color: #aac5cf; font-style: normal; }
@keyframes ribbonMove { to { transform: translateX(-50%); } }

.section { position: relative; padding: 108px 0; border-top: 1px solid var(--line); }
.section-band { width: 100%; background: rgba(255,255,255,.46); border-top: 1px solid rgba(25,63,80,.08); border-bottom: 1px solid rgba(25,63,80,.06); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 42px; margin-bottom: 48px; }
.kicker { margin: 0; color: var(--accent); font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.section-head h2 { margin: 8px 0 0; font-family: Georgia, "Times New Roman", ui-serif, serif; font-size: clamp(42px,5.4vw,64px); line-height: .98; letter-spacing: -.052em; font-weight: 500; }
.section-intro { max-width: 430px; margin: 0 0 3px; color: var(--soft-ink); font-size: 13px; line-height: 1.76; }.section-intro span { color: var(--muted); }

.interest-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; }
.research-card { position: relative; min-height: 452px; padding: 25px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.92); border-radius: var(--radius-lg); background: rgba(255,255,255,.79); box-shadow: var(--shadow-soft); overflow: hidden; transition: border-color .3s ease, box-shadow .3s ease, background .3s ease; transform-style: preserve-3d; }
.research-card::before { content: ""; position: absolute; inset: 0; opacity: 0; background: radial-gradient(390px circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(136,190,207,.15), transparent 42%); transition: opacity .3s ease; }.research-card:hover::before { opacity: 1; }.research-card:hover { border-color: rgba(70,126,145,.18); box-shadow: 0 28px 66px rgba(36,74,91,.13); }
.featured-card { background: linear-gradient(165deg, rgba(232,244,247,.94), rgba(255,255,255,.83) 52%); }
.card-topline { position: relative; z-index: 3; display: flex; justify-content: space-between; align-items: center; }.card-number { color: var(--muted); font-size: 10px; letter-spacing: .1em; }.mini-arrow { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 50%; color: var(--accent); font-size: 12px; transition: .3s ease; }.research-card:hover .mini-arrow { transform: rotate(45deg); background: var(--ink); color: white; }
.card-visual { position: relative; z-index: 2; height: 154px; margin: 32px 0 36px; border-radius: 22px; background: linear-gradient(155deg, rgba(240,248,250,.95), rgba(247,251,252,.72)); border: 1px solid rgba(70,126,145,.08); overflow: hidden; }
.card-visual::before { content: ""; position: absolute; inset: 0; opacity: .38; background-image: radial-gradient(rgba(70,126,145,.19) .7px, transparent .7px); background-size: 15px 15px; }
.spectrum-columns { position: absolute; inset: 31px 32px 29px; display: flex; align-items: end; gap: 12px; }.spectrum-columns i { flex: 1; max-width: 18px; border-radius: 12px 12px 4px 4px; background: linear-gradient(to top, rgba(70,126,145,.28), rgba(70,126,145,.82)); animation: spectrumBars 2.4s ease-in-out infinite alternate; transform-origin: bottom; }.spectrum-columns i:nth-child(1){height:36%}.spectrum-columns i:nth-child(2){height:58%;animation-delay:-.4s}.spectrum-columns i:nth-child(3){height:78%;animation-delay:-.9s}.spectrum-columns i:nth-child(4){height:52%;animation-delay:-1.3s}.spectrum-columns i:nth-child(5){height:87%;animation-delay:-.65s}.spectrum-columns i:nth-child(6){height:64%;animation-delay:-1.7s}
@keyframes spectrumBars { to { transform: scaleY(.72); opacity: .65; } }.visual-axis { position: absolute; left: 24px; right: 24px; bottom: 27px; height: 1px; background: rgba(70,126,145,.16); }
.imaging-visual { display: grid; place-items: center; }.brain-ring { position: absolute; border: 1.4px solid rgba(70,126,145,.72); border-radius: 50% 46% 52% 48%; }.r1 { width: 94px; height: 108px; transform: rotate(-12deg); }.r2 { width: 72px; height: 84px; border-style: dashed; animation: imagingSpin 10s linear infinite; }.r3 { width: 44px; height: 51px; opacity: .52; transform: rotate(24deg); }.brain-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 9px rgba(70,126,145,.08), 0 0 0 22px rgba(70,126,145,.04); }@keyframes imagingSpin { to { transform: rotate(360deg); } }
.stim-visual { display: grid; place-items: center; }.stim-core { width: 16px; height: 16px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 7px rgba(70,126,145,.08); }.stim-ring { position: absolute; border: 1.4px solid rgba(70,126,145,.50); border-radius: 50%; animation: stimWave 2.5s ease-out infinite; }.stim-ring.one { width: 47px; height: 47px; }.stim-ring.two { width: 82px; height: 82px; animation-delay: -.8s; }.stim-ring.three { width: 118px; height: 118px; animation-delay: -1.6s; }@keyframes stimWave { 0% { transform: scale(.72); opacity: .9; } 100% { transform: scale(1.13); opacity: 0; } }
.card-copy { position: relative; z-index: 3; margin-top: auto; }.card-label { margin: 0 0 5px !important; color: var(--accent) !important; font-size: 9px !important; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }.card-copy h3 { margin: 0 0 11px; font-size: 22px; letter-spacing: -.03em; }.card-copy p { margin: 0; color: #5b6e77; font-size: 12px; line-height: 1.75; }

.pub-stack { border-top: 1px solid var(--line-strong); }
.publication-card { position: relative; display: grid; grid-template-columns: 54px minmax(0,1fr) 52px; gap: 22px; align-items: center; padding: 26px 10px; border-bottom: 1px solid var(--line); transition: .28s ease; overflow: hidden; }
.publication-card::before { content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 2px; border-radius: 4px; background: var(--accent); transform: scaleY(0); transition: transform .3s cubic-bezier(.2,.8,.2,1); }.publication-card:hover::before { transform: scaleY(1); }
.publication-card:hover { padding-left: 20px; padding-right: 20px; background: rgba(255,255,255,.82); border-radius: 19px; box-shadow: 0 15px 36px rgba(39,76,90,.07); }
.pub-index { color: #9aa8af; font-size: 10px; letter-spacing: .09em; }.pub-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.status { width: max-content; padding: 4px 8px; border-radius: 999px; font-size: 8px; font-weight: 850; letter-spacing: .08em; }.status.published { background: #e8f4ee; color: #3f7961; }.status.conference { background: #e9f2f5; color: #386f83; }.status.review { background: #f1f2f4; color: #6f777c; }
.pub-content h3 { margin: 0; max-width: 900px; font-size: 16px; line-height: 1.55; letter-spacing: -.012em; font-weight: 520; }.pub-content p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }.pub-link { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; color: var(--accent); transition: .28s cubic-bezier(.2,.8,.2,1); }.pub-link::before { content: "Open"; position: absolute; right: 58px; padding: 4px 7px; border-radius: 8px; background: var(--ink); color: white; font-size: 8px; opacity: 0; transform: translateX(4px); transition: .2s ease; pointer-events: none; }a.pub-link:hover { transform: translate(3px,-3px) rotate(7deg); background: var(--ink); border-color: var(--ink); color: white; }a.pub-link:hover::before { opacity: 1; transform: none; }.pub-link.static { opacity: .23; }.pub-link.static::before { display: none; }.pub-divider { margin: 44px 0 0; padding: 0 10px 12px; border-bottom: 1px solid var(--line-strong); }.pub-divider span { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }.review-card { padding-top: 22px; padding-bottom: 22px; }

.institution-banner { display: grid; grid-template-columns: 70px 1fr auto; gap: 20px; align-items: center; padding: 18px 22px; margin-bottom: 17px; border: 1px solid rgba(255,255,255,.92); border-radius: 22px; background: rgba(255,255,255,.74); box-shadow: var(--shadow-soft); }.institution-mark { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 17px; background: var(--ink); color: white; font-size: 10px; font-weight: 850; letter-spacing: .08em; }.institution-banner p { margin: 0; color: var(--accent); font-size: 8px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }.institution-banner h3 { margin: 2px 0; font-size: 17px; }.institution-banner span { color: var(--muted); font-size: 10px; }.institution-year { padding: 7px 10px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-dark) !important; font-weight: 750; }
.project-list { display: grid; gap: 17px; }.project-card { position: relative; display: grid; grid-template-columns: 158px 1fr; gap: 31px; padding: 31px; border: 1px solid rgba(255,255,255,.90); border-radius: var(--radius-lg); background: rgba(255,255,255,.80); box-shadow: var(--shadow-soft); overflow: hidden; transform-style: preserve-3d; transition: box-shadow .3s ease, border-color .3s ease; }.project-card::after { content: ""; position: absolute; left: -40px; bottom: -70px; width: 190px; height: 190px; border-radius: 50%; background: radial-gradient(circle, rgba(171,211,222,.17), transparent 67%); pointer-events: none; }.project-card:hover { border-color: rgba(70,126,145,.16); box-shadow: 0 25px 62px rgba(36,74,91,.12); }
.project-side { position: relative; display: flex; flex-direction: column; min-height: 190px; padding-right: 21px; border-right: 1px solid var(--line); }.project-number { font-family: Georgia, "Times New Roman", serif; font-size: 47px; line-height: 1; letter-spacing: -.055em; color: #d1e1e6; font-weight: 500; }.project-date { margin-top: auto; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .075em; }.project-line { position: absolute; right: -1px; top: 20px; width: 2px; height: 0; border-radius: 3px; background: var(--accent); transition: height .55s cubic-bezier(.2,.8,.2,1); }.project-card:hover .project-line { height: 72px; }
.project-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 13px; }.project-badges span { padding: 4px 8px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-dark); font-size: 8px; font-weight: 750; }.project-main h3 { margin: 0; max-width: 860px; font-size: clamp(20px,2.2vw,27px); line-height: 1.25; letter-spacing: -.03em; }.project-subtitle { margin: 8px 0 17px; color: var(--accent) !important; font-size: 11px !important; font-weight: 750; }.project-main ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }.project-main li { position: relative; padding-left: 17px; color: #5a6b74; font-size: 11px; line-height: 1.67; }.project-main li::before { content: ""; position: absolute; left: 0; top: .68em; width: 5px; height: 5px; border-radius: 50%; border: 1px solid var(--accent); }

.background-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 17px; }.education-panel, .info-panel { border: 1px solid rgba(255,255,255,.92); border-radius: var(--radius-lg); background: rgba(255,255,255,.79); box-shadow: var(--shadow-soft); }.education-panel { padding: 27px; }.panel-head { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.education-timeline { position: relative; }.education-timeline::before { content: ""; position: absolute; left: 11px; top: 36px; bottom: 34px; width: 1px; background: linear-gradient(var(--accent), rgba(70,126,145,.08)); }.education-entry { position: relative; display: grid; grid-template-columns: 22px 125px 1fr; gap: 15px; padding: 28px 0; border-bottom: 1px solid var(--line); }.education-entry:last-child { border-bottom: 0; }.timeline-dot { position: relative; z-index: 2; align-self: start; width: 9px; height: 9px; margin-top: 8px; border-radius: 50%; background: white; border: 2px solid var(--accent); box-shadow: 0 0 0 5px rgba(70,126,145,.08); }.year-pill { width: max-content; height: max-content; padding: 5px 8px; border-radius: 8px; background: var(--accent-soft-2); color: var(--accent-dark); font-size: 9px; font-weight: 800; }.education-entry h3 { margin: 0 0 5px; font-size: 18px; letter-spacing: -.02em; }.education-entry p { margin: 2px 0; color: var(--soft-ink); font-size: 11px; }.education-entry strong { display: block; margin-top: 8px; color: var(--accent-dark); font-size: 10px; }
.stack-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }.info-panel { position: relative; padding: 24px; overflow: hidden; }.info-panel::after { content: ""; position: absolute; width: 140px; height: 140px; right: -55px; bottom: -70px; border-radius: 50%; background: radial-gradient(circle, rgba(159,204,216,.15), transparent 65%); }.honor-panel, .methods-panel { min-height: 222px; }.language-panel { grid-column: 1 / -1; min-height: 148px; display: flex; align-items: center; gap: 24px; }.panel-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: 38px; border-radius: 14px; background: var(--accent-soft); color: var(--accent-dark); font-weight: 850; }.language-panel .panel-icon { flex: 0 0 auto; margin: 0; }.info-panel h3 { position: relative; z-index: 2; margin: 6px 0 4px; font-size: 17px; letter-spacing: -.02em; }.info-panel p:not(.kicker) { position: relative; z-index: 2; margin: 4px 0; color: var(--soft-ink); font-size: 10px; }.year-row { position: relative; z-index: 2; display: flex; gap: 6px; margin-top: 12px; }.year-row span { padding: 5px 8px; border-radius: 8px; background: var(--accent-soft-2); color: var(--accent-dark); font-size: 9px; font-weight: 800; }.skill-cloud { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }.skill-cloud span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.72); color: #586b74; font-size: 8px; transition: .2s ease; }.skill-cloud span:hover { transform: translateY(-2px); border-color: rgba(70,126,145,.22); background: white; }

.contact-section { padding: 34px 0 112px; }.contact-card { position: relative; display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: end; padding: 47px; border-radius: 36px; background: var(--ink); color: white; overflow: hidden; box-shadow: 0 32px 84px rgba(18,32,40,.19); }.contact-card::before { content: ""; position: absolute; width: 440px; height: 440px; right: -115px; top: -190px; border-radius: 50%; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 0 0 55px rgba(255,255,255,.026), 0 0 0 110px rgba(255,255,255,.018); animation: contactOrb 8s ease-in-out infinite alternate; }.contact-card::after { content: ""; position: absolute; width: 180px; height: 180px; right: 120px; bottom: -90px; border-radius: 50%; background: radial-gradient(circle, rgba(112,170,190,.23), transparent 68%); }@keyframes contactOrb { to { transform: translate(-12px,9px) scale(1.04); } }
.contact-card .kicker { color: #91bdcb; }.contact-card h2 { position: relative; margin: 8px 0 11px; max-width: 700px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(36px,4.7vw,57px); line-height: 1.02; letter-spacing: -.05em; font-weight: 500; }.contact-card p:not(.kicker) { position: relative; margin: 0; max-width: 620px; color: #bac6cc; font-size: 12px; }.contact-actions { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }.contact-card .button.primary { background: white; color: var(--ink); border-color: white; }.text-link { color: #b7c8cf; font-size: 10px; transition: color .2s ease; }.text-link:hover { color: white; }

.toast { position: fixed; left: 50%; bottom: 28px; z-index: 70; padding: 10px 14px; border-radius: 12px; background: var(--ink); color: white; font-size: 11px; font-weight: 750; box-shadow: 0 16px 38px rgba(18,32,40,.22); opacity: 0; transform: translate(-50%,12px); pointer-events: none; transition: .25s ease; }.toast.show { opacity: 1; transform: translate(-50%,0); }
.back-top { position: fixed; right: 24px; bottom: 24px; z-index: 40; width: 45px; height: 45px; border: 1px solid rgba(255,255,255,.84); border-radius: 14px; background: rgba(255,255,255,.84); color: var(--ink); box-shadow: 0 12px 30px rgba(34,69,82,.12); backdrop-filter: blur(12px); cursor: pointer; opacity: 0; transform: translateY(12px) scale(.92); pointer-events: none; transition: .3s ease; }.back-top.show { opacity: 1; transform: none; pointer-events: auto; }.back-top:hover { transform: translateY(-3px); }
footer { border-top: 1px solid var(--line); background: rgba(255,255,255,.42); }.footer-inner { min-height: 122px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; color: var(--muted); font-size: 10px; }.footer-inner > div { display: flex; flex-direction: column; }.footer-inner strong { color: var(--ink); font-size: 12px; }.footer-inner p { margin: 0; text-align: center; }.footer-inner > a { justify-self: end; color: var(--soft-ink); }

.reveal { opacity: 0; transform: translateY(28px) scale(.985); transition: opacity .72s ease, transform .88s cubic-bezier(.16,1,.3,1); transition-delay: var(--delay,0ms); }.reveal.is-visible { opacity: 1; transform: translateY(0) scale(1); }

@media (max-width: 1040px) {
  .copy-label { display: none; }.icon-button { width: 42px; padding: 0; justify-content: center; }.copy-icon { background: transparent; }
  .hero { min-height: auto; padding-top: 98px; grid-template-columns: 1fr; grid-template-areas: "copy" "visual" "metrics"; gap: 50px; }.hero-copy { max-width: 780px; }.hero-visual { min-height: 600px; }.hero-metrics { max-width: 820px; }
  .interest-grid { grid-template-columns: 1fr; }.research-card { min-height: 350px; display: grid; grid-template-columns: 180px 1fr; grid-template-rows: auto 1fr; gap: 0 28px; }.card-topline { grid-column: 1 / -1; }.card-visual { width: 170px; height: 170px; margin: 26px 0 0; align-self: end; }.card-copy { align-self: end; padding-bottom: 2px; }
  .background-grid { grid-template-columns: 1fr; }.scroll-cue { display: none; }
}

@media (max-width: 780px) {
  .shell { width: min(calc(100% - 30px), var(--shell)); }.site-header { top: 8px; }.nav-wrap { min-height: 58px; border-radius: 18px; }.primary-nav { position: absolute; left: 15px; right: 15px; top: 68px; display: grid; gap: 3px; padding: 10px; border: 1px solid rgba(255,255,255,.9); border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 18px 45px rgba(44,74,87,.12); backdrop-filter: blur(16px); opacity: 0; transform: translateY(-8px) scale(.98); pointer-events: none; transition: .25s ease; }.primary-nav.open { opacity: 1; transform: none; pointer-events: auto; }.primary-nav a { padding: 12px 13px; }.nav-cta, .icon-button { display: none; }.menu-button { display: block; }.menu-button.active span:first-child { transform: translateY(2.7px) rotate(45deg); }.menu-button.active span:last-child { transform: translateY(-2.7px) rotate(-45deg); }
  .hero { padding: 82px 0 66px; }.hero-visual { min-height: 520px; }.profile-stage { min-height: 500px; border-radius: 28px; padding: 20px; }.atlas-window { height: 360px; }.note-one { left: -3px; bottom: 58px; }.note-two { right: -3px; top: 86px; }.note-three { right: 5px; bottom: 8px; }.hero-metrics { grid-template-columns: 1fr; }.hero-metrics div { padding: 14px 0; border-bottom: 1px solid var(--line); flex-direction: row; align-items: baseline; gap: 12px; }.hero-metrics div::after { display: none; }
  .research-ribbon { display: none; }.section { padding: 82px 0; }.section-head { display: block; }.section-intro { margin-top: 18px; }.research-card { display: flex; min-height: 410px; }.card-visual { width: 100%; height: 145px; margin: 28px 0 32px; }.publication-card { grid-template-columns: 36px 1fr 42px; gap: 11px; padding: 22px 0; }.publication-card:hover { padding-left: 10px; padding-right: 10px; }.pub-content h3 { font-size: 14px; }.pub-link::before { display: none; }
  .project-card { grid-template-columns: 1fr; gap: 18px; padding: 24px; }.project-side { min-height: auto; flex-direction: row; align-items: center; padding: 0 0 14px; border-right: 0; border-bottom: 1px solid var(--line); }.project-number { font-size: 32px; }.project-date { margin: 0 0 0 auto; }.project-line { display: none; }.institution-banner { grid-template-columns: 56px 1fr; }.institution-mark { width: 50px; height: 50px; }.institution-year { display: none; }
  .education-entry { grid-template-columns: 22px 1fr; gap: 12px; }.education-entry .year-pill { grid-column: 2; }.education-entry > div { grid-column: 2; }.education-timeline::before { left: 4px; }.timeline-dot { width: 9px; }.stack-panels { grid-template-columns: 1fr; }.language-panel { grid-column: auto; }.contact-card { grid-template-columns: 1fr; gap: 30px; padding: 31px; border-radius: 28px; }.footer-inner { grid-template-columns: 1fr; padding: 30px 0; }.footer-inner p { text-align: left; }.footer-inner > a { justify-self: start; }
}

@media (max-width: 500px) {
  h1 { font-size: 62px; }.hero-role { font-size: 21px; }.hero-summary { font-size: 14px; }.availability-pill { font-size: 8px; }.actions { display: grid; grid-template-columns: 1fr 1fr; }.actions .button:first-child { grid-column: 1 / -1; }
  .hero-visual { min-height: 470px; }.profile-stage { min-height: 455px; }.atlas-window { height: 325px; }.atlas-label { transform: scale(.88); transform-origin: center; }.profile-stage-bottom { padding-top: 10px; }.floating-note { transform: scale(.9); }.note-two { right: -8px; }.note-three { display: none; }
  .section-head h2 { font-size: 42px; }.contact-card h2 { font-size: 39px; }.publication-card { grid-template-columns: 31px 1fr; }.pub-link { display: none; }.education-panel { padding: 22px; }.education-entry { grid-template-columns: 18px 1fr; }.education-timeline::before { left: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
  .ribbon-track { transform: none !important; }
}
