/* GENERATED by scripts/build-curriculum.mjs — do not edit.
   Self-contained on purpose: pages under landing/public/ are copied verbatim by
   Vite and cannot reference the bundled Tailwind stylesheet. */
:root {
  --ink: #1a1a1a;
  --paper: #f3f4f6;
  --muted: #55554e;
  --faint: #8a8a80;
  --accent: #f0d7ff;
  --line: rgba(26, 26, 26, 0.12);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: Figtree, ui-sans-serif, system-ui, sans-serif;
  color: var(--ink);
  background: #fff;
  line-height: 1.6;
}
a { color: #6b21a8; }
a:hover { color: var(--ink); }

.site-nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 1rem 1.5rem;
  border-bottom: 2px solid var(--ink);
}
.site-nav .brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
}
.site-nav nav { display: flex; flex-wrap: wrap; gap: 1rem; margin-left: auto; }
.site-nav nav a { color: var(--muted); text-decoration: none; font-size: 0.9375rem; }
.site-nav nav a:hover { color: var(--ink); }

.tut-main { max-width: 62rem; margin: 0 auto; padding: 1.5rem 1.25rem 4rem; }
.crumbs { font-size: 0.8125rem; color: var(--faint); margin-bottom: 1.5rem; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs .sep { margin: 0 0.5rem; }

.tut-hero {
  border: 2px solid var(--ink);
  border-radius: 32px;
  background: var(--ink);
  color: var(--paper);
  padding: 2rem 1.75rem;
  margin-bottom: 2rem;
}
.tut-hero .kicker {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent);
  border: 2px solid rgba(243, 244, 246, 0.3);
  background: rgba(243, 244, 246, 0.1);
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
}
.tut-hero h1 {
  font-family: "EB Garamond", Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.85rem, 4vw, 2.6rem);
  line-height: 1.15;
  margin: 1rem 0 0.75rem;
}
.tut-hero .lede { color: #d6d6d0; margin: 0; font-size: 1.0625rem; }
.tut-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.25rem;
  font-size: 0.8125rem;
  color: #b9b9b2;
}
.tut-meta strong { color: var(--paper); }

.tut-layout { display: grid; gap: 2rem; }
@media (min-width: 60rem) {
  .tut-layout { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; }
  .tut-toc { position: sticky; top: 1.5rem; }
}
.tut-toc {
  border: 2px solid var(--ink);
  border-radius: 22px;
  padding: 1.125rem 1.25rem;
  background: var(--paper);
}
.tut-toc h2 {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 0.75rem;
  color: var(--faint);
}
.tut-toc ol { list-style: none; margin: 0; padding: 0; font-size: 0.875rem; }
.tut-toc li + li { margin-top: 0.5rem; }
.tut-toc a { color: var(--muted); text-decoration: none; }
.tut-toc a:hover, .tut-toc a[aria-current="true"] { color: var(--ink); font-weight: 600; }

.tut-objectives {
  border: 2px solid var(--ink);
  border-radius: 22px;
  padding: 1.25rem 1.5rem;
  background: var(--accent);
  margin-bottom: 2rem;
}
.tut-objectives h2 { font-size: 1rem; margin: 0 0 0.625rem; }
.tut-objectives ul { margin: 0; padding-left: 1.25rem; }
.tut-objectives li + li { margin-top: 0.375rem; }

.tut-h2 {
  font-family: "EB Garamond", Georgia, serif;
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 1.2;
  margin: 2.5rem 0 0.875rem;
  scroll-margin-top: 1.5rem;
}
.tut-h3 { font-size: 1.1875rem; margin: 2rem 0 0.625rem; scroll-margin-top: 1.5rem; }
.tut-h4 { font-size: 1rem; margin: 1.5rem 0 0.5rem; }
.tut-p { margin: 0 0 1rem; font-size: 1.0625rem; }
.tut-list { margin: 0 0 1.25rem; padding-left: 1.375rem; font-size: 1.0625rem; }
.tut-list li + li { margin-top: 0.4375rem; }
.tut-quote {
  margin: 1.5rem 0;
  padding: 0.25rem 0 0.25rem 1.125rem;
  border-left: 4px solid var(--accent);
  color: var(--muted);
}
.tut-quote .tut-p { margin-bottom: 0.5rem; }
.tut-tablewrap { overflow-x: auto; margin: 1.5rem 0; }
.tut-table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; }
.tut-table th, .tut-table td {
  border: 1px solid var(--line);
  padding: 0.5rem 0.75rem;
  text-align: left;
}
.tut-table th { background: var(--paper); font-weight: 600; }
.tut-code {
  margin: 1.25rem 0;
  padding: 1rem 1.125rem;
  border: 2px solid var(--ink);
  border-radius: 16px;
  background: #1a1a1a;
  color: #f3f4f6;
  overflow-x: auto;
  font-size: 0.875rem;
  line-height: 1.6;
}
.tut-code code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; }
.tut-p code, .tut-list code, .tut-table code {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0.0625rem 0.3125rem;
}

/* Step cards — the same numbered-chamber look as the in-app Tutorials page. */
.tut-step {
  border: 2px solid var(--ink);
  border-radius: 22px;
  background: #fff;
  margin: 1.5rem 0;
  overflow: hidden;
}
.tut-step > summary {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  cursor: pointer;
  list-style: none;
}
.tut-step > summary::-webkit-details-marker { display: none; }
.tut-step .num {
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--accent);
  font-size: 0.75rem;
  font-weight: 700;
}
.tut-step .st {
  font-family: "EB Garamond", Georgia, serif;
  font-size: 1.1875rem;
}
.tut-step .chev { margin-left: auto; color: var(--faint); transition: transform 0.2s; }
.tut-step[open] .chev { transform: rotate(180deg); }
.tut-step .inner { padding: 0.25rem 1.25rem 1.125rem; border-top: 2px solid var(--line); }
.tut-step .inner > .tut-p:first-child { margin-top: 1rem; }

