:root {
  --tamu-maroon: #500000;
  --tamu-maroon-dark: #3c0000;
  --tamu-maroon-light: #732f2f;
  --ink: #1f1f1f;
  --muted: #5f6670;
  --line: #d9d9d9;
  --soft-gray: #f5f5f5;
  --white: #ffffff;
  --green: #3f6f53;
  --blue: #2f5d7c;
  --gold: #b38b2d;
  --max: 1320px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "Open Sans", Arial, sans-serif;
  line-height: 1.6;
}

body.has-mobile-menu {
  overflow: hidden;
}

body.a11y-large-text {
  font-size: 112.5%;
}

body.a11y-readable-spacing p,
body.a11y-readable-spacing li,
body.a11y-readable-spacing dd,
body.a11y-readable-spacing address {
  line-height: 1.85;
  letter-spacing: 0.01em;
  word-spacing: 0.08em;
}

body.a11y-underline-links a {
  text-decoration: underline !important;
  text-decoration-thickness: 0.12em;
  text-underline-offset: 0.18em;
}

body.a11y-high-contrast {
  --ink: #000000;
  --muted: #1a1a1a;
  --line: #575757;
  --soft-gray: #ffffff;
  --tamu-maroon: #3c0000;
  --tamu-maroon-light: #5a0000;
  background: #ffffff;
}

body.a11y-high-contrast .home-hero::before,
body.a11y-high-contrast .page-hero::before,
body.a11y-high-contrast .topic-header::before {
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.94), rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.46));
}

body.a11y-high-contrast .circularity-panel,
body.a11y-high-contrast .research-panel,
body.a11y-high-contrast .yin-yang-label {
  background: rgba(0, 0, 0, 0.86);
}

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

a {
  color: var(--tamu-maroon);
}

a:hover,
a:focus {
  color: var(--tamu-maroon-light);
}

a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

main a:not(.btn):not(.home-hero__button):not(.scroll-indicator),
.lab-footer a {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.skip-link {
  position: fixed;
  top: -48px;
  left: 16px;
  z-index: 1000;
  padding: 10px 14px;
  background: var(--tamu-maroon);
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
}

.skip-link:focus {
  top: 12px;
}

.accessibility-widget {
  position: fixed;
  bottom: 18px;
  left: 18px;
  z-index: 990;
  display: grid;
  gap: 10px;
  justify-items: start;
  font-family: "Work Sans", Arial, sans-serif;
}

.accessibility-widget__toggle {
  min-height: 50px;
  padding: 12px 16px;
  border: 2px solid var(--white);
  border-radius: 999px;
  background: var(--tamu-maroon);
  color: var(--white);
  font-weight: 800;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.26);
  cursor: pointer;
}

.accessibility-widget__toggle:hover,
.accessibility-widget__toggle:focus {
  background: var(--tamu-maroon-dark);
  color: var(--white);
}

.accessibility-widget__panel {
  width: min(360px, calc(100vw - 36px));
  max-height: min(72vh, 560px);
  overflow-y: auto;
  padding: 18px;
  border: 2px solid var(--tamu-maroon);
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 22px 52px rgba(0, 0, 0, 0.24);
}

.accessibility-widget__header {
  display: flex;
  gap: 16px;
  align-items: start;
  justify-content: space-between;
  margin-bottom: 14px;
}

.accessibility-widget__header h2 {
  margin: 0;
  color: var(--tamu-maroon);
  font-size: 1.12rem;
  line-height: 1.2;
}

.accessibility-widget__close,
.accessibility-widget__controls button {
  min-height: 44px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  font-family: inherit;
  font-weight: 800;
  cursor: pointer;
}

.accessibility-widget__close {
  padding: 8px 10px;
}

.accessibility-widget__controls {
  display: grid;
  gap: 8px;
}

.accessibility-widget__controls button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  text-align: left;
}

.accessibility-widget__controls button:hover,
.accessibility-widget__controls button:focus,
.accessibility-widget__close:hover,
.accessibility-widget__close:focus {
  border-color: var(--tamu-maroon);
  color: var(--tamu-maroon);
}

.accessibility-widget__controls button[aria-pressed="true"] {
  border-color: var(--tamu-maroon);
  background: var(--tamu-maroon);
  color: var(--white);
}

.accessibility-widget__controls button[aria-pressed]::after {
  content: "Off";
  margin-left: 16px;
  font-size: 0.78rem;
  text-transform: uppercase;
}

.accessibility-widget__controls button[aria-pressed="true"]::after {
  content: "On";
}

.accessibility-widget__note {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

[hidden] {
  display: none !important;
}

.lab-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  box-shadow: 0 1px 18px rgba(0, 0, 0, 0.08);
}

.lab-header .site-header__identity {
  gap: 20px;
  padding-top: 14px;
  padding-bottom: 14px;
}

.lab-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  color: var(--ink);
}

.lab-brand img {
  width: 208px;
  min-width: 160px;
  height: auto;
}

.lab-brand__text {
  display: grid;
  gap: 2px;
}

.lab-brand__name {
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.18rem;
  font-weight: 800;
  line-height: 1.2;
}

.lab-brand__unit {
  color: var(--muted);
  font-size: 0.92rem;
}

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  min-height: 44px;
  border: 2px solid var(--tamu-maroon);
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  cursor: pointer;
}

.lab-nav {
  background: var(--tamu-maroon);
  border-top: 1px solid var(--tamu-maroon);
}

.lab-nav .menu {
  justify-content: center;
}

.lab-header .lab-nav .menu-item a {
  min-height: 48px;
  color: var(--white) !important;
}

.lab-header .lab-nav .menu-item a:hover,
.lab-header .lab-nav .menu-item a:focus {
  color: var(--white) !important;
}

.lab-header .lab-nav svg {
  color: var(--white) !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.lab-header .lab-nav a[aria-current="page"] {
  color: var(--white) !important;
  box-shadow: inset 0 -3px var(--white);
}

.lab-header .lab-nav a[data-current-section="true"] {
  box-shadow: inset 0 -3px rgba(255, 255, 255, 0.72);
}

.menu-item--has-dropdown {
  position: relative;
}

.research-submenu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 110;
  display: none;
  width: min(420px, 90vw);
  margin: 0;
  padding: 8px 0;
  background: var(--tamu-maroon);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22);
  list-style: none;
}

.menu-item--has-dropdown:hover .research-submenu,
.menu-item--has-dropdown:focus-within .research-submenu,
.menu-item--has-dropdown.is-submenu-open .research-submenu,
.menu-item--has-dropdown > a[aria-expanded="true"] + .research-submenu {
  display: block;
}

.lab-header .lab-nav .research-submenu a {
  min-height: auto;
  padding: 12px 18px;
  color: var(--white) !important;
  font-size: 0.94rem;
  line-height: 1.28;
  text-align: left;
}

.lab-header .lab-nav .research-submenu a:hover,
.lab-header .lab-nav .research-submenu a:focus {
  background: var(--tamu-maroon-dark);
  color: var(--white) !important;
}

.home-hero {
  position: relative;
  display: grid;
  min-height: 100vh;
  overflow: hidden;
  color: var(--white);
  background:
    linear-gradient(90deg, rgba(34, 0, 0, 0.84), rgba(0, 0, 0, 0.32)),
    url("photos/research/Complexity%20Background.jpg") center / cover no-repeat fixed;
}

.home-hero::before,
.page-hero::before,
.topic-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(38, 0, 0, 0.86), rgba(80, 0, 0, 0.5), rgba(0, 0, 0, 0.2));
  pointer-events: none;
}

.hero-video-rotator,
.hero-video {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.4s ease-in-out;
}

.hero-video.is-active {
  opacity: 1;
}

.home-hero__content {
  position: relative;
  z-index: 2;
  align-self: center;
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 96px 24px 128px;
}

.home-hero h1 {
  max-width: 920px;
  margin: 0;
  color: var(--white);
  font-family: "Oswald", "Work Sans", Arial, sans-serif;
  font-size: 4.6rem;
  font-weight: 500;
  line-height: 1.03;
  text-transform: uppercase;
}

.home-hero p {
  max-width: 720px;
  margin: 22px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.35rem;
}

.home-hero__button {
  margin-top: 34px;
  border-color: rgba(255, 255, 255, 0.92);
  background: var(--tamu-maroon);
  color: var(--white);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.3);
}

.home-hero__button:hover,
.home-hero__button:focus {
  border-color: var(--white);
  background: var(--white);
  color: var(--tamu-maroon);
}

.scroll-indicator {
  position: absolute;
  left: 50%;
  bottom: 34px;
  z-index: 2;
  width: 34px;
  height: 34px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 3px solid rgba(255, 255, 255, 0.78);
  border-bottom: 3px solid rgba(255, 255, 255, 0.78);
  animation: drift-down 1.7s ease-in-out infinite;
}

@keyframes drift-down {
  0%,
  100% {
    translate: 0 0;
  }

  50% {
    translate: 8px 8px;
  }
}

.research-scroll {
  --research-serif: "Lora", Georgia, "Times New Roman", serif;
  --research-sans: "Oswald", "Work Sans", Arial, sans-serif;
  position: relative;
  overflow: visible;
  background: #030303;
  color: var(--white);
  isolation: isolate;
}

.research-scroll__heading {
  position: absolute;
  top: clamp(28px, 6vh, 72px);
  left: clamp(20px, 6vw, 92px);
  z-index: 4;
  width: min(720px, calc(100% - 40px));
  pointer-events: none;
}

.research-scroll__kicker,
.research-panel__chapter {
  display: block;
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.72);
  font-family: var(--research-sans);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.research-scroll__heading h2 {
  margin: 0;
  color: var(--white);
  font-family: var(--research-serif);
  font-size: clamp(2.4rem, 5vw, 5.75rem);
  font-weight: 700;
  line-height: 0.98;
  text-shadow: 0 10px 38px rgba(0, 0, 0, 0.48);
}

.research-chapter {
  position: relative;
  min-height: 170vh;
  background: #030303;
}

.research-chapter--climax {
  min-height: 180vh;
}

.DisplayContainerHeight,
.research-chapter__stage {
  height: 100vh;
  overflow: hidden;
}

.research-chapter__stage {
  position: sticky;
  top: 0;
  z-index: 0;
}

.PositionSticky {
  position: sticky;
  top: 0;
}

.BackgroundScrollmation {
  top: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #000;
  opacity: var(--chapter-media-opacity, 1);
  transition: opacity 0.6s ease-in-out;
}

.BackgroundScrollmation--fadeSlow .BackgroundScrollmationItem {
  transition: opacity 0.6s ease-in-out;
}

.BackgroundScrollmation[data-attach="before"] {
  position: absolute;
  left: 0;
}

.BackgroundScrollmation[data-attach="during"] {
  position: sticky;
  left: 0;
}

.BackgroundScrollmation[data-attach="after"] {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
}

.BackgroundScrollmation::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.22) 54%, rgba(0, 0, 0, 0.58)),
    linear-gradient(0deg, rgba(0, 0, 0, 0.36), transparent 28%, rgba(0, 0, 0, 0.34));
  content: "";
  pointer-events: none;
}

