@import url("basic.css");
@font-face{font-family:'Open Sans';src:url('fonts/open-sans-normal.woff2') format('woff2');font-style:normal;font-weight:300 800;font-display:swap}
@font-face{font-family:'Open Sans';src:url('fonts/open-sans-italic.woff2') format('woff2');font-style:italic;font-weight:300 800;font-display:swap}
@font-face{font-family:'Antenna Condensed Light';src:url('fonts/antenna-condensed-light.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Antenna Condensed Bold';src:url('fonts/antenna-condensed-bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Antenna Condensed Black';src:url('fonts/antenna-condensed-black.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Antenna';src:url('fonts/antenna-regular.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Antenna Bold';src:url('fonts/antenna-bold.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{--maroon:oklch(.32 .12 12);--gold:oklch(.79 .15 83);--paper:oklch(.977 .007 85);--ink:oklch(.23 .015 30);--muted:oklch(.47 .015 30);--line:oklch(.84 .012 65);--serif:'Antenna Bold','Antenna Condensed Bold','Arial Narrow',Arial,sans-serif;--sans:'Open Sans',Arial,sans-serif;--sd-color-primary:var(--maroon);--sd-color-primary-highlight:oklch(.43 .12 12);--sd-color-primary-text:var(--paper);--sd-color-card-background:transparent;--sd-color-card-border:var(--line);--sd-color-card-header:transparent;--sd-color-card-footer:transparent;color-scheme:light}
*{box-sizing:border-box}html{scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--maroon);text-underline-offset:4px;text-decoration-thickness:1px;transition:color 100ms ease-out,background-color 100ms ease-out}a:hover{color:oklch(.48 .14 15)}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,label:focus-visible{outline:3px solid var(--gold);outline-offset:4px}img,video,iframe{max-width:100%}img{height:auto}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.2;color:var(--ink);text-wrap:pretty}h1{font-size:clamp(34px,3.4vw,52px);letter-spacing:-.035em;margin:0 0 30px}h2{font-size:32px;letter-spacing:-.025em;margin:42px 0 22px}h3{font-size:25px;margin:28px 0 16px}h4{font-size:21px}p{margin:0 0 20px}li{margin:7px 0}.site-width{width:90%;max-width:1280px;margin:0 auto}.site-header{background:var(--maroon);color:var(--paper)}.header-inner{width:90%;max-width:1280px;min-height:82px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{font-family:var(--sans);font-weight:700;font-size:25px;letter-spacing:-.065em;text-decoration:none;white-space:nowrap;color:var(--paper)}.wordmark span{font-weight:400;letter-spacing:-.035em}.site-header nav{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.site-header nav a{font-size:11px;color:var(--paper);text-decoration:none;padding:8px 0}.site-header a:hover{color:var(--gold)}.site-header nav a[aria-current]{box-shadow:0 2px var(--gold)}.skip-link{position:absolute;left:10px;top:-80px;z-index:50;padding:10px 20px;background:var(--paper)}.skip-link:focus{top:10px}.home-hero{background:var(--maroon);color:var(--paper)}.hero-inner{width:90%;max-width:1280px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding:25px 0 42px}.hero-inner h1{color:var(--paper);font-size:clamp(42px,5vw,70px);max-width:9em;margin:0;line-height:1.08}.hero-inner img{width:100%;height:265px;object-fit:cover;object-position:center 42%}.home-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:8%;padding-top:45px;padding-bottom:60px}.home-columns h2{font-size:32px;margin:0 0 26px}.research-entry{padding:24px 0 28px;border-top:1px solid var(--line)}.research-entry h3{font-size:27px;line-height:1.3;margin:8px 0 14px}.research-entry h3 a,.news-entry h3 a{text-decoration:none;color:var(--ink)}.research-entry h3 a:hover,.news-entry h3 a:hover{color:var(--maroon);text-decoration:underline}.entry-meta{font-size:10px;letter-spacing:.045em;color:var(--maroon);margin:0}.entry-authors{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.news-entry{border-top:1px solid var(--line);padding:19px 0 22px}.news-entry time{font-size:10px;color:var(--muted)}.news-entry h3{font-size:20px;line-height:1.4;margin:6px 0 0}.site-footer{border-top:1px solid var(--line);padding:28px 0 36px;display:flex;justify-content:space-between;gap:25px;font-size:11px}.site-footer a{text-decoration:none}.site-footer nav{display:flex;gap:25px;flex-wrap:wrap}.footer-name{font-weight:600}.page-layout{display:grid;grid-template-columns:minmax(0,900px) minmax(150px,220px);gap:7%;padding:38px 0 65px;align-items:start}.article-body{min-width:0}.breadcrumbs{font-size:11px;color:var(--muted);margin-bottom:28px}.breadcrumbs a{text-decoration:none}.page-toc{font-size:11px;line-height:1.6;position:sticky;top:28px;padding-top:52px}.page-toc ul{list-style:none;padding-left:0}.page-toc ul ul{padding-left:15px;border-left:1px solid var(--line)}.page-toc a{color:var(--muted);text-decoration:none}.page-toc a:hover{color:var(--maroon)}.page-toc>ul>li>a{font-weight:600;color:var(--maroon)}.article-body section{scroll-margin-top:22px}.article-body .headerlink{font-size:.5em;opacity:0;margin-left:6px}.article-body :is(h1,h2,h3,h4):hover .headerlink,.article-body .headerlink:focus{opacity:1}.article-body .sd-card{box-shadow:none!important;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink)}.article-body .sd-card-body{padding:22px 0}.article-body .sd-card-title{font-family:var(--serif);font-size:24px;line-height:1.3}.article-body .sd-card .sd-card-text{margin-bottom:16px}.article-body .sd-card .octicon{display:none}.article-body .sd-btn{border-radius:0;font:12px/1.6 var(--sans);padding:10px 16px;box-shadow:none!important}.article-body .sd-btn-primary{background:var(--maroon);border-color:var(--maroon);color:var(--paper)}.article-body .sd-btn-primary:hover{background:oklch(.43 .12 12)}.article-body .sd-btn-secondary{background:transparent;border:1px solid var(--line);color:var(--maroon)}.sd-tab-set>input:checked+label{color:var(--maroon)!important;border-color:var(--maroon)!important}.sd-tab-set>label{font-size:13px}.article-body details.sd-dropdown{border:1px solid var(--line);border-radius:0;box-shadow:none!important;background:transparent}.article-body details summary{background:transparent!important;font-size:14px;color:var(--ink)}.article-body .profile-photo{width:100%;height:240px;object-fit:cover;object-position:center top}.article-body .sd-card-img-top{height:220px;object-fit:cover;object-position:center top;border-radius:0}.article-body .team-text-col{padding:0 24px}.article-body .team-text-col strong{font-family:var(--serif);font-size:25px;font-weight:500}.article-body .team-text-col em{font-size:12px;color:var(--muted)}.article-body .sd-card img{max-width:100%}.article-body table{border-collapse:collapse;width:100%;font-size:12px;display:block;overflow-x:auto;margin:25px 0}.article-body th,.article-body td{padding:12px 15px;text-align:left;border:1px solid var(--line)}.article-body th{background:oklch(.94 .012 85);font-weight:600}.article-body dl.field-list{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px 20px;margin:25px 0 38px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.article-body dl.field-list dt{font-weight:600}.article-body dl.field-list dd{margin:0;overflow-wrap:anywhere}.article-body dl.field-list dd p{margin:0}.article-body pre{padding:20px;overflow-x:auto;background:oklch(.94 .012 85);font-size:12px;line-height:1.7}.article-body code{font-size:.88em;overflow-wrap:anywhere}.article-body .admonition{border:1px solid var(--line);border-left:3px solid var(--maroon);background:oklch(.95 .01 85);padding:20px;margin:24px 0;box-shadow:none}.article-body .admonition-title{font-weight:600;font-size:12px}.article-body .ablog-post-meta{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:35px}.article-body ul.postlist{list-style:none;padding:0}.article-body .postlist>li{border-top:1px solid var(--line);padding:24px 0;margin:0}.article-body input{font:inherit;max-width:100%;border:1px solid var(--line);padding:10px;background:var(--paper);color:var(--ink)}.article-body input[type=submit]{cursor:pointer;background:var(--maroon);color:var(--paper);border-color:var(--maroon)}.article-body ul.search{padding:0;list-style:none}.article-body ul.search li{padding:20px 0;border-bottom:1px solid var(--line);background:none}.article-body .highlighted{background:oklch(.9 .1 85)}.article-body iframe{width:100%;min-height:420px;border:1px solid var(--line)}
@media(max-width:1100px){.header-inner{gap:20px}.site-header nav{gap:14px}.site-header nav a{font-size:10px}.home-columns{gap:5%}.page-layout{grid-template-columns:minmax(0,1fr) 160px;gap:5%}}
@media(max-width:800px){.header-inner{flex-direction:column;align-items:flex-start;gap:7px;padding:15px 0}.site-header nav{gap:6px 19px}.site-header nav a{font-size:11px}.hero-inner{gap:6%;padding-top:20px}.hero-inner img{height:220px}.home-columns{grid-template-columns:1fr;gap:45px}.page-layout{display:block;padding-top:25px}.page-toc{display:none}.research-entry h3{font-size:25px}.news-entry h3{font-size:23px}.site-footer{flex-direction:column;gap:14px}.article-body .team-text-col{padding:0 16px}}
@media(max-width:520px){body{font-size:14px}.wordmark{font-size:23px}.site-header nav{gap:4px 14px}.site-header nav a{font-size:10px}.hero-inner{grid-template-columns:1fr;gap:23px;padding:22px 0 30px}.hero-inner h1{font-size:43px;max-width:none}.hero-inner img{height:auto;max-height:none}.home-columns{padding-top:30px}.home-columns h2{font-size:29px}.research-entry h3{font-size:24px}.entry-meta{font-size:10px}.page-layout h1{font-size:33px;overflow-wrap:anywhere}.article-body h2{font-size:28px}.article-body h3{font-size:23px}.article-body .team-text-col{padding:15px 0}.article-body dl.field-list{grid-template-columns:1fr;gap:5px}.article-body dl.field-list dd{margin-bottom:13px}.article-body .sd-card-img-top{height:auto;max-height:360px}.site-footer nav{gap:14px}.article-body iframe{min-height:320px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
a:visited{color:var(--maroon)}.site-header .wordmark:visited,.site-header nav a:visited{color:var(--paper)}.site-header a:hover,.site-header a:visited:hover{color:var(--gold)}.research-entry h3 a:visited,.news-entry h3 a:visited{color:var(--ink)}.research-entry h3 a:hover,.news-entry h3 a:hover{color:var(--maroon)}.profile-photo[src*="laufer"]{object-position:left top}.article-body svg.sd-octicon{display:none}.article-body p{max-width:75ch}

.hero-inner img{width:auto;max-width:100%;object-fit:contain;justify-self:end}@media(max-width:520px){.hero-inner img{width:100%}}

.home-hero { overflow: hidden; }
.hero-inner {
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr);
  gap: 4%;
  padding: 25px 0 42px;
}
.hero-copy { align-self: center; max-width: 620px; }
.hero-inner h1 {
  max-width: none;
  margin: 0;
  color: var(--paper);
  font-size: clamp(34px, 3.65vw, 52px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: 1;
  white-space: nowrap;
}
.home-hero .hero-dek {
  max-width: 52ch;
  margin: 18px 0 0;
  color: oklch(.93 .008 85);
  font-family: var(--sans);
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.45;
}
.hero-carousel {
  position: relative;
  width: calc(100% + 8vw);
  max-width: none;
  height: 420px;
  justify-self: start;
  transform: translateX(-8vw);
}
.hero-carousel img {
  display: block;
  width: 100% !important;
  max-width: none;
  height: 420px !important;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: right center;
}

.wordmark { display: flex; align-items: center; gap: 8px; font-family: 'Antenna Condensed Bold', 'Arial Narrow', Arial, sans-serif; }
.wordmark span { letter-spacing: 0; }
.wordmark img {
  display: block;
  width: 154px;
  height: 32px;
  object-fit: contain;
  object-position: left center;
}
.read-more { display: inline-flex; align-items: baseline; gap: 8px; margin-top: 18px; color: var(--maroon); font-size: 12px; text-decoration: none; }
.read-more span { font-size: 24px; line-height: .6; transition: transform 150ms ease-out; }
.read-more:hover span { transform: translateX(3px); }
.home-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; padding: 0 0 70px; }
.home-bottom-entry { border-top: 1px solid var(--line); padding-top: 18px; }
.home-bottom-entry h2 { margin: 0 0 10px; font-size: 28px; }
.home-bottom-entry h2 a { color: var(--ink); text-decoration: none; }
.home-bottom-entry h2 a:hover { color: var(--maroon); text-decoration: underline; }
.home-bottom-entry p { max-width: 42ch; margin: 0; font-size: 13px; color: var(--muted); }
@media (max-width: 800px) {
  .hero-inner { grid-template-columns: 1fr; gap: 23px; padding: 20px 0 34px; }
  .hero-inner h1 { font-size: clamp(30px, 4.2vw, 38px); }
  .hero-carousel { width: 100%; max-width: none; height: auto; transform: none; }
  .hero-carousel img {
    width: auto !important;
    max-width: 100%;
    max-height: min(360px, 72vw);
    height: auto !important;
    margin: 0 auto;
    object-fit: contain;
  }
  .home-bottom { gap: 6%; }
}
@media (max-width: 520px) {
  .hero-inner { gap: 23px; padding: 22px 0 30px; }
  .hero-inner h1 { font-size: clamp(29px, 8.6vw, 36px); white-space: normal; }
  .home-hero .hero-dek { max-width: 42ch; }
  .hero-carousel { width: 100%; height: auto; transform: none; }
  .hero-carousel img { height: auto !important; object-fit: contain; }
  .home-bottom { grid-template-columns: 1fr; gap: 34px; padding-bottom: 45px; }
}

/* Square frames use the original portrait assets without resizing the source files. */
.article-body img.profile-photo,
.article-body img.sd-card-img-top {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center;
}
.article-body img.profile-photo[src*="laufer"] { object-position: left center; }
.article-body img.sd-card-img-top[src*="bhadauria"] { object-position: center 20%; }
.site-footer {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  display: block;
  background: var(--maroon);
  border-top: none;
}
.footer-inner {
  display: grid;
  grid-template-columns: minmax(190px, 1.35fr) repeat(3, minmax(130px, 1fr));
  gap: clamp(28px, 5vw, 72px);
  align-items: start;
  padding-top: 44px;
  padding-bottom: 42px;
}
.footer-brand { max-width: 260px; }
.footer-logo { display: block; width: max-content; }
.footer-logo img {
  display: block;
  width: 82px;
  height: 82px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.footer-tagline {
  color: var(--paper);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.25;
  margin: 18px 0 12px;
}
.footer-address { color: oklch(.88 .02 75); font-size: 11px; line-height: 1.65; margin: 0; }
.footer-address a { color: inherit; text-decoration: none; }
.footer-heading {
  color: var(--gold);
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.2;
  margin: 3px 0 15px;
  text-transform: uppercase;
}
.site-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.site-footer nav a, .site-footer nav a:visited { color: var(--paper); }
.site-footer nav a { font-size: 11px; line-height: 1.35; text-decoration: none; }
.site-footer nav a:hover { color: var(--gold); }
.footer-social { display: inline-flex; align-items: center; gap: 8px; }
.footer-icon { width: 15px; height: 15px; flex: 0 0 15px; }
.footer-legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-top: 1px solid oklch(.9 .02 75 / .24);
  color: oklch(.82 .02 75);
  font-size: 10px;
  padding-top: 17px;
  padding-bottom: 18px;
}
.footer-legal p { margin: 0; }
.footer-legal nav { flex-direction: row; gap: 18px; }
@media (max-width: 520px) {
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 34px 24px; padding-top: 34px; padding-bottom: 34px; }
  .footer-brand { grid-column: 1 / -1; max-width: 280px; }
  .footer-logo img { width: 74px; height: 74px; }
  .footer-legal { flex-direction: column; align-items: flex-start; gap: 10px; }
}
/* Use the same square portrait size for faculty and students. */
.article-body img.profile-photo,
.article-body img.sd-card-img-top {
  width: 200px !important;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
@media (min-width: 576px) {
  .article-body .team-photo-col { flex: 0 0 216px; max-width: 216px; }
  .article-body .team-text-col { flex: 1 1 0; min-width: 0; }
}

/* Team directory: portrait above compact copy, following the reference's columns. */
.team-page .page-layout { display: block; max-width: 1080px; }
.team-page .page-toc { display: none; }
.team-page .article-body > section > p { margin-bottom: 36px; }
.team-page .team-card { border: 0; }
.team-page .team-card .sd-card-body { padding: 0 0 24px; }
.team-page .team-card img.profile-photo {
  width: 200px !important;
  margin: 0 0 15px;
  object-position: center;
}
.team-page .team-card img[src*="laufer"] { object-position: left center; }
.team-page .team-card img[src*="bhadauria"] { object-position: center 20%; }
.team-page .team-card p { font-size: 13px; line-height: 1.65; margin-bottom: 10px; }
.team-page .team-card p strong { font-size: 16px; font-weight: 600; }
.team-page .team-card p em { font-size: 12px; font-style: normal; color: var(--muted); }
.team-page .team-card a { overflow-wrap: anywhere; }
@media (max-width: 575px) {
  .team-page .team-card img.profile-photo { width: 180px !important; }
  .team-page .team-card p { max-width: 46ch; }
}

/* Let Antenna Condensed's native spacing and kerning control the display type. */
body,
h1,
h2,
h3,
h4 {
  font-kerning: normal;
  font-feature-settings: "kern" 1;
}

h1,
h2 {
  letter-spacing: 0;
}

.hero-inner h1 {
  letter-spacing: 0;
}

.wordmark {
  letter-spacing: 0;
}

/* Match Loyola Computer Science's typography exactly. */
body {
  font-family: 'Open Sans', Arial, sans-serif;
}

h1,
h2,
h3,
h4 {
  font-family: 'Antenna Bold', Arial, sans-serif;
}

h1,
.hero-inner h1 {
  font-family: 'Antenna Condensed Black', Arial, sans-serif;
}

.wordmark {
  font-family: 'Antenna Condensed Bold', Arial, sans-serif;
}

.footer-tagline,
.article-body .sd-card-title,
.article-body .team-text-col strong {
  font-family: 'Antenna Bold', Arial, sans-serif;
}

/* Homepage cards keep the front door focused on the work, not metadata. */
.home-card-grid {
  display: grid;
  gap: 14px;
  margin-top: 22px;
}
.home-card-grid--publications { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-card-grid--updates { grid-template-columns: 1fr; }
.home-card {
  min-width: 0;
  min-height: 190px;
  padding: 20px 18px 18px;
  border: 1px solid var(--line);
  background: oklch(.965 .009 80);
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1), border-color 160ms ease-out, background-color 160ms ease-out;
}
.home-card:hover {
  transform: translateY(-4px);
  border-color: var(--maroon);
  background: oklch(.98 .006 85);
}
.home-card h3 {
  margin: 0;
  font-size: 21px;
  line-height: 1.28;
}
.home-card h3 a {
  color: var(--ink);
  text-decoration: none;
}
.home-card h3 a:hover { color: var(--maroon); }
.publication-card { display: flex; flex-direction: column; }
.publication-card .entry-authors {
  margin-top: auto;
  padding-top: 24px;
  font-size: 11px;
  line-height: 1.55;
}
.update-card {
  min-height: 0;
  padding: 18px;
}
.update-card time {
  display: block;
  margin-bottom: 10px;
  color: var(--maroon);
  font-size: 10px;
  letter-spacing: .045em;
}

/* The hero moves like a physical three-frame carousel: the center is clear,
   its neighbors stay visible but recede, and each advance travels leftward. */
.hero-carousel {
  --carousel-side-offset: clamp(145px, 22vw, 285px);
  position: relative;
  width: calc(100% + 8vw);
  max-width: none;
  height: 420px;
  justify-self: start;
  transform: translateX(-8vw);
  overflow: visible;
}
.hero-carousel__viewport {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: visible;
  perspective: 1100px;
}
.hero-carousel__track {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.hero-carousel__slide {
  position: absolute;
  top: 0;
  left: 50%;
  width: clamp(210px, 26vw, 330px);
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-50%, 0, -90px) scale(.72);
  filter: saturate(.55) brightness(.8) blur(1px);
  transition: transform 900ms cubic-bezier(.22, 1, .36, 1), opacity 900ms ease-out, filter 900ms ease-out;
  will-change: transform, opacity, filter;
}
.hero-carousel__slide::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  border: 1px solid oklch(.98 .01 85 / .32);
  content: '';
  pointer-events: none;
}
.hero-carousel__slide img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: contain;
  object-position: center;
  background: oklch(.24 .04 12);
}
.hero-carousel__slide.is-active {
  z-index: 3;
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(-50%, 0, 0) scale(1);
  filter: none;
}
.hero-carousel__slide.is-prev,
.hero-carousel__slide.is-next {
  z-index: 2;
  opacity: .36;
  filter: saturate(.62) brightness(.82) blur(.7px);
}
.hero-carousel__slide.is-prev {
  transform: translate3d(calc(-50% - var(--carousel-side-offset)), 0, -50px) rotateY(-13deg) scale(.8);
}
.hero-carousel__slide.is-next {
  transform: translate3d(calc(-50% + var(--carousel-side-offset)), 0, -50px) rotateY(13deg) scale(.8);
}
.hero-carousel__slide.is-hidden { opacity: 0; }

/* The top-level navigation has a more legible institutional scale. */
.header-inner { min-height: 96px; }
.wordmark { font-size: 30px; }
.site-header nav a {
  font-size: 13px;
  letter-spacing: .01em;
}
.nav-toggle {
  display: none;
  align-items: center;
  gap: 10px;
  border: 0;
  padding: 8px 0;
  background: transparent;
  color: var(--paper);
  font: 12px/1 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.nav-toggle-icon {
  display: grid;
  gap: 4px;
  width: 22px;
}
.nav-toggle-icon span {
  display: block;
  height: 2px;
  background: currentColor;
  transition: transform 180ms ease-out, opacity 180ms ease-out;
}
.site-header.nav-open .nav-toggle-icon span:first-child { transform: translateY(6px) rotate(45deg); }
.site-header.nav-open .nav-toggle-icon span:nth-child(2) { opacity: 0; }
.site-header.nav-open .nav-toggle-icon span:last-child { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1100px) {
  .home-card-grid--publications { grid-template-columns: 1fr; }
  .publication-card { min-height: 0; }
}
@media (max-width: 720px) {
  .header-inner {
    min-height: 0;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: center;
    gap: 8px 16px;
    padding: 14px 0;
  }
  .wordmark {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    font-size: 24px;
  }
  .wordmark img { width: 106px; height: 24px; }
  .nav-toggle { display: inline-flex; flex: 0 0 auto; margin-left: auto; }
  .site-header nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 8px 0 4px;
    border-top: 1px solid oklch(.9 .02 75 / .24);
  }
  .site-header.nav-open nav { display: flex; }
  .site-header nav a {
    width: 100%;
    padding: 10px 0;
    font-size: 14px;
  }
  .site-header nav a[aria-current] { box-shadow: none; color: var(--gold); }
  .hero-inner h1 {
    max-width: 100%;
    font-size: clamp(34px, 9.5vw, 42px);
    white-space: normal;
  }
  .hero-carousel {
    --carousel-side-offset: 42vw;
    width: 100%;
    max-width: 100%;
    height: min(360px, 78vw);
    transform: none;
  }
  .hero-carousel__slide { width: min(78vw, 300px); }
}
@media (max-width: 520px) {
  .hero-carousel { height: min(320px, 82vw); }
  .hero-carousel__slide { width: min(76vw, 280px); }
}
