:root { --site-ink: #252b31; --site-muted: #58616b; --site-accent: #893541; --site-accent-dark: #6f2934; --site-border: #e0e5e9; --site-soft: #f4f6f8; --site-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
body { font-family: var(--site-font); color: var(--site-ink); }
/* Shared adjustments; shared.css preserves the existing Bootstrap 4 CSS only. */
body { min-width: 320px; }
.page-content img, .page-content video { max-width: 100%; }
.page-content iframe { max-width: 100%; }
.page-content { overflow-wrap: anywhere; }
.site-main { margin-top: 2.5rem; margin-bottom: 4rem; }
.navbar-container { margin-top: 0; margin-bottom: 0; }
.footer .container { margin-top: 0; margin-bottom: 0; }
.footer h5 { color: #333; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 2000; padding: .75rem; background: white; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid var(--site-accent); outline-offset: 3px; }
.lab-identity { text-align: center; }
.page-alumni .page-content, .page-publications .page-content { overflow-x: auto; }
.page-people .page-content > .container { margin-top: 0; margin-bottom: 2rem; }
.page-people .modal { background: rgb(0 0 0 / 50%); }
.page-people .modal.show { display: block; }
body.modal-open { overflow: hidden; }
.page-people .modal-title { height: auto; }
.carousel-indicators li { width: auto; height: auto; margin: 0; border: 0; background: transparent; text-indent: 0; }
.carousel-indicators button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; margin: 0; background: transparent; opacity: .5; }
.carousel-indicators button::after { content: ''; display: block; width: 30px; height: 3px; background: white; }
.carousel-indicators button.active { opacity: 1; }
@media (max-width: 767px) {
  /* Keep the header in the layout so wrapped branding never covers content. */
  .site-main { margin-top: 1.5rem; margin-bottom: 2.5rem; }
  .page-home .page-content .poloroid { width: 100%; max-width: 280px; margin: 2rem auto; }
  .page-people .modal-dialog { margin: .5rem; max-width: calc(100% - 1rem); }
  .page-people .modal .close { min-width: 44px; min-height: 44px; }
  .page-alumni .page-content { overscroll-behavior-x: contain; }
  .page-publications .page-content { overflow-x: visible; }
  .page-publications .table,
  .page-publications .table tbody,
  .page-publications .publication-entry,
  .page-publications .publication-entry td { display: block; width: 100%; }
  .page-publications .publication-entry { border-bottom: 1px solid var(--site-border); }
  .page-publications .publication-entry td { border: 0; }
  .page-publications .publication-entry .button-wrapper { padding-top: 0; }
  .page-publications .publication-entry .btn { display: inline-flex; align-items: center; min-height: 44px; margin-right: .5rem; }
  .page-publications .card-header .btn { min-height: 44px; }
  .page-news .page-content iframe { display: block; margin: 0 auto 1rem; }
  .footer-column { margin-bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

/* Shared visual language for all page content. */
.page-content h1, .page-content h2, .page-content h3, .page-content h4 { font-family: var(--site-font); color: var(--site-ink); font-weight: 600; }
.page-content h1 { font-size: 2.5rem; line-height: 1.2; letter-spacing: -.035em; }
.page-content h2 { font-size: 1.6rem; line-height: 1.35; letter-spacing: -.015em; }
.page-content h3 { font-size: 1.15rem; line-height: 1.4; }
.page-content p { line-height: 1.75; }
.page-content .page-eyebrow { color: var(--site-accent); text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; font-weight: 600; margin-bottom: .65rem; }
.page-content a { color: var(--site-accent); text-underline-offset: .2em; }
.page-content a:hover { color: var(--site-accent-dark); }
.page-content a.publication-link { color: inherit; text-decoration: none; }
.page-content .btn-outline-primary { color: var(--site-accent); border-color: var(--site-border); }
.page-content .btn-outline-primary:hover { color: #fff; background: var(--site-accent); border-color: var(--site-accent); }
.page-publications .accordion > .card { border-color: var(--site-border); border-radius: 6px; margin-bottom: .85rem; }
.page-publications .card-header { background: var(--site-soft); border-bottom-color: var(--site-border); }
.page-publications .card-header .btn-link { color: var(--site-accent); font-weight: 600; min-height: 44px; text-decoration: none; }
.page-publications .table-hover tbody tr:hover { background: var(--site-soft); }
.page-publications .publication-details, .page-publications .publication-authors { font-size: .9rem; color: var(--site-muted); }
.page-publications .publication-entry td { border-color: var(--site-border); }
@media (max-width: 767px) { .page-content h1 { font-size: 2rem; } }

/* Standalone error page. */
.page-not-found { background: var(--site-soft); min-width: 0; }
.not-found { max-width: 640px; min-height: 100vh; margin: auto; padding: 3rem 1.5rem; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.not-found-brand { color: var(--site-ink); font-weight: 600; letter-spacing: -.03em; margin-bottom: 2.5rem; }
.not-found-code { color: var(--site-accent); font-size: clamp(6rem, 22vw, 10rem); font-weight: 700; line-height: 1; letter-spacing: -.07em; margin: 0; }
.not-found-trace { width: 100%; max-width: 360px; height: 64px; margin: 1rem 0 1.5rem; color: var(--site-accent); }
.not-found-trace path { fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.not-found-trace circle { fill: currentColor; }
.not-found h1 { font-size: clamp(1.8rem, 6vw, 2.5rem); font-weight: 600; letter-spacing: -.035em; margin-bottom: 1rem; }
.not-found p:not(.not-found-code) { max-width: 380px; line-height: 1.7; }
.not-found-note { color: var(--site-muted); }
.not-found-home { display: inline-flex; align-items: center; gap: 1rem; margin-top: .75rem; padding: .8rem 1.3rem; border-radius: 4px; background: var(--site-accent); color: white; font-weight: 600; }
.not-found-home:hover { background: var(--site-accent-dark); color: white; text-decoration: none; }