/* Callouts */
.tut-call {
  margin: 1.5rem 0;
  padding: 1.125rem 1.25rem;
  border: 2px solid var(--ink);
  border-radius: 18px;
  background: var(--paper);
}
.tut-call .lbl {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.5rem;
  color: var(--muted);
}
.tut-call .tut-p:last-child { margin-bottom: 0; }
.tut-call-principle { background: var(--accent); }
.tut-call-pitfall { background: #ffe0e0; }
.tut-call-interviewer { background: #e2f0d9; }

/* Embedded explainers (::: video). Poster until clicked — see videoHtml() in
   scripts/build-curriculum.mjs for why nothing third-party loads up front. */
.tut-video {
  margin: 1.75rem 0;
  border: 2px solid var(--ink);
  border-radius: 22px;
  overflow: hidden;
  background: var(--paper);
}
.tut-video-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 1rem;
  border-bottom: 2px solid var(--ink);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.tut-video-head .meta {
  margin-left: auto;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
.tut-video-note {
  margin: 0;
  padding: 0.75rem 1.125rem 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--muted);
}
.tut-video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  margin: 0.875rem 1.125rem;
  border: 2px solid var(--ink);
  border-radius: 14px;
  overflow: hidden;
  background: var(--ink);
}
.tut-video-frame iframe,
.tut-video-frame .poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.tut-video-frame .poster {
  display: block;
  padding: 0;
  background: var(--ink);
  cursor: pointer;
}
.tut-video-frame .poster img {
  width: 100%;
  height: 100%;
  /* hqdefault.jpg is 4:3 with bars; cover crops them back to the frame. */
  object-fit: cover;
  display: block;
  transition: transform 320ms ease, opacity 320ms ease;
  opacity: 0.82;
}
.tut-video-frame .poster:hover img { transform: scale(1.03); opacity: 1; }
.tut-video-frame .play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 66px;
  height: 46px;
  transform: translate(-50%, -50%);
  border: 2px solid var(--ink);
  border-radius: 12px;
  background: var(--accent);
  transition: transform 220ms ease, background 220ms ease;
}
.tut-video-frame .play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 8px 0 8px 13px;
  border-color: transparent transparent transparent var(--ink);
}
.tut-video-frame .poster:hover .play { transform: translate(-50%, -50%) scale(1.09); }
.tut-video-frame .ttl {
  position: absolute;
  inset: auto 0 0 0;
  padding: 2.25rem 1rem 0.75rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.82), transparent);
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: left;
}
.tut-video .sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.tut-video-chapters { margin: 0; padding: 0 1.125rem 1.125rem; }
.tut-video-chapters .lbl {
  margin: 0 0 0.5rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.tut-video-chapters ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4375rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tut-video-chapters button {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4375rem;
  font: inherit;
  font-size: 0.8125rem;
  text-align: left;
  padding: 0.3125rem 0.6875rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}
.tut-video-chapters button:hover,
.tut-video-chapters button[aria-current="true"] {
  background: var(--accent);
}
.tut-video-chapters .t {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.tut-video-chapters button:hover .t { color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
  .tut-video-frame .poster img,
  .tut-video-frame .play { transition-duration: 1ms; }
}

/* Runnable cells */
.tut-cell {
  margin: 1.5rem 0;
  border: 2px solid var(--ink);
  border-radius: 18px;
  overflow: hidden;
}
/* Language tabs — only present when a cell solves the problem twice. */
.tut-cell-tabs {
  display: flex;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem 0;
  background: var(--paper);
}
.tut-cell-tabs button {
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.375rem 0.75rem;
  border: 2px solid var(--line);
  border-bottom: none;
  border-radius: 10px 10px 0 0;
  background: #fbfbfa;
  color: var(--muted);
  cursor: pointer;
}
.tut-cell-tabs button:hover { color: var(--ink); }
.tut-cell-tabs button[aria-selected="true"] {
  border-color: var(--ink);
  background: var(--accent);
  color: var(--ink);
}
.tut-cell-pane[hidden] { display: none; }
.tut-cell-tabs + .tut-cell-pane > .tut-cell-head,
.tut-cell-tabs ~ .tut-cell-pane > .tut-cell-head { border-top: 2px solid var(--ink); }
.tut-cell-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 1rem;
  background: var(--paper);
  border-bottom: 2px solid var(--ink);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.tut-cell-head .run {
  margin-left: auto;
  font: inherit;
  text-transform: none;
  letter-spacing: 0;
  padding: 0.3125rem 0.875rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--accent);
  cursor: pointer;
}
.tut-cell-head .run:hover { background: var(--ink); color: var(--paper); }
.tut-cell-head .run[disabled] { opacity: 0.55; cursor: default; }
.tut-cell pre {
  margin: 0;
  padding: 1rem 1.125rem;
  background: var(--ink);
  color: var(--paper);
  overflow-x: auto;
  font-size: 0.875rem;
  line-height: 1.6;
}
.tut-out {
  margin: 0;
  padding: 0.875rem 1.125rem;
  border-top: 2px solid var(--line);
  background: #fbfbfa;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8125rem;
  white-space: pre-wrap;
  color: var(--muted);
}
.tut-out[hidden] { display: none; }
.tut-out .err { color: #b42318; }
.tut-out-note {
  padding: 0.625rem 1.125rem;
  border-top: 2px solid var(--line);
  background: #fbfbfa;
  font-size: 0.75rem;
  color: var(--faint);
}

/* Gated preview */
.tut-gated {
  border: 2px dashed var(--ink);
  border-radius: 24px;
  padding: 1.75rem;
  background: var(--paper);
  margin: 2rem 0;
  text-align: center;
}
.tut-gated h2 { margin: 0 0 0.625rem; font-size: 1.25rem; }
.tut-gated p { color: var(--muted); margin: 0 auto 1.25rem; max-width: 34rem; }
.tut-cta {
  display: inline-block;
  padding: 0.6875rem 1.5rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--accent);
  color: var(--ink);
  font-weight: 600;
  text-decoration: none;
}
.tut-cta:hover { background: var(--ink); color: var(--paper); }

/* Track index */
.tut-mod {
  border: 2px solid var(--ink);
  border-radius: 24px;
  padding: 1.5rem;
  margin: 1.5rem 0;
}
.tut-mod h2 { margin: 0 0 0.375rem; font-size: 1.25rem; }
.tut-mod .sub { color: var(--muted); margin: 0 0 1rem; font-size: 0.9375rem; }
.tut-lessons { list-style: none; margin: 0; padding: 0; }
.tut-lessons li + li { margin-top: 0.5rem; }
.tut-lessons a {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  text-decoration: none;
  color: var(--ink);
  background: #fff;
}
.tut-lessons a:hover { border-color: var(--ink); background: var(--paper); }
.tut-lessons .n { color: var(--faint); font-size: 0.8125rem; min-width: 1.5rem; }
.tut-lessons .t { font-weight: 600; }
.tut-lessons .d { color: var(--muted); font-size: 0.875rem; }
.tut-lessons .badge {
  margin-left: auto;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  padding: 0.125rem 0.5rem;
  white-space: nowrap;
}
.tut-lessons .badge-free { background: #e2f0d9; }
.tut-lessons .badge-app { background: var(--paper); color: var(--muted); }

.tut-nav-pair {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--line);
}
.tut-nav-pair a {
  flex: 1 1 14rem;
  border: 2px solid var(--ink);
  border-radius: 18px;
  padding: 0.875rem 1.125rem;
  text-decoration: none;
  color: var(--ink);
}
.tut-nav-pair a:hover { background: var(--paper); }
.tut-nav-pair .dir {
  display: block;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--faint);
}
.tut-nav-pair .next { text-align: right; }

.site-foot {
  border-top: 2px solid var(--ink);
  padding: 2rem 1.5rem;
  background: var(--paper);
  font-size: 0.875rem;
}
.foot-cols {
  max-width: 62rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
}
.foot-cols h4 { margin: 0 0 0.625rem; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--faint); }
.foot-cols ul { list-style: none; margin: 0; padding: 0; }
.foot-cols li + li { margin-top: 0.375rem; }
.foot-cols a { color: var(--muted); text-decoration: none; }
.foot-cols a:hover { color: var(--ink); }
.foot-base {
  max-width: 62rem;
  margin: 2rem auto 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  color: var(--faint);
  font-size: 0.8125rem;
}

.cv {
  /* Declared here as well as on .cv-track: the shapes added after the first
     three lay out cells without a .cv-track wrapper, and a .cv-cell with no
     --cv-cell collapses to nothing. */
  --cv-cell: 2.5rem;
  margin: 1.75rem 0;
  padding: 1.25rem;
  border: 2px solid #1a1a1a;
  border-radius: 22px;
  background: #fff;
}
.cv-title {
  font-weight: 600;
  font-size: 0.9375rem;
  color: #1a1a1a;
  margin-bottom: 0.875rem;
}
.cv-stage { overflow-x: auto; padding-bottom: 0.25rem; }
.cv-track {
  --cv-cell: 2.5rem;
  position: relative;
  display: inline-block;
  min-width: calc(var(--cv-cell) * var(--cv-n));
  padding: 1.5rem 0 2.25rem;
}
.cv-row { display: flex; position: relative; z-index: 2; }
.cv-cell {
  width: var(--cv-cell);
  height: var(--cv-cell);
  display: grid;
  place-items: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.875rem;
  color: #1a1a1a;
  border: 1px solid rgba(26, 26, 26, 0.18);
  border-radius: 8px;
  background: #f3f4f6;
}
.cv-cell + .cv-cell { margin-left: -1px; }

