body {
  margin: 0;
}

.site-header {
  border-bottom: 1px solid #e5e5e5;
  background: #ffffff;
}

.site-footer {
  padding: 16px 32px;
  border-top: 1px solid #e7eaf2;
  background: #f8fbff;
}

.footer-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
  max-width: 1200px;
  margin: 0 auto;
}

.footer-logo {
  display: block;
  grid-column: 1;
  justify-self: start;
  flex: 0 0 auto;
}

.footer-logo img {
  display: block;
  width: 130px;
  height: auto;
}

.footer-inner p {
  grid-column: 2;
  margin: 0;
  color: #697184;
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}

@media (max-width: 640px) {
  .site-footer {
    padding: 16px 20px;
  }

  .footer-inner {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 14px;
  }

  .footer-logo,
  .footer-inner p {
    grid-column: 1;
  }

  .footer-logo {
    justify-self: center;
  }

  .footer-logo img {
    width: 120px;
  }

  .footer-inner p {
    text-align: center;
  }
}

.header-inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 14px 32px;

  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-logo {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #111;
  text-decoration: none;
}

.site-logo img {
  display: block;
  width: 165px;
  height: auto;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.site-menu-toggle {
  display: none;
}

.site-nav a {
  position: relative;
  color: #333;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: color 160ms ease;
}

.site-nav a:hover {
  color: #1f63df;
}

.site-nav a::after {
  position: absolute;
  right: 0;
  bottom: -12px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: #2563eb;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 160ms ease;
  content: "";
}

.site-nav a:hover::after {
  transform: scaleX(0.45);
}

.site-nav a.is-active {
  color: #165fdc;
  font-weight: 650;
}

.site-nav a.is-active::after {
  transform: scaleX(1);
}

.hero {
  padding: 120px 32px;
}

.hero-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.hero-eyebrow {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #666;
}

.hero h1 {
  max-width: 850px;
  margin: 0;
  font-size: 64px;
  line-height: 1.08;
  letter-spacing: -0.03em;
}

.hero-description {
  max-width: 700px;
  margin: 28px 0 0;
  font-size: 19px;
  line-height: 1.7;
  color: #555;
}

.hero-actions {
  display: flex;
  gap: 14px;
  margin-top: 36px;
}

.btn-primary,
.btn-secondary {
  display: inline-block;
  padding: 14px 22px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
}

.btn-primary {
  background: #111;
  color: #fff;
}

.btn-secondary {
  border: 1px solid #ccc;
  color: #222;
}

/* Home hero */
.hero-redesign {
  --hero-navy: #0d1b3d;
  --hero-blue: #1764e8;
  --hero-violet: #6245df;
  --hero-muted: #4f596d;
  position: relative;
  padding: 52px 32px 32px;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 32%, rgba(100, 67, 218, 0.075), transparent 38%),
    radial-gradient(circle at 12% 20%, rgba(23, 100, 232, 0.045), transparent 34%),
    linear-gradient(135deg, #fbfdff 0%, #f8faff 52%, #f6f4fb 100%);
}

.hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(520px, 1.12fr);
  align-items: center;
  gap: 68px;
}

.hero-copy {
  position: relative;
  z-index: 2;
}

.hero-redesign .hero-copy h1 {
  max-width: 620px;
  margin: 0;
  color: var(--hero-navy);
  font-size: clamp(54px, 5.3vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.05em;
}

.hero-lab-name,
.hero-ai-title {
  display: block;
}

.hero-lab-name {
  color: var(--hero-navy);
}

.hero-redesign .hero-copy h1 .hero-ai-title {
  margin-top: 13px;
  color: transparent;
  font-size: 0.57em;
  line-height: 1.08;
  letter-spacing: -0.04em;
  white-space: nowrap;
  background: linear-gradient(90deg, #0966eb 0%, #245ee6 48%, #6442dc 100%);
  background-clip: text;
  -webkit-background-clip: text;
}

.hero-redesign .hero-description {
  max-width: 590px;
  margin-top: 28px;
  color: var(--hero-muted);
  font-size: 17px;
  line-height: 1.72;
}

.hero-journey {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin: 30px 0 0;
  padding: 0;
  color: var(--hero-blue);
  list-style: none;
}

.hero-journey li {
  position: relative;
  font-size: 14px;
  font-weight: 700;
}

.hero-journey li:nth-child(2) {
  color: #315dde;
}

.hero-journey li:nth-child(3) {
  color: #4b50df;
}

.hero-journey li:nth-child(4) {
  color: var(--hero-violet);
}

.hero-journey li:not(:last-child)::after {
  position: absolute;
  left: calc(100% + 10px);
  color: #969eae;
  content: "→";
}

.hero-redesign .hero-actions {
  margin-top: 34px;
}

.hero-redesign .btn-primary,
.hero-redesign .btn-secondary {
  padding: 14px 21px;
}

.hero-redesign .btn-primary {
  background: #155fdf;
}

.hero-redesign .btn-primary:hover {
  background: #104fbd;
}

.hero-redesign .btn-secondary {
  color: #2458c5;
  border-color: #88a4e7;
  background: #fff;
}

.hero-redesign .btn-secondary:hover {
  color: #174cae;
  border-color: #5f82d6;
  background: #f7f9ff;
}

.hero-visual {
  position: relative;
  min-height: 460px;
  overflow: hidden;
  border: 1px solid #d8e2f3;
  border-radius: 22px;
  background:
    radial-gradient(circle at center, rgba(88, 78, 222, 0.075), transparent 32%),
    linear-gradient(145deg, #fbfcff, #f4f7fd);
}

.hero-visual::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 77, 224, 0.07), transparent 67%);
  transform: translate(-50%, -50%);
  content: "";
}

.hero-visual-connections {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #adc1e9;
  stroke-width: 1.5;
}

.hero-visual-connections ellipse {
  stroke-dasharray: 6 6;
}

.hero-visual-connections circle {
  fill: #527ce0;
  stroke: none;
}

.hero-user-node {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  height: 112px;
  border: 1px solid #afc2eb;
  border-radius: 50%;
  box-shadow: 0 12px 38px rgba(48, 68, 131, 0.11);
  background: rgba(255, 255, 255, 0.88);
  transform: translate(-50%, -50%);
}

.hero-user-node svg {
  width: 58px;
  height: 58px;
  fill: url("#hero-user-gradient");
  stroke: #4555df;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.hero-user-node svg circle {
  fill: #514be2;
}

.hero-user-node svg path {
  fill: #514be2;
}

.hero-process-card {
  position: absolute;
  z-index: 3;
  box-sizing: border-box;
  width: 200px;
  min-height: 164px;
  padding: 16px;
  border: 1px solid #dde4f1;
  border-radius: 15px;
  box-shadow: 0 12px 28px rgba(31, 47, 91, 0.065);
  background: rgba(255, 255, 255, 0.94);
}

.hero-process-understand {
  top: 22px;
  left: 26px;
}

.hero-process-recommend {
  top: 22px;
  right: 26px;
}

.hero-process-generate {
  bottom: 22px;
  left: 26px;
}

.hero-process-interact {
  right: 26px;
  bottom: 22px;
}

.hero-process-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hero-process-heading h2 {
  margin: 0;
  color: #1d2740;
  font-size: 15px;
  line-height: 1.2;
}

.hero-process-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 9px;
  color: #2b63dd;
  background: #ebf1ff;
}

.hero-process-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.hero-process-recommend .hero-process-icon,
.hero-process-generate .hero-process-icon {
  color: #6549dc;
  background: #f0edff;
}

.hero-process-card p {
  margin: 13px 0 0;
  color: #5b6578;
  font-size: 12px;
  line-height: 1.5;
}

.hero-signal {
  height: 38px;
  margin-top: 11px;
  border-radius: 8px;
  background: #f5f7fb;
}

.hero-signal-bars {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 7px;
  padding: 8px 12px;
  box-sizing: border-box;
}

.hero-signal-bars i {
  display: block;
  width: 4px;
  border-radius: 4px;
  background: #7598ed;
}

.hero-signal-bars i:nth-child(1),
.hero-signal-bars i:nth-child(6) { height: 11px; }
.hero-signal-bars i:nth-child(2),
.hero-signal-bars i:nth-child(5) { height: 18px; }
.hero-signal-bars i:nth-child(3) { height: 26px; }
.hero-signal-bars i:nth-child(4),
.hero-signal-bars i:nth-child(7) { height: 21px; }

.hero-signal-items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  padding: 7px;
  box-sizing: border-box;
}

.hero-signal-items i {
  border-radius: 6px;
  background: #dce8ff;
}

.hero-signal-items i:nth-child(2) {
  background: #e3dcff;
}

.hero-signal-items i:nth-child(3) {
  background: #d8edf9;
}

.hero-signal-wave {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #7457df;
  font-size: 26px;
  letter-spacing: -3px;
}

.hero-signal-wave::before {
  content: "∿∿∿∿";
}

.hero-signal-chat {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  box-sizing: border-box;
}

.hero-signal-chat i {
  display: block;
  width: 72%;
  height: 5px;
  border-radius: 999px;
  background: #c7d7f5;
}

.hero-signal-chat i:first-child {
  width: 42%;
  background: #d8d1fb;
}

.hero-signal > svg {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-signal-chart rect {
  fill: #3c78df;
}

.hero-signal-chart rect:nth-child(3n+1) {
  fill: #b4caf2;
}

.hero-signal-chart rect:nth-child(3n+2) {
  fill: #7da3e9;
}

.hero-signal-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 5px;
  box-sizing: border-box;
  background: transparent;
}

.hero-signal-products span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  border-radius: 7px;
  color: #3373d8;
  background: #e9f1fe;
}

.hero-signal-products span:nth-child(2) {
  color: #654bd7;
  background: #eeeaff;
}

.hero-signal-products span:nth-child(3) {
  color: #456fc7;
  background: #e8eef9;
}

.hero-signal-products svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.hero-signal > .hero-signal-wave {
  display: block;
  overflow: visible;
}

.hero-signal-wave path {
  fill: none;
  stroke: #6d58d6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.hero-signal-conversation {
  fill: #547ed4;
}

.hero-signal-conversation .hero-chat-bubble {
  fill: #e7edfb;
  stroke: #6689d5;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.hero-signal-conversation .hero-chat-line {
  fill: none;
  stroke: #b7c7e9;
  stroke-linecap: round;
  stroke-width: 5;
}

@media (max-width: 1080px) {
  .hero-layout {
    grid-template-columns: minmax(0, 0.82fr) minmax(480px, 1.18fr);
    gap: 38px;
  }

  .hero-process-card {
    width: 184px;
  }
}

@media (max-width: 920px) {
  .hero-layout {
    grid-template-columns: 1fr;
    gap: 58px;
  }

  .hero-copy {
    max-width: 700px;
  }

  .hero-visual {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
  }

  .hero-process-card {
    width: 200px;
  }
}

@media (max-width: 620px) {
  .hero-redesign {
    padding: 52px 20px 28px;
  }

  .hero-redesign .hero-copy h1 {
    font-size: clamp(44px, 13vw, 60px);
  }

  .hero-redesign .hero-copy h1 .hero-ai-title {
    font-size: 0.56em;
    white-space: normal;
  }

  .hero-redesign .hero-description {
    font-size: 16px;
  }

  .hero-journey {
    gap: 8px 23px;
  }

  .hero-journey li {
    font-size: 12px;
  }

  .hero-journey li:not(:last-child)::after {
    left: calc(100% + 8px);
  }

  .hero-visual {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    min-height: 0;
    padding: 14px;
    box-sizing: border-box;
  }

  .hero-visual-connections,
  .hero-user-node,
  .hero-visual::before {
    display: none;
  }

  .hero-process-card {
    position: static;
    width: auto;
    min-height: 0;
    padding: 16px;
  }

  .hero-process-card p {
    font-size: 11px;
  }
}

