
:root {
  color-scheme: light;
  --canvas: #FFFFFF;
  --surface: #F6F6F5;
  --ink: #18181B;
  --muted: #5C5C66;
  --line: #DEDEE3;
  --control: #8B8B96;
  --brand: #D22027;
  --focus: #D22027;
  --active-marker: #D22027;
  --primary-bg: #18181B;
  --primary-bg-hover: #35353A;
  --primary-text: #FFFFFF;
  --warning: #8A4B00;
  --success: #176747;
  --success-bg: #E5F1EB;

  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "Cascadia Mono", Consolas, "Courier New", monospace;

  --s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem; --s5: 1.25rem;
  --s6: 1.5rem; --s8: 2rem; --s12: 3rem; --s16: 4rem; --s24: 6rem;
  --r1: .25rem; --r2: .5rem;
  --shell: 100rem;
  --measure: 70ch;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --canvas: #151517; --surface: #202023;
  --ink: #FAFAFA; --muted: #B4B4BE; --line: #39393F; --control: #777781;
  --focus: #FAFAFA; --active-marker: #FAFAFA;
  --primary-bg: #FAFAFA; --primary-bg-hover: #E4E4E9; --primary-text: #18181B;
  --warning: #E9BC7A; --success: #8FC7AD; --success-bg: #1D3A31;
}

* { box-sizing: border-box; }
html { background: var(--canvas); }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font: 1rem/1.6 var(--sans);
  overflow-wrap: anywhere;
}
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.15; color: var(--ink); }
h1 { max-width: 23ch; font-size: clamp(2.25rem, 4.5vw, 3.75rem); letter-spacing: -.03em; margin-bottom: var(--s5); }
h2 { font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.02em; margin-bottom: var(--s4); }
h3 { font-size: 1.375rem; margin: var(--s6) 0 var(--s3); }
p { margin: 0 0 var(--s4); color: var(--ink); }
a { color: var(--ink); text-decoration-color: currentColor; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
button, input, textarea, select { font: inherit; color: inherit; }
button, summary, label[for] { cursor: pointer; }
img, svg { max-width: 100%; height: auto; }
strong { font-weight: 600; }
small, .muted { color: var(--muted); }
small { font-size: .875rem; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: 1.5rem; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
summary { min-height: 2.75rem; padding: var(--s2) var(--s2); color: var(--ink); font-weight: 600; }
summary:hover { background: var(--surface); }
details[open] > summary { margin-bottom: var(--s2); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip { position: absolute; left: var(--s5); top: -8rem; z-index: 20; padding: var(--s3) var(--s4); background: var(--canvas); color: var(--ink); border-radius: var(--r1); }
.skip:focus { top: var(--s4); }

.wrap { width: min(var(--shell), calc(100% - 6rem)); margin-inline: auto; }
@media (max-width: 1279px) { .wrap { width: calc(100% - 3rem); } }
@media (max-width: 959px) { .wrap { width: calc(100% - 2rem); } }
.page { padding-block: var(--s8) var(--s24); }
.eyebrow { margin-bottom: var(--s2); color: var(--muted); font: 700 .875rem/1.5 var(--sans); letter-spacing: .02em; }
.lede, .lead { max-width: var(--measure); color: var(--muted); font-size: 1.125rem; }
.code { font-family: var(--mono); font-weight: 700; }
.meta, .status-line, .empty-state, .saved-hint { color: var(--muted); font-size: .875rem; }

.site-header { border-bottom: 1px solid var(--line); background: var(--canvas); }
.header-inner { min-height: 4.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4) var(--s8); padding-block: var(--s3); }
.brand { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--ink); text-decoration: none; }
.brand svg { display: block; width: 11rem; max-width: 100%; height: auto; }
.site-nav { display: flex; flex-wrap: wrap; gap: 0 var(--s5); }
.site-nav a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--muted); text-decoration: none; font-size: .9375rem; border-bottom: 2px solid transparent; }
.site-nav a:hover { color: var(--ink); }
.site-nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--brand); }
.theme-toggle { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: .875rem; }
.theme-toggle:hover { background: var(--surface); }

.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); padding-block: var(--s5) var(--s3); color: var(--muted); font-size: .875rem; }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--muted); }
.breadcrumbs a:hover { color: var(--ink); }

.button {
  display: inline-flex; justify-content: center; align-items: center; gap: var(--s2);
  min-height: 2.75rem; max-width: 100%; padding: var(--s3) var(--s5);
  border: 1px solid var(--primary-bg); border-radius: var(--r1);
  background: var(--primary-bg); color: var(--primary-text);
  font: 700 1rem/1.4 var(--sans); text-align: center; text-decoration: none;
  overflow-wrap: anywhere; cursor: pointer;
}
.button:hover { background: var(--primary-bg-hover); border-color: var(--primary-bg-hover); color: var(--primary-text); }
.button.secondary { background: var(--canvas); color: var(--ink); border-color: var(--control); font-weight: 600; }
.button.secondary:hover { background: var(--surface); }
.button:not([href]):not([disabled]) { cursor: pointer; }
.button:disabled { opacity: .6; cursor: default; }
.continue-link:not([href]) { cursor: default; background: var(--surface); border-color: var(--line); color: var(--muted); }

.quiet, .quiet-action, a.quiet {
  display: inline-flex; align-items: center; gap: var(--s1); min-height: 2.75rem;
  color: var(--ink); font-size: .9375rem; text-decoration: underline; text-underline-offset: .2em; background: none; border: 0; padding: 0 var(--s1); cursor: pointer;
}
.quiet:hover { text-decoration-thickness: 2px; }

.pill { display: inline-flex; align-items: center; min-height: 2.75rem; padding: var(--s2) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: .875rem; text-decoration: none; }
.pill:hover { background: var(--surface); }
.pill[aria-pressed="true"], .pill.is-on { border-color: var(--ink); font-weight: 700; }
.muted-pill { color: var(--muted); border-color: var(--line); }

.state-badge { display: inline-flex; align-items: center; gap: var(--s2); width: fit-content; max-width: 100%; padding: var(--s1) var(--s3); min-height: 1.75rem; border: 1px solid var(--line); border-radius: var(--r1); background: var(--surface); color: var(--muted); font: 700 .8125rem/1.4 var(--sans); white-space: normal; }
.state-badge .sym { font-family: var(--mono); }
.state-badge.order { color: var(--ink); background: var(--surface); border-color: var(--control); }
.state-badge.external { background: transparent; }

.hero { padding-block: var(--s12) var(--s8); }
.hero > :last-child { margin-bottom: 0; }
.section { padding-block: var(--s12); border-top: 1px solid var(--line); }
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s4) var(--s6); margin-bottom: var(--s8); }
.section-head p { margin-top: var(--s2); color: var(--muted); }

.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s6); margin-bottom: var(--s6); }
.panel-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--s2) var(--s4); margin-bottom: var(--s4); }
.panel-head h2 { margin: 0; }
.panel-head a { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .875rem; }

.days { margin: 0; padding: 0; list-style: none; }
.day-card { background: var(--canvas); border-bottom: 1px solid var(--line); }
.day-card > a { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s1); min-height: 4rem; padding: var(--s4) var(--s2); color: var(--ink); text-decoration: none; }
.day-card > a:hover { background: var(--surface); }
.day-theme { font-weight: 600; line-height: 1.4; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); }
.day-exit { color: var(--muted); font-size: .875rem; line-height: 1.5; }
.progress-block { display: flex; flex-direction: column; gap: var(--s2); min-width: min(12rem, 100%); }
.progress-bar { width: 100%; max-width: 20rem; height: .375rem; border-radius: 999px; background: var(--line); overflow: hidden; }
.progress-bar-fill, .course-bar, .module-bar { display: block; height: 100%; width: 0%; background: var(--ink); border-radius: 999px; }

.course-card { display: flex; flex-direction: column; min-width: 0; padding: var(--s6); background: var(--canvas); border: 1px solid var(--line); border-radius: var(--r2); }
.card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.course-card h3 { margin-top: var(--s4); font-family: var(--serif); font-size: 1.375rem; line-height: 1.3; overflow-wrap: anywhere; }
.course-card h3 a { color: var(--ink); text-decoration: none; }
.course-card h3 a:hover { text-decoration: underline; }
.course-card .card-footer { margin-top: auto; padding-top: var(--s5); }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s6); }
@media (max-width: 959px) { .cards { grid-template-columns: 1fr; } }

.start-shelf-art {
  display: block; flex-shrink: 0; width: calc(100% + 2 * var(--s6)); max-width: none; height: 80px;
  margin: calc(0px - var(--s6)) calc(0px - var(--s6)) var(--s6);
  border-radius: calc(var(--r2) - 1px) calc(var(--r2) - 1px) 0 0;
  object-fit: cover; object-position: center 35%; background: var(--surface); pointer-events: none;
}
:root[data-theme="dark"] .start-shelf-art { opacity: .85; }
@media (min-width: 761px) { .start-shelf-art { height: 96px; } }
@media (forced-colors: active) { .start-shelf-art { display: none; } }
@media print { .start-shelf-art { display: none; } }
.shelf-label { font-weight: 700; }
.start-shelf .hit-secondary { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; max-width: 100%; }
.shelf-prereq { margin-top: var(--s4); }
.shelf-prereq .doc, .shelf-prereq p { font-size: .875rem; }
.shelf-book { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--line); }
.shelf-alt, .shelf-why { margin-top: var(--s4); font-size: .875rem; }
.start-shelves--full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 959px) { .start-shelves--full { grid-template-columns: 1fr; } }
@media (max-width: 40rem) {
  .home-page .start-shelves:not(.start-shelves--full) { display: flex; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; gap: 12px; padding: 2px 2px 12px; }
  .home-page .start-shelves:not(.start-shelves--full) > .start-shelf { flex: 0 0 min(82vw, 19rem); min-width: 0; scroll-snap-align: start; }
}

.catalog-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--s8); align-items: start; }
.catalog-search input[type="search"] { display: block; width: 100%; min-height: 3rem; padding: var(--s3) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: 1rem; }
.filters-col { position: sticky; top: var(--s4); }
.catalog-filters { display: flex; flex-direction: column; gap: var(--s4); }
.catalog-filters label { display: flex; flex-direction: column; gap: var(--s1); font-size: .8125rem; color: var(--muted); }
.catalog-filters select { min-height: 2.75rem; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); width: 100%; }
.catalog-check { flex-direction: row !important; align-items: center; gap: var(--s2) !important; }
.catalog-check input { width: 20px; height: 20px; }
.filters-summary { display: none; }
.active-filter-count { color: var(--ink); font-weight: 700; }

.catalog-row > a { display: none; }
.catalog-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3) var(--s4); padding: var(--s4); }
.catalog-row-main { display: flex; flex-direction: column; gap: var(--s1); min-width: 0; }
.catalog-row-actions { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.save-btn[aria-pressed="true"] { border-color: var(--ink); font-weight: 700; }
.pagination { display: flex; align-items: center; justify-content: center; gap: var(--s4); padding-top: var(--s5); }
.pagination button { min-height: 2.75rem; padding: var(--s2) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.pagination button:disabled { opacity: .4; cursor: default; }
#catalog-rows { min-height: 100vh; }

@media (max-width: 959px) {
  .catalog-layout { grid-template-columns: 1fr; }
  .filters-col { position: static; }
  .filters-summary { display: block; min-height: 2.75rem; padding: var(--s3) var(--s2); font-weight: 700; color: var(--ink); }
  #filters-body { padding-top: var(--s4); }
  #filters-body.is-collapsed { display: none; }
  .catalog-filters label { width: 100%; }
  .catalog-filters select { max-width: 100%; }
}

.catalog-lede-compact { display: none; }
@media (max-width: 40rem) {
  .catalog-hero .eyebrow, .catalog-hero .lede-full, .catalog-hero .meta { display: none; }
  .catalog-lede-compact { display: block; }
  .hero.catalog-hero { padding-block: var(--s4); }
  .catalog-hero h1 { margin-bottom: var(--s2); }
  .catalog-hero + .catalog-search { margin-bottom: var(--s3); }
  .catalog-hero + .catalog-search input[type="search"] { min-height: 2.75rem; }
  .filters-summary { margin-bottom: var(--s2); }
  #catalog-count { margin-bottom: var(--s2); }
}

.course-hero { padding-block: var(--s5) var(--s8); }
.course-start-card { margin-block: 0 var(--s6); padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); }
.course-start-identity { margin: 0 0 var(--s2); color: var(--muted); font-size: .9rem; }
.course-start-primary { display: inline-flex; margin: 0 var(--s3) var(--s2) 0; }
.course-start-secondary, .course-start-revisit { display: inline-block; margin: 0 var(--s3) var(--s2) 0; }
.identity { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-bottom: var(--s4); }
.byline { color: var(--muted); margin-top: var(--s3); }
.course-provenance { max-width: var(--measure); margin-top: var(--s3); font-size: .9375rem; line-height: 1.6; }
.materials-kind { margin-top: var(--s4); margin-bottom: var(--s2); }
#course-progress:empty { min-height: 1.5em; min-height: 1lh; }

.course-layout { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: var(--s8); align-items: start; }
#view-activity.course-layout { grid-template-columns: 15rem minmax(0, 1fr); }
@media (max-width: 1279px) {
  #view-activity.course-layout { grid-template-columns: 1fr; }
}
.course-body { min-width: 0; }
.start-panel { position: sticky; top: var(--s4); padding: var(--s6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r2); }
.start-panel h2 { font-size: 1.5rem; margin-top: var(--s2); }
.start-panel .button { width: 100%; text-align: left; justify-content: flex-start; margin-block: var(--s4) var(--s2); }

.how-to-speak-page { max-width: 68rem; margin-inline: auto; }
.how-to-speak-page .course-start-card { margin-block: var(--s5); }
.video-frame { position: relative; aspect-ratio: 16 / 9; background: #111; border-radius: var(--r1); overflow: hidden; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.how-to-speak-transcript { max-height: 35rem; overflow-y: auto; }
.how-to-speak-cue { display: grid; grid-template-columns: 4.5rem 1fr; gap: var(--s3); margin: 0; padding: var(--s2); border-bottom: 1px solid var(--line); }
.how-to-speak-seek { justify-self: start; align-self: start; min-height: 2rem; border: 0; background: transparent; color: var(--link); text-decoration: underline; }
#how-to-speak-search { width: 100%; min-height: 2.75rem; margin-block: var(--s2) var(--s4); padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.study-loop-steps { padding-inline-start: 1.5rem; }
.study-loop-step { padding-block: var(--s2); }
.study-loop-step .meta { display: block; }
.study-loop-compare { min-height: 2.5rem; }
.study-loop-complete { margin-block-start: var(--s3); }
.resume-secondary { display: block; margin-top: var(--s2); }
.facts { margin: var(--s5) 0 0; padding: 0; }
.facts div { display: flex; justify-content: space-between; gap: var(--s3); padding-block: var(--s1); border-top: 1px solid var(--line); }
.facts dt { color: var(--muted); font-size: .875rem; }
.facts dd { margin: 0; font-weight: 700; }

@media (max-width: 959px) {
  #view-home.course-layout { grid-template-columns: minmax(0, 1fr); }
  .start-panel { position: static; }
}

.course-before-start h3 { margin-top: var(--s6); }
.course-before-start ul { padding-left: var(--s5); }
.course-plain-summary { margin-top: var(--s3); color: var(--muted); }
.course-organized-details { margin-top: var(--s5); }
.course-organized-details > summary { cursor: pointer; color: var(--muted); font-size: .875rem; min-height: 2.75rem; display: flex; align-items: center; }
.course-organized-details[open] > summary { margin-bottom: var(--s2); }
.doc { max-width: var(--measure); line-height: 1.75; }
.doc a { display: inline; }

.outline-disclosure { position: sticky; top: var(--s4); align-self: start; }
.outline-disclosure > summary { list-style: none; }
.outline-disclosure > summary::-webkit-details-marker { display: none; }
@media (max-width: 1279px) {
  #view-activity.course-layout { display: flex; flex-direction: column; }
  #view-activity .outline-disclosure { position: static; order: 2; }
  #view-activity .activity-main { order: 1; }
}
.outline.course-outline { margin-top: var(--s2); }
.toc { padding: var(--s5); margin-bottom: var(--s6); border: 1px solid var(--line); border-radius: var(--r2); }
.toc ol, .toc { list-style: none; padding-left: 0; margin: 0; }
.toc li + li { border-top: 1px solid var(--line); }
.toc a { display: flex; gap: var(--s3); align-items: baseline; min-height: 2.75rem; padding-block: var(--s2); color: var(--ink); font-size: .875rem; text-decoration: none; }
.toc a:hover { background: var(--surface); }
.toc-num, .toc-item .act-state-dot { color: var(--muted); font-family: var(--mono); flex: 0 0 auto; }
.toc-type-icon { color: var(--muted); flex: 0 0 auto; }
.toc-item.is-active > a { color: var(--ink); background: var(--surface); border-left: 3px solid var(--active-marker); padding-left: calc(var(--s3) - 3px); font-weight: 700; }
.outline-group summary { font-weight: 700; color: var(--ink); min-height: 2.75rem; padding-block: var(--s2); }
.outline-group summary:hover { color: var(--ink); background: var(--surface); }

.modules, .modules-list { padding: 0; margin: 0; list-style: none; }
.module-card { padding: var(--s5); margin-bottom: var(--s5); border: 1px solid var(--line); border-radius: var(--r2); background: var(--canvas); }
.module-card > header { display: flex; gap: var(--s3); align-items: baseline; }
.module-card > header > span { color: var(--muted); font: 700 .875rem var(--mono); }
.module-card h2 { margin: 0; font-size: 1.25rem; }
.module-status { margin: var(--s2) 0; font-size: .875rem; color: var(--muted); }
.module-card > .progress-bar { max-width: 12rem; margin-bottom: var(--s3); }
.module-card ol { list-style: none; margin: 0; padding: 0; }
.act + .act { border-top: 1px solid var(--line); }
.act a { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s2) var(--s4); min-height: 2.75rem; padding: var(--s3) var(--s2); text-decoration: none; color: var(--ink); line-height: 1.5; border-left: 3px solid transparent; }
.act a > :first-child { flex: 1 1 16rem; }
.act a:hover { background: var(--surface); }
.act.is-checkpoint a { border-left-color: var(--control); padding-left: var(--s4); }
.act.is-exam a { border-left: 3px double var(--control); background: var(--surface); padding-left: var(--s4); font-weight: 600; }
.act.is-done a { color: var(--muted); }
.act-state { font-weight: 400; color: var(--success); }

.act-context { color: var(--muted); font: 700 .875rem/1.5 var(--sans); margin-bottom: var(--s2); }

.player-grid { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: var(--s6); align-items: start; }
.player-main { min-width: 0; }
.player-side { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s5); }
@media (max-width: 959px) {
  .player-grid { grid-template-columns: 1fr; }
}

