:root {
  --pseudo-flow: #9a2f4e;
  /* FOR, IF, WHILE, RETURN, BREAK   .cf */
  --pseudo-decl: #2f5d8c;
  /* DECLARE, FUNCTION, TYPE         .im */
  --pseudo-keyword: #4a5568;
  /* AND, OR, MOD, CALL, IN          .kw */
  --pseudo-io: #8a5a00;
  /* INPUT, OUTPUT                   .ex */
  --pseudo-type: #1f6f63;
  /* INTEGER, STRING, LIST           .dt */
  --pseudo-builtin: #5a4a8c;
  /* LENGTH, APPEND, INT             .bu */
  --pseudo-const: #7a3f00;
  /* TRUE, FALSE, NULL               .cn */
  --pseudo-lit: #2f6f3f;
  /* numbers, strings, chars  .dv .fl .st .ch */
  --pseudo-comment: #6f7680;
  --pseudo-arrow: #b03030;
  --pseudo-reasoning: #6a4299;
  /* REQUIRE, ENSURE, INVARIANT      .pp */

  --pseudo-rail: var(--bs-secondary, #8d99ae);
  --pseudo-tint: color-mix(in srgb, var(--bs-body-bg, #fff) 94%, var(--bs-secondary, #8d99ae));
  --pseudo-gutter-tint: color-mix(in srgb, var(--bs-body-bg, #fff) 88%, var(--bs-secondary, #8d99ae));
  --pseudo-divider: color-mix(in srgb, var(--bs-body-bg, #fff) 72%, var(--bs-secondary, #8d99ae));

  /* Geometry is shared; see code-blocks.css. Override --code-gutter and
       --code-pad on the wrapper below to change this language's gutter. */
}

body.quarto-dark {
  --pseudo-flow: #f08ba4;
  --pseudo-decl: #8fb8e0;
  --pseudo-keyword: #a9b4c2;
  --pseudo-io: #e0b060;
  --pseudo-type: #6fcbbb;
  --pseudo-builtin: #b7a8e8;
  --pseudo-const: #e8a86b;
  --pseudo-lit: #8fd49f;
  --pseudo-comment: #8b93a0;
  --pseudo-arrow: #ff8a80;
  --pseudo-reasoning: #c0a0e0;
}

/* Fallback for browsers without color-mix(). */
@supports not (background: color-mix(in srgb, white 50%, black)) {
  :root {
    --pseudo-tint: rgba(141, 153, 174, 0.08);
    --pseudo-gutter-tint: rgba(141, 153, 174, 0.16);
    --pseudo-divider: rgba(141, 153, 174, 0.45);
  }
}

.sourceCode.pseudo .cf {
  color: var(--pseudo-flow);
  font-weight: 700;
}

.sourceCode.pseudo .im {
  color: var(--pseudo-decl);
  font-weight: 700;
}

.sourceCode.pseudo .kw {
  color: var(--pseudo-keyword);
  font-weight: 600;
}

.sourceCode.pseudo .ex {
  color: var(--pseudo-io);
  font-weight: 600;
}

.sourceCode.pseudo .dt {
  color: var(--pseudo-type);
}

.sourceCode.pseudo .bu {
  color: var(--pseudo-builtin);
}

.sourceCode.pseudo .at {
  color: var(--pseudo-keyword);
  font-style: italic;
}

.sourceCode.pseudo .pp {
  color: var(--pseudo-reasoning);
  font-weight: 700;
}

.sourceCode.pseudo .cn {
  color: var(--pseudo-const);
}

.sourceCode.pseudo .dv,
.sourceCode.pseudo .fl,
.sourceCode.pseudo .st,
.sourceCode.pseudo .ch {
  color: var(--pseudo-lit);
}

.sourceCode.pseudo .co {
  color: var(--pseudo-comment);
  font-style: italic;
}

.sourceCode.pseudo .al {
  color: var(--pseudo-arrow);
  font-weight: 700;
}

.sourceCode.pseudo .sc {
  color: var(--pseudo-arrow);
  font-weight: 700;
}

.sourceCode.pseudo .fu,
.sourceCode.pseudo .va,
.sourceCode.pseudo .op {
  color: inherit;
}

div.sourceCode:has(> pre.sourceCode.pseudo) {
  position: relative;
  border-left: 3px solid var(--pseudo-rail);
  background-color: var(--pseudo-tint);

  --code-gutter: 2rem;
  --code-divider: var(--pseudo-divider);
}

pre.sourceCode.pseudo {
  background: transparent;
  border-left: 0;
  padding-top: var(--code-label-space);
  padding-left: var(--code-pad);
  font-size: var(--code-font-size);
}

div.sourceCode:has(> pre.sourceCode.pseudo)::before {
  content: "pseudocode";
  position: absolute;
  top: 0;
  left: var(--code-pad);
  font-family: var(--bs-font-sans-serif, sans-serif);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  color: var(--bs-secondary-color, #8d99ae);
  opacity: 0.8;
  pointer-events: none;
}

code.sourceCode.pseudo {
  color: var(--bs-body-color);
  background-color: var(--pseudo-tint);
  border-bottom: 1px solid var(--pseudo-divider);
  border-radius: 3px;
  padding: 0.08em 0.32em;
  font-size: 0.9em;
}

pre.sourceCode.pseudo>code.sourceCode.pseudo {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  font-size: inherit;
}