
   MARYAM TAHERZADEH
   COMPUTATIONAL DRUG DISCOVERY PORTFOLIO
   HOME PAGE — REFINED VERSION

/* ============================================================
   VARIABLES
============================================================ */

:root {
  --navy: #102b48;
  --navy-deep: #091f35;

  --blue: #2768c9;
  --blue-dark: #1b56ae;

  --text: #21364d;
  --muted: #687b8f;
  --light-muted: #91a0ae;

  --white: #ffffff;

  --surface: #f6f9fc;
  --surface-blue: #f1f7fb;

  --border: #dce6ee;

  /* Wider than old 1160px layout */
  --container: 1240px;

  --shadow:
    0 20px 50px rgba(32, 69, 104, 0.09);

  --shadow-hover:
    0 24px 55px rgba(30, 65, 100, 0.13);
}


/* ============================================================
   RESET
============================================================ */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--white);
  color: var(--text);

  font-family:
    "DM Sans",
    Arial,
    sans-serif;

  line-height: 1.65;

  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

.page-container {
  width: min(
    calc(100% - 64px),
    var(--container)
  );

  margin: 0 auto;
}


/* ============================================================
   TYPOGRAPHY
============================================================ */

h1,
h2 {
  font-family:
    "Playfair Display",
    Georgia,
    serif;

  color: var(--navy);
}

h1 {
  font-size: clamp(
    3.7rem,
    5.8vw,
    5.7rem
  );

  line-height: 1.01;
  letter-spacing: -0.048em;
}

h1 span {
  display: block;
  color: var(--blue);
}

h2 {
  font-size: clamp(
    2.45rem,
    3.6vw,
    3.65rem
  );

  line-height: 1.1;
  letter-spacing: -0.038em;
}

h3 {
  color: var(--navy);
}

p {
  color: var(--muted);
}

.eyebrow {
  margin-bottom: 12px;

  color: var(--blue);

  font-size: 0.76rem;
  font-weight: 700;

  letter-spacing: 0.17em;
  text-transform: uppercase;
}


/* ============================================================
   HEADER
============================================================ */

.site-header {
  position: sticky;
  top: 0;

  z-index: 1000;

  background: rgba(255, 255, 255, 0.95);

  border-bottom:
    1px solid rgba(220, 230, 238, 0.9);

  backdrop-filter: blur(15px);
}

.nav-container {
  width: min(
    calc(100% - 64px),
    var(--container)
  );

  height: 78px;

  margin: 0 auto;

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

.brand {
  display: flex;
  flex-direction: column;

  line-height: 1.1;
}

.brand-name {
  color: var(--navy);

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 1.12rem;
  font-weight: 700;
}

.brand-role {
  margin-top: 6px;

  color: var(--light-muted);

  font-size: 0.62rem;
  font-weight: 700;

  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.desktop-nav {
  display: flex;
  align-items: center;

  gap: 32px;
}

.desktop-nav a {
  position: relative;

  padding: 28px 0 26px;

  color: #64778b;

  font-size: 0.88rem;
  font-weight: 600;
}

.desktop-nav a:hover {
  color: var(--blue);
}

.desktop-nav a::after {
  content: "";

  position: absolute;

  left: 50%;
  bottom: 18px;

  width: 0;
  height: 2px;

  background: var(--blue);

  border-radius: 20px;

  transform: translateX(-50%);

  transition: width 0.2s ease;
}

.desktop-nav a:hover::after {
  width: 100%;
}


/* ============================================================
   MOBILE MENU
============================================================ */

.menu-button {
  display: none;

  width: 42px;
  height: 42px;

  border: 0;
  background: transparent;

  cursor: pointer;
}

.menu-button span {
  display: block;

  width: 23px;
  height: 2px;

  margin: 5px auto;

  background: var(--navy);

  border-radius: 10px;
}

.mobile-nav {
  display: none;
}


/* ============================================================
   HERO
============================================================ */

.hero {
  padding: 72px 0 68px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 88% 24%,
      rgba(69, 160, 195, 0.11),
      transparent 25%
    ),
    linear-gradient(
      180deg,
      #ffffff,
      #f8fbfd
    );
}

.hero-grid {
  display: grid;

  grid-template-columns:
    1.04fr
    0.96fr;

  gap: 70px;

  align-items: center;
}

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

.hero-description {
  max-width: 640px;

  margin-top: 22px;

  font-size: 1.17rem;
  line-height: 1.72;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;

  gap: 13px;

  margin-top: 28px;
}

.button {
  min-height: 50px;

  padding: 0 24px;

  display: inline-flex;

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

  gap: 10px;

  border-radius: 10px;

  font-size: 0.89rem;
  font-weight: 700;

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-primary {
  color: white;

  background: var(--blue);

  box-shadow:
    0 10px 24px rgba(39, 104, 201, 0.22);
}

.button-primary:hover {
  background: var(--blue-dark);
}

.button-secondary {
  color: var(--navy);

  background: white;

  border: 1px solid var(--border);
}

.hero-tags {
  display: flex;
  flex-wrap: wrap;

  gap: 8px;

  margin-top: 25px;
}

.hero-tags span {
  padding: 7px 12px;

  color: #667b90;

  background: rgba(255, 255, 255, 0.82);

  border: 1px solid #dce6ef;
  border-radius: 999px;

  font-size: 0.72rem;
  font-weight: 600;
}


/* ============================================================
   HERO SCIENCE CARD
============================================================ */

.science-card {
  position: relative;

  min-height: 470px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 50% 44%,
      #ffffff 0%,
      #eef7fb 58%,
      #e7f0f6 100%
    );

  border: 1px solid #d8e5ed;
  border-radius: 28px;

  box-shadow:
    0 28px 65px rgba(34, 73, 106, 0.12);
}

.science-card-header {
  position: absolute;

  top: 23px;
  left: 25px;

  z-index: 20;

  display: flex;
  align-items: center;

  gap: 9px;

  color: #60768b;

  font-size: 0.69rem;
  font-weight: 700;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.status-dot {
  width: 8px;
  height: 8px;

  background: #42a6b4;

  border-radius: 50%;

  box-shadow:
    0 0 0 5px rgba(66, 166, 180, 0.11);
}


/* ============================================================
   HERO MOLECULE
============================================================ */

.molecule-stage {
  position: absolute;

  inset:
    54px
    18px
    78px;

  display: flex;

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

  overflow: hidden;
}

.molecule-stage::before {
  content: "";

  position: absolute;

  width: 360px;
  height: 360px;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(75, 142, 205, 0.14),
      rgba(80, 166, 185, 0.05) 47%,
      transparent 70%
    );
}

.orbit {
  position: absolute;

  border:
    1px solid rgba(55, 120, 177, 0.13);

  border-radius: 50%;
}

.orbit-one {
  width: 410px;
  height: 180px;

  transform: rotate(25deg);
}

.orbit-two {
  width: 370px;
  height: 160px;

  transform: rotate(-28deg);
}

.molecule {
  position: relative;

  z-index: 10;

  width: 310px;
  height: 245px;

  transform:
    rotate(-7deg)
    scale(1.14);
}


/* ============================================================
   HERO ATOMS
============================================================ */

.atom {
  position: absolute;

  z-index: 10;

  border-radius: 50%;

  box-shadow:
    inset -6px -7px 10px rgba(0, 0, 0, 0.20),
    inset 6px 6px 9px rgba(255, 255, 255, 0.55),
    0 8px 15px rgba(30, 60, 90, 0.20);
}

.carbon {
  width: 32px;
  height: 32px;

  background:
    radial-gradient(
      circle at 30% 26%,
      #9aabba,
      #526b85 35%,
      #293f59 70%,
      #13283d
    );
}

.nitrogen {
  width: 34px;
  height: 34px;

  background:
    radial-gradient(
      circle at 30% 25%,
      #9ecbff,
      #4f91e8 33%,
      #2869c5 68%,
      #174a97
    );
}

.oxygen {
  width: 34px;
  height: 34px;

  background:
    radial-gradient(
      circle at 30% 25%,
      #ffaaaa,
      #ef676d 33%,
      #d83d47 68%,
      #aa202c
    );
}

.hydrogen {
  width: 23px;
  height: 23px;

  background:
    radial-gradient(
      circle at 30% 25%,
      #ffffff,
      #f5f7fa 40%,
      #d7e0e9 73%,
      #abb8c5
    );
}


/* ATOM POSITIONS */

.atom-1 {
  left: 48px;
  top: 104px;
}

.atom-2 {
  left: 98px;
  top: 62px;
}

.atom-3 {
  left: 156px;
  top: 84px;
}

.atom-4 {
  left: 164px;
  top: 145px;
}

.atom-5 {
  left: 105px;
  top: 174px;
}

.atom-6 {
  left: 218px;
  top: 58px;
}

.atom-7 {
  left: 232px;
  top: 132px;
}

.atom-8 {
  left: 42px;
  top: 174px;
}

.atom-9 {
  left: 263px;
  top: 39px;
}


/* ============================================================
   HERO BONDS
============================================================ */

.bond {
  position: absolute;

  z-index: 5;

  height: 8px;

  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      #d8e0e8,
      #899bad 48%,
      #65798d
    );

  box-shadow:
    0 3px 6px rgba(30, 55, 80, 0.15);

  transform-origin: left center;
}

.bond-1 {
  width: 70px;
  left: 65px;
  top: 113px;
  transform: rotate(-39deg);
}

.bond-2 {
  width: 72px;
  left: 115px;
  top: 76px;
  transform: rotate(22deg);
}

.bond-3 {
  width: 65px;
  left: 173px;
  top: 100px;
  transform: rotate(83deg);
}

.bond-4 {
  width: 71px;
  left: 177px;
  top: 159px;
  transform: rotate(156deg);
}

.bond-5 {
  width: 75px;
  left: 117px;
  top: 186px;
  transform: rotate(-137deg);
}