body.theater #view-activity.course-layout { grid-template-columns: minmax(0, 1fr); }
body.theater .outline-disclosure { display: none; }

.video { position: relative; width: 100%; aspect-ratio: 16/9; border: 1px solid var(--line); border-radius: var(--r2); background: #0b0f14; overflow: hidden; }
.video iframe, .video > div { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video .yt-facade {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0; margin: 0; padding: var(--s4);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s3);
  background: #0b0f14; color: #fff; cursor: pointer; font: inherit; text-align: center;
}
.video .yt-facade:hover { background: #12181f; }
.video .yt-facade:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
.yt-facade-icon {
  display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem;
  border-radius: 50%; background: rgba(255, 255, 255, .16); font-size: 1.4rem; line-height: 1;
}
.yt-facade-title { max-width: 32rem; color: rgba(255, 255, 255, .92); }
.assignment-window { margin-block: var(--s3); }
.files { list-style: none; padding: 0; margin: var(--s4) 0; }
.files li { border-bottom: 1px solid var(--line); }
.files a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s2) var(--s3); align-items: baseline; min-height: 2.75rem; padding: var(--s3) var(--s2); text-decoration: none; }
.files a:hover { background: var(--surface); }
.file-name { grid-column: 1 / -1; font-size: .875rem; overflow-wrap: anywhere; }
.file-kind, .file-size { color: var(--muted); font: .8125rem var(--mono); }
.file-size { text-align: right; }
@media (min-width: 48rem) { .files a { grid-template-columns: minmax(0, 1fr) 3rem 4.5rem; } .file-name { grid-column: auto; } }

.resource-list { list-style: none; padding: 0; margin: var(--s4) 0; }
.resource-row { border-bottom: 1px solid var(--line); }
.resource-list .resource-link { display: flex; align-items: center; gap: var(--s3); min-block-size: 3.5rem; padding: var(--s2) var(--s2); color: var(--ink); text-decoration: none; }
.resource-icon { color: var(--muted); }
.resource-title { flex: 1 1 auto; min-inline-size: 0; font-size: .875rem; overflow-wrap: anywhere; }
.resource-meta { flex: 0 0 auto; color: var(--muted); font: .8125rem var(--mono); }
.resource-action { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .25rem; color: var(--muted); font-size: .8125rem; font-weight: 600; }
@media (hover: hover) and (pointer: fine) { .resource-list .resource-link:hover { background: var(--hit-hover, var(--surface)); } }

.reveal { margin-top: var(--s4); border: 1px solid var(--line); border-radius: var(--r1); }
.reveal summary { min-height: 2.75rem; padding: var(--s2) var(--s3); color: var(--ink); }
.reveal summary:hover { background: var(--surface); }
.reveal > :not(summary) { margin-inline: var(--s4); padding-bottom: var(--s3); }

.playback-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-block: var(--s3); }
.playback-toolbar label { display: flex; align-items: center; gap: var(--s2); font-size: .875rem; }
.playback-toolbar select { min-height: 2.75rem; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.playback-toolbar button { min-height: 2.75rem; padding: var(--s2) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.playback-toolbar button[aria-pressed="true"] { border-color: var(--ink); font-weight: 700; }
.playback-toolbar .shortcuts-toggle { display: flex; align-items: center; min-height: 2.75rem; gap: var(--s2); font-size: .8125rem; color: var(--muted); margin-left: auto; }
.playback-toolbar .shortcuts-toggle input { width: 20px; height: 20px; }

.activity-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-block: var(--s5); }
.quiet-action-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); margin-bottom: var(--s4); background: var(--success-bg); color: var(--success); border-radius: var(--r1); font-size: .875rem; }
.quiet-action-bar .quiet-action { color: var(--success); text-decoration-color: var(--success); }
.act-state-line { min-height: 1.5rem; color: var(--muted); font-size: .875rem; }
.act-state-line.is-done { color: var(--success); }

.unit-nav.act-nav { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: var(--s4); margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); }
.unit-nav.act-nav a[rel="prev"], .unit-nav.act-nav a[rel="next"] { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--ink); text-decoration: underline; text-underline-offset: .2em; font-size: .875rem; }
.unit-nav.act-nav a[aria-disabled="true"] { color: var(--muted); pointer-events: none; text-decoration: none; }
.unit-nav.act-nav .button.primary { grid-column: 3; justify-self: end; margin: 0; width: auto; }
@media (max-width: 959px) {
  .unit-nav.act-nav { grid-template-columns: 1fr 1fr; }
  .unit-nav.act-nav .button.primary { grid-column: 1 / -1; order: 3; width: 100%; justify-self: stretch; }
}

.panel-switcher { display: flex; gap: var(--s2); border-bottom: 1px solid var(--line); padding-bottom: var(--s4); margin-bottom: var(--s4); }
.panel-switcher button { flex: 1; min-height: 2.75rem; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.panel-switcher button[aria-pressed="true"] { background: var(--ink); color: var(--primary-text); border-color: var(--ink); font-weight: 700; }

.transcript-search { display: flex; flex-direction: column; gap: var(--s1); margin-bottom: var(--s3); }
.transcript-search label { font-size: .8125rem; font-weight: 650; }
.transcript-search input[type="search"] { min-width: 0; width: 100%; min-height: 2.75rem; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.transcript-match-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2); margin: var(--s2) 0; }
.transcript-match-row .match-nav { display: flex; gap: var(--s1); }
.transcript-match-row button { min-height: 2.75rem; padding: 0 var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.transcript-follow { display: flex; align-items: center; gap: var(--s2); margin: var(--s2) 0 var(--s3); font-size: .875rem; color: var(--muted); }
.transcript-follow label { display: flex; align-items: center; min-height: 2.75rem; gap: var(--s2); }
.transcript-follow input { width: 20px; height: 20px; }
.transcript-follow button.resume-follow { min-height: 2.75rem; padding: 0 var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.transcript-cues { max-height: 22rem; overflow-y: auto; }
.transcript-cue { min-height: 2.75rem; display: flex; align-items: center; padding: var(--s2) var(--s3); border-radius: var(--r1); cursor: pointer; font-size: .9375rem; border-left: 3px solid transparent; }
.transcript-cue:hover, .transcript-cue:focus-visible { background: var(--surface); }
.transcript-cue.is-current { background: var(--surface); border-left-color: var(--active-marker); }
.transcript-cue mark { background: var(--surface); color: var(--ink); text-decoration: underline; }

.notes-panel textarea { width: 100%; min-width: 0; min-height: 14rem; padding: var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); line-height: 1.65; resize: vertical; }
.notes-panel .field-label { display: block; font-size: .8125rem; font-weight: 650; margin-bottom: var(--s2); }
.note-actions { display: flex; flex-wrap: wrap; gap: var(--s2); margin: var(--s3) 0; }
.note-actions button { min-height: 2.75rem; padding: var(--s2) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); }
.note-actions button:disabled { opacity: .6; cursor: default; }
.note-status { min-height: 1.25rem; }
.note-status.warning { color: var(--warning); }
.note-status.success { color: var(--success); }

.attribution { max-width: var(--measure); margin-top: var(--s8); padding-top: var(--s5); border-top: 1px solid var(--line); font-size: .875rem; color: var(--muted); }
.attribution p { color: var(--muted); }

.transfer { margin-top: var(--s8); padding-top: var(--s3); border-top: 1px solid var(--line); }
.transfer > p { max-width: var(--measure); color: var(--muted); font-size: .875rem; }
.transfer-controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4); }
.import-control { display: grid; gap: var(--s2); max-width: 100%; }
.import-control label { display: flex; align-items: center; min-height: 2.75rem; font-size: .875rem; color: var(--muted); }
input[type="file"] { width: 100%; max-width: 25rem; min-height: 2.75rem; font-size: .875rem; }
input[type="file"]::file-selector-button { min-height: 2.75rem; padding: var(--s2) var(--s4); margin-right: var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); cursor: pointer; }
#ocw-import-preview, #progress-msg { margin-top: var(--s4); padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--canvas); }
#progress-msg:empty { display: none; border: 0; padding: 0; }

.site-footer { border-top: 1px solid var(--line); padding-block: var(--s6); }
.footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s3) var(--s6); }
.footer-copy { max-width: 76ch; color: var(--muted); font-size: .875rem; }
.footer-copy p { color: var(--muted); }
.footer-copy p + p { margin-top: var(--s2); }
.footer-links { display: flex; flex-wrap: wrap; gap: var(--s5); }
.to-top { display: inline-flex; align-items: center; min-height: 2.75rem; }

.book-method summary { cursor: pointer; color: var(--muted); font-size: .875rem; min-height: 2.75rem; }
.book-method p { margin-top: var(--s2); }
.book-list { display: grid; gap: var(--s1); padding: 0; margin: 0; list-style: none; }
.book-row { padding-block: var(--s4); border-bottom: 1px solid var(--line); }
.book-row:last-child { border-bottom: none; }
.book-row:target { background: var(--surface); outline: 2px solid var(--focus); outline-offset: 2px; scroll-margin-top: var(--s8); }
.book-copy { margin-top: var(--s1); }
.book-title { margin-bottom: var(--s1); font-family: var(--serif); font-size: 1.125rem; }
.book-cites a { margin-right: var(--s1); }
.book-extracted-note { margin-top: var(--s8); padding-top: var(--s4); border-top: 1px solid var(--line); font-size: .8125rem; color: var(--muted); }
.book-noscript { margin-top: var(--s6); }
.books-letters { margin-top: var(--s8); }
.book-letter-nav { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); margin-top: var(--s4); }
.book-letter-nav a, .book-letter-nav span.tag { min-height: 2.75rem; display: inline-flex; align-items: center; }
.catalog-letter-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s1); }
.catalog-letter-nav a { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; }

.book-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s3) var(--s5); }
.book-view-tabs { flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: var(--s3); }
.book-view-tabs .pill { gap: var(--s2); }
.pill-count { color: var(--muted); font-weight: 400; }
.pill[aria-pressed="true"] .pill-count { color: inherit; }
.book-toolbar .catalog-search { flex: 1 1 16rem; min-width: 0; }
.book-toolbar .catalog-filters { flex: 0 1 auto; flex-direction: row; flex-wrap: wrap; gap: var(--s4); align-items: flex-end; }
.book-toolbar .catalog-filters label { width: auto; }
.book-toolbar .catalog-filters select { width: auto; min-width: 9rem; }
.book-toolbar .status-line { flex: 1 0 100%; margin-top: 0; }
.book-toolbar .books-sort-note { flex: 1 0 100%; margin: 0; font-size: .8125rem; }
@media (max-width: 40rem) {
  .book-toolbar, .book-toolbar .catalog-filters { flex-direction: column; align-items: stretch; }
  .book-toolbar .catalog-search,
  .book-toolbar .catalog-filters,
  .book-toolbar .books-sort-note,
  .book-toolbar .status-line { flex: 0 0 auto; }
  .book-toolbar .catalog-search,
  .book-toolbar .catalog-filters label,
  .book-toolbar .catalog-filters select { width: 100%; min-width: 0; }
}

.books-lede-compact { display: none; }
.books-filters-toggle { display: none; }
@media (max-width: 40rem) {
  .books-hero .eyebrow, .books-hero .lede-full { display: none; }
  .books-lede-compact { display: block; margin-bottom: var(--s2); }
  .books-filters-toggle {
    display: flex; align-items: center; gap: var(--s2); min-height: 2.75rem;
    padding: 0 var(--s4); border: 1px solid var(--control); border-radius: var(--r1);
    background: var(--canvas); color: var(--ink); font-weight: 700; font-size: .875rem;
  }
  #books-filters-body.is-collapsed { display: none; }
  #books-filters-body.is-collapsed + .books-sort-note { display: none; }
  .hero.books-hero { padding-block: var(--s4); }
  .books-hero .meta { display: none; }
  .books-hero h1 { margin-bottom: var(--s3); }
  .books-hero .book-method summary { min-height: 2rem; }
  .book-toolbar { padding: var(--s3); gap: var(--s2) var(--s5); }
  .book-toolbar .catalog-search input[type="search"] { min-height: 2.75rem; }
  .book-toolbar .status-line { margin-bottom: 0; }
  #books-grid { margin-top: var(--s3); }
}