.BackgroundScrollmationItem {
  position: absolute !important;
  inset: 0;
  display: none;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.BackgroundScrollmationItem--isPrimed {
  display: block;
}

.BackgroundScrollmationItem--isActive {
  opacity: 1;
}

.BackgroundScrollmationItem img,
.BackgroundScrollmationItem video,
.research-video,
.research-video__fallback {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.research-video__fallback {
  display: none;
}

.research-video.is-unavailable {
  display: none;
}

.research-video.is-unavailable + .research-video__fallback {
  display: block;
}

.MediaRenderer__textBlocks {
  position: relative;
  z-index: 2;
  margin-top: -100vh;
  pointer-events: none;
}

.MediaRenderer__textBlocksInner {
  position: unset !important;
  min-height: 80vh;
}

.MediaRenderer__textBlocksInner:first-child {
  min-height: 40vh;
}

.MediaRenderer__textBlocksInner:last-child {
  min-height: 92vh;
}

.MediaRenderer__textBlocksInner:first-child > div {
  padding-top: 62vh;
}

.MediaRenderer__textBlocksInner > div {
  min-height: 78vh;
  padding-top: 88vh;
  padding-bottom: 18vh;
}

.Theme-Layer-BodyText {
  pointer-events: all;
}

.research-panel {
  width: min(520px, calc(100vw - 48px));
  margin-right: clamp(24px, 8vw, 118px);
  margin-left: auto;
  padding: clamp(24px, 3vw, 38px);
  background: rgba(0, 0, 0, 0.55);
  border-left: 5px solid rgba(255, 255, 255, 0.7);
  color: var(--white);
  font-family: var(--research-serif);
  box-shadow: 0 24px 74px rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(4px);
  transition: opacity 220ms linear, transform 220ms ease-out;
}

.research-panel h3 {
  margin: 0;
  color: var(--white);
  font-family: var(--research-serif);
  font-size: clamp(2.2rem, 3.4vw, 4.45rem);
  font-weight: 700;
  line-height: 0.98;
}

.research-panel p {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.1rem;
  line-height: 1.72;
}

.research-panel__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 0 20px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  object-fit: cover;
}

.research-panel__chapter {
  margin-bottom: 16px;
  color: rgba(255, 255, 255, 0.76);
  font-family: var(--research-sans);
}

.research-panel--wide {
  width: min(650px, calc(100vw - 48px));
}

.research-audio-toggle {
  position: fixed;
  right: clamp(18px, 3vw, 42px);
  bottom: clamp(18px, 3vw, 38px);
  z-index: 5;
  display: none;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.46);
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  cursor: pointer;
  backdrop-filter: blur(6px);
}

.research-chapter--climax[data-attach="during"] .research-audio-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.research-panel--cycle {
  width: min(760px, calc(100vw - 48px));
  margin-right: auto;
  margin-left: auto;
  padding: clamp(18px, 3vw, 36px);
  border-left: 0;
  background: rgba(0, 0, 0, 0.38);
  text-align: center;
}

.research-panel--cycle figcaption {
  margin-top: 22px;
  color: var(--white);
  font-family: var(--research-serif);
  font-size: clamp(1.4rem, 2.2vw, 2.45rem);
  font-weight: 700;
}

.cycle-diagram {
  width: min(100%, 520px);
  max-height: min(48vh, 520px);
  height: auto;
  color: rgba(255, 255, 255, 0.9);
  overflow: visible;
}

.cycle-diagram marker path {
  fill: rgba(255, 255, 255, 0.88);
}

.cycle-arrow {
  fill: none;
  stroke: rgba(255, 255, 255, 0.74);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-dasharray: 420;
  stroke-dashoffset: 420;
  opacity: 0.15;
  transition: stroke-dashoffset 700ms ease, opacity 500ms ease;
}

.cycle-node circle,
.cycle-center {
  fill: rgba(255, 255, 255, 0.08);
  stroke: rgba(255, 255, 255, 0.82);
  stroke-width: 3;
  stroke-dasharray: 540;
  stroke-dashoffset: 540;
  transition: stroke-dashoffset 700ms ease, fill 500ms ease, opacity 500ms ease;
}

.cycle-node text,
.cycle-center-label {
  fill: rgba(255, 255, 255, 0.94);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
  opacity: 0;
  text-transform: uppercase;
  transition: opacity 500ms ease;
}

.cycle-center-label {
  font-size: 31px;
}

.cycle-part.is-drawn.cycle-arrow {
  stroke-dashoffset: 0;
  opacity: 1;
}

.cycle-part.is-drawn circle,
.cycle-part.is-drawn.cycle-center {
  fill: rgba(255, 255, 255, 0.14);
  stroke-dashoffset: 0;
}

.cycle-part.is-drawn text,
.cycle-center-label.is-drawn {
  opacity: 1;
}

.research-closing-strip {
  position: relative;
  z-index: 3;
  background: var(--tamu-maroon);
}

.research-closing-strip a {
  display: flex;
  min-height: 150px;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.35rem, 2.8vw, 3rem);
  font-weight: 800;
  line-height: 1.12;
  text-align: center;
  text-decoration: none;
}

.research-closing-strip a:hover,
.research-closing-strip a:focus {
  color: var(--white);
  background: var(--tamu-maroon-dark);
}

.circularity-scroll {
  --circularity-cream: #f7f2e8;
  --circularity-ink: #1b1714;
  --circularity-shadow: rgba(0, 0, 0, 0.34);
  position: relative;
  overflow: clip;
  background:
    radial-gradient(circle at 14% 14%, rgba(179, 139, 45, 0.22), transparent 32rem),
    radial-gradient(circle at 82% 20%, rgba(63, 111, 83, 0.24), transparent 28rem),
    linear-gradient(135deg, #120c0b, #241311 48%, #090807);
  color: var(--white);
}

.circularity-scroll::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(9, 4, 4, 0.56), rgba(9, 4, 4, 0.2) 46%, rgba(9, 4, 4, 0.56)),
    linear-gradient(0deg, rgba(0, 0, 0, 0.34), rgba(0, 0, 0, 0.04) 48%, rgba(0, 0, 0, 0.36));
  content: "";
  pointer-events: none;
}

.circularity-backgrounds {
  position: sticky;
  top: 0;
  z-index: 0;
  height: 100vh;
  margin-bottom: -100vh;
  overflow: hidden;
  pointer-events: none;
}

.circularity-backgrounds__sticky {
  position: relative;
  height: 100%;
  overflow: hidden;
}

.circularity-backgrounds img,
.circularity-backgrounds video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 0.6s ease-in-out, transform 1.2s ease;
}

.circularity-backgrounds img.is-active,
.circularity-backgrounds video.is-active {
  opacity: 0.78;
  transform: scale(1);
}

.circularity-intro {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 18px;
  padding: clamp(58px, 8vw, 104px) 24px 28px;
}

.circularity-intro .eyebrow,
.circularity-intro h1,
.circularity-intro p {
  color: var(--white);
}

.circularity-intro h1 {
  max-width: 980px;
  margin: 0;
  font-family: "Oswald", "Work Sans", Arial, sans-serif;
  font-size: clamp(2.65rem, 6vw, 6.3rem);
  font-weight: 500;
  line-height: 0.98;
  text-transform: uppercase;
}

.circularity-intro p {
  max-width: 920px;
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(1.08rem, 1.6vw, 1.32rem);
}

.circularity-shell {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(520px, 1.08fr) minmax(340px, 0.78fr);
  gap: clamp(36px, 5vw, 76px);
  align-items: start;
  padding: 22px 24px clamp(62px, 8vw, 118px);
}

.circularity-visual-sticky {
  position: sticky;
  top: 118px;
  min-height: calc(100vh - 136px);
  display: grid;
  align-items: center;
}

.circularity-visual {
  display: grid;
  gap: 18px;
  width: 100%;
}

.circularity-orbit {
  --node-distance: clamp(190px, 22vw, 292px);
  position: relative;
  width: min(100%, 680px);
  aspect-ratio: 1;
  margin: 0 auto;
}

.circularity-loop {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background:
    conic-gradient(from var(--circularity-rotation, 0deg), rgba(179, 139, 45, 0.95), rgba(255, 255, 255, 0.28), rgba(63, 111, 83, 0.92), rgba(255, 255, 255, 0.28), rgba(179, 139, 45, 0.95));
  opacity: 0.76;
  -webkit-mask: radial-gradient(circle, transparent 57%, #000 58% 61%, transparent 62%);
  mask: radial-gradient(circle, transparent 57%, #000 58% 61%, transparent 62%);
}

.circularity-loop::after {
  position: absolute;
  inset: 1.2%;
  border: 1px dashed rgba(255, 255, 255, 0.28);
  border-radius: inherit;
  content: "";
}

.circularity-node {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: grid;
  width: clamp(132px, 14vw, 190px);
  min-height: 62px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(20, 13, 11, 0.72);
  color: rgba(255, 255, 255, 0.84);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(0.72rem, 1vw, 0.88rem);
  line-height: 1.18;
  text-align: center;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(8px);
  transform: translate(-50%, -50%) rotate(var(--node-angle)) translateY(calc(-1 * var(--node-distance))) rotate(var(--node-counter-angle));
  transition: border-color 240ms ease, background 240ms ease, color 240ms ease, transform 240ms ease, box-shadow 240ms ease;
}

.circularity-node.is-active {
  border-color: rgba(179, 139, 45, 0.96);
  background: var(--circularity-cream);
  color: var(--tamu-maroon);
  transform: translate(-50%, -50%) rotate(var(--node-angle)) translateY(calc(-1 * var(--node-distance))) rotate(var(--node-counter-angle)) scale(1.14);
  box-shadow: 0 24px 52px rgba(0, 0, 0, 0.4), 0 0 0 4px rgba(179, 139, 45, 0.18);
}

.circularity-node--feedstock {
  --node-angle: 0deg;
  --node-counter-angle: 0deg;
}

.circularity-node--natural {
  --node-angle: 90deg;
  --node-counter-angle: -90deg;
}

.circularity-node--monomer {
  --node-angle: 30deg;
  --node-counter-angle: -30deg;
}

.circularity-node--materials {
  --node-angle: 180deg;
  --node-counter-angle: -180deg;
}

.circularity-node--performance {
  --node-angle: 90deg;
  --node-counter-angle: -90deg;
}

.circularity-node--recycling {
  --node-angle: 270deg;
  --node-counter-angle: -270deg;
}

.circularity-node--degradation {
  --node-angle: 150deg;
  --node-counter-angle: -150deg;
}

.circularity-node--insect {
  --node-angle: 288deg;
  --node-counter-angle: -288deg;
}

.yin-yang-core {
  position: absolute;
  inset: 24%;
  z-index: 2;
  overflow: hidden;
  border: 6px solid rgba(255, 255, 255, 0.72);
  border-radius: 50%;
  background: linear-gradient(90deg, var(--tamu-maroon) 50%, var(--circularity-cream) 50%);
  box-shadow: 0 28px 70px var(--circularity-shadow), inset 0 0 0 1px rgba(80, 0, 0, 0.22);
  transition: transform 320ms ease, box-shadow 320ms ease;
}

.yin-yang-core::before,
.yin-yang-core::after {
  position: absolute;
  left: 25%;
  z-index: 1;
  width: 50%;
  height: 50%;
  border-radius: 50%;
  content: "";
}

.yin-yang-core::before {
  top: 0;
  background: var(--circularity-cream);
}

.yin-yang-core::after {
  bottom: 0;
  background: var(--tamu-maroon);
}

.circularity-scroll[data-active-step="circularity"] .yin-yang-core,
.yin-yang-core.is-active {
  transform: scale(1.05);
  box-shadow: 0 34px 84px rgba(179, 139, 45, 0.28), 0 28px 70px var(--circularity-shadow);
}

.yin-yang-dot {
  position: absolute;
  left: 45%;
  z-index: 2;
  width: 10%;
  height: 10%;
  border-radius: 50%;
}

.yin-yang-dot--light {
  top: 20%;
  background: var(--tamu-maroon);
}

.yin-yang-dot--dark {
  bottom: 20%;
  background: var(--circularity-cream);
}

.yin-yang-label {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 3;
  display: grid;
  width: min(78%, 260px);
  gap: 4px;
  transform: translate(-50%, -50%);
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  background: rgba(0, 0, 0, 0.54);
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  line-height: 1.15;
  text-align: center;
  backdrop-filter: blur(7px);
  transition: transform 240ms ease, background 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

.yin-yang-core.is-active .yin-yang-label {
  transform: translate(-50%, -50%) scale(1.08);
  border-color: rgba(179, 139, 45, 0.65);
  background: rgba(80, 0, 0, 0.72);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.3);
}

.yin-yang-label strong {
  font-size: clamp(1.05rem, 1.9vw, 1.55rem);
  text-transform: uppercase;
}

.yin-yang-label span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.78rem;
}

.circularity-molecule-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.circularity-molecule-grid figure {
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.08);
}

