@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;0,800;1,400&display=swap');
/* ---- shared reveal boilerplate (var-driven) ---- */
.reveal-viewport {
  background: var(--r-background-color);
}
.reveal {
  font-family: var(--r-main-font);
  font-size: var(--r-main-font-size);
  font-weight: normal;
  color: var(--r-main-color);
}
.reveal ::selection {
  color: var(--r-selection-color);
  background: var(--r-selection-background-color);
  text-shadow: none;
}
.reveal .slides section,
.reveal .slides section > section {
  line-height: 1.35;
  font-weight: inherit;
}
.reveal .slides > section.drop {
  padding-top: 0;
  padding-bottom: 0;
  height: 100%;
}
.reveal .dk-content {
  z-index: 1;
}
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  margin: var(--r-heading-margin);
  color: var(--r-heading-color);
  font-family: var(--r-heading-font);
  line-height: var(--r-heading-line-height);
  letter-spacing: var(--r-heading-letter-spacing);
  text-transform: var(--r-heading-text-transform);
  text-shadow: none;
  word-wrap: break-word;
}
.reveal h1 { font-size: var(--r-heading1-size); font-weight: var(--r-heading1-font-weight); }
.reveal h2 { font-size: var(--r-heading2-size); font-weight: var(--r-heading2-font-weight); }
.reveal h3 { font-size: var(--r-heading3-size); font-weight: var(--r-heading3-font-weight); }
.reveal h4 { font-size: var(--r-heading4-size); font-weight: var(--r-heading4-font-weight); }
.reveal h5 { font-size: var(--r-heading5-size); font-weight: var(--r-heading5-font-weight); }
.reveal h6 { font-size: var(--r-heading6-size); font-weight: var(--r-heading6-font-weight); }
.reveal p {
  margin: var(--r-block-margin) 0;
  line-height: 1.4;
}
.reveal h1:last-child,
.reveal h2:last-child,
.reveal h3:last-child {
  margin-bottom: 0;
}
.reveal img,
.reveal video,
.reveal iframe {
  max-width: 100%;
  max-height: 100%;
}
.reveal strong,
.reveal b {
  font-weight: 700;
}
.reveal em {
  font-style: italic;
}
.reveal ol,
.reveal dl,
.reveal ul {
  display: inline-block;
  text-align: left;
  margin: 0 0 0 1em;
}
.reveal ol { list-style-type: decimal; }
.reveal ul { list-style-type: disc; }
.reveal ul ul { list-style-type: square; }
.reveal ul ul,
.reveal ul ol,
.reveal ol ol,
.reveal ol ul {
  display: block;
  margin-left: 40px;
}
.reveal li {
  margin: 0.18em 0;
}
.reveal dt { font-weight: bold; }
.reveal dd { margin-left: 40px; }
.reveal blockquote {
  display: block;
  position: relative;
  width: 80%;
  margin: var(--r-block-margin) auto;
  padding: 0.4em 0.8em;
  font-style: italic;
  background: var(--dk-quote-bg, rgba(128, 128, 128, 0.08));
  box-shadow: none;
}
.reveal blockquote p:first-child,
.reveal blockquote p:last-child {
  display: inline-block;
}
.reveal q { font-style: italic; }
.reveal pre {
  display: block;
  position: relative;
  width: 92%;
  margin: var(--r-block-margin) auto;
  text-align: left;
  font-size: 0.5em;
  font-family: var(--r-code-font);
  line-height: 1.35em;
  word-wrap: break-word;
  box-shadow: var(--dk-pre-shadow, 0 8px 30px rgba(0, 0, 0, 0.25));
  border-radius: var(--dk-radius);
  overflow: hidden;
}
.reveal code {
  font-family: var(--r-code-font);
  text-transform: none;
  tab-size: 2;
}
.reveal p code,
.reveal li code {
  background: var(--dk-card-bg);
  color: var(--dk-accent);
  padding: 0.05em 0.35em;
  border-radius: 6px;
  font-size: 0.92em;
}
.reveal pre code {
  display: block;
  padding: 0.8em 1em;
  overflow: auto;
  max-height: 400px;
  word-wrap: normal;
}
.reveal .code-wrapper { white-space: normal; }
.reveal .code-wrapper code { white-space: pre; }
.reveal table {
  margin: auto;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 0.55em;
}
.reveal table th { font-weight: bold; color: var(--dk-accent); }
.reveal table th,
.reveal table td {
  text-align: left;
  padding: 0.45em 0.9em;
  border-bottom: 1px solid var(--dk-border);
}
.reveal table tbody tr:last-child th,
.reveal table tbody tr:last-child td {
  border-bottom: none;
}
.reveal sup { vertical-align: super; font-size: smaller; }
.reveal sub { vertical-align: sub; font-size: smaller; }
.reveal small {
  display: inline-block;
  font-size: 0.6em;
  line-height: 1.2em;
  vertical-align: top;
}
.reveal img { margin: var(--r-block-margin) 0; }
.reveal a {
  color: var(--r-link-color);
  text-decoration: none;
  transition: color 0.15s ease;
}
.reveal a:hover {
  color: var(--r-link-color-hover);
  text-shadow: none;
  border: none;
}
.reveal .controls {
  color: var(--r-link-color) !important;
}
.reveal .progress {
  background: rgba(128, 128, 128, 0.2);
  color: var(--r-link-color);
}
@media print {
  .backgrounds {
    background-color: var(--r-background-color);
  }
}
.has-dark-background canvas[data-chart] { background-color: white; }
.has-light-background canvas[data-chart] { background-color: unset; }
canvas[data-chart] { padding: 0.5em; }
.reveal .hljs { min-height: 50%; }
/*!
 * Theme: Terminal Green — DesignKit for Advanced Slides
 * Developer aesthetic: a terminal window on GitHub-dark, scan lines,
 * blinking cursor, prompt-prefixed headings.
 * Font: JetBrains Mono (Google).
 */

