/* Generated from the AO3 workskin; do not edit. */
.work-text .no-indent {
  text-indent: 0em;
}

.work-text .script,
.work-text .blackboard,
.work-text .all-indent {
  margin-left: 2em;
  margin-right: 2em;
  text-indent: 0em;
}

.work-text .marginal {
  text-align: right;
  margin-left: 15em;
}

.work-text .blackhat-bracket {
  margin-left: 2em;
  margin-right: 2em;
  text-indent: 0em;
}

.work-text .letter-meta {
  margin-left: 2em;
  margin-right: 2em;
  text-indent: 0em;
}

.work-text .letter-body {
  margin-left: 2em;
  margin-right: 2em;
  text-indent: 0em;
}

.work-text .a8 {
  font-weight: bold;
  color: #1c5fd5;
}

.work-text .a11 {
  font-weight: bold;
  color: #bba322;
}

.work-text .a17 {
  font-weight: bold;
  color: #169479;
}

.work-text .a20 {
  font-weight: bold;
  color: #195fae;
}

.work-text .a25 {
  font-weight: bold;
  color: #5f33c8;
}

.work-text .a26 {
  font-weight: bold;
  color: #2fa32d;
}

.work-text .a27 {
  font-weight: bold;
  color: #c43c16;
}

.work-text .a37 {
  font-weight: bold;
  color: #af1ace;
}

.work-text .a45 {
  font-weight: bold;
  color: #17a85e;
}

.work-text .a59 {
  font-weight: bold;
  color: #b7168e;
}

.work-text .a61 {
  font-weight: bold;
  color: #118556;
}

.work-text .a70 {
  font-weight: bold;
  color: #b11124;
}

.work-text .a78 {
  font-weight: bold;
  color: #c81a86;
}

.work-text .a84 {
  font-weight: bold;
  color: #13983f;
}

.work-text .a92 {
  font-weight: bold;
  color: #1848d0;
}

.work-text .a96 {
  font-weight: bold;
  color: #124488;
}

.work-text .a99 {
  font-weight: bold;
  color: #e28732;
}

.work-text .a101 {
  font-weight: bold;
  color: #701193;
}

.work-text .a107 {
  font-weight: bold;
  color: #ca4118;
}

.work-text .a115 {
  font-weight: bold;
  color: #be0e18;
}

.work-text .a116 {
  font-weight: bold;
  color: #2cbb0b;
}

.work-text .a119 {
  font-weight: bold;
  color: #d01389;
}

.work-text .a121 {
  font-weight: bold;
  color: #e711d3;
}

.work-text .a81 {
  font-weight: bold;
  color: #a11299;
}

.work-text .a58 {
  font-weight: bold;
  color: #0f2ea0;
}

.work-text .a24 {
  font-weight: bold;
  color: #0b908b;
}

.work-text .a90 {
  font-weight: bold;
  color: #c714c5;
}

.work-text .a143 {
  font-weight: bold;
  color: #404040;
}

.work-text .stage-direction {
  font-style: italic;
}


/* Site-specific additions */
/* Marginal notes (Part 3). They are read in sequence with the main text
   (text, then the note responding to it, then more text), so on screens wide
   enough to have a real margin we move them sideways into the right margin
   but keep the vertical order: the main text waits until a note has ended
   before continuing. On narrower screens they keep the AO3 presentation
   (right-aligned, inset from the left). */
@media (min-width: 75rem) {
  .work-text {
    --note-gap: 1.75rem;
    --note-width: min(17rem, calc((100vw - var(--text-width)) / 2 - var(--note-gap) - 2rem));
    --para-gap: calc(var(--text-size) * 1.286);
    --text-line: calc(var(--text-size) * var(--text-leading));
    --note-line: calc(var(--text-size) * 0.85 * 1.4);
    --note-nudge: calc(var(--text-line) - var(--note-line));
  }
  .work-text .marginal {
    float: right;
    clear: right;
    width: var(--note-width);
    margin: 0 calc(-1 * (var(--note-width) + var(--note-gap))) var(--para-gap) 0;
    font-size: 0.85em;  /* keep in sync with --note-line */
    line-height: 1.4;
    text-align: left;
  }
  /* The first note after some main text starts level with that text's last
     line, as if written beside it... */
  .work-text :not(.marginal) + .marginal {
    /* (the nudge lines up first-line baselines: a note's lines are shorter) */
    margin-top: calc(-1 * (var(--para-gap) + var(--text-line)) + var(--note-nudge));
  }
  /* ...and the main text resumes only once the note has ended. */
  .work-text .marginal + :not(.marginal) {
    clear: right;
  }

  /* Wide figures reach into the margin, so a note after one starts below it. */
  .work-text .wide-figure + .marginal {
    margin-top: 0;
  }

  /* Alternative (typography lab): notes start below the text they follow. */
  .notes-strict .work-text :not(.marginal) + .marginal {
    margin-top: 0;
  }
}

/* Blackhat-bracket lines hold long unbreakable tokens
   (e.g. BH_ERROR_4_UNDEFINED_TERM_OR_SEQUENCE) that justify badly. */
.work-text .blackhat-bracket {
  text-align: left;
}
