/*google fonts*/
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Inconsolata:wght@200..900&family=Merriweather+Sans:ital,wght@0,300..800;1,300..800&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap');

/* ---------- Base theme colors ---------- */
:root {
  --bs-body-bg: #181a1a;
  --bs-body-color: #e0e0e0;
}

body {
  font-family: "Work Sans", sans-serif;
  font-weight: 400;
  width: 100%;
  height: 100%;
  color: #e0e0e0;
  background-color: #181a1a;
  padding-top: 0px;
  margin-bottom: 60px;
}

#quarto-content,
.page-columns,
.content,
main.content,
.quarto-title-block {
  background-color: #181a1a !important;
}

/* ---------- Global links ---------- */
a,
a:hover,
a:active,
a:focus,
a:visited {
  color: #00FFFF !important;
  text-decoration: none;
}

main a:link,
main a:visited {
  color: #00FFFF !important;
}

/* ---------- Navbar ---------- */
.navbar,
.navbar.navbar-dark,
nav.navbar {
  border: none !important;
  margin: 0 auto;
  background-color: #181a1a !important;
  background-image: none !important;
  box-shadow: none !important;
}

.navbar-brand,
.navbar-brand:hover,
.navbar-brand:active,
.navbar-brand:focus,
.navbar-brand:visited {
  color: #00FFFF !important;
  text-decoration: none;
}

.navbar-nav .nav-link {
  color: #e0e0e0 !important;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  color: #00FFFF !important;
}

/* ---------- Footer ---------- */
.nav-footer {
  background-color: #181a1a !important;
  color: #e0e0e0;
}

.nav-footer a {
  color: #00FFFF !important;
}

.nav-footer-left {
  white-space: nowrap;
}

footer p {
  font-family: "Work Sans", sans-serif;
  font-size: 12pt;
}

/* ---------- Layout ---------- */
main {
  margin-top: 0px;
  margin-bottom: 50px;
}

/* ---------- Typography ---------- */
body p {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16pt;
  padding: 0px 0px 20px 0px;
}

main h1 {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  text-align: left;
  font-size: 32pt;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-bottom: 8px;
  color: #f0f0f0;
}

main h2 {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  text-align: left;
  font-size: 24pt;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-bottom: 8px;
  border: none;
  color: #f0f0f0;
}

main h3 {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  text-align: left;
  font-size: 20pt;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-bottom: 8px;
  border: none;
  color: #f0f0f0;
}

main ul, ol {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16pt;
}

/* ---------- Book chapter links (ddsr page) ---------- */
#ddsr_chapters>ul {
  font-family: 'Merriweather Sans';
  font-weight: 200;
  font-size: 14px;
  padding: 0px;
  margin: 0px;
  padding-left: 10px;
}

#ddsr_chapters>ul>li>a {
  text-decoration: none;
  color: #00FFFF !important;
}

#ddsr_chapters>ul>li {
  list-style-type: none;
  padding: 0px;
  margin: 0px;
  padding-top: 5px;
}

/* ---------- Code blocks ---------- */
.content code {
  color: #e0e0e0;
  background-color: transparent;
  font-family: "Inconsolata", monospace;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.content h1 code {
  color: #e0e0e0;
  background-color: transparent;
  font-family: "Inconsolata", monospace;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  font-variation-settings: "wdth" 100;
}

pre.sourceCode {
  background-color: rgba(255, 255, 255, 0.06);
  border: none;
}

code.sourceCode {
  background-color: transparent;
}

.cell-output-stdout {
  background-color: rgba(255, 255, 255, 0.06);
}

/* ---------- Notes listing page ---------- */
.quarto-listing a:link,
.quarto-listing a:visited {
  color: #00FFFF !important;
}

#listing-sample-listings {
  font-family: "EB Garamond", serif;
}

#listing-sample-listings h3 {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  text-align: left;
  font-size: 24pt;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-bottom: 8px;
  color: #f0f0f0;
}

div.quarto-post>.metadata {
  font-family: "EB Garamond", serif;
  flex-basis: 15%;
}

/* ---------- Publications list ---------- */
.publications-list li {
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16pt;
  padding: 0px 0px 20px 0px;
}

.btn-group .btn-primary {
  background-color: #00e5ff;
  border-color: #00e5ff;
  color: #1a3a8f;
}

.btn-group .btn-primary:hover,
.btn-group .btn-primary:focus {
  background-color: #22d3ee;
  border-color: #22d3ee;
  color: #1a3a8f;
}

