.reading-desk { display: grid; grid-template-columns: 292px minmax(0, 1fr); min-height: 100vh; }
.side-index { background: var(--yellow); border-right: 2px solid var(--ink); padding: 30px 22px; position: sticky; top: 0; height: 100dvh; overflow-y: auto; }
.guide-home { display: flex; align-items: center; gap: 15px; min-height: 72px; text-decoration: none; }
.guide-glyph { flex: 0 0 42px; height: 42px; border: 2px solid var(--ink); border-radius: 50%; background: var(--coral); box-shadow: 6px 6px 0 var(--teal); }
.guide-name { font-family: var(--heading-font); font-weight: 900; font-size: 23px; line-height: 1.12; }
.guide-purpose { font-size: 16px; line-height: 1.5; margin: 20px 0 28px; max-width: 25ch; }
.index-title { font-size: 16px; font-weight: 800; margin-bottom: 12px; }
.index-list { list-style: none; padding: 0; }
.index-item { border-top: 1px solid #252c3240; }
.index-item:last-child { border-bottom: 1px solid #252c3240; }
.index-link { display: flex; align-items: center; min-height: 48px; padding: 8px 11px; font-size: 16px; line-height: 1.35; text-decoration: none; }
.index-link:hover { background: var(--paper); }
.index-link[aria-current="page"] { background: var(--ink); color: var(--paper); font-weight: 700; }
.index-link[aria-current="page"]:focus-visible { outline-color: var(--paper); outline-offset: -5px; }
.mobile-index { display: none; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 9; min-height: 48px; padding: 10px 18px; background: var(--teal); color: var(--paper); }
.skip-link:focus { top: 16px; }
@media (max-width: 900px) {
  .reading-desk { grid-template-columns: minmax(0, 1fr); }
  .side-index { position: static; height: auto; overflow-y: visible; padding: 18px 24px 12px; border-right: 0; border-bottom: 2px solid var(--ink); }
  .guide-home { min-height: 55px; }
  .guide-name { font-size: 22px; }
  .guide-purpose { margin: 10px 0 10px; max-width: none; }
  .desktop-index { display: none; }
  .mobile-index { display: block; }
  .index-summary { min-height: 48px; padding: 10px 0; font-size: 16px; font-weight: 700; cursor: pointer; }
  .mobile-chapters { padding-bottom: 12px; }
}
@media print {
  .reading-desk { display: block; }
  .side-index, .skip-link { display: none; }
}