.circularity-molecule-grid img {
  width: 100%;
  height: 98px;
  object-fit: cover;
}

.circularity-molecule-grid figcaption {
  padding: 8px 9px;
  color: rgba(255, 255, 255, 0.78);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.76rem;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}

.circularity-panels {
  display: grid;
  gap: 34vh;
  padding: 12vh 0 18vh;
}

.circularity-panel {
  display: grid;
  gap: 18px;
  min-height: 62vh;
  align-content: center;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 6px solid rgba(179, 139, 45, 0.88);
  background: rgba(9, 8, 7, 0.56);
  color: var(--white);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(10px);
  opacity: 0.56;
  transform: translateY(10px);
  transition: opacity 240ms ease, transform 240ms ease, border-color 240ms ease, background 240ms ease;
}

.circularity-panel.is-active {
  border-left-color: var(--white);
  background: rgba(80, 0, 0, 0.66);
  opacity: 1;
  transform: translateY(0);
}

.circularity-panel__kicker {
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
}

.circularity-panel h2,
.circularity-panel h3 {
  margin: 0;
  color: var(--white);
  font-family: "Oswald", "Work Sans", Arial, sans-serif;
  font-size: clamp(2rem, 4vw, 3.8rem);
  font-weight: 500;
  line-height: 1.02;
  text-transform: uppercase;
}

.circularity-panel p,
.circularity-panel li {
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.04rem;
  line-height: 1.68;
}

.circularity-panel p,
.circularity-panel ul {
  margin: 0;
}

.circularity-panel ul {
  padding-left: 1.15rem;
}

.circularity-panel li + li {
  margin-top: 8px;
}

.concept-chip-grid,
.circularity-path-list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.concept-chip-grid span,
.circularity-path-list span,
.circularity-callout {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.86rem;
  font-weight: 800;
}

.circularity-callout {
  display: block;
  border-left: 4px solid var(--gold);
  background: rgba(179, 139, 45, 0.18);
}

.circularity-panel--feature {
  border-left-color: var(--white);
  background: linear-gradient(135deg, rgba(80, 0, 0, 0.86), rgba(17, 12, 10, 0.76));
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }

  html {
    scroll-behavior: auto;
  }

  .BackgroundScrollmation,
  .BackgroundScrollmation--fadeSlow .BackgroundScrollmationItem,
  .research-panel,
  .cycle-arrow,
  .cycle-node circle,
  .cycle-center,
  .cycle-node text,
  .cycle-center-label,
  .circularity-node,
  .yin-yang-core,
  .circularity-panel,
  .hero-video,
  .scroll-indicator,
  .circularity-backgrounds img,
  .circularity-backgrounds video {
    animation: none;
    transition: none;
  }
}

body.a11y-reduced-motion *,
body.a11y-reduced-motion *::before,
body.a11y-reduced-motion *::after {
  scroll-behavior: auto !important;
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001ms !important;
}

body.a11y-reduced-motion .scroll-indicator {
  animation: none;
}

.section {
  padding: 88px 0;
}

.section--tight {
  padding: 60px 0;
}

.section--light {
  background: var(--soft-gray);
}

.section--maroon {
  background: var(--tamu-maroon);
  color: var(--white);
}

.section-heading {
  max-width: 820px;
  margin-bottom: 34px;
}

.eyebrow {
  display: block;
  margin-bottom: 10px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.section--maroon .eyebrow {
  color: rgba(255, 255, 255, 0.76);
}

.section-title,
.page-title {
  margin: 0;
  color: var(--tamu-maroon);
  font-family: "Oswald", "Work Sans", Arial, sans-serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.12;
  text-transform: uppercase;
}

.section--maroon .section-title,
.section--maroon p {
  color: var(--white);
}

.lead {
  max-width: 850px;
  color: var(--muted);
  font-size: 1.16rem;
}

.section--maroon .lead {
  color: rgba(255, 255, 255, 0.88);
}

.split-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(320px, 0.98fr);
  gap: 42px;
  align-items: center;
}

.about-copy {
  border-left: 6px solid var(--tamu-maroon);
  padding-left: 26px;
}

.about-copy p {
  margin-top: 0;
}

.about-photo {
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
}

.about-photo img {
  width: 100%;
  height: 540px;
  object-fit: contain;
  object-position: center top;
  background: var(--soft-gray);
}

.caption {
  margin: 0;
  padding: 14px 18px;
  color: var(--muted);
  font-size: 0.92rem;
}

.pi-photo-credentials {
  padding: 0 18px 18px;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.pi-photo-credentials p {
  margin: 8px 0 0;
}

.pi-photo-credentials p:first-child {
  margin-top: 0;
}

.pi-photo-credentials__name {
  color: var(--ink);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
}

.feature-grid,
.people-grid,
.research-grid,
.publication-grid,
.contact-grid,
.news-list {
  display: grid;
  gap: 24px;
}

.feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.people-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.publication-grid {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 2.1fr);
  gap: 36px;
}

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

.feature-card,
.person-card,
.research-card,
.publication-card,
.contact-card,
.news-item {
  min-width: 0;
  background: var(--white);
  border: 1px solid var(--line);
}

.feature-card,
.research-card,
.publication-card,
.contact-card,
.news-item {
  padding: 26px;
}

.feature-card {
  border-top: 6px solid var(--tamu-maroon);
}

.research-card {
  border-top: 6px solid var(--green);
}

.research-card:nth-child(2) {
  border-top-color: var(--blue);
}

.research-card:nth-child(3) {
  border-top-color: var(--gold);
}

.research-card:nth-child(4) {
  border-top-color: var(--tamu-maroon);
}

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

.research-topic-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.88fr);
  min-height: 100%;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
}

.research-topic-card--image-first {
  grid-template-columns: minmax(220px, 0.88fr) minmax(0, 1fr);
}

.research-topic-card--image-first .research-topic-card__media {
  order: -1;
}

.research-topic-card__content {
  display: grid;
  gap: 18px;
  align-content: center;
  padding: clamp(24px, 3vw, 38px);
}

.research-topic-card__content h2 {
  margin: 0;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.42rem, 2vw, 2rem);
  font-weight: 800;
  line-height: 1.12;
}

.research-topic-card__content p {
  margin: 0;
}

.research-topic-card__media img {
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
}

.funding-section {
  border-top: 1px solid var(--line);
}

.funding-logos {
  margin: 0 0 32px;
}

.funding-logos img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 900px;
}

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

.funding-card {
  padding: 26px;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 6px solid var(--tamu-maroon);
}

.funding-card h3 {
  margin: 0 0 10px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.funding-card p {
  margin: 0;
}

.research-tabs {
  display: grid;
  grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.28fr);
  gap: 28px;
  align-items: start;
}

.research-tabs__list {
  display: grid;
  gap: 10px;
}

.research-tabs__tab {
  width: 100%;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-left: 5px solid transparent;
  background: var(--white);
  color: var(--ink);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  line-height: 1.22;
  text-align: left;
  cursor: pointer;
}

.research-tabs__tab:hover,
.research-tabs__tab:focus {
  border-left-color: var(--tamu-maroon-light);
  color: var(--tamu-maroon);
}

.research-tabs__tab.is-active {
  border-left-color: var(--tamu-maroon);
  background: var(--tamu-maroon);
  color: var(--white);
}

.research-tabs__panel {
  min-height: 100%;
  padding: clamp(26px, 4vw, 46px);
  background: var(--white);
  border: 1px solid var(--line);
  border-top: 6px solid var(--tamu-maroon);
}

.research-tabs__panel h3 {
  margin: 0 0 16px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.7rem, 3vw, 2.55rem);
  font-weight: 800;
  line-height: 1.12;
}

.research-tabs__panel p {
  max-width: 860px;
  margin: 0;
  color: var(--ink);
  font-size: 1.1rem;
}

.research-tabs__panel ul {
  margin: 24px 0 0;
  padding-left: 1.2rem;
}

.research-tabs__panel li + li {
  margin-top: 8px;
}

.feature-card h3,
.research-card h2,
.research-card h3,
.publication-card h2,
.contact-card h2,
.contact-card h3,
.news-item h2,
.news-item h3,
.person-card h3 {
  margin: 0 0 10px;
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  line-height: 1.22;
}

.feature-card p,
.research-card p,
.publication-card p,
.contact-card p,
.news-item p,
.person-card p {
  margin: 0;
}

.news-preview .card {
  min-height: 100%;
}

.news-preview .card__content {
  display: grid;
  gap: 14px;
}

.news-date,
.publication-meta,
.person-meta {
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 700;
}

.research-card .person-meta {
  margin-top: 10px;
  line-height: 1.55;
}

.news-preview .card__image img {
  width: 100%;
  height: 220px;
  object-fit: contain;
  object-position: center;
  background: var(--soft-gray);
}

.cta-strip {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

.cta-strip .btn {
  min-width: 190px;
  justify-content: center;
  border-color: var(--white);
}

.page-hero {
  position: relative;
  display: grid;
  min-height: clamp(290px, 34vw, 440px);
  align-items: center;
  overflow: hidden;
  background-color: var(--tamu-maroon);
  background-image:
    linear-gradient(90deg, rgba(48, 0, 0, 0.88), rgba(80, 0, 0, 0.52), rgba(0, 0, 0, 0.18)),
    var(--page-hero-image, radial-gradient(circle at 75% 30%, #8d5555 0%, #500000 42%, #250000 100%));
  background-position: var(--page-hero-position, center);
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--white);
}

@media (min-width: 761px) {
  .page-hero--people {
    min-height: clamp(440px, 44vw, 620px);
  }
}

.page-hero__inner {
  position: relative;
  z-index: 2;
  padding: clamp(74px, 10vw, 132px) 24px;
}

.page-hero .page-title,
.page-hero .lead,
.page-hero .eyebrow {
  color: var(--white);
}

.page-hero .lead {
  max-width: 790px;
  margin-bottom: 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.32);
}

.content-block {
  max-width: 900px;
}

.content-block p:first-child {
  margin-top: 0;
}

.media-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: 32px;
  align-items: center;
}

.media-panel--top {
  align-items: start;
}

.media-panel img {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--white);
}

.topic-header {
  position: relative;
  overflow: hidden;
  background-color: var(--tamu-maroon);
  background-image:
    linear-gradient(90deg, rgba(48, 0, 0, 0.9), rgba(80, 0, 0, 0.58), rgba(0, 0, 0, 0.18)),
    var(--topic-hero-image, radial-gradient(circle at 75% 30%, #8d5555 0%, #500000 42%, #250000 100%));
  background-position: var(--topic-hero-position, center);
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--white);
}

.topic-header__inner {
  position: relative;
  z-index: 2;
  padding: clamp(64px, 9vw, 116px) 24px;
}

.topic-header h1 {
  margin: 0;
  color: var(--white);
  font-family: "Oswald", "Work Sans", Arial, sans-serif;
  font-size: clamp(2.2rem, 4.5vw, 4.25rem);
  font-weight: 500;
  line-height: 1.05;
  text-transform: uppercase;
}

.topic-header .lead {
  color: rgba(255, 255, 255, 0.86);
}

.topic-back {
  display: inline-flex;
  margin-bottom: 18px;
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  text-decoration: none;
}

.topic-back:hover,
.topic-back:focus {
  color: rgba(255, 255, 255, 0.78);
}

.topic-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.92fr);
  gap: 42px;
  align-items: center;
}

