.extensive-page {
  max-width: 1080px;
  margin-inline: auto;
}
.extensive-hero {
  text-align: center;
  padding-block: var(--space-7) var(--space-5);
}
.extensive-hero .kanji-big {
  color: var(--jade-light);
  font-size: 6rem;
}
.reading-principles {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-4);
}
.reading-principles span {
  padding: 6px 10px;
  background: var(--jade-ghost);
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
}
.extensive-filters {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
  padding: var(--space-3);
}
.extensive-filters select {
  max-width: 220px;
}
.extensive-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  padding-bottom: var(--space-7);
}
.reader-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-height: 220px;
  padding: var(--space-4);
  border-top: 3px solid var(--jade-dim);
}
.reader-card h3,
.reader-card p {
  margin: 0;
}
.reader-card p {
  color: var(--text-faint);
}
.reader-card-icon {
  font-size: 2rem;
}
.reader-card .c-button {
  margin-top: auto;
}
.reader-state {
  width: fit-content;
  padding: 3px 8px;
  color: var(--jade-light);
  background: var(--jade-ghost);
  border-radius: var(--radius-full);
  font-size: 10px;
}
.reader-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
#reader-meta {
  text-align: center;
}
.reader-preferences {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  padding: var(--space-2);
}
.reader-paper {
  max-width: 820px;
  min-height: 500px;
  margin-inline: auto;
  padding: clamp(var(--space-4), 6vw, var(--space-7));
  background: color-mix(in srgb, var(--washi) 8%, var(--ink-2));
}
.reader-title {
  text-align: center;
}
.reader-text {
  font-family: var(--font-display);
  font-size: 1.35rem;
  line-height: 2.25;
}
.reader-text.large {
  font-size: 1.7rem;
}
.reader-text.spacious {
  line-height: 2.8;
  letter-spacing: 0.04em;
}
.reader-text.vertical {
  width: 100%;
  height: min(70vh, 620px);
  overflow-x: auto;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.reader-text p {
  margin-block: var(--space-4);
}
.reader-text ruby rt {
  font-size: 0.55em;
}
.reader-text.hide-furigana rt {
  visibility: hidden;
}
.reader-reading-line {
  display: none;
  margin-top: -10px;
  color: var(--text-faint);
  font-family: var(--font-body);
  font-size: 0.75em;
}
.reader-text.show-reading .reader-reading-line {
  display: block;
}
.reader-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
  margin-block: var(--space-5);
}
.reader-finish {
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}
.reader-options {
  display: grid;
  gap: var(--space-2);
}
.reader-options button {
  padding: var(--space-3);
  color: var(--text);
  background: var(--ink-3);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  text-align: left;
}
.reader-rating {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2);
  margin-block: var(--space-3);
}
.reader-rating button {
  padding: var(--space-3);
  color: var(--text);
  background: var(--ink-3);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
}
.reader-rating button.selected {
  border-color: var(--jade-light);
}
.focus-reading body,
.focus-reading .c-header,
.focus-reading .c-navbar,
.focus-reading .bottom-nav,
.focus-reading footer,
.focus-reading .reader-toolbar {
  display: none !important;
}
.focus-reading .extensive-page {
  max-width: none;
}
.focus-reading #extensive-reader {
  display: block !important;
  padding-block: var(--space-3);
}
.focus-reading .reader-paper {
  max-width: 900px;
  min-height: 95vh;
}
.focus-exit {
  position: fixed;
  top: calc(10px + env(safe-area-inset-top));
  right: 10px;
  z-index: 10010;
}
@media (max-width: 760px) {
  .extensive-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .extensive-filters {
    align-items: stretch;
    flex-direction: column;
  }
  .extensive-filters select {
    max-width: none;
  }
  .reader-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .reader-rating {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .extensive-grid {
    grid-template-columns: 1fr;
  }
  .reader-preferences .c-button {
    flex: 1 1 40%;
  }
  .reader-paper {
    padding: var(--space-3);
  }
}
