.workflow-animation {
  --wf-ink: #17233c;
  --wf-muted: #56647a;
  --wf-line: #dce5f4;
  --wf-blue: #1d4ed8;
  --wf-amber: #f59e0b;
  --wf-paper: #ffffff;
  width: 100%;
  min-width: 0;
  color: var(--wf-ink);
  font-family: inherit;
}

.workflow-animation *,
.workflow-animation *::before,
.workflow-animation *::after {
  box-sizing: border-box;
}

.workflow-animation .workflow-stage {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 430px;
  overflow: hidden;
  border: 1px solid #e8eef9;
  border-radius: 18px;
  background:
    radial-gradient(ellipse at 53% 46%, #edf3ff 0, #f8faff 35%, #fff 76%);
  box-shadow: 0 18px 55px rgb(25 56 112 / 7%), 0 2px 7px rgb(25 56 112 / 3%);
}

.workflow-animation .workflow-topline {
  position: absolute;
  z-index: 2;
  inset: 15px 17px auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.workflow-animation .workflow-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--wf-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.workflow-animation .workflow-label::before {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--wf-amber);
  box-shadow: 0 0 0 4px rgb(245 158 11 / 12%);
  content: "";
}

.workflow-animation .workflow-replay {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--wf-blue);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.workflow-animation .workflow-replay:hover {
  border-color: #dce6fb;
  background: #fff;
}

.workflow-animation .workflow-replay:focus-visible {
  outline: 3px solid rgb(29 78 216 / 32%);
  outline-offset: 2px;
}

.workflow-animation .workflow-replay svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.workflow-animation .workflow-art {
  position: absolute;
  inset: 46px 7px 38px;
  display: block;
  width: calc(100% - 14px);
  height: calc(100% - 84px);
  overflow: visible;
}

.workflow-animation .wf-grid-dot {
  fill: #dbe5f5;
  opacity: .7;
}

.workflow-animation .wf-track {
  fill: none;
  stroke: #dce5f4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.workflow-animation .wf-link {
  fill: none;
  stroke: var(--wf-blue);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.4;
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
  opacity: .86;
}

.workflow-animation .wf-card {
  filter: drop-shadow(0 6px 9px rgb(25 56 112 / 7%));
  transform-box: fill-box;
  transform-origin: center;
}

.workflow-animation .wf-card-bg {
  fill: var(--wf-paper);
  stroke: #dfe7f3;
  stroke-width: 1.25;
}

.workflow-animation .wf-accent-bar {
  fill: var(--wf-blue);
}

.workflow-animation .wf-card-email .wf-accent-bar {
  fill: #7b91c8;
}

.workflow-animation .wf-card-sheet .wf-accent-bar {
  fill: var(--wf-amber);
}

.workflow-animation .wf-icon-box {
  fill: #eff4ff;
}

.workflow-animation .wf-card-sheet .wf-icon-box {
  fill: #fff7e7;
}

.workflow-animation .wf-icon {
  fill: none;
  stroke: #315bb7;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.workflow-animation .wf-card-sheet .wf-icon {
  stroke: #b9790a;
}

.workflow-animation .wf-card-title,
.workflow-animation .wf-card-detail,
.workflow-animation .wf-hub-name,
.workflow-animation .wf-output-title,
.workflow-animation .wf-output-tag {
  font-family: inherit;
}

.workflow-animation .wf-card-title {
  fill: #23324e;
  font-size: 15px;
  font-weight: 700;
}

.workflow-animation .wf-card-detail {
  fill: var(--wf-muted);
  font-size: 12px;
  font-weight: 500;
}

.workflow-animation .wf-hub-shadow {
  fill: rgb(29 78 216 / 9%);
}

.workflow-animation .wf-hub-group,
.workflow-animation .wf-output {
  transform-box: fill-box;
  transform-origin: center;
}

.workflow-animation .wf-hub {
  fill: var(--wf-blue);
  filter: drop-shadow(0 8px 13px rgb(29 78 216 / 24%));
}

.workflow-animation .wf-hub-inner {
  fill: none;
  stroke: rgb(255 255 255 / 32%);
  stroke-width: 1;
}

.workflow-animation .wf-hub-a {
  fill: #fff;
  font-family: inherit;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.06em;
}

.workflow-animation .wf-hub-name {
  fill: #dce8ff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
}

.workflow-animation .wf-hub-ring {
  fill: none;
  stroke: #8fb0ff;
  stroke-width: 1.4;
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
}

.workflow-animation .wf-output-bg {
  fill: #fff;
  stroke: #dbe5f4;
  stroke-width: 1.25;
}

.workflow-animation .wf-output-icon-bg {
  fill: #fff5dc;
}

.workflow-animation .wf-output-icon {
  fill: none;
  stroke: #bb7800;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.workflow-animation .wf-output-title {
  fill: #20304c;
  font-size: 14px;
  font-weight: 800;
}

.workflow-animation .wf-output-tag-bg {
  fill: #eef4ff;
}

.workflow-animation .wf-output-tag {
  fill: #2955b3;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
}

.workflow-animation .wf-token-halo {
  fill: rgb(245 158 11 / 20%);
  opacity: 0;
}

.workflow-animation .wf-token {
  fill: var(--wf-amber);
  stroke: #fff;
  stroke-width: 2;
  filter: drop-shadow(0 2px 5px rgb(180 116 0 / 28%));
  opacity: 0;
}

.workflow-animation .workflow-caption {
  position: absolute;
  inset: auto 17px 13px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--wf-muted);
  font-size: 11px;
  line-height: 1.4;
}

