/* generated from quartz.config.ts theme */
:root {
  --light: #fbf8f2;
  --lightgray: #ddd5c6;
  --gray: #5b6577;
  --darkgray: #2a3142;
  --dark: #15203b;
  --secondary: #9e1b37;
  --tertiary: #7c1230;
  --highlight: rgba(158, 27, 55, 0.07);
  --textHighlight: #fff23688;
}

.reveal-viewport {
  background: var(--light);
}

.reveal {
  font-family: "Spectral", serif;
  font-size: 28px;
  color: var(--darkgray);
  line-height: 1.5;
}

.reveal .slides section {
  height: 100%;
  overflow-y: auto;
  text-align: left;
  padding: 0 0.4em 1em 0;
  scrollbar-width: thin;
  scrollbar-color: var(--lightgray) transparent;
}

.reveal .slides section.stack {
  overflow: visible;
  padding: 0;
}

.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  font-family: "Spectral", serif;
  color: var(--dark);
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.2;
  margin: 0 0 0.6em 0;
}

.reveal h1 { font-size: 1.7em; }
.reveal h2 { font-size: 1.45em; }
.reveal h2::after {
  content: "";
  display: block;
  width: 2.5em;
  height: 3px;
  margin-top: 0.25em;
  background: var(--secondary);
  border-radius: 2px;
}
.reveal h3 { font-size: 1.2em; }
.reveal h4 { font-size: 1.05em; }

.reveal a {
  color: var(--secondary);
  text-decoration: none;
}
.reveal a:hover {
  color: var(--tertiary);
  text-decoration: underline;
}

.reveal ul,
.reveal ol {
  display: block;
  margin: 0 0 0.6em 1.1em;
}
.reveal li {
  margin: 0.25em 0;
}
.reveal li > ul,
.reveal li > ol {
  margin-bottom: 0;
}

.reveal p {
  margin: 0 0 0.6em 0;
}

.reveal strong {
  color: var(--dark);
}

.reveal mark {
  background: var(--textHighlight);
  padding: 0 0.1em;
}

.reveal blockquote {
  display: block;
  width: 100%;
  margin: 0.6em 0;
  padding: 0.4em 1em;
  border-left: 4px solid var(--secondary);
  background: var(--highlight);
  border-radius: 0 6px 6px 0;
  font-style: normal;
  box-shadow: none;
}

/* Obsidian-style callouts (rendered without quartz's main stylesheet) */
.reveal .callout {
  border-left: 4px solid var(--secondary);
  background: var(--highlight);
  padding: 0.5em 1em;
  border-radius: 6px;
  margin: 0.6em 0;
  border-top: none;
  border-right: none;
  border-bottom: none;
}
.reveal .callout-icon,
.reveal .fold-callout-icon {
  display: none;
}
.reveal .callout-title {
  display: flex;
  gap: 0.4em;
  font-weight: 600;
  color: var(--secondary);
  padding: 0;
  margin-bottom: 0.2em;
}
.reveal .callout-content > :last-child,
.reveal .callout > :last-child {
  margin-bottom: 0;
}

.reveal table {
  margin: 0.6em 0;
  border-collapse: collapse;
  font-size: 0.85em;
}
.reveal table th,
.reveal table td {
  border: 1px solid var(--lightgray);
  padding: 0.35em 0.7em;
  text-align: left;
}
.reveal table th {
  background: var(--highlight);
  color: var(--dark);
}

.reveal img {
  max-width: 100%;
  max-height: 60vh;
  display: block;
  margin: 0.6em auto;
  border-radius: 4px;
}

.reveal pre {
  display: block;
  width: 100%;
  margin: 0.6em 0;
  box-shadow: none;
  border: 1px solid var(--lightgray);
  border-radius: 6px;
}
.reveal pre code {
  display: block;
  padding: 0.7em 1em;
  max-height: 55vh;
  overflow: auto;
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.7em;
  line-height: 1.5;
}
.reveal code {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.85em;
}
.reveal :not(pre) > code {
  background: var(--highlight);
  padding: 0.1em 0.3em;
  border-radius: 4px;
}
/* shiki dual-theme tokens: use the light theme in decks */
.reveal code span {
  color: var(--shiki-light);
}

/* katex display math can be wide */
.reveal .katex-display {
  overflow-x: auto;
  overflow-y: hidden;
}

/* unrevealed fragments would leave overview (Esc/o) thumbnails mostly blank */
.reveal.overview .fragment {
  visibility: visible !important;
  opacity: 1 !important;
}

/* section divider: a heading with no content of its own */
.reveal .divider-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.reveal section.section-divider h1,
.reveal section.section-divider h2 {
  font-size: 2em;
}

/* breadcrumb above an h2 slide showing its parent h1 section */
.reveal .slide-eyebrow {
  font-size: 0.55em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gray);
  margin: 0 0 0.6em 0;
}

/* title slide */
.reveal .title-slide-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.reveal section.title-slide h1 {
  font-size: 2.2em;
}
.reveal section.title-slide h1::after {
  content: "";
  display: block;
  width: 2em;
  height: 4px;
  margin-top: 0.3em;
  background: var(--secondary);
  border-radius: 2px;
}
.reveal section.title-slide .subtitle {
  color: var(--gray);
  font-size: 1.1em;
}
.reveal section.title-slide .deck-source {
  color: var(--gray);
  font-size: 0.75em;
  margin-top: 2em;
}

.reveal .progress {
  color: var(--secondary);
}
.reveal .slide-number {
  background: transparent;
  color: var(--gray);
  font-family: "Spectral", serif;
}
.reveal .controls {
  color: var(--secondary);
}

/* link back to the note */
.deck-exit {
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 40;
  font-family: "Spectral", serif;
  font-size: 15px;
  color: var(--gray);
  text-decoration: none;
  opacity: 0.5;
  transition: opacity 0.2s ease;
}
.deck-exit:hover {
  opacity: 1;
  color: var(--secondary);
}

/* webkit scrollbars inside slides */
.reveal .slides section::-webkit-scrollbar {
  width: 6px;
}
.reveal .slides section::-webkit-scrollbar-thumb {
  background: var(--lightgray);
  border-radius: 3px;
}