.book-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: var(--s5); margin-top: var(--s6); }
.book-card { display: flex; flex-direction: column; gap: var(--s2); padding: 0; border: none; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; border-radius: var(--r2); text-decoration: none; }
.book-card:hover, .book-card:visited { color: inherit; text-decoration: none; }
.book-card:hover .book-cover, .book-card:focus-visible .book-cover { outline: 1px solid var(--control); outline-offset: 2px; }
.book-card:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.book-cover { position: relative; container-type: inline-size; aspect-ratio: 2 / 3; border-radius: var(--r1); overflow: hidden; background: var(--surface); }
.book-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; visibility: hidden; }
.book-cover.has-cover img { visibility: visible; }
.book-cover.has-cover .cover-fallback { display: none; }
.book-cover.is-art.has-cover .cover-fallback { display: flex; z-index: 1; }
.book-cover.is-art img { object-position: center 35%; }
.book-cover.is-art.has-cover .cover-fallback { background: linear-gradient(to top, rgb(0 0 0 / .82) 48%, rgb(0 0 0 / .35) 60%, transparent 70%); border-left: 0; }
.book-cover.is-art.has-cover .cover-title { color: #fff; text-shadow: 0 1px 2px rgb(0 0 0 / .45); }
.book-cover.is-art.has-cover .cover-author { color: #e9e4da; text-shadow: 0 1px 2px rgb(0 0 0 / .45); }
.cover-fallback { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s1); padding: var(--s3); background: var(--tint, var(--surface)); border-left: 3px solid var(--brand); }
.cover-fallback .cover-title { font-family: var(--serif); font-size: clamp(6px, 14cqi, 15px); line-height: 1.25; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: normal; word-break: normal; }
.cover-fallback .cover-author { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: normal; word-break: normal; font-size: clamp(5px, 11cqi, 12px); line-height: 1.25; color: var(--muted); }
.cover-tint-0 { --tint: #F1EFEA; } .cover-tint-1 { --tint: #ECEFF1; } .cover-tint-2 { --tint: #F3EDE7; }
.cover-tint-3 { --tint: #EDEFEA; } .cover-tint-4 { --tint: #EFECF2; } .cover-tint-5 { --tint: #F0EAEA; }
:root[data-theme="dark"] .cover-tint-0 { --tint: #29271F; } :root[data-theme="dark"] .cover-tint-1 { --tint: #212528; }
:root[data-theme="dark"] .cover-tint-2 { --tint: #2A241D; } :root[data-theme="dark"] .cover-tint-3 { --tint: #222620; }
:root[data-theme="dark"] .cover-tint-4 { --tint: #26232B; } :root[data-theme="dark"] .cover-tint-5 { --tint: #292323; }
.book-free-badge { position: absolute; top: var(--s2); right: var(--s2); padding: 2px var(--s2); border-radius: var(--r1); background: var(--success-bg); color: var(--success); font: 700 .6875rem/1.4 var(--sans); }
.book-card-title { font-family: var(--serif); font-size: .9375rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.book-card-meta { font-size: .8125rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.book-card > .tag, .book-card > .tag-row { margin-top: auto; }
.tag-row { display: flex; flex-wrap: wrap; gap: var(--s2); align-self: flex-start; }

.book-detail { container-type: inline-size; width: min(40rem, calc(100vw - var(--s8))); max-height: calc(100vh - var(--s8)); padding: var(--s6); border: 1px solid var(--line); border-radius: var(--r2); background: var(--canvas); color: var(--ink); }
.book-detail::backdrop { background: rgba(24, 24, 27, .5); }
:root[data-theme="dark"] .book-detail::backdrop { background: rgba(0, 0, 0, .65); }
.book-detail-close { position: absolute; top: var(--s3); right: var(--s3); width: 2.5rem; height: 2.5rem; border: 1px solid var(--line); border-radius: var(--r1); background: var(--surface); color: var(--ink); font-size: 1.25rem; line-height: 1; cursor: pointer; }
#book-detail-body { display: flex; flex-direction: column; gap: var(--s3); }
.book-cover-large { width: 9rem; aspect-ratio: 2 / 3; }
.book-cover-large .cover-fallback .cover-title { font-size: clamp(6px, 14cqi, 17px); -webkit-line-clamp: 6; }
#book-detail-body h2 { font-size: 1.5rem; }
#book-detail-body h3 { font-size: 1rem; margin-top: var(--s3); }
.book-detail-action { margin-top: var(--s2); }
.book-detail-courses { list-style: none; padding: 0; margin: var(--s2) 0 0; display: grid; gap: var(--s1); }
.book-comments-section { border-top: 1px solid var(--line); margin-top: var(--s4); padding-top: var(--s2); }
.book-discussion-links { display: flex; flex-wrap: wrap; gap: var(--s2); margin-block: var(--s2); }
.book-discussion-links > a { display: inline-flex; align-items: center; box-sizing: border-box; min-height: 44px; max-width: 100%; overflow-wrap: anywhere; }
.book-discussion-links > a[aria-current] { font-weight: 700; }
.book-detail-main { display: flex; flex-direction: column; gap: var(--s3); min-width: 0; }
.book-detail-action--pair { display: flex; flex-wrap: wrap; gap: var(--s2); }
.book-detail-action--pair > .button { flex: 1 1 8rem; padding-inline: var(--s3); }
.book-detail-action--pair > :not(.button) { flex: 0 0 100%; margin: 0; }
@container (min-width: 48rem) {
  #book-detail-body.has-discussion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s6); align-items: start; }
  #book-detail-body.has-discussion > .book-detail-main,
  #book-detail-body.has-discussion > .book-comments-section { max-height: calc(100vh - var(--s8) - 2 * var(--s6) - 2px); overflow-y: auto; overscroll-behavior: contain; }
  #book-detail-body.has-discussion > .book-comments-section { margin-top: 0; border-top: 0; border-left: 1px solid var(--line); padding: var(--s6) 0 0 var(--s6); }
}
.book-detail-editions { list-style: none; padding: 0; margin: var(--s2) 0 0; display: grid; gap: var(--s2); }
.book-edition-citation { font-size: .8125rem; overflow-wrap: anywhere; }
.book-edition-note { border-left: 3px solid var(--line); padding-left: var(--s3); margin-top: var(--s2); }
.reader-edition-note { font-size: .875rem; max-width: 42rem; margin: var(--s2) auto 0; }

.book-options { margin-block: var(--s4) var(--s3); }
.book-options > summary { display: block; min-height: 0; padding: 0; margin: 0; background: none; font-weight: 600; list-style: none; cursor: pointer; }
.book-options > summary::-webkit-details-marker { display: none; }
.book-options > summary:hover { background: none; }
.book-options[open] > summary { margin-bottom: var(--s3); }
.book-options-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--s2); min-height: 2.75rem; max-width: 100%; padding: var(--s3) var(--s5); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font: 600 1rem/1.4 var(--sans); }
.book-options > summary:hover .book-options-btn { background: var(--surface); }
.book-options > summary:active .book-options-btn { background: var(--hit-pressed); }
.book-options > summary:focus-visible { outline: none; }
.book-options > summary:focus-visible .book-options-btn { outline: 3px solid var(--focus); outline-offset: 3px; }
.book-options-hint { display: block; margin-top: var(--s1); color: var(--muted); font: 400 .875rem/1.4 var(--sans); }
.book-chev { transition: transform var(--ui-time, 160ms) var(--ui-ease, ease); }
.book-options[open] .book-chev, .book-editions-details[open] .book-chev, .book-courses-details[open] .book-chev { transform: rotate(180deg); }
.book-options-panel { display: grid; gap: var(--s4); padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); }
.book-options-associate { margin: 0; color: var(--muted); font: 400 .8125rem/1.5 var(--sans); }
.book-options-rows { display: grid; margin: 0; }
.book-options-row { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: var(--s1) var(--s4); padding-block: var(--s2); border-top: 1px solid var(--line); }
.book-options-row:first-child { border-top: 0; padding-top: 0; }
.book-options-row:last-child { padding-bottom: 0; }
.book-options-row dt { margin: 0; padding-block: .5rem; color: var(--ink); font: 700 .875rem/1.5 var(--sans); letter-spacing: .02em; }
.book-options-row dd { margin: 0; }
.book-options-line { padding-block: .5rem; font-size: .9375rem; line-height: 1.5; }
.book-options-line a { padding-block: .375rem; color: var(--ink); }
.book-options-pre { color: var(--ink); }
.book-options-sep { color: var(--muted); }
.book-options-line--multi .book-options-item { white-space: nowrap; }
.book-editions, .book-courses { margin-top: var(--s3); border-top: 1px solid var(--line); }
.book-editions + .book-courses { margin-top: calc(-1 * var(--s3)); }
.book-editions-details > summary, .book-courses-details > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); min-height: 2.75rem; padding: var(--s2) 0; list-style: none; font: 600 1rem/1.3 var(--sans); cursor: pointer; }
.book-editions-details > summary::-webkit-details-marker, .book-courses-details > summary::-webkit-details-marker { display: none; }
.book-editions-details > summary:hover, .book-courses-details > summary:hover { background: none; text-decoration: underline; text-underline-offset: .2em; }
.book-editions-details[open] > summary, .book-courses-details[open] > summary { margin-bottom: var(--s1); }
@media (prefers-reduced-motion: reduce) { .book-chev { transition: none; } }
@media (max-width: 40rem) {
  .book-options-row { grid-template-columns: minmax(0, 1fr); padding-block: var(--s3); }
  .book-options-row dt { padding-block: 0; }
  .book-options-line { padding-block: .375rem; }
  .book-options-panel { padding: var(--s3); }
}
@media (min-width: 64rem) {
  .book-detail { width: min(70rem, calc(100vw - var(--s16))); }
}
@media (max-width: 40rem) {
  .book-grid { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: var(--s3); }
  .book-detail { padding: var(--s4); }
}
@media (max-width: 26rem) {
  .book-grid { grid-template-columns: repeat(auto-fill, minmax(6rem, 1fr)); }
}

.videos-supplement { margin-top: var(--s6); }
.videos-supplement ul { padding-left: var(--s5); }

body[data-view="first"] .returning { display: none; }
body[data-view="returning"] .first-only { display: none; }
body[data-view="returning"] .hero.home-hero { padding-block: var(--s8); }

.home-hero h1, .hero.home-hero h1 { font-size: clamp(2.75rem, 6vw, 4.75rem); max-width: 16ch; line-height: 1.06; }
.resume { margin-top: var(--s8); padding: var(--s6); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); }
.resume h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); margin-block: var(--s2); }
.resume .resume-course { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-top: var(--s3); }
.resume .resume-course .meta { margin: 0; }
.resume h2 { font: 700 1.0625rem/1.5 var(--sans); margin-top: var(--s4); color: var(--ink); }
.resume-action { margin-top: var(--s5); display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); }
.resume-action .button { width: auto; }
.resume-action .meta { margin: 0; }

.search-block { max-width: 48rem; margin-top: var(--s6); }
.search-block label { display: block; margin-bottom: var(--s2); font-weight: 700; }
.search-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s2); }
.search-controls input { width: 100%; min-width: 0; min-height: 3.25rem; padding: var(--s3) var(--s4); color: var(--ink); background: var(--canvas); border: 1px solid var(--control); border-radius: var(--r1); }
.suggest-host { position: relative; }
.suggest-list { position: absolute; z-index: 40; top: calc(100% + .25rem); left: 0; width: 100%; max-height: min(60vh, 26rem); overflow: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: var(--r1); background: var(--canvas); color: var(--ink); box-shadow: 0 8px 24px rgb(0 0 0 / .18); }
.suggest-list[hidden] { display: none; }
.suggest-group { padding: var(--s2) var(--s3) var(--s1); color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.suggest-option { display: flex; min-height: 2.75rem; flex-direction: column; justify-content: center; gap: .125rem; padding: var(--s1) var(--s3); color: var(--ink); text-decoration: none; }
.suggest-option:hover, .suggest-option[aria-selected="true"] { background: var(--surface); }
.suggest-option[aria-selected="true"] { box-shadow: inset 3px 0 var(--focus); }
.suggest-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 650; }
.suggest-detail { overflow: hidden; color: var(--muted); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.suggest-host input[role="combobox"]:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.search-block .meta { margin-top: var(--s3); }

.explore-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--s8); }
.departments { list-style: none; padding: 0; margin: var(--s5) 0 0; }
.departments li { border-top: 1px solid var(--line); }
.departments li:last-child { border-bottom: 1px solid var(--line); }
.departments a { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); min-height: 3rem; padding-block: var(--s2); color: var(--ink); text-decoration: none; }
.departments .dept-name { display: flex; align-items: center; gap: var(--s2); }
.departments .dept-name .icon { color: var(--control); }
.departments a:hover { text-decoration: underline; }
.video-entry { align-self: start; padding: var(--s6); border-radius: var(--r2); background: var(--surface); }
.video-entry h3 { margin-top: var(--s3); font-size: 1.5rem; }
.video-entry p { color: var(--muted); }
@media (max-width: 959px) { .explore-grid { grid-template-columns: 1fr; } }

.steps, .coverage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s6); padding: 0; margin: 0; list-style: none; }
.step-number { font: .875rem/1.5 var(--mono); color: var(--muted); }
.coverage strong { display: block; margin-bottom: var(--s2); font: 400 2rem/1.2 var(--serif); }
.coverage p { margin-top: var(--s2); color: var(--muted); }
@media (max-width: 40rem) { .steps, .coverage { grid-template-columns: 1fr; gap: var(--s6); } }

.coverage-disclosure > summary { font: 700 1.0625rem/1.4 var(--sans); }
@media (min-width: 960px) {
  .coverage-disclosure > summary { display: none; }
}

.book-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s6); padding: var(--s6); margin-block: var(--s8) var(--s12); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); }
.book-band p { color: var(--muted); margin-top: var(--s2); }

@media (max-width: 40rem) {
  .header-inner { flex-direction: column; align-items: flex-start; gap: var(--s2); padding-block: var(--s3); }
  .site-nav { width: 100%; justify-content: space-between; gap: var(--s2); }
  .hero { padding-block: var(--s8); }
  .home-hero h1, .hero.home-hero h1 { max-width: 14ch; }
  .section-head { flex-direction: column; align-items: flex-start; gap: var(--s2); }
  .footer-inner { flex-direction: column; align-items: flex-start; }
}

.home-start { display: none; }
@media (max-width: 40rem) {
  .hero.home-hero { padding-block: var(--s4) var(--s6); }
  .home-hero .first-only .eyebrow { display: none; }
  .home-hero h1, .hero.home-hero h1 { max-width: none; font-size: clamp(1.75rem, 8vw, 2.25rem); margin-bottom: var(--s3); }
  .home-start { display: block; margin-bottom: var(--s5); }
  .home-start .button { display: flex; width: 100%; min-height: 3rem; }
  .home-start-label { margin: var(--s4) 0 var(--s2); color: var(--muted); font: 700 .875rem/1.5 var(--sans); }
  .home-start-books { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); margin: 0; padding: 0; list-style: none; }
  .home-start-books a { display: flex; flex-direction: column; justify-content: center; min-height: 3.25rem; height: 100%; padding: var(--s2) var(--s3); border: 1px solid var(--line); border-radius: var(--r1); background: var(--surface); color: var(--ink); text-decoration: none; }
  .home-start-books a:hover { border-color: var(--control); }
  .home-start-title { font: 600 .9375rem/1.3 var(--sans); }
  .home-start-author { color: var(--muted); font-size: .8125rem; line-height: 1.4; }
  .home-start-more { display: flex; flex-wrap: wrap; gap: 0 var(--s5); margin: var(--s2) 0 0; }
  .home-start-more .quiet { min-height: 2.75rem; }
}

@media (forced-colors: active) {
  .progress-bar { border: 1px solid CanvasText; }
  .progress-bar-fill, .course-bar, .module-bar { background: Highlight; forced-color-adjust: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}


:root {
  --primary-bg: #D22027;
  --primary-bg-hover: #9D181D;
  --primary-bg-active: #881519;
  --primary-text: #FFFFFF;

  --accent-ink: #D22027;
  --accent-tint-bg: #FBEBEC;
  --accent-tint-border: #E7A6A9;

  --ui-time: 160ms;
  --ui-ease: cubic-bezier(.2, 0, 0, 1);
  --hit-hover: var(--surface);
  --hit-pressed: #ECECE9;
  --card-shadow: 0 4px 14px rgb(24 24 27 / .08);
}

:root[data-theme="dark"] {
  --primary-bg: #D22027;
  --primary-bg-hover: #9D181D;
  --primary-bg-active: #881519;
  --primary-text: #FFFFFF;
  --accent-ink: #E76469;
  --accent-tint-bg: #3A1F20;
  --accent-tint-border: #6B3639;
  --hit-pressed: #29292E;
  --card-shadow: 0 4px 14px rgb(0 0 0 / .3);
}

.button:active { background: var(--primary-bg-active); border-color: var(--primary-bg-active); }
.button.secondary:active { background: var(--hit-pressed); }

.icon { display: inline-block; inline-size: 1.25rem; block-size: 1.25rem; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em; }
.icon--small { inline-size: 1rem; block-size: 1rem; }
.icon--subject { inline-size: 1.5rem; block-size: 1.5rem; }

.provider-badge { display: flex; align-items: center; gap: .375rem; margin-bottom: var(--s2); color: var(--muted); font: 500 .875rem/1.4 var(--sans); }
.provider-badge .icon { color: var(--control); }

.eyebrow--accent { color: var(--accent-ink); }

.action-link { color: var(--accent-ink); }
.action-link:hover { color: var(--accent-ink); }
.action-hint { color: var(--accent-ink); font-size: .9375rem; }

.tag { display: inline-flex; align-items: center; align-self: flex-start; gap: .375rem; max-inline-size: 100%; padding: .1875rem .5rem; border-radius: .25rem; border: 1px solid transparent; font: 500 .8125rem/1.4 var(--sans); }
.tag--free { color: var(--accent-ink); background: var(--accent-tint-bg); border-color: var(--accent-tint-border); }
.tag--neutral { color: var(--muted); background: var(--surface); border-color: var(--line); }

.hit-card { position: relative; isolation: isolate; }
.hit-card .hit-link { position: static; color: var(--ink); text-decoration: none; }
.hit-card .hit-link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; cursor: pointer; }
.hit-secondary { position: relative; z-index: 2; }
.hit-card .hit-link:focus-visible { outline: none; }
.hit-card .hit-link:focus-visible::after { outline: 3px solid var(--focus); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .hit-card:has(.hit-link:hover) { background: var(--hit-hover); }
  .course-card.hit-card:has(.hit-link:hover) { border-color: var(--control); transform: translateY(-2px); box-shadow: var(--card-shadow); transition: transform var(--ui-time) var(--ui-ease), box-shadow var(--ui-time) var(--ui-ease), border-color var(--ui-time) var(--ui-ease); }
  .hit-card .hit-link:hover { text-decoration: underline; text-decoration-thickness: 2px; }
}
.hit-card:has(.hit-link:active) { background: var(--hit-pressed); }
.course-card.hit-card { transition: border-color var(--ui-time) var(--ui-ease); }