.bond-6 {
  width: 72px;
  left: 173px;
  top: 96px;
  transform: rotate(-24deg);
}

.bond-7 {
  width: 77px;
  left: 180px;
  top: 158px;
  transform: rotate(-14deg);
}

.bond-8 {
  width: 72px;
  left: 117px;
  top: 186px;
  transform: rotate(170deg);
}

.bond-9 {
  width: 54px;
  left: 235px;
  top: 70px;
  transform: rotate(-25deg);
}


/* ============================================================
   HERO SCIENCE FEATURES
============================================================ */

.science-features {
  position: absolute;

  left: 25px;
  right: 25px;
  bottom: 20px;

  z-index: 30;

  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  background:
    rgba(255, 255, 255, 0.92);

  border: 1px solid #dce6ed;
  border-radius: 13px;

  backdrop-filter: blur(10px);
}

.science-feature {
  min-height: 72px;

  display: flex;

  flex-direction: column;

  align-items: center;
  justify-content: center;
}

.science-feature + .science-feature {
  border-left: 1px solid #e1e8ee;
}

.science-feature strong {
  margin-top: 2px;

  color: var(--navy);

  font-size: 0.80rem;
}

.science-feature > span {
  color: var(--light-muted);

  font-size: 0.62rem;
}

.feature-icon {
  position: relative;

  width: 29px;
  height: 19px;

  display: flex;

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

  color: var(--blue);

  font-weight: 700;
}

.rl-icon {
  color: #7555cf;

  font-size: 1.1rem;
}

.structure-icon {
  color: #319a80;

  font-size: 1.1rem;
}


/* ============================================================
   HERO MINI NEURAL NETWORK
============================================================ */

.neural-node {
  position: absolute;

  width: 5px;
  height: 5px;

  background: #3e79d6;

  border-radius: 50%;
}

.neural-a {
  left: 1px;
  top: 7px;
}

.neural-b {
  left: 11px;
  top: 1px;
}

.neural-c {
  right: 1px;
  top: 9px;
}

.neural-line {
  position: absolute;

  height: 1px;

  background: #78a1e0;

  transform-origin: left center;
}

.neural-line-a {
  width: 12px;

  left: 4px;
  top: 9px;

  transform: rotate(-29deg);
}

.neural-line-b {
  width: 13px;

  left: 14px;
  top: 5px;

  transform: rotate(34deg);
}


/* ============================================================
   GENERAL SECTIONS
============================================================ */

.section {
  padding: 70px 0;
}

.section-heading {
  max-width: 760px;

  margin-bottom: 34px;
}

.section-heading p:last-child {
  max-width: 650px;

  margin-top: 13px;

  font-size: 1rem;
  line-height: 1.7;
}

.section-heading-center {
  margin-left: auto;
  margin-right: auto;

  text-align: center;
}

.section-heading-center p:last-child {
  margin-left: auto;
  margin-right: auto;
}


/* ============================================================
   RESEARCH APPROACH
============================================================ */

.research-section {
  background: white;
}

.research-grid {
  display: grid;

  grid-template-columns:
    repeat(4, 1fr);

  gap: 18px;
}

.research-card {
  position: relative;

  min-height: 390px;

  overflow: hidden;

  padding:
    0
    22px
    25px;

  background: white;

  border: 1px solid var(--border);
  border-radius: 20px;

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.research-card:hover {
  transform: translateY(-5px);

  box-shadow: var(--shadow-hover);
}


/* NEW IMAGE AREA */

.research-visual {
  width:
    calc(100% + 44px);

  height: 190px;

  margin:
    0
    -22px
    23px;

  overflow: hidden;

  background: #f6f9fc;

  border-bottom:
    1px solid #e4ebf1;
}

.research-visual img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  object-position: center;

  transition:
    transform 0.35s ease;
}

.research-card:hover
.research-visual img {
  transform: scale(1.035);
}

.research-number {
  position: absolute;

  right: 18px;
  top: 205px;

  z-index: 5;

  color: #afbdca;

  font-size: 0.67rem;
  font-weight: 700;
}


/* Hide old icons once image visuals are used */

.research-icon {
  display: none;
}

.research-card h3 {
  max-width: 85%;

  margin-bottom: 10px;

  color: var(--navy);

  font-size: 1.13rem;
  line-height: 1.3;
}

.research-card p {
  font-size: 0.88rem;
  line-height: 1.67;
}


/* ============================================================
   PROJECTS
============================================================ */

.projects-section {
  background: var(--surface);
}

.projects-grid {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 22px;
}

.project-card {
  position: relative;

  overflow: hidden;

  padding: 0;

  background: white;

  border: 1px solid var(--border);
  border-radius: 22px;

  box-shadow:
    0 10px 30px rgba(35, 67, 100, 0.04);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.project-card:hover {
  transform: translateY(-4px);

  box-shadow: var(--shadow-hover);
}


/* Project image */

.project-image {
  width: 100%;
  height: 300px;

  overflow: hidden;

  background: #eef5fa;

  border-bottom:
    1px solid #e1e9ef;
}

.project-image img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  transition:
    transform 0.4s ease;
}

.project-card:hover
.project-image img {
  transform: scale(1.025);
}


/* Text area */

.project-content {
  padding: 30px;
}

.project-featured {
  min-height: 0;

  padding-right: 0;
}

.project-label-row {
  display: flex;

  align-items: center;

  gap: 10px;

  margin-bottom: 17px;
}

.project-number {
  color: var(--blue);

  font-size: 0.70rem;
  font-weight: 700;

  letter-spacing: 0.13em;
}

.project-badge {
  padding: 5px 9px;

  color: #397761;

  background: #e9f6ef;

  border-radius: 999px;

  font-size: 0.57rem;
  font-weight: 700;
}

.project-card h3 {
  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 2rem;
  line-height: 1.2;
}

.project-subtitle {
  margin-top: 8px;

  color: #587187;

  font-size: 0.84rem;
  font-weight: 600;
}

.project-description {
  max-width: 700px;

  margin-top: 15px;

  font-size: 0.91rem;
  line-height: 1.7;
}

.project-metrics {
  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  width: 100%;

  margin-top: 23px;

  border-top: 1px solid #e4ebf0;
  border-bottom: 1px solid #e4ebf0;
}

.project-metrics div {
  padding:
    14px
    12px
    14px
    0;
}

.project-metrics div + div {
  padding-left: 14px;

  border-left: 1px solid #e4ebf0;
}

.project-metrics strong {
  display: block;

  color: var(--navy);

  font-size: 1.22rem;
}

.project-metrics span {
  display: block;

  margin-top: 4px;

  color: var(--light-muted);

  font-size: 0.66rem;
  line-height: 1.4;
}

.project-tags {
  display: flex;
  flex-wrap: wrap;

  gap: 7px;

  margin-top: 19px;
}

.project-tags span {
  padding: 6px 10px;

  color: #61758a;

  background: #f1f5f8;

  border-radius: 7px;

  font-size: 0.67rem;
  font-weight: 600;
}

.project-link,
.text-link {
  display: inline-flex;

  align-items: center;

  gap: 8px;

  margin-top: 22px;

  color: var(--blue);

  font-size: 0.83rem;
  font-weight: 700;
}

.project-link:hover,
.text-link:hover {
  color: var(--blue-dark);
}


/* ============================================================
   OLD PROJECT GRAPHICS
   Kept hidden because we now use image assets
============================================================ */

.adaptive-graphic,
.gnn-graphic {
  display: none;
}

.gnn-metric {
  margin-top: 21px;

  padding: 14px 0;

  border-top: 1px solid #e5ebf0;
  border-bottom: 1px solid #e5ebf0;
}

.gnn-metric strong {
  display: block;

  color: var(--navy);

  font-size: 1.28rem;
}

.gnn-metric span {
  color: var(--light-muted);

  font-size: 0.68rem;
}

.project-coming {
  display: inline-block;

  margin-top: 21px;

  color: #8d9ba8;

  font-size: 0.74rem;
  font-weight: 600;
}


/* ============================================================
   OPTIONAL FULL-WIDTH FEATURED PROJECT
   Useful for MDM2
============================================================ */

.project-card.project-wide {
  grid-column: 1 / -1;

  display: grid;

  grid-template-columns:
    1.08fr
    0.92fr;
}

.project-card.project-wide
.project-image {
  height: 100%;

  min-height: 470px;

  border-bottom: 0;
  border-right: 1px solid #e1e9ef;
}

.project-card.project-wide
.project-content {
  padding: 38px;
}


/* ============================================================
   ABOUT
============================================================ */

.about-section {
  background: white;
}

.about-grid {
  display: grid;

  grid-template-columns:
    0.95fr
    1.05fr;

  gap: 68px;

  align-items: start;
}

.about-content {
  padding-top: 16px;
}

.about-content > p {
  max-width: 650px;

  margin-bottom: 15px;

  font-size: 1rem;
  line-height: 1.75;
}

.education-grid {
  display: grid;

  grid-template-columns:
    repeat(2, 1fr);

  max-width: 540px;

  margin-top: 25px;

  border-top: 1px solid #e2e9ee;
  border-bottom: 1px solid #e2e9ee;
}

.education-grid div {
  padding:
    16px
    18px
    16px
    0;
}

.education-grid div + div {
  padding-left: 22px;

  border-left: 1px solid #e2e9ee;
}

.education-grid strong {
  display: block;

  color: var(--blue);

  font-size: 0.88rem;
}

.education-grid span {
  display: block;

  margin-top: 2px;

  color: #667a8e;

  font-size: 0.78rem;
}


/* ============================================================
   SKILLS / METHODS & TECHNOLOGIES
============================================================ */

.skills-section {
  padding: 56px 0;

  background: var(--surface);

  border-top: 1px solid #e7edf2;
  border-bottom: 1px solid #e7edf2;
}

.skills-heading {
  margin-bottom: 31px;

  text-align: center;
}