.btn-group .btn-primary.disabled {
  background-color: #4a4a4a;
  border-color: #4a4a4a;
  color: #8a8a8a;
  opacity: 1;
}

/* ---------- Section divider ---------- */
hr.section-divider {
  border: none;
  height: 3px;
  width: 100%;
  position: relative;
  overflow: visible;
  background: #3a3a3a;
  margin: 3rem 0 2rem 0;
}

hr.section-divider::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  width: 40px;
  background: #5eeaff;
  box-shadow: 0 0 4px rgba(94, 234, 255, 0.6);
  animation: circuit-chase 2s linear infinite;
}

@keyframes circuit-chase {
  0% {
    left: -40px;
  }
  100% {
    left: 100%;
  }
}

/* ---------- About page contacts ---------- */
#contacts-list>ul {
  list-style: none;
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 14pt;
  margin: 0px;
  padding: 0px;
  display: flex;
  gap: 20px;
}

#contacts-list>ul>li>a {
  text-decoration: none;
  color: #00FFFF !important;
}

#contacts-list>ul>li>a:hover {
  text-decoration: underline;
  color: #00FFFF !important;
}

#contacts-list>ul>li {
  list-style-type: none;
  padding: 0px;
  margin: 0px;
  padding-top: 5px;
}

/* ---------- Front page training listing ---------- */
#listing-upcoming-training {
  font-family: "EB Garamond", serif;
  margin-right: 0em;
  margin-left: 0em;
}

#listing-upcoming-training div.quarto-post>.metadata {
  flex-basis: 0%;
}

#listing-upcoming-training div.quarto-post {
  border-bottom-style: none;
}

#listing-upcoming-training h3 {
  font-style: italic;
  text-align: left;
  font-size: 18pt;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-bottom: 8px;
  color: #f0f0f0;
}

#listing-upcoming-training h2 {
  padding-bottom: 50px;
}

#upcoming-training-courses h2,
#recent-or-upcoming-training-courses h2 {
  font-size: 24pt;
  padding-bottom: 20pt;
}

/* ---------- Table of contents sidebar ---------- */
#toc-title {
  color: #00FFFF !important;
  text-shadow: 0 0 6px rgba(94, 234, 255, 0.8), 0 0 12px rgba(94, 234, 255, 0.4);
  font-weight: 600;
}

#TOC a,
.sidebar nav[role="doc-toc"] a {
  color: #e0e0e0 !important;
  transition: color 0.3s ease, text-shadow 0.3s ease;
}

#TOC a:hover,
.sidebar nav[role="doc-toc"] a:hover {
  color: #5eeaff !important;
  text-shadow: 0 0 6px rgba(94, 234, 255, 0.8), 0 0 12px rgba(94, 234, 255, 0.4);
}

#TOC a.active,
#TOC li.active > a,
.sidebar nav[role="doc-toc"] a.active,
.sidebar nav[role="doc-toc"] li.active > a {
  color: #e0e0e0 !important;
  text-shadow: none !important;
  border-left-color: transparent !important;
  border-color: transparent !important;
}

/* ---------- Skills section ---------- */
.skills-section {
  position: relative;
  max-width: 700px;
  margin: 2rem auto 0;
  padding: 3rem 1rem;
  background-color: #181a1a;
  color: #f0f0f0;
  text-align: center;
}

.skills-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  height: 1px;
  background-color: #3a3a3a;
}

.skills-section h2 {
  color: #f0f0f0;
  text-align: center;
}

.skills-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3.5rem 5rem;
  max-width: 560px;
  margin: 1.5rem auto 0;
}

.skill-item {
  width: 120px;
}

.skill-item p {
  margin: 0;
}

.skill-item svg {
  color: #00FFFF;
}

.section-subheading {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  margin-top: .5rem;
}

@media (min-width: 992px) {
  body {
    zoom: 1.25;
  }
}

body {
  overflow-x: hidden; /* prevents the full-bleed dividers from causing horizontal scroll */
}

/* ---------- Goals section ---------- */
.goals-section {
  position: relative;
  max-width: 1000px;
  margin: 2rem auto;
  padding: 3rem 1rem;
  text-align: left;
}

.goals-section h2 {
  text-align: center;
}

.goals-section::before,
.goals-section::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  height: 1px;
  background-color: #3a3a3a;
}

.goals-section::before { top: 0; }
.goals-section::after { bottom: 0; }

.goals-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  max-width: 480px;
  margin: 1.5rem auto 0;
}

.goal-item img {
  width: 120px;
  height: 120px;
  display: block;
  transition: transform .2s ease;
}

.goal-item:hover img {
  transform: scale(1.05);
}