.catalog-row.hit-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3) var(--s4); padding: var(--s4); min-block-size: 3.5rem; }
.catalog-row-main .hit-link { font-weight: 600; font-size: 1.0625rem; line-height: 1.45; overflow-wrap: anywhere; }
.catalog-row-main { gap: var(--s2); }
.catalog-row-main .day-exit { overflow-wrap: anywhere; }
.catalog-row-main .provider-badge { margin-bottom: 0; }

.toggle-on { display: none; }
[aria-pressed="true"] > .toggle-off { display: none; }
[aria-pressed="true"] > .toggle-on { display: inline-block; }
.is-confirming .toggle-on { animation: confirm-check var(--ui-time) var(--ui-ease); }
@keyframes confirm-check { from { opacity: .4; transform: scale(.85); } to { opacity: 1; transform: scale(1); } }

.ui-toast { position: fixed; left: var(--s4); bottom: var(--s4); z-index: 30; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; max-width: calc(100vw - 2 * var(--s4)); padding: var(--s3) var(--s4); border: 1px solid var(--control); border-radius: var(--r2); background: var(--canvas); color: var(--ink); box-shadow: var(--card-shadow); }

.jump-nav { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); margin-bottom: var(--s5); font-size: .875rem; }
.jump-nav a { color: var(--ink); }
.back-to-top { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: var(--s4); }

@media (prefers-reduced-motion: reduce) {
  .course-card.hit-card:has(.hit-link:hover) { transform: none; }
  .is-confirming .toggle-on { animation: none; }
}

@media (forced-colors: active) {
  .hit-card, .tag, .ui-toast { border: 1px solid CanvasText; }
}

.reader-layout { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: var(--s8); align-items: start; margin-top: var(--s6); }
.reader-toc { position: sticky; top: var(--s4); max-height: calc(100vh - var(--s8)); overflow-y: auto; padding: var(--s6); background: var(--surface); }
.reader-toc > summary { display: flex; align-items: center; gap: var(--s2); font: 700 1rem/1.4 var(--sans); cursor: pointer; list-style: none; color: var(--ink); }
.reader-toc > summary::-webkit-details-marker { display: none; }
.reader-toc ol { margin-top: var(--s4); }
.reader-article { max-width: 38rem; font-family: var(--reader-font, var(--serif)); font-size: 1.125rem; line-height: 1.7; }
.reader-article p { margin: 0 0 var(--s4); }
.reader-article p[id] { scroll-margin-top: 6rem; }
.reader-article p.verse { padding-left: var(--s6); }
.reader-article .vl { display: block; padding-left: 1.5em; text-indent: -1.5em; }
.reader-article .vi-1 { padding-left: 2.5em; } .reader-article .vi-2 { padding-left: 3.5em; }
.reader-article .vi-3 { padding-left: 4.5em; } .reader-article .vi-4 { padding-left: 5.5em; }
.reader-article .vi-5 { padding-left: 6.5em; } .reader-article .vi-6 { padding-left: 7.5em; }
.reader-front p.verse { padding-left: 0; text-align: center; }
.reader-front p.verse .vl { padding-left: 0; text-indent: 0; }
.reader-page { max-width: calc(16rem + var(--s8) + var(--reader-measure, 38rem)); margin-inline: auto; }
.page:has(.reader-page) .breadcrumbs { max-width: calc(16rem + var(--s8) + var(--reader-measure, 38rem)); margin-inline: auto; }
.reader-article em { font-style: italic; }
.reader-chapter { margin-bottom: var(--s8); scroll-margin-top: var(--s4); }
.reader-chapter h2 { font-size: 1.5rem; margin-bottom: var(--s4); }
.reader-chapter { content-visibility: auto; contain-intrinsic-block-size: auto var(--ch-h, 2000px); }
#reader-panel-contents li { content-visibility: auto; contain-intrinsic-block-size: auto 44px; }
.reader-resume { display: none; }
.reader-resume.is-visible { display: flex; }
.reader-resume a { color: var(--success); font-weight: 700; }
.reader-resume-dismiss { margin-left: auto; border: none; background: none; color: inherit; font-size: 1.125rem; line-height: 1; cursor: pointer; padding: var(--s1); }
.reader-attribution { margin-top: var(--s8); padding: var(--s5); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); color: var(--muted); font-size: .875rem; }
.reader-attribution a { color: var(--ink); }
@media (max-width: 64rem) {
  .reader-layout { grid-template-columns: 1fr; margin-top: var(--s5); gap: var(--s5); }
  .reader-toc { position: static; max-height: none; }
}

.reader-article { font-size: calc(1.125rem * var(--reader-scale, 1)); line-height: var(--reader-leading, 1.7); max-width: var(--reader-measure, 38rem); }
.reader-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-top: var(--s5); }
.reader-toolbar-btn { display: inline-flex; align-items: center; gap: var(--s2); min-height: 2.75rem; padding: 0 var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: .875rem; cursor: pointer; }
.reader-toolbar-btn[aria-pressed="true"] { background: var(--surface); border-color: var(--ink); }
.reader-progress { margin-left: auto; color: var(--muted); font-size: .8125rem;
  flex: 1 1 0; min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.reader-settings-panel, .reader-search-panel, .reader-cite-panel { margin-top: var(--s3); padding: var(--s5); border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); }
.reader-settings-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-bottom: var(--s3); }
.reader-settings-row:last-child { margin-bottom: 0; }
.reader-settings-row .reader-settings-label { flex: 0 0 8rem; font: 700 .8125rem/1.4 var(--sans); color: var(--muted); }
.reader-settings-row .pill[aria-pressed="true"] { background: var(--ink); color: var(--canvas); border-color: var(--ink); }
.reader-settings-row .pill[aria-disabled="true"] { color: var(--muted); border-color: var(--line); background: var(--canvas); opacity: .55; cursor: default; }
.reader-settings-reset { margin-left: auto; }

.reader-search-panel { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.reader-search-panel input[type="search"] { flex: 1 1 14rem; min-width: 0; min-height: 2.75rem; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: 1rem; }
.reader-search-count { color: var(--muted); font-size: .8125rem; white-space: nowrap; }
.reader-search-nav button { min-width: 2.75rem; min-height: 2.75rem; border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); cursor: pointer; }
.reader-search-close { border: none; background: none; color: var(--muted); font-size: 1.25rem; line-height: 1; cursor: pointer; padding: var(--s2); }
.reader-search-hit { scroll-margin-top: var(--s6); }
.reader-search-hit.is-current { background: var(--surface); outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--r1); }

.reader-cite-panel-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.reader-cite-panel-title { margin: 0; font: 700 1rem/1.3 var(--sans); }
.reader-cite-close { border: none; background: none; color: var(--muted); font-size: 1.25rem; line-height: 1; cursor: pointer; padding: var(--s2); }
.reader-cite-note { margin: var(--s2) 0 0; color: var(--muted); font-size: .8125rem; }
.reader-cite-entry { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--line); }
.reader-cite-entry:first-of-type { margin-top: var(--s4); }
.reader-cite-style-label { margin: 0 0 var(--s2); font: 700 .8125rem/1.4 var(--sans); color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.reader-cite-text { margin: 0; padding: var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: .875rem; line-height: 1.5; overflow-wrap: break-word; user-select: text; }
.reader-cite-copy { margin-top: var(--s2); display: inline-flex; align-items: center; gap: var(--s2); min-height: 2.5rem; padding: 0 var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: .8125rem; cursor: pointer; }

.reader-chapter-nav { display: flex; justify-content: space-between; gap: var(--s4); margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); font: 700 .9375rem/1.4 var(--sans); }
.reader-chapter-nav a { color: var(--ink); text-decoration: none; }
.reader-chapter-nav a:hover { text-decoration: underline; }
.reader-chapter-nav-next { margin-left: auto; text-align: right; }