.cv-window, .cv-range {
  position: absolute;
  top: 1.5rem;
  left: 0;
  height: var(--cv-cell);
  border-radius: 10px;
  z-index: 1;
}
.cv-window { background: #f0d7ff; box-shadow: inset 0 0 0 2px #1a1a1a; }
.cv-range { background: #d7f0ff; box-shadow: inset 0 0 0 2px #1a1a1a; }

.cv-ptr, .cv-mid {
  position: absolute;
  left: 0;
  width: var(--cv-cell);
  display: grid;
  place-items: center;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  z-index: 3;
}
.cv-ptr span, .cv-mid span {
  padding: 0.0625rem 0.375rem;
  border-radius: 999px;
  border: 1.5px solid #1a1a1a;
  background: #fff;
}
.cv-ptr-lo { top: 0; }
.cv-ptr-hi { top: 0; }
.cv-ptr-hi span { background: #ffe8b3; }
.cv-ptr-lo span { background: #f0d7ff; }
.cv-mid { bottom: 0.5rem; }
.cv-mid span { background: #d7f0ff; }

.cv-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
  margin-top: 0.75rem;
  font-size: 0.75rem;
  color: #55554e;
}
.cv-key { display: inline-flex; align-items: center; gap: 0.375rem; }
.cv-swatch {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 4px;
  border: 1.5px solid #1a1a1a;
  display: inline-block;
}
.cv-swatch-win, .cv-swatch-lo { background: #f0d7ff; }
.cv-swatch-hi { background: #ffe8b3; }
.cv-swatch-range, .cv-swatch-mid { background: #d7f0ff; }
.cv-swatch-hot { background: #ffd0d0; }
.cv-swatch-out { background: #d9f5e3; }
.cv-caption {
  margin: 0.875rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: #55554e;
}

/* ── step panels ───────────────────────────────────────────────────────────
   Every panel occupies the same grid cell, so the figure is as tall as its
   tallest state and switching states never reflows the page. Only the last
   panel is visible without animation — see stepPanels(). */
.cv-panels { display: grid; }
.cv-panels > .cv-panel { grid-area: 1 / 1; opacity: 0; }
.cv-panels > .cv-panel-last { opacity: 1; }

.cv-oplabel {
  display: inline-block;
  margin-top: 0.75rem;
  padding: 0.125rem 0.5rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 999px;
  background: #fff;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  color: #1a1a1a;
}

/* Region + emphasis shading, shared by every cell-based shape. */
.cv-cell-on { background: #f0d7ff; border-color: #1a1a1a; }
.cv-cell-mark { background: #d7f0ff; border-color: #1a1a1a; font-weight: 700; }
.cv-cell-lt { background: #f0d7ff; }
.cv-cell-eq { background: #d7f0ff; }
.cv-cell-gt { background: #ffe8b3; }

/* ── hash-buckets ─────────────────────────────────────────────────────────── */
.cv-buckets {
  display: grid;
  grid-template-columns: repeat(var(--cv-b), minmax(4.25rem, 1fr));
  gap: 0.5rem;
  align-items: start;
  min-width: min(100%, calc(var(--cv-b) * 4.75rem));
}
.cv-bucket {
  border: 1.5px solid rgba(26, 26, 26, 0.35);
  border-radius: 12px;
  padding: 0.375rem;
  background: #f9fafb;
  min-height: 4.5rem;
}
.cv-bucket-hot { background: #ffd0d0; border-color: #1a1a1a; }
.cv-bslot {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #55554e;
  text-align: center;
  margin-bottom: 0.25rem;
}
.cv-bchain { display: flex; flex-direction: column; align-items: center; gap: 0.125rem; }
.cv-bkey {
  display: block;
  width: 100%;
  padding: 0.1875rem 0.25rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 7px;
  background: #f0d7ff;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  text-align: center;
  color: #1a1a1a;
}
.cv-blink { font-size: 0.625rem; line-height: 1; color: #1a1a1a; }

/* ── prefix-sums ──────────────────────────────────────────────────────────── */
.cv-rows { padding-left: calc(var(--cv-cell) * 0.5); }
.cv-rowlab {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #55554e;
  margin: 0.625rem 0 0.25rem;
}
/* Pulled back half a cell so P[i] sits on the BOUNDARY before value i — which
   is the whole reason P has an extra leading zero. */
.cv-row-shift { margin-left: calc(var(--cv-cell) * -0.5); }
.cv-cell-p { border-radius: 999px; }

/* ── stack ────────────────────────────────────────────────────────────────── */
.cv-stackwrap { display: flex; flex-direction: column; align-items: flex-start; }
.cv-stack {
  display: grid;
  grid-template-rows: repeat(var(--cv-d), var(--cv-cell));
  gap: 0.1875rem;
  padding: 0.375rem;
  border: 2px solid #1a1a1a;
  border-top: none;
  border-radius: 0 0 12px 12px;
  background: #f9fafb;
}
.cv-slot {
  width: calc(var(--cv-cell) * 2);
  display: grid;
  place-items: center;
  border: 1.5px solid #1a1a1a;
  border-radius: 8px;
  background: #f3f4f6;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.875rem;
  color: #1a1a1a;
}
.cv-slot-empty { border-style: dashed; border-color: rgba(26, 26, 26, 0.2); background: transparent; }
.cv-slot-top { background: #f0d7ff; box-shadow: inset 0 0 0 1.5px #1a1a1a; }

/* ── intervals ────────────────────────────────────────────────────────────── */
.cv-timeline { position: relative; min-width: 22rem; padding: 0.25rem 0; }
.cv-ilane { position: relative; height: 1.875rem; }
.cv-ilane-rule {
  height: 1.375rem;
  border-top: 1.5px dashed rgba(26, 26, 26, 0.35);
  margin-top: 0.375rem;
}
.cv-ilabel {
  position: absolute;
  top: 0.25rem;
  left: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #55554e;
}
.cv-ibar {
  position: absolute;
  top: 0.1875rem;
  height: 1.5rem;
  min-width: 2.75rem;
  display: grid;
  place-items: center;
  border: 1.5px solid #1a1a1a;
  border-radius: 8px;
  background: #d7f0ff;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.6875rem;
  color: #1a1a1a;
}
.cv-ibar-out { background: #d9f5e3; }
.cv-sweep {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0;
  border-left: 2px dashed #1a1a1a;
  z-index: 3;
}

/* ── trees (heap-tree, tree) ──────────────────────────────────────────────────
   Nested flex with connector lines drawn as pseudo-element borders: no SVG, no
   coordinate maths, and it reflows on a narrow screen. */
.cv-treewrap { display: flex; flex-direction: column; align-items: center; }
.cv-tree { display: flex; justify-content: center; padding-bottom: 0.25rem; }
.cv-tnode { position: relative; display: flex; flex-direction: column; align-items: center; }
.cv-tlabel {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  min-width: 2.25rem;
  padding: 0.3125rem 0.5rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 9px;
  background: #f3f4f6;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8125rem;
  text-align: center;
  color: #1a1a1a;
}
.cv-tlabel-on { background: #f0d7ff; }
.cv-tkids {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  padding-top: 1.25rem;
  margin-top: 0.625rem;
}
/* Stem down from the parent. */
.cv-tkids::before {
  content: "";
  position: absolute;
  top: -0.625rem;
  left: 50%;
  width: 2px;
  height: 0.625rem;
  background: #1a1a1a;
}
/* Each child: a stem up, plus half of the horizontal bar joining its siblings. */
.cv-tkids > .cv-tnode::before {
  content: "";
  position: absolute;
  top: -1.25rem;
  left: calc(50% - 1px);
  width: 2px;
  height: 1.25rem;
  background: #1a1a1a;
}
.cv-tkids > .cv-tnode::after {
  content: "";
  position: absolute;
  top: -1.25rem;
  left: 0;
  right: 0;
  height: 2px;
  background: #1a1a1a;
}
.cv-tkids > .cv-tnode:first-child::after { left: calc(50% - 1px); }
.cv-tkids > .cv-tnode:last-child::after { right: calc(50% - 1px); }
.cv-tkids > .cv-tnode:only-child::after { display: none; }
.cv-arr { display: flex; margin-top: 0.875rem; }

/* ── partition ────────────────────────────────────────────────────────────── */
.cv-partwrap { display: flex; flex-direction: column; align-items: flex-start; }
.cv-ptrrow {
  position: relative;
  height: 3.75rem;
  width: calc(var(--cv-cell) * var(--cv-n));
  margin-top: 0.25rem;
}
.cv-pmark {
  position: absolute;
  left: calc(var(--cv-cell) * var(--cv-at));
  width: var(--cv-cell);
  display: grid;
  place-items: center;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cv-pmark > span {
  padding: 0.0625rem 0.3125rem;
  border-radius: 999px;
  border: 1.5px solid #1a1a1a;
  background: #fff;
}
.cv-pmark-lt { top: 0; }
.cv-pmark-i { top: 1.25rem; }
.cv-pmark-gt { top: 2.5rem; }
.cv-pmark-lt > span { background: #f0d7ff; }
.cv-pmark-i > span { background: #fff; }
.cv-pmark-gt > span { background: #ffe8b3; }
/* Pinned to an edge because the index ran past it — dashed to say so. */
.cv-pmark-past > span { border-style: dashed; opacity: 0.6; }

/* ── recursion-tree ───────────────────────────────────────────────────────── */
.cv-levels { display: flex; flex-direction: column; gap: 0.4375rem; min-width: 22rem; }
.cv-level {
  display: grid;
  grid-template-columns: 3.25rem 1fr 5.5rem;
  align-items: center;
  gap: 0.5rem;
}
.cv-levlab, .cv-levwork {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.6875rem;
  color: #55554e;
}
.cv-levwork { text-align: right; }
.cv-levbars { display: flex; gap: 2px; }
.cv-levbar {
  flex: 0 0 calc(var(--cv-frac) * 1%);
  min-width: 0;
  height: 1.375rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1.5px solid #1a1a1a;
  border-radius: 6px;
  background: #d7f0ff;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.625rem;
  color: #1a1a1a;
}

/* ── linked-list ──────────────────────────────────────────────────────────── */
.cv-llist {
  --cv-lnode: 2.75rem;
  --cv-lgap: 1.5rem;
  --cv-pitch: calc(var(--cv-lnode) + var(--cv-lgap));
  position: relative;
  display: inline-block;
  padding: 1.75rem 0 2.75rem;
  min-width: calc(var(--cv-pitch) * var(--cv-n));
}
.cv-lrow { display: flex; align-items: center; }
.cv-lnode {
  flex: 0 0 var(--cv-lnode);
  height: var(--cv-lnode);
  display: grid;
  place-items: center;
  border: 1.5px solid #1a1a1a;
  border-radius: 10px;
  background: #f3f4f6;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8125rem;
  color: #1a1a1a;
}
.cv-lnode-entry { background: #d7f0ff; }
.cv-larrow {
  flex: 0 0 var(--cv-lgap);
  text-align: center;
  font-size: 0.875rem;
  color: #1a1a1a;
}
.cv-larrow-tail { flex-basis: auto; padding-left: 0.375rem; white-space: nowrap; font-size: 0.75rem; }
/* The return edge, drawn as three borders of a rounded box rather than an SVG
   path — it scales with the font and needs no viewBox. */
.cv-lback {
  position: absolute;
  bottom: 1.5rem;
  left: calc(var(--cv-pitch) * var(--cv-from) + var(--cv-lnode) / 2);
  width: calc(var(--cv-pitch) * (var(--cv-to) - var(--cv-from)));
  height: 0.875rem;
  border: 2px solid #1a1a1a;
  border-top: none;
  border-radius: 0 0 10px 10px;
}
.cv-lptr {
  position: absolute;
  left: 0;
  width: var(--cv-lnode);
  display: grid;
  place-items: center;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cv-lptr > span {
  padding: 0.0625rem 0.3125rem;
  border-radius: 999px;
  border: 1.5px solid #1a1a1a;
  background: #fff;
}
.cv-lptr-slow { top: 0; }
.cv-lptr-slow > span { background: #f0d7ff; }
.cv-lptr-fast { top: 0.9375rem; }
.cv-lptr-fast > span { background: #ffe8b3; }

/* ── funnel ───────────────────────────────────────────────────────────────── */
.cv-funnel { min-width: 20rem; }
.cv-frow {
  display: grid;
  grid-template-columns: minmax(5rem, 8rem) 1fr 3rem;
  align-items: center;
  gap: 0.625rem;
  padding: 0.1875rem 0;
}
.cv-frow-head, .cv-frow-head .cv-fpct {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #55554e;
  border-bottom: 1.5px solid rgba(26, 26, 26, 0.2);
  padding-bottom: 0.25rem;
  margin-bottom: 0.25rem;
}
.cv-flab { font-size: 0.8125rem; color: #1a1a1a; }
.cv-fbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: calc(var(--cv-frac) * 1%);
  height: 1.625rem;
  padding: 0 0.4375rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 8px;
  background: #d7f0ff;
}
.cv-fval {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.6875rem;
  color: #1a1a1a;
  white-space: nowrap;
}
.cv-fpct {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  text-align: right;
  color: #55554e;
}

/* ── flow ─────────────────────────────────────────────────────────────────── */
.cv-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--cv-c), 1fr);
  gap: 0;
  min-width: calc(var(--cv-c) * 6rem);
  padding: 0.375rem 0;
}
.cv-fcol {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.3125rem;
  padding: 0.375rem 0.5rem;
}
.cv-fnode {
  display: grid;
  place-items: center;
  min-height: 2.375rem;
  padding: 0.3125rem 0.375rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 10px;
  background: #f3f4f6;
  font-size: 0.75rem;
  line-height: 1.25;
  text-align: center;
  color: #1a1a1a;
}
.cv-farrow {
  position: absolute;
  top: 50%;
  right: -0.375rem;
  transform: translateY(-50%);
  font-size: 1.125rem;
  line-height: 1;
  color: #1a1a1a;
}
/* The travelling request: a highlight one column wide. Its base position is the
   LAST column, which is where the timeline ends. */
.cv-hop {
  position: absolute;
  top: 0;
  bottom: 0;
  width: calc(100% / var(--cv-c));
  border-radius: 12px;
  background: #f0d7ff;
  box-shadow: inset 0 0 0 2px #1a1a1a;
  z-index: 1;
}

/* ── waterfall ────────────────────────────────────────────────────────────── */
.cv-wf { min-width: 20rem; }
.cv-wfbars, .cv-wflabs {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 0.375rem;
}
.cv-wfbars { position: relative; height: 9rem; align-items: end; }
.cv-wfzero {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 1.5px solid rgba(26, 26, 26, 0.45);
  z-index: 0;
}
.cv-wfcol { position: relative; height: 100%; }
.cv-wfbar {
  position: absolute;
  left: 8%;
  right: 8%;
  border: 1.5px solid #1a1a1a;
  border-radius: 6px;
  z-index: 1;
}
.cv-wfbar-up { background: #d9f5e3; }
.cv-wfbar-down { background: #ffd0d0; }
.cv-wfbar-total { background: #d7f0ff; }
.cv-wfval {
  position: absolute;
  bottom: -0.0625rem;
  left: 0;
  right: 0;
  text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.625rem;
  color: #55554e;
}
.cv-wflabs { margin-top: 1.125rem; }
.cv-wflab { font-size: 0.6875rem; line-height: 1.3; text-align: center; color: #1a1a1a; }

/* ── tree (issue tree) ────────────────────────────────────────────────────── */
.cv-tree-wide { min-width: 20rem; }
.cv-tree-wide .cv-tlabel {
  min-width: 4.5rem;
  max-width: 8.5rem;
  font-family: inherit;
  font-size: 0.75rem;
  line-height: 1.25;
  text-align: center;
}
.cv-tlabel-root { background: #f0d7ff; font-weight: 600; }

/* ── timeline ─────────────────────────────────────────────────────────────── */
.cv-tl { min-width: 20rem; padding: 0.5rem 0 0.25rem; }
.cv-tlbar {
  position: relative;
  display: flex;
  gap: 2px;
  border-radius: 10px;
}
.cv-tlseg {
  flex: 0 0 calc(var(--cv-frac) * 1% - 2px);
  min-width: 0;
  height: 3.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.125rem;
  overflow: hidden;
  padding: 0.25rem 0.375rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 9px;
  background: #d7f0ff;
}
.cv-tlname { font-size: 0.6875rem; line-height: 1.2; color: #1a1a1a; }
.cv-tlmin {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.625rem;
  color: #55554e;
}
.cv-tlmark {
  position: absolute;
  top: -0.375rem;
  bottom: -0.375rem;
  width: 0;
  border-left: 2px solid #1a1a1a;
  z-index: 2;
}
.cv-tlmark::before {
  content: "";
  position: absolute;
  top: -0.1875rem;
  left: -0.28125rem;
  width: 0.5rem;
  height: 0.5rem;
  border: 1.5px solid #1a1a1a;
  border-radius: 999px;
  background: #ffe8b3;
}

.cv-tlmark-timelinesglql {
  left: 100.000%;
  animation: cv-tick-timelinesglql 4.00s steps(1, end) infinite;
}
@keyframes cv-tick-timelinesglql {
  0% { left: 15.000%; }
  25% { left: 30.000%; }
  50% { left: 75.000%; }
  75% { left: 100.000%; }
  100% { left: 100.000%; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-tlmark-timelinesglql { animation-duration: 0.01ms; animation-iteration-count: 1; }
}

.cv-window-slidingwindow39e14x {
  width: calc(var(--cv-cell) * 3);
  /* Base = the LAST position: reduced motion collapses the duration, so the
     un-animated state is what a reduced-motion reader is left looking at. */
  transform: translateX(calc(var(--cv-cell) * 5));
  animation: cv-slide-slidingwindow39e14x 5.10s steps(1, end) infinite;
}
@keyframes cv-slide-slidingwindow39e14x {
  0% { transform: translateX(calc(var(--cv-cell) * 0)); }
  16.6667% { transform: translateX(calc(var(--cv-cell) * 1)); }
  33.3333% { transform: translateX(calc(var(--cv-cell) * 2)); }
  50% { transform: translateX(calc(var(--cv-cell) * 3)); }
  66.6667% { transform: translateX(calc(var(--cv-cell) * 4)); }
  83.3333% { transform: translateX(calc(var(--cv-cell) * 5)); }
  100% { transform: translateX(calc(var(--cv-cell) * 5)); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-window-slidingwindow39e14x { animation-duration: 0.01ms; animation-iteration-count: 1; }
}

.cv-lo-twopointers1e1d34 {
  transform: translateX(calc(var(--cv-cell) * 2));
  animation: cv-lo-twopointers1e1d34 4.75s steps(1, end) infinite;
}
.cv-hi-twopointers1e1d34 {
  transform: translateX(calc(var(--cv-cell) * 3));
  animation: cv-hi-twopointers1e1d34 4.75s steps(1, end) infinite;
}
@keyframes cv-lo-twopointers1e1d34 {
  0% { transform: translateX(calc(var(--cv-cell) * 0)); }
  20% { transform: translateX(calc(var(--cv-cell) * 1)); }
  40% { transform: translateX(calc(var(--cv-cell) * 1)); }
  60% { transform: translateX(calc(var(--cv-cell) * 2)); }
  80% { transform: translateX(calc(var(--cv-cell) * 2)); }
  100% { transform: translateX(calc(var(--cv-cell) * 2)); }
}
@keyframes cv-hi-twopointers1e1d34 {
  0% { transform: translateX(calc(var(--cv-cell) * 5)); }
  20% { transform: translateX(calc(var(--cv-cell) * 5)); }
  40% { transform: translateX(calc(var(--cv-cell) * 4)); }
  60% { transform: translateX(calc(var(--cv-cell) * 4)); }
  80% { transform: translateX(calc(var(--cv-cell) * 3)); }
  100% { transform: translateX(calc(var(--cv-cell) * 3)); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-lo-twopointers1e1d34, .cv-hi-twopointers1e1d34 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}

.cv-range-binarysearch1ho999 {
  transform: translateX(calc(var(--cv-cell) * 6));
  width: calc(var(--cv-cell) * 2);
  animation: cv-range-binarysearch1ho999 3.30s steps(1, end) infinite;
}
.cv-mid-binarysearch1ho999 {
  transform: translateX(calc(var(--cv-cell) * 6));
  animation: cv-mid-binarysearch1ho999 3.30s steps(1, end) infinite;
}
@keyframes cv-range-binarysearch1ho999 {
  0% { transform: translateX(calc(var(--cv-cell) * 0)); width: calc(var(--cv-cell) * 8); }
  33.3333% { transform: translateX(calc(var(--cv-cell) * 4)); width: calc(var(--cv-cell) * 4); }
  66.6667% { transform: translateX(calc(var(--cv-cell) * 6)); width: calc(var(--cv-cell) * 2); }
  100% { transform: translateX(calc(var(--cv-cell) * 6)); width: calc(var(--cv-cell) * 2); }
}
@keyframes cv-mid-binarysearch1ho999 {
  0% { transform: translateX(calc(var(--cv-cell) * 3)); }
  33.3333% { transform: translateX(calc(var(--cv-cell) * 5)); }
  66.6667% { transform: translateX(calc(var(--cv-cell) * 6)); }
  100% { transform: translateX(calc(var(--cv-cell) * 6)); }
}
@media (prefers-reduced-motion: reduce) {
  /* Duration only. `animation: none` here would snap .cv-range back to its
     pre-animation width and show the wrong range — the .cp-fill trap. */
  .cv-range-binarysearch1ho999, .cv-mid-binarysearch1ho999 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-panel-hashbuckets1ew38v-0 { animation: cv-panel-hashbuckets1ew38v-0 5.70s steps(1, end) infinite; }
@keyframes cv-panel-hashbuckets1ew38v-0 {
  0% { opacity: 1; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 0; }
  83.3333% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbuckets1ew38v-1 { animation: cv-panel-hashbuckets1ew38v-1 5.70s steps(1, end) infinite; }
@keyframes cv-panel-hashbuckets1ew38v-1 {
  0% { opacity: 0; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 0; }
  83.3333% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbuckets1ew38v-2 { animation: cv-panel-hashbuckets1ew38v-2 5.70s steps(1, end) infinite; }
@keyframes cv-panel-hashbuckets1ew38v-2 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 1; }
  50% { opacity: 0; }
  66.6667% { opacity: 0; }
  83.3333% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbuckets1ew38v-3 { animation: cv-panel-hashbuckets1ew38v-3 5.70s steps(1, end) infinite; }
@keyframes cv-panel-hashbuckets1ew38v-3 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 1; }
  66.6667% { opacity: 0; }
  83.3333% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbuckets1ew38v-4 { animation: cv-panel-hashbuckets1ew38v-4 5.70s steps(1, end) infinite; }
@keyframes cv-panel-hashbuckets1ew38v-4 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbuckets1ew38v-5 { animation: cv-panel-hashbuckets1ew38v-5 5.70s steps(1, end) infinite; }
@keyframes cv-panel-hashbuckets1ew38v-5 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 0; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-panel-hashbuckets1ew38v-0, .cv-panel-hashbuckets1ew38v-1, .cv-panel-hashbuckets1ew38v-2, .cv-panel-hashbuckets1ew38v-3, .cv-panel-hashbuckets1ew38v-4, .cv-panel-hashbuckets1ew38v-5 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-prefixsumsp5y64d-0 { animation: cv-rev-prefixsumsp5y64d-0 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-0 {
  0% { opacity: 1; }
  11.1111% { opacity: 1; }
  22.2222% { opacity: 1; }
  33.3333% { opacity: 1; }
  44.4444% { opacity: 1; }
  55.5556% { opacity: 1; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-1 { animation: cv-rev-prefixsumsp5y64d-1 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-1 {
  0% { opacity: 0; }
  11.1111% { opacity: 1; }
  22.2222% { opacity: 1; }
  33.3333% { opacity: 1; }
  44.4444% { opacity: 1; }
  55.5556% { opacity: 1; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-2 { animation: cv-rev-prefixsumsp5y64d-2 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-2 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 1; }
  33.3333% { opacity: 1; }
  44.4444% { opacity: 1; }
  55.5556% { opacity: 1; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-3 { animation: cv-rev-prefixsumsp5y64d-3 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-3 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 0; }
  33.3333% { opacity: 1; }
  44.4444% { opacity: 1; }
  55.5556% { opacity: 1; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-4 { animation: cv-rev-prefixsumsp5y64d-4 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-4 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 0; }
  33.3333% { opacity: 0; }
  44.4444% { opacity: 1; }
  55.5556% { opacity: 1; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-5 { animation: cv-rev-prefixsumsp5y64d-5 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-5 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 0; }
  33.3333% { opacity: 0; }
  44.4444% { opacity: 0; }
  55.5556% { opacity: 1; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-6 { animation: cv-rev-prefixsumsp5y64d-6 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-6 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 0; }
  33.3333% { opacity: 0; }
  44.4444% { opacity: 0; }
  55.5556% { opacity: 0; }
  66.6667% { opacity: 1; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-7 { animation: cv-rev-prefixsumsp5y64d-7 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-7 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 0; }
  33.3333% { opacity: 0; }
  44.4444% { opacity: 0; }
  55.5556% { opacity: 0; }
  66.6667% { opacity: 0; }
  77.7778% { opacity: 1; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-prefixsumsp5y64d-8 { animation: cv-rev-prefixsumsp5y64d-8 5.58s steps(1, end) infinite; }
@keyframes cv-rev-prefixsumsp5y64d-8 {
  0% { opacity: 0; }
  11.1111% { opacity: 0; }
  22.2222% { opacity: 0; }
  33.3333% { opacity: 0; }
  44.4444% { opacity: 0; }
  55.5556% { opacity: 0; }
  66.6667% { opacity: 0; }
  77.7778% { opacity: 0; }
  88.8889% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-prefixsumsp5y64d-0, .cv-rev-prefixsumsp5y64d-1, .cv-rev-prefixsumsp5y64d-2, .cv-rev-prefixsumsp5y64d-3, .cv-rev-prefixsumsp5y64d-4, .cv-rev-prefixsumsp5y64d-5, .cv-rev-prefixsumsp5y64d-6, .cv-rev-prefixsumsp5y64d-7, .cv-rev-prefixsumsp5y64d-8 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-slow-linkedlist122orl {
  transform: translateX(calc(var(--cv-pitch) * 4));
  animation: cv-slow-linkedlist122orl 5.00s steps(1, end) infinite;
}
.cv-fast-linkedlist122orl {
  transform: translateX(calc(var(--cv-pitch) * 4));
  animation: cv-fast-linkedlist122orl 5.00s steps(1, end) infinite;
}
@keyframes cv-slow-linkedlist122orl {
  0% { transform: translateX(calc(var(--cv-pitch) * 0)); }
  20% { transform: translateX(calc(var(--cv-pitch) * 1)); }
  40% { transform: translateX(calc(var(--cv-pitch) * 2)); }
  60% { transform: translateX(calc(var(--cv-pitch) * 3)); }
  80% { transform: translateX(calc(var(--cv-pitch) * 4)); }
  100% { transform: translateX(calc(var(--cv-pitch) * 4)); }
}
@keyframes cv-fast-linkedlist122orl {
  0% { transform: translateX(calc(var(--cv-pitch) * 0)); }
  20% { transform: translateX(calc(var(--cv-pitch) * 2)); }
  40% { transform: translateX(calc(var(--cv-pitch) * 4)); }
  60% { transform: translateX(calc(var(--cv-pitch) * 2)); }
  80% { transform: translateX(calc(var(--cv-pitch) * 4)); }
  100% { transform: translateX(calc(var(--cv-pitch) * 4)); }
}
@media (prefers-reduced-motion: reduce) {
  /* Duration only — `animation: none` would drop both badges back to index 0
     and show two pointers that never moved. */
  .cv-slow-linkedlist122orl, .cv-fast-linkedlist122orl { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-panel-stackir44u9-0 { animation: cv-panel-stackir44u9-0 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-0 {
  0% { opacity: 1; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-1 { animation: cv-panel-stackir44u9-1 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-1 {
  0% { opacity: 0; }
  12.5% { opacity: 1; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-2 { animation: cv-panel-stackir44u9-2 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-2 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 1; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-3 { animation: cv-panel-stackir44u9-3 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-3 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 1; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-4 { animation: cv-panel-stackir44u9-4 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-4 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 1; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-5 { animation: cv-panel-stackir44u9-5 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-5 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 1; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-6 { animation: cv-panel-stackir44u9-6 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-6 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 1; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-stackir44u9-7 { animation: cv-panel-stackir44u9-7 7.20s steps(1, end) infinite; }
@keyframes cv-panel-stackir44u9-7 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-panel-stackir44u9-0, .cv-panel-stackir44u9-1, .cv-panel-stackir44u9-2, .cv-panel-stackir44u9-3, .cv-panel-stackir44u9-4, .cv-panel-stackir44u9-5, .cv-panel-stackir44u9-6, .cv-panel-stackir44u9-7 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-intervals1hz7fy-0 { animation: cv-rev-intervals1hz7fy-0 3.80s steps(1, end) infinite; }
@keyframes cv-rev-intervals1hz7fy-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-intervals1hz7fy-1 { animation: cv-rev-intervals1hz7fy-1 3.80s steps(1, end) infinite; }
@keyframes cv-rev-intervals1hz7fy-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-intervals1hz7fy-2 { animation: cv-rev-intervals1hz7fy-2 3.80s steps(1, end) infinite; }
@keyframes cv-rev-intervals1hz7fy-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-intervals1hz7fy-0, .cv-rev-intervals1hz7fy-1, .cv-rev-intervals1hz7fy-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-sweep-intervals1hz7fy {
  left: 100%;
  animation: cv-sweep-intervals1hz7fy 3.80s steps(1, end) infinite;
}
@keyframes cv-sweep-intervals1hz7fy {
  0% { left: 25.000%; }
  25% { left: 50.000%; }
  50% { left: 75.000%; }
  75% { left: 100.000%; }
  100% { left: 100.000%; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-sweep-intervals1hz7fy { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-recursiontree1d220g-0 { animation: cv-rev-recursiontree1d220g-0 4.80s steps(1, end) infinite; }
@keyframes cv-rev-recursiontree1d220g-0 {
  0% { opacity: 1; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-recursiontree1d220g-1 { animation: cv-rev-recursiontree1d220g-1 4.80s steps(1, end) infinite; }
@keyframes cv-rev-recursiontree1d220g-1 {
  0% { opacity: 0; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-recursiontree1d220g-2 { animation: cv-rev-recursiontree1d220g-2 4.80s steps(1, end) infinite; }
@keyframes cv-rev-recursiontree1d220g-2 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-recursiontree1d220g-3 { animation: cv-rev-recursiontree1d220g-3 4.80s steps(1, end) infinite; }
@keyframes cv-rev-recursiontree1d220g-3 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-recursiontree1d220g-4 { animation: cv-rev-recursiontree1d220g-4 4.80s steps(1, end) infinite; }
@keyframes cv-rev-recursiontree1d220g-4 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-recursiontree1d220g-0, .cv-rev-recursiontree1d220g-1, .cv-rev-recursiontree1d220g-2, .cv-rev-recursiontree1d220g-3, .cv-rev-recursiontree1d220g-4 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-panel-heaptree1l7qth-0 { animation: cv-panel-heaptree1l7qth-0 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-0 {
  0% { opacity: 1; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-1 { animation: cv-panel-heaptree1l7qth-1 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-1 {
  0% { opacity: 0; }
  9.0909% { opacity: 1; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-2 { animation: cv-panel-heaptree1l7qth-2 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-2 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 1; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-3 { animation: cv-panel-heaptree1l7qth-3 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-3 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 1; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-4 { animation: cv-panel-heaptree1l7qth-4 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-4 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 1; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-5 { animation: cv-panel-heaptree1l7qth-5 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-5 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 1; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-6 { animation: cv-panel-heaptree1l7qth-6 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-6 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 1; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-7 { animation: cv-panel-heaptree1l7qth-7 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-7 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 1; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-8 { animation: cv-panel-heaptree1l7qth-8 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-8 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 1; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-9 { animation: cv-panel-heaptree1l7qth-9 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-9 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 1; }
  90.9091% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-heaptree1l7qth-10 { animation: cv-panel-heaptree1l7qth-10 9.35s steps(1, end) infinite; }
@keyframes cv-panel-heaptree1l7qth-10 {
  0% { opacity: 0; }
  9.0909% { opacity: 0; }
  18.1818% { opacity: 0; }
  27.2727% { opacity: 0; }
  36.3636% { opacity: 0; }
  45.4545% { opacity: 0; }
  54.5455% { opacity: 0; }
  63.6364% { opacity: 0; }
  72.7273% { opacity: 0; }
  81.8182% { opacity: 0; }
  90.9091% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-panel-heaptree1l7qth-0, .cv-panel-heaptree1l7qth-1, .cv-panel-heaptree1l7qth-2, .cv-panel-heaptree1l7qth-3, .cv-panel-heaptree1l7qth-4, .cv-panel-heaptree1l7qth-5, .cv-panel-heaptree1l7qth-6, .cv-panel-heaptree1l7qth-7, .cv-panel-heaptree1l7qth-8, .cv-panel-heaptree1l7qth-9, .cv-panel-heaptree1l7qth-10 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-panel-partition1iawv3-0 { animation: cv-panel-partition1iawv3-0 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-0 {
  0% { opacity: 1; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 0; }
  85.7143% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-partition1iawv3-1 { animation: cv-panel-partition1iawv3-1 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-1 {
  0% { opacity: 0; }
  14.2857% { opacity: 1; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 0; }
  85.7143% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-partition1iawv3-2 { animation: cv-panel-partition1iawv3-2 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-2 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 1; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 0; }
  85.7143% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-partition1iawv3-3 { animation: cv-panel-partition1iawv3-3 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-3 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 1; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 0; }
  85.7143% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-partition1iawv3-4 { animation: cv-panel-partition1iawv3-4 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-4 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 1; }
  71.4286% { opacity: 0; }
  85.7143% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-partition1iawv3-5 { animation: cv-panel-partition1iawv3-5 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-5 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-partition1iawv3-6 { animation: cv-panel-partition1iawv3-6 6.30s steps(1, end) infinite; }
@keyframes cv-panel-partition1iawv3-6 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 0; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-panel-partition1iawv3-0, .cv-panel-partition1iawv3-1, .cv-panel-partition1iawv3-2, .cv-panel-partition1iawv3-3, .cv-panel-partition1iawv3-4, .cv-panel-partition1iawv3-5, .cv-panel-partition1iawv3-6 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-tree4pi9v-0 { animation: cv-rev-tree4pi9v-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree4pi9v-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree4pi9v-1 { animation: cv-rev-tree4pi9v-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree4pi9v-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree4pi9v-2 { animation: cv-rev-tree4pi9v-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree4pi9v-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-tree4pi9v-0, .cv-rev-tree4pi9v-1, .cv-rev-tree4pi9v-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-waterfallb53y6g-0 { animation: cv-rev-waterfallb53y6g-0 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfallb53y6g-0 {
  0% { opacity: 1; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfallb53y6g-1 { animation: cv-rev-waterfallb53y6g-1 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfallb53y6g-1 {
  0% { opacity: 0; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfallb53y6g-2 { animation: cv-rev-waterfallb53y6g-2 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfallb53y6g-2 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfallb53y6g-3 { animation: cv-rev-waterfallb53y6g-3 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfallb53y6g-3 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfallb53y6g-4 { animation: cv-rev-waterfallb53y6g-4 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfallb53y6g-4 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-waterfallb53y6g-0, .cv-rev-waterfallb53y6g-1, .cv-rev-waterfallb53y6g-2, .cv-rev-waterfallb53y6g-3, .cv-rev-waterfallb53y6g-4 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-tree172ua3-0 { animation: cv-rev-tree172ua3-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree172ua3-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree172ua3-1 { animation: cv-rev-tree172ua3-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree172ua3-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree172ua3-2 { animation: cv-rev-tree172ua3-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree172ua3-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-tree172ua3-0, .cv-rev-tree172ua3-1, .cv-rev-tree172ua3-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-treehp9435-0 { animation: cv-rev-treehp9435-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-treehp9435-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-treehp9435-1 { animation: cv-rev-treehp9435-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-treehp9435-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-treehp9435-2 { animation: cv-rev-treehp9435-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-treehp9435-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-treehp9435-0, .cv-rev-treehp9435-1, .cv-rev-treehp9435-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-funnel6v1png-0 { animation: cv-rev-funnel6v1png-0 3.20s steps(1, end) infinite; }
@keyframes cv-rev-funnel6v1png-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-funnel6v1png-1 { animation: cv-rev-funnel6v1png-1 3.20s steps(1, end) infinite; }
@keyframes cv-rev-funnel6v1png-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-funnel6v1png-2 { animation: cv-rev-funnel6v1png-2 3.20s steps(1, end) infinite; }
@keyframes cv-rev-funnel6v1png-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-funnel6v1png-0, .cv-rev-funnel6v1png-1, .cv-rev-funnel6v1png-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-tree1i1hme-0 { animation: cv-rev-tree1i1hme-0 3.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1i1hme-0 {
  0% { opacity: 1; }
  33.3333% { opacity: 1; }
  66.6667% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree1i1hme-1 { animation: cv-rev-tree1i1hme-1 3.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1i1hme-1 {
  0% { opacity: 0; }
  33.3333% { opacity: 1; }
  66.6667% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-tree1i1hme-0, .cv-rev-tree1i1hme-1 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-hop-flowljg0vy {
  left: calc((100% / 5) * 4);
  animation: cv-hop-flowljg0vy 4.25s steps(1, end) infinite;
}
@keyframes cv-hop-flowljg0vy {
  0% { left: calc((100% / 5) * 0); }
  20% { left: calc((100% / 5) * 1); }
  40% { left: calc((100% / 5) * 2); }
  60% { left: calc((100% / 5) * 3); }
  80% { left: calc((100% / 5) * 4); }
  100% { left: calc((100% / 5) * 4); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-hop-flowljg0vy { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-waterfall3jba0i-0 { animation: cv-rev-waterfall3jba0i-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall3jba0i-0 {
  0% { opacity: 1; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall3jba0i-1 { animation: cv-rev-waterfall3jba0i-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall3jba0i-1 {
  0% { opacity: 0; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall3jba0i-2 { animation: cv-rev-waterfall3jba0i-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall3jba0i-2 {
  0% { opacity: 0; }
  20% { opacity: 0; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall3jba0i-3 { animation: cv-rev-waterfall3jba0i-3 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall3jba0i-3 {
  0% { opacity: 0; }
  20% { opacity: 0; }
  40% { opacity: 0; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-waterfall3jba0i-0, .cv-rev-waterfall3jba0i-1, .cv-rev-waterfall3jba0i-2, .cv-rev-waterfall3jba0i-3 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-waterfall8ondy3-0 { animation: cv-rev-waterfall8ondy3-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall8ondy3-0 {
  0% { opacity: 1; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall8ondy3-1 { animation: cv-rev-waterfall8ondy3-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall8ondy3-1 {
  0% { opacity: 0; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall8ondy3-2 { animation: cv-rev-waterfall8ondy3-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall8ondy3-2 {
  0% { opacity: 0; }
  20% { opacity: 0; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall8ondy3-3 { animation: cv-rev-waterfall8ondy3-3 4.00s steps(1, end) infinite; }
@keyframes cv-rev-waterfall8ondy3-3 {
  0% { opacity: 0; }
  20% { opacity: 0; }
  40% { opacity: 0; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-waterfall8ondy3-0, .cv-rev-waterfall8ondy3-1, .cv-rev-waterfall8ondy3-2, .cv-rev-waterfall8ondy3-3 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-waterfall1mwtzg-0 { animation: cv-rev-waterfall1mwtzg-0 5.60s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1mwtzg-0 {
  0% { opacity: 1; }
  14.2857% { opacity: 1; }
  28.5714% { opacity: 1; }
  42.8571% { opacity: 1; }
  57.1429% { opacity: 1; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1mwtzg-1 { animation: cv-rev-waterfall1mwtzg-1 5.60s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1mwtzg-1 {
  0% { opacity: 0; }
  14.2857% { opacity: 1; }
  28.5714% { opacity: 1; }
  42.8571% { opacity: 1; }
  57.1429% { opacity: 1; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1mwtzg-2 { animation: cv-rev-waterfall1mwtzg-2 5.60s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1mwtzg-2 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 1; }
  42.8571% { opacity: 1; }
  57.1429% { opacity: 1; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1mwtzg-3 { animation: cv-rev-waterfall1mwtzg-3 5.60s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1mwtzg-3 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 1; }
  57.1429% { opacity: 1; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1mwtzg-4 { animation: cv-rev-waterfall1mwtzg-4 5.60s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1mwtzg-4 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 1; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1mwtzg-5 { animation: cv-rev-waterfall1mwtzg-5 5.60s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1mwtzg-5 {
  0% { opacity: 0; }
  14.2857% { opacity: 0; }
  28.5714% { opacity: 0; }
  42.8571% { opacity: 0; }
  57.1429% { opacity: 0; }
  71.4286% { opacity: 1; }
  85.7143% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-waterfall1mwtzg-0, .cv-rev-waterfall1mwtzg-1, .cv-rev-waterfall1mwtzg-2, .cv-rev-waterfall1mwtzg-3, .cv-rev-waterfall1mwtzg-4, .cv-rev-waterfall1mwtzg-5 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-hop-flowjrui6 {
  left: calc((100% / 5) * 4);
  animation: cv-hop-flowjrui6 4.25s steps(1, end) infinite;
}
@keyframes cv-hop-flowjrui6 {
  0% { left: calc((100% / 5) * 0); }
  20% { left: calc((100% / 5) * 1); }
  40% { left: calc((100% / 5) * 2); }
  60% { left: calc((100% / 5) * 3); }
  80% { left: calc((100% / 5) * 4); }
  100% { left: calc((100% / 5) * 4); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-hop-flowjrui6 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-hop-flow141nlp {
  left: calc((100% / 4) * 3);
  animation: cv-hop-flow141nlp 3.40s steps(1, end) infinite;
}
@keyframes cv-hop-flow141nlp {
  0% { left: calc((100% / 4) * 0); }
  25% { left: calc((100% / 4) * 1); }
  50% { left: calc((100% / 4) * 2); }
  75% { left: calc((100% / 4) * 3); }
  100% { left: calc((100% / 4) * 3); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-hop-flow141nlp { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-tree9718o2-0 { animation: cv-rev-tree9718o2-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree9718o2-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree9718o2-1 { animation: cv-rev-tree9718o2-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree9718o2-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree9718o2-2 { animation: cv-rev-tree9718o2-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree9718o2-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-tree9718o2-0, .cv-rev-tree9718o2-1, .cv-rev-tree9718o2-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-tree1o0bzx-0 { animation: cv-rev-tree1o0bzx-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1o0bzx-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree1o0bzx-1 { animation: cv-rev-tree1o0bzx-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1o0bzx-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree1o0bzx-2 { animation: cv-rev-tree1o0bzx-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1o0bzx-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-tree1o0bzx-0, .cv-rev-tree1o0bzx-1, .cv-rev-tree1o0bzx-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-funnel1lmap2-0 { animation: cv-rev-funnel1lmap2-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-funnel1lmap2-0 {
  0% { opacity: 1; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-funnel1lmap2-1 { animation: cv-rev-funnel1lmap2-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-funnel1lmap2-1 {
  0% { opacity: 0; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-funnel1lmap2-2 { animation: cv-rev-funnel1lmap2-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-funnel1lmap2-2 {
  0% { opacity: 0; }
  20% { opacity: 0; }
  40% { opacity: 1; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-funnel1lmap2-3 { animation: cv-rev-funnel1lmap2-3 4.00s steps(1, end) infinite; }
@keyframes cv-rev-funnel1lmap2-3 {
  0% { opacity: 0; }
  20% { opacity: 0; }
  40% { opacity: 0; }
  60% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-funnel1lmap2-0, .cv-rev-funnel1lmap2-1, .cv-rev-funnel1lmap2-2, .cv-rev-funnel1lmap2-3 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-waterfall1xvvdn-0 { animation: cv-rev-waterfall1xvvdn-0 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1xvvdn-0 {
  0% { opacity: 1; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1xvvdn-1 { animation: cv-rev-waterfall1xvvdn-1 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1xvvdn-1 {
  0% { opacity: 0; }
  16.6667% { opacity: 1; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1xvvdn-2 { animation: cv-rev-waterfall1xvvdn-2 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1xvvdn-2 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 1; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1xvvdn-3 { animation: cv-rev-waterfall1xvvdn-3 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1xvvdn-3 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 1; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-waterfall1xvvdn-4 { animation: cv-rev-waterfall1xvvdn-4 4.80s steps(1, end) infinite; }
@keyframes cv-rev-waterfall1xvvdn-4 {
  0% { opacity: 0; }
  16.6667% { opacity: 0; }
  33.3333% { opacity: 0; }
  50% { opacity: 0; }
  66.6667% { opacity: 1; }
  83.3333% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-waterfall1xvvdn-0, .cv-rev-waterfall1xvvdn-1, .cv-rev-waterfall1xvvdn-2, .cv-rev-waterfall1xvvdn-3, .cv-rev-waterfall1xvvdn-4 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-hop-flowqkz8eo {
  left: calc((100% / 4) * 3);
  animation: cv-hop-flowqkz8eo 3.40s steps(1, end) infinite;
}
@keyframes cv-hop-flowqkz8eo {
  0% { left: calc((100% / 4) * 0); }
  25% { left: calc((100% / 4) * 1); }
  50% { left: calc((100% / 4) * 2); }
  75% { left: calc((100% / 4) * 3); }
  100% { left: calc((100% / 4) * 3); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-hop-flowqkz8eo { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-panel-hashbucketszxpgrv-0 { animation: cv-panel-hashbucketszxpgrv-0 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-0 {
  0% { opacity: 1; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-1 { animation: cv-panel-hashbucketszxpgrv-1 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-1 {
  0% { opacity: 0; }
  12.5% { opacity: 1; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-2 { animation: cv-panel-hashbucketszxpgrv-2 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-2 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 1; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-3 { animation: cv-panel-hashbucketszxpgrv-3 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-3 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 1; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-4 { animation: cv-panel-hashbucketszxpgrv-4 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-4 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 1; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-5 { animation: cv-panel-hashbucketszxpgrv-5 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-5 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 1; }
  75% { opacity: 0; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-6 { animation: cv-panel-hashbucketszxpgrv-6 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-6 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 1; }
  87.5% { opacity: 0; }
  100% { opacity: 0; }
}
.cv-panel-hashbucketszxpgrv-7 { animation: cv-panel-hashbucketszxpgrv-7 7.60s steps(1, end) infinite; }
@keyframes cv-panel-hashbucketszxpgrv-7 {
  0% { opacity: 0; }
  12.5% { opacity: 0; }
  25% { opacity: 0; }
  37.5% { opacity: 0; }
  50% { opacity: 0; }
  62.5% { opacity: 0; }
  75% { opacity: 0; }
  87.5% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-panel-hashbucketszxpgrv-0, .cv-panel-hashbucketszxpgrv-1, .cv-panel-hashbucketszxpgrv-2, .cv-panel-hashbucketszxpgrv-3, .cv-panel-hashbucketszxpgrv-4, .cv-panel-hashbucketszxpgrv-5, .cv-panel-hashbucketszxpgrv-6, .cv-panel-hashbucketszxpgrv-7 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-hop-flow17h6kv {
  left: calc((100% / 5) * 4);
  animation: cv-hop-flow17h6kv 4.25s steps(1, end) infinite;
}
@keyframes cv-hop-flow17h6kv {
  0% { left: calc((100% / 5) * 0); }
  20% { left: calc((100% / 5) * 1); }
  40% { left: calc((100% / 5) * 2); }
  60% { left: calc((100% / 5) * 3); }
  80% { left: calc((100% / 5) * 4); }
  100% { left: calc((100% / 5) * 4); }
}
@media (prefers-reduced-motion: reduce) {
  .cv-hop-flow17h6kv { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
.cv-rev-tree1fomtf-0 { animation: cv-rev-tree1fomtf-0 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1fomtf-0 {
  0% { opacity: 1; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree1fomtf-1 { animation: cv-rev-tree1fomtf-1 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1fomtf-1 {
  0% { opacity: 0; }
  25% { opacity: 1; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
.cv-rev-tree1fomtf-2 { animation: cv-rev-tree1fomtf-2 4.00s steps(1, end) infinite; }
@keyframes cv-rev-tree1fomtf-2 {
  0% { opacity: 0; }
  25% { opacity: 0; }
  50% { opacity: 1; }
  75% { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-rev-tree1fomtf-0, .cv-rev-tree1fomtf-1, .cv-rev-tree1fomtf-2 { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