.topic-layout--image-first {
  grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1fr);
}

.topic-layout--image-first .topic-media {
  order: -1;
}

.topic-copy {
  border-left: 6px solid var(--tamu-maroon);
  padding-left: 26px;
}

.topic-copy h2 {
  margin-top: 0;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.7rem, 3vw, 2.55rem);
  font-weight: 800;
  line-height: 1.12;
}

.topic-copy ul {
  margin: 22px 0 0;
  padding-left: 1.2rem;
}

.topic-media {
  margin: 0;
}

.topic-media img {
  width: 100%;
  min-height: 420px;
  object-fit: cover;
  border: 1px solid var(--line);
  background: var(--white);
}

.next-topic {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  margin-top: 44px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}

.next-topic .btn:not(.btn--primary) {
  background: transparent;
  color: var(--tamu-maroon);
  border: 1px solid var(--tamu-maroon);
}

.person-card {
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: 245px;
  overflow: hidden;
}

.person-card__avatar {
  display: grid;
  min-height: 104px;
  place-items: center;
  background: linear-gradient(135deg, var(--tamu-maroon), var(--blue));
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 2rem;
  font-weight: 900;
}

.person-card__photo {
  margin: 0;
  background: var(--soft-gray);
}

.person-card__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  object-position: center top;
  background: var(--soft-gray);
}

.person-card__content {
  padding: 18px;
}

.topic-team-grid,
.instrument-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.topic-member-card,
.instrument-card {
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.09);
}

.topic-member-card figure,
.instrument-card figure {
  margin: 0;
  background: var(--soft-gray);
}

.topic-member-card img,
.instrument-card img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: contain;
  object-position: center top;
  background: var(--soft-gray);
}

.instrument-card img {
  object-fit: contain;
  padding: 14px;
}

.instrument-card__placeholder {
  display: grid;
  min-height: 240px;
  place-items: center;
  padding: 24px;
  background: linear-gradient(135deg, var(--tamu-maroon), #250000);
  color: var(--white);
  font-family: "Oswald", "Work Sans", Arial, sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
}

.notice {
  margin: 0 0 24px;
  padding: 18px 20px;
  border-left: 5px solid var(--tamu-maroon);
  background: var(--soft-gray);
}

.notice p:last-child {
  margin-bottom: 0;
}

.notice--warning {
  border-left-color: #d6a800;
  background: #fff8d8;
}

.topic-member-card__content,
.instrument-card__content {
  padding: 18px;
}

.topic-member-card h3,
.instrument-card h3 {
  margin: 0 0 8px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
}

.topic-member-card .person-role,
.topic-member-card .person-meta {
  margin: 0;
}

.topic-member-card .person-role {
  margin-bottom: 10px;
}

.instrument-card p {
  margin: 0;
  color: var(--ink);
  font-size: 0.94rem;
  line-height: 1.55;
}

.people-switcher-section {
  padding: 22px 0;
  background: var(--white);
  border-bottom: 1px solid var(--line);
}

.people-section-nav,
.lsbi-section-nav,
.additional-info-nav {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.people-section-nav a,
.lsbi-section-nav a,
.additional-info-nav a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 10px 15px;
  border: 1px solid var(--line);
  background: var(--soft-gray);
  color: var(--ink);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}

.people-section-nav a:hover,
.people-section-nav a:focus,
.people-section-nav a[aria-current="page"],
.lsbi-section-nav a:hover,
.lsbi-section-nav a:focus,
.lsbi-section-nav a[aria-current="page"],
.additional-info-nav a:hover,
.additional-info-nav a:focus,
.additional-info-nav a[aria-current="page"] {
  border-color: var(--tamu-maroon);
  background: var(--tamu-maroon);
  color: var(--white);
}

.person-role {
  margin: 8px 0 0;
  font-weight: 700;
}

.member-facts {
  display: grid;
  gap: 10px;
  margin: 16px 0 0;
}

.member-facts div {
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.member-facts dt {
  margin: 0;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.member-facts dd {
  margin: 3px 0 0;
  color: var(--ink);
  line-height: 1.45;
}

.person-card ul,
.publication-card ul,
.news-item ul,
.research-card ul {
  margin: 12px 0 0;
  padding-left: 1.2rem;
}

.pi-appointments,
.award-list {
  margin: 16px 0 0;
  padding-left: 1.2rem;
}

.award-list {
  display: grid;
  gap: 8px;
}

.content-block h3 {
  margin: 28px 0 0;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.publication-filter-bar {
  background: var(--soft-gray);
  border-bottom: 1px solid var(--line);
}

.publication-filter-bar__track {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(440px, 608px);
  min-height: 58px;
}

.publication-filter-bar__accent {
  background: var(--gold);
}

.publication-filter {
  display: grid;
  grid-template-columns: minmax(180px, 248px) minmax(260px, 360px);
}

.publication-filter select,
.publication-search-field input {
  width: 100%;
  height: 58px;
  border: 0;
  border-left: 1px solid rgba(0, 0, 0, 0.06);
  color: var(--ink);
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 0.96rem;
}

.publication-filter select {
  padding: 0 48px 0 24px;
  background: var(--white);
  cursor: pointer;
}

.publication-search-field {
  position: relative;
  background: #e4e4e4;
}

.publication-search-field input {
  padding: 0 54px 0 24px;
  background: transparent;
}

.publication-search-field span {
  position: absolute;
  top: 50%;
  right: 24px;
  width: 17px;
  height: 17px;
  transform: translateY(-50%);
  border: 2px solid var(--tamu-maroon);
  border-radius: 50%;
  pointer-events: none;
}

.publication-search-field span::after {
  position: absolute;
  right: -6px;
  bottom: -5px;
  width: 8px;
  height: 2px;
  transform: rotate(45deg);
  background: var(--tamu-maroon);
  content: "";
}

.publication-section {
  padding-top: 46px;
}

.publication-browser {
  display: grid;
  gap: 18px;
}

.publication-results {
  margin: 0;
  color: var(--muted);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.publication-empty {
  margin: 0;
  padding: 20px 24px;
  background: var(--soft-gray);
  border-left: 6px solid var(--tamu-maroon);
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.publication-rights-note {
  margin: 0 0 22px;
  padding: 14px 18px;
  border-left: 5px solid var(--tamu-maroon);
  background: var(--soft-gray);
  color: var(--muted);
}

.small-caps {
  font-variant: small-caps;
}

.publication-year {
  position: sticky;
  top: 130px;
  align-self: start;
  padding: 24px;
  background: var(--soft-gray);
  border-left: 6px solid var(--tamu-maroon);
}

.publication-year h2 {
  margin: 0 0 16px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
}

.publication-year__tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(76px, 1fr));
  gap: 8px;
}

.publication-year__tab {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}

.publication-year__tab:hover,
.publication-year__tab:focus {
  border-color: var(--tamu-maroon);
  color: var(--tamu-maroon);
}

.publication-year__tab.is-active {
  border-color: var(--tamu-maroon);
  background: var(--tamu-maroon);
  color: var(--white);
}

.publication-list {
  display: grid;
  gap: 18px;
}

.publication-card {
  border-left: 4px solid var(--line);
}

.publication-panel:not(.is-active) {
  display: none !important;
}

.publication-card strong {
  color: var(--tamu-maroon);
}

.publication-import {
  display: grid;
  gap: 18px;
  font-size: 0.98rem;
}

.publication-import .publication-items {
  display: grid;
  gap: 18px;
  margin: 0;
  padding-left: 1.25rem;
}

.publication-import .publication-items + .publication-items {
  margin-top: 4px;
}

.publication-import li {
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(217, 217, 217, 0.75);
}

.publication-import li::marker {
  color: var(--tamu-maroon);
  font-weight: 800;
}

.publication-import p {
  margin: 0;
}

.publication-figure {
  width: min(var(--publication-image-width, 50%), 100%);
  margin: 16px auto 4px;
  padding: 14px;
  background: var(--soft-gray);
  border: 1px solid var(--line);
}

.publication-figure img {
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.publication-figure > a {
  display: block;
}

.publication-figure--missing {
  width: min(100%, 560px);
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  text-align: center;
}

.news-list {
  grid-template-columns: minmax(0, 1fr);
}

.news-item {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.news-item img {
  width: 100%;
  height: 160px;
  object-fit: contain;
  object-position: center;
  background: var(--soft-gray);
}

.news-item__media {
  min-width: 0;
  margin: 0;
}

.media-credit {
  margin-top: 8px;
  color: var(--gray-700);
  font-size: 0.78rem;
  line-height: 1.4;
}

.source-links {
  margin-top: 12px !important;
  font-size: 0.92rem;
}

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

.external-story-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  background: var(--white);
  border-top: 6px solid var(--tamu-maroon);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.08);
}

.external-story-card img {
  width: 100%;
  height: 190px;
  object-fit: contain;
  object-position: center;
  background: var(--soft-gray);
}

.external-story-card div {
  padding: 20px;
}

.external-story-card h3 {
  margin: 0 0 12px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.16rem;
  font-weight: 800;
  line-height: 1.25;
}

.external-story-card p {
  margin: 0;
}

.external-story-card .news-date {
  margin-bottom: 8px;
}

.contact-card address {
  font-style: normal;
}

.secure-panel {
  display: grid;
  gap: 28px;
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 44px);
  background: var(--white);
  border-top: 8px solid var(--tamu-maroon);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.1);
}

.secure-panel__intro h2,
.secure-content__section h2 {
  margin: 0;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.9rem, 3vw, 2.8rem);
  font-weight: 800;
  line-height: 1.1;
}

.secure-panel__intro p,
.secure-content__section p {
  max-width: 760px;
  margin: 14px 0 0;
}

.secure-form {
  display: grid;
  gap: 10px;
}

.secure-form label {
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.secure-form__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.secure-form input {
  min-height: 48px;
  width: 100%;
  padding: 10px 14px;
  border: 2px solid var(--line);
  color: var(--ink);
  font: inherit;
}

.secure-status {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.secure-status[data-state="correct"] {
  color: var(--green);
  font-weight: 800;
}

.secure-status[data-state="wrong"] {
  color: var(--tamu-maroon);
  font-weight: 800;
}

.guess-game-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 10%, rgba(179, 139, 45, 0.14), transparent 28rem),
    radial-gradient(circle at 92% 38%, rgba(80, 0, 0, 0.1), transparent 32rem),
    var(--soft-gray);
}

.guess-how-to-play {
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  margin-bottom: 38px;
  padding: clamp(26px, 4vw, 46px);
  border-top: 7px solid var(--gold);
  background: var(--white);
  box-shadow: 0 18px 48px rgba(47, 27, 27, 0.1);
}

.guess-game__badge {
  display: inline-flex;
  margin-bottom: 12px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(80, 0, 0, 0.1);
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.guess-how-to-play h2 {
  margin: 0 0 10px;
  color: var(--tamu-maroon);
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1;
}

.guess-how-to-play p {
  max-width: 580px;
  margin: 0;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
}

.guess-how-to-play__steps {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.guess-how-to-play__steps li {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
}

.guess-how-to-play__steps li > span {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  background: var(--tamu-maroon);
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.35rem;
  font-weight: 900;
  box-shadow: 0 7px 0 var(--tamu-maroon-dark);
}

.guess-how-to-play__steps strong,
.guess-how-to-play__steps small {
  display: block;
}

.guess-how-to-play__steps strong {
  color: var(--ink);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.18rem;
}

.guess-how-to-play__steps small {
  color: var(--muted);
  font-size: 0.96rem;
}

.guess-game__shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(80, 0, 0, 0.18);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 24px 64px rgba(49, 23, 23, 0.14);
}

.guess-game__hud {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: linear-gradient(115deg, var(--tamu-maroon-dark), var(--tamu-maroon));
  color: var(--white);
}

.guess-game__hud > div {
  display: grid;
  min-height: 92px;
  align-content: center;
  justify-items: center;
  padding: 13px 18px;
  border-right: 1px solid rgba(255, 255, 255, 0.22);
  text-align: center;
}

.guess-game__hud > div:last-child {
  border-right: 0;
}

.guess-game__hud span {
  color: rgba(255, 255, 255, 0.82);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.guess-game__hud strong,
.guess-game__hud strong span {
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.15rem);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.1;
}

.guess-game__clue-card {
  position: relative;
  z-index: 1;
  max-width: 950px;
  margin: 0 auto;
  padding: clamp(34px, 6vw, 68px) clamp(22px, 6vw, 72px);
  text-align: center;
}

.guess-game__kicker {
  color: var(--gold);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.guess-game__clue-card h2 {
  margin: 4px 0 8px;
  color: var(--tamu-maroon);
  font-size: clamp(2.45rem, 6vw, 4.75rem);
  line-height: 1;
}

.guess-game__prompt {
  margin: 0 auto 22px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
}

.guess-game__progress {
  height: 10px;
  margin: 0 auto 28px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8e3e3;
}

.guess-game__progress span {
  display: block;
  width: 25%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gold), #d9b85f);
  transition: width 0.45s ease;
}

.guess-game__hints {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.guess-game__hints li {
  position: relative;
  padding: 18px 20px 18px 58px;
  border: 1px solid rgba(80, 0, 0, 0.15);
  border-radius: 12px;
  background: linear-gradient(110deg, rgba(80, 0, 0, 0.055), rgba(179, 139, 45, 0.08));
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height: 1.45;
  animation: guess-hint-arrive 0.45s ease both;
}

.guess-game__hints li::before {
  content: "?";
  position: absolute;
  top: 50%;
  left: 17px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: var(--gold);
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 900;
  transform: translateY(-50%);
}

.guess-game__hints strong {
  color: var(--tamu-maroon);
}

.guess-game__feedback {
  min-height: 42px;
  margin: 22px 0 0;
  padding: 10px 14px;
  border-radius: 10px;
  color: var(--ink);
  background: var(--soft-gray);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  font-weight: 800;
}

.guess-game__feedback[data-state="correct"] {
  color: #214e35;
  background: #e6f3ea;
}

.guess-game__feedback[data-state="wrong"] {
  color: var(--tamu-maroon);
  background: #f6eaea;
}

.guess-game__feedback.is-pop {
  animation: guess-feedback-pop 0.35s ease;
}

.guess-game__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 18px;
}

.guess-game__actions .btn {
  min-width: 180px;
  justify-content: center;
  font-size: 1rem;
}

.guess-game__again {
  background: var(--green);
  border-color: var(--green);
}

.guess-game__candidate-stage {
  position: relative;
  z-index: 1;
  padding: clamp(28px, 5vw, 54px);
  border-top: 1px solid var(--line);
  background: #faf8f5;
}

.guess-game__candidate-stage > div:first-child {
  text-align: center;
}

.guess-game__candidate-stage h2 {
  margin: 3px 0 4px;
  font-size: clamp(1.9rem, 3.5vw, 2.8rem);
}

.guess-game__candidate-stage p {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
}

.guess-candidate-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.guess-candidate {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 3px solid transparent;
  border-radius: 14px;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(40, 26, 26, 0.1);
  font: inherit;
  text-align: center;
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.guess-candidate::after {
  content: "Choose";
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(80, 0, 0, 0.88);
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  opacity: 0;
  transform: translateY(-5px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  text-transform: uppercase;
}

.guess-candidate:hover:not(:disabled),
.guess-candidate:focus-visible {
  border-color: var(--gold);
  box-shadow: 0 13px 30px rgba(80, 0, 0, 0.17);
  transform: translateY(-5px);
}

.guess-candidate:hover:not(:disabled)::after,
.guess-candidate:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.guess-candidate:disabled {
  cursor: default;
}

.guess-candidate figure {
  margin: 0;
  overflow: hidden;
  border-radius: 9px;
  background: var(--soft-gray);
}

.guess-candidate img {
  display: block;
  width: 100%;
  height: clamp(145px, 16vw, 190px);
  object-fit: contain;
  object-position: center top;
}

.guess-candidate__name {
  align-self: center;
  color: var(--ink);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: clamp(0.92rem, 1.35vw, 1.08rem);
  font-weight: 800;
  line-height: 1.25;
}

.guess-candidate.is-correct {
  border-color: var(--green);
  background: #eff8f1;
  box-shadow: 0 0 0 3px rgba(63, 111, 83, 0.2), 0 16px 34px rgba(63, 111, 83, 0.22);
  animation: guess-correct-bounce 0.75s ease;
}

.guess-candidate.is-correct::after {
  content: "Correct!";
  background: var(--green);
  opacity: 1;
  transform: translateY(0);
}

.guess-candidate.is-wrong {
  border-color: var(--tamu-maroon);
  opacity: 0.42;
  animation: guess-wrong-shake 0.35s ease;
}

.guess-candidate.is-wrong::after {
  content: "Not this one";
  opacity: 1;
  transform: translateY(0);
}

.guess-confetti {
  position: absolute;
  inset: 0;
  z-index: 8;
  overflow: hidden;
  pointer-events: none;
}

.guess-confetti__piece {
  position: absolute;
  top: -24px;
  left: var(--confetti-x);
  width: var(--confetti-size);
  height: calc(var(--confetti-size) * 0.48);
  border-radius: 2px;
  background: var(--confetti-color);
  opacity: 0;
  animation: guess-confetti-fall var(--confetti-duration) cubic-bezier(0.18, 0.7, 0.22, 1) var(--confetti-delay) forwards;
}

@keyframes guess-hint-arrive {
  from { opacity: 0; transform: translateY(-10px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes guess-feedback-pop {
  0% { transform: scale(0.98); }
  60% { transform: scale(1.025); }
  100% { transform: scale(1); }
}

@keyframes guess-wrong-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-7px); }
  55% { transform: translateX(6px); }
  80% { transform: translateX(-3px); }
}

@keyframes guess-correct-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-10px) scale(1.035); }
  70% { transform: translateY(0) scale(1.015); }
}

@keyframes guess-confetti-fall {
  0% {
    opacity: 1;
    transform: translate3d(0, -4vh, 0) rotate(0deg);
  }
  100% {
    opacity: 0.95;
    transform: translate3d(var(--confetti-drift), 118vh, 0) rotate(var(--confetti-rotation));
  }
}

.secure-content {
  display: grid;
  gap: 28px;
}

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

.secure-resource-card {
  padding: 20px;
  background: var(--soft-gray);
  border-left: 5px solid var(--tamu-maroon);
}

.secure-resource-card h3 {
  margin: 0 0 10px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.secure-resource-card p {
  margin: 0;
}

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

.bulletin-link-card {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  padding: 22px;
  background: var(--white);
  border-left: 6px solid var(--tamu-maroon);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.08);
}

.bulletin-link-card img {
  width: 100%;
  max-height: 120px;
  object-fit: contain;
}

.bulletin-link-card--tips img {
  box-sizing: border-box;
  align-self: center;
  justify-self: center;
  width: 160px;
  max-width: 100%;
  padding: 12px;
  background: #1f1f1f;
}

.bulletin-link-card h2 {
  margin: 0 0 10px;
  color: var(--tamu-maroon);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.15;
}

.bulletin-link-card p {
  margin: 0 0 16px;
}

.safety-manual-list {
  display: grid;
  gap: 10px;
  margin: 28px 0 0;
  padding-left: 28px;
}

.safety-manual-list li {
  padding-left: 6px;
}

.safety-manual-link {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 12px 14px;
  color: var(--ink);
  text-decoration: none;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 5px solid var(--tamu-maroon);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
}

.safety-manual-link:hover,
.safety-manual-link:focus {
  color: var(--tamu-maroon);
  border-color: rgba(80, 0, 0, 0.28);
}

.safety-manual-link--static {
  color: var(--muted);
  box-shadow: none;
}

.safety-manual-filetype,
.safety-manual-note {
  flex: 0 0 auto;
  padding: 4px 8px;
  color: var(--white);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--tamu-maroon);
}