:root {
  --r-background-color: #010409;
  --r-main-font: "JetBrains Mono", "SFMono-Regular", Menlo, monospace;
  --r-main-font-size: 34px;
  --r-main-color: #c9d1d9;
  --r-block-margin: 14px;
  --r-heading-margin: 0 0 0.5em 0;
  --r-heading-font: "JetBrains Mono", "SFMono-Regular", Menlo, monospace;
  --r-heading-color: #e6edf3;
  --r-heading-line-height: 1.15;
  --r-heading-letter-spacing: -0.01em;
  --r-heading-text-transform: none;
  --r-heading1-font-weight: 800;
  --r-heading2-font-weight: 700;
  --r-heading3-font-weight: 700;
  --r-heading4-font-weight: 700;
  --r-heading5-font-weight: 700;
  --r-heading6-font-weight: 700;
  --r-heading1-size: 1.9em;
  --r-heading2-size: 1.3em;
  --r-heading3-size: 1em;
  --r-heading4-size: 0.85em;
  --r-heading5-size: 0.7em;
  --r-heading6-size: 0.6em;
  --r-code-font: "JetBrains Mono", monospace;
  --r-link-color: #58a6ff;
  --r-link-color-dark: #388bfd;
  --r-link-color-hover: #79c0ff;
  --r-selection-background-color: #39d353;
  --r-selection-color: #0d1117;
}

.reveal {
  --dk-auto: on;
  --dk-accent: #39d353;
  --dk-accent-2: #d29922;
  --dk-muted: #8b949e;
  --dk-card-bg: #161b22;
  --dk-card-color: #c9d1d9;
  --dk-border: #30363d;
  --dk-radius: 6px;
  --dk-display-font: "JetBrains Mono", monospace;
  --dk-mono-font: "JetBrains Mono", monospace;
  --dk-quote-bg: #161b22;
}

@keyframes dk-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

.reveal-viewport {
  background: radial-gradient(ellipse at 50% 30%, #0d1420 0%, #010409 75%);
}

/* ---- the terminal window ---- */
.reveal .slides section {
  text-align: left;
}
.reveal .slides section::before {
  content: "";
  position: absolute;
  inset: 4.5% 4.5%;
  background: #0d1117;
  border: 1px solid #30363d;
  border-radius: 10px;
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.7), 0 0 60px rgba(57, 211, 83, 0.07);
  z-index: 0;
}
.reveal .dk-content {
  align-items: flex-start !important;
  justify-content: center !important;
  padding: 11% 9.5% 9% 9.5%;
  box-sizing: border-box;
}

