:root {
  --deck-bg: #11110f;
  --deck-bg-2: #171713;
  --deck-ink: #f4f1e8;
  --deck-muted: #a7a194;
  --deck-faint: rgba(244, 241, 232, 0.16);
  --deck-accent: #ff6a4a;
  --deck-accent-2: #ffd166;
  --deck-blue: #82aaff;
  --deck-green: #73d39a;
}

.reveal {
  color: var(--deck-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  letter-spacing: 0;
  background: var(--deck-bg);
}

html,
body,
.reveal-viewport {
  background: var(--deck-bg);
}

.reveal .slides {
  text-align: left;
}

.reveal .slides section {
  box-sizing: border-box;
  padding: 16px 18px;
}

.reveal .slides section.hex-pair-slide {
  padding: 14px 16px;
}

.reveal .slides section.dark {
  background:
    radial-gradient(circle at 8% 8%, rgba(255, 106, 74, 0.12), transparent 26rem),
    linear-gradient(135deg, var(--deck-bg), var(--deck-bg-2));
}

.reveal :where(.title-lockup, .thesis, .closing-lockup, .cue-grid, .pattern-list, .drawing-board, .tweet-shell) a {
  color: var(--deck-ink);
}

.reveal :where(.title-lockup, .thesis, .closing-lockup, .cue-grid, .pattern-list, .tweet-shell) {
  letter-spacing: 0;
}

.reveal :where(.title-lockup, .thesis, .closing-lockup, .cue-grid, .pattern-list) :where(h1, h2, h3, p) {
  color: var(--deck-ink);
  letter-spacing: 0;
}

.reveal :where(.da-fig, .nb, .pe-figure, .wc-figure) {
  color: #1f2329;
  font-size: 17px;
  letter-spacing: 0;
  line-height: normal;
  text-align: initial;
  text-wrap: auto;
}

.reveal :where(.da-fig, .nb, .pe-figure, .wc-figure) :where(h1, h2, h3, p, li, td, th, pre, code, span, strong) {
  letter-spacing: 0;
  text-wrap: auto;
}

.reveal .da-fig .da-step__src {
  color: #6b7079;
  text-decoration: underline;
  text-decoration-color: #c4c9d0;
  text-underline-offset: 2px;
}

.reveal .pe-figure .pe-src__link {
  color: var(--pe-accent);
  text-decoration: none;
}

.reveal .wc-figure .wc-cite {
  color: var(--wc-accent);
  text-decoration: none;
  border-bottom: 1px solid rgba(61, 77, 107, 0.4);
}

.reveal .slides section > h2:first-child {
  display: none;
}

.reveal .slide-number {
  display: none;
}

.reveal .progress {
  display: none;
}

.reveal .slide-menu-button,
.reveal .controls {
  display: none !important;
}

.title-slide,
.thesis-slide,
.closing-slide,
.cue-slide,
.drawing-slide,
.pattern-slide,
.map-slide,
.mock-slide,
.notebook-slide,
.hex-slide,
.image-slide,
.tweet-slide {
  min-height: 100%;
}

.title-lockup {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 585px;
}

.title-kicker {
  color: var(--deck-accent);
  font-size: 2.15rem;
  font-weight: 730;
  margin: 1rem 0 0;
}

.title-lockup h1 {
  margin: 0;
  max-width: 11ch;
  font-size: 5.6rem;
}

.title-subtitle {
  margin: 1.15rem 0 0;
  max-width: 23ch;
  color: var(--deck-muted);
  font-size: 2rem;
  font-weight: 620;
  line-height: 1.08;
  text-wrap: balance;
}

.thesis {
  min-height: 560px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.45rem;
}

.thesis-line {
  color: var(--deck-ink);
  font-size: 5rem;
  font-weight: 790;
  line-height: 1;
}

.thesis-line--accent {
  color: var(--deck-accent);
}

.slide-label {
  color: var(--deck-accent);
  font-size: 1.45rem;
  font-weight: 760;
  margin-bottom: 0.65rem;
}

.group-title {
  position: absolute;
  left: 50%;
  top: 12px;
  transform: translateX(-50%);
  z-index: 5;
  width: max-content;
  max-width: calc(100% - 36px);
  color: rgba(244, 241, 232, 0.58);
  font-size: 12px;
  font-weight: 650;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.38);
}

.hex-pair-slide .group-title {
  top: 12px;
}

.mock-slide,
.notebook-slide {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}

.mock-slide .slide-label,
.notebook-slide .slide-label {
  position: absolute;
  left: 18px;
  top: 12px;
  margin: 0;
}

.stage-title {
  color: var(--deck-accent);
  font-size: 1.35rem;
  font-weight: 760;
  margin-bottom: 1.05rem;
}

.mock-slide .da-fig,
.mock-slide .pe-figure,
.mock-slide .wc-figure,
.notebook-slide .nb {
  margin: 0 auto;
}

.mock-slide .da-fig {
  width: min(600px, calc(100vw - 96px));
  max-width: 600px;
  transform: scale(var(--fig-scale, 1));
  transform-origin: center center;
}

.data-agent-before {
  --fig-scale: 1.72;
}

.data-agent-after {
  --fig-scale: 1.25;
}

.mock-slide .da-fig__win,
.mock-slide .pe-app,
.mock-slide .wc-app,
.notebook-slide .nb__win {
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.34);
}

.mock-slide .da-fig__cap,
.mock-slide .pe-app__cap,
.mock-slide .wc-app__cap,
.notebook-slide .nb__cap {
  display: none;
}

.mock-slide .pe-figure,
.mock-slide .wc-figure,
.notebook-slide .nb {
  width: min(799px, calc(100vw - 112px));
  max-width: 799px;
  transform: scale(var(--fig-scale, 1));
  transform-origin: center center;
}