.reader-facts, .reader-illustrations-note { max-width: var(--reader-measure, 38rem); color: var(--muted); font-size: .875rem; margin-top: var(--s2); }
.reader-facts a, .reader-illustrations-note a { color: var(--ink); }
.reader-length { max-width: var(--reader-measure, 38rem); color: var(--muted); font-size: .875rem; margin-top: var(--s2); }
.reader-page .hero:has(> .reader-hero-actions) {
  display: grid; grid-template-columns: min(4.5rem, 25%) minmax(0, 1fr); grid-template-rows: auto auto 1fr;
  column-gap: 1rem; row-gap: .25rem; align-items: start; padding-block: .25rem 1rem;
}
html.rp-on #reader-body.rp-first > .hero:has(> .reader-hero-actions) { display: grid; }
.reader-page .hero:has(> .reader-hero-actions) > * { grid-column: 2; min-width: 0; margin: 0; }
.reader-page .hero:has(> .reader-hero-actions) > .eyebrow { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.reader-page .hero:has(> .reader-hero-actions) > .reader-hero-cover { grid-column: 1; grid-row: 1 / span 3; width: 100%; }
.reader-hero-cover .book-cover { display: block; width: 100%; box-shadow: 0 .25rem .75rem rgb(0 0 0 / .12); }
.reader-hero-cover .cover-fallback { padding: .375rem; gap: .125rem; border-left-width: 2px; }
.reader-hero-cover .cover-fallback .cover-title { font-size: clamp(6px, 11.7cqi, 14px); -webkit-line-clamp: 5; hyphens: auto; overflow-wrap: normal; word-break: normal; }
.reader-hero-cover .cover-fallback .cover-author { font-size: clamp(5px, 9.2cqi, 11px); }
.reader-page .hero:has(> .reader-hero-actions) > h1 { font-size: clamp(1.5rem, 1.1rem + 2vw, 2.25rem); line-height: 1.15; max-width: none; overflow-wrap: break-word; }
.reader-page .hero:has(> .reader-hero-actions) > .lede { font-size: .9375rem; color: var(--muted); }
.reader-page .hero:has(> .reader-hero-actions) > .lede a { color: var(--ink); }
.reader-page .hero:has(> .reader-hero-actions) > .reader-length { font-size: .8125rem; }
.reader-page .hero:has(> .reader-hero-actions) > :is(.reader-hero-actions, .reader-about) { grid-column: 1 / -1; }
.reader-hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.reader-hero-actions .button {
  flex: 1 1 9rem; display: inline-grid; grid-template-columns: auto minmax(0, auto); column-gap: .5rem;
  align-items: center; justify-content: center; align-content: center; min-height: 3rem; padding-block: .375rem;
  font-size: 1.0625rem; line-height: 1.25; text-align: left;
}
.reader-hero-actions .button > .icon { grid-row: 1 / span 2; inline-size: 1.25rem; block-size: 1.25rem; }
.reader-hero-label { grid-column: 2; grid-row: 1; }
.reader-hero-sub { grid-column: 2; grid-row: 2; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 400; font-size: .8125rem; opacity: .85; }
.reader-hero-actions :is(.reader-hero-listen, .reader-hero-immersion)[hidden] { display: none; }
:is(.reader-about, .about-source) { margin-top: .5rem; border-top: 1px solid var(--line); }
:is(.reader-about, .about-source) > summary { display: flex; align-items: center; gap: .5rem; min-height: 2.75rem; padding: var(--s2) 0; color: var(--muted); font: 500 .875rem/1.3 var(--sans); cursor: pointer; list-style: none; }
:is(.reader-about, .about-source) > summary::-webkit-details-marker { display: none; }
:is(.reader-about, .about-source) > summary::after { content: ""; flex: none; width: .4rem; height: .4rem; margin-top: -.2rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
:is(.reader-about, .about-source)[open] > summary::after { margin-top: .2rem; transform: rotate(-135deg); }
:is(.reader-about, .about-source) > summary:hover { background: transparent; color: var(--ink); }
@media (prefers-reduced-motion: no-preference) { :is(.reader-about, .about-source) > summary::after { transition: transform .15s; } }
:is(.reader-about-body, .about-source-body) { padding-bottom: .75rem; }
.reader-about-body > * { max-width: var(--reader-measure, 38rem); margin-inline: 0; font-size: .875rem; }
.reader-about-body > .reader-attribution { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: inherit; }
.reader-about-body > :first-child, .reader-about-body > :first-child > :first-child { margin-top: 0; }
.about-source { margin-block: 0 var(--s6); max-width: var(--measure); }
.about-source-body > * { font-size: .875rem; }
.about-source .course-provenance { margin-top: 0; }
@media (min-width: 761px) {
  .reader-page .hero:has(> .reader-hero-actions) { grid-template-columns: min(7.5rem, 25%) minmax(0, 1fr); grid-template-rows: auto auto auto auto 1fr; column-gap: 1.5rem; padding-block: 1.5rem 1.25rem; }
  .reader-page .hero:has(> .reader-hero-actions) > .reader-hero-cover { grid-row: 1 / span 5; }
  .reader-page .hero:has(> .reader-hero-actions) > :is(.reader-hero-actions, .reader-about) { grid-column: 2; }
  .reader-hero-actions .button { flex: 0 0 auto; min-width: 10rem; }
  .reader-hero-cover .cover-fallback { padding: .5rem; gap: .25rem; border-left-width: 3px; }
  .reader-hero-cover .cover-fallback .cover-title { font-size: clamp(6px, 11.7cqi, 14px); }
  .reader-hero-cover .cover-fallback .cover-author { font-size: clamp(5px, 9.2cqi, 11px); }
}
@media (max-width: 760px) {
  .listen-page > .listen-read-link { padding-inline: 16px; }
  .reader-hero-actions .reader-hero-read:has(.reader-hero-sub) { flex-basis: 100%; }
  .reader-hero-actions .reader-hero-listen[href^="/listen/"] { flex-basis: 100%; }
  .page:has(.reader-page) { padding-top: 0; }
  .page:has(.reader-page) .breadcrumbs > :not(a:last-of-type) { display: none; }
  .page:has(.reader-page) .breadcrumbs > a:last-of-type { gap: .5rem; padding-right: .5rem; color: var(--ink); text-decoration: none; }
  .page:has(.reader-page) .breadcrumbs > a { min-height: max(44px, 1.75em); }
  .page:has(.reader-page) .breadcrumbs > a:last-of-type::before { content: ""; flex: none; width: .45rem; height: .45rem; margin-left: .2rem; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
}
.reader-page .hero:has(> .reader-hero-actions) { container: rl-hero / inline-size; }
@container rl-hero (max-width: 15rem) {
  .reader-page .hero:has(> .reader-hero-actions) > * { grid-column: 1 / -1; }
  .reader-page .hero:has(> .reader-hero-actions) > .reader-hero-cover { grid-column: 1 / -1; grid-row: auto; order: -1; width: min(4rem, 28%); }
}
@container rl-hero (max-width: 11rem) {
  .reader-page .hero:has(> .reader-hero-actions) { grid-template-columns: min(2.25rem, 20%) minmax(0, 1fr); column-gap: .5rem; row-gap: .125rem; padding-block: 0 .5rem; }
  .reader-page .hero:has(> .reader-hero-actions) > h1 { grid-column: 2; grid-row: 1; align-self: center; }
  .reader-page .hero:has(> .reader-hero-actions) > .reader-hero-cover { grid-column: 1; grid-row: 1; order: 0; width: 100%; }
  .reader-page .hero:has(> .reader-hero-actions) > h1 { font-size: clamp(1.125rem, 7cqi, 1.5rem); line-height: 1.05; }
  .reader-page .hero:has(> .reader-hero-actions) > .lede { font-size: .8125rem; }
  .reader-hero-actions { gap: .375rem; margin-top: .375rem; }
  .reader-hero-actions .button { min-height: max(44px, 1.75em); padding-block: .25rem; }
  .reader-hero-actions .button > .icon { display: none; }
  .reader-hero-actions .button > :is(.reader-hero-label, .reader-hero-sub) { grid-column: 1 / -1; }
}
.reader-page .hero:has(> .reader-hero-actions):not(:has(> .reader-hero-cover)) { grid-template-columns: minmax(0, 1fr); }
.reader-page .hero:has(> .reader-hero-actions):not(:has(> .reader-hero-cover)) > * { grid-column: 1; grid-row: auto; }
@media (max-width: 760px) {
  .reader-hero-actions .button, .reader-page .reader-toc > summary { overflow-wrap: break-word; }
  .reader-page .reader-toc > summary { flex-wrap: wrap; }
}
.reader-book-bar { display: none; }
@media (max-width: 760px) {
  .reader-book-bar:not([hidden]) {
    position: fixed; z-index: 26; left: 0; right: 0; bottom: 0; display: block; container: rl-book-bar / inline-size;
    padding: .5rem max(1rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    background: var(--canvas); border-top: 1px solid var(--line); box-shadow: 0 -4px 16px rgb(0 0 0 / .06);
  }
  .reader-book-bar-row { display: flex; gap: .5rem; }
  .reader-book-bar-btn { flex: 1 1 0; min-width: 0; min-height: max(44px, 1.75em); padding-block: .25rem; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding-inline: .75rem; font-size: 1rem; }
  .reader-book-bar-btn > .icon { flex: none; inline-size: 1.125rem; block-size: 1.125rem; }
  .reader-book-bar-btn[hidden] { display: none; }
  .reader-book-bar-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  @container rl-book-bar (max-width: 15rem) {
    .reader-book-bar-row { gap: .375rem; margin-inline: min(0px, calc(12px - 1rem)); }
    .reader-book-bar-btn { gap: .25rem; padding-inline: .375rem; font-size: .8125rem; }
    .reader-book-bar-more { display: none; }
  }
  @container rl-book-bar (max-width: 11rem) {
    .reader-book-bar-btn > .icon { display: none; }
  }
  body:has(.reader-book-bar:not([hidden])) { padding-bottom: 4.5rem; }
  :is(html.rl-session-compact, html.rl-session-expanded, html.rl-audio-open, html.rp-on) .reader-book-bar { display: none !important; }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 760px) {
  .reader-book-bar:not([hidden]) { animation: rl-book-bar-in .18s ease-out; }
  @keyframes rl-book-bar-in { from { transform: translateY(100%); } to { transform: none; } }
}
@media print { .reader-book-bar { display: none !important; } }
.reader-toc li:has(> .reader-toc-length) { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--s2); }
.reader-toc li > a { flex: 1 1 8rem; min-width: 0; }
.reader-toc-length { flex: 0 1 auto; color: var(--muted); font-size: .8125rem; margin-left: auto; padding-right: var(--s1); max-width: 100%; }

.reader-resume .reader-start-over { margin-left: var(--s3); border: none; background: none; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; padding: 0; }

.reader-return-pill { display: none; position: sticky; top: var(--s3); z-index: 5; align-items: center; gap: var(--s3); width: fit-content; margin-bottom: var(--s4); padding: var(--s2) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--surface); color: var(--ink); font-size: .875rem; }
.reader-return-pill.is-visible { display: flex; }
.reader-return-pill button { border: none; background: none; color: inherit; font: inherit; cursor: pointer; padding: 0; }
.reader-return-link { font-weight: 700; text-decoration: underline; }
.reader-return-dismiss { margin-left: var(--s2); font-size: 1.125rem; line-height: 1; padding: var(--s1); }
.reader-chapter { scroll-margin-top: calc(var(--s3) + 3.5rem); }
@media (min-width: 761px) {
  html:not(.rp-on) .reader-chapter { scroll-margin-top: calc(3.75rem + var(--s3) + 3.5rem); }
  html:not(.rp-on) .reader-return-pill { top: calc(3.75rem + var(--s3)); }
}

.reader-page.reader-bg-warm { background: #F4ECD8; }
.reader-page.reader-bg-warm .reader-toc,
.reader-page.reader-bg-warm .reader-settings-panel,
.reader-page.reader-bg-warm .reader-search-panel,
.reader-page.reader-bg-warm .reader-cite-panel,
.reader-page.reader-bg-warm .reader-attribution { background: #EFE3C4; }
.reader-page.reader-bg-warm .reader-toolbar-btn,
.reader-page.reader-bg-warm .reader-search-panel input[type="search"],
.reader-page.reader-bg-warm .reader-cite-text { background: #F4ECD8; }

.rl-qmark { background: #FCD34D; color: var(--ink); box-shadow: inset 0 -2px 0 #B45309; border-radius: 0; padding: 0; }
.reader-page.reader-bg-warm .rl-qmark { background: #F2C14E; box-shadow: inset 0 -2px 0 #92400E; }
:root[data-theme="dark"] .rl-qmark { background: #6B4E00; box-shadow: inset 0 -2px 0 #FBBF24; }
@media (forced-colors: active) { .rl-qmark { background: Mark; color: MarkText; box-shadow: none; text-decoration: underline; } }
.rl-qclear { position: fixed; z-index: 35; left: 50%; transform: translateX(-50%); bottom: calc(var(--rp-foot-h, 0px) + var(--s3)); min-height: 2.75rem; padding: 0 var(--s4); border: 1px solid var(--control); border-radius: 999px; background: var(--canvas); color: var(--ink); font: 600 .875rem/1.2 var(--sans); box-shadow: var(--card-shadow); cursor: pointer; white-space: nowrap; }
.rl-qclear.is-top { bottom: auto; top: calc(var(--rp-top-h, 0px) + var(--s3)); }
html.rp-on .rl-qclear, html.rp-on .rl-qclear.is-top { top: auto; bottom: calc((var(--rp-foot-h) - 2.25rem) / 2); min-height: 2.25rem; }
.reader-warm-note { flex: 1 0 100%; margin: 0; color: var(--muted); font-size: .8125rem; }
.reader-highlight-note { flex: 1 0 100%; margin: 0; color: var(--muted); font-size: .8125rem; }

.reader-toc-tabs { display: flex; gap: var(--s2); margin-top: var(--s4); }
.reader-toc-tabs button { flex: 1; min-height: 2.75rem; border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font: 700 .8125rem/1.4 var(--sans); cursor: pointer; }
.reader-toc-tabs button[aria-selected="true"] { background: var(--ink); color: var(--canvas); border-color: var(--ink); }
.reader-toc [role="tabpanel"] { margin-top: var(--s4); }
.reader-bookmark-item { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); min-height: 2.75rem; padding-block: var(--s2); border-top: 1px solid var(--line); }
.reader-bookmark-item:first-child { border-top: none; }
.reader-bookmark-item a { flex: 1 1 auto; min-width: 0; color: var(--ink); font-size: .875rem; text-decoration: none; }
.reader-bookmark-item a:hover { text-decoration: underline; }
.reader-bookmark-item button { border: none; background: none; color: var(--muted); font-size: .8125rem; cursor: pointer; padding: var(--s1) var(--s2); flex: 0 0 auto; }
.reader-bookmark-label { display: block; width: 100%; margin-top: var(--s1); padding: var(--s1) var(--s2); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: .8125rem; }

.reader-audio-badge { display: inline-flex; align-items: center; gap: var(--s2); margin: var(--s2) 0 0; color: var(--muted); font-size: .875rem; }
.reader-audio-badge svg { flex: 0 0 auto; }
.book-audio-line { display: flex; align-items: flex-start; gap: var(--s2); margin: var(--s2) 0 0; font-size: .875rem; }
.book-audio-line svg { flex: 0 0 auto; margin-top: .15em; }

.reader-mobile-toolbar { display: none; }
@media (max-width: 760px) {
  .reader-toolbar { display: none; }
  .reader-mobile-toolbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; gap: var(--s1); padding: var(--s2) var(--s3); background: var(--canvas); border-top: 1px solid var(--line); }
  .reader-mobile-toolbar button { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s1); min-height: 44px; min-width: 44px; border: none; background: none; color: var(--ink); font-size: .6875rem; cursor: pointer; }
  .reader-mobile-toolbar { gap: 0; padding-inline: var(--s1); }
  .reader-mobile-toolbar button { flex: 1 1 auto; min-width: 44px; padding-inline: 0; white-space: nowrap; }
  @media (max-width: 300px) { .reader-mobile-toolbar button { min-width: min-content; } }
  @media (max-width: 380px) { .reader-mobile-toolbar button { font-size: clamp(.38rem, 2.9vw, .625rem); letter-spacing: -.01em; } }
  @media (min-width: 381px) and (max-width: 420px) { .reader-mobile-toolbar button { font-size: .625rem; } }
  .reader-page { padding-bottom: 4.5rem; }
  html:not(.rp-on) .reader-page .reader-settings-panel:not([hidden]) {
    --rl-aa-below: calc(var(--rp-audio-h, 0px) + var(--rl-vv-bottom, 0px) + max(3.5rem, var(--rl-toolbar-h, 3.5rem)) + 8px + env(safe-area-inset-bottom, 0px));
    position: fixed; z-index: 46; left: 8px; right: 8px; margin: 0;
    bottom: var(--rl-aa-below);
    max-height: max(min(10rem, 50dvh, calc(100dvh - var(--rp-audio-h, 0px) - max(3.5rem, var(--rl-toolbar-h, 3.5rem)) - 80px)), min(50dvh, calc(58dvh - var(--rl-aa-below))));
    overflow-y: auto; overscroll-behavior: contain;
    padding: var(--s4); box-shadow: 0 8px 28px rgb(0 0 0 / .18);
  }
  body:has(.reader-mobile-toolbar) .ui-toast { bottom: calc(var(--s4) + 3.5rem); }
  html:not(.rp-on) body:has(.reader-mobile-toolbar) .rl-qclear:not(.is-top) { bottom: calc(var(--s3) + 3.5rem); }
}

@media (min-width: 761px) {
  html:not(.rp-on) .reader-page .reader-settings-panel:not([hidden]) {
    --rl-aa-top: calc(2.75rem + 2 * var(--s2) + 4px);
    position: fixed; z-index: 46; top: var(--rl-aa-top); left: var(--s4); right: var(--s4);
    max-width: 36rem; margin: 0 auto;
    max-height: calc(100dvh - var(--rl-aa-top) - var(--s4));
    overflow-y: auto; overscroll-behavior: contain;
    box-shadow: 0 8px 28px rgb(0 0 0 / .18);
  }
}

@media print {
  .site-header, .breadcrumbs, .reader-toc, .reader-toolbar, .reader-mobile-toolbar,
  .reader-settings-panel, .reader-search-panel, .reader-cite-panel, .reader-resume, .reader-return-pill,
  .reader-chapter-nav, .site-footer, #ui-toast, .skip, .rl-qclear { display: none !important; }
  .reader-article { max-width: none; font-size: 12pt; line-height: 1.5; color: #000; }
  .reader-layout { display: block; }
  a { color: #000; text-decoration: none; }
  .reader-chapter { content-visibility: visible !important; }
}

.sync-status { margin: var(--s2) 0 0; color: var(--muted); font-size: .8125rem; }
.sync-status a { color: inherit; }
.sync-status[data-sync-state="retrying"], .sync-status[data-sync-state="signedout"], .sync-status[data-sync-state="age"] { color: var(--warning); }
.sync-status--reader { margin: var(--s2) 0 var(--s4); }
.account-line { margin: var(--s3) 0 0; }

.account-page { max-width: 30rem; margin-inline: auto; }
.account-page .account-hero { padding-block: var(--s6) var(--s4); }
.account-page .account-hero h1 { font-size: clamp(2.25rem, 6vw, 3rem); }
.account-root { max-width: none; }
.page:has(.account-page) .breadcrumbs { max-width: 30rem; margin-inline: auto; }
.account-panel h2 { margin-bottom: var(--s3); }
.account-form { display: grid; gap: var(--s4); margin-top: var(--s4); }
.account-field { display: grid; gap: var(--s2); }
.account-field label { font-weight: 600; font-size: .9375rem; }
.account-field input { width: 100%; max-width: none; min-height: 3rem; padding: var(--s3) var(--s4); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: 1rem; }
.account-code-input { max-width: 12rem !important; font-family: var(--mono); font-size: 1.375rem !important; letter-spacing: .3em; }
.account-check { display: flex; align-items: center; gap: var(--s3); min-height: 2.75rem; }
.account-check input { width: 1.25rem; height: 1.25rem; margin: 0; flex: 0 0 auto; accent-color: var(--ink); }
.account-check label { font-size: .9375rem; }
.account-form .button { justify-self: stretch; min-height: 3rem; }
.account-panel .account-actions .button, #account-code-form .button { justify-self: stretch; }
.account-consent { margin: 0; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.account-consent a { color: var(--ink); }
.account-google-button { display: flex; justify-content: center; min-height: 2.75rem; margin-top: var(--s4); }
.account-google-button[aria-busy="true"] { opacity: .65; pointer-events: none; }
.account-divider { display: flex; align-items: center; gap: var(--s3); margin: var(--s4) 0 0; color: var(--muted); font-size: .8125rem; }
.account-divider::before, .account-divider::after { content: ""; flex: 1; border-top: 1px solid var(--line); }
.account-form { margin-top: var(--s3); }
#account-signed-out > .account-consent { margin-top: var(--s3); }
.account-secondary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin: var(--s4) 0 0; font-size: .875rem; color: var(--muted); }
.account-secondary button { min-height: 2.75rem; border: none; background: none; padding: 0; color: var(--ink); font-size: .875rem; text-decoration: underline; text-underline-offset: .2em; }
.account-secondary button:disabled { color: var(--muted); text-decoration: none; cursor: default; }
.account-captcha { min-height: 0; }
.account-captcha:empty { display: none; }
.account-captcha--resend { margin-top: var(--s3); }
.account-error { margin: 0 0 var(--s4); padding: var(--s3) var(--s4); border: 1px solid var(--warning); border-radius: var(--r1); color: var(--warning); font-size: .9375rem; }
.account-who { font-size: 1.0625rem; margin-bottom: var(--s2); }
.account-counts, .account-list { margin: 0 0 var(--s4); padding-left: var(--s5); }
.account-counts li, .account-list li { margin-bottom: var(--s1); }
.account-actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.account-note { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--line); }
.account-note .account-counts { margin-bottom: var(--s3); }

.reader-other-places { margin-bottom: var(--s4); }
.reader-other-place { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin: 0 0 var(--s2); padding: var(--s2) var(--s4); border: 1px solid var(--line); border-radius: var(--r1); background: var(--surface); color: var(--ink); font-size: .875rem; }
.reader-other-go { font-weight: 700; }
.reader-other-dismiss { margin-left: auto; border: none; background: none; color: var(--muted); font-size: 1.125rem; line-height: 1; padding: var(--s1) var(--s2); min-width: 2.75rem; min-height: 2.75rem; cursor: pointer; }
.other-place { margin: var(--s2) 0 0; }
.other-place button, .removed-elsewhere button { border: none; background: none; padding: 0 var(--s1); min-height: 2.75rem; color: var(--muted); font-size: .8125rem; text-decoration: underline; cursor: pointer; }
.removed-elsewhere { margin: var(--s3) 0 0; }
@media print { .sync-status, .reader-other-places { display: none !important; } }

.legal-page { max-width: 44rem; }
.legal-section { margin-top: var(--s8); }
.legal-section h2 { font-size: 1.375rem; margin-bottom: var(--s3); }
.legal-section p, .legal-section li { line-height: 1.7; }
.legal-section ul { padding-left: var(--s5); }
.legal-section li { margin-bottom: var(--s2); }
.legal-address { font-style: normal; line-height: 1.7; margin: var(--s3) 0; }

.header-actions { display: flex; align-items: center; gap: var(--s3); }
.auth-in { display: none; }
html[data-auth="in"] .auth-in { display: block; }
html[data-auth="in"] .auth-out { display: none; }
.header-signin { display: inline-flex; align-items: center; gap: var(--s2); min-height: 2.75rem; padding: 0 var(--s4); border-radius: var(--r1); background: var(--ink); color: var(--canvas); font-size: .875rem; font-weight: 600; text-decoration: none; }
.header-signin:hover { opacity: .9; }
.account-menu { position: relative; }
.account-menu-button { display: inline-flex; align-items: center; gap: var(--s2); min-height: 2.75rem; padding: 0 var(--s3) 0 var(--s2); border: 1px solid var(--control); border-radius: 999px; background: var(--canvas); color: var(--ink); font-size: .875rem; cursor: pointer; }
.account-menu-button:hover, .account-menu-button[aria-expanded="true"] { background: var(--surface); }
.account-avatar { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--brand); color: #fff; font-weight: 700; font-size: .875rem; text-transform: uppercase; }
.account-menu-caret { flex: none; }
.account-menu-button[aria-expanded="true"] .account-menu-caret { transform: rotate(180deg); }
.account-menu-panel { position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + var(--s2)); z-index: 50; min-width: 16rem; max-width: min(22rem, calc(100vw - 2rem)); padding: var(--s3); border: 1px solid var(--line); border-radius: var(--r2); background: var(--canvas); box-shadow: 0 12px 32px rgba(0, 0, 0, .14); }
.account-menu-panel[hidden] { display: none; }
.account-menu-who { margin: var(--s1) var(--s2) var(--s1); font-size: .8125rem; color: var(--muted); overflow-wrap: anywhere; }
.account-menu-who strong { color: var(--ink); font-weight: 600; }
.account-menu-panel .account-menu-status { margin: 0 var(--s2) var(--s2); padding: 0; font-size: .75rem; }
.account-menu-status:empty { display: none; }
.account-menu-panel > a { display: flex; align-items: center; gap: var(--s2); min-height: 2.75rem; padding: 0 var(--s2); border-radius: var(--r1); color: var(--ink); text-decoration: none; font-size: .9375rem; }
.account-menu-panel > a:hover, .account-menu-panel > a:focus-visible { background: var(--surface); }
.account-menu-signout { margin-top: var(--s2); border-top: 1px solid var(--line); border-radius: 0 0 var(--r1) var(--r1) !important; padding-top: var(--s2) !important; }
@media (max-width: 760px) {
  .header-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .account-menu-label { display: none; }
  .site-header { position: relative; }
  .account-menu { position: static; }
  .account-menu-panel { inset-inline: 16px; max-width: none; inset-block-start: auto; margin-block-start: var(--s2); }
}
@media print { .header-actions { display: none; } }

.site-header:has(> .header-compact) { border-block-end: 0; box-shadow: inset 0 -1px 0 var(--line); }
.site-header .header-compact { width: calc(100% - 64px); max-width: none; margin-inline: 32px; min-height: 68px; padding-block: 8px; gap: 8px 48px; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; }
.header-compact .brand { min-width: 44px; min-height: 44px; flex-shrink: 0; gap: 9px; white-space: nowrap; }
.header-compact .brand-wordmark { font: 700 .84375rem/1.25 var(--sans); letter-spacing: .13em; color: var(--ink); }
.header-compact .brand .brand-mark { display: block; width: 25px; height: 25px; flex: none; }
.header-compact .site-nav { width: auto; max-width: 100%; min-width: 0; gap: 0 14px; justify-content: flex-start; }
.header-compact .site-nav a { position: relative; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 0; color: var(--muted); font-size: .6875rem; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; white-space: normal; text-align: center; overflow-wrap: normal; }
.header-compact .site-nav a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 5px; }
.header-compact .site-nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }
.header-compact .site-nav a[aria-current="page"]::before { content: ""; position: absolute; inset-inline-start: 2px; inset-block-start: calc(50% - 7px); inline-size: 2px; block-size: 14px; background: var(--active-marker); }
.header-compact .header-actions { width: auto; max-width: 100%; margin-inline-start: auto; display: flex; align-items: center; flex-wrap: wrap; border-inline-start: 1px solid var(--line); padding-inline-start: 20px; gap: 6px; }
.site-header .header-compact .header-feedback { display: inline-flex; min-width: 44px; min-height: 44px; height: auto; margin: 0; padding: 0 8px; align-items: center; font-size: .8125rem; line-height: 1.4; white-space: normal; }
.header-compact .header-feedback .fb-long { display: inline; }
.header-compact .header-feedback .fb-short { display: none; }
.header-compact .theme-toggle { position: relative; width: 44px; min-width: 44px; min-height: 44px; flex: none; justify-content: center; border: 0; padding: 0; background: transparent; border-radius: 4px; }
.header-compact .theme-toggle .toggle-label { display: block; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.header-compact .theme-toggle .icon { inline-size: 18px; block-size: 18px; stroke-width: 1.6; }
.header-compact .account-menu-button { width: 44px; min-width: 44px; min-height: 44px; border: 0; border-radius: 4px; background: transparent; padding: 0; justify-content: center; color: var(--muted); }
.header-compact .account-menu-label { display: block; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.header-compact .account-menu-caret { display: none; }
.header-compact .account-avatar { width: 28px; height: 28px; flex: none; font-size: .6875rem; background: var(--ink); color: var(--canvas); }
.header-compact .account-menu-panel { min-width: 16rem; width: 18rem; overflow-wrap: normal; }
.header-compact .header-signin { min-width: 44px; min-height: 44px; background: transparent; color: var(--ink); padding: 0 10px; font-size: .8125rem; font-weight: 500; }
.header-compact :is(.theme-toggle, .account-menu-button, .header-signin):hover { background: var(--surface); opacity: 1; }
@media (min-width: 761px) and (max-width: 1199px) {
  .site-header .header-compact { width: calc(100% - 48px); margin-inline: 24px; gap: 4px 20px; }
  .header-compact .site-nav { gap: 0 8px; }
  .header-compact .header-actions { padding-inline-start: 12px; }
}
@media (min-width: 761px) and (max-width: 1099px) {
  .header-compact .header-feedback .fb-long { display: none; }
  .header-compact .header-feedback .fb-short { display: inline; }
}

:root { --rl-header-h: 68px; }
.header-compact :is(.header-books, .header-search-toggle, .nav-menu-toggle, .header-search, .header-menu-search) { display: none; }
.header-icon { display: inline-grid; place-items: center; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: var(--r1); background: transparent; color: var(--ink); cursor: pointer; }
.header-icon:hover { background: var(--surface); }
.header-icon .icon { inline-size: 20px; block-size: 20px; stroke-width: 1.6; }
.nav-menu-toggle .icon-close { display: none; }
.nav-menu-toggle[aria-expanded="true"] .icon-open { display: none; }
.nav-menu-toggle[aria-expanded="true"] .icon-close { display: block; }
@media (max-width: 760px) {
  :root { --rl-header-h: 56px; }
  .site-header .header-compact {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto;
    grid-template-areas: "brand books search account menu" "form form form form form" "nav nav nav nav nav" "menu-search menu-search menu-search menu-search menu-search"
      "feedback feedback feedback feedback feedback" "theme theme theme theme theme" "more more more more more";
    width: calc(100% - 32px); margin-inline: 16px;
    align-items: center; gap: 0; min-height: 56px; padding-block: 6px;
  }
  .header-compact .brand { grid-area: brand; justify-self: start; max-width: 100%; gap: 7px; }
  .header-compact .brand .brand-mark { width: 22px; height: 22px; }
  .header-compact .brand-wordmark { font-size: .8125rem; }
  .site-header .header-compact .header-books {
    grid-area: books; display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; padding: 0 7px;
    position: relative; color: var(--ink); font: 600 .6875rem/1.4 var(--sans); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; border: 0;
  }
  .header-compact .header-books[aria-current]::after { content: ""; position: absolute; inline-size: 18px; block-size: 2px; inset-block-end: 2px; inset-inline-start: calc(50% - 9px); background: var(--active-marker); }
  .site-header .header-compact .header-search-toggle { grid-area: search; display: inline-grid; }
  .site-header .header-compact .nav-menu-toggle { grid-area: menu; display: inline-grid; margin-inline-end: -6px; }
  .header-compact .header-actions { display: contents; border: 0; padding: 0; margin: 0; }
  .header-compact :is(.header-signin, .account-menu) { grid-area: account; }
  .header-compact .header-signin { width: 44px; padding: 0; justify-content: center; }
  .header-compact .header-signin:hover { background: var(--surface); opacity: 1; }
  .header-compact .header-signin .icon { inline-size: 20px; block-size: 20px; }
  .header-compact .header-signin > span { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .header-compact .account-menu-button { height: 44px; }
  .header-compact .account-menu-panel { inset-block-start: 100%; margin-block-start: 0; }
  .site-header .header-compact :is(.site-nav, .header-feedback, .theme-toggle, .rl-site-more) { display: none; }
  .site-header .header-compact .header-search:not([hidden]) { grid-area: form; display: flex; gap: .5rem; padding-block: .5rem .75rem; }
  .header-compact .header-search input { flex: 1; min-width: 0; min-height: 44px; padding: 0 .75rem; border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font-size: 1rem; }
  .header-compact .header-search .button { flex: none; min-height: 44px; padding: 8px 12px; line-height: 1.3; }
  .site-header.is-menu-open { max-height: calc(var(--rp-vv-h, 100dvh) - var(--rp-vv-top, 0px)); overflow-y: auto; overscroll-behavior: contain; }
  .site-header.is-menu-open .header-compact .site-nav { grid-area: nav; display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%; border-top: 1px solid var(--line); padding-block: 8px; }
  .site-header.is-menu-open .header-compact .site-nav a { justify-content: flex-start; min-height: 48px; padding: 8px 16px; text-align: start; font-size: .875rem; line-height: 1.4; letter-spacing: .06em; color: var(--ink); border: 0; }
  .site-header.is-menu-open .header-compact .site-nav a[aria-current="page"]::before { block-size: 16px; inset-block-start: calc(50% - 8px); }
  .site-header.is-menu-open .header-compact .header-menu-search { grid-area: menu-search; display: none; width: 100%; min-height: 48px; padding: 8px 16px; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); font: 500 .9375rem/1.4 var(--sans); text-align: start; cursor: pointer; }
  .site-header.is-menu-open .header-compact .header-feedback { grid-area: feedback; display: flex; min-height: 48px; padding: 8px 16px; border-top: 1px solid var(--line); color: var(--ink); font-size: .9375rem; text-decoration: none; }
  .site-header.is-menu-open .header-compact .header-feedback .fb-long { display: inline; }
  .site-header.is-menu-open .header-compact .header-feedback .fb-short { display: none; }
  .site-header.is-menu-open .header-compact .theme-toggle { grid-area: theme; display: flex; width: 100%; min-height: 48px; justify-content: flex-start; gap: 10px; border-top: 1px solid var(--line); border-radius: 0; padding: 8px 16px; font-size: .9375rem; line-height: 1.4; }
  .site-header.is-menu-open .header-compact .theme-toggle .toggle-label { display: inline; position: static; width: auto; height: auto; margin: 0; clip-path: none; overflow: visible; white-space: normal; }
  html.rl-app-shell .site-header.is-menu-open .header-compact .rl-site-more { grid-area: more; display: block; border-top: 1px solid var(--line); }
  html.rl-app-shell .site-header.is-menu-open .header-compact .rl-site-more > summary { min-height: 48px; justify-content: flex-start; padding: 8px 16px; color: var(--ink); font-size: .9375rem; line-height: 1.4; border-radius: 0; }
  html.rl-app-shell .site-header.is-menu-open .header-compact .rl-more-panel { position: static; width: auto; max-height: none; padding: 0 0 .5rem; border: 0; border-radius: 0; box-shadow: none; }
  .site-header.is-menu-open .header-compact :is(.site-nav a, .header-menu-search, .header-feedback, .theme-toggle, .rl-site-more > summary, .rl-more-links a):focus-visible { outline-offset: -3px; }
}

@media (max-width: 359px) {
  .site-header .header-compact .header-books { display: none; }
}
@media (max-width: 299px) {
  .site-header .header-compact { width: calc(100% - 16px); margin-inline: 8px; }
  .header-compact .brand-wordmark { display: none; }
  .header-compact .brand .brand-mark { width: 32px; height: 32px; }
}
@media (max-width: 179px) {
  .site-header .header-compact .header-search-toggle { display: none; }
  .site-header.is-menu-open .header-compact .header-menu-search { display: flex; align-items: center; }
}
@media (max-width: 760px) {
  .site-header:has(> .header-compact) { container: rl-header / inline-size; position: relative; z-index: 19; }
}
@container rl-header (max-width: 22.4375rem) {
  .site-header .header-compact .header-books { display: none; }
}
@container rl-header (max-width: 18.6875rem) {
  .site-header .header-compact { width: calc(100% - 16px); margin-inline: 8px; }
  .header-compact .brand-wordmark { display: none; }
  .header-compact .brand .brand-mark { width: 32px; height: 32px; }
}
@container rl-header (max-width: 11.1875rem) {
  .site-header .header-compact .header-search-toggle { display: none; }
  .site-header.is-menu-open .header-compact .header-menu-search { display: flex; align-items: center; }
}
@media (max-width: 760px) {
  .breadcrumbs { padding-block: var(--s2) 0; font-size: .8125rem; }
  .breadcrumbs > [aria-current="page"], .breadcrumbs > span[aria-hidden]:nth-last-child(2) { display: none; }
  .breadcrumbs:has(> a:only-of-type):has(> [aria-current="page"]) { display: none; }
}
@media print { .header-compact :is(.header-books, .header-search-toggle, .nav-menu-toggle, .header-search) { display: none !important; } }

.account-page { width: 100%; max-width: 64rem; margin-inline: auto; }
.page:has(.account-page) .breadcrumbs { width: 100%; max-width: 64rem; margin-inline: auto; }
.account-auth-card, .account-card { border: 1px solid var(--line); border-radius: var(--r2); background: var(--canvas); }
.account-auth-card { display: grid; overflow: hidden; }
.account-card { padding: var(--s5); }
.account-state-card { max-width: 48rem; }
.account-auth-right { order: 1; min-width: 0; padding: clamp(var(--s5), 5vw, var(--s8)); }
.account-benefits { order: 2; padding: var(--s5); background: var(--surface); }
.account-auth-right h1, .account-profile-row h1 { margin: 0; font: 500 clamp(2rem, 4vw, 2.6rem)/1.1 var(--serif); letter-spacing: -.025em; }
.account-benefits h2 { margin: 0 0 var(--s4); font: 500 1.5rem/1.2 var(--serif); }
.account-subline { margin: var(--s2) 0 0; color: var(--muted); white-space: nowrap; }
.account-benefits ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.account-benefits li { display: flex; align-items: center; gap: var(--s3); line-height: 1.4; }
.account-benefits li .icon { flex: none; color: var(--muted); }
.account-benefits > p { margin: var(--s5) 0 0; color: var(--muted); font-size: .875rem; }
.account-auth-right .account-google-button { width: 100%; max-width: 25rem; justify-content: flex-start; }
.account-auth-right .account-google-button > * { max-width: 100%; }
.account-auth-right .account-google-button > .fake-google-button { width: 100%; min-height: 2.75rem; border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font: 600 .9375rem var(--sans); cursor: pointer; }
.account-auth-right .account-form { max-width: 25rem; }
.account-auth-right .account-form .button { width: 100%; }
.account-consent { max-width: 42rem; margin: var(--s4) 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.account-consent a { color: var(--ink); }
.account-divider { max-width: 25rem; }
.account-code-input { max-width: 100% !important; width: 100%; min-height: 3.75rem !important; text-align: center; font-size: 1.75rem !important; letter-spacing: .4em; font-variant-numeric: tabular-nums; }
.account-auth-right #account-code-form { max-width: 24rem; margin-inline: auto; }
.account-auth-right #account-code-step > h1, .account-auth-right #account-code-step > .meta { text-align: center; }
.account-auth-right #account-code-step > .meta { margin: var(--s3) 0 var(--s5); }
.account-auth-right #account-code-step .account-secondary { justify-content: center; }
.account-profile-row { display: flex; align-items: center; gap: var(--s4); padding: 0 0 var(--s5); border-bottom: 1px solid var(--line); }
.account-profile-avatar { display: grid; place-items: center; flex: none; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--ink); color: var(--canvas); font-size: 1.25rem; font-weight: 700; text-transform: uppercase; }
.account-profile-copy { min-width: 0; flex: 1; }
.account-profile-row h1 { font-size: 2rem; }
.account-profile-email { overflow: hidden; max-width: 100%; margin: var(--s1) 0 0; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.account-sync-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--s2); min-width: 0; }
.account-sync-line :is(.sync-status, #account-last-sync) { min-width: 0; margin: 0; color: var(--muted); font-size: .8125rem; }
.account-profile-signout { flex: none; }
.account-notices { display: grid; gap: var(--s3); padding-block: var(--s4); }
.account-callout { padding: var(--s3) var(--s4); border-inline-start: 3px solid var(--warning); border-radius: var(--r1); background: var(--surface); }
.account-callout p { margin: 0 0 var(--s2); }
.account-callout--bring { border-color: var(--success); }
.account-callout--bring > p { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 var(--s1); }
.account-counts { display: inline-flex; flex-wrap: wrap; gap: 0 var(--s2); margin: 0; padding: 0; list-style: none; }
.account-counts li { margin: 0; }
.account-counts li + li::before { content: "· "; color: var(--muted); }
.account-grid { display: grid; gap: var(--s4); }
.account-grid h2, .account-panel h2 { margin: 0 0 var(--s3); font: 500 1.5rem/1.2 var(--serif); }
.account-grid h3 { margin: var(--s4) 0 var(--s2); font-size: .875rem; }
.account-pills { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0; padding: 0; list-style: none; }
.account-pills li { padding: var(--s1) var(--s3); border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .8125rem; line-height: 1.4; }
.account-actions { gap: var(--s2); }
.account-actions .button, .account-shared-device > .button { min-height: 2.75rem; }
.account-shared-device h2 { margin-bottom: var(--s2); }
.account-delete-details { grid-column: 1 / -1; }
.account-delete-details > summary { color: var(--brand); font-weight: 700; cursor: pointer; }
.account-delete-details > summary::marker { color: var(--brand); }
.account-delete-columns { display: grid; gap: var(--s4); }
.account-delete-columns h3 { margin-top: var(--s2); }
.account-delete-details .account-list { padding-inline-start: var(--s4); margin-bottom: 0; font-size: .875rem; }
.account-delete-details .account-form { max-width: 32rem; }
.account-delete-details .account-captcha { margin-block: var(--s3); }
.account-delete-details .account-check { margin-top: var(--s4); }
.account-root > #account-orphan-done:empty { display: none; }
.account-menu-panel { width: 18rem; min-width: 16rem; max-width: min(22rem, calc(100vw - 2rem)); overflow-wrap: normal; }
.account-menu-profile { display: flex; align-items: center; gap: var(--s3); min-width: 0; margin: 0 0 var(--s2); padding: 0 var(--s2) var(--s3); border-bottom: 1px solid var(--line); }
.account-menu-profile .account-avatar { width: 2.25rem; height: 2.25rem; flex: none; background: var(--ink); color: var(--canvas); }
.account-menu-profile-copy { display: grid; min-width: 0; flex: 1; gap: 2px; }
.account-menu-profile-copy > strong { overflow: hidden; color: var(--ink); font-size: .875rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.account-menu-profile-copy .account-menu-status { overflow: hidden; margin: 0; padding: 0; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.account-menu-panel > a { white-space: nowrap; overflow-wrap: normal; }
.account-menu-signout { display: flex; align-items: center; gap: var(--s2); width: 100%; min-height: 2.75rem; margin-top: var(--s2); padding: var(--s2); border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); text-align: left; font: inherit; cursor: pointer; white-space: nowrap; }
.account-menu-signout:hover, .account-menu-signout:focus-visible { background: var(--surface); }
@media (min-width: 860px) {
  .account-auth-card { grid-template-columns: minmax(17rem, .85fr) minmax(0, 1.15fr); }
  .account-benefits { order: 1; padding: var(--s8); }
  .account-auth-right { order: 2; }
  .account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-delete-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root:not([data-theme="dark"]) .account-auth-card, :root:not([data-theme="dark"]) .account-grid > .account-card, :root:not([data-theme="dark"]) .account-state-card { box-shadow: 0 8px 24px rgba(24, 24, 27, .055); }
}
@media (max-width: 859px) {
  .account-page { max-width: 100%; }
  .account-auth-card { grid-template-columns: minmax(0, 1fr); }
  .account-auth-right { order: 1; padding: var(--s5); }
  .account-benefits { order: 2; padding: var(--s4) var(--s5); }
  .account-benefits h2 { font-size: 1.25rem; margin-bottom: var(--s2); }
  .account-benefits ul { grid-template-columns: 1fr; gap: var(--s2); }
  .account-benefits > p { margin-top: var(--s3); }
  .account-subline { white-space: normal; }
  .account-profile-row { flex-wrap: wrap; }
  .account-profile-copy { flex-basis: calc(100% - 5rem); }
  .account-profile-signout { margin-inline-start: 0; }
  .header-compact .account-menu-panel { inset-inline: 16px; width: calc(100vw - 32px); min-width: 0; max-width: none; margin-block-start: 0; }
}
.account-auth-card.account-card { padding: 0; }
.account-auth-right #account-code-step > h1, .account-auth-right #account-code-step > .meta { text-align: start; }
.account-auth-right #account-code-form { max-width: 25rem; margin-inline: 0; }
.account-auth-right #account-code-step .account-secondary { justify-content: flex-start; }
.account-sync-line .sync-status[data-sync-key^="synced|"] { display: none; }
.account-callout--bring { border-color: var(--brand); }
.account-callout--bring > p { margin: 0; }
.account-callout--bring > .button { margin-top: var(--s3); }
@media (min-width: 860px) {
  .account-benefits { display: flex; flex-direction: column; justify-content: center; }
  .account-callout--bring:not([hidden]) { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); }
  .account-callout--bring > .button { flex: none; margin-top: 0; }
  .account-grid > .account-card:first-child { grid-row: span 2; }
}
@media (prefers-reduced-motion: reduce) { .account-page *, .account-menu-panel * { scroll-behavior: auto; } }
@media print { .account-profile-signout, .account-menu-signout { display: none; } }

.route .route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s6); margin-top: var(--s4); align-items: start; }
@media (max-width: 959px) { .route .route-grid { grid-template-columns: 1fr; } }
.route-block { min-width: 0; padding: var(--s5); background: var(--canvas); border: 1px solid var(--line); border-radius: var(--r2); }
.route-block h3 { margin-top: 0; font-size: 1.1875rem; }
.route-sessions-wrap h3 { margin-top: 0; }
.route-sessions-wrap { margin-top: var(--s8); }
.route-list { margin: var(--s2) 0 0; padding-left: 1.25rem; }
.route-list li { margin-bottom: var(--s2); overflow-wrap: anywhere; }
.route-quotes li { font-family: var(--serif); font-size: 1.0625rem; }
.route-sub { margin: var(--s4) 0 0; font-weight: 700; font-size: .9375rem; }
.route-source { margin-top: var(--s3); overflow-wrap: anywhere; }
.route-checklist { margin: var(--s4) 0 0; padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); }
.route-checklist legend { padding: 0 var(--s2); font-weight: 700; }
.route-check { list-style: none; margin: var(--s2) 0 0; padding: 0; }
.route-check li { display: grid; grid-template-columns: auto 1fr; gap: var(--s1) var(--s3); align-items: start; padding-block: var(--s2); }
.route-check input[type="checkbox"] { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--ink); }
.route-check label { cursor: pointer; }
.route-ifnot { grid-column: 2; margin: 0; }
.route-check input:checked ~ .route-ifnot { display: none; }
.route-sessions { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: var(--s4); }
.route-session { padding: var(--s5); background: var(--canvas); border: 1px solid var(--line); border-radius: var(--r2); min-width: 0; }
.route-session h4 { margin: 0 0 var(--s1); font-size: 1.0625rem; }
.route-items { list-style: none; margin: var(--s3) 0 0; padding: 0; }
.route-item { display: grid; grid-template-columns: 5.5rem 1fr; gap: var(--s3); padding-block: var(--s2); border-top: 1px solid var(--line); }
.route-item:first-child { border-top: 0; }
.route-role { color: var(--muted); font: 700 .8125rem/1.6 var(--sans); text-transform: uppercase; letter-spacing: .04em; }
.route-item-body { min-width: 0; overflow-wrap: anywhere; }
.route-status { display: inline-block; margin-left: var(--s2); padding: 0 var(--s2); border: 1px solid var(--control); border-radius: var(--r1); color: var(--ink); font-size: .8125rem; white-space: nowrap; }
.route-status--required, .route-status--graded { border-color: var(--ink); font-weight: 700; }
.route-status--optional { border-style: dashed; }
.route-item-note { display: block; }
.route-unknowns { margin-top: var(--s4); }
.route-alt { margin-top: var(--s6); }
.route-alt h3 { margin-top: 0; }
@media (max-width: 599px) {
  .route-item { grid-template-columns: 4.75rem 1fr; gap: var(--s2); }
  .route-block, .route-session { padding: var(--s4); }
}
.shelf-route { margin-top: var(--s4); font-size: .875rem; }
.route-lines { display: grid; grid-template-columns: auto 1fr; gap: var(--s2) var(--s3); margin: 0; }
.route-lines dt { font-weight: 700; }
.route-lines dd { margin: 0; color: var(--muted); }
.route-lines-link { margin-top: var(--s3); font-weight: 700; }
@media (max-width: 599px) { .route-lines { grid-template-columns: 1fr; } .route-lines dd { margin-bottom: var(--s2); } }
.route-ifnot-note { margin: var(--s3) 0 0; padding-top: var(--s3); border-top: 1px solid var(--line); }
@media (max-width: 959px) { .course-layout:not(#view-activity) { grid-template-columns: minmax(0, 1fr); } }
.shelf-book-role { display: inline-block; margin-top: var(--s1); font-size: .8125rem; color: var(--ink); font-weight: 600; }

.rlq-list { display: grid; gap: var(--s4); max-width: var(--measure); }
.rlq-quote { margin: 0; padding: var(--s4) var(--s5); background: var(--canvas); border: 1px solid var(--line); border-left: 3px solid var(--ink); border-radius: var(--r1); scroll-margin-top: var(--s12); }
.rlq-quote:target { border-color: var(--ink); box-shadow: 0 0 0 2px var(--focus); }
.rlq-quote blockquote { margin: 0; font: 1.1875rem/1.55 var(--serif); color: var(--ink); }
.rlq-quote blockquote p + p { margin-top: var(--s2); }
.rlq-quote figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2) var(--s4); margin-top: var(--s3); color: var(--muted); font-size: .875rem; }
.rlq-where cite { font-style: italic; }
.rlq-actions { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); }
.rlq-actions a.quiet { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rlq-btn { min-height: 2.75rem; padding: var(--s1) var(--s3); cursor: pointer; }
.rlq-btn[hidden] { display: none; }
.rlq-note { max-width: var(--measure); margin-top: var(--s6); }
.rlq-author .rlq-list { margin-bottom: var(--s4); }
.rlq-index li { display: flex; flex-wrap: wrap; gap: 0 var(--s2); align-items: baseline; padding-block: var(--s1); }
@media (max-width: 40rem) {
  .rlq-quote { padding: var(--s3) var(--s4); }
  .rlq-quote blockquote { font-size: 1.0625rem; }
}
.rlq-groups { display: grid; gap: var(--s6); }
.rlq-book-title { margin: 0 0 var(--s3); font-size: 1.25rem; }
.rlq-book-title cite { font-style: italic; }
.rlq-book-group .meta { margin-top: var(--s2); }
.book-quotes-inline { margin-top: var(--s6); }
.book-quotes-inline h3 { margin-bottom: var(--s1); }
.book-quotes-inline .rlq-list { margin-top: var(--s3); }
.book-quotes-inline .rlq-quote blockquote { font-size: 1.0625rem; }
.rlq-speaker { margin: var(--s2) 0 0; color: var(--muted); font-size: .9375rem; }
.rlq-also { color: var(--muted); }
.rlq-also a.quiet { margin-left: var(--s1); }

.subject-chips-heading { margin-top: var(--s6); font-size: 1rem; }
.subject-chips { list-style: none; padding: 0; margin: var(--s3) 0 var(--s4); display: flex; flex-wrap: wrap; gap: var(--s2); }
.subject-chips a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 var(--s3); border: 1px solid var(--line); border-radius: var(--r2); color: var(--ink); text-decoration: none; }
.subject-chips a:hover { background: var(--surface); text-decoration: underline; }
.audiobook-list { list-style: none; padding: 0; margin: var(--s4) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); column-gap: var(--s3); row-gap: 0; }
@media (min-width: 40rem) { .audiobook-list { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--s5); } }
@media (min-width: 48rem) { .audiobook-list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .audiobook-list { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.audiobook-card { position: relative; display: grid; grid-template-rows: subgrid; grid-row: span 6; row-gap: 0; align-content: start; min-width: 0; margin-bottom: var(--s6); }
@supports not (grid-template-rows: subgrid) { .audiobook-card { display: flex; flex-direction: column; grid-row: auto; } }
.audiobook-card > p, .audiobook-card > h3 { min-width: 0; }
.audiobook-card .book-cover img { visibility: visible; }
.audiobook-card:hover .book-cover { outline: 1px solid var(--control); outline-offset: 2px; }
.audiobook-title { overflow-wrap: anywhere; margin: var(--s3) 0 0; font-size: 1.0625rem; line-height: 1.25; }
.audiobook-open { color: inherit; text-decoration: none; }
.audiobook-open::after { content: ""; position: absolute; inset: 0; border-radius: var(--r2); }
.audiobook-open:hover { text-decoration: underline; }
.audiobook-open:focus-visible { outline: none; }
.audiobook-open:focus-visible::after { outline: 3px solid var(--focus); outline-offset: 3px; }
.audiobook-author { margin: var(--s2) 0 0; font-size: .875rem; line-height: 1.4; }
.audiobook-author a.quiet { position: relative; z-index: 1; display: inline; min-height: 0; padding: 0; color: var(--muted); font-size: inherit; }
.audiobook-author a.quiet:hover { color: var(--ink); }
.audiobook-meta { margin: var(--s2) 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.4; }
.audiobook-meta > span { display: block; }
.audiobook-badge-row { margin: var(--s2) 0 0; }
.audiobook-badge { font-size: .75rem; }
.audiobook-details { position: relative; z-index: 1; align-self: start; margin-top: var(--s3); border-top: 1px solid var(--line); }
.audiobook-details > summary { min-block-size: 2.75rem; display: flex; align-items: center; justify-content: space-between; padding: var(--s2) 0; font: 600 .8125rem/1.4 var(--sans); color: var(--muted); cursor: pointer; list-style: none; }
.audiobook-details > summary::-webkit-details-marker { display: none; }
.audiobook-details > summary::after { content: ""; flex: none; width: .4375rem; height: .4375rem; margin: -.25rem var(--s1) 0 var(--s2); border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.audiobook-details[open] > summary::after { margin-top: .25rem; transform: rotate(-135deg); }
.audiobook-details > summary:hover { background: none; color: var(--ink); }
.audiobook-details[open] > summary { margin-bottom: 0; }
.audiobook-facts { margin: 0 0 var(--s2); font-size: .8125rem; line-height: 1.45; }
.audiobook-facts dt { margin-top: var(--s2); color: var(--muted); }
.audiobook-facts dt:first-child { margin-top: 0; }
.audiobook-facts dd { margin: 0; overflow-wrap: anywhere; }
.audiobook-search[hidden] { display: none; }
.audiobook-search-field { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); max-width: 40rem; margin-top: var(--s2); }
.audiobook-search-field .button { flex: none; min-width: 2.75rem; min-height: 2.75rem; }
.audiobook-search input { display: block; flex: 1 1 12rem; min-width: 0; width: 100%; min-height: 2.75rem; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); }
.audiobook-results { list-style: none; padding: 0; margin: var(--s3) 0 0; }
.audiobook-result { padding: var(--s4) 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s1); }
.audiobook-result-title { font-weight: 600; font-size: 1.0625rem; line-height: 1.4; overflow-wrap: anywhere; min-height: 2.75rem; display: flex; align-items: center; }
.audiobook-result-author { display: block; font-size: .875rem; overflow-wrap: anywhere; }
@media (min-width: 48rem) {
  .audiobook-result { grid-template-columns: minmax(0, 1fr) minmax(0, auto); column-gap: var(--s6); }
  .audiobook-result .audiobook-action { grid-column: 2; grid-row: 1 / span 2; justify-content: end; align-self: center; max-width: 24rem; }
}
.audiobook-action { margin-top: var(--s2); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); }
.audiobook-note { font-size: .875rem; }
.audiobook-undo { background: none; border: 0; padding: var(--s1, 4px); text-decoration: underline; }
.how-built-toc { margin-top: var(--s6); }
.how-built-toc ol { margin: 0; padding-left: var(--s5); columns: 2; }
@media (max-width: 40rem) { .how-built-toc ol { columns: 1; } }
.legal-section h3 { font-size: 1.125rem; margin-top: var(--s5); }
.legal-section[id], .legal-section h3[id] { scroll-margin-top: var(--s8); }
.notfound-links { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: var(--s2) var(--s4); }
.notfound-links a { display: inline-flex; align-items: center; min-height: 2.75rem; }