.safety-manual-note {
  color: var(--ink);
  background: var(--soft-gray);
  border: 1px solid var(--line);
}

.table-responsive {
  overflow-x: auto;
  border: 1px solid var(--line);
  background: var(--white);
}

.rate-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
}

.rate-table caption {
  padding: 14px 18px;
  color: var(--muted);
  font-size: 0.86rem;
  text-align: left;
  caption-side: top;
}

.rate-table th,
.rate-table td {
  padding: 12px 18px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

.rate-table thead th {
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-size: 0.86rem;
  font-weight: 800;
  text-transform: uppercase;
  background: var(--tamu-maroon);
}

.rate-table tbody tr:nth-child(even) {
  background: var(--soft-gray);
}

.rate-table td:not(:first-child),
.rate-table th:not(:first-child) {
  white-space: nowrap;
}

.lab-footer {
  background: #202020;
  color: var(--white);
}

.lab-footer a {
  color: var(--white);
}

.lab-footer__main {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: 28px;
  padding: 48px 24px;
}

.lab-footer h2,
.lab-footer h3 {
  margin: 0 0 12px;
  color: var(--white);
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 800;
}

.lab-footer p,
.lab-footer ul {
  margin: 0;
}

.lab-footer ul {
  padding: 0;
  list-style: none;
}

.lab-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  padding: 18px 24px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.9rem;
}

.lab-footer__legal {
  display: flex;
  gap: 14px 30px;
  align-items: center;
  justify-content: space-between;
}

.lab-footer__legal nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

.lab-footer__legal a {
  color: inherit;
}

.media-credits-page {
  display: grid;
  gap: 24px;
}

.credit-section {
  overflow-wrap: anywhere;
}

.credit-ledger {
  display: grid;
  gap: 16px;
  margin: 0;
}