.pe-before {
  --fig-scale: 1.34;
}

.pe-after {
  --fig-scale: 1.11;
}

.wc-before {
  --fig-scale: 1.28;
}

.wc-after {
  --fig-scale: 1.18;
}

.notebook-slide {
  --fig-scale: 1.08;
}

.notebook-slide .nb__scroll {
  max-height: 540px;
}

.single-figure {
  min-height: 680px;
  display: grid;
  place-items: center;
}

.single-figure img {
  display: block;
  width: auto;
  max-width: 1244px;
  max-height: 668px;
  object-fit: contain;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.34);
}

.figure-pair {
  min-height: 684px;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  gap: 12px;
  align-items: center;
}

.figure-pair img {
  display: block;
  width: 100%;
  max-height: 666px;
  object-fit: contain;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.34);
}

.tweet-shell {
  min-height: 682px;
  display: grid;
  place-items: center;
  overflow: visible;
}

.tweet-shell .twitter-tweet {
  margin: 0 auto !important;
}

.tweet-shell .twitter-tweet-rendered,
.tweet-shell iframe[id^="twitter-widget-"] {
  transform: scale(1.32);
  transform-origin: center center;
}

.tweet-fallback {
  display: none;
  margin-top: 1rem;
  color: #66bfff;
  font-size: 1rem;
  font-weight: 650;
  text-align: center;
}

.drawing-board {
  position: relative;
  min-height: 680px;
  display: block;
}

.drawing-title {
  position: absolute;
  left: 50%;
  top: 12px;
  transform: translateX(-50%);
  color: var(--deck-ink);
  font-size: 3.7rem;
  font-weight: 760;
  line-height: 1;
  letter-spacing: 0;
  text-transform: lowercase;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.check-map {
  position: relative;
  min-height: 575px;
  isolation: isolate;
}

.check-map::before {
  content: "";
  position: absolute;
  inset: 58px 155px 58px;
  border: 1px solid var(--deck-faint);
  border-radius: 50%;
}

.check-map__center {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 260px;
  height: 260px;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border: 2px solid rgba(255, 106, 74, 0.65);
  border-radius: 50%;
  background: rgba(255, 106, 74, 0.1);
  box-shadow: inset 0 0 40px rgba(255, 106, 74, 0.08);
}

.check-map__center span {
  color: var(--deck-muted);
  font-size: 1rem;
  font-weight: 650;
}

.check-map__center strong {
  color: var(--deck-ink);
  font-size: 4rem;
  line-height: 1.05;
}

.check-chip {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--deck-ink);
  font-size: 1.55rem;
  font-weight: 730;
  line-height: 1;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(244, 241, 232, 0.23);
  border-radius: 10px;
  background: rgba(244, 241, 232, 0.06);
  backdrop-filter: blur(8px);
}

.check-chip::before {
  content: attr(data-n);
  display: inline-grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  color: var(--deck-bg);
  background: var(--deck-accent);
  border-radius: 999px;
  font-size: 1rem;
}

.check-chip--a { left: 68px; top: 92px; }
.check-chip--b { right: 40px; top: 95px; }
.check-chip--c { left: 22px; top: 258px; }
.check-chip--d { right: 75px; top: 260px; }
.check-chip--e { left: 210px; bottom: 78px; }
.check-chip--f { right: 200px; bottom: 78px; }

.cue-grid {
  min-height: 560px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-content: center;
}

.cue-item {
  min-height: 150px;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.3rem 1.55rem;
  border: 1px solid rgba(244, 241, 232, 0.2);
  border-radius: 12px;
  background: rgba(244, 241, 232, 0.055);
}

.cue-item span {
  display: inline-grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  color: var(--deck-bg);
  background: var(--deck-accent);
  font-size: 1.2rem;
  font-weight: 780;
}

.cue-item strong {
  color: var(--deck-ink);
  font-size: 3.25rem;
  line-height: 1;
  font-weight: 760;
}

.pattern-list {
  min-height: 560px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.8rem;
}

.pattern-item {
  display: grid;
  grid-template-columns: 4.4rem 1fr;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(244, 241, 232, 0.14);
}

.pattern-item span {
  display: inline-grid;
  place-items: center;
  width: 3.15rem;
  height: 3.15rem;
  color: var(--deck-bg);
  background: var(--deck-accent);
  border-radius: 999px;
  font-size: 1.2rem;
  font-weight: 780;
}

.pattern-item p {
  margin: 0;
  color: var(--deck-ink);
  font-size: 3rem;
  line-height: 1.04;
  font-weight: 730;
  text-wrap: balance;
}

.closing-lockup {
  min-height: 560px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.3rem;
}

.closing-lockup h2 {
  margin: 0;
  max-width: 12ch;
  font-size: 5rem;
  line-height: 1;
}

.closing-lockup p {
  margin: 0;
  max-width: 20ch;
  color: var(--deck-muted);
  font-size: 2.15rem;
  font-weight: 650;
  line-height: 1.1;
}

.closing-lockup--final h2 {
  color: var(--deck-accent);
  max-width: 13ch;
}

.focus-list .fragment.visible:not(.current-fragment) {
  opacity: 0.27;
  filter: grayscale(0.75);
}

.focus-list:has(.current-fragment) .seed {
  opacity: 0.27;
  filter: grayscale(0.75);
}

.focus-list .fragment.current-fragment {
  opacity: 1;
  filter: none;
}

.reveal .fragment {
  transition:
    opacity 260ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .reveal .fragment {
    transition: none !important;
    transform: none !important;
  }
}
