:root{
  --cornell-red: #B31B1B;
  --ink: #111827;
  --muted: #4B5563;
  --bg: #ffffff;
  --bg-alt: #F7F7F7;
  --card: #ffffff;
  --border: #E5E7EB;
  --shadow: 0 10px 25px rgba(0,0,0,.08);
  --radius: 16px;
  --max: 1120px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: "Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
}

.container{
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
}

a{ color: var(--cornell-red); text-underline-offset: 3px; }
a:hover{ text-decoration-thickness: 2px; }

.skip-link{
  position:absolute; left:-999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left: 1rem; top: 1rem;
  width:auto; height:auto;
  padding:.6rem .9rem;
  background:#fff;
  border:2px solid var(--cornell-red);
  border-radius: 10px;
  z-index: 9999;
}

/* Header */
.site-header{ position: sticky; top:0; z-index: 50; background: var(--bg); border-bottom: 1px solid var(--border); }
.brandbar{ background: var(--cornell-red); color:#fff; }
.brandbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 0;
}
.brandbar__left{ display:flex; align-items:center; gap:.75rem; font-weight:700; letter-spacing:.2px; }
.cornell-mark{ font-size: 1.05rem; }
.brandbar__divider{ width:1px; height:18px; background: rgba(255,255,255,.55); }
.brandbar__unit{ font-size: 1.05rem; }
.brandbar__right{ display:flex; align-items:center; gap: .75rem; }
.brandbar__link{ color:#fff; text-decoration:none; font-weight:600; }
.brandbar__link:hover{ text-decoration: underline; }

.nav{
  background: #fff;
}
.nav__inner{
  display:flex;
  gap: 1rem;
  align-items:center;
  padding: .75rem 0;
}
.nav__link{
  color: var(--ink);
  text-decoration:none;
  font-weight:600;
  padding:.25rem .35rem;
  border-radius: 10px;
}
.nav__link:hover, .nav__link:focus-visible{
  outline: none;
  background: rgba(179,27,27,.08);
  color: var(--cornell-red);
}

.nav-toggle{
  display:none;
  background: transparent;
  border: 1px solid rgba(255,255,255,.55);
  color:#fff;
  border-radius: 12px;
  padding:.45rem .55rem;
}
.nav-toggle__icon{
  display:block;
  width:18px; height:2px;
  background:#fff;
  position:relative;
}
.nav-toggle__icon::before,
.nav-toggle__icon::after{
  content:"";
  position:absolute; left:0;
  width:18px; height:2px;
  background:#fff;
}
.nav-toggle__icon::before{ top:-6px; }
.nav-toggle__icon::after{ top:6px; }

.sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Hero */
.hero{
  background:
    radial-gradient(900px 500px at 10% 10%, rgba(179,27,27,.10), transparent 60%),
    radial-gradient(700px 420px at 90% 20%, rgba(17,24,39,.08), transparent 55%),
    linear-gradient(#fff, #fff);
  padding: 3.25rem 0 2.5rem;
}
.hero__inner{
  display:grid;
  grid-template-columns: 1.4fr .9fr;
  gap: 2rem;
  align-items: start;
}
.eyebrow{ margin:0 0 .4rem; font-weight:700; color: var(--cornell-red); letter-spacing:.2px; }
h1{ font-size: clamp(2rem, 2.2vw + 1.4rem, 3rem); line-height: 1.1; margin:.2rem 0 .75rem; }
.lead{ font-size: 1.15rem; color: var(--muted); margin:0 0 1.25rem; }

.cta-row{ display:flex; flex-wrap:wrap; gap:.75rem; margin: 0 0 1.25rem; }

.btn{
  display:inline-block;
  background: var(--cornell-red);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  padding:.7rem 1rem;
  border-radius: 999px;
  border: 2px solid var(--cornell-red);
}
.btn:hover{ filter: brightness(.95); }
.btn:focus-visible{ outline: 3px solid rgba(179,27,27,.35); outline-offset: 2px; }
.btn--ghost{
  background: transparent;
  color: var(--cornell-red);
}

.quick-links{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}
.quick-link{
  display:block;
  text-decoration:none;
  color: var(--ink);
  background: rgba(255,255,255,.85);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: .85rem;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.quick-link:hover{ border-color: rgba(179,27,27,.35); }
.quick-link__title{ font-weight:800; display:block; margin:0 0 .2rem; }
.quick-link__desc{ color: var(--muted); font-size: .95rem; }

.hero__card{
  background: rgba(255,255,255,.9);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.25rem;
}
.h3{ font-size: 1.2rem; margin:0 0 .75rem; }
.checklist{
  margin:0 0 1rem;
  padding-left: 1.1rem;
}
.checklist li{ margin:.35rem 0; }
.muted{ color: var(--muted); }
.small{ font-size: .95rem; }

/* Sections */
.section{ padding: 3rem 0; }
.section--alt{ background: var(--bg-alt); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
h2{ font-size: 1.9rem; margin:0 0 1rem; line-height:1.15; }
h3{ margin:.2rem 0 .35rem; }

.grid-3{
  margin-top: 1.25rem;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.grid-2{
  margin-top: 1.25rem;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.people-grid{
  margin-top: 1.25rem;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.person{
  display:flex;
  gap: 1rem;
  align-items:flex-start;
}
.person__avatar{
  width: 80x; height: 80px;
  border-radius: 16px;
  background: rgba(179,27,27,.12);
  color: var(--cornell-red);
  font-weight: 900;
  display:grid;
  place-items:center;
}
.person__name{ margin:0; }
.person__name a{ color: var(--ink); }
.person__name a:hover{ color: var(--cornell-red); }
.person__title{ margin:.35rem 0 .15rem; color: var(--muted); font-weight:600; }
.person__meta{ margin:0; color: var(--muted); font-size: .95rem; }

.card--highlight{
  border-color: rgba(179,27,27,.25);
  box-shadow: var(--shadow);
}
.seminar{
  display:grid;
  grid-template-columns: 1.4fr .8fr;
  gap: 1.25rem;
}
.bullets{ margin:.75rem 0 1rem; padding-left: 1.1rem; }
.bullets li{ margin:.35rem 0; }
.h4{ font-size: 1.15rem; margin:0 0 .75rem; }
.dl{ margin:0; display:grid; gap:.75rem; }
dt{ font-weight:800; }
dd{ margin: .15rem 0 0; color: var(--muted); }

.location{
  color: var(--cornell-red);
  font-weight:bold;
  }

/* Footer */
.site-footer{
  background: #111827;
  color: #E5E7EB;
  padding: 2rem 0 1.25rem;
}
.footer__inner{
  display:flex;
  justify-content: space-between;
  gap: 1.5rem;
  align-items:flex-start;
}
.site-footer a{ color:#fff; }
.footer__links{
  display:flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.footer__bottom{ margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(229,231,235,.18); }

/* Responsive */
@media (max-width: 920px){
  .hero__inner{ grid-template-columns: 1fr; }
  .quick-links{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }
  .people-grid{ grid-template-columns: 1fr; }
  .seminar{ grid-template-columns: 1fr; }
  .footer__inner{ flex-direction: column; }
  .footer__links{ justify-content: flex-start; }

  .nav-toggle{ display:inline-flex; align-items:center; gap:.5rem; }
  .nav{ display:none; }
  .nav.is-open{ display:block; }
  .nav__inner{ flex-direction: column; align-items:flex-start; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
}