.credit-ledger > div {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.credit-ledger > div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.credit-ledger dt {
  margin-bottom: 6px;
  color: var(--tamu-maroon);
  font-weight: 800;
}

.credit-ledger dd {
  margin: 0;
}

.credit-assets {
  columns: 2 320px;
  margin: 0;
  padding-left: 1.25rem;
}

.credit-assets li {
  margin: 0 0 8px;
  break-inside: avoid;
}

.credit-assets code,
.credit-ledger code {
  font-size: 0.86em;
}

@media (max-width: 1024px) {
  .people-grid,
  .topic-team-grid,
  .instrument-grid,
  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guess-candidate-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .publication-grid,
  .lab-footer__main {
    grid-template-columns: 1fr;
  }

  .publication-year {
    position: static;
  }

  .publication-figure {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .guess-how-to-play {
    grid-template-columns: 1fr;
  }

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

  .guess-game__hud > div {
    min-height: 78px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  }

  .guess-game__hud > div:nth-child(2) {
    border-right: 0;
  }

  .guess-game__hud > div:nth-child(n + 3) {
    border-bottom: 0;
  }

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

  .lab-footer__legal {
    align-items: flex-start;
    flex-direction: column;
  }
  .publication-filter-bar__track {
    grid-template-columns: 1fr;
  }

  .publication-filter-bar__accent {
    min-height: 12px;
  }

  .publication-filter {
    display: grid;
    grid-template-columns: 1fr;
  }

  .publication-filter select,
  .publication-search-field input {
    border-left: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }

  .secure-form__row,
  .secure-content__grid,
  .bulletin-link-grid,
  .bulletin-link-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .lab-brand img {
    width: 174px;
  }

  .nav-toggle {
    display: inline-flex;
  }

  .lab-nav {
    position: fixed;
    inset: 82px 0 auto;
    display: none;
    max-height: calc(100vh - 82px);
    overflow-y: auto;
    background: var(--tamu-maroon);
    border-bottom: 1px solid var(--tamu-maroon);
    box-shadow: 0 16px 28px rgba(0, 0, 0, 0.14);
  }

  .lab-nav.is-open {
    display: block;
  }

  .lab-nav .menu {
    display: grid;
    width: min(100%, var(--max));
    margin: 0 auto;
    padding: 8px 0;
  }

  .lab-nav .menu-item,
  .lab-nav .menu-item a {
    display: block;
    width: 100%;
  }

  .lab-nav .menu-item a {
    padding: 16px 24px;
    text-align: left;
  }

  .research-submenu {
    position: static;
    display: none;
    width: 100%;
    padding: 0 0 10px 20px;
    border: 0;
    box-shadow: none;
  }

  .menu-item--has-dropdown:hover .research-submenu,
  .menu-item--has-dropdown:focus-within .research-submenu,
  .menu-item--has-dropdown.is-submenu-open .research-submenu,
  .menu-item--has-dropdown > a[aria-expanded="true"] + .research-submenu {
    display: grid;
  }

  .lab-header .lab-nav .research-submenu a {
    padding: 10px 24px;
  }

  .home-hero {
    background-attachment: scroll;
  }

  .home-hero h1 {
    font-size: 3.15rem;
  }

  .home-hero p {
    font-size: 1.12rem;
  }

  .circularity-intro {
    padding: 56px 24px 24px;
  }

  .circularity-intro h1 {
    font-size: 3.15rem;
  }

  .circularity-shell {
    grid-template-columns: 1fr;
    padding-top: 0;
  }

  .circularity-visual-sticky {
    position: relative;
    top: auto;
    min-height: auto;
  }

  .circularity-orbit {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    aspect-ratio: auto;
  }

  .circularity-loop {
    display: none;
  }

  .yin-yang-core {
    position: relative;
    inset: auto;
    order: -1;
    grid-column: 1 / -1;
    justify-self: center;
    width: min(66vw, 360px);
    aspect-ratio: 1;
  }

  .circularity-node,
  .circularity-node--feedstock,
  .circularity-node--natural,
  .circularity-node--monomer,
  .circularity-node--materials,
  .circularity-node--performance,
  .circularity-node--recycling,
  .circularity-node--degradation,
  .circularity-node--insect {
    position: static;
    width: 100%;
    min-height: 70px;
    transform: none;
  }

  .circularity-node.is-active,
  .circularity-node--feedstock.is-active,
  .circularity-node--performance.is-active {
    transform: none;
  }

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

  .circularity-panels {
    gap: 22px;
    padding: 12px 0 54px;
  }

  .circularity-panel {
    min-height: auto;
  }

  .research-scroll {
    overflow: hidden;
  }

  .research-scroll__heading {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    padding: 52px 24px 28px;
    background: #030303;
    pointer-events: auto;
  }

  .research-scroll__heading h2 {
    font-size: 2.75rem;
  }

  .research-chapter,
  .research-chapter--climax {
    min-height: auto;
  }

  .DisplayContainerHeight,
  .research-chapter__stage,
  .BackgroundScrollmation {
    height: 50vh;
    min-height: 340px;
  }

  .research-chapter__stage,
  .PositionSticky,
  .BackgroundScrollmation,
  .BackgroundScrollmation[data-attach="before"],
  .BackgroundScrollmation[data-attach="during"],
  .BackgroundScrollmation[data-attach="after"] {
    position: relative;
    top: auto;
    opacity: 1 !important;
  }

  .BackgroundScrollmation::after {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.56), rgba(0, 0, 0, 0.1));
  }

  .MediaRenderer__textBlocks {
    margin-top: 0;
    padding: 24px 20px 62px;
    background: #030303;
  }

  .MediaRenderer__textBlocksInner,
  .MediaRenderer__textBlocksInner:first-child,
  .MediaRenderer__textBlocksInner:last-child {
    min-height: auto;
  }

  .MediaRenderer__textBlocksInner > div,
  .MediaRenderer__textBlocksInner:first-child > div {
    min-height: auto;
    padding: 18px 0;
  }

  .research-panel,
  .research-panel--wide,
  .research-panel--cycle {
    width: min(100%, 680px);
    margin-right: auto;
    margin-left: auto;
    opacity: 1 !important;
    transform: none !important;
  }

  .research-panel h3 {
    font-size: 2.35rem;
  }

  .research-panel p {
    font-size: 1rem;
  }

  .research-audio-toggle,
  .research-chapter--climax[data-attach="during"] .research-audio-toggle {
    position: absolute;
    right: 16px;
    bottom: 16px;
    display: inline-flex;
  }

  .cycle-node text {
    font-size: 26px;
  }

  .split-panel,
  .media-panel,
  .external-story-grid,
  .research-grid,
  .research-overview-grid,
  .research-topic-card,
  .research-topic-card--image-first,
  .research-tabs,
  .topic-layout,
  .topic-layout--image-first,
  .contact-grid,
  .news-item {
    grid-template-columns: 1fr;
  }

  .research-topic-card--image-first .research-topic-card__media,
  .topic-layout--image-first .topic-media {
    order: 0;
  }

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

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

  .about-photo img {
    height: 420px;
  }

  .research-topic-card__media img {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    object-position: center;
  }

  .topic-media img {
    height: auto;
    min-height: 320px;
    object-fit: contain;
    object-position: center;
    padding: 10px;
  }

  .publication-figure {
    width: 100%;
    max-width: 100%;
    padding: 10px;
  }

  .publication-figure img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .news-item img {
    height: 220px;
  }
}

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

  .lab-brand__text {
    display: none;
  }

  .lab-header .site-header__identity {
    padding-left: 16px;
    padding-right: 16px;
  }

  .home-hero__content {
    padding: 80px 20px 118px;
  }

  .home-hero h1 {
    font-size: 2.55rem;
  }

  .home-hero__button {
    width: 100%;
    justify-content: center;
  }

  .circularity-intro h1 {
    font-size: 2.45rem;
  }

  .circularity-orbit {
    grid-template-columns: 1fr;
  }

  .yin-yang-core {
    width: min(78vw, 320px);
  }

  .circularity-molecule-grid {
    grid-template-columns: 1fr;
  }

  .circularity-molecule-grid img {
    height: 150px;
  }

  .research-scroll__heading {
    padding-right: 20px;
    padding-left: 20px;
  }

  .research-scroll__heading h2 {
    font-size: 2.25rem;
  }

  .research-panel {
    padding: 22px;
  }

  .research-panel h3 {
    font-size: 2rem;
  }

  .research-panel--cycle {
    padding: 16px 12px 20px;
  }

  .cycle-node text {
    font-size: 28px;
  }

  .cycle-center-label {
    font-size: 34px;
  }

  .section {
    padding: 62px 0;
  }

  .section-title,
  .page-title {
    font-size: 2.3rem;
  }

  .people-grid,
  .topic-team-grid,
  .instrument-grid,
  .feature-grid {
    grid-template-columns: 1fr;
  }

  .about-copy {
    padding-left: 18px;
  }

  .about-photo img {
    height: 340px;
  }

  .about-photo img,
  .person-card__photo img,
  .topic-member-card img,
  .instrument-card img {
    height: min(92vw, 420px);
    object-fit: contain;
    object-position: center top;
    background: var(--soft-gray);
  }

  .media-panel img,
  .topic-media img {
    max-height: 72vh;
    object-fit: contain;
  }

  .news-preview .card__image img,
  .news-item img,
  .external-story-card img {
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    object-position: center;
  }

  .page-hero,
  .topic-header {
    background-position: center;
  }
}

/* ============================================================
   LSBI equipment-first identity (2026 redesign)
   Scoped to body.lsbi-v2 so the inherited Wooley styles above
   stay inert. Dark chrome + video heroes; light content wells.
   ============================================================ */

body.lsbi-v2 {
  --v2-bg: #12151b;
  --v2-panel: #1a1e26;
  --v2-panel-2: #212630;
  --v2-line: #2c323e;
  --v2-text: #eef0f4;
  --v2-dim: #a8b0bd;
  --v2-maroon: #500000;
  --v2-maroon-soft: #7d2626;
  --v2-gold: #d9a441;
  --v2-gold-ink: #7d5d1a;
  --v2-display: "Archivo", "Work Sans", Arial, sans-serif;
  --v2-mono: "IBM Plex Mono", "Consolas", monospace;
}

/* ---------- Header & navigation ---------- */

body.lsbi-v2 .lab-header {
  background: var(--v2-bg);
  border-bottom: 1px solid var(--v2-line);
  box-shadow: none;
}

body.lsbi-v2 .lab-brand {
  color: var(--v2-text);
}

body.lsbi-v2 .lab-brand img {
  width: 232px;
}

body.lsbi-v2 .lab-brand__name {
  font-family: var(--v2-display);
  letter-spacing: 0.04em;
}

body.lsbi-v2 .lab-brand__unit {
  color: var(--v2-dim);
}

body.lsbi-v2 .nav-toggle {
  border-color: var(--v2-gold);
  color: var(--v2-gold);
  background: transparent;
}

body.lsbi-v2 .lab-nav {
  background: var(--v2-panel);
  border-top: 1px solid var(--v2-line);
}

body.lsbi-v2 .lab-header .lab-nav .menu-item a {
  font-family: var(--v2-display);
  font-weight: 600;
  letter-spacing: 0.02em;
}

body.lsbi-v2 .lab-header .lab-nav a[aria-current="page"] {
  box-shadow: inset 0 -3px var(--v2-gold);
}

@media (max-width: 900px) {
  body.lsbi-v2 .lab-nav {
    background: var(--v2-panel);
    border-bottom: 1px solid var(--v2-line);
  }
}

/* ---------- Background video plumbing ---------- */

.bg-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bg-video-toggle {
  position: absolute;
  right: 18px;
  bottom: 18px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: rgba(10, 10, 14, 0.55);
  color: #fff;
  font-family: var(--v2-mono, monospace);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}

.bg-video-toggle:hover,
.bg-video-toggle:focus {
  background: rgba(10, 10, 14, 0.85);
  border-color: #fff;
  color: #fff;
}

/* ---------- Full-screen homepage hero ---------- */

.video-hero {
  position: relative;
  display: grid;
  min-height: max(86vh, 560px);
  overflow: hidden;
  color: var(--v2-text, #eef0f4);
  background: #0c0e12;
  isolation: isolate;
}

.video-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    /* flat 50% themed scrim: maroon (#500000) into panel-black (#12151b),
       halving the footage's brightness and tinting it to the site palette */
    linear-gradient(135deg, rgba(80, 0, 0, 0.5) 0%, rgba(18, 21, 27, 0.5) 100%),
    linear-gradient(180deg, rgba(10, 9, 12, 0.55) 0%, rgba(10, 9, 12, 0.25) 40%, rgba(12, 14, 18, 0.92) 100%),
    linear-gradient(90deg, rgba(22, 4, 4, 0.62), rgba(10, 10, 14, 0.18));
  pointer-events: none;
}

.video-hero__content {
  position: relative;
  z-index: 2;
  align-self: end;
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 140px 24px 120px;
}

.video-hero .eyebrow {
  color: var(--v2-gold);
  font-family: var(--v2-mono);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.18em;
}

.video-hero h1 {
  max-width: 900px;
  margin: 14px 0 0;
  font-family: var(--v2-display);
  font-size: clamp(2.4rem, 5.4vw, 4.2rem);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: 0.01em;
  color: #fff;
  text-wrap: balance;
}