.skills-grid {
  display: grid;

  grid-template-columns:
    repeat(4, 1fr);
}

.skill-item {
  padding:
    7px
    28px;

  text-align: center;
}

.skill-item + .skill-item {
  border-left: 1px solid #dfe7ed;
}

.skill-symbol {
  width: 43px;
  height: 43px;

  margin:
    0 auto
    12px;

  display: flex;

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

  color: var(--blue);

  background: #eaf2fd;

  border-radius: 11px;

  font-size: 0.80rem;
  font-weight: 700;
}

.skill-item strong {
  display: block;

  color: var(--navy);

  font-size: 0.91rem;
}

.skill-item span {
  display: block;

  max-width: 240px;

  margin:
    7px auto
    0;

  color: #7a8d9e;

  font-size: 0.72rem;
  line-height: 1.55;
}


/* ============================================================
   WRITING / TECHNICAL NOTES
============================================================ */

.writing-section {
  background: white;
}

.writing-heading {
  display: grid;

  grid-template-columns:
    1fr
    0.85fr;

  gap: 55px;

  align-items: end;

  margin-bottom: 33px;
}

.writing-heading > p {
  max-width: 480px;

  justify-self: end;

  font-size: 0.92rem;
  line-height: 1.7;
}

.writing-grid {
  display: grid;

  grid-template-columns:
    repeat(2, 1fr);

  gap: 20px;
}

.writing-card {
  min-height: 225px;

  padding: 28px;

  background: white;

  border: 1px solid var(--border);
  border-radius: 18px;

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.writing-card:hover {
  transform: translateY(-4px);

  box-shadow: var(--shadow);
}

.writing-meta {
  display: flex;

  justify-content: space-between;

  gap: 12px;

  margin-bottom: 22px;
}

.writing-meta span {
  color: var(--blue);

  font-size: 0.60rem;
  font-weight: 700;

  letter-spacing: 0.08em;
}

.writing-meta span:last-child {
  color: #9ba8b4;
}

.writing-card h3 {
  max-width: 500px;

  margin-bottom: 12px;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 1.35rem;
  line-height: 1.35;
}

.writing-card p {
  max-width: 540px;

  font-size: 0.84rem;
  line-height: 1.65;
}

.blog-coming {
  margin-top: 18px;

  text-align: right;

  color: #97a4b0;

  font-size: 0.70rem;
}


/* ============================================================
   CONTACT
============================================================ */

.contact-section {
  padding: 68px 0;

  background:
    radial-gradient(
      circle at 90% 20%,
      rgba(75, 164, 206, 0.16),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      #0c2744,
      #12395e
    );
}

.contact-content {
  max-width: 820px;

  margin: 0 auto;

  text-align: center;
}

.contact-label {
  margin-bottom: 13px;

  color: #76bde3;

  font-size: 0.71rem;
  font-weight: 700;

  letter-spacing: 0.16em;
}

.contact-content h2 {
  color: white;
}

.contact-content > p {
  max-width: 670px;

  margin:
    17px auto
    0;

  color: #bfd0df;

  font-size: 0.94rem;
  line-height: 1.7;
}

.contact-actions {
  margin-top: 27px;
}

.contact-button {
  color: var(--navy);

  background: white;
}


/* ============================================================
   FOOTER
============================================================ */

.site-footer {
  padding: 30px 0;

  background: #081d32;
}

.footer-content {
  display: grid;

  grid-template-columns:
    1fr
    auto
    auto;

  gap: 35px;

  align-items: center;
}

.footer-content strong {
  color: white;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 0.94rem;
}

.footer-content p {
  color: #7f94a7;

  font-size: 0.64rem;
}

.footer-links {
  display: flex;

  gap: 19px;
}

.footer-links a {
  color: #96a9ba;

  font-size: 0.68rem;
  font-weight: 600;
}

.footer-links a:hover {
  color: white;
}


/* ============================================================
   LARGE DESKTOP
============================================================ */

@media (min-width: 1450px) {

  :root {
    --container: 1300px;
  }

  .hero {
    padding:
      78px 0
      72px;
  }

  .hero-description {
    font-size: 1.2rem;
  }

  .research-visual {
    height: 205px;
  }

  .research-card {
    min-height: 410px;
  }

  .project-image {
    height: 325px;
  }

}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 1050px) {

  .page-container,
  .nav-container {
    width: min(
      calc(100% - 44px),
      var(--container)
    );
  }

  .desktop-nav {
    display: none;
  }

  .menu-button {
    display: block;
  }

  .mobile-nav {
    position: fixed;

    top: 78px;

    left: 0;
    right: 0;

    z-index: 999;

    padding:
      12px
      24px
      22px;

    flex-direction: column;

    background: white;

    border-bottom: 1px solid var(--border);

    box-shadow:
      0 15px 30px rgba(30, 60, 90, 0.08);
  }

  .mobile-nav.open {
    display: flex;
  }

  .mobile-nav a {
    padding: 12px 4px;

    border-bottom:
      1px solid #edf2f5;

    color: var(--navy);

    font-size: 0.86rem;
    font-weight: 600;
  }


  /* HERO */

  .hero-grid {
    grid-template-columns: 1fr;

    gap: 46px;
  }

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

  .science-card {
    max-width: 720px;
  }


  /* RESEARCH */

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

  .research-card {
    min-height: 390px;
  }

  .research-visual {
    height: 220px;
  }


  /* PROJECTS */

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

  .project-image {
    height: 360px;
  }

  .project-card.project-wide {
    grid-template-columns: 1fr;
  }

  .project-card.project-wide
  .project-image {
    height: 390px;

    min-height: 0;

    border-right: 0;

    border-bottom:
      1px solid #e1e9ef;
  }


  /* ABOUT */

  .about-grid {
    grid-template-columns: 1fr;

    gap: 18px;
  }

  .about-content {
    padding-top: 0;
  }


  /* SKILLS */

  .skills-grid {
    grid-template-columns:
      repeat(2, 1fr);

    gap: 30px 0;
  }

  .skill-item:nth-child(3) {
    border-left: none;
  }


  /* FOOTER */

  .footer-content {
    grid-template-columns: 1fr;

    gap: 13px;

    text-align: center;
  }

  .footer-links {
    justify-content: center;
  }

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 650px) {

  .page-container,
  .nav-container {
    width: min(
      calc(100% - 32px),
      var(--container)
    );
  }

  .nav-container {
    height: 70px;
  }

  .mobile-nav {
    top: 70px;
  }


  /* HERO */

  .hero {
    padding:
      48px 0
      54px;
  }

  h1 {
    font-size:
      clamp(
        2.8rem,
        13vw,
        4rem
      );
  }

  h2 {
    font-size:
      clamp(
        2.05rem,
        10vw,
        2.8rem
      );
  }

  .hero-description {
    margin-top: 19px;

    font-size: 1rem;
    line-height: 1.7;
  }

  .hero-actions {
    flex-direction: column;
  }

  .hero-actions .button {
    width: 100%;
  }


  /* HERO CARD */

  .science-card {
    min-height: 375px;

    border-radius: 22px;
  }

  .science-card-header {
    top: 18px;
    left: 18px;

    font-size: 0.59rem;
  }

  .molecule-stage {
    inset:
      50px
      5px
      72px;
  }

  .molecule {
    transform:
      scale(0.82)
      rotate(-7deg);
  }

  .orbit-one {
    transform:
      scale(0.80)
      rotate(25deg);
  }

  .orbit-two {
    transform:
      scale(0.80)
      rotate(-28deg);
  }

  .science-features {
    left: 14px;
    right: 14px;

    bottom: 13px;
  }


  /* GENERAL */

  .section {
    padding:
      55px 0;
  }

  .section-heading {
    margin-bottom: 28px;
  }

  .section-heading p:last-child {
    font-size: 0.92rem;
  }


  /* RESEARCH */

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

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

  .research-visual {
    height: 230px;
  }

  .research-card h3 {
    font-size: 1.15rem;
  }

  .research-card p {
    font-size: 0.88rem;
  }


  /* PROJECTS */

  .project-card {
    border-radius: 18px;
  }

  .project-image {
    height: 245px;
  }

  .project-content {
    padding: 24px;
  }

  .project-card h3 {
    font-size: 1.65rem;
  }

  .project-description {
    font-size: 0.87rem;
  }

  .project-metrics {
    grid-template-columns: 1fr;
  }

  .project-metrics div {
    padding: 11px 0;
  }

  .project-metrics div + div {
    padding-left: 0;

    border-left: 0;

    border-top:
      1px solid #e4ebf0;
  }

  .project-card.project-wide {
    display: block;
  }

  .project-card.project-wide
  .project-image {
    height: 250px;
  }

  .project-card.project-wide
  .project-content {
    padding: 24px;
  }


  /* ABOUT */

  .about-content > p {
    font-size: 0.94rem;
  }

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

  .education-grid div + div {
    padding-left: 0;

    border-left: 0;

    border-top:
      1px solid #e2e9ee;
  }


  /* SKILLS */

  .skills-section {
    padding:
      49px 0;
  }

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

  .skill-item {
    padding:
      18px 0;
  }

  .skill-item + .skill-item {
    border-left: 0;

    border-top:
      1px solid #dfe7ed;
  }

  .skill-symbol {
    width: 45px;
    height: 45px;
  }

  .skill-item strong {
    font-size: 0.94rem;
  }

  .skill-item span {
    font-size: 0.75rem;
  }


  /* WRITING */

  .writing-heading {
    grid-template-columns: 1fr;

    gap: 10px;
  }

  .writing-heading > p {
    justify-self: start;
  }

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

  .writing-card {
    min-height: 0;
  }


  /* CONTACT */

  .contact-section {
    padding:
      58px 0;
  }

  .contact-content > p {
    font-size: 0.89rem;
  }


  /* FOOTER */

  .footer-links {
    flex-wrap: wrap;
  }

}
/* ============================================================
   FINAL RESEARCH APPROACH POLISH
   Paste at the VERY END of home.css
============================================================ */


