/* ─────────── Variables & Reset ─────────── */
:root{
  --bg-light:#f2f4fa;
  --bg-body:#f0f4ff;
  --bg-panel:#ffffff;
  --text-dark:#0e2144;
  --text-muted: #6d7c9f;
  --accent:#006efe;
  --border-color: #d7e2ff;

  --cyan-edge:rgba(0,229,255,.6);
  --pink-edge:rgba(255,72,196,.6);

  --font-body:"Inter",system-ui,sans-serif;
  --font-display:"Inter",system-ui,sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
  --max-width:1400px;
}

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

body{
  background:var(--bg-body);
  color:var(--text-dark);
  font-family:var(--font-body);
  line-height:1.55;
  overflow-x:hidden;
}

#bg{
  position:fixed;
  top:0;left:0;width:100%;height:100%;
  z-index:-1;
  pointer-events:none;
}

/* ─────────── Top Bar ─────────── */
.topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem 2rem;max-width:var(--max-width);margin:0 auto;
}
.logo{height:40px;}

.nav-link{
  position:relative;margin-left:2rem;font-size:.95rem;font-weight:500;
  color:var(--text-dark);text-decoration:none;
}
.nav-link::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;
  background:var(--text-dark);transform:scaleX(0);transform-origin:left;
  transition:transform .3s;
}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1);}

/* ─────────── Layout ─────────── */
.split{
  display:flex;flex-wrap:wrap;
  max-width:var(--max-width);margin:0 auto;
}
.hero,.info{flex:1 1 50%;padding:2rem 2rem;position:relative;}

/* hero left */
.tagline{
  font-family:var(--font-display);font-size:3rem;line-height:1.1;margin-bottom:1.4rem;
  font-weight: 700;
  text-shadow:
  -.6px 0 rgba(0,239,255,.5),
   .6px 0 rgba(255,60,200,.45);
}
.lead{max-width:30rem;font-size:1.125rem;margin-bottom:2rem;}
.btn{
  background:#00aaff;
  border:1px solid #0086d6;
  color:#fff;
  padding:.9rem 1.6rem;
  border-radius:6px;
  box-shadow:0 2px 6px rgba(0,135,210,.25);
  transition:transform .18s, box-shadow .18s, background-color .18s;
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 500;
}

.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 4px 14px rgba(0,135,210,.35);
}

/* team */
.team-heading{font-size:1.35rem;margin:2.3rem 0 .9rem;font-weight:600;}
.team{list-style:none;}
.team li{
  display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.6rem;
}
.avatar-link{flex:0 0 56px;}
.avatar{
  width:56px;height:56px;border-radius:50%;object-fit:cover;
  border:2px solid #fff;box-shadow:0 0 0 2px var(--border-color);
  transition:transform .2s;
}
.avatar-link:hover .avatar{transform:scale(1.05);}
.bio{font-size:.95rem;}

