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

:root {
  --deck-bg-a: #f2f6f8;
  --deck-bg-b: #e6edf2;
  --deck-ink: #152737;
  --deck-ink-soft: #38536b;
  --deck-title-ink: #f2f8fc;
  --deck-accent: #007a78;
  --deck-accent-2: #bf6727;
  --deck-link: #0b529f;
  --deck-card: rgba(255, 255, 255, 0.96);
  --deck-line: rgba(15, 28, 45, 0.14);
  --deck-shadow: 0 18px 44px rgba(13, 30, 49, 0.11);
}

.reveal-viewport {
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 122, 120, 0.13), transparent 34%),
    radial-gradient(circle at 88% 84%, rgba(191, 103, 39, 0.1), transparent 36%),
    linear-gradient(135deg, var(--deck-bg-a) 0%, var(--deck-bg-b) 100%);
}

.reveal {
  color: var(--deck-ink);
  font-family: "Manrope", "Avenir Next", "Segoe UI", sans-serif;
}

.reveal .slides section {
  border: 1px solid var(--deck-line);
  border-radius: 22px;
  box-shadow: var(--deck-shadow);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(251, 253, 255, 0.94));
  padding: 0.85rem 1.05rem;
  color: var(--deck-ink);
  box-sizing: border-box;
  max-width: 98%;
  margin: 0 auto;
}

.reveal .slides section,
.reveal .slides section p,
.reveal .slides section li,
.reveal .slides section blockquote,
.reveal .slides section small,
.reveal .slides section td {
  color: var(--deck-ink);
}

.reveal .slides section.title-slide,
.reveal #title-slide {
  background:
    radial-gradient(circle at 75% 20%, rgba(77, 182, 176, 0.25), transparent 38%),
    linear-gradient(128deg, #163f5b 0%, #1b6170 55%, #27578d 100%);
  border: 1px solid rgba(238, 245, 252, 0.26);
  box-shadow: 0 22px 56px rgba(8, 31, 46, 0.35);
}

.reveal .slides section.title-slide *,
.reveal #title-slide * {
  color: var(--deck-title-ink) !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.28);
}

.reveal .slides section.title-slide strong,
.reveal #title-slide strong {
  color: #ffffff !important;
}

.reveal .title-slide h1,
.reveal #title-slide h1 {
  font-size: 2.1em;
  letter-spacing: 0.005em;
  margin-bottom: 0.35em;
}

.reveal .title-slide .subtitle,
.reveal #title-slide .subtitle {
  font-weight: 600;
  opacity: 0.95;
}

.reveal h1,
.reveal h2,
.reveal h3 {
  color: #0f2a3f;
  font-family: "Merriweather", "Georgia", serif;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.reveal h1 {
  font-size: 1.85em;
}

.reveal h2 {
  font-size: 1.48em;
}

.reveal h3 {
  font-size: 1.2em;
}

.reveal h2,
.reveal h3 {
  margin-bottom: 0.38rem;
}

.reveal h2::after,
.reveal h3::after {
  content: "";
  display: block;
  width: 78px;
  margin-top: 0.24rem;
  border-bottom: 3px solid rgba(0, 122, 120, 0.44);
}

.reveal p,
.reveal li {
  color: var(--deck-ink);
  line-height: 1.34;
}

.reveal small {
  color: var(--deck-ink-soft);
}

.reveal strong {
  color: #006e6b;
}

.reveal ul li,
.reveal ol li {
  margin: 0.24rem 0;
}

.reveal a {
  color: var(--deck-link);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.14em;
}

.reveal a:hover {
  color: #073f7e;
}

.reveal table {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(21, 39, 55, 0.11);
  font-size: 0.78em;
}

.reveal table th {
  background: #1c3a53;
  color: #fff;
  font-weight: 700;
}

.reveal table tbody tr:nth-child(even) {
  background: #f5f9fc;
}

.reveal table th,
.reveal table td {
  border-bottom: 1px solid #d7e2ea;
  padding: 0.4rem 0.52rem;
}

.reveal .slides section.smaller {
  font-size: 0.85em;
}

.reveal .slide figure img,
.reveal .slide .cell-output-display img,
.reveal .slide img {
  border-radius: 14px;
  border: 1px solid rgba(30, 41, 59, 0.13);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
  max-height: 56vh;
  width: auto;
}

.reveal pre,
.reveal div.sourceCode {
  border-radius: 12px;
  border: 1px solid rgba(20, 44, 63, 0.15);
  box-shadow: 0 8px 18px rgba(10, 25, 42, 0.08);
}

.reveal .progress {
  height: 4px;
}

.reveal .progress span {
  background: linear-gradient(90deg, var(--deck-accent) 0%, var(--deck-accent-2) 100%);
}

.reveal .slide-number {
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #203b50;
  border: 1px solid rgba(45, 67, 84, 0.24);
  padding: 4px 10px;
}

.reveal .slides section.present > h1,
.reveal .slides section.present > h2,
.reveal .slides section.present > h3,
.reveal .slides section.present > p,
.reveal .slides section.present > ul,
.reveal .slides section.present > ol,
.reveal .slides section.present > div {
  animation: deck-fade-up 0.5s ease both;
}

@keyframes deck-fade-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 900px) {
  .reveal .slides section {
    padding: 0.68rem 0.85rem;
    border-radius: 15px;
  }

  .reveal h1 {
    font-size: 1.5em;
  }

  .reveal h2 {
    font-size: 1.12em;
  }

  .reveal p,
  .reveal li {
    line-height: 1.32;
  }
}