/* tighter transition from hero to research */

.research-section {
  padding-top: 54px;
  padding-bottom: 78px;
}


/* ---------- SECTION HEADING ---------- */

.research-section .section-heading {
  max-width: 800px;
  margin-bottom: 36px;
}

.research-section .section-heading .eyebrow {
  margin-bottom: 10px;
}

.research-section .section-heading h2 {
  max-width: 780px;

  margin-left: auto;
  margin-right: auto;

  font-size: clamp(2.35rem, 3.15vw, 3.25rem);
  line-height: 1.07;

  letter-spacing: -0.04em;
}

.research-section .section-heading p:last-child {
  max-width: 660px;

  margin-top: 13px;

  font-size: 0.98rem;
  line-height: 1.65;
}


/* ---------- GRID ---------- */

.research-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 20px;
}


/* ---------- CARD ---------- */

.research-card {
  position: relative;

  min-width: 0;
  min-height: 455px;

  padding:
    0
    24px
    27px;

  overflow: hidden;

  background: #ffffff;

  border: 1px solid #dce6ee;
  border-radius: 22px;

  box-shadow:
    0 10px 30px rgba(30, 65, 100, 0.055);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}


.research-card:hover {
  transform: translateY(-6px);

  border-color: #ccdce8;

  box-shadow:
    0 22px 48px rgba(30, 65, 100, 0.12);
}


/* ---------- IMAGE AREA ---------- */

.research-visual {
  position: relative;

  width: calc(100% + 48px);
  height: 255px;

  margin:
    0
    -24px
    23px;

  display: flex;

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

  overflow: hidden;

  background:
    linear-gradient(
      180deg,
      #f9fcfe 0%,
      #f1f7fb 100%
    );

  border-bottom:
    1px solid #e1e9ef;
}


/* preserve the entire scientific illustration */

.research-visual img {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;

  transform: scale(1.03);

  transition:
    transform 0.35s ease;
}


.research-card:hover .research-visual img {
  transform: scale(1.07);
}


/* subtle depth under artwork */

.research-visual::after {
  content: "";

  position: absolute;

  left: 12%;
  right: 12%;
  bottom: -28px;

  height: 60px;

  pointer-events: none;

  background:
    radial-gradient(
      ellipse,
      rgba(62, 126, 190, 0.11),
      transparent 70%
    );
}


/* ---------- CARD NUMBER ---------- */

.research-number {
  position: absolute;

  top: 271px;
  right: 21px;

  z-index: 5;

  color: #a8b7c5;

  font-size: 0.67rem;
  font-weight: 700;

  letter-spacing: 0.08em;
}


/* ---------- TEXT ---------- */

.research-card h3 {
  max-width: calc(100% - 35px);

  margin-bottom: 9px;

  color: var(--navy);

  font-size: 1.17rem;
  font-weight: 700;

  line-height: 1.3;
}


.research-card p {
  color: var(--muted);

  font-size: 0.89rem;
  line-height: 1.62;
}


/* ============================================================
   LARGE SCREEN
============================================================ */

@media (min-width: 1450px) {

  .research-section {
    padding-top: 58px;
    padding-bottom: 84px;
  }

  .research-grid {
    gap: 22px;
  }

  .research-card {
    min-height: 475px;
  }

  .research-visual {
    height: 270px;
  }

  .research-number {
    top: 286px;
  }

  .research-card h3 {
    font-size: 1.21rem;
  }

  .research-card p {
    font-size: 0.91rem;
  }

}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 1050px) {

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

    gap: 20px;
  }

  .research-card {
    min-height: 460px;
  }

  .research-visual {
    height: 270px;
  }

  .research-number {
    top: 286px;
  }

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 650px) {

  .research-section {
    padding-top: 45px;
    padding-bottom: 60px;
  }

  .research-section .section-heading {
    margin-bottom: 28px;
  }

  .research-section .section-heading h2 {
    font-size:
      clamp(
        2rem,
        10vw,
        2.65rem
      );
  }

  .research-grid {
    grid-template-columns: 1fr;

    gap: 18px;
  }

  .research-card {
    min-height: 0;

    padding:
      0
      22px
      25px;
  }

  .research-visual {
    width: calc(100% + 44px);
    height: 255px;

    margin:
      0
      -22px
      22px;
  }

  .research-number {
    top: 271px;
  }

  .research-card h3 {
    font-size: 1.16rem;
  }

  .research-card p {
    font-size: 0.90rem;
  }

}
/* Make Research Approach artwork visually larger */

.research-visual img {
  width: 118%;
  height: 118%;

  max-width: none;

  object-fit: contain;
  object-position: center;

  transform: none;
}

.research-card:hover .research-visual img {
  transform: scale(1.03);
}
/* ============================================================
   NEW HERO — AI DRUG DISCOVERY JOURNEY
============================================================ */

.hero-domain {
  margin-bottom: 15px;

  color: #2768c9;

  font-size: 0.76rem;
  font-weight: 700;

  letter-spacing: 0.16em;
}

.hero-domain span {
  margin: 0 7px;
  color: #8da6bc;
}

.hero-supporting {
  max-width: 610px;

  margin-top: 13px;

  color: #7a8d9f;

  font-size: 0.92rem;
  line-height: 1.65;
}


/* ============================================================
   DISCOVERY CARD
============================================================ */

.discovery-card {
  position: relative;

  min-height: 520px;

  padding: 68px 24px 22px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 50% 45%,
      rgba(255,255,255,1) 0%,
      rgba(244,249,253,0.96) 48%,
      rgba(233,243,249,0.96) 100%
    );

  border: 1px solid #d8e5ed;
  border-radius: 28px;

  box-shadow:
    0 28px 65px rgba(34, 73, 106, 0.12);
}

.discovery-card::before {
  content: "";

  position: absolute;

  width: 330px;
  height: 330px;

  left: 50%;
  top: 50%;

  transform: translate(-50%, -48%);

  background:
    radial-gradient(
      circle,
      rgba(73, 140, 210, 0.10),
      rgba(104, 86, 205, 0.035) 45%,
      transparent 72%
    );

  border-radius: 50%;
}

.discovery-card-header {
  position: absolute;

  top: 23px;
  left: 25px;

  z-index: 20;

  display: flex;
  align-items: center;

  gap: 9px;

  color: #60768b;

  font-size: 0.67rem;
  font-weight: 700;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}


/* ============================================================
   CYCLE
============================================================ */

.discovery-cycle {
  position: relative;

  width: 100%;
  height: 390px;

  margin: 0 auto;
}

.cycle-ring {
  position: absolute;

  left: 50%;
  top: 50%;

  border-radius: 50%;

  transform: translate(-50%, -50%);
}

.cycle-ring-outer {
  width: 310px;
  height: 310px;

  border:
    1px dashed rgba(64, 122, 181, 0.20);
}

.cycle-ring-inner {
  width: 215px;
  height: 215px;

  border:
    1px solid rgba(76, 135, 191, 0.09);

  background:
    rgba(255,255,255,0.30);
}


/* ============================================================
   CENTER
============================================================ */

.cycle-center {
  position: absolute;

  left: 50%;
  top: 50%;

  z-index: 10;

  width: 155px;
  height: 155px;

  display: flex;
  flex-direction: column;

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

  transform: translate(-50%, -50%);

  text-align: center;

  background:
    radial-gradient(
      circle at 40% 30%,
      #ffffff,
      #eef6fc 68%,
      #e6f0f7
    );

  border:
    1px solid rgba(57, 116, 177, 0.18);

  border-radius: 50%;

  box-shadow:
    0 15px 35px rgba(45, 91, 135, 0.12);
}

.cycle-center strong {
  color: #173c65;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 1.06rem;
}

.cycle-center > span {
  margin-top: 1px;

  color: #2768c9;

  font-size: 0.82rem;
  font-weight: 700;
}

.cycle-center small {
  margin-top: 9px;

  color: #8799aa;

  font-size: 0.47rem;
  font-weight: 700;

  letter-spacing: 0.08em;
}


/* little AI network */

.center-network {
  position: relative;

  width: 44px;
  height: 30px;

  margin-bottom: 7px;
}

.center-network span {
  position: absolute;

  width: 7px;
  height: 7px;

  background: #5a8fe0;

  border-radius: 50%;

  box-shadow:
    0 0 0 4px rgba(90,143,224,0.08);
}

.center-network span:nth-child(1) {
  left: 2px;
  top: 11px;
}

.center-network span:nth-child(2) {
  left: 18px;
  top: 2px;

  background: #8068d9;
}

.center-network span:nth-child(3) {
  right: 2px;
  top: 11px;

  background: #42a6b4;
}

.center-network span:nth-child(4) {
  left: 13px;
  bottom: 0;

  background: #42a6b4;
}

.center-network span:nth-child(5) {
  right: 10px;
  bottom: 0;

  background: #8068d9;
}


/* ============================================================
   STEPS
============================================================ */

.cycle-step {
  position: absolute;

  z-index: 12;

  width: 170px;

  display: flex;
  align-items: center;

  gap: 10px;
}

.step-target {
  left: 50%;
  top: 3px;

  transform: translateX(-50%);
}

.step-hit {
  right: 0;
  top: 50%;

  transform: translateY(-50%);
}

.step-admet {
  left: 50%;
  bottom: 0;

  transform: translateX(-50%);
}

.step-optimize {
  left: 0;
  top: 50%;

  transform: translateY(-50%);
}

.step-number {
  position: absolute;

  top: -10px;
  left: 46px;

  color: #9caebe;

  font-size: 0.55rem;
  font-weight: 700;

  letter-spacing: 0.08em;
}

.step-icon {
  position: relative;

  flex: 0 0 50px;

  width: 50px;
  height: 50px;

  background: rgba(255,255,255,0.90);

  border: 1px solid #dce7ef;
  border-radius: 14px;

  box-shadow:
    0 8px 18px rgba(36, 74, 110, 0.09);
}