.subject-jump { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s3); margin-bottom: var(--s2); color: var(--muted); font-size: .9375rem; }
.subject-jump a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--ink); font-weight: 600; }
.subject-empty { margin-bottom: var(--s3); }

.subject-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); margin-bottom: var(--s4); }
.subject-cols--single { max-width: 60rem; }
@media (min-width: 62.5rem) {
  .subject-cols:not(.subject-cols--single) { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--s6); }
}
.subject-cols > .panel { margin-bottom: 0; padding: var(--s4) var(--s4) var(--s2); min-width: 0; }
.subject-col h2 { margin-bottom: var(--s2); font-size: 1.375rem; line-height: 1.2; }

.subject-rows { display: block; margin: 0; padding: 0; list-style: none; }
.subject-col .day-card { background: transparent; }
.subject-col .day-card > a { gap: 0; min-height: 0; padding: var(--s2); }
.subject-col .day-card > a:hover { background: var(--canvas); }
.subject-col .day-theme { display: block; font-size: 1rem; line-height: 1.35; }
.subject-col .day-exit { font-size: .875rem; line-height: 1.4; }
.subject-col .book-row { padding: var(--s2); }
.subject-col .book-title { margin-bottom: 0; font-size: 1rem; line-height: 1.35; }
.subject-col .book-title a { text-decoration: none; }
.subject-col .book-title a:hover { text-decoration: underline; }
.subject-col .book-cites { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .3em; font-size: .875rem; line-height: 1.4; }
.subject-col .book-cites a.quiet { display: inline; min-height: 1.5rem; padding: 0; margin-right: 0; font-size: inherit; }
.subject-col .day-exit .tag, .subject-related .day-exit .tag { padding: 0 .375rem; font-size: .75rem; line-height: 1.35; vertical-align: 1px; }
.subject-col .meta { margin: var(--s2) var(--s2) 0; }