/* window title bar + traffic lights */
.reveal .dk-decor { display: block; }
.reveal .dk-d1 {
  top: 4.5%;
  left: calc(4.5% + 1px);
  right: calc(4.5% + 1px);
  height: 1.05em;
  background: #161b22;
  border-bottom: 1px solid #30363d;
  border-radius: 10px 10px 0 0;
}
.reveal .dk-d1::before {
  content: "";
  position: absolute;
  left: 0.55em;
  top: 50%;
  transform: translateY(-50%);
  width: 0.32em;
  height: 0.32em;
  border-radius: 50%;
  background: #ff5f56;
  box-shadow: 0.55em 0 0 #ffbd2e, 1.1em 0 0 #27c93f;
}
.reveal .dk-d1::after {
  content: "varun@vault: ~/slides — zsh";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-family: "JetBrains Mono", monospace;
  font-size: 0.34em;
  color: #8b949e;
}
/* scan lines + vignette, clipped to the window */
.reveal .dk-d5 {
  inset: 4.5% 4.5%;
  border-radius: 10px;
  background:
    repeating-linear-gradient(0deg, rgba(57, 211, 83, 0.035) 0 1px, transparent 1px 3px);
  mix-blend-mode: screen;
}

/* ---- prompt typography ---- */
.reveal h2::before,
.reveal h3::before {
  content: "❯ ";
  color: var(--dk-accent);
}
.reveal section.title h1 {
  color: var(--dk-accent);
  text-shadow: 0 0 18px rgba(57, 211, 83, 0.45);
}
.reveal section.title h1::before {
  content: "$ ";
  color: #8b949e;
  text-shadow: none;
}
.reveal section.title h1::after,
.reveal section.end h1::after {
  content: "▊";
  color: var(--dk-accent);
  animation: dk-blink 1.1s step-end infinite;
  margin-left: 0.1em;
}
.reveal section.end h1::before {
  content: "$ exit ";
  color: #8b949e;
}
.reveal .dk-kicker {
  color: var(--dk-muted);
  letter-spacing: 0.18em;
}
.reveal .dk-kicker::before {
  content: "# ";
  color: var(--dk-accent);
}
.reveal section.title p,
.reveal section.section p,
.reveal section.end p {
  font-size: 0.5em;
  color: var(--dk-muted);
  max-width: 34em;
}
.reveal strong {
  color: var(--dk-accent);
  font-weight: 700;
}
.reveal em {
  font-style: italic;
  color: var(--dk-accent-2);
}
.reveal ul { list-style-type: none; margin-left: 0; }
.reveal ul > li { padding-left: 1.2em; position: relative; }
.reveal ul > li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--dk-accent);
}
.reveal blockquote {
  border-left: 3px solid var(--dk-accent);
  font-style: normal;
  color: var(--dk-muted);
}