.workflow-animation .workflow-caption::before {
  width: 14px;
  height: 1px;
  flex: 0 0 auto;
  background: #bac8df;
  content: "";
}

.workflow-animation .workflow-fallback {
  margin: 1rem 0;
  color: var(--wf-muted);
  font-size: 14px;
  line-height: 1.6;
}

:root[data-theme="dark"] .workflow-animation {
  --wf-ink: #edf2ff;
  --wf-muted: #aab8d2;
  --wf-line: #334563;
  --wf-blue: #8aabff;
  --wf-amber: #f5b43d;
  --wf-paper: #17243c;
}

:root[data-theme="dark"] .workflow-animation .workflow-stage {
  border-color: #263754;
  background: radial-gradient(ellipse at 53% 46%, #1a2a47 0, #121e32 48%, #0e1829 100%);
  box-shadow: 0 18px 55px rgb(0 0 0 / 22%), 0 2px 7px rgb(0 0 0 / 18%);
}

:root[data-theme="dark"] .workflow-animation .workflow-label {
  color: #b2bfd7;
}

:root[data-theme="dark"] .workflow-animation .workflow-replay:hover {
  border-color: #334867;
  background: #1a2943;
}

:root[data-theme="dark"] .workflow-animation .wf-grid-dot {
  fill: #405372;
  opacity: .58;
}

:root[data-theme="dark"] .workflow-animation .wf-track {
  stroke: #354866;
}

:root[data-theme="dark"] .workflow-animation .wf-card-bg,
:root[data-theme="dark"] .workflow-animation .wf-output-bg {
  fill: #17243c;
  stroke: #354866;
}

:root[data-theme="dark"] .workflow-animation .wf-accent-bar {
  fill: #86a8ff;
}

:root[data-theme="dark"] .workflow-animation .wf-card-email .wf-accent-bar {
  fill: #a7b7da;
}

:root[data-theme="dark"] .workflow-animation .wf-card-sheet .wf-accent-bar {
  fill: #f1b444;
}

:root[data-theme="dark"] .workflow-animation .wf-icon-box {
  fill: #233657;
}

:root[data-theme="dark"] .workflow-animation .wf-card-sheet .wf-icon-box,
:root[data-theme="dark"] .workflow-animation .wf-output-icon-bg {
  fill: #493b29;
}

:root[data-theme="dark"] .workflow-animation .wf-icon {
  stroke: #a9c0ff;
}

:root[data-theme="dark"] .workflow-animation .wf-card-sheet .wf-icon,
:root[data-theme="dark"] .workflow-animation .wf-output-icon {
  stroke: #ffd071;
}

:root[data-theme="dark"] .workflow-animation .wf-card-title,
:root[data-theme="dark"] .workflow-animation .wf-output-title {
  fill: #edf2ff;
}

:root[data-theme="dark"] .workflow-animation .wf-card-detail {
  fill: var(--wf-muted);
}

:root[data-theme="dark"] .workflow-animation .wf-hub-shadow {
  fill: rgb(83 125 218 / 18%);
}

:root[data-theme="dark"] .workflow-animation .wf-hub {
  fill: #1d4ed8;
}

:root[data-theme="dark"] .workflow-animation .wf-hub-ring {
  stroke: #a7c0ff;
}

:root[data-theme="dark"] .workflow-animation .wf-output-tag-bg {
  fill: #263957;
}

:root[data-theme="dark"] .workflow-animation .wf-output-tag {
  fill: #bbceff;
}

:root[data-theme="dark"] .workflow-animation .wf-token-halo {
  fill: rgb(245 180 61 / 25%);
}

:root[data-theme="dark"] .workflow-animation .wf-token {
  fill: #ffc04d;
  stroke: #17243c;
}

:root[data-theme="dark"] .workflow-animation .workflow-caption {
  color: #aab8d2;
}

:root[data-theme="dark"] .workflow-animation .workflow-caption::before {
  background: #586a89;
}

@media (max-width: 700px) {
  .workflow-animation .workflow-stage {
    height: 385px;
    border-radius: 14px;
  }

  .workflow-animation .workflow-topline {
    inset: 12px 10px auto;
  }

  .workflow-animation .workflow-label {
    gap: 6px;
    font-size: 10px;
    letter-spacing: .08em;
  }

  .workflow-animation .workflow-replay {
    min-height: 32px;
    gap: 5px;
    padding: 6px 7px;
    font-size: 11px;
  }

  .workflow-animation .workflow-art {
    inset: 44px 4px 37px;
    width: calc(100% - 8px);
    height: calc(100% - 81px);
  }

  .workflow-animation .wf-card-detail {
    display: none;
  }

  .workflow-animation .wf-card-title,
  .workflow-animation .wf-output-title {
    font-size: 18px;
  }

  .workflow-animation .wf-hub-name {
    display: none;
  }

  .workflow-animation .wf-output-tag-bg,
  .workflow-animation .wf-output-tag {
    display: none;
  }

  .workflow-animation .workflow-caption {
    inset: auto 12px 11px;
    font-size: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .workflow-animation *,
  .workflow-animation *::before,
  .workflow-animation *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