@media (max-width: 430px) {
  .hero-visual {
    grid-template-columns: 1fr;
  }
}

.research-overview {
  padding: 32px;
  border-top: 1px solid #e4e7ed;
  background: #fff;
}

.section-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.section-label {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #777;
}

.home-research-heading {
  max-width: 820px;
  margin-bottom: 36px;
}

.research-overview .home-research-heading h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(38px, 4.2vw, 50px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.home-research-heading > p:last-child {
  max-width: 760px;
  margin: 18px 0 0;
  color: #596274;
  font-size: 16px;
  line-height: 1.7;
}

.research-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.research-card {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  min-height: 0;
  padding: 26px 26px 20px;
  box-sizing: border-box;
  border: 1px solid #dfe4ec;
  border-radius: 12px;
  background: #fff;
}

.home-research-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 74px;
  height: 74px;
  border-radius: 15px;
  color: #2364df;
  background: #edf3ff;
}

.home-research-icon-violet {
  color: #6545d9;
  background: #f1edff;
}

.home-research-icon svg {
  width: 39px;
  height: 39px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.research-icon-detail {
  fill: currentColor;
  stroke: none;
}

.home-research-card-content {
  min-width: 0;
}

.research-card h3 {
  margin: 2px 0 7px;
  color: #172038;
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.research-card p {
  margin: 0;
  color: #5b6475;
  font-size: 13px;
  line-height: 1.6;
}

.home-research-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.home-research-tags li {
  padding: 5px 8px;
  border-radius: 6px;
  color: #315cae;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
  background: #f0f4fc;
}

.research-card:nth-child(2) .home-research-tags li,
.research-card:nth-child(3) .home-research-tags li {
  color: #5e4d9b;
  background: #f3f0fb;
}

@media (max-width: 780px) {
  .research-overview {
    padding: 28px 20px;
  }
}

@media (max-width: 700px) {
  .research-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .research-card {
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 16px;
    min-height: 0;
    padding: 22px;
  }

  .home-research-icon {
    width: 60px;
    height: 60px;
    border-radius: 12px;
  }

  .home-research-icon svg {
    width: 32px;
    height: 32px;
  }
}

/* Research page */
.research-page {
  --research-ink: #111522;
  --research-muted: #62697a;
  --research-line: #dfe3ec;
  --research-purple: #806cff;
  --research-blue: #4ca7ff;
  --research-cyan: #44e5d1;
  color: var(--research-ink);
  overflow: hidden;
}

.research-page-inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
}

.research-hero {
  position: relative;
  overflow: hidden;
  padding: 112px 32px 72px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(128, 108, 255, 0.12), transparent 38%),
    #090d19;
}

.research-hero::after {
  position: absolute;
  right: -8%;
  bottom: -42%;
  width: 620px;
  height: 620px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  box-shadow:
    0 0 0 90px rgba(255, 255, 255, 0.018),
    0 0 0 180px rgba(255, 255, 255, 0.012);
  content: "";
}

.research-hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}

.research-hero-glow-one {
  top: -180px;
  right: 10%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(128, 108, 255, 0.28), transparent 68%);
}

.research-hero-glow-two {
  right: 32%;
  bottom: -260px;
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(68, 229, 209, 0.13), transparent 68%);
}

.research-eyebrow,
.research-section-label {
  margin: 0;
  color: #656d80;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.research-eyebrow {
  color: #9da7c0;
}

.research-hero h1 {
  max-width: 980px;
  margin: 24px 0 0;
  font-size: clamp(58px, 7.4vw, 104px);
  line-height: 0.94;
  letter-spacing: -0.055em;
}

.research-hero h1 span {
  display: block;
  margin-top: 16px;
  color: transparent;
  font-size: 0.55em;
  line-height: 1.08;
  letter-spacing: -0.04em;
  background: linear-gradient(90deg, #9c8cff 0%, #5ab6ff 52%, #54e8d7 100%);
  background-clip: text;
  -webkit-background-clip: text;
}

.research-hero-description {
  max-width: 740px;
  margin: 34px 0 0;
  color: #bdc5d6;
  font-size: 19px;
  line-height: 1.75;
}

.research-trend-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}

.research-trend-tags span {
  padding: 8px 13px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: #dfe4ef;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: rgba(255, 255, 255, 0.045);
}

.research-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 72px 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  list-style: none;
}

.research-flow li {
  position: relative;
  padding: 20px 20px 0 0;
  color: #f6f8fc;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.research-flow li::before {
  position: absolute;
  top: -3px;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--research-cyan);
  box-shadow: 0 0 18px rgba(68, 229, 209, 0.8);
  content: "";
}

.research-flow li:not(:last-child)::after {
  position: absolute;
  top: 23px;
  right: 32px;
  color: #596176;
  font-size: 18px;
  content: "→";
}

.research-flow li span {
  margin-right: 12px;
  color: #747e95;
  font-size: 11px;
}

.research-areas-section,
.research-frontiers-section,
.research-technologies-section {
  padding: 112px 32px;
}

.research-areas-section {
  background: #f6f7fa;
}

.research-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  align-items: end;
  gap: 60px;
  margin-bottom: 48px;
}

.research-section-heading h2,
.research-frontiers-title h2 {
  max-width: 720px;
  margin: 16px 0 0;
  font-size: clamp(38px, 4.5vw, 58px);
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.research-section-heading > p {
  margin: 0;
  color: var(--research-muted);
  font-size: 16px;
  line-height: 1.7;
}

.research-section-heading-single {
  grid-template-columns: 1fr;
}

.research-section-heading-single h2 {
  max-width: 1050px;
}

.research-section-introduction {
  max-width: 760px;
  margin: 22px 0 0;
  color: var(--research-muted);
  font-size: 16px;
  line-height: 1.7;
}

.research-area-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.research-area-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 380px;
  padding: 34px;
  overflow: hidden;
  border: 1px solid var(--research-line);
  border-radius: 14px;
  background: #fff;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.research-area-card:hover {
  transform: translateY(-4px);
  border-color: #bcc4d4;
  box-shadow: 0 18px 45px rgba(24, 31, 49, 0.08);
}

.research-area-card::after {
  position: absolute;
  right: -90px;
  bottom: -110px;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(128, 108, 255, 0.11), transparent 68%);
  content: "";
}

.research-area-card-02::after {
  background: radial-gradient(circle, rgba(76, 167, 255, 0.12), transparent 68%);
}

.research-area-card-03::after {
  background: radial-gradient(circle, rgba(177, 88, 255, 0.12), transparent 68%);
}

.research-area-card-04 {
  color: #fff;
  border-color: #20273a;
  background: #111726;
}

.research-area-card-04::after {
  background: radial-gradient(circle, rgba(68, 229, 209, 0.2), transparent 68%);
}

.research-area-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.research-area-number {
  color: #727b8e;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.research-area-signal {
  width: 38px;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--research-purple), var(--research-cyan));
}

.research-area-card h3 {
  margin: 46px 0 36px;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.035em;
}

.research-area-description {
  position: relative;
  z-index: 1;
  margin: 0 0 30px;
  color: #5c6474;
  font-size: 14px;
  line-height: 1.65;
}

.research-area-card ul {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.research-area-card li {
  position: relative;
  padding-left: 15px;
  color: #5c6474;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
}

.research-area-card li::before {
  position: absolute;
  top: 0.62em;
  left: 0;
  display: block;
  width: 4px;
  height: 4px;
  border: 0;
  border-radius: 50%;
  background: #888;
  content: "";
}

.research-area-card-04 li {
  color: #5c6474;
}

.research-area-card-04 li::before {
  display: block;
}

.research-evolution-section {
  padding: 112px 32px;
  color: #fff;
  background: #0b101d;
}

.research-section-label-light {
  color: #8f99b0;
}

.research-evolution-section h2 {
  max-width: 760px;
  margin: 18px 0 64px;
  font-size: clamp(42px, 5.4vw, 70px);
  line-height: 1.03;
  letter-spacing: -0.05em;
}

.research-evolution-track {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 22px;
}

.research-evolution-step {
  min-height: 132px;
  padding: 24px;
  border: 1px solid #293147;
  border-radius: 10px;
  background: #111827;
}

.research-evolution-step span {
  display: block;
  margin-bottom: 24px;
  color: #727e98;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.research-evolution-step strong {
  font-size: 17px;
  line-height: 1.35;
}

.research-evolution-step-current {
  border-color: rgba(68, 229, 209, 0.42);
  background: linear-gradient(145deg, rgba(128, 108, 255, 0.22), rgba(68, 229, 209, 0.1));
  box-shadow: 0 0 42px rgba(68, 229, 209, 0.08);
}

.research-evolution-step-current span {
  color: var(--research-cyan);
}

.research-evolution-arrow {
  color: #59637a;
  font-size: 22px;
}

.research-evolution-description {
  max-width: 690px;
  margin: 42px 0 0;
  color: #919bb0;
  font-size: 16px;
  line-height: 1.7;
}

.research-frontiers-section {
  background: #fff;
}

.research-frontiers-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: 90px;
}

.research-frontiers-title {
  position: static;
  top: auto;
  align-self: center;
}

.research-frontiers-description {
  max-width: 430px;
  margin: 24px 0 0;
  color: var(--research-muted);
  font-size: 16px;
  line-height: 1.7;
}

.research-frontier-list {
  border-top: 1px solid var(--research-line);
}

.research-frontier-item {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 18px;
  padding: 24px 6px;
  border-bottom: 1px solid var(--research-line);
}

.research-frontier-item span {
  color: #9299a8;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.research-frontier-item strong {
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.025em;
}

.research-technologies-section {
  padding-top: 80px;
  padding-bottom: 100px;
  border-top: 1px solid var(--research-line);
  background: #f6f7fa;
}

.research-technology-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

.research-technology-cloud span {
  padding: 13px 18px;
  border: 1px solid #d8ddea;
  border-radius: 999px;
  color: #303748;
  font-size: 14px;
  font-weight: 650;
  background: #fff;
}

.research-technology-cloud span:nth-child(-n+3) {
  color: #fff;
  border-color: #151b2a;
  background: #151b2a;
}

@media (max-width: 900px) {
  .research-section-heading,
  .research-frontiers-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .research-section-heading > p {
    max-width: 620px;
  }

  .research-evolution-track {
    grid-template-columns: 1fr 1fr;
  }

  .research-evolution-arrow {
    display: none;
  }

  .research-frontiers-title {
    position: static;
  }
}

@media (min-width: 701px) and (max-width: 1024px) {
  .site-nav a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
  }

  .site-nav a::after {
    bottom: 3px;
  }
}