/* ---- chrome ---- */
.reveal .dk-tabs {
  display: flex;
  top: auto;
  bottom: calc(4.5% + 0.55em);
  left: calc(4.5% + 1.2em);
  right: auto;
  gap: 1.1em;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.32em;
  color: #8b949e;
}
.reveal .dk-tab::before {
  content: attr(data-n) ":";
  opacity: 0.7;
}
.reveal .dk-tab.dk-active {
  color: var(--dk-accent);
}
.reveal .dk-tab.dk-active::after {
  content: "*";
}
.reveal .dk-pageno {
  display: flex;
  right: calc(4.5% + 1.2em);
  bottom: calc(4.5% + 0.55em);
  font-size: 0.32em;
  color: var(--dk-accent);
  letter-spacing: 0;
}
.reveal .dk-pageno::before { content: "["; color: #8b949e; }
.reveal .dk-pageno::after { content: "]"; color: #8b949e; }
.reveal .dk-pageno .dk-page-total::before { content: "/"; opacity: 0.7; }
.reveal section.section .dk-secnum {
  display: block;
  font-size: 4.5em;
  top: auto;
  bottom: 8%;
  left: auto;
  right: 8%;
  color: rgba(57, 211, 83, 0.1);
}

/* ---- components ---- */
.reveal .dk-stat,
.reveal .dk-card {
  border: 1px solid #30363d;
  border-radius: 6px;
}
.reveal .dk-stat-value {
  color: var(--dk-accent);
  text-shadow: 0 0 14px rgba(57, 211, 83, 0.4);
  font-weight: 800;
  font-size: 1.5em;
}
.reveal .dk-stat-label { color: #e6edf3; }
.reveal .dk-card-title { font-size: 0.58em; }
.reveal .dk-card-title::before {
  content: "./";
  color: var(--dk-accent);
}
.reveal .dk-step-num {
  color: var(--dk-accent);
}
.reveal .dk-step-num::before { content: "["; color: #8b949e; }
.reveal .dk-step-num::after { content: "]"; color: #8b949e; }
.reveal .dk-step {
  border-bottom: 1px dashed #30363d;
}

/* split */
.reveal .dk-content.dk-split-root {
  padding: 11% 9.5% 9% 9.5% !important;
  gap: 1.2em;
}
.reveal .dk-split-root .dk-left {
  flex: 0 0 40%;
  padding: 0 1em 0 0;
  border-right: 1px solid #30363d;
}
.reveal .dk-split-root .dk-right { padding: 0; }

/* quote */
.reveal section.quote .dk-content {
  align-items: flex-start !important;
}
.reveal section.quote blockquote,
.reveal section.quote .dk-content > p:not(.dk-cite):not(.dk-kicker) {
  font-size: 1em;
  width: 100%;
  color: #e6edf3;
  background: transparent;
  border: none;
  margin-left: 0;
}
.reveal section.quote .dk-content > p:not(.dk-cite):not(.dk-kicker)::before,
.reveal section.quote blockquote::before {
  content: "$ echo \\";
  display: block;
  color: #8b949e;
  font-size: 0.55em;
  margin-bottom: 0.8em;
}
.reveal .dk-cite {
  color: var(--dk-accent);
  letter-spacing: 0;
}
.reveal .dk-cite::before { content: "# — "; color: #8b949e; }

/* responsive HTML export */
.reveal.dk-compact .slides section::before,
.reveal.dk-narrow .slides section::before {
  inset: 3%;
}
.reveal.dk-compact .dk-d1,
.reveal.dk-narrow .dk-d1 {
  top: 3%;
  left: calc(3% + 1px);
  right: calc(3% + 1px);
}
.reveal.dk-compact .dk-d1::after,
.reveal.dk-narrow .dk-d1::after {
  content: "~/slides";
}
.reveal.dk-compact .dk-d5,
.reveal.dk-narrow .dk-d5 {
  inset: 3%;
}
.reveal.dk-compact .dk-tabs,
.reveal.dk-narrow .dk-tabs {
  left: calc(3% + 0.85em);
  bottom: calc(3% + 0.4em);
  max-width: 62%;
}
.reveal.dk-compact .dk-pageno,
.reveal.dk-narrow .dk-pageno {
  right: calc(3% + 0.85em);
  bottom: calc(3% + 0.4em);
}
.reveal.dk-portrait .dk-tabs {
  display: none;
}
.reveal.dk-portrait .slides section::before {
  inset: 4.6% 3.2% 3.2% 3.2%;
}
.reveal.dk-portrait .dk-d1 {
  top: 4.6%;
  left: calc(3.2% + 1px);
  right: calc(3.2% + 1px);
}
.reveal.dk-portrait .dk-d5 {
  inset: 4.6% 3.2% 3.2% 3.2%;
}
.reveal.dk-portrait .dk-content {
  padding: 3.8em 1.05em 2.2em 1.05em !important;
}
.reveal.dk-portrait .dk-content.dk-split-root {
  padding: 4.55em 1.05em 2.2em 1.05em !important;
  gap: 0.6em;
}
.reveal.dk-portrait .dk-split-root .dk-left,
.reveal.dk-portrait .dk-split-root .dk-right {
  flex: 0 1 auto;
  width: 100%;
  padding: 0 !important;
  border-right: 0;
  min-height: 0;
}
.reveal.dk-portrait section.title .dk-content,
.reveal.dk-portrait section.section .dk-content,
.reveal.dk-portrait section.end .dk-content {
  justify-content: flex-start !important;
}
.reveal.dk-portrait section.title .dk-content > h1,
.reveal.dk-portrait section.end .dk-content > h1 {
  margin-top: 0.62em;
}
.reveal.dk-portrait section.section .dk-content > h1,
.reveal.dk-portrait section.section .dk-content > h2 {
  margin-top: 0.76em;
}
.reveal.dk-portrait section.quote .dk-content > p:not(.dk-cite):not(.dk-kicker) {
  margin-top: 1.35em;
}
.reveal.dk-portrait section.quote .dk-content {
  padding-top: 5.25em !important;
}
.reveal.dk-portrait .dk-content > h2 {
  margin-top: 1.45em;
}