.step-copy {
  display: flex;
  flex-direction: column;

  min-width: 0;
}

.step-copy strong {
  color: #173c65;

  font-size: 0.72rem;
  line-height: 1.25;
}

.step-copy span {
  margin-top: 3px;

  color: #8a9aa9;

  font-size: 0.52rem;
  line-height: 1.35;
}


/* ============================================================
   TARGET ICON
============================================================ */

.protein-blob {
  position: absolute;

  background:
    linear-gradient(
      135deg,
      #5f9de3,
      #72c2c9
    );

  border-radius:
    55% 45% 58% 42%;
}

.blob-one {
  width: 23px;
  height: 21px;

  left: 8px;
  top: 14px;

  transform: rotate(22deg);
}

.blob-two {
  width: 22px;
  height: 25px;

  right: 7px;
  top: 9px;

  transform: rotate(-28deg);

  opacity: 0.82;
}

.blob-three {
  width: 22px;
  height: 19px;

  left: 17px;
  bottom: 7px;

  transform: rotate(13deg);

  opacity: 0.72;
}

.pocket-dot {
  position: absolute;

  width: 9px;
  height: 9px;

  left: 23px;
  top: 20px;

  z-index: 5;

  background: #ff8f7b;

  border: 2px solid white;
  border-radius: 50%;

  box-shadow:
    0 0 0 4px rgba(255,143,123,0.14);
}


/* ============================================================
   MOLECULE ICON
============================================================ */

.mini-atom {
  position: absolute;

  z-index: 4;

  width: 10px;
  height: 10px;

  background: #557fc9;

  border: 2px solid white;
  border-radius: 50%;

  box-shadow:
    0 2px 5px rgba(30,60,90,0.16);
}

.ma-1 {
  left: 8px;
  top: 21px;
}

.ma-2 {
  left: 21px;
  top: 10px;

  background: #8d6ad8;
}

.ma-3 {
  right: 8px;
  top: 22px;

  background: #4cb0a0;
}

.ma-4 {
  left: 22px;
  bottom: 7px;

  background: #ef767d;
}

.mini-bond {
  position: absolute;

  z-index: 2;

  height: 3px;

  background: #9aabba;

  border-radius: 20px;

  transform-origin: left center;
}

.bond-a {
  width: 20px;

  left: 14px;
  top: 24px;

  transform: rotate(-40deg);
}

.bond-b {
  width: 20px;

  left: 27px;
  top: 16px;

  transform: rotate(39deg);
}

.bond-c {
  width: 20px;

  left: 27px;
  top: 31px;

  transform: rotate(125deg);
}


/* ============================================================
   PROPERTY ICON
============================================================ */

.property-bar {
  position: absolute;

  left: 9px;

  height: 4px;

  background:
    linear-gradient(
      90deg,
      #58a6d9,
      #78c3ae
    );

  border-radius: 20px;
}

.bar-one {
  top: 13px;
  width: 26px;
}

.bar-two {
  top: 23px;
  width: 20px;
}

.bar-three {
  top: 33px;
  width: 30px;
}

.property-check {
  position: absolute;

  right: 6px;
  bottom: 5px;

  width: 17px;
  height: 17px;

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

  color: white;

  background: #52aa86;

  border-radius: 50%;

  font-size: 0.62rem;
  font-weight: 700;
}


/* ============================================================
   OPTIMIZATION ICON
============================================================ */

.opt-ring {
  position: absolute;

  left: 50%;
  top: 50%;

  border: 2px solid rgba(111,91,204,0.55);
  border-radius: 50%;

  transform: translate(-50%, -50%);
}

.ring-a {
  width: 34px;
  height: 34px;
}

.ring-b {
  width: 23px;
  height: 23px;

  border-color:
    rgba(58,157,171,0.70);
}

.opt-center {
  position: absolute;

  left: 50%;
  top: 50%;

  transform: translate(-50%, -54%);

  color: #536fc4;

  font-size: 1rem;
  font-weight: 800;
}


/* ============================================================
   ARROWS
============================================================ */

.cycle-arrow {
  position: absolute;

  z-index: 8;

  width: 26px;
  height: 26px;

  display: flex;

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

  color: #6e91b6;

  background: #f7fbfe;

  border: 1px solid #dbe6ef;
  border-radius: 50%;

  font-size: 0.75rem;

  box-shadow:
    0 5px 12px rgba(40,75,110,0.06);
}

.arrow-one {
  right: 69px;
  top: 87px;

  transform: rotate(40deg);
}

.arrow-two {
  right: 70px;
  bottom: 87px;

  transform: rotate(40deg);
}

.arrow-three {
  left: 70px;
  bottom: 87px;

  transform: rotate(40deg);
}

.arrow-four {
  left: 69px;
  top: 87px;

  transform: rotate(40deg);
}


/* ============================================================
   ITERATIVE NOTE
============================================================ */

.iteration-note {
  position: relative;

  z-index: 20;

  min-height: 58px;

  padding: 10px 16px;

  display: flex;

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

  gap: 11px;

  background:
    rgba(255,255,255,0.76);

  border: 1px solid #dce6ed;
  border-radius: 13px;

  backdrop-filter: blur(8px);
}

.iteration-symbol {
  color: #6c5ac7;

  font-size: 1.4rem;
}

.iteration-note div {
  display: flex;
  flex-direction: column;
}

.iteration-note strong {
  color: #294967;

  font-size: 0.68rem;
}

.iteration-note div span {
  margin-top: 1px;

  color: #8a9aaa;

  font-size: 0.56rem;

  letter-spacing: 0.04em;
}


/* ============================================================
   RESPONSIVE HERO
============================================================ */

@media (max-width: 1050px) {

  .discovery-card {
    width: 100%;
    max-width: 720px;

    min-height: 520px;
  }

  .discovery-cycle {
    max-width: 570px;

    margin-left: auto;
    margin-right: auto;
  }

}


@media (max-width: 650px) {

  .hero-domain {
    font-size: 0.66rem;
  }

  .hero-supporting {
    font-size: 0.86rem;
  }

  .discovery-card {
    min-height: 575px;

    padding:
      62px
      12px
      18px;

    border-radius: 22px;
  }

  .discovery-card-header {
    top: 18px;
    left: 18px;

    font-size: 0.56rem;
  }

  .discovery-cycle {
    height: 445px;
  }

  .cycle-ring-outer {
    width: 250px;
    height: 250px;
  }

  .cycle-ring-inner {
    width: 170px;
    height: 170px;
  }

  .cycle-center {
    width: 128px;
    height: 128px;
  }

  .cycle-center strong {
    font-size: 0.90rem;
  }

  .cycle-center > span {
    font-size: 0.72rem;
  }

  .cycle-center small {
    font-size: 0.40rem;
  }

  .cycle-step {
    width: 145px;

    gap: 7px;
  }

  .step-icon {
    flex-basis: 43px;

    width: 43px;
    height: 43px;
  }

  .step-copy strong {
    font-size: 0.63rem;
  }

  .step-copy span {
    font-size: 0.47rem;
  }

  .step-target {
    top: 7px;
  }

  .step-admet {
    bottom: 7px;
  }

  .step-hit {
    right: -7px;
  }

  .step-optimize {
    left: -7px;
  }

  .cycle-arrow {
    display: none;
  }

}
/* ============================================================
   FINAL HERO
   FROM TARGET TO BETTER MOLECULES
============================================================ */


/* ------------------------------------------------------------
   HERO LAYOUT
------------------------------------------------------------- */

.hero {
  padding: 72px 0 68px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 88% 25%,
      rgba(75, 155, 205, 0.10),
      transparent 27%
    ),
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fbfd 100%
    );
}


.hero-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 0.94fr)
    minmax(0, 1.06fr);

  gap: 52px;

  align-items: center;
}


/* ------------------------------------------------------------
   LEFT COPY
------------------------------------------------------------- */

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


.hero-domain {
  margin-bottom: 17px;

  color: var(--blue);

  font-size: 0.75rem;
  font-weight: 700;

  letter-spacing: 0.17em;

  text-transform: uppercase;
}


.hero-domain span {
  margin: 0 7px;

  color: #8fa3b5;
}


.hero h1 {
  max-width: 680px;

  font-size:
    clamp(
      3.7rem,
      5.3vw,
      5.45rem
    );

  line-height: 0.99;

  letter-spacing: -0.05em;
}


.hero h1 span {
  display: block;

  color: var(--blue);
}


.hero-description {
  max-width: 610px;

  margin-top: 25px;

  color: #5f758b;

  font-size: 1.12rem;
  line-height: 1.65;
}


.hero-supporting {
  max-width: 600px;

  margin-top: 13px;

  color: #8494a4;

  font-size: 0.88rem;
  line-height: 1.65;
}


/* ------------------------------------------------------------
   BUTTONS
------------------------------------------------------------- */

.hero-actions {
  display: flex;

  flex-wrap: wrap;

  gap: 12px;

  margin-top: 27px;
}


.hero .button {
  min-height: 49px;

  padding: 0 23px;

  border-radius: 10px;
}


/* ------------------------------------------------------------
   TAGS
------------------------------------------------------------- */

.hero-tags {
  display: flex;

  flex-wrap: wrap;

  gap: 8px;

  margin-top: 22px;
}


.hero-tags span {
  padding: 7px 12px;

  color: #667b90;

  background:
    rgba(255, 255, 255, 0.85);

  border:
    1px solid #dce6ef;

  border-radius: 999px;

  font-size: 0.69rem;
  font-weight: 600;
}



/* ============================================================
   RIGHT — DRUG DISCOVERY JOURNEY
============================================================ */

