
body {
  font-family: "Manrope", "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(1200px 600px at 20% -10%, rgba(31, 143, 139, 0.18), transparent 60%),
    radial-gradient(1000px 800px at 90% 10%, rgba(227, 106, 76, 0.15), transparent 60%),
    linear-gradient(180deg, #fdfbf7 0%, #f6f2ea 60%, #efe9de 100%);
  line-height: 1.6;
  font-size: 18px;
}

body.homepage {
  background-image: url("../../images/science_beach_aug2017.jpg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

@import url("https://fonts.googleapis.com/css2?family=Fraunces:wght@400;600;700&family=Manrope:wght@400;500;600;700&display=swap");

:root {
  color-scheme: light;
  --bg: #f6f2ea;
  --surface: #ffffff;
  --ink: #11212b;
  --muted: #465a64;
  --accent: #1f8f8b;
  --accent-2: #e36a4c;
  --outline: #0c6c85;
  --shadow: 0 18px 45px rgba(10, 31, 43, 0.12);
  --radius: 18px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}



img {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
}

a {
  color: var(--accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

a:hover,
a:focus-visible {
  color: var(--accent-2);
}

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

.skip-link {
  position: absolute;
  left: -999px;
  top: 1rem;
  padding: 0.75rem 1rem;
  background: var(--ink);
  color: #fff;
  border-radius: 8px;
  z-index: 1000;
}

.skip-link:focus {
  left: 1rem;
}

#main-content {
  scroll-margin-top: 1cm;
}

#page-wrapper {
  background: transparent;
}

#header {
  background-image: url("../../images/science_beach_aug2017.jpg");
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
  min-height: 60vh;
  padding: 10rem 1.5rem 4rem;
}

#headerresearch {
  background-image: url("../../images/headerresearch.jpg");
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
  min-height: 40vh;
  padding: 12rem 1.5rem 4rem;
}

#header .inner,
#headerresearch .inner {
  max-width: 1100px;
  margin: 0 auto;
}

#logo,
header h1,
header h2,
header h3 {
  font-family: "Fraunces", "Times New Roman", serif;
}

#logo {
  font-size: clamp(2rem, 3vw, 3rem);
  color: var(--ink);
}

#nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: transparent;
  backdrop-filter: none;
  border-bottom: none;
}

#nav #menuToggle,
#nav .nav-toggle {
  display: none;
  margin: 0.75rem auto 0.5rem;
  padding: 0.65rem 1.2rem;
  border-radius: 999px;
  border: 2px solid var(--ink);
  background: #fff;
  font-weight: 600;
  min-height: 44px;
}

#nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: center;
  margin: 0;
  padding: 0.75rem 1rem;
}

#nav li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  min-height: 44px;
  color: var(--ink);
  font-weight: 600;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(17, 33, 43, 0.12);
}

#nav li a:hover,
#nav li a:focus-visible {
  color: var(--ink);
  background: rgba(31, 143, 139, 0.18);
  border-color: rgba(31, 143, 139, 0.4);
}

.wrapper {
  padding: 3rem 0;
}

.wrapper .container,
.container {
  width: min(1100px, 92vw);
  margin: 0 auto;
}

.wrapper.style1 {
  background: transparent;
}

.special,
article {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 2.5rem;
  box-shadow: var(--shadow);
}

section {
  margin-bottom: 2rem;
}

section header h2,
section header h3 {
  margin-bottom: 0.5rem;
}

.image.centered img,
.image.featured img,
.image.fit img {
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(10, 31, 43, 0.15);
}

.button,
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  padding: 0.6rem 1.4rem;
  border: none;
  font-weight: 600;
  min-height: 44px;
}

.button:hover,
button:hover,
input[type="submit"]:hover {
  background: var(--accent);
}

#banner {
  margin-top: 1cm;
  max-width: 1100px;
  margin: 2rem auto 0;
  padding: 2.5rem;
  background: var(--surface);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.carousel {
  margin: 2.5rem auto;
  width: min(1200px, 94vw);
}

.carousel .reel {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  padding: 1rem 0.5rem;
  scroll-snap-type: x mandatory;
}

.carousel article {
  flex: 0 0 280px;
  scroll-snap-align: start;
  background: var(--surface);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 10px 24px rgba(10, 31, 43, 0.1);
}

#footerfirst {
  margin-top: 1cm;
  background: #0f242f;
  color: #f4f0e8;
  padding: 2rem 0 3rem;
}

#footerfirst a {
  color: #fbd4b5;
}

.copyright .menu {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  justify-content: center;
  padding: 0;
}

#navButton,
#navPanel {
  display: none !important;
}

@media (max-width: 900px) {
  #nav #menuToggle,
#nav .nav-toggle {
    display: inline-flex;
  }

  #nav ul {
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 0.5rem 1rem 1rem;
  }

  body.nav-open #nav ul {
    display: flex;
  }

  .special,
  article {
    padding: 1.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* Wrapper Background Override */
.wrapper {
  background: transparent;
}


#nav > ul {
  line-height: normal;
  height: auto;
  border: none;
}

#nav > ul:before,
#nav > ul:after {
  content: none;
  display: none;
}

#nav > ul > li {
  margin: 0;
  padding: 0;
  border: none;
}

#nav > ul > li > a,
#nav > ul > li > span {
  color: var(--ink);
}


body.homepage #banner {
  margin-top: 6rem !important;
  padding-top: 3rem;
}


#headerresearch {
  background-image: url("../../images/headerresearch.jpg");
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
  min-height: 40vh;
  padding: 12rem 1.5rem 4rem;
}

#headercomputing {
  background-image: url("../../images/eniac4.jpg");
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
}

#headerpapers {
  background-image: url("../../images/bookshelf.jpg");
  background-size: cover;
  background-position: center center;
}

#headerpeople {
  background-image: url("../../images/sanblas.jpg");
  background-size: cover;
  background-position: right center;
  background-attachment: fixed;
}

#headerdata {
  background-image: url("../../images/punchcard.png");
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
}


body.theme-home {
  background-image: url("../../images/science_beach_aug2017.jpg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

body.theme-research {
  background-image: url("../../images/headerresearch.jpg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

body.theme-computing {
  background-image: url("../../images/eniac4.jpg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

body.theme-papers {
  background-image: url("../../images/bookshelf.jpg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

body.theme-people {
  background-image: url("../../images/sanblas.jpg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

body.theme-data {
  background-image: url("../../images/punchcard.png");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}