.subject-more > summary, .subject-rule-more > summary { list-style: none; }
.subject-more > summary::-webkit-details-marker, .subject-rule-more > summary::-webkit-details-marker,
.subject-related summary::-webkit-details-marker { display: none; }
.subject-more > summary {
  display: flex; align-items: center; justify-content: center; gap: var(--s2); min-height: 2.75rem; margin: var(--s2) 0;
  padding: 0 var(--s3); border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink);
  font-size: .9375rem; font-weight: 600;
}
.subject-more > summary:hover { background: var(--surface); }
.subject-more[open] > summary { margin-bottom: 0; }
.subject-more > summary::before, .subject-related summary::before {
  content: ""; flex: none; inline-size: .5rem; block-size: .5rem; margin-top: -.25rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);
}
.subject-more[open] > summary::before, .subject-related details[open] > summary::before { margin-top: .25rem; transform: rotate(-135deg); }
.subject-more .more-open, .subject-more[open] .more-closed { display: none; }
.subject-more[open] .more-open { display: inline; }
@media (max-width: 62.4375rem) {
  .subject-col--more:not(:has(> .subject-more[open])) > .subject-rows > :nth-child(n+6) { display: none; }
}

.subject-rule-more { margin: var(--s2) 0 var(--s1); }
.subject-rule-more > summary { display: flex; align-items: center; min-height: 2.75rem; padding: 0 var(--s2); color: var(--muted); font-size: .875rem; font-weight: 600; }
.subject-rule-more > summary::before { content: "+"; inline-size: 1rem; margin-right: var(--s1); font-weight: 700; }
.subject-rule-more[open] > summary::before { content: "\2212"; }
.subject-rule-more[open] > summary { margin-bottom: 0; }
.subject-rule-more > p, .subject-rule-more > ul { margin: 0 var(--s2) var(--s2); font-size: .875rem; }
.subject-rule-more > ul { padding-left: var(--s5); }