.hero-journey {
  position: relative;

  width: 100%;

  min-height: 500px;

  display: flex;

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

  overflow: hidden;

  background:
    radial-gradient(
      circle at 50% 48%,
      rgba(255,255,255,0.97) 0%,
      rgba(241,248,252,0.92) 55%,
      rgba(232,242,248,0.88) 100%
    );

  border:
    1px solid #d9e6ee;

  border-radius: 28px;

  box-shadow:
    0 26px 60px
    rgba(32, 70, 105, 0.11);
}


/* soft glow */

.hero-journey::before {
  content: "";

  position: absolute;

  width: 430px;
  height: 430px;

  left: 50%;
  top: 50%;

  transform:
    translate(-50%, -48%);

  background:
    radial-gradient(
      circle,
      rgba(72, 142, 205, 0.10),
      rgba(96, 176, 184, 0.04) 45%,
      transparent 72%
    );

  border-radius: 50%;

  pointer-events: none;
}



/* ------------------------------------------------------------
   SMALL TOP LABEL
------------------------------------------------------------- */

.hero-journey-label {
  position: absolute;

  top: 21px;
  left: 23px;

  z-index: 10;

  display: flex;

  align-items: center;

  gap: 9px;

  color: #687e92;

  font-size: 0.65rem;
  font-weight: 700;

  letter-spacing: 0.08em;

  text-transform: uppercase;
}


.hero-journey-label .status-dot {
  width: 8px;
  height: 8px;

  flex: 0 0 8px;

  background: #43a6b5;

  border-radius: 50%;

  box-shadow:
    0 0 0 5px
    rgba(67, 166, 181, 0.10);
}



/* ------------------------------------------------------------
   JOURNEY IMAGE
------------------------------------------------------------- */

.hero-journey-image {
  position: relative;

  z-index: 2;

  width: 100%;
  height: 100%;

  min-height: 500px;

  display: flex;

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

  padding:
    46px
    4px
    4px;
}


.hero-journey-image img {
  display: block;

  width: 108%;

  max-width: none;

  height: auto;

  object-fit: contain;

  object-position: center;

  filter:
    drop-shadow(
      0 12px 18px
      rgba(42, 77, 110, 0.06)
    );
}



/* ============================================================
   LARGE DESKTOP
============================================================ */

@media (min-width: 1450px) {

  .hero {
    padding:
      76px 0
      72px;
  }


  .hero-grid {
    gap: 58px;
  }


  .hero-journey {
    min-height: 530px;
  }


  .hero-journey-image {
    min-height: 530px;
  }


  .hero-journey-image img {
    width: 110%;
  }

}



/* ============================================================
   TABLET
============================================================ */

@media (max-width: 1050px) {

  .hero-grid {
    grid-template-columns: 1fr;

    gap: 44px;
  }


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


  .hero-journey {
    width: 100%;

    max-width: 760px;

    min-height: 560px;
  }


  .hero-journey-image {
    min-height: 560px;

    padding-top: 48px;
  }


  .hero-journey-image img {
    width: 100%;
  }

}



/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 650px) {

  .hero {
    padding:
      48px 0
      52px;
  }


  .hero-domain {
    margin-bottom: 14px;

    font-size: 0.64rem;

    letter-spacing: 0.14em;
  }


  .hero-domain span {
    margin: 0 4px;
  }


  .hero h1 {
    font-size:
      clamp(
        2.75rem,
        13vw,
        4rem
      );

    line-height: 1.01;
  }


  .hero-description {
    margin-top: 20px;

    font-size: 1rem;
  }


  .hero-supporting {
    font-size: 0.84rem;
  }


  .hero-actions {
    flex-direction: column;
  }


  .hero-actions .button {
    width: 100%;
  }


  .hero-tags {
    margin-top: 19px;
  }


  .hero-journey {
    min-height: 410px;

    border-radius: 22px;
  }


  .hero-journey-label {
    top: 17px;
    left: 17px;

    font-size: 0.55rem;
  }


  .hero-journey-image {
    min-height: 410px;

    padding:
      46px
      0
      0;
  }


  .hero-journey-image img {
    width: 110%;
  }

}
/* ============================================================
   FINAL HOME POLISH
============================================================ */

/* Research Approach — slightly tighter */
#approach {
  padding-top: 62px;
  padding-bottom: 72px;
}

/* Keep the section introduction compact */
#approach .section-intro {
  margin-bottom: 38px;
}

/* Projects transition */
#projects {
  padding-top: 72px;
}

/* About — reduce excessive empty space */
#about {
  padding-top: 78px;
  padding-bottom: 78px;
}

/* Methods section */
#skills {
  padding-top: 58px;
  padding-bottom: 58px;
}

/* Technical Notes */
#blog {
  padding-top: 78px;
  padding-bottom: 78px;
}

/* Keep cards visually consistent */
.approach-card,
.project-card,
.blog-card {
  border-radius: 20px;
}

/* Slightly stronger hover for portfolio cards */
.approach-card,
.project-card {
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.approach-card:hover,
.project-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 42px rgba(31, 67, 101, 0.10);
}
/* ============================================================
   HOME SECTION POLISH
   Research Approach / About / Methods
============================================================ */


/* ============================================================
   SHARED TYPOGRAPHY
============================================================ */

.section-eyebrow {
  margin: 0 0 14px;

  color: #286dce;

  font-size: 0.70rem;
  font-weight: 700;

  letter-spacing: 0.19em;
  text-transform: uppercase;
}


/* ============================================================
   RESEARCH APPROACH
============================================================ */

.approach-section {
  padding: 76px 0 82px;

  background: #ffffff;
}


.approach-intro {
  max-width: 820px;

  margin: 0 auto 42px;

  text-align: center;
}


.approach-intro h2 {
  margin: 0;

  color: #123452;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size:
    clamp(
      2.8rem,
      4vw,
      3.45rem
    );

  font-weight: 700;

  line-height: 1.04;

  letter-spacing: -0.035em;
}


.approach-intro h2 span {
  display: block;
}


.approach-description {
  max-width: 710px;

  margin: 17px auto 0;

  color: #6f8397;

  font-size: 1rem;
  line-height: 1.65;
}


/* CARDS */

.approach-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 18px;
}


.approach-card {
  position: relative;

  overflow: hidden;

  background: #ffffff;

  border: 1px solid #dce6ee;
  border-radius: 20px;

  box-shadow:
    0 12px 28px
    rgba(32, 69, 102, 0.045);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}


.approach-card:hover {
  transform: translateY(-5px);

  border-color: #cbdce9;

  box-shadow:
    0 20px 42px
    rgba(31, 67, 101, 0.10);
}


.approach-image {
  height: 215px;

  overflow: hidden;

  background: #edf5fa;
}


.approach-image img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}


.approach-content {
  position: relative;

  min-height: 185px;

  padding: 22px 20px 24px;
}


.approach-number {
  position: absolute;

  top: 23px;
  right: 18px;

  color: #9bb0c3;

  font-size: 0.65rem;
  font-weight: 700;

  letter-spacing: 0.08em;
}


.approach-content h3 {
  margin: 0 35px 10px 0;

  color: #153653;

  font-size: 1.12rem;
  font-weight: 700;

  line-height: 1.25;
}


.approach-content p {
  margin: 0;

  color: #71869a;

  font-size: 0.91rem;

  line-height: 1.65;
}



/* ============================================================
   ABOUT
============================================================ */

.about-section {
  padding: 82px 0;

  background: #ffffff;
}


.about-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 0.92fr)
    minmax(0, 1.08fr);

  align-items: center;

  gap: 78px;
}


.about-heading h2 {
  max-width: 560px;

  margin: 0;

  color: #123452;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size:
    clamp(
      3rem,
      4.5vw,
      3.8rem
    );

  line-height: 1.04;

  letter-spacing: -0.04em;
}


.about-heading h2 span {
  display: block;
}


.about-content {
  max-width: 650px;
}


.about-content > p {
  margin: 0 0 15px;

  color: #687f94;

  font-size: 1rem;

  line-height: 1.75;
}


.about-content .about-lead {
  color: #4f6980;

  font-size: 1.06rem;
}


.about-lead strong {
  color: #183b5c;

  font-weight: 700;
}



/* DUAL BACKGROUND */

.background-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    34px
    minmax(0, 1fr);

  align-items: stretch;

  margin-top: 27px;

  border-top: 1px solid #dce6ee;
  border-bottom: 1px solid #dce6ee;
}


.background-item {
  display: flex;

  flex-direction: column;

  justify-content: center;

  min-height: 112px;

  padding: 18px 4px;
}


.background-degree {
  margin-bottom: 5px;

  color: #2870d2;

  font-size: 0.75rem;
  font-weight: 700;

  letter-spacing: 0.04em;
}


.background-item strong {
  color: #173a59;

  font-size: 0.96rem;
}


.background-item > span:last-child {
  margin-top: 5px;

  color: #8294a5;

  font-size: 0.72rem;

  line-height: 1.45;
}


.background-plus {
  display: flex;

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

  color: #9bb0c2;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 1.45rem;
}


.about-link {
  display: inline-flex;

  align-items: center;

  gap: 8px;

  margin-top: 23px;

  color: #1769d1;

  font-size: 0.82rem;
  font-weight: 700;

  text-decoration: none;
}


.about-link:hover {
  gap: 12px;
}



/* ============================================================
   METHODS & TECHNOLOGIES
============================================================ */

.methods-section {
  padding: 68px 0 74px;

  background:
    linear-gradient(
      180deg,
      #f5f9fc 0%,
      #f2f7fb 100%
    );

  border-top: 1px solid #e5edf3;
  border-bottom: 1px solid #e5edf3;
}


.methods-intro {
  max-width: 680px;

  margin: 0 auto 37px;

  text-align: center;
}


.methods-intro h2 {
  margin: 0;

  color: #123452;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 2.35rem;

  line-height: 1.08;

  letter-spacing: -0.025em;
}


.methods-intro > p:last-child {
  max-width: 590px;

  margin: 12px auto 0;

  color: #778b9d;

  font-size: 0.91rem;

  line-height: 1.6;
}