.video-hero .lead {
  max-width: 680px;
  margin: 20px 0 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.16rem;
}

.video-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.v2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 26px;
  border: 1px solid transparent;
  font-family: var(--v2-display);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  cursor: pointer;
}

.v2-btn--solid {
  background: var(--v2-gold, #d9a441);
  border-color: var(--v2-gold, #d9a441);
  color: #191204 !important;
}

.v2-btn--solid:hover,
.v2-btn--solid:focus {
  background: #e6b95e;
  border-color: #e6b95e;
  color: #191204 !important;
}

.v2-btn--ghost {
  background: rgba(12, 12, 16, 0.25);
  border-color: rgba(255, 255, 255, 0.65);
  color: #fff !important;
}

.v2-btn--ghost:hover,
.v2-btn--ghost:focus {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
}

.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 64px;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
}

.hero-stats > div {
  padding: 18px 18px 0 0;
}

.hero-stats > div + div {
  padding-left: 18px;
  border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.hero-stats .stat-value {
  display: block;
  font-family: var(--v2-display);
  font-size: 1.7rem;
  font-weight: 700;
  color: #fff;
}

.hero-stats .stat-label {
  display: block;
  margin-top: 4px;
  font-family: var(--v2-mono);
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

/* ---------- Interior page media headers ---------- */

.media-header {
  position: relative;
  display: grid;
  min-height: 380px;
  overflow: hidden;
  color: #fff;
  background: #0c0e12;
  isolation: isolate;
}

.media-header--tall {
  min-height: 46vh;
}

.media-header__image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.media-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(10, 9, 12, 0.6), rgba(10, 9, 12, 0.35) 45%, rgba(12, 14, 18, 0.9)),
    linear-gradient(90deg, rgba(22, 4, 4, 0.55), rgba(10, 10, 14, 0.12));
  pointer-events: none;
}

.media-header__inner {
  position: relative;
  z-index: 2;
  align-self: end;
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 110px 24px 56px;
}

.media-header .topic-back {
  display: inline-block;
  margin-bottom: 18px;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--v2-mono);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-decoration: none;
}

.media-header .topic-back:hover,
.media-header .topic-back:focus {
  color: var(--v2-gold);
}

.media-header .eyebrow {
  color: var(--v2-gold);
  font-family: var(--v2-mono);
  font-size: 0.8rem;
  letter-spacing: 0.18em;
}

.media-header h1 {
  margin: 10px 0 0;
  font-family: var(--v2-display);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 700;
  line-height: 1.06;
  color: #fff;
}

.media-header .lead {
  max-width: 720px;
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 1.1rem;
}

/* ---------- Light content restyle ---------- */

body.lsbi-v2 .eyebrow {
  font-family: var(--v2-mono);
  letter-spacing: 0.16em;
}

body.lsbi-v2 .section-title {
  font-family: var(--v2-display);
  letter-spacing: 0.005em;
}

body.lsbi-v2 .instrument-card {
  border: 1px solid #e2e4e9;
  border-top: 3px solid var(--v2-maroon);
  border-radius: 2px;
  background: var(--white);
  box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, translate 0.2s ease;
}

body.lsbi-v2 .instrument-card:hover {
  border-top-color: var(--v2-gold);
  box-shadow: 0 14px 30px rgba(15, 15, 20, 0.1);
  translate: 0 -3px;
}

body.lsbi-v2 .instrument-card h3 {
  font-family: var(--v2-display);
}

/* Jump-nav chips (instrumentation page) */

.section-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}

.section-jump a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 6px 16px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  color: #fff;
  font-family: var(--v2-mono);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  background: rgba(12, 12, 16, 0.35);
}

.section-jump a:hover,
.section-jump a:focus {
  border-color: var(--v2-gold);
  color: var(--v2-gold);
}

.section-jump .jump-count {
  color: var(--v2-gold);
  font-weight: 600;
}

/* ---------- Homepage: capability cards ---------- */

.cap-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 34px;
}

.cap-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid #e2e4e9;
  border-radius: 2px;
  background: var(--white);
  text-decoration: none !important;
  color: var(--ink);
  overflow: hidden;
  transition: box-shadow 0.2s ease, translate 0.2s ease;
}

.cap-card:hover,
.cap-card:focus {
  translate: 0 -4px;
  box-shadow: 0 18px 40px rgba(15, 15, 20, 0.14);
  color: var(--ink);
}

.cap-card figure {
  /* min-height:0 keeps the flex item's content from overriding aspect-ratio */
  flex: none;
  min-height: 0;
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f2f3f5;
  border-bottom: 3px solid var(--v2-maroon);
}

.cap-card figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 18px;
  transition: scale 0.35s ease;
}

.cap-card:hover figure img {
  scale: 1.04;
}

.cap-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 22px 24px 24px;
}

.cap-card__kicker {
  font-family: var(--v2-mono);
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--v2-maroon);
}

.cap-card h3 {
  margin: 8px 0 0;
  font-family: var(--v2-display);
  font-size: 1.3rem;
  line-height: 1.2;
}

.cap-card p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.98rem;
}

.cap-card .cap-card__cta {
  margin-top: auto;
  padding-top: 16px;
  font-family: var(--v2-mono);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--v2-maroon);
}

.cap-card:hover .cap-card__cta {
  color: var(--v2-gold-ink);
}

/* ---------- Homepage: dark featured-instrument band ---------- */

.featured-band {
  background: var(--v2-bg);
  color: var(--v2-text);
}

.featured-band .eyebrow {
  color: var(--v2-gold);
}

.featured-band .section-title {
  color: #fff;
}

.featured-band .lead {
  color: var(--v2-dim);
}

.featured-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
}

.featured-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--v2-line);
  background: var(--v2-panel);
  border-radius: 2px;
  overflow: hidden;
}

.featured-card figure {
  /* min-height:0 keeps the flex item's content from overriding aspect-ratio */
  flex: none;
  min-height: 0;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #fff;
  border-bottom: 1px solid var(--v2-line);
}

.featured-card figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14px;
}

.featured-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 16px 18px 18px;
}

.featured-card__type {
  font-family: var(--v2-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-gold);
}

.featured-card h3 {
  margin: 6px 0 0;
  color: #fff;
  font-family: var(--v2-display);
  font-size: 1.02rem;
  line-height: 1.3;
}

.featured-card p {
  margin: 8px 0 0;
  color: var(--v2-dim);
  font-size: 0.88rem;
  line-height: 1.5;
}

.featured-band .featured-more {
  margin-top: 30px;
  text-align: center;
}

/* ---------- Homepage: access / reservations video band ---------- */

.access-band {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #0c0e12;
  isolation: isolate;
}

.access-band::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(12, 10, 14, 0.9), rgba(30, 6, 6, 0.72) 55%, rgba(12, 12, 16, 0.45));
  pointer-events: none;
}

.access-band__inner {
  position: relative;
  z-index: 2;
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 96px 24px;
}

.access-band .eyebrow {
  color: var(--v2-gold);
  font-family: var(--v2-mono);
  letter-spacing: 0.18em;
}

.access-band h2 {
  max-width: 640px;
  margin: 12px 0 0;
  font-family: var(--v2-display);
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  line-height: 1.12;
  color: #fff;
}

.access-band p {
  max-width: 560px;
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.85);
}

.access-band .video-hero__actions {
  margin-top: 26px;
}

/* ---------- Homepage: slim contact strip ---------- */

.contact-strip {
  border-top: 1px solid #e2e4e9;
}

.contact-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 26px;
}

.contact-strip__grid > div {
  padding: 18px 20px;
  border: 1px solid #e2e4e9;
  border-left: 3px solid var(--v2-maroon);
  background: var(--white);
}

.contact-strip__grid h3 {
  margin: 0;
  font-family: var(--v2-display);
  font-size: 1.02rem;
}

.contact-strip__grid .person-role {
  margin: 4px 0 8px;
  color: var(--muted);
  font-size: 0.86rem;
}

.contact-strip__grid p {
  margin: 0;
  font-size: 0.94rem;
}

/* ---------- Footer ---------- */

body.lsbi-v2 .lab-footer {
  background: var(--v2-bg);
  border-top: 3px solid var(--v2-maroon);
}

body.lsbi-v2 .lab-footer__bottom {
  background: #0c0e12;
  border-top: 1px solid var(--v2-line);
}

body.lsbi-v2 .lab-footer h2,
body.lsbi-v2 .lab-footer h3 {
  font-family: var(--v2-display);
}

/* ---------- Accessibility integrations ---------- */

body.lsbi-v2.a11y-high-contrast .video-hero::before,
body.lsbi-v2.a11y-high-contrast .media-header::before,
body.lsbi-v2.a11y-high-contrast .access-band::before {
  background: rgba(0, 0, 0, 0.82);
}

body.lsbi-v2.a11y-high-contrast .featured-band {
  background: #000;
}

body.lsbi-v2.a11y-high-contrast .featured-card {
  background: #000;
  border-color: #6f6f6f;
}

@media (prefers-reduced-motion: reduce) {
  .cap-card,
  .cap-card figure img,
  body.lsbi-v2 .instrument-card {
    transition: none;
  }

  .cap-card:hover,
  body.lsbi-v2 .instrument-card:hover {
    translate: 0 0;
  }
}

/* ---------- Responsive ---------- */

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

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

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

  .hero-stats > div {
    padding-top: 16px;
  }

  .hero-stats > div:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .hero-stats > div:nth-child(even) {
    padding-left: 18px;
  }
}

@media (max-width: 620px) {
  .video-hero__content {
    padding: 110px 20px 96px;
  }

  .featured-grid,
  .contact-strip__grid {
    grid-template-columns: 1fr;
  }

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

  .hero-stats > div {
    padding-left: 0 !important;
    border-left: 0 !important;
  }

  .bg-video-toggle {
    right: 12px;
    bottom: 12px;
  }
}

/* ---------- Small-screen header fit ----------
   The identity row (logo + facility name + Menu) could not fit narrow
   viewports and did not wrap, which widened the whole document and
   clipped every line of body copy. Let it shrink and wrap instead. */

@media (max-width: 620px) {
  body.lsbi-v2 .lab-header .site-header__identity {
    flex-wrap: wrap;
    gap: 12px;
  }

  body.lsbi-v2 .lab-brand {
    flex: 1 1 auto;
    min-width: 0;
    gap: 12px;
  }

  body.lsbi-v2 .lab-brand img {
    width: 168px;
    min-width: 0;
  }

  /* The inherited rule hides the wordmark entirely below 620px; the header
     now has room for the short "LSBI" mark, so show it and drop only the
     long facility name. */
  body.lsbi-v2 .lab-brand__text {
    display: grid;
    min-width: 0;
  }

  body.lsbi-v2 .lab-brand__unit {
    display: none;
  }

  body.lsbi-v2 .lab-brand__name {
    font-size: 1rem;
  }

  body.lsbi-v2 .nav-toggle {
    min-width: 76px;
  }

  .video-hero h1 {
    font-size: clamp(2rem, 8vw, 4.2rem);
  }

  .media-header h1 {
    font-size: clamp(1.7rem, 7vw, 3.2rem);
  }
}

/* The rate table's scroll wrapper is a grid item, so min-width:auto let the
   560px table widen the whole page instead of scrolling inside the wrapper. */

body.lsbi-v2 .table-responsive {
  min-width: 0;
  max-width: 100%;
}

/* Long single words ("ACKNOWLEDGEMENT") in uppercase headings could exceed
   narrow viewports and widen the page. Scale headings fluidly and allow
   breaking as a last resort. */

@media (max-width: 620px) {
  body.lsbi-v2 .section-title,
  body.lsbi-v2 .page-title {
    font-size: clamp(1.55rem, 7.4vw, 2.3rem);
  }

  body.lsbi-v2 h1,
  body.lsbi-v2 h2,
  body.lsbi-v2 h3,
  body.lsbi-v2 .section-title,
  body.lsbi-v2 .page-title {
    overflow-wrap: break-word;
  }
}