.subject-related { padding: 0; }
.subject-related summary { display: flex; align-items: center; gap: var(--s3); min-height: 3.5rem; margin: 0; padding: var(--s2) var(--s4); }
.subject-related summary h2 { margin: 0; font-size: 1.375rem; }
.subject-related .subject-count { color: var(--muted); font-size: 1.125rem; font-weight: 600; }
.subject-related details[open] > summary { margin-bottom: 0; border-bottom: 1px solid var(--line); }
.subject-related-body { padding: var(--s3) var(--s4) var(--s2); }
.subject-related-body > p { margin-bottom: var(--s2); font-size: .9375rem; }
.subject-related .day-card { background: transparent; }
.subject-related .day-card > a { gap: 0; min-height: 0; padding: var(--s2); }
.subject-related .day-card > a:hover { background: var(--canvas); }
.subject-related .day-theme { display: block; font-size: 1rem; line-height: 1.35; }
.subject-related .day-exit { font-size: .875rem; line-height: 1.4; }
@media (max-width: 40rem) {
  .subject-cols > .panel { padding: var(--s3) var(--s3) var(--s1); }
  .subject-col h2 { font-size: 1.25rem; }
  .subject-related summary { padding-inline: var(--s3); }
  .subject-related summary h2 { font-size: 1.25rem; }
  .subject-related-body { padding-inline: var(--s3); }
}
.report-404 a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1rem; border: 1px solid var(--control); border-radius: 999px; color: var(--ink); text-decoration: none; }
.fb-chapter-end a { display: inline-flex; align-items: center; min-height: 2.75rem; }
@media (max-width: 760px) {
  body:has(.reader-mobile-toolbar) { padding-bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px)); }
}

.catalog-search:has(#catalog-q) { position: relative; z-index: 5; }
.catalog-suggestions { position: absolute; inset-inline: 0; top: 100%; margin-top: .25rem; max-height: min(60vh, 32rem); max-width: 100%; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; background: var(--canvas); color: var(--ink); border: 1px solid var(--control); border-radius: var(--r1); box-shadow: var(--card-shadow); }
.catalog-suggest-heading { padding: .5rem 1rem .25rem; font-size: .8125rem; font-weight: 600; color: var(--muted); }
.catalog-suggest-option { display: flex; flex-direction: column; justify-content: center; gap: .125rem; min-height: 2.75rem; padding: .625rem 1rem; cursor: pointer; overflow-wrap: anywhere; border-bottom: 1px solid var(--control); }
.catalog-suggest-option[aria-selected="true"], .catalog-suggest-option:hover { background: var(--surface); outline: 2px solid var(--ink); outline-offset: -2px; }
.catalog-suggest-option .meta { margin: 0; }
.catalog-suggest-option > span { min-width: 0; max-width: 100%; }
.catalog-suggest-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.catalog-suggest-option mark { background: transparent; color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .15em; }
.catalog-versions { flex-basis: 100%; list-style: none; margin: 0; padding: .25rem 0 0; border-top: 1px solid var(--control); }
.catalog-versions[hidden], .catalog-suggestions[hidden] { display: none; }
.catalog-versions li { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem 1rem; }
.catalog-versions a { position: relative; display: inline-flex; align-items: center; min-height: 2.75rem; overflow-wrap: anywhere; padding: .5rem .25rem; }
.catalog-versions .version-saved { font-size: .8125rem; color: var(--muted); }
.versions-btn { min-height: 2.75rem; }
#catalog-correction { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .catalog-suggestions { max-height: 55vh; }
}

.catalog-layout { grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr); gap: var(--s6); }
.catalog-results { min-width: 0; }
#filters-body { display: block; border: 1px solid var(--line); border-radius: var(--r2); background: var(--canvas); }
.catalog-filter-head { display: flex; align-items: center; justify-content: space-between; padding: var(--s3); }
.catalog-filter-head h2 { margin: 0; font-size: 1.125rem; }
#filters-close, #filters-show { display: none; }
.catalog-filter-scroll { padding-inline: var(--s3); }
.catalog-filter-footer { border-top: 1px solid var(--line); padding: var(--s3); }
.catalog-facet { border-top: 1px solid var(--line); }
.catalog-facet summary { display: list-item; cursor: pointer; min-height: 44px; padding-block: .75rem; font-weight: 650; overflow-wrap: anywhere; }
#filters-body .facet-option { display: flex; flex-direction: row; align-items: center; min-height: 44px; gap: .6rem; color: var(--ink); font-size: .875rem; cursor: pointer; padding-block: .3rem; overflow-wrap: anywhere; }
.facet-option input { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--ink); }
.facet-option > span:first-of-type { flex: 1; min-width: 0; }
.facet-count { color: var(--muted); font-variant-numeric: tabular-nums; }
.facet-options { max-height: 23rem; overflow: auto; }
.facet-search { width: 100%; min-width: 0; min-height: 44px; padding: .5rem; border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font: inherit; }
#filters-body .quiet, .catalog-chips .quiet, #catalog-rows .quiet { min-height: 44px; padding: .5rem; }
.catalog-results-toolbar { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; justify-content: space-between; margin-block: var(--s3); }
.catalog-results-toolbar p { margin: 0; }
.catalog-results-toolbar label { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
#catalog-sort { max-width: 100%; min-height: 44px; background: var(--canvas); color: var(--ink); border: 1px solid var(--control); border-radius: var(--r1); padding: .5rem; font: inherit; }
.catalog-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--s4); }
.filter-chip { white-space: normal; text-align: left; min-height: 44px; max-width: 100%; overflow-wrap: anywhere; }
#catalog-rows .catalog-row { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: start; gap: 0 .5rem; padding: .25rem .75rem; }
#catalog-rows .catalog-row-main { display: contents; }
.catalog-row-heading { grid-column: 1; grid-row: 1; display: flow-root; min-width: 0; }
#catalog-rows .catalog-row-heading .day-theme { display: block; line-height: 1.3; }
#catalog-rows .catalog-row-heading .hit-link { font-size: 1rem; line-height: 1.3; }
.catalog-instructors { display: block; color: var(--ink); font-size: .875rem; line-height: 1.4; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.catalog-art { display: block; object-fit: cover; background: var(--surface); pointer-events: none; }
.catalog-row-art { float: left; width: 56px; height: 56px; margin: 0 .5rem .125rem 0; border-radius: 8px; filter: saturate(.75); }
:root[data-theme="dark"] .catalog-row-art { filter: saturate(.65) brightness(.88); }
.catalog-facts { grid-column: 1 / -1; grid-row: 2; min-width: 0; font-size: .8125rem; line-height: 1.5; }
.catalog-destination { padding: .1em .3em; border-radius: var(--r1); background: var(--surface); color: var(--ink); font-size: .75rem; font-weight: 650; }
#catalog-rows .versions-btn { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .25rem; border: 0; border-radius: var(--r1); background: transparent; color: var(--ink); font: inherit; text-decoration: underline; text-underline-offset: .2em; vertical-align: middle; cursor: pointer; }
#catalog-rows .catalog-row-actions { grid-column: 2; grid-row: 1; justify-content: end; }
#catalog-rows .save-btn { width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; justify-content: center; }
#catalog-rows .save-btn .btn-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#catalog-rows .catalog-versions { grid-column: 1 / -1; grid-row: 3; min-width: 0; }
@media (min-width: 1100px) {
  #catalog-rows .catalog-row { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: .75rem; padding: .75rem; }
  .catalog-facts { display: contents; }
  .catalog-facts-copy { grid-column: 1; grid-row: 2; }
  .catalog-versions-separator { display: none; }
  #catalog-rows .versions-btn { grid-column: 2; grid-row: 1 / 3; font-size: .8125rem; }
  #catalog-rows .catalog-row-actions { grid-column: 3; grid-row: 1 / 3; }
  #catalog-rows .save-btn { width: auto; padding-inline: .5rem; gap: .25rem; }
  #catalog-rows .save-btn .btn-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none; white-space: normal; }
}
#catalog-rows mark { background: var(--surface); color: inherit; font-weight: 750; text-decoration: underline; text-underline-offset: .2em; }
.catalog-page-numbers { display: flex; align-items: center; gap: .3rem; }
.catalog-page-numbers button { min-width: 44px; padding-inline: .4rem; }
.catalog-page-numbers [aria-current="page"] { border-color: var(--ink); font-weight: 700; }
#catalog-pagination { flex-wrap: wrap; gap: .5rem; }
.catalog-hub section { margin-bottom: var(--s6); }
.catalog-hub h2 { font-size: 1.375rem; margin: 0 0 var(--s3); }
.catalog-hub-cards, .catalog-subject-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.catalog-hub-cards a, .catalog-subject-grid button { display: flex; flex-direction: column; gap: .35rem; padding: var(--s3); min-height: 44px; width: 100%; height: 100%; border: 1px solid var(--line); border-radius: var(--r1); text-align: left; font: inherit; background: var(--canvas); color: var(--ink); overflow-wrap: anywhere; }
.catalog-subject-grid button { cursor: pointer; }
.catalog-pick-copy { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.catalog-hub-cards a.catalog-art-card { padding: 0; gap: 0; overflow: hidden; }
.catalog-art-card .catalog-pick-copy { padding: var(--s3); }
.catalog-card-art { width: 100%; height: 80px; flex-shrink: 0; }
.catalog-subject-grid button { position: relative; isolation: isolate; overflow: hidden; }
.catalog-subject-art { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .16; }
.catalog-subject-grid button > span { position: relative; }
.catalog-subject-grid .meta { color: var(--muted); }
:root[data-theme="dark"] .catalog-subject-art { opacity: .08; }
@media (forced-colors: active) { .catalog-subject-art { display: none; } }
@media (min-width: 761px) {
  .filters-summary { display: none; }
  #filters-body { display: block; padding-top: 0; }
  .filters-col { position: static; }
  #catalog-pagination #page-status { flex-basis: 100%; text-align: center; }
}
@media (max-width: 760px) {
  .catalog-layout { grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
  .filters-col { position: static; }
  .filters-summary { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .8rem; min-height: 44px; border: 1px solid var(--control); border-radius: var(--r1); background: var(--canvas); color: var(--ink); font: inherit; font-weight: 650; }
  #filters-body { display: none; padding: 0; }
  #filters-body.is-open { display: flex; flex-direction: column; position: fixed; inset: 0; width: 100%; height: 100%; height: 100dvh; z-index: 2000; border: 0; border-radius: 0; overscroll-behavior: contain; }
  .catalog-filter-head { flex-shrink: 0; padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line); }
  .catalog-filter-scroll { min-height: 0; overflow-y: auto; flex: 1; padding: 0 var(--s4); }
  .facet-options { max-height: none; }
  #filters-close, #filters-show { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; }
  .catalog-filter-footer { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; justify-content: space-between; flex-shrink: 0; padding-bottom: max(var(--s3), env(safe-area-inset-bottom)); }
  #filters-show { flex: 1; margin: 0; }
  .catalog-page-numbers { display: none; }
  .catalog-results-toolbar { align-items: start; }
  .catalog-results-toolbar label { font-size: .875rem; }
  .catalog-hub-cards { grid-template-columns: 1fr; }
  .empty-state .catalog-hub-cards li { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  #filters-body *, .catalog-chips *, .catalog-hub * { scroll-behavior: auto; transition: none; animation: none; }
}

.reader-layout > *{min-width:0}
.reader-article{min-width:0;width:100%;overflow-wrap:break-word}
.reader-heard-preview{position:sticky;top:0;z-index:25;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.65rem 1rem;background:var(--canvas);color:var(--ink);border-block:1px solid var(--line);font: .8125rem/1.4 var(--sans)}
.reader-heard-preview p{margin:0;flex:1 1 15rem}
.reader-heard-preview button{min-height:44px;min-width:44px;white-space:normal}
@media(max-width:959px){.reader-layout{grid-template-columns:minmax(0,1fr)}}

.reader-chapter-nav{gap:.5rem;margin-top:1.25rem;padding-top:.25rem;font:400 .8125rem/1.4 var(--sans);align-items:center}
.reader-chapter-nav a{display:block;box-sizing:border-box;min-width:0;max-width:48%;min-height:44px;padding:.75rem 0}
@media (max-width:760px){.reader-chapter-nav a{max-width:none}}
.reader-chapter .fb-chapter-end{margin:0;padding:0;border:0;font-size:.75rem;break-before:avoid;break-inside:avoid}
.reader-chapter .fb-chapter-end a{color:var(--muted)}
.reader-chapter+.reader-chapter{margin-top:2.5rem}

.cover-art{position:absolute;inset:0;display:block;overflow:hidden;background:var(--surface)}
.book-cover .cover-art img,.book-cover.has-cover .cover-art img{visibility:visible;display:block;width:100%;height:100%;object-fit:cover}
.has-art>img[hidden]{display:none!important}
.reader-page:has(.reader-toc[open]) .reader-book-bar,html.rp-toc-open .reader-book-bar{display:none!important}
.reader-chapter-nav a{overflow-wrap:normal;word-break:normal;line-height:1.3}


.reader-source-letter-gap{font-size:0;letter-spacing:0;word-spacing:0}

html:not(.rp-on) .reader-chapter>.reader-chapter-nav{display:none}
.reader-end-nav{margin-bottom:1rem}
.reader-chapter-nav a{max-height:calc(2.6em + 1.5rem);overflow:hidden;text-overflow:clip}

@media(min-width:900px) and (max-width:1023px){html.rl-app-shell .site-header .header-inner{flex-wrap:nowrap;gap:12px}}