/* METHOD CARDS */

.methods-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 15px;
}


.method-card {
  min-height: 245px;

  padding: 24px 21px 21px;

  background:
    rgba(255, 255, 255, 0.80);

  border: 1px solid #dce7ef;

  border-radius: 17px;

  box-shadow:
    0 9px 22px
    rgba(34, 72, 106, 0.035);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}


.method-card:hover {
  transform: translateY(-4px);

  border-color: #cbdde9;

  box-shadow:
    0 16px 32px
    rgba(31, 67, 101, 0.08);
}


.method-icon {
  width: 42px;
  height: 42px;

  display: flex;

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

  margin-bottom: 18px;

  color: #256fd1;

  background:
    linear-gradient(
      135deg,
      #e7f1ff,
      #f0f5ff
    );

  border:
    1px solid #dce8f7;

  border-radius: 12px;

  font-size: 0.72rem;
  font-weight: 800;
}


.method-card h3 {
  margin: 0 0 9px;

  color: #173956;

  font-size: 1rem;
  font-weight: 700;

  line-height: 1.3;
}


.method-card > p {
  min-height: 52px;

  margin: 0;

  color: #788c9e;

  font-size: 0.82rem;

  line-height: 1.55;
}


.method-tags {
  display: flex;

  flex-wrap: wrap;

  gap: 6px;

  margin-top: 18px;
}


.method-tags span {
  padding: 6px 8px;

  color: #60778c;

  background: #f0f5f9;

  border: 1px solid #e3ebf1;

  border-radius: 7px;

  font-size: 0.64rem;
  font-weight: 600;
}



/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width: 1050px) {

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


  .about-grid {
    grid-template-columns: 1fr;

    gap: 38px;
  }


  .about-heading h2 {
    max-width: 700px;
  }


  .about-content {
    max-width: 760px;
  }

}


@media (max-width: 650px) {

  .approach-section {
    padding: 58px 0 62px;
  }


  .approach-intro {
    margin-bottom: 30px;
  }


  .approach-intro h2 {
    font-size: 2.35rem;
  }


  .approach-grid,
  .methods-grid {
    grid-template-columns: 1fr;
  }


  .approach-image {
    height: 230px;
  }


  .about-section {
    padding: 62px 0;
  }


  .about-grid {
    gap: 28px;
  }


  .about-heading h2 {
    font-size: 2.6rem;
  }


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


  .background-plus {
    min-height: 28px;
  }


  .background-item {
    min-height: auto;

    padding: 17px 0;
  }


  .methods-section {
    padding: 58px 0 62px;
  }


  .methods-intro {
    margin-bottom: 28px;
  }


  .methods-intro h2 {
    font-size: 2.15rem;
  }


  .method-card {
    min-height: auto;
  }

}
/* ============================================================
   FINAL HOME PAGE POLISH
   Add this at the VERY BOTTOM of home.css
============================================================ */


/* ============================================================
   1. RESEARCH APPROACH
   Slightly reduce heading size for better hierarchy
============================================================ */

.approach-intro h2 {
  font-size: clamp(2.55rem, 3.6vw, 3.15rem);
  line-height: 1.05;
  letter-spacing: -0.035em;
}


/* Keep description readable but secondary */

.approach-description {
  max-width: 720px;
  margin: 17px auto 0;

  font-size: 1rem;
  line-height: 1.65;

  color: #6f8397;
}


/* ============================================================
   2. ABOUT
   Reduce unnecessary vertical whitespace
============================================================ */

.about-section {
  padding: 68px 0;
}


/* Keep the two-column layout vertically balanced */

.about-grid {
  align-items: center;
}


/* Main About paragraph */

.about-content > p {
  font-size: 1rem;
  line-height: 1.7;
}


/* Highlight interdisciplinary background */

.about-lead strong {
  color: #173a59;
  font-weight: 700;
}


/* Slightly tighten degree area */

.background-grid {
  margin-top: 24px;
}

.background-item {
  min-height: 102px;
}


/* ============================================================
   3. COMPUTATIONAL TOOLKIT
   Improve readability without making cards heavy
============================================================ */

.method-card .method-description {
  font-size: 0.86rem;
  line-height: 1.6;

  color: #687f94;
}


/* Tool labels */

.method-tags span {
  font-size: 0.68rem;
  font-weight: 600;

  line-height: 1;

  color: #5f768b;
}


/* Slightly stronger card titles */

.method-card h3 {
  font-size: 1.03rem;
  line-height: 1.3;

  font-weight: 700;

  color: #153653;
}


/* Keep cards clean and consistent */

.method-card {
  min-height: 245px;
}


/* ============================================================
   4. TECHNICAL NOTES + CONTACT
   Intentionally unchanged
============================================================ */


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 650px) {

  .approach-intro h2 {
    font-size: 2.25rem;
    line-height: 1.08;
  }

  .approach-description {
    font-size: 0.94rem;
  }

  .about-section {
    padding: 58px 0;
  }

  .background-item {
    min-height: auto;
  }

  .method-card .method-description {
    font-size: 0.86rem;
  }

}
/* Fix Hero buttons */

.hero-actions .button-primary {
  background: #2768c9 !important;
  color: #ffffff !important;
  border: 1px solid #2768c9 !important;
  box-shadow: 0 10px 24px rgba(39, 104, 201, 0.20);
}

.hero-actions .button-primary:hover {
  background: #1b56ae !important;
  border-color: #1b56ae !important;
}

.hero-actions .button-secondary {
  background: #ffffff !important;
  color: #102b48 !important;
  border: 1px solid #dce6ee !important;
}
/* ============================================================
   FINAL PROJECT CARD CONSISTENCY
============================================================ */

/* ---------- ALL PROJECT CARDS ---------- */

.projects-grid {
  align-items: stretch;
}

.project-card {
  background: #ffffff;
  border: 1px solid #dce6ee;
  border-radius: 22px;
  overflow: hidden;

  box-shadow:
    0 12px 32px rgba(30, 65, 100, 0.055);
}


/* ---------- FLAGSHIP / PROJECT 01 ---------- */

.project-card.project-wide {
  grid-column: 1 / -1;

  display: grid;
  grid-template-columns: 1.08fr 0.92fr;

  min-height: 500px;
}

.project-card.project-wide .project-image {
  height: 100%;
  min-height: 500px;

  border-right: 1px solid #e1e9ef;
  border-bottom: 0;
}

.project-card.project-wide .project-image img {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;

  background: #f8fbfd;
}

.project-card.project-wide .project-content {
  padding: 38px;

  display: flex;
  flex-direction: column;
  justify-content: center;
}


/* ---------- PROJECT 02 + PROJECT 03 ---------- */

.gnn-project,
.diffsbdd-project {
  display: flex;
  flex-direction: column;

  height: 100%;
  min-height: 680px;
}


/* identical image containers */

.gnn-project .project-image,
.diffsbdd-project .project-image {
  width: 100%;
  height: 340px;
  min-height: 340px;

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

  overflow: hidden;

  background: #f8fbfd;

  border-bottom: 1px solid #e1e9ef;
}


/* preserve complete artwork */

.gnn-project .project-image img,
.diffsbdd-project .project-image img {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;

  background: #f8fbfd;
}


/* identical content containers */

.gnn-project .project-content,
.diffsbdd-project .project-content {
  flex: 1;

  padding: 30px;

  display: flex;
  flex-direction: column;
}


/* normalize headings */

.gnn-project h3,
.diffsbdd-project h3 {
  margin: 0;

  font-size: 2rem;
  line-height: 1.2;
}


/* normalize subtitles */

.gnn-project .project-subtitle,
.diffsbdd-project .project-subtitle {
  min-height: 24px;

  margin-top: 8px;
}


/* normalize descriptions */

.gnn-project .project-description,
.diffsbdd-project .project-description {
  min-height: 92px;

  margin-top: 15px;
}


/* keep tags visually aligned */

.gnn-project .project-tags,
.diffsbdd-project .project-tags {
  margin-top: 20px;
}


/* push final status to same bottom position */

.gnn-project .project-coming,
.diffsbdd-project .project-coming {
  margin-top: auto;
  padding-top: 22px;
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 1050px) {

  .project-card.project-wide {
    grid-template-columns: 1fr;
  }

  .project-card.project-wide .project-image {
    height: 390px;
    min-height: 390px;

    border-right: 0;
    border-bottom: 1px solid #e1e9ef;
  }

  .gnn-project,
  .diffsbdd-project {
    min-height: 0;
  }
}


@media (max-width: 650px) {

  .project-card {
    border-radius: 18px;
  }

  .project-card.project-wide .project-image,
  .gnn-project .project-image,
  .diffsbdd-project .project-image {
    height: 260px;
    min-height: 260px;
  }

  .project-card.project-wide .project-content,
  .gnn-project .project-content,
  .diffsbdd-project .project-content {
    padding: 24px;
  }

  .gnn-project .project-description,
  .diffsbdd-project .project-description {
    min-height: 0;
  }
}
/* ============================================================
   ABOUT — INTERDISCIPLINARY EDUCATION
============================================================ */

.background-grid {
  display: grid;
  grid-template-columns: 1fr 34px 1fr;
  gap: 16px;

  margin-top: 30px;

  align-items: stretch;
}


/* ---------- MASTER'S CARDS ---------- */

.background-item {
  min-width: 0;

  padding: 20px;

  display: flex;
  align-items: center;

  gap: 17px;

  background:
    linear-gradient(
      145deg,
      #ffffff 0%,
      #f8fbfe 100%
    );

  border: 1px solid #dce8f3;
  border-radius: 16px;

  box-shadow:
    0 8px 24px rgba(30, 65, 100, 0.045);
}


/* ---------- IMAGE ---------- */

.background-icon {
  width: 82px;
  height: 82px;

  flex: 0 0 82px;

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

  overflow: hidden;

  background: #f3f8fd;

  border-radius: 13px;
}