@media (max-width: 700px) {
  body.mobile-nav-open {
    overflow: hidden;
  }

  .site-header {
    position: relative;
    z-index: 100;
  }

  .header-inner {
    align-items: center;
    flex-direction: row;
    gap: 12px;
    padding: 14px 20px;
  }

  .site-logo {
    font-size: 22px;
  }

  .site-nav {
    position: absolute;
    top: calc(100% + 8px);
    right: 20px;
    left: 20px;
    display: flex;
    visibility: hidden;
    align-items: stretch;
    flex-direction: column;
    gap: 2px;
    padding: 10px;
    border: 1px solid #dfe5ef;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(24, 43, 90, 0.12);
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    transition: visibility 180ms ease, opacity 180ms ease, transform 180ms ease;
  }

  .site-header.is-menu-open .site-nav {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .site-nav a {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: flex-start;
    padding: 8px 14px;
    box-sizing: border-box;
    border-radius: 8px;
    font-size: 14px;
    text-align: left;
  }

  .site-nav a:hover {
    background: #f6f8fc;
  }

  .site-nav a.is-active {
    color: #165fdc;
    background: #eef4ff;
  }

  .site-nav a::after {
    display: none;
  }

  .site-menu-toggle {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    flex: 0 0 44px;
    gap: 5px;
    padding: 0;
    border: 1px solid #d9e2f0;
    border-radius: 10px;
    color: #1d56c5;
    background: #f7faff;
    cursor: pointer;
  }

  .site-menu-toggle span {
    display: block;
    width: 19px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
  }

  .site-menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .site-menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .site-menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .site-menu-toggle:focus-visible,
  .site-nav a:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
  }

  .site-logo img {
    width: 148px;
  }

  .research-hero,
  .research-areas-section,
  .research-evolution-section,
  .research-frontiers-section,
  .research-technologies-section {
    padding-right: 20px;
    padding-left: 20px;
  }

  .research-hero {
    padding-top: 82px;
    padding-bottom: 54px;
  }

  .research-hero h1 {
    font-size: clamp(48px, 15vw, 72px);
  }

  .research-hero h1 span {
    font-size: 0.48em;
    line-height: 1.15;
  }

  .research-hero-description {
    font-size: 16px;
  }

  .research-flow {
    grid-template-columns: 1fr 1fr;
    gap: 28px 18px;
    margin-top: 52px;
  }

  .research-flow li:nth-child(2)::after {
    display: none;
  }

  .research-area-grid,
  .research-evolution-track {
    grid-template-columns: 1fr;
  }

  .research-areas-section,
  .research-evolution-section,
  .research-frontiers-section {
    padding-top: 82px;
    padding-bottom: 82px;
  }

  .research-area-card {
    min-height: 0;
    padding: 26px;
  }

  .research-area-card h3 {
    margin-top: 36px;
  }

  .research-area-card ul {
    grid-template-columns: 1fr;
  }

  .research-evolution-section h2 {
    margin-bottom: 44px;
  }
}

.contact-page-content .contact-section-label {
  margin: 0 0 14px;
  color: #526f9d;
}

.contact-page-content .contact-section-heading {
  max-width: none;
  margin-bottom: 0;
}

.contact-page-content .contact-section-heading h2 {
  margin: 0;
  line-height: 1.15;
}

