/* Pandoc macro classes */

/* Labels */
.label,
.faux-label {
  font-family: 'Playfair Display SC', serif;
  font-size: 9pt;
  letter-spacing: 0.05em;
  font-style: normal;
  font-weight: 400;
}

/* Pull a stand-alone label paragraph closer to the line above it. */
.piece-card__content p:has(> .label:only-child),
.piece-card__content p:has(> .faux-label:only-child),
.piece-card__content p:has(> .indent > .label:only-child),
.piece-card__content p:has(> .indent > .faux-label:only-child) {
  margin-top: calc(var(--stanza-gap, 0.9em) * -0.7);
}

/* Colors */
.red { color: #ff0000; }
.blue { color: #2e66ba; }
.green { color: #cde946; }
.gold { color: #c4b36b; }
.white { color: #ffffff; }
.muted { opacity: 0.7; }

/* Sizes */
.tiny { font-size: 0.75em; }
.small { font-size: 0.875em; }
.large { font-size: 1.25em; }
.huge { font-size: 1.5em; }

/* Weight & Style */
.light { font-weight: 300; }
.bold { font-weight: 700; }
.italic { font-style: italic; }

/* Fonts */
.mono     { font-family: var(--act-mono, var(--mono)); }
.serif    { font-family: var(--act-font, var(--serif)); }
.sans     { font-family: var(--act-sans, var(--sans)); }
.playfair { font-family: 'Playfair Display', 'Combining Fallback', serif; }
.lora     { font-family: 'Lora', 'Combining Fallback', serif; }
pre, code { font-family: var(--act-mono, var(--mono)); }

/* Center a block of left-aligned text (e.g. a sonnet) — the block
   itself is horizontally centered but lines remain left-aligned. */
.center-block {
  display: table;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  white-space: nowrap;
}


/* One Google-Docs-sized tab stop (0.5 in). Emitted by build.py when a
   source line begins with a tab character. */
.tab { display: inline-block; width: 0.5in; }

/* Layout */
.indent  { margin-left: 2em; }
.center  { text-align: center; }
.right   { text-align: right; }
.left    { text-align: left; }
.justify { text-align: justify; hyphens: auto; }

/* Break out of the centered content column so an image's right edge
   touches the viewport's right edge. Works with either
   `![](x.avif){.right-bleed}` or `::: right-bleed  ![](x.avif) :::`. */

/* Act-level overrides live in each act's source `acts/<N>_<Act>/style.css`
   and are inlined per-act by the Hugo template. */