/* right column */
.info{
  display:flex;
  flex-direction: column;
}
.panel{
  position:relative;z-index:1;background:var(--bg-panel);
  padding:2rem;
  max-width:32rem;border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.panel h2{
  font-family: var(--font-mono);
  font-weight: 700;
  font-size:1.35rem;
  margin-top: 0;
  margin-bottom: .8rem;
  text-shadow:
      -.4px 0 rgba(0,239,255,.35),
      .4px 0 rgba(255,60,200,.3);
  }
.panel h2 + p {
    margin-bottom: 1.5rem;
}

/* ─────────── Hiring Section ─────────── */
.job-listings {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.job-button {
    display: block;
    padding: 0.75rem 1rem;
    background-color: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    text-decoration: none;
    color: var(--text-dark);
    font-weight: 500;
    font-size: 0.9rem;
    text-align: center;
    transition: all 0.2s ease;
}
.job-button:hover {
    border-color: var(--accent);
    background-color: #e9f6ff;
    color: var(--accent);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,.04);
}

/* ─────────── Full-Width Contact Section ─────────── */
.contact-section {
    background-color: var(--bg-panel);
    padding: 3rem 2rem;
    margin-top: 2rem;
}
.contact-container {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.contact-container .section-title {
    margin-bottom: 1rem;
}
.contact-lead {
    max-width: 600px;
    margin: 0 auto 2rem auto;
    color: var(--text-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}
.contact-form {
    text-align: left;
}
.form-row {
    display: flex;
    gap: 1.25rem;
    margin-bottom: 1rem;
}
.form-row .form-group,
.contact-form .form-group {
    flex: 1;
    margin-bottom: 0;
}
.contact-form .form-group {
    margin-bottom: 1rem;
}
.form-group label {
    display: block;
    font-weight: 500;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}
.form-group input,
.form-group textarea {
    width: 100%;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background-color: var(--bg-light);
    font-family: inherit;
    font-size: 1rem;
    color: var(--text-dark);
    transition: border-color .2s, box-shadow .2s;
}
.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(0, 110, 254, 0.2);
}
.form-group textarea {
    resize: vertical;
    min-height: 90px;
}
.btn-submit {
    width: 100%;
    padding: 0.9rem;
    font-size: 1.05rem;
    font-weight: 600;
    background-color: var(--accent);
    border-color: #0056d1;
}
.btn-submit:hover {
    background-color: #005fdf;
}


/* ─────────── Publications Section (Scrollable) ─────────── */
.publications-section {
  max-width: var(--max-width);
  margin: 4rem auto 4rem;
  padding: 0;
}
.section-title {
  text-align: center;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 2rem;
  margin-bottom: 1.5rem;
  padding: 0 2rem;
  text-shadow:
    -0.5px 0 rgba(0, 239, 255, 0.4),
    0.5px 0 rgba(255, 60, 200, 0.35);
}
.scroll-container {
  position: relative;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #c1d2f7 var(--bg-body);
  padding: 1.5rem 0;
}
.scroll-container::-webkit-scrollbar { height: 8px; }
.scroll-container::-webkit-scrollbar-track { background: transparent; }
.scroll-container::-webkit-scrollbar-thumb { background-color: #d1ddf8; border-radius: 4px; border: 2px solid var(--bg-body); }
.scroll-container::-webkit-scrollbar-thumb:hover { background-color: #b9cbf0; }
.scroll-container::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 60px;
  /* background: linear-gradient(to left, var(--bg-body), rgba(240, 244, 255, 0)); */
  pointer-events: none;
  z-index: 2;
}
.publications-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  padding: 0 2rem;
}
.publication-card {
  width: 300px;
  flex-shrink: 0;
  background: var(--bg-panel);
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.publication-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .08);
}
.publication-card img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  background-color: var(--bg-light);
}
.card-content {
  padding: 1.25rem;
  flex-grow: 1; 
  display: flex;
  flex-direction: column;
}
.card-content h3 {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: var(--text-dark);
  line-height: 1.3;
}
.card-content .authors {
  font-size: 0.85rem;
  color: var(--text-dark);
  font-weight: 500;
  margin-bottom: 0.4rem;
}
.card-content .venue {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-bottom: 1rem;
}
.card-content .description {
  font-size: 0.9rem;
  line-height: 1.5;
  flex-grow: 1;
}
.card-links {
  margin-top: 1rem;
  padding: 0.8rem 1.25rem;
  border-top: 1px solid #eef2f8;
  background-color: #fcfdff;
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.card-links a {
  text-decoration: none;
  color: var(--accent);
  font-weight: 500;
  font-size: 0.9rem;
  transition: color 0.2s;
}
.card-links a:hover {
  color: var(--text-dark);
}

/* ─────────── Footer & Responsive ─────────── */
footer{
  background:var(--bg-panel);box-shadow:0 -2px 12px rgba(0,0,0,.05);
  padding:1.8rem 2rem;
}
.footer-links{
  display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;font-size:.9rem;
}
.footer-group strong{font-weight:600;margin-right:.35rem;}
.footer-group a{color:var(--text-dark);text-decoration:none;opacity:.85;}
.footer-group a:hover{opacity:1; text-decoration: underline;}
.copyright{text-align:center;font-size:.8rem;color:var(--text-muted);margin-top:1.2rem;}

/* ─────────── Job Posting Page ─────────── */
.job-posting-page {
    padding: 2rem;
}
.job-content {
    background: var(--bg-panel);
    max-width: 800px;
    margin: 0 auto;
    padding: 3rem 4rem;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.job-content h1 {
    font-size: 2.25rem;
    margin-bottom: 2rem;
    line-height: 1.2;
}
.job-content h2 {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 1.35rem;
    margin: 2.5rem 0 1rem 0;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.5rem;
}
.job-content p {
    margin-bottom: 1rem;
    line-height: 1.6;
    color: var(--text-muted);
}
.job-content p:last-child {
    margin-bottom: 0;
}
.job-content ul {
    list-style: none;
    padding-left: 0;
}
.job-content li {
    position: relative;
    padding-left: 1.75rem;
    margin-bottom: 0.75rem;
    color: var(--text-muted);
}
.job-content li::before {
    content: '→';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--accent);
    font-weight: 700;
}
.job-content ul ul {
    margin-top: 0.75rem;
    padding-left: 1rem;
}
.job-content ul ul li::before {
    content: '•';
    color: var(--text-muted);
    font-weight: 700;
}
.apply-box {
    background-color: var(--bg-light);
    border: 1px solid var(--border-color);
    padding: 1.5rem;
    margin: 2rem 0;
    border-radius: 8px;
}
.apply-box p {
    margin: 0;
    font-size: 1rem;
    color: var(--text-dark);
}
.apply-box a {
    color: var(--accent);
    font-weight: 500;
    text-decoration: none;
}
.apply-box a:hover {
    text-decoration: underline;
}

@media(max-width:900px){
  .split{flex-direction:column;}
  .hero,.info{padding:1rem 2rem;}
  .hero { padding-top: 2.5rem; }
  .tagline{font-size:2.3rem;}
  .panel{margin:0 auto;}
  .info { gap: 1.5rem; padding-bottom: 2rem;}

  .contact-section { padding: 3rem 1.5rem; }
  .form-row { flex-direction: column; gap: 1rem; }

  .section-title { font-size: 1.75rem; }
  .publications-grid { padding: 0 1.5rem; }
  .scroll-container::after { width: 40px; }
  
  .job-posting-page { padding: 1.5rem; }
  .job-content { padding: 2rem; }
  .job-content h1 { font-size: 1.8rem; }
}