/* Publication hero category actions */
.publications-page-hero .publication-hero-browser .publication-category-nav a {
  justify-content: center;
  width: 220px;
  min-width: 220px;
  min-height: 46px;
  padding: 0 20px;
  box-sizing: border-box;
  border: 1px solid #245fc8;
  border-radius: 9px;
  color: #fff;
  background: #245fc8;
  box-shadow: 0 7px 16px rgba(36, 95, 200, 0.15);
  font-weight: 700;
  transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.publications-page-hero .publication-hero-browser .publication-category-nav a:hover,
.publications-page-hero .publication-hero-browser .publication-category-nav a:focus-visible {
  color: #fff;
  border-color: #5a48d1;
  background: #5a48d1;
  box-shadow: 0 9px 20px rgba(74, 65, 190, 0.2);
  transform: translateY(-2px);
}

@media (max-width: 700px) {
  .publications-page-hero .publication-hero-browser,
  .publications-page-hero .publication-category-nav {
    width: 100%;
  }

  .publications-page-hero .publication-hero-browser .publication-category-nav a {
    width: 100%;
    min-width: 0;
  }
}

body .contact-page-content {
  padding-bottom: 56px;
}

@media (max-width: 700px) {
  body .contact-page-content {
    padding-bottom: 44px;
  }
}

/* Keep the benefits heading group centered after the legacy contact cascade. */
.contact-page-content .contact-benefits-section .contact-section-heading h2 {
  margin-right: auto;
  margin-left: auto;
}

.contact-page-content .contact-benefits-section .contact-section-heading > .contact-benefits-description {
  max-width: none;
  margin: 16px auto 0;
  color: #4f5d74;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

/* Contact recruitment experience */
.contact-recruitment-intro {
  max-width: 980px;
  margin: 0 auto;
}

.contact-section-label {
  margin: 0 0 14px;
  color: #526f9d;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.contact-recruitment-intro h2,
.contact-section-heading h2,
.contact-apply-copy h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.15;
  letter-spacing: -0.04em;
}

.contact-recruitment-intro h2 span {
  color: #245fc8;
  background: linear-gradient(90deg, #1766df 0%, #6941d9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.contact-recruitment-tagline {
  margin: 16px 0 0;
  color: #4f5d74;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.5;
}

.contact-recruitment-copy {
  margin-top: 34px;
}

.contact-recruitment-copy p {
  margin: 0;
  color: #4f596b;
  font-size: 16px;
  line-height: 1.75;
}

.contact-recruitment-copy p + p {
  margin-top: 17px;
  color: #697386;
}

.contact-recruitment-copy strong {
  color: inherit;
  font-weight: 700;
}

.contact-research-journey {
  display: inline-flex;
  justify-content: center;
  max-width: 100%;
  margin: 32px 0 0;
  padding: 12px 18px;
  box-sizing: border-box;
  border: 1px solid #d9e3f5;
  border-radius: 999px;
  color: #315fc8;
  background: linear-gradient(90deg, #f2f7ff 0%, #f5f1fd 100%);
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: 0.01em;
  text-align: center;
}

.contact-recruitment-copy-closing {
  margin-top: 32px;
}

.contact-benefits-section,
.contact-journey-cta,
.contact-apply-section-simple {
  margin-top: 48px;
}

.contact-section-heading h2 span,
.contact-apply-copy h2 span {
  color: #63708a;
  font-size: 0.62em;
  font-weight: 500;
  letter-spacing: -0.02em;
}

.contact-benefits-section .contact-section-heading h2 {
  width: fit-content;
  margin-right: auto;
  margin-left: auto;
  font-size: clamp(34px, 4vw, 48px);
  background: linear-gradient(90deg, #1766df 0%, #6941d9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.contact-benefits-section .contact-section-heading {
  text-align: center;
}

.contact-benefits-section .contact-benefits-description {
  max-width: none;
  margin: 16px auto 0;
  color: #4f5d74;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.5;
}

.contact-benefits-grid {
  display: grid;
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
  gap: 0;
  margin-top: 20px;
}

.contact-benefit-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 0;
  padding: 12px 18px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.contact-benefit-number {
  margin-bottom: 10px;
  color: #8290a8;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.contact-benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 12px;
}

.contact-benefit-icon svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.contact-benefit-icon-blue {
  color: #1766df;
  background: #edf4ff;
}

.contact-benefit-icon-violet {
  color: #6842d7;
  background: #f3edff;
}

.contact-benefit-card h3 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 0 5px;
  color: #182238;
  font-size: 18px;
  line-height: 1.3;
}

.contact-benefit-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 50%;
  color: #1766df;
  background: #edf4ff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.contact-benefit-card:nth-child(2) .contact-benefit-index {
  color: #3f5fda;
  background: #f0f2ff;
}

.contact-benefit-card:nth-child(3) .contact-benefit-index {
  color: #5951d7;
  background: #f2efff;
}

.contact-benefit-card:nth-child(4) .contact-benefit-index {
  color: #7043cf;
  background: #f5efff;
}

.contact-benefit-card > p {
  margin: 0;
  color: #4f596b;
  font-size: 14px;
  line-height: 1.65;
}

.contact-benefit-card .contact-benefit-en {
  margin-top: 4px;
  color: #778094;
  font-size: 12px;
}

.contact-journey-cta {
  padding: 0;
  border: 0;
  border-radius: 0;
  text-align: center;
  background: transparent;
}

.contact-journey-cta h2 {
  margin: 0;
  color: #172238;
  font-size: clamp(30px, 3.6vw, 42px);
  line-height: 1.18;
  letter-spacing: -0.035em;
}

.contact-journey-cta h2 span {
  color: #245fc8;
  background: linear-gradient(90deg, #1766df 0%, #6941d9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.contact-journey-cta .contact-journey-subtitle {
  margin: 16px 0 0;
  color: #4f5d74;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.5;
}

.contact-journey-cta .contact-research-journey {
  margin-top: 22px;
  font-weight: 700;
}

.contact-journey-story {
  max-width: 860px;
  margin: 30px auto 0;
}

.contact-journey-story > p {
  margin: 0;
  color: #4f596b;
  font-size: 15px;
  line-height: 1.75;
}

.contact-journey-story > p + p {
  margin-top: 0;
}

.contact-journey-story > p:not([lang]) + p[lang="en"] {
  margin-top: 16px;
}

.contact-journey-story > p[lang="en"] {
  color: #697386;
}

.contact-journey-story .contact-journey-process {
  color: #315fc8;
}

.contact-journey-cta .contact-journey-message {
  margin: 18px 0 0;
  color: #263550;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.6;
}

.contact-journey-message span {
  display: block;
  margin-top: 5px;
  color: #667187;
  font-size: 0.72em;
  font-weight: 500;
}

.contact-journey-cta .contact-journey-bridge {
  max-width: 680px;
  margin: 22px auto 0;
  color: #536079;
  font-size: 16px;
  line-height: 1.75;
}

.contact-journey-bridge span {
  display: block;
  margin-top: 5px;
  color: #7a8496;
  font-size: 13px;
}

.contact-journey-application {
  max-width: 720px;
  margin: 28px auto 0;
}

.contact-journey-application p {
  margin: 0;
  color: #59657b;
  font-size: 15px;
  line-height: 1.75;
}

.contact-journey-application p + p {
  margin-top: 16px;
}

.contact-journey-application .contact-journey-send-label {
  margin-top: 22px;
  color: #7b8495;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.contact-journey-application .contact-journey-email {
  margin-top: 10px;
}

.contact-journey-email a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 0 3px;
  border-bottom: 1px solid transparent;
  color: #245fc8;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 160ms ease;
}

.contact-journey-email a:hover {
  border-bottom-color: #5d50d7;
}

.contact-journey-email svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: #356fd5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.contact-journey-address {
  color: #245fc8;
  background: linear-gradient(90deg, #1766df 0%, #6941d9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.contact-journey-email .contact-journey-recipient {
  display: inline-block;
  margin: 0 0 0 6px;
  color: #6f788a;
  font-size: 13px;
}

.contact-apply-section-simple {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.7fr);
  gap: 72px;
  align-items: start;
  padding-top: 60px;
  border-top: 1px solid #e1e6ef;
  scroll-margin-top: 90px;
}

.contact-apply-copy p {
  max-width: 720px;
  margin: 24px 0 0;
  color: #525d70;
  font-size: 15px;
  line-height: 1.75;
}

.contact-apply-copy p + p {
  margin-top: 18px;
}

.contact-apply-email {
  padding: 28px;
  border: 1px solid #d9e3f5;
  border-radius: 14px;
  background: linear-gradient(135deg, #f7faff 0%, #f5f2fc 100%);
}

.contact-apply-email a {
  color: #245fc8;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 700;
  letter-spacing: -0.025em;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.contact-apply-email a:hover {
  text-decoration: underline;
}

.contact-apply-email p {
  margin: 12px 0 0;
  color: #687386;
  font-size: 14px;
}

@media (max-width: 800px) {
  .contact-recruitment-copy br {
    display: none;
  }

  .contact-benefits-grid,
  .contact-apply-section-simple {
    grid-template-columns: 1fr;
  }

  .contact-benefit-card {
    min-height: 0;
  }

  .contact-journey-cta {
    padding: 0;
  }

  .contact-benefits-section,
  .contact-journey-cta {
    margin-top: 42px;
  }

  .contact-apply-section-simple {
    gap: 34px;
    padding-top: 48px;
  }
}

@media (max-width: 560px) {
  .contact-benefits-section,
  .contact-journey-cta {
    margin-top: 36px;
  }

  .contact-recruitment-intro h2,
  .contact-section-heading h2,
  .contact-apply-copy h2 {
    font-size: 32px;
  }

  .contact-research-journey {
    border-radius: 12px;
    line-height: 1.6;
  }
}

@media (prefers-reduced-motion: reduce) {
  .research-area-card {
    transition: none;
  }
}

/* Restrained research subpage presentation */
.research-page {
  --research-ink: #171717;
  --research-muted: #666;
  --research-line: #dedede;
  --research-purple: #777;
  --research-blue: #777;
  --research-cyan: #777;
}

.research-hero {
  padding: 96px 32px 64px;
  color: var(--research-ink);
  border-bottom: 1px solid var(--research-line);
  background: #fff;
}

.research-hero::after,
.research-hero-glow {
  display: none;
}

.research-eyebrow {
  color: #777;
}

.research-hero h1 {
  max-width: 920px;
  margin-top: 0;
  font-size: clamp(48px, 6vw, 76px);
  line-height: 1;
  letter-spacing: -0.045em;
}

.research-hero h1 span {
  margin-top: 10px;
  color: #555;
  font-size: 0.55em;
  background: none;
  -webkit-text-fill-color: currentColor;
}

.research-hero-description {
  max-width: 700px;
  margin-top: 28px;
  color: #555;
  font-size: 17px;
}

.research-trend-tags {
  margin-top: 26px;
}

.research-trend-tags span {
  color: #444;
  border-color: #ddd;
  background: #fafafa;
}

.research-flow {
  margin-top: 52px;
  border-color: #d8d8d8;
}

.research-flow li {
  color: #222;
}

.research-flow li::before {
  background: #777;
  box-shadow: none;
}

.research-flow li:not(:last-child)::after {
  color: #aaa;
}

.research-flow li span {
  color: #999;
}

.research-areas-section,
.research-frontiers-section {
  padding-top: 90px;
  padding-bottom: 90px;
  background: #f6f7fa;
}

.research-section-heading h2,
.research-frontiers-title h2 {
  font-size: clamp(36px, 4vw, 48px);
}

.research-area-card {
  min-height: 300px;
  padding-top: 28px;
  padding-bottom: 28px;
  border-radius: 10px;
  transition: border-color 160ms ease;
}

.research-area-card h3 {
  margin-top: 34px;
  margin-bottom: 18px;
}

.research-area-card-04 .research-area-description {
  color: #5c6474;
}

.research-area-card:hover {
  transform: none;
  border-color: #aaa;
  box-shadow: none;
}

.research-area-card::after {
  display: none;
}

.research-area-signal {
  height: 3px;
  background: #777;
}

.research-area-card-04 {
  color: var(--research-ink);
  border-color: var(--research-line);
  background: #fff;
}

.research-area-card-04 li {
  color: #5c6474;
}

.research-area-card-04 li::before,
.research-area-card li::before {
  background: #888;
}

.research-evolution-section {
  padding-top: 90px;
  padding-bottom: 90px;
  color: var(--research-ink);
  border-top: 1px solid var(--research-line);
  border-bottom: 1px solid var(--research-line);
  background: #fff;
}

.research-section-label-light {
  color: #777;
}

.research-evolution-section h2 {
  margin-bottom: 22px;
  font-size: clamp(38px, 4.5vw, 56px);
}

.research-story-description {
  max-width: 760px;
  margin: 0 0 48px;
  color: #666;
  font-size: 17px;
  line-height: 1.75;
}

.research-evolution-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: 0;
}

.research-evolution-track::before {
  position: absolute;
  top: 5px;
  right: 5px;
  left: 5px;
  height: 1px;
  background: #d6d9df;
  content: "";
}

.research-evolution-step {
  position: relative;
  min-height: 0;
  padding: 34px 28px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.research-evolution-step::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 11px;
  height: 11px;
  border: 2px solid #555;
  border-radius: 50%;
  background: #fff;
  content: "";
}

.research-evolution-step span {
  margin-bottom: 18px;
  color: #888;
}

.research-evolution-step strong {
  display: block;
  font-size: 17px;
  text-transform: uppercase;
}

.research-evolution-step p {
  margin: 12px 0 0;
  color: #666;
  font-size: 13px;
  line-height: 1.55;
}

.research-evolution-step-current {
  border-color: #777;
  background: #f2f2f2;
  box-shadow: none;
}

.research-evolution-step-current span {
  color: #333;
}

.research-evolution-arrow {
  display: none;
}

.research-evolution-description {
  color: #666;
}

.research-technology-cloud span:nth-child(-n+3) {
  color: #303748;
  border-color: #d8ddea;
  background: #fff;
}

.research-technologies-heading {
  margin-bottom: 42px;
}

.research-technologies-description {
  max-width: 800px;
  margin: 22px 0 0;
  color: var(--research-muted);
  font-size: 16px;
  line-height: 1.7;
}

.research-technologies-section {
  background: #fff;
}

.research-technology-panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.research-technology-group h3,
.research-library-section {
  margin: 0;
}

.research-technology-group h3,
.research-library-section h3 {
  color: #555;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.research-technology-cloud {
  margin-top: 22px;
}

.research-technology-cloud span {
  background: #f6f7fa;
}

.research-technology-cloud span:nth-child(-n+3) {
  background: #f6f7fa;
}

.research-library-section {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--research-line);
}

.research-library-section h3 {
  margin: 0 0 24px;
}

.research-library-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.research-library-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  border: 1px solid #d8ddea;
  border-radius: 10px;
  text-align: center;
  background: #f6f7fa;
}

.research-library-item img {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  object-fit: contain;
}

.research-library-item span {
  min-width: 0;
  color: #333;
  font-size: 14px;
  font-weight: 650;
}

@media (max-width: 700px) {
  .research-hero {
    padding-top: 72px;
    padding-bottom: 48px;
  }

  .research-hero h1 {
    font-size: clamp(42px, 13vw, 60px);
  }

  .research-areas-section,
  .research-evolution-section,
  .research-frontiers-section {
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .research-area-card {
    min-height: 0;
  }

  .research-evolution-track {
    grid-template-columns: 1fr;
    padding-left: 20px;
  }

  .research-evolution-track::before {
    top: 5px;
    right: auto;
    bottom: 5px;
    left: 5px;
    width: 1px;
    height: auto;
  }

  .research-evolution-step {
    padding: 0 0 34px 22px;
  }

  .research-evolution-step:last-child {
    padding-bottom: 0;
  }

  .research-evolution-step::before {
    top: 4px;
    left: -20px;
  }

  .research-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .research-library-item {
    padding: 14px;
  }

  .research-technology-panel {
    padding: 0;
  }
}

/* Home aligned visual language for the Research page */
.research-page {
  --research-ink: #111827;
  --research-muted: #596274;
  --research-line: #dfe5ef;
  --research-blue: #1766df;
  --research-violet: #6442dc;
}

.research-hero {
  border-bottom: 0;
  background:
    radial-gradient(circle at 88% 30%, rgba(100, 67, 218, 0.085), transparent 38%),
    radial-gradient(circle at 12% 18%, rgba(23, 100, 232, 0.055), transparent 34%),
    linear-gradient(135deg, #fbfdff 0%, #f8faff 52%, #f6f4fb 100%);
}

.research-hero h1 {
  color: var(--research-ink);
}

.research-hero h1 span {
  color: transparent;
  background: linear-gradient(90deg, #0966eb 0%, #245ee6 48%, #6442dc 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.research-hero h1 .research-hero-primary {
  width: fit-content;
  margin-top: 0;
  font-size: 1em;
  line-height: 1;
  background-size: 100% 100%;
}

.research-hero h1 .research-hero-secondary {
  margin-top: 10px;
  color: var(--research-ink);
  font-size: 0.55em;
  line-height: 1.08;
  background: none;
  -webkit-text-fill-color: currentColor;
}

.research-hero-description {
  color: var(--research-muted);
}

.research-trend-tags span {
  color: #2458aa;
  border-color: #dce7fa;
  background: #f1f6ff;
}

.research-trend-tags span:nth-child(2n) {
  color: #6044aa;
  border-color: #e7def8;
  background: #f6f2fd;
}

.research-section-label,
.research-section-label-light {
  color: #526f9d;
}

.research-areas-section,
.research-evolution-section,
.research-frontiers-section,
.research-technologies-section {
  padding-top: 48px;
  padding-bottom: 48px;
}

.research-title-accent {
  color: transparent;
  background: linear-gradient(90deg, #1766df 0%, #5f46d8 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.research-title-accent-blue {
  background-image: linear-gradient(90deg, #1269df 0%, #4059dd 100%);
}

.research-title-accent-violet {
  background-image: linear-gradient(90deg, #405bdd 0%, #7143d1 100%);
}

.research-areas-section {
  background: #fff;
}

.research-area-card {
  min-height: 292px;
  padding: 28px 32px;
  box-sizing: border-box;
  border-color: #dfe5ef;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(29, 52, 92, 0.025);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.research-area-card:hover {
  transform: none;
  border-color: #cbd8ec;
  box-shadow: 0 12px 30px rgba(29, 52, 92, 0.055);
}

.research-area-number {
  color: #7183a0;
}

.research-area-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 74px;
  height: 74px;
  flex: 0 0 74px;
  border-radius: 14px;
}

.research-area-icon svg {
  width: 42px;
  height: 42px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.research-area-icon-blue {
  color: #1766df;
  background: #edf4ff;
}

.research-area-icon-violet {
  color: #6842d7;
  background: #f3edff;
}

.research-area-heading {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 22px 0 18px;
}

.research-area-heading h3,
.research-area-card .research-area-heading h3 {
  margin: 0;
}

.research-area-description {
  margin-bottom: 24px;
}

.research-area-card li::before,
.research-area-card-04 li::before {
  background: #3f73cc;
}

.research-area-card:nth-child(2) li::before,
.research-area-card:nth-child(3) li::before {
  background: #7655c8;
}

.research-area-card li {
  padding-left: 0;
  white-space: nowrap;
}

.research-area-card li::before,
.research-area-card-04 li::before {
  position: static;
  display: inline;
  width: auto;
  height: auto;
  margin-right: 0;
  color: #3f73cc;
  border-radius: 0;
  background: transparent;
  content: "#";
  font-weight: 700;
}

.research-area-card:nth-child(2) li::before,
.research-area-card:nth-child(3) li::before {
  color: #7655c8;
  background: transparent;
}

.research-selected-publications-section {
  padding: 48px 32px;
  background: #fff;
}

.research-selected-publications-heading {
  max-width: 860px;
  margin-bottom: 36px;
}

.research-selected-publications-heading h2 {
  margin: 16px 0 0;
  color: var(--research-ink);
  font-size: clamp(36px, 4vw, 48px);
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.research-selected-publications-heading > p:last-child {
  max-width: 780px;
  margin: 22px 0 0;
  color: var(--research-muted);
  font-size: 16px;
  line-height: 1.7;
}

.research-selected-publications-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.research-selected-publication-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  color: inherit;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 8px 24px rgba(29, 52, 92, 0.025);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.research-selected-publication-card:hover {
  color: inherit;
  border-color: #cbd8ec;
  box-shadow: 0 12px 30px rgba(29, 52, 92, 0.055);
}

.research-selected-publication-image {
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border-bottom: 1px solid #e4e8f0;
  background: #f7f9fd;
}

.research-selected-publication-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.research-selected-publication-content {
  display: flex;
  flex: 1;
  align-items: flex-start;
  flex-direction: column;
  padding: 20px;
}

.research-selected-publication-topic {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 7px;
  color: #285da8;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  background: #eef4fd;
}

.research-selected-publication-card:nth-child(2n) .research-selected-publication-topic {
  color: #6248a8;
  background: #f3effb;
}

.research-selected-publication-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.research-selected-publication-badges span {
  padding: 4px 7px;
  border: 1px solid #dfe6f1;
  border-radius: 999px;
  color: #596a85;
  font-size: 9px;
  font-weight: 750;
  line-height: 1.2;
  background: #fafcff;
}

.research-selected-publication-card:nth-child(2n) .research-selected-publication-badges span:last-child,
.research-selected-publication-card:nth-child(2n+1) .research-selected-publication-badges span:last-child {
  color: #6548af;
  border-color: #e4daf6;
  background: #f7f3fd;
}

.research-selected-publication-summary {
  min-height: 6.4em;
  margin: 16px 0 0;
  color: #273348;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.research-selected-publication-citation {
  margin: 14px 0 0;
  color: #687184;
  font-size: 11px;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

.research-selected-publication-journal {
  color: #1766df;
  font-weight: 700;
}

.research-selected-publication-card:nth-child(2n) .research-selected-publication-journal {
  color: #6942d2;
}

.research-selected-publication-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: auto;
  padding-top: 18px;
  color: #1766df;
  font-size: 12px;
  font-weight: 700;
}

.research-selected-publication-card:nth-child(2n) .research-selected-publication-link {
  color: #6942d2;
}

@media (max-width: 1050px) {
  .research-selected-publications-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .research-selected-publication-summary {
    min-height: 4.8em;
  }
}

.research-evolution-section {
  color: var(--research-ink);
  border-top: 0;
  border-bottom: 0;
  background: #fff;
}

.research-story-description {
  color: var(--research-muted);
}

.research-evolution-track::before {
  top: 31px;
  height: 1px;
  background: linear-gradient(90deg, #8fb9f2 0%, #789ee9 35%, #8a78df 68%, #ae8de3 100%);
}

.research-evolution-step {
  min-height: 0;
  padding: 84px 28px 0 0;
}

.research-evolution-step::before {
  display: none;
}

.research-evolution-step .research-story-icon {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  margin: 0;
  border: 1px solid #d9e5f6;
  border-radius: 50%;
  color: #1766df;
  background: #f0f6ff;
  box-shadow: 0 8px 20px rgba(36, 83, 157, 0.07);
}

.research-evolution-step:nth-child(2) .research-story-icon {
  color: #315fdd;
  background: #f0f4ff;
}

.research-evolution-step:nth-child(3) .research-story-icon {
  color: #564fd8;
  border-color: #e2dcf6;
  background: #f4f1ff;
}

.research-evolution-step:nth-child(4) .research-story-icon {
  color: #6942d2;
  border-color: #e6dcf7;
  background: #f6f1ff;
}

.research-evolution-step .research-story-icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.research-evolution-step > span:not(.research-story-icon) {
  margin-bottom: 12px;
  color: #7183a0;
}

.research-evolution-step strong {
  color: #1a2437;
  font-size: 18px;
  text-transform: none;
}

.research-evolution-step:nth-child(1) strong {
  color: #1766df;
}

.research-evolution-step:nth-child(2) strong {
  color: #315dde;
}

.research-evolution-step:nth-child(3) strong {
  color: #4b50df;
}

.research-evolution-step:nth-child(4) strong {
  color: #6842d7;
}

.research-evolution-step p {
  color: #667085;
}

.research-frontiers-section {
  border: 0;
  background: #fff;
}

.research-frontiers-title {
  align-self: start;
}

.research-frontier-list {
  border-top-color: #dfe5ef;
}

.research-frontier-item {
  grid-template-columns: 42px 1fr;
  border-bottom-color: #dfe5ef;
}

.research-frontier-item span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  color: #2364ca;
  background: #eaf2ff;
}

.research-frontier-item:nth-child(2n) span {
  color: #6945bd;
  background: #f0eafd;
}

.research-frontier-item strong {
  color: #1f2937;
  font-weight: 400;
}

.research-technologies-section {
  border-top: 0;
  background: #fff;
}

.research-technology-cloud span,
.research-technology-cloud span:nth-child(-n+3) {
  color: #285da8;
  border-color: #dce7f7;
  background: #f2f6fc;
}

.research-technology-cloud span:nth-child(2n) {
  color: #6248a8;
  border-color: #e5def3;
  background: #f6f2fb;
}

.research-library-section {
  border-top-color: #e3e8f0;
}

.research-library-item {
  border-color: #dfe5ef;
  background: #fbfcff;
}

@media (max-width: 700px) {
  .research-areas-section,
  .research-evolution-section,
  .research-frontiers-section,
  .research-technologies-section {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .research-selected-publications-section {
    padding: 48px 20px;
  }

  .research-selected-publications-grid {
    grid-template-columns: 1fr;
  }

  .research-selected-publications-heading {
    margin-bottom: 32px;
  }

  .research-selected-publication-summary {
    min-height: 0;
  }

  .research-area-card {
    padding: 26px;
  }

  .research-area-icon {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
  }

  .research-area-icon svg {
    width: 36px;
    height: 36px;
  }

  .research-area-heading {
    gap: 16px;
    margin-top: 20px;
  }

  .research-evolution-track {
    padding-left: 76px;
  }

  .research-evolution-track::before {
    top: 31px;
    bottom: 31px;
    left: 30px;
  }

  .research-evolution-step {
    min-height: 102px;
    padding: 6px 0 34px;
  }

  .research-evolution-step .research-story-icon {
    top: 0;
    left: -76px;
  }
}

.news-overview {
  padding: 32px;
  background: #fff;
}

.news-overview h2 {
  margin: 0 0 18px;
  font-size: 42px;
  letter-spacing: -0.02em;
}

.home-news-intro {
  max-width: 760px;
  margin: 0 0 36px;
  color: #596274;
  font-size: 15px;
  line-height: 1.7;
}

.home-news-intro a {
  color: #2458c5;
  font-weight: 650;
  text-decoration: none;
}

.home-news-intro a:hover {
  text-decoration: underline;
}

@media (max-width: 700px) {
  .news-overview {
    padding: 28px 20px;
  }

  .news-overview h2 {
    font-size: 36px;
  }
}

.home-journey-section {
  padding: 32px 32px 48px;
  background: #fff;
}

.home-journey-heading h2 {
  margin: 0 0 18px;
  color: #111827;
  font-size: clamp(36px, 4vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.home-journey-heading > p {
  max-width: 780px;
  margin: 0 0 36px;
  color: #596274;
  font-size: 15px;
  line-height: 1.7;
}

.home-journey-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-journey-track::before {
  position: absolute;
  top: 35px;
  right: 9%;
  left: 9%;
  border-top: 1px dashed #91b1eb;
  content: "";
}

.home-journey-step {
  --journey-color: #2367df;
  --journey-bg: #edf3ff;
  position: relative;
  z-index: 1;
  text-align: center;
}

.home-journey-step-2 {
  --journey-color: #2d61df;
  --journey-bg: #eef2ff;
}

.home-journey-step-3 {
  --journey-color: #4057dd;
  --journey-bg: #eff1ff;
}

.home-journey-step-4 {
  --journey-color: #584bd8;
  --journey-bg: #f1eeff;
}

.home-journey-step-5 {
  --journey-color: #6942d2;
  --journey-bg: #f3edff;
}

.home-journey-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  margin: 0 auto;
  border: 1px solid #d8e3f7;
  border-radius: 50%;
  box-shadow:
    0 8px 20px rgba(43, 73, 142, 0.07),
    inset 0 0 0 5px rgba(255, 255, 255, 0.34);
  color: var(--journey-color);
  background: radial-gradient(circle at 32% 24%, #fff 0%, var(--journey-bg) 72%);
}

.home-journey-icon svg {
  width: 37px;
  height: 37px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.home-journey-icon svg .home-journey-icon-fill {
  fill: currentColor;
  stroke: none;
  opacity: 0.12;
}

.home-journey-icon svg .home-journey-icon-dot {
  fill: currentColor;
  stroke: none;
}

.home-journey-icon > span {
  position: absolute;
  right: -4px;
  bottom: -2px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  font-size: 9px;
  font-weight: 750;
  background: var(--journey-color);
}

.home-journey-step h3 {
  margin: 17px 0 7px;
  color: #1b2540;
  font-size: 16px;
  line-height: 1.25;
}

.home-journey-step p {
  max-width: 168px;
  margin: 0 auto;
  color: #626c7e;
  font-size: 12px;
  line-height: 1.55;
}

.home-journey-cta {
  margin-top: 42px;
  text-align: center;
}

.home-journey-cta p {
  margin: 0;
  color: #4f596c;
  font-size: 15px;
  line-height: 1.7;
}

.home-journey-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  padding: 12px 22px;
  border-radius: 6px;
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
  background: #155fdf;
}

.home-journey-cta a:hover {
  background: #104fbd;
}

@media (max-width: 800px) {
  .home-journey-section {
    padding: 28px 20px 44px;
  }

  .home-journey-heading h2 {
    margin-bottom: 16px;
  }

  .home-journey-heading > p {
    margin-bottom: 32px;
  }

  .home-journey-track {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .home-journey-track::before {
    top: 30px;
    right: auto;
    bottom: 30px;
    left: 30px;
    border-top: 0;
    border-left: 1px dashed #91b1eb;
  }

  .home-journey-step {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    text-align: left;
  }

  .home-journey-icon {
    width: 60px;
    height: 60px;
    margin: 0;
  }

  .home-journey-icon svg {
    width: 29px;
    height: 29px;
  }

  .home-journey-step h3 {
    margin: 0 0 5px;
  }

  .home-journey-step p {
    max-width: none;
    margin: 0;
  }

  .home-journey-cta {
    margin-top: 36px;
  }
}

/* Shared subpage hero system */
.people-page,
.publications-page,
.news-page,
.contact-page {
  padding: 0;
  color: #111827;
  background: #fff;
}

.subpage-hero {
  position: relative;
  overflow: hidden;
  padding: 96px 32px 64px;
  background:
    radial-gradient(circle at 88% 30%, rgba(100, 67, 218, 0.075), transparent 38%),
    radial-gradient(circle at 12% 18%, rgba(23, 100, 232, 0.05), transparent 34%),
    linear-gradient(135deg, #fbfdff 0%, #f8faff 52%, #f6f4fb 100%);
}

.people-page-hero {
  background:
    radial-gradient(circle at 88% 26%, rgba(70, 119, 217, 0.075), transparent 38%),
    radial-gradient(circle at 10% 16%, rgba(23, 100, 232, 0.05), transparent 34%),
    linear-gradient(135deg, #fbfdff 0%, #f7faff 58%, #f5f8fd 100%);
}

.news-page-hero {
  background:
    radial-gradient(circle at 88% 28%, rgba(74, 91, 215, 0.065), transparent 38%),
    radial-gradient(circle at 12% 18%, rgba(23, 100, 232, 0.06), transparent 34%),
    linear-gradient(135deg, #fbfdff 0%, #f6faff 58%, #f6f7fc 100%);
}

.contact-page-hero {
  background:
    radial-gradient(circle at 88% 30%, rgba(100, 67, 218, 0.055), transparent 38%),
    radial-gradient(circle at 12% 18%, rgba(23, 100, 232, 0.04), transparent 34%),
    linear-gradient(135deg, #fcfdff 0%, #f9fbff 55%, #f8f7fc 100%);
}

.subpage-hero h1 {
  max-width: 1050px;
  margin: 0;
  color: #111827;
  font-size: clamp(48px, 6vw, 76px);
  line-height: 1;
  letter-spacing: -0.045em;
}

.subpage-hero h1 span {
  color: transparent;
  background: linear-gradient(90deg, #0966eb 0%, #245ee6 48%, #6442dc 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.subpage-hero p,
.subpage-hero .publications-intro {
  max-width: 820px;
  margin: 28px 0 0;
  color: #596274;
  font-size: 17px;
  line-height: 1.7;
}

.subpage-hero .people-intro,
.subpage-hero .news-intro,
.subpage-hero .contact-intro {
  max-width: 1050px;
  margin: 0;
}

.publication-hero-browser {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 34px;
}

.publication-hero-browser .publication-category-nav {
  gap: 12px;
  margin: 0;
}

.publication-hero-browser .publication-category-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 11px 16px;
  box-shadow: 0 5px 14px rgba(41, 73, 129, 0.045);
  transition: transform 160ms ease, color 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.publication-hero-browser .publication-category-nav a::before {
  position: absolute;
  bottom: calc(100% + 9px);
  left: 50%;
  z-index: 3;
  padding: 7px 9px;
  border-radius: 6px;
  color: #fff;
  background: #172033;
  box-shadow: 0 6px 16px rgba(23, 32, 51, 0.16);
  content: attr(data-hint);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition: opacity 150ms ease, transform 150ms ease;
}

.publication-hero-browser .publication-category-nav a::after {
  margin-left: 9px;
  content: "↓";
  font-size: 12px;
  font-weight: 700;
  opacity: 0.7;
}

.publication-hero-browser .publication-category-nav a:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(41, 73, 129, 0.09);
}

.publication-hero-browser .publication-category-nav a:hover::before,
.publication-hero-browser .publication-category-nav a:focus-visible::before {
  opacity: 1;
  transform: translate(-50%, 0);
}

.people-page-content,
.publications-page-content,
.news-page-content,
.contact-page-content {
  width: calc(100% - 64px);
  padding: 60px 0 100px;
  box-sizing: border-box;
}

.publications-page-content .publication-category-guide {
  margin-top: 0;
}

.contact-page-content .contact-content {
  margin-top: 0;
}

@media (max-width: 700px) {
  .subpage-hero {
    padding: 72px 20px 48px;
  }

  .subpage-hero h1 {
    font-size: clamp(40px, 12vw, 54px);
    line-height: 1.04;
  }

  .subpage-hero p,
  .subpage-hero .publications-intro {
    margin-top: 22px;
    font-size: 16px;
  }

  .people-page-content,
  .publications-page-content,
  .news-page-content,
  .contact-page-content {
    width: calc(100% - 40px);
    padding: 48px 0 72px;
  }

  .people-page-content {
    padding-bottom: 48px;
  }
}

.news-list {
  border-top: 1px solid #ddd;
}

.news-item {
  display: grid;
  grid-template-columns: 120px 34px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin: 0 -10px;
  padding: 20px 10px;
  border-bottom: 1px solid #ddd;
  transition: background-color 160ms ease;
}

.news-item:hover {
  background: #f8faff;
}

.news-item time {
  color: #777;
  font-size: 14px;
}

.news-overview .news-item time {
  font-weight: 700;
}

.news-item h3 {
  margin: 0;
  font-size: 20px;
}

.news-item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  color: #2d68d5;
  background: #eaf1ff;
}

.news-item-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.news-item-icon-award,
.news-item-icon-conference,
.news-item-icon-collaboration {
  color: #6249ce;
  background: #f0edff;
}

.news-item a {
  color: #222;
  text-decoration: none;
}

.news-item a:hover {
  text-decoration: underline;
}

.news-more {
  margin-top: 28px;
}

.news-more a {
  color: #222;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}

.news-more a:hover {
  text-decoration: underline;
}

@media (max-width: 700px) {
  .news-item {
    grid-template-columns: 82px 30px minmax(0, 1fr);
    gap: 12px;
    padding-top: 17px;
    padding-bottom: 17px;
  }

  .news-item-icon {
    width: 30px;
    height: 30px;
  }

  .news-item h3 {
    font-size: 17px;
    line-height: 1.4;
  }
}

.news-page {
  padding: 100px 32px;
}

.news-intro {
  max-width: 860px;
  margin-bottom: 64px;
}

.news-intro h1 {
  margin: 0;
  font-size: clamp(42px, 4.5vw, 58px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.news-intro p {
  max-width: 760px;
  margin: 24px 0 0;
  color: #555;
  font-size: 17px;
  line-height: 1.7;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.news-card {
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.news-card:hover {
  transform: translateY(-2px);
  border-color: rgba(35, 91, 255, 0.28);
  box-shadow: 0 10px 24px rgba(24, 43, 90, 0.08);
}

.news-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.news-card-image {
  display: block;
}

.news-card-image img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}

.news-card-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px 20px;
}

.news-card-content time {
  font-size: 13px;
  color: #777;
}

.news-card-content h2 {
  display: -webkit-box;
  overflow: hidden;
  margin: 8px 0 10px;
  font-size: 20px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media (max-width: 900px) {
  .news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .news-grid {
    grid-template-columns: 1fr;
  }
}

.news-card-content h2 {
  color: #222;
  transition: color 0.2s ease;
}

.news-card:hover .news-card-content h2 {
  color: #235bff;
}

.news-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-card-tags li {
  padding: 5px 9px;
  border-radius: 999px;
  color: #3155b7;
  background: rgba(35, 91, 255, 0.07);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.news-article {
  padding: 72px 32px 52px;
}

.news-article-header {
  max-width: 900px;
  margin-bottom: 45px;
}

.news-article-header h1 {
  margin: 0 0 20px;
  font-size: 52px;
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.news-article-header time {
  font-size: 14px;
  color: #777;
}

.news-article-cover {
  width: 100%;
  max-width: 900px;
  margin-bottom: 50px;
}

.news-article-cover img {
  display: block;
  width: 100%;
  max-height: 600px;
  object-fit: cover;
  border-radius: 10px;
}

.news-article-content {
  max-width: 850px;
  font-size: 18px;
  line-height: 1.8;
  color: #333;
}

.news-article-content p {
  margin: 0 0 24px;
}

.news-article-content > :last-child {
  margin-bottom: 0;
}

.news-article-content h2 {
  margin-top: 50px;
  font-size: 30px;
}

.news-article-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.people-page {
  padding: 100px 32px;
}

.people-intro {
  max-width: 860px;
  margin-bottom: 72px;
}

.people-intro h1 {
  margin: 0;
  font-size: clamp(42px, 4.5vw, 58px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.people-intro p {
  max-width: 760px;
  margin: 24px 0 0;
  color: #555;
  font-size: 17px;
  line-height: 1.7;
}

.people-section {
  margin-bottom: 100px;
}

.people-section-header {
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid #ddd;
}

.people-section-header h2 {
  margin: 0;
  font-size: 30px;
}

.faculty-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.faculty-card {
  display: grid;
  grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
  gap: 28px;
  min-width: 0;
  padding: 28px;
  box-sizing: border-box;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  background: #fff;
}

.faculty-photo {
  width: 100%;
}

.faculty-photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

.faculty-info {
  min-width: 0;
}

.photo-placeholder {
  width: 100%;
  aspect-ratio: 4 / 5;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #f1f1f1;
  color: #999;

  border-radius: 8px;
}

.faculty-info h3 {
  margin: 0 0 10px;
  font-size: 26px;
}

.faculty-korean-name {
  margin: 4px 0 2px;
  color: #657083;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

.faculty-role {
  margin: 0 0 14px;
  font-size: 15px;
  font-weight: 600;
}

.faculty-affiliation {
  margin: 0 0 16px;
  color: #666;
  font-size: 15px;
  line-height: 1.7;
}

.faculty-card-email {
  display: flex;
  gap: 7px;
  align-items: center;
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.5;
}

.faculty-card-email svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  fill: none;
  stroke: #6c7890;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transform: translateY(1px);
}

.faculty-card-email a {
  color: #52627a;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.faculty-card-email a:hover {
  color: #245fc6;
  text-decoration: underline;
}

.faculty-link {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid #c8d8f2;
  border-radius: 8px;
  background: #f7faff;
  color: #245fc6;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.faculty-link:hover {
  border-color: #8eafe3;
  background: #edf4ff;
  color: #174fae;
  text-decoration: none;
  transform: translateY(-1px);
}

@media (max-width: 1100px) {
  .faculty-grid {
    grid-template-columns: 1fr;
  }

  .faculty-card {
    grid-template-columns: 180px minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .people-section-header {
    margin-bottom: 20px;
  }

  .faculty-grid {
    gap: 18px;
  }

  .faculty-card {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    padding: 18px;
  }

  .faculty-info h3 {
    margin-bottom: 8px;
    font-size: 22px;
    line-height: 1.15;
  }

  .faculty-korean-name {
    font-size: 14px;
  }

  .faculty-role {
    margin-bottom: 10px;
    font-size: 14px;
  }

  .faculty-affiliation {
    margin-bottom: 12px;
    font-size: 13px;
    line-height: 1.5;
  }

  .faculty-card-email {
    align-items: flex-start;
    margin-bottom: 12px;
    font-size: 13px;
  }

  .faculty-link {
    padding: 7px 10px;
    font-size: 13px;
  }
}

@media (max-width: 380px) {
  .faculty-card {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
  }

  .faculty-info h3 {
    font-size: 20px;
  }
}

.faculty-profile {
  padding: 72px 32px 84px;
  background: #ffffff;
}

.faculty-profile-header {
  position: relative;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 44px;
  align-items: center;
  margin-bottom: 56px;
  padding: 32px;
  overflow: hidden;
  border: 1px solid #e4eaf5;
  border-radius: 18px;
  background: linear-gradient(115deg, #f8fbff 0%, #fbfaff 100%);
}

.faculty-profile-header::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, #0e63e9 0%, #4738ef 58%, #7b38e8 100%);
  content: "";
}

.faculty-profile-photo img,
.faculty-profile-photo .photo-placeholder {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border: 1px solid rgba(44, 91, 180, 0.14);
  border-radius: 14px;
  box-shadow: 0 12px 28px rgba(28, 62, 119, 0.1);
}

.faculty-profile-info .section-label {
  display: inline-flex;
  margin: 0 0 14px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #eaf1ff;
  color: #215ec3;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.08em;
}

.faculty-profile-info h1 {
  margin: 0 0 15px;
  font-size: 48px;
  letter-spacing: -0.03em;
}

.faculty-profile-role {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 600;
}

.faculty-profile-affiliation,
.faculty-profile-office,
.faculty-profile-email {
  margin: 8px 0;
  color: #666;
  line-height: 1.6;
}

.faculty-profile-email a {
  color: #245fc6;
  text-decoration: none;
}

.faculty-profile-email a:hover {
  text-decoration: underline;
}

.faculty-profile-social {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-top: 16px;
}

.faculty-profile-social a {
  display: inline-flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border: 1px solid #d9e2f2;
  border-radius: 50%;
  background: #ffffff;
  color: #3d5f99;
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.faculty-profile-social a:hover {
  border-color: #9db7e2;
  background: #f2f6fd;
  color: #245fc6;
  transform: translateY(-1px);
}

.faculty-profile-social svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.faculty-profile-social .faculty-social-github {
  fill: currentColor;
  stroke: none;
}

.faculty-social-letter {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
}

.faculty-social-linkedin {
  font-size: 15px;
}

.faculty-profile-content {
  max-width: 960px;
  margin: 0 auto;
  font-size: 17px;
  line-height: 1.8;
}

.faculty-profile-content h2 {
  position: relative;
  margin: 48px 0 18px;
  padding: 0 0 0 16px;
  color: #172033;
  font-size: 28px;
  letter-spacing: -0.025em;
}

.faculty-profile-content h2::before {
  position: absolute;
  top: 8px;
  left: 0;
  width: 4px;
  height: 20px;
  border-radius: 999px;
  background: linear-gradient(180deg, #1768e8, #693de7);
  content: "";
}

.faculty-profile-content h2:first-child {
  margin-top: 0;
  padding: 0 0 0 16px;
  border-top: 0;
}

.faculty-profile-content h2:first-child::before {
  top: 8px;
}

.faculty-content-heading {
  position: relative;
  margin: 48px 0 18px;
}

.faculty-profile-content .faculty-content-heading h2 {
  margin: 0;
  padding: 0 0 0 16px;
  border-top: 0;
}

.faculty-profile-content .faculty-content-heading h2::before {
  top: 8px;
}

.faculty-content-heading-with-link {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: flex-start;
}

.faculty-content-heading-with-link > a {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 6px;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid #b9cdf1;
  border-radius: 8px;
  background: #ffffff;
  color: #245fc6;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.faculty-content-heading-with-link > a:hover {
  border-color: #6d98e3;
  background: #f3f7ff;
  text-decoration: none;
}

.faculty-profile-content h2:first-child + ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  list-style: none;
}

.faculty-profile-content h2:first-child + ul li {
  margin: 0;
  padding: 8px 13px;
  border: 1px solid #dfe7f5;
  border-radius: 999px;
  background: #f7faff;
  color: #33415d;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.faculty-profile-content h3 {
  position: relative;
  margin: 20px 0 4px;
  padding-left: 16px;
  color: #243652;
  font-size: 18px;
}

.faculty-profile-content h3::before {
  position: absolute;
  top: 11px;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3974d6;
  content: "";
}

.faculty-profile-content h3 + p {
  margin: 0;
  padding: 0 0 16px 16px;
  border-bottom: 1px solid #edf0f5;
  color: #626b7b;
  font-size: 15px;
}

.faculty-course-groups {
  display: grid;
}

.faculty-course-list {
  display: grid;
}

.faculty-course-item {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
  padding: 13px 6px 13px 18px;
  border-bottom: 1px solid #edf0f5;
  color: #3f4858;
  line-height: 1.65;
}

.faculty-course-item::before {
  position: absolute;
  top: 23px;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #4778c9;
  content: "";
}

.faculty-course-item > strong {
  color: #273750;
  font-size: 16px;
  line-height: 1.4;
}

.faculty-course-separator {
  color: #c2c9d5;
}

.faculty-course-level {
  color: #5d6777;
  font-size: 15px;
  font-weight: 400;
}

.faculty-course-terms {
  color: #687386;
  font-size: 15px;
}

.faculty-course-terms span {
  color: inherit;
  font-size: inherit;
  font-weight: 500;
  line-height: inherit;
}

.faculty-course-terms span + span::before {
  margin-right: 12px;
  color: #a2aabd;
  content: "·";
}

.faculty-profile-content ul,
.faculty-profile-content ol {
  margin: 0;
  padding-left: 22px;
}

.faculty-profile-content li + li {
  margin-top: 10px;
}

.faculty-profile-content > h2:not(:first-child) + ul {
  padding: 0;
  list-style: none;
}

.faculty-profile-content > h2:not(:first-child) + ul li {
  position: relative;
  margin: 0;
  padding: 11px 6px 11px 20px;
  border-bottom: 1px solid #edf0f5;
  color: #3f4858;
  line-height: 1.65;
}

.faculty-profile-content > h2:not(:first-child) + ul li::before {
  position: absolute;
  top: 22px;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #4778c9;
  content: "";
}

.faculty-two-column-section + ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 30px;
}

.faculty-content-heading + ol {
  counter-reset: faculty-publication;
  padding: 0;
  list-style: none;
}

.faculty-content-heading + ol li {
  position: relative;
  counter-increment: faculty-publication;
  margin: 0;
  padding: 12px 4px 14px 34px;
  border-bottom: 1px solid #edf0f5;
  color: #3d4655;
  line-height: 1.75;
}

.faculty-content-heading + ol li::before {
  position: absolute;
  top: 13px;
  left: 2px;
  color: #2f69ca;
  font-size: 14px;
  font-weight: 750;
  content: counter(faculty-publication) ".";
}

.faculty-profile-content strong {
  color: #273750;
}

.faculty-profile-content a {
  color: #245fc6;
  font-weight: 650;
  text-decoration: none;
}

.faculty-profile-content a:hover {
  text-decoration: underline;
}

@media (max-width: 760px) {
  .faculty-profile {
    padding: 64px 20px 72px;
  }

  .faculty-profile-header {
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 28px;
    margin-bottom: 48px;
    padding: 24px;
  }

  .faculty-profile-info h1 {
    font-size: clamp(34px, 8vw, 46px);
  }
}

@media (max-width: 520px) {
  .faculty-profile-header {
    grid-template-columns: 1fr;
  }

  .faculty-profile-photo {
    max-width: 180px;
  }

  .faculty-content-heading-with-link {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  .faculty-course-item {
    padding-left: 12px;
  }

  .faculty-two-column-section + ul {
    grid-template-columns: 1fr;
  }
}

.student-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.student-group + .student-group {
  margin-top: 52px;
}

.student-group-title {
  margin: 0 0 22px;
  color: #333;
  font-size: 22px;
  letter-spacing: -0.02em;
}

.student-card {
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  background: #fff;
}

.student-card-inner {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 24px;
  box-sizing: border-box;
  height: 100%;
  padding-block: 20px;
  padding-inline: 24px;
}

.student-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 8px;
}

.student-photo img,
.student-photo .photo-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.student-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0;
}

.student-name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.student-korean-name {
  margin: 0 0 2px;
  color: #6b7484;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}

.student-info h3 {
  margin: 0;
  font-size: 23px;
}

.student-role-badge {
  display: inline-block;
  margin: 0;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef2ff;
  color: #3746a0;
  font-size: 11px;
  font-weight: 700;
}

.student-position {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #555;
}

.student-email {
  display: flex;
  gap: 7px;
  align-items: center;
  margin: 0 0 14px;
  font-size: 14px;
  color: #666;
  overflow-wrap: anywhere;
}

.student-email svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  fill: none;
  stroke: #6c7890;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transform: translateY(1px);
}

.student-email a {
  color: inherit;
  text-decoration: none;
}

.student-email a:hover {
  color: #245fc6;
  text-decoration: underline;
}

.student-research {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.student-research > span {
  padding: 5px 9px;
  border-radius: 6px;
  background: #f0f4fb;
  color: #4c5e7a;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.student-social-links {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}

.student-social-links > a,
.student-social-links > span {
  display: inline-flex;
  width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  border: 1px solid #d9e2f2;
  border-radius: 50%;
  background: #ffffff;
  color: #3d5f99;
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.student-social-links a:hover {
  border-color: #9db7e2;
  background: #f2f6fd;
  color: #245fc6;
  transform: translateY(-1px);
}

.student-social-links > .is-disabled {
  border-color: #e3e7ed;
  background: #fafbfc;
  color: #a3abb7;
  cursor: default;
}

.student-social-links svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.student-social-links .student-social-github {
  fill: currentColor;
  stroke: none;
}

.student-social-letter {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
}

.student-social-linkedin {
  font-size: 13px;
}

.alumni-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.alumni-card {
  padding: 26px;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  background: #fff;
}

.alumni-card h3 {
  margin: 0 0 12px;
  font-size: 22px;
}

.alumni-graduation {
  margin: 0 0 8px;
  color: #555;
  font-size: 14px;
  font-weight: 600;
}

.alumni-current {
  margin: 0;
  color: #666;
  font-size: 14px;
  line-height: 1.6;
}

.alumni-meta-label {
  color: #444;
  font-weight: 600;
}

@media (max-width: 1000px) {
  .student-grid {
    grid-template-columns: 1fr;
  }

  .alumni-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .student-card {
    min-height: 0;
  }

  .student-card-inner {
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
  }

  .student-info h3 {
    font-size: 20px;
  }

  .student-position,
  .student-email {
    font-size: 13px;
  }

  .student-social-links > a,
  .student-social-links > span {
    width: 36px;
    height: 36px;
  }
}

@media (max-width: 380px) {
  .hero-redesign .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero-redesign .hero-actions a {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-align: center;
  }

  .hero-journey {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 20px;
  }

  .hero-journey li:nth-child(2)::after {
    display: none;
  }

  .student-card-inner {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .student-photo {
    max-width: 140px;
    margin: 0 auto;
  }

  .student-info {
    text-align: center;
  }

  .student-name-row,
  .student-email,
  .student-research,
  .student-social-links {
    justify-content: center;
  }
}

.publications-page,
.publication-detail {
  padding: 100px 32px;
}

.publications-page > .section-inner > h1,
.publication-detail h1 {
  margin: 0;
  font-size: clamp(42px, 4.5vw, 58px);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.publications-intro {
  max-width: 760px;
  margin-top: 24px;
  color: #555;
  font-size: 17px;
  line-height: 1.7;
}

.publications-intro p {
  margin: 0;
}

.publication-category-guide {
  margin-top: 38px;
}

.publication-category-guide-label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 9px;
  color: #666;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.publication-category-guide-label::before {
  width: 4px;
  height: 4px;
  flex: 0 0 auto;
  margin: 0 6px 6px 0;
  background: #555;
  box-shadow: 6px 0 #555, 0 6px #555, 6px 6px #555;
  content: "";
}

.publication-category-guide > p:last-child {
  margin: 0;
  color: #777;
  font-size: 14px;
  line-height: 1.6;
}

.publication-category-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0 72px;
}

.publication-category-nav a {
  padding: 10px 16px;
  border: 1px solid #d4d7dd;
  border-radius: 999px;
  color: #333;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  background: #f2f3f5;
  transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.publication-category-nav a:hover {
  color: #171717;
  border-color: #aeb4bf;
  background: #e4e7ec;
}

.publication-category-nav a:nth-child(1) {
  color: #1858b8;
  border-color: #c6d8f3;
  background: #eaf2ff;
}

.publication-category-nav a:nth-child(1):hover {
  color: #124999;
  border-color: #abc6ec;
  background: #dce9fc;
}

.publication-category-nav a:nth-child(2) {
  color: #4057bd;
  border-color: #d1d8f5;
  background: #eef1ff;
}

.publication-category-nav a:nth-child(2):hover {
  color: #3448a2;
  border-color: #b9c4ec;
  background: #e1e6fc;
}

.publication-category-nav a:nth-child(3) {
  color: #6741c4;
  border-color: #ddd1f5;
  background: #f3edff;
}

.publication-category-nav a:nth-child(3):hover {
  color: #5634ab;
  border-color: #c9b8ed;
  background: #e8defb;
}

.publication-category + .publication-category {
  margin-top: 90px;
}

.publication-category-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid #d8d8d8;
}

.publication-category-header h2 {
  margin: 0;
  font-size: 30px;
}

.publication-category-header span {
  color: #888;
  font-size: 13px;
}

.publication-metrics-note {
  margin: 14px 0 0;
  color: #777;
  font-size: 12px;
  line-height: 1.55;
}

.publication-year-group {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 34px;
  padding-top: 38px;
}

.publication-year-group > h3 {
  margin: 0;
  font-size: 24px;
}

.publication-item {
  padding: 0 0 18px;
  border-bottom: 1px solid #ececec;
}

.publication-item + .publication-item {
  padding-top: 18px;
}

.publication-authors,
.publication-venue {
  margin: 0;
  color: #666;
  font-size: 14px;
  line-height: 1.65;
}

.publication-meta-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
}

.publication-metrics {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.38rem;
  margin: 0;
}

.publication-metrics span {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.16rem 0.55rem;
  border: 1px solid rgba(30, 94, 255, 0.16);
  border-radius: 999px;
  background: rgba(30, 94, 255, 0.055);
  color: #31528f;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.2;
}

.publication-metrics .publication-quartile {
  border-color: rgba(101, 65, 246, 0.18);
  background: rgba(101, 65, 246, 0.07);
  color: #6044c7;
}

.publication-item h4 {
  margin: 7px 0;
  font-size: 19px;
  line-height: 1.45;
}

.publication-item h4 a {
  color: #171717;
  text-decoration: none;
}

.publication-item h4 a:hover {
  text-decoration: underline;
}

.publication-links {
  display: flex;
  gap: 8px;
  margin-top: 13px;
}

.publication-links a {
  padding: 5px 9px;
  border: 1px solid #d6d6d6;
  border-radius: 5px;
  color: #333;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}

.publication-empty {
  margin: 28px 0 0;
  color: #888;
}

.publication-back-to-top {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 20;

  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  height: 52px;
  padding: 8px 17px 8px 9px;

  border: 1px solid #ccd9f0;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(41, 73, 129, 0.12);

  background: linear-gradient(135deg, #f7faff 0%, #f1f4ff 54%, #f5f1fd 100%);
  color: #315bc5;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.publication-back-to-top:hover {
  transform: translateY(-3px);
  border-color: #b5c8eb;
  background: linear-gradient(135deg, #edf4ff 0%, #e9edff 54%, #efe8fb 100%);
  box-shadow: 0 11px 26px rgba(41, 73, 129, 0.16);
}

.publication-back-to-top:focus-visible {
  outline: 3px solid rgba(72, 115, 230, 0.3);
  outline-offset: 3px;
}

.publication-back-to-top-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #1267e8 0%, #3d58dc 55%, #6842d7 100%);
  box-shadow: 0 4px 10px rgba(49, 82, 190, 0.2);
}

.publication-back-to-top-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.publication-back-to-top[hidden] {
  display: none;
}

.publication-detail {
  max-width: 900px;
  margin: 0 auto;
}

.publication-detail-year {
  margin: 30px 0 10px;
  color: #777;
  font-weight: 600;
}

.publication-detail-authors,
.publication-detail-venue {
  color: #555;
  font-size: 16px;
  line-height: 1.7;
}

.publication-detail-authors {
  margin: 28px 0 8px;
}

.publication-detail-venue {
  margin: 0;
  font-style: italic;
}

.publication-detail-links {
  margin-top: 24px;
}

.publication-detail-content {
  margin-top: 48px;
  line-height: 1.8;
}

.publication-detail-back {
  margin-top: 60px;
  padding-top: 30px;
  border-top: 1px solid #ddd;
}

.publication-detail-back a {
  color: #222;
  font-weight: 600;
  text-decoration: none;
}

@media (max-width: 700px) {
  .publications-page,
  .publication-detail {
    padding: 72px 20px;
  }

  .publications-page > .section-inner > h1,
  .publication-detail h1 {
    font-size: 38px;
  }

  .publication-year-group {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .publication-category-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .publication-back-to-top {
    right: 16px;
    bottom: 16px;
    padding: 10px 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .publication-back-to-top {
    transition: none;
  }
}

/* Contact page */
.contact-page {
  color: #171717;
}

.contact-hero,
.contact-research-section,
.contact-opportunities-section,
.contact-experience-section,
.contact-apply-section {
  padding: 92px 32px;
}

.contact-hero {
  padding-top: 100px;
  border-bottom: 1px solid #dedede;
  background: #fff;
}

.contact-section-label {
  margin: 0;
  color: #777;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.contact-hero h1 {
  max-width: 980px;
  margin: 18px 0 0;
  font-size: clamp(46px, 5.5vw, 70px);
  line-height: 1.04;
  letter-spacing: -0.048em;
}

.contact-hero-description {
  max-width: 820px;
  margin: 28px 0 0;
  color: #555;
  font-size: 17px;
  line-height: 1.75;
}

.contact-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.contact-primary-button,
.contact-secondary-button,
.contact-card-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 19px;
  border: 1px solid #222;
  border-radius: 6px;
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
  background: #222;
}

.contact-secondary-button {
  color: #333;
  border-color: #d3d3d3;
  background: #fff;
}

.contact-secondary-button:hover {
  border-color: #888;
}

.contact-section-heading {
  max-width: 830px;
  margin-bottom: 44px;
}

.contact-section-heading h2,
.contact-experience-copy h2,
.contact-apply-section h2 {
  margin: 16px 0 0;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.04em;
}

.contact-section-heading > p:last-child,
.contact-experience-copy > p:last-child,
.contact-apply-description {
  max-width: 760px;
  margin: 22px 0 0;
  color: #666;
  font-size: 16px;
  line-height: 1.75;
}

.contact-research-section {
  background: #f6f7fa;
}

.contact-research-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.contact-research-grid article {
  min-height: 210px;
  padding: 28px;
  border: 1px solid #dfe1e6;
  border-radius: 10px;
  background: #fff;
}

.contact-research-grid span {
  color: #929292;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.1em;
}

.contact-research-grid h3 {
  margin: 28px 0 12px;
  font-size: 23px;
  letter-spacing: -0.025em;
}

.contact-research-grid p,
.contact-opportunity-grid p {
  margin: 0;
  color: #626262;
  font-size: 14px;
  line-height: 1.7;
}

.contact-opportunities-section {
  background: #fff;
}

.contact-opportunity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
}

.contact-opportunity-grid article {
  padding: 30px 28px 34px;
}

.contact-opportunity-grid article + article {
  border-left: 1px solid #d9d9d9;
}

.contact-opportunity-grid h3 {
  margin: 0 0 14px;
  font-size: 20px;
  letter-spacing: -0.02em;
}

.contact-experience-section {
  border-top: 1px solid #e3e3e3;
  background: #f6f7fa;
}

.contact-experience-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  align-items: center;
  gap: 90px;
}

.contact-experience-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid #d7d9de;
  list-style: none;
}

.contact-experience-list li {
  position: relative;
  padding: 18px 10px 18px 26px;
  border-bottom: 1px solid #d7d9de;
  color: #333;
  font-size: 16px;
}

.contact-experience-list li::before {
  position: absolute;
  top: 26px;
  left: 5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #777;
  content: "";
}

.contact-apply-section {
  background: #fff;
}

.contact-apply-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
  align-items: start;
  gap: 80px;
}

.contact-apply-steps {
  margin: 34px 0 0;
  padding: 0;
  border-top: 1px solid #dedede;
  list-style: none;
}

.contact-apply-steps li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  padding: 17px 0;
  border-bottom: 1px solid #dedede;
  color: #333;
  font-size: 15px;
  line-height: 1.55;
}

.contact-apply-steps span {
  color: #999;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.08em;
}

.contact-information-card {
  padding: 30px;
  border: 1px solid #d9d9d9;
  border-radius: 10px;
  background: #f6f7fa;
}

.contact-information-card h3 {
  margin: 0 0 26px;
  font-size: 24px;
  letter-spacing: -0.025em;
}

.contact-information-card dl {
  margin: 0;
}

.contact-information-card dl > div {
  padding: 15px 0;
  border-top: 1px solid #d9dbe0;
}

.contact-information-card dt {
  margin-bottom: 6px;
  color: #888;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.contact-information-card dd {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.6;
}

.contact-information-card dd a {
  color: inherit;
  text-decoration: none;
}

.contact-information-card dd a:hover {
  text-decoration: underline;
}

.contact-card-button {
  width: 100%;
  box-sizing: border-box;
  margin-top: 24px;
}

@media (max-width: 900px) {
  .contact-opportunity-grid {
    grid-template-columns: 1fr;
  }

  .contact-opportunity-grid article + article {
    border-top: 1px solid #d9d9d9;
    border-left: 0;
  }

  .contact-experience-layout,
  .contact-apply-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }
}

@media (max-width: 700px) {
  .contact-hero,
  .contact-research-section,
  .contact-opportunities-section,
  .contact-experience-section,
  .contact-apply-section {
    padding: 72px 20px;
  }

  .contact-hero {
    padding-top: 76px;
  }

  .contact-hero h1 {
    font-size: clamp(40px, 12vw, 56px);
  }

  .contact-research-grid {
    grid-template-columns: 1fr;
  }

  .contact-research-grid article {
    min-height: 0;
    padding: 24px;
  }

  .contact-information-card {
    padding: 24px;
  }
}

/* Simple contact presentation */
.contact-page {
  padding: 100px 32px 110px;
  background: #fff;
}

.contact-intro {
  max-width: 900px;
}

.contact-intro h1 {
  margin: 0;
  font-size: clamp(46px, 5vw, 64px);
  line-height: 1.06;
  letter-spacing: -0.045em;
}

.contact-intro p {
  max-width: 820px;
  margin: 26px 0 0;
  color: #555;
  font-size: 17px;
  line-height: 1.75;
}

.contact-content {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.75fr);
  gap: 90px;
  margin-top: 70px;
  padding-top: 48px;
  border-top: 1px solid #dedede;
}

.contact-application {
  max-width: 700px;
}

.contact-application h2,
.contact-details h2 {
  margin: 0 0 20px;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.contact-application > p {
  margin: 0 0 16px;
  color: #5d5d5d;
  font-size: 15px;
  line-height: 1.75;
}

.contact-application .contact-subject {
  margin-top: 28px;
  color: #333;
}

.contact-subject strong {
  display: block;
  margin-bottom: 5px;
  color: #777;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.contact-email-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding: 13px 20px;
  border-radius: 6px;
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
  background: #222;
}

.contact-details dl {
  margin: 0;
}

.contact-details dl > div {
  padding: 14px 0;
  border-top: 1px solid #e2e2e2;
}

.contact-details dt {
  margin-bottom: 5px;
  color: #888;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.contact-details dd {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.6;
}

.contact-details a {
  color: inherit;
  text-decoration: none;
}

.contact-details a:hover {
  text-decoration: underline;
}

@media (max-width: 800px) {
  .contact-page {
    padding: 72px 20px 82px;
  }

  .contact-content {
    grid-template-columns: 1fr;
    gap: 48px;
    margin-top: 52px;
    padding-top: 38px;
  }

  .contact-intro h1 {
    font-size: clamp(40px, 12vw, 54px);
  }
}

/* Final shared subpage hero alignment */
.people-page,
.publications-page,
.news-page,
.contact-page {
  padding: 0;
}

.subpage-hero h1,
.people-intro h1,
.news-intro h1,
.contact-intro h1 {
  max-width: 1050px;
  margin: 0;
  color: #111827;
  font-size: clamp(48px, 6vw, 76px);
  line-height: 1;
  letter-spacing: -0.045em;
}

.subpage-hero p,
.subpage-hero .publications-intro,
.people-intro p,
.news-intro p,
.contact-intro p {
  max-width: 820px;
  margin: 28px 0 0;
  color: #596274;
  font-size: 17px;
  line-height: 1.7;
}

.people-page-content,
.publications-page-content,
.news-page-content,
.contact-page-content {
  width: calc(100% - 64px);
  padding: 60px 0 100px;
}

.people-page-content {
  padding-bottom: 60px;
}

.people-page-content .people-section {
  margin-bottom: 60px;
}

.people-page-content .people-section:last-child {
  margin-bottom: 0;
}

@media (max-width: 700px) {
  .people-page,
  .publications-page,
  .news-page,
  .contact-page {
    padding: 0;
  }

  .subpage-hero h1,
  .people-intro h1,
  .news-intro h1,
  .contact-intro h1 {
    font-size: clamp(40px, 12vw, 54px);
    line-height: 1.04;
  }

  .subpage-hero p,
  .subpage-hero .publications-intro,
  .people-intro p,
  .news-intro p,
  .contact-intro p {
    margin-top: 22px;
    font-size: 16px;
  }

  .people-page-content,
  .publications-page-content,
  .news-page-content,
  .contact-page-content {
    width: calc(100% - 40px);
    padding: 48px 0 72px;
  }

  .people-page-content {
    padding-bottom: 48px;
  }

  .people-page-content .people-section {
    margin-bottom: 48px;
  }
}

/* Contact recruitment cascade alignment */
.contact-page-content {
  text-align: center;
}

.contact-page-content .contact-section-label {
  margin: 0 0 14px;
  color: #526f9d;
}

.contact-page-content .contact-section-heading {
  max-width: none;
  margin-bottom: 0;
}

.contact-page-content .contact-section-heading h2 {
  margin: 0;
  line-height: 1.15;
}
