/* Shared Japanese typesetting rules. */
html {
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
}

body,
p,
li,
blockquote,
h1,
h2,
h3 {
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: wrap;
}

/* Unbroken Latin strings must never force the page wider than its viewport. */
a[href^="http"],
a[href^="mailto:"],
code,
pre,
.break-long-text {
  line-break: auto;
  word-break: break-word;
  overflow-wrap: anywhere;
}

pre {
  white-space: pre-wrap;
}

/* Accessibility floor: no visible text is rendered below 14px. */
.eyebrow,
.section-label,
.toc-title,
.toc a,
.chapter-no,
.part span,
.part strong,
footer {
  font-size: 14px;
}

.nowrap {
  white-space: nowrap;
}

.heading-phrase {
  display: inline-block;
  max-width: 100%;
}

.lead-line {
  display: block;
}

@media (min-width: 821px) {
  .prologue h1 {
    white-space: nowrap;
    text-wrap: nowrap;
    font-size: clamp(44px, 6.5vw, 82px);
  }

  .schedule h2 {
    white-space: nowrap;
    text-wrap: nowrap;
    font-size: clamp(44px, 6vw, 72px);
  }

  .lead-line {
    white-space: nowrap;
  }
}

/* Keep text color consistent within each background treatment. */
.hero-meta,
.prologue,
.toc,
.story,
.epilogue,
footer,
.eyebrow,
.section-label,
.toc-title,
.toc a,
.toc a span,
.toc a.active,
.toc a.active span,
.chapter-no,
.story-body,
.prologue > p:last-child,
.epilogue p:nth-of-type(2) {
  color: var(--text);
}

.schedule,
.schedule h2,
.schedule time,
.schedule strong,
.schedule span {
  color: #111;
}