/* Long file paths in the credit ledger are unbreakable strings that widened
   the page on narrow viewports. */

body.lsbi-v2 .credit-ledger,
body.lsbi-v2 .credit-ledger > div,
body.lsbi-v2 .credit-section {
  min-width: 0;
}

body.lsbi-v2 .credit-ledger dt,
body.lsbi-v2 .credit-ledger dd,
body.lsbi-v2 .credit-ledger code,
body.lsbi-v2 .credit-assets code,
body.lsbi-v2 .credit-section a {
  overflow-wrap: anywhere;
  /* the external TAMU stylesheet sets code to nowrap, which defeats
     overflow-wrap entirely */
  white-space: normal;
}

/* Cross-fading banner clips: two stacked layers, the incoming one fades up
   over the outgoing one. Duration is set inline from data-clip-fade.
   Both reduced-motion paths already neutralize this transition. */

.bg-video {
  opacity: 1;
  transition: opacity 1400ms ease;
}

/* ---------- Parallax and scroll reveal ----------
   The hiding half of the reveal is gated behind .js-reveal, which site.js
   adds only after the observer is wired, so content is never stranded
   invisible if the script fails or is blocked. */

.bg-video,
.media-header__image {
  will-change: transform;
}

.js-reveal [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.js-reveal [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .js-reveal [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .bg-video,
  .media-header__image {
    will-change: auto;
    transform: none !important;
  }
}

body.a11y-reduced-motion .js-reveal [data-reveal] {
  opacity: 1;
  transform: none;
}

/* ---------- Dark theme ----------
   Dark is the site default: every page ships with .theme-dark on <body> so
   the first paint is already dark, and the accessibility widget's "Light
   mode" control swaps to .theme-light. High contrast always forces light,
   since it carries its own black-on-white palette.

   --ink, --muted, --line and --soft-gray are only ever used as text,
   border and background respectively, so redefining them here is safe.
   --white is NOT redefined: it is used for text on maroon in 50+ places. */

body.lsbi-v2.theme-dark {
  --ink: #e9ecf1;
  --muted: #a9b1bd;
  --line: #2b313b;
  --soft-gray: #141821;
  --dark-page: #0d1016;
  --dark-surface: #171b23;
  --dark-surface-2: #1e232d;
  --dark-accent: #e8b25a;
  --dark-accent-soft: #f0c079;
  background: var(--dark-page);
  color: var(--ink);
}

body.lsbi-v2.theme-dark .section {
  background: var(--dark-page);
  color: var(--ink);
}

body.lsbi-v2.theme-dark .section--light {
  background: #12161e;
}

/* The bands that were already dark go darker still. */

body.lsbi-v2.theme-dark .featured-band {
  background: #080a0e;
}

body.lsbi-v2.theme-dark .lab-footer {
  background: #0a0c11;
}

body.lsbi-v2.theme-dark .lab-header {
  background: #0b0e13;
}

body.lsbi-v2.theme-dark .video-hero,
body.lsbi-v2.theme-dark .media-header {
  background: #07090d;
}

/* Panels and cards */

body.lsbi-v2.theme-dark .cap-card,
body.lsbi-v2.theme-dark .person-card,
body.lsbi-v2.theme-dark .contact-card,
body.lsbi-v2.theme-dark .notice,
body.lsbi-v2.theme-dark .table-responsive {
  background: var(--dark-surface);
  border-color: var(--line);
  color: var(--ink);
}

body.lsbi-v2.theme-dark .cap-card figure {
  background: #0f131a;
}

body.lsbi-v2.theme-dark .rate-table {
  background: var(--dark-surface);
  color: var(--ink);
}

body.lsbi-v2.theme-dark .rate-table tbody tr:nth-child(even) {
  background: var(--dark-surface-2);
}

body.lsbi-v2.theme-dark .rate-table caption {
  color: var(--muted);
}

/* Type and accents: maroon is unreadable on near-black, so headings go
   near-white and the maroon accents become the site's amber. */

body.lsbi-v2.theme-dark .section-title,
body.lsbi-v2.theme-dark .page-title,
body.lsbi-v2.theme-dark h1,
body.lsbi-v2.theme-dark h2,
body.lsbi-v2.theme-dark h3,
body.lsbi-v2.theme-dark h4 {
  color: #f2f4f8;
}

body.lsbi-v2.theme-dark .eyebrow {
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .person-role,
body.lsbi-v2.theme-dark .person-meta,
body.lsbi-v2.theme-dark .source-links {
  color: var(--muted);
}

body.lsbi-v2.theme-dark main a:not(.btn):not(.home-hero__button):not(.scroll-indicator) {
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark main a:not(.btn):hover,
body.lsbi-v2.theme-dark main a:not(.btn):focus {
  color: var(--dark-accent-soft);
}



body.lsbi-v2.theme-dark .credit-ledger dt {
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .credit-ledger > div {
  border-bottom-color: var(--line);
}

/* High contrast owns the palette outright. */

body.lsbi-v2.a11y-high-contrast {
  background: #ffffff;
}

/* The external TAMU stylesheet stripes table rows on its own, which left
   odd rows light (and their text unreadable) in the dark theme. Set both
   row states explicitly rather than only overriding the even rule. */

body.lsbi-v2.theme-dark .rate-table tbody tr,
body.lsbi-v2.theme-dark .rate-table tbody tr:nth-child(odd) {
  background: var(--dark-surface);
}

body.lsbi-v2.theme-dark .rate-table tbody tr:nth-child(even) {
  background: var(--dark-surface-2);
}

body.lsbi-v2.theme-dark .rate-table th,
body.lsbi-v2.theme-dark .rate-table td {
  color: var(--ink);
  border-bottom-color: var(--line);
}

body.lsbi-v2.theme-dark .rate-table thead th {
  color: var(--white);
  background: var(--tamu-maroon);
}

/* Maroon accents inside cards are unreadable on the dark surfaces, and the
   product shots are a mix of transparent PNGs and JPGs with baked-in white
   backgrounds. Give every figure the same white plate the featured band
   already uses, and move the maroon text accents to amber. */

body.lsbi-v2.theme-dark .cap-card__kicker,
body.lsbi-v2.theme-dark .cap-card .cap-card__cta {
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .cap-card:hover .cap-card__cta {
  color: var(--dark-accent-soft);
}

body.lsbi-v2.theme-dark .cap-card figure {
  background: #ffffff;
}

body.lsbi-v2.theme-dark .cap-card h3 {
  color: #f2f4f8;
}

/* The accessibility panel and the homepage contact strip both paint
   var(--white) backgrounds, which --ink no longer contrasts against in the
   dark theme. The contact strip uses .contact-strip__grid > div rather than
   .contact-card, so it needs its own rule. */

body.lsbi-v2.theme-dark .accessibility-widget__panel {
  background: var(--dark-surface);
  color: var(--ink);
  border-color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .accessibility-widget__header h2 {
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .accessibility-widget__close,
body.lsbi-v2.theme-dark .accessibility-widget__controls button {
  background: var(--dark-surface-2);
  color: var(--ink);
  border-color: var(--line);
}

body.lsbi-v2.theme-dark .accessibility-widget__controls button:hover,
body.lsbi-v2.theme-dark .accessibility-widget__controls button:focus,
body.lsbi-v2.theme-dark .accessibility-widget__close:hover,
body.lsbi-v2.theme-dark .accessibility-widget__close:focus {
  border-color: var(--dark-accent);
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .accessibility-widget__controls button[aria-pressed="true"] {
  border-color: var(--dark-accent);
  background: var(--dark-accent);
  color: #1a1206;
}

body.lsbi-v2.theme-dark .accessibility-widget__note {
  color: var(--muted);
}

body.lsbi-v2.theme-dark .contact-strip {
  border-top-color: var(--line);
}

body.lsbi-v2.theme-dark .contact-strip__grid > div {
  background: var(--dark-surface);
  border-color: var(--line);
  border-left-color: var(--dark-accent);
  color: var(--ink);
}

body.lsbi-v2.theme-dark .contact-strip__grid h3 {
  color: #f2f4f8;
}

/* The external TAMU stylesheet paints backgrounds on td/th and code, and a
   color on li, none of which the section-level dark rules can reach. Cells
   go transparent so the row striping shows through. */

body.lsbi-v2.theme-dark .rate-table th,
body.lsbi-v2.theme-dark .rate-table td {
  background: transparent;
  color: var(--ink);
}

body.lsbi-v2.theme-dark .rate-table thead th {
  background: var(--tamu-maroon);
  color: var(--white);
}

body.lsbi-v2.theme-dark main li,
body.lsbi-v2.theme-dark main li strong,
body.lsbi-v2.theme-dark main p strong,
body.lsbi-v2.theme-dark main dd,
body.lsbi-v2.theme-dark main dt {
  color: var(--ink);
}

body.lsbi-v2.theme-dark code {
  background: var(--dark-surface-2);
  color: var(--dark-accent);
}

body.lsbi-v2.theme-dark .credit-ledger dt {
  color: var(--dark-accent);
}

/* ---------- Instrument cards in dark mode ----------
   These cards are mostly product photography shot on white. On a dark card
   the figure reads as a white rectangle framed by the card's padding, so
   the whole card becomes a light panel instead: the photo edge disappears
   into the panel and only the panel itself sits on the dark page. */

body.lsbi-v2.theme-dark .instrument-card {
  background: #f4f5f8;
  border-color: #d9dce3;
  border-top-color: var(--v2-maroon);
  color: #21242b;
}

body.lsbi-v2.theme-dark .instrument-card figure {
  background: #ffffff;
  border-bottom: 1px solid #e4e7ec;
}

body.lsbi-v2.theme-dark .instrument-card h3 {
  color: #16181d;
}

body.lsbi-v2.theme-dark .instrument-card p,
body.lsbi-v2.theme-dark .instrument-card li,
body.lsbi-v2.theme-dark .instrument-card strong,
body.lsbi-v2.theme-dark .instrument-card dd {
  color: #3c424c;
}

body.lsbi-v2.theme-dark .instrument-card a:not(.btn),
body.lsbi-v2.theme-dark .instrument-card .source-links a {
  color: var(--tamu-maroon);
}

body.lsbi-v2.theme-dark .instrument-card a:not(.btn):hover,
body.lsbi-v2.theme-dark .instrument-card a:not(.btn):focus {
  color: var(--tamu-maroon-light);
}

body.lsbi-v2.theme-dark .instrument-card__placeholder {
  background: #e7eaf0;
  color: #4a515c;
}

body.lsbi-v2.theme-dark .instrument-card:hover,
body.lsbi-v2.theme-dark .instrument-card:focus-within {
  border-color: var(--v2-maroon);
}

/* .instrument-card img paints its own --soft-gray background, which in the
   dark theme is near-black and covered the figure's white plate entirely.
   Let the figure supply the surface. */

body.lsbi-v2.theme-dark .instrument-card img {
  background: transparent;
}

/* The generic dark link rule carries more :not() weight than the card rule,
   so links inside the light instrument panels need to match it to win. */

body.lsbi-v2.theme-dark .instrument-card a:not(.btn):not(.home-hero__button):not(.scroll-indicator),
body.lsbi-v2.theme-dark .instrument-card .source-links a {
  color: var(--tamu-maroon);
}

body.lsbi-v2.theme-dark .instrument-card a:not(.btn):hover,
body.lsbi-v2.theme-dark .instrument-card a:not(.btn):focus {
  color: var(--tamu-maroon-light);
}

body.lsbi-v2.theme-dark .instrument-card .source-links {
  color: #4a515c;
}