.background-icon img {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;
}


/* ---------- TEXT ---------- */

.background-text {
  min-width: 0;

  display: flex;
  flex-direction: column;
}

.background-degree {
  margin-bottom: 4px;

  color: #2768c9;

  font-size: 0.68rem;
  font-weight: 700;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.background-item strong {
  display: block;

  color: #102b48;

  font-family:
    "Playfair Display",
    Georgia,
    serif;

  font-size: 1.08rem;
  line-height: 1.25;
}

.background-field {
  display: block;

  margin-top: 6px;

  color: #7a8fa4;

  font-size: 0.70rem;
  line-height: 1.5;
}


/* ---------- PLUS ---------- */

.background-plus {
  display: flex;
  align-items: center;
  justify-content: center;

  color: #4387dd;

  font-size: 1.65rem;
  font-weight: 400;
}


/* ============================================================
   UNDERGRADUATE FOUNDATION
============================================================ */

.undergraduate-background {
  margin-top: 13px;

  padding: 13px 17px;

  display: flex;
  align-items: center;

  gap: 16px;

  background: #fafcfe;

  border: 1px solid #e4ebf2;
  border-radius: 12px;
}

.undergraduate-mark {
  flex: 0 0 auto;

  padding: 6px 9px;

  color: #2768c9;

  background: #edf5fd;

  border-radius: 7px;

  font-size: 0.65rem;
  font-weight: 700;

  letter-spacing: 0.05em;
}

.undergraduate-copy {
  display: flex;
  flex-direction: column;

  gap: 2px;
}

.undergraduate-copy strong {
  color: #102b48;

  font-size: 0.78rem;
  font-weight: 700;
}

.undergraduate-copy span {
  color: #8a9bab;

  font-size: 0.67rem;
}


/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width: 1050px) {

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

  .background-plus {
    height: 22px;
  }

}


@media (max-width: 650px) {

  .background-item {
    padding: 17px;

    gap: 14px;
  }

  .background-icon {
    width: 68px;
    height: 68px;

    flex-basis: 68px;
  }

  .background-item strong {
    font-size: 1rem;
  }

  .undergraduate-background {
    align-items: flex-start;
  }

}
/* ============================================================
   ABOUT — COMPACT DEGREE VISUALS
============================================================ */

.background-grid {
  display: grid;
  grid-template-columns: 1fr 42px 1fr;
  gap: 18px;
  align-items: center;

  margin-top: 28px;
  padding-top: 22px;

  border-top: 1px solid #e1e9f0;
}

.background-item {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 16px;
  align-items: center;

  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;

  min-height: 90px;
}


/* IMAGE */

.degree-icon {
  width: 78px;
  height: 78px;

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

  overflow: hidden;

  background: #f5f9fd;
  border: 1px solid #e1ebf4;
  border-radius: 12px;
}

.degree-icon img {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;

  transform: scale(1.35);
}


/* TEXT */

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

.degree-info .background-degree {
  margin-bottom: 5px;

  color: #1769d2;

  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.degree-info strong {
  color: #123554;

  font-family: "DM Sans", sans-serif;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.3;
}

.degree-info > span:last-child {
  margin-top: 5px;

  color: #8196aa;

  font-size: 0.64rem;
  line-height: 1.45;
}


/* PLUS */

.background-plus {
  display: flex;
  align-items: center;
  justify-content: center;

  color: #6da4e6;

  font-size: 1.35rem;
  font-weight: 400;
}


/* MOBILE */

@media (max-width: 800px) {

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

  .background-plus {
    height: 20px;
  }

}
/* ============================================================
   FORCE ABOUT DEGREE LAYOUT
   MUST BE THE LAST CSS IN home.css
============================================================ */

.about-section .about-content .background-grid {
  display: grid !important;
  grid-template-columns: 1fr 36px 1fr !important;
  gap: 14px !important;
  align-items: center !important;

  margin-top: 24px !important;
  padding-top: 20px !important;

  border-top: 1px solid #e1e9f0 !important;
}


.about-section .background-grid .background-item {
  display: grid !important;
  grid-template-columns: 72px 1fr !important;
  gap: 14px !important;
  align-items: center !important;

  min-height: 0 !important;
  height: auto !important;

  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}


/* IMAGE BOX */

.about-section .background-item .degree-icon {
  width: 72px !important;
  height: 72px !important;

  min-width: 72px !important;
  min-height: 72px !important;

  padding: 0 !important;
  margin: 0 !important;

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

  overflow: hidden !important;

  background: #f5f9fd !important;
  border: 1px solid #e1ebf4 !important;
  border-radius: 12px !important;
}


.about-section .background-item .degree-icon img {
  display: block !important;

  width: 100% !important;
  height: 100% !important;

  max-width: none !important;
  max-height: none !important;

  object-fit: cover !important;
  object-position: center !important;

  margin: 0 !important;
}


/* TEXT */

.about-section .background-item .degree-info {
  display: flex !important;
  flex-direction: column !important;

  min-width: 0 !important;
}


.about-section .degree-info .background-degree {
  margin: 0 0 4px !important;

  color: #1769d2 !important;

  font-size: 0.68rem !important;
  font-weight: 700 !important;
}


.about-section .degree-info strong {
  margin: 0 !important;

  color: #123554 !important;

  font-size: 0.84rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}


.about-section .degree-info > span:last-child {
  margin-top: 4px !important;

  color: #8196aa !important;

  font-size: 0.64rem !important;
  line-height: 1.4 !important;
}


/* PLUS */

.about-section .background-plus {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: auto !important;
  height: auto !important;

  color: #6da4e6 !important;

  font-size: 1.35rem !important;
}


/* MOBILE */

@media (max-width: 800px) {

  .about-section .about-content .background-grid {
    grid-template-columns: 1fr !important;
  }

  .about-section .background-plus {
    height: 20px !important;
  }
}
/* Remove square shapes around About degree images */

.about-section .degree-icon {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
/* ABOUT — final clean degree layout */

.about-section .background-grid {
  display: grid !important;
  grid-template-columns: 1fr 40px 1fr !important;
  width: 100% !important;
  align-items: center !important;
  gap: 20px !important;
}

.about-section .background-item {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 18px 0 !important;
}

.about-section .degree-info {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: none !important;
}

.about-section .degree-info strong {
  white-space: nowrap !important;
}

.about-section .degree-info > span:last-child {
  white-space: nowrap !important;
}

.about-section .background-plus {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
/* About degree typography refinement */

.about-section .background-degree {
  font-size: 12px !important;
}

.about-section .degree-info strong {
  font-size: 15px !important;
  line-height: 1.35 !important;
}

.about-section .degree-info > span:last-child {
  font-size: 11px !important;
  line-height: 1.5 !important;
}
/* =========================================================
   TECHNICAL NOTES — EDITORIAL CARDS
========================================================= */

.writing-section {
  padding-top: 72px;
  padding-bottom: 76px;
}

.writing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 42px;
}

.writing-card {
  display: flex;
  flex-direction: column;
  min-height: 260px;

  padding: 30px 32px 24px;

  background: #ffffff;
  border: 1px solid #dce6ee;
  border-radius: 14px;

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.writing-card:hover {
  transform: translateY(-3px);
  border-color: #c7d9ea;
  box-shadow: 0 14px 32px rgba(15, 55, 90, 0.07);
}

.writing-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-bottom: 30px;

  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.writing-meta span:first-child {
  color: #0f67d8;
}

.writing-meta span:last-child {
  color: #91a6ba;
}

.writing-card h3 {
  max-width: 520px;
  margin: 0 0 14px;

  color: #082b4d;
  font-family: "Playfair Display", serif;
  font-size: 23px;
  line-height: 1.25;
}

.writing-card > p {
  max-width: 540px;
  margin: 0;

  color: #5f7da5;
  font-size: 14px;
  line-height: 1.7;
}

.writing-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-top: auto;
  padding-top: 24px;

  border-top: 1px solid #e3ebf3;

  color: #5f7da5;
  font-size: 11px;
  font-weight: 600;
}

.writing-arrow {
  color: #0f67d8;
  font-size: 17px;
  transition: transform 0.2s ease;
}

.writing-card:hover .writing-arrow {
  transform: translateX(4px);
}

.blog-coming {
  margin-top: 20px;
  text-align: right;

  color: #91a6ba;
  font-size: 11px;
}


/* MOBILE */

@media (max-width: 760px) {

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

  .writing-card {
    min-height: 230px;
    padding: 26px 24px 22px;
  }

  .writing-card h3 {
    font-size: 21px;
  }
}

/* Technical Notes — final compact refinement */

.writing-card {
  min-height: 220px !important;
  padding: 28px 30px !important;
}

.writing-grid {
  margin-top: 34px !important;
}

.writing-section {
  padding-bottom: 64px !important;
}
/* =========================================================
   PROJECT ACTIONS
========================================================= */

.project-actions {
  display: flex;
  align-items: center;
  gap: 24px;

  margin-top: 22px;
}


/* Explore + GitHub */

.project-actions .project-link,
.project-actions .project-github {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  width: auto !important;

  padding: 0 !important;
  margin: 0;

  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none;

  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;

  text-decoration: none;
}


/* Explore Project */

.project-actions .project-link {
  color: #0f67d8;
}

.project-actions .project-link:hover {
  color: #084fae;
}


/* GitHub */

.project-actions .project-github {
  color: #6b8198;
}

.project-actions .project-github:hover {
  color: #082b4d;
}


/* Arrows */

.project-actions span {
  display: inline-block;
  transition: transform 0.2s ease;
}

.project-actions .project-link:hover span {
  transform: translateX(3px);
}

.project-actions .project-github:hover span {
  transform: translate(2px, -2px);
}


/* MOBILE */

@media (max-width: 700px) {

  .project-actions {
    gap: 18px;
    margin-top: 18px;
  }

}