/* MOORSACHI · /study layout (built by moorsachi-masters/scripts/build_live_study.py)

   Cuts the long scroll without cutting content:
   - the jump bar: four anchors, sticky under the nav
   - the chapter deck and the week stepper: one panel at a time (study-deck.js);
     without JS the full stacked list renders, exactly as before
   - Gather your people: three steps side by side, the button beside them
   - the complete book: a 2x2 grid, the book's story behind one disclosure
   Colour comes from the page's --moor-* tokens only, so both registers hold. */

/* ─── Jump bar ──────────────────────────────────────────────── */
.jump {
  position: sticky; top: var(--jump-top, 4.25rem); z-index: 90;
  background: var(--moor-surface-base);
  border-bottom: 1px solid var(--moor-hairline-faint);
  transition: transform .25s ease, visibility 0s linear 0s;
}
/* phones: out of the way while reading down; back on the first scroll up (study-deck.js) */
@media (max-width: 640px) { .jump--away { transform: translateY(-100%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; } }
@media (prefers-reduced-motion: reduce) { .jump, .jump--away { transition: none; } }
.jump__inner {
  max-width: var(--max-page); margin: 0 auto; padding: 0 1rem;
  display: flex; justify-content: center; gap: .25rem;
  overflow-x: auto; scrollbar-width: none;
}
.jump__inner::-webkit-scrollbar { display: none; }
.jump__chip {
  flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 .9rem;
  font-family: var(--font-utility); font-weight: 500; font-size: .8125rem;
  letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  color: var(--moor-ink-secondary);
  border-bottom: 2px solid transparent;
  transition: color .3s ease, border-color .3s ease;
}
.jump__chip:hover { color: var(--moor-ink-primary); border-bottom-color: var(--moor-purple-dim); }
.jump__chip:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: -4px; color: var(--moor-ink-primary); }
.jump__chip.is-current { color: var(--moor-ink-primary); border-bottom-color: var(--moor-purple-bright); }
@media (max-width: 480px) { .jump__inner { justify-content: space-between; padding: 0 .5rem; } .jump__chip { padding: 0 .5rem; letter-spacing: .08em; } }

/* anchored sections clear the nav and the jump bar */
#book, #inside, #ways, #preview, #circle, #questions, #order, #join { scroll-margin-top: calc(var(--jump-top, 4.25rem) + 3.25rem); }

/* ─── Compact section headers (less air above the content) ──── */
.pathway-header--compact { margin-bottom: clamp(2.5rem, 6vw, 3.75rem); }
.pathway-header--compact .section__heading { margin-bottom: clamp(1.25rem, 3vw, 1.75rem); }
.month { margin-top: clamp(3.5rem, 7vw, 5.5rem); padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--moor-hairline-faint); }
.month__heading { font-size: clamp(1.5rem, 3vw, 2rem); }
@media (max-width: 640px) { .section:has(.pathway-header--compact), .section:has(.disc) { padding-top: clamp(3.75rem, 14vw, 5rem); padding-bottom: clamp(3.75rem, 14vw, 5rem); } }

/* ─── Deck (chapters) and stepper (weeks): one panel at a time ─ */
.limbs.deck { max-width: 60rem; }
.deck__tabs { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.deck__tab {
  appearance: none; background: none; border: 0; border-radius: 0; cursor: pointer; text-align: left;
  min-height: 44px; min-width: 44px; color: var(--moor-ink-secondary);
  font-family: var(--font-display); font-style: italic; font-variation-settings: "opsz" 18;
  transition: color .3s ease, background-color .3s ease, border-color .3s ease;
}
.deck__tab:hover { color: var(--moor-ink-primary); }
.deck__tab:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 2px; }
.deck__tab[aria-selected="true"] { color: var(--moor-ink-primary); }
.deck__num { display: block; }
.deck__ttl { display: none; }
.deck__wk { display: block; font-family: var(--font-utility); font-style: normal; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--moor-ink-secondary); }
.deck__nm { display: block; }

.deck--on .limb {
  display: block; padding: 0; border: 0; animation: deckIn .35s ease both;
}
.deck--on .limb[hidden] { display: none; }
.deck--on .limb__numeral { text-align: left; margin-bottom: .85rem; }
.deck--on .limb__hairline { margin: .9rem 0 1.1rem; }
.deck--on .limb__body { line-height: 1.7; }
@keyframes deckIn { from { opacity: 0; } to { opacity: 1; } }
.deck--on .limb { touch-action: pan-y; }

/* chapters — mobile: eight boxed choices (4 x 2), all visible at once, the chosen one filled */
.deck__hint {
  display: none; margin: 0 0 .75rem; font-family: var(--font-utility); font-weight: 500; font-size: .8125rem;
  letter-spacing: .2em; text-transform: uppercase; color: var(--moor-ink-secondary);
}
@media (max-width: 899px) {
  .deck__hint { display: block; }
  .deck--chapters.deck--on .deck__tabs {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: clamp(2rem, 6vw, 2.75rem);
  }
  .deck--chapters .deck__tab {
    display: flex; align-items: center; justify-content: center; text-align: center; min-height: 52px;
    font-size: 1.125rem; border: 1px solid var(--moor-purple-dim); background: var(--moor-purple-ghost);
  }
  .deck--chapters .deck__tab[aria-selected="true"] {
    border-color: var(--moor-gold-hairline); background: var(--moor-purple-ghost); box-shadow: inset 0 -3px 0 var(--moor-gold-hairline);
  }
}
.deck__step { display: none; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1.75rem; }
@media (max-width: 899px) { .deck__step { display: flex; } }
.deck__stepat { white-space: nowrap; font-family: var(--font-utility); font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--moor-ink-secondary); text-align: center; }
.deck__stepbtn {
  appearance: none; cursor: pointer; min-height: 44px; padding: 0 1rem; white-space: nowrap; border: 1px solid var(--moor-purple-dim); background: none;
  color: var(--moor-ink-primary); font-family: var(--font-utility); font-weight: 500; font-size: .9375rem; letter-spacing: .1em; text-transform: uppercase;
}
.deck__stepbtn:hover { border-color: var(--moor-purple-bright); }
.deck__stepbtn:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 2px; }

/* the chapter numerals are gold (numerals and hairlines are the only places gold goes), so they stand apart from the text */
.deck--chapters .deck__num { color: var(--moor-gold-ink); }

/* light register, phones: the boxes flip to dark with light numerals, so the choices read as buttons on the cream page.
   The dark ground is the page's own ink; the gold is the dark register's gold (#C8AF78, as in reading.css :root),
   because the light-register gold is tuned for cream and is too dim on a dark box. */
@media (max-width: 899px) {
  [data-register="light"] .deck--chapters .deck__tab { background: var(--moor-ink-primary); border-color: var(--moor-ink-primary); }
  [data-register="light"] .deck--chapters .deck__num { color: var(--moor-surface-base); }
  [data-register="light"] .deck--chapters .deck__tab:hover { background: var(--moor-purple-deep, #6B4A98); border-color: var(--moor-purple-deep, #6B4A98); }
  [data-register="light"] .deck--chapters .deck__tab[aria-selected="true"] {
    background: var(--moor-ink-primary); border-color: #C8AF78; box-shadow: inset 0 -3px 0 #C8AF78;
  }
  [data-register="light"] .deck--chapters .deck__tab[aria-selected="true"] .deck__num { color: #C8AF78; }
}

/* chapters — desktop: an index on the left, the chapter on the right */
@media (min-width: 900px) {
  .deck--chapters.deck--on { display: grid; grid-template-columns: 19rem 1fr; gap: clamp(3rem, 5vw, 4.5rem); align-items: start; }
  .deck--chapters.deck--on .deck__tabs {
    flex-direction: column; gap: 0; overflow: visible; border-bottom: 0; margin: 0;
    border-left: 1px solid var(--moor-hairline-faint);
  }
  .deck--chapters .deck__tab {
    display: grid; grid-template-columns: 2.75rem 1fr; align-items: baseline; flex: none; width: 100%;
    padding: .7rem .9rem; margin-left: -1px; border-bottom: 0; border-left: 2px solid transparent;
    font-size: 1.0625rem; line-height: 1.3; text-align: left;
  }
  .deck--chapters .deck__tab[aria-selected="true"] { border-left-color: var(--moor-purple-bright); background: var(--moor-purple-ghost); }
  .deck--chapters .deck__ttl { display: block; }
  .deck--chapters .deck__num { text-align: right; padding-right: .75rem; }
  .deck--chapters.deck--on .limb__numeral { display: none; }
  .deck--chapters.deck--on .limb { grid-column: 2; grid-row: 1; }
  .deck--chapters .limb__sanskrit { font-size: clamp(1.75rem, 2.4vw, 2.25rem); }
}

/* weeks — a four-up row on every viewport (2x2 on small phones).
   The phone-only decks (circle steps, the book's contents) wear the same chip row. */
.deck--weeks { max-width: 44rem; }
.deck--weeks.deck--on .deck__tabs,
.deck--circle.deck--on .deck__tabs,
.deck--contents.deck--on .deck__tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-bottom: clamp(1.75rem, 5vw, 2.5rem); }
.deck--circle.deck--on .deck__tabs { grid-template-columns: repeat(3, 1fr); }
.deck--contents.deck--on .deck__tabs { grid-template-columns: repeat(2, 1fr); }
.deck--weeks .deck__tab, .deck--circle .deck__tab, .deck--contents .deck__tab { padding: .75rem .9rem; border: 1px solid var(--moor-hairline); }
.deck--weeks .deck__tab[aria-selected="true"], .deck--circle .deck__tab[aria-selected="true"], .deck--contents .deck__tab[aria-selected="true"] { border-color: var(--moor-purple-bright); background: var(--moor-purple-ghost); }
.deck--weeks .deck__nm, .deck--circle .deck__nm, .deck--contents .deck__nm { font-size: 1.0625rem; margin-top: .1rem; }
.deck--contents .deck__nm { font-size: 1rem; line-height: 1.25; }
.deck--weeks.deck--on .limb__numeral, .deck--circle.deck--on .limb__numeral, .deck--contents.deck--on .limb__numeral { display: none; }
.deck--weeks .limb__sanskrit { font-size: clamp(1.25rem, 2vw, 1.5rem); }
.deck--circle.deck--on .limb, .deck--contents.deck--on .limb { padding: 0; }
.deck--circle.deck--on .limb__sanskrit, .deck--contents.deck--on .limb__sanskrit { font-size: 1.375rem; }
@media (max-width: 520px) { .deck--weeks.deck--on .deck__tabs { grid-template-columns: repeat(2, 1fr); } }

/* deep links (#chapter-4, #week-2) land below the nav and the jump bar */
.deck { scroll-margin-top: calc(var(--jump-top, 4.25rem) + 3.5rem); }

/* ─── Gather your people ────────────────────────────────────── */
.circle-start { max-width: 64rem; margin: 0 auto; }
.circle-start__cta { text-align: center; margin-top: clamp(2rem, 6vw, 3rem); }
.circle-steps { max-width: none; }
.circle-steps .limb { grid-template-columns: 2.25rem 1fr; gap: 1.25rem; padding: 1.5rem 0; align-items: start; }
.circle-steps .limb__hairline { display: none; }
.circle-steps .limb__sanskrit { font-size: 1.375rem; }
@media (min-width: 900px) {
  .circle-start { display: grid; grid-template-columns: 1fr auto; gap: clamp(3rem, 5vw, 4.5rem); align-items: center; }
  .circle-start__cta { margin: 0; text-align: left; }
  .circle-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
  .circle-steps .limb { display: block; padding: 0 0 0 1.25rem; border-bottom: 0; border-left: 1px solid var(--moor-hairline); }
  .circle-steps .limb__numeral { text-align: left; margin-bottom: .6rem; }
  .circle-steps .limb__hairline { display: block; }
}

/* ─── The complete book ─────────────────────────────────────── */
.book-grid { max-width: 60rem; }
.book-grid .limb { grid-template-columns: 2.5rem 1fr; gap: 1.25rem; padding: 1.5rem 0; align-items: start; }
.book-grid .limb__hairline { display: none; }
.book-grid .limb__sanskrit { font-size: 1.375rem; }
@media (max-width: 899px) {
  .circle-steps .limb__body, .book-grid .limb__body { line-height: 1.7; }
  .circle-steps .limb, .book-grid .limb { padding: 1.35rem 0; }
}
@media (min-width: 900px) {
  .book-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(3.5rem, 6vw, 5rem); }
  .book-grid .limb { padding: 2rem 0; }
  .book-grid .limb:nth-last-child(-n+2) { border-bottom: 0; }
}

.disc { max-width: 34rem; margin: clamp(2.25rem, 5vw, 3rem) auto 0; border-top: 1px solid var(--moor-hairline); border-bottom: 1px solid var(--moor-hairline); }
.disc__q {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 56px; padding: .75rem .25rem; cursor: pointer; list-style: none;
  font-family: var(--font-utility); font-size: .9375rem; letter-spacing: .14em; text-transform: uppercase; color: var(--moor-ink-primary);
}
.disc__q::-webkit-details-marker { display: none; }
.disc__q::after { content: "+"; color: var(--moor-purple-bright); font-size: 1.25rem; line-height: 1; }
.disc[open] .disc__q::after { content: "\2212"; }
.disc__q:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 3px; }
.disc .about-book { margin-top: 1.5rem; margin-bottom: 2.25rem; }

@media (prefers-reduced-motion: reduce) {
  .deck--on .limb { animation: deckFade .2s linear both; }
  .deck__tab, .jump__chip { transition: none; }
}
@keyframes deckFade { from { opacity: 0; } to { opacity: 1; } }

/* ─── Scroll calm ───────────────────────────────────────────────
   Two stacked backdrop blurs (the nav and this bar) were the single biggest
   cost of scrolling this page: the browser re-blurs everything under them on
   every frame. The jump bar is now a solid surface and the nav keeps a lighter
   frost, so the page scrolls on the compositor instead of the paint thread. */
html .moor-nav {
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  /* a touch more body than the house veil, so text passing under a lighter blur does not ghost through */
  background: var(--moor-surface-veil);
  background: color-mix(in srgb, var(--moor-surface-base) 93%, transparent);
}

/* The cursor-following wash was a feathered gradient with an extra blur(80px) filter on top:
   a ~960px blurred layer the browser redrew as it moved, and the largest remaining cost of
   scrolling on desktop. The gradient already fades to transparent, so a slightly larger gradient
   with no filter reads the same and costs almost nothing. */
html .ambient-orb { width: 640px; height: 640px; -webkit-filter: none; filter: none; }

/* Smooth anchor scrolling is a motion the reader did not ask for when they have
   asked for less of it. */
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ─── Inside the book: the reading experience (excerpt, contents) ─ */
.inside__sub {
  margin: clamp(3rem, 7vw, 4.5rem) 0 1.25rem; text-align: center; font-family: var(--font-utility); font-weight: 500;
  font-size: .8125rem; letter-spacing: .24em; text-transform: uppercase; color: var(--moor-ink-secondary);
}

/* ─── Order: one calm band with one clear button ───────────────
   The Order buttons go straight to Lulu (via /order), so there is no third-party script on this page. */
.order { max-width: 34rem; margin: 0 auto; text-align: center; }
.order__eyebrow {
  margin: 0 0 1.5rem; font-family: var(--font-utility); font-weight: 500; font-size: .8125rem;
  letter-spacing: .24em; text-transform: uppercase; color: var(--moor-purple-ink);
}
.order__lines {
  margin: 0 auto 2rem; font-family: var(--font-display); font-style: italic; font-variation-settings: "opsz" 36;
  font-size: clamp(1.5rem, 5vw, 2rem); line-height: 1.4; color: var(--moor-ink-primary);
}
.order__spec {
  margin: 0 auto 1.75rem; font-family: var(--font-utility); font-weight: 500; font-size: .8125rem;
  letter-spacing: .14em; text-transform: uppercase; line-height: 1.8; color: var(--moor-ink-secondary);
}
.order__go { margin: 0; }
.order__note { margin: 1.25rem auto 0; font-size: 1rem; line-height: 1.6; color: var(--moor-ink-secondary); max-width: 26rem; }

/* the Order button: a filled purple box, dark ink on it in both registers (the site's own button form, as in circles.css) */
.btn-order {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.75rem;
  background: var(--moor-purple, #9B6FD4); color: #09080E; text-decoration: none;
  font-family: var(--font-utility); font-weight: 600; font-size: 1rem; letter-spacing: .16em; text-transform: uppercase;
  transition: background-color .3s ease;
}
.btn-order:hover { background: var(--moor-purple-bright, #B591E0); }
.btn-order:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 3px; }
.btn-order--lg { min-height: 56px; padding: 0 2.5rem; font-size: 1.125rem; }
[data-register="light"] .btn-order { background: var(--moor-purple-deep, #6B4A98); color: var(--moor-surface-base, #F4EFE3); }
[data-register="light"] .btn-order:hover { background: var(--moor-purple-ink); }
.book-line .btn-order { margin-top: .75rem; }
.book-line__look {
  display: block; width: fit-content; margin: 1rem auto 0; min-height: 44px; line-height: 44px;
  font-family: var(--font-utility); font-weight: 500; font-size: 1rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--moor-ink-primary); text-decoration: none; border-bottom: 1px solid var(--moor-purple); line-height: 1.8;
}
.book-line__look:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 3px; }

/* ─── The author, and Three ways in ─────────────────────────── */
.author { max-width: 36rem; margin: clamp(3rem, 7vw, 4.5rem) auto 0; text-align: center; }
.author__kicker, .ways__kicker {
  margin: 0 0 .75rem; font-family: var(--font-utility); font-weight: 500; font-size: .8125rem;
  letter-spacing: .24em; text-transform: uppercase; color: var(--moor-purple-ink);
}
.author__note { margin: 0; padding: 0; text-align: left; }
.author__note p { margin: 0; font-family: var(--font-display); font-style: italic; font-size: clamp(1.1875rem, 4.6vw, 1.375rem); line-height: 1.65; color: var(--moor-ink-primary); }
.author__note p + p { margin-top: 1.25rem; }
.author__note em { color: var(--moor-purple-ink); }
.author__name {
  margin: 1.75rem 0 0; font-family: var(--font-utility); font-weight: 500; font-size: .9375rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--moor-ink-secondary);
}
.ways { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 60rem; margin: 0 auto; padding: 0; }
.ways__door { padding: 1.75rem 0; border-top: 1px solid var(--moor-hairline-faint); }
.ways__door:last-child { border-bottom: 1px solid var(--moor-hairline-faint); }
.ways__body { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.65; color: var(--moor-ink-secondary); max-width: 24rem; }
@media (min-width: 900px) {
  .ways { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem); }
  .ways__door, .ways__door:last-child { border: 0; border-top: 1px solid var(--moor-hairline); padding: 1.75rem 0 0; }
}

/* ─── Author: one line you can take in at a glance, the full note one tap away ─ */
.author__pull { margin: 0 0 1.25rem; font-family: var(--font-display); font-style: italic; font-size: clamp(1.5rem, 6vw, 2rem); line-height: 1.3; color: var(--moor-ink-primary); }
.author__pull em { color: var(--moor-purple-ink); }
.author__more { margin: 0 auto; }
.author__sum {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.5rem; cursor: pointer; list-style: none;
  border: 1px solid var(--moor-purple-dim); color: var(--moor-ink-primary);
  font-family: var(--font-utility); font-weight: 500; font-size: .9375rem; letter-spacing: .14em; text-transform: uppercase;
}
.author__sum::-webkit-details-marker { display: none; }
.author__sum::after { content: "+"; margin-left: .75rem; }
.author__more[open] .author__sum::after { content: "\2212"; }
.author__sum:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 3px; }
.author__more .author__note { margin-top: 1.5rem; }

/* ─── Phones: flat, big, tappable. No drop shadows; fewer words; buttons you can hit with a thumb ─ */
@media (max-width: 640px) {
  .book-cover { max-width: 17rem; margin-bottom: 1.5rem; }
  html .book-cover img { box-shadow: none; }
  .book-line { margin: 0 auto 2rem; display: grid; gap: .75rem; }
  .book-line__what { margin-bottom: .25rem; }
  .book-line .btn-order { display: flex; width: 100%; min-height: 56px; margin-top: 0; font-size: 1.125rem; }
  .book-line__look {
    display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; margin: 0; line-height: 1;
    border: 1px solid var(--moor-purple); border-bottom: 1px solid var(--moor-purple);
  }
  /* the long subtitle and the second quote are on the cover and in the Circle section; phones keep the one line that invites */
  .glimpse__body:first-child, .glimpse__body:nth-child(3) { display: none; }
  #inside .pathway-header__intro { display: none; }
  .order__spec { font-size: .8125rem; }
  .order__go .btn-order { display: flex; width: 100%; }
  .author__sum { width: 100%; }
}

/* ─── Thumb room ────────────────────────────────────────────────
   Targets are at least 44px with at least 8px between them. The footer credit was 42px tall; it now meets the line. */
.moor-footer__credit { display: inline-flex; align-items: center; min-height: 44px; padding-top: 0; padding-bottom: 0; }
/* the last controls on the page keep clear of the fixed music button and the home bar */
.moor-footer { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }
.deck__step { margin-bottom: 3.5rem; }
@media (min-width: 900px) { .deck__step { margin-bottom: 0; } }

/* ─── See your first month: the member's Today screen, previewed ─────────
   One loud element (the movement word), one control (the date), one action. Phone first, flat. */
.mo { max-width: 28rem; margin: 0 auto; display: grid; gap: 1.5rem; }
.mo__pick { display: grid; gap: .5rem; }
.mo__label { font-family: var(--font-utility); font-weight: 500; font-size: .8125rem; letter-spacing: .2em; text-transform: uppercase; color: var(--moor-ink-secondary); }
.mo__input {
  min-height: 56px; padding: 0 1rem; width: 100%; border: 1px solid var(--moor-hairline); border-radius: 0;
  background: var(--moor-surface-base); color: var(--moor-ink-primary); font: 1.125rem var(--font-body, inherit); color-scheme: dark;
}
[data-register="light"] .mo__input { color-scheme: light; }
.mo__input:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 2px; }
.mo__card { display: grid; gap: 1rem; padding: 2rem 1.5rem; border: 1px solid var(--moor-hairline); background: var(--moor-surface-base); }
.mo__where { margin: 0; font-family: var(--font-utility); font-weight: 500; font-size: .8125rem; letter-spacing: .2em; text-transform: uppercase; color: var(--moor-gold-ink); }
.mo__move { margin: 0; font-family: var(--font-display); font-style: italic; font-size: clamp(2.5rem, 12vw, 3.5rem); line-height: 1.05; color: var(--moor-ink-primary); }
.mo__lede { margin: 0; font-family: var(--font-display); font-style: italic; font-size: 1.375rem; line-height: 1.35; color: var(--moor-ink-secondary); max-width: 22rem; }
.mo__thread { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.mo__thread li { display: grid; gap: .5rem; align-content: start; }
.mo__bar { display: block; height: 4px; background: var(--moor-hairline); }
.is-now .mo__bar { background: var(--moor-gold-ink); }
.mo__wk, .mo__day { font-family: var(--font-utility); font-weight: 500; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--moor-ink-secondary); line-height: 1.25; }
.is-now .mo__wk { color: var(--moor-ink-primary); }
.mo__day { text-transform: none; letter-spacing: .02em; color: var(--moor-ink-tertiary, var(--moor-ink-secondary)); }
.mo__next { margin: .5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--moor-hairline-faint); font-size: 1.0625rem; line-height: 1.5; color: var(--moor-ink-secondary); }
.mo__sum {
  display: flex; align-items: center; justify-content: space-between; min-height: 52px; cursor: pointer; list-style: none;
  border-top: 1px solid var(--moor-hairline); border-bottom: 1px solid var(--moor-hairline);
  font-family: var(--font-utility); font-weight: 500; font-size: .9375rem; letter-spacing: .14em; text-transform: uppercase; color: var(--moor-ink-primary);
}
.mo__sum::-webkit-details-marker { display: none; }
.mo__sum::after { content: "+"; font-size: 1.25rem; }
.mo__all[open] .mo__sum::after { content: "\2212"; }
.mo__sum:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 2px; }
.mo__list { list-style: none; margin: 0; padding: 0; }
.mo__row { display: grid; grid-template-columns: 2.5rem 1fr; column-gap: .75rem; row-gap: .125rem; padding: .875rem 0; border-bottom: 1px solid var(--moor-hairline-faint); }
.mo__num { grid-row: span 2; font-family: var(--font-display); font-style: italic; font-size: 1.125rem; color: var(--moor-gold-ink); }
.mo__ttl { font-family: var(--font-display); font-style: italic; font-size: 1.0625rem; line-height: 1.35; color: var(--moor-ink-primary); }
.mo__when { font-size: .9375rem; color: var(--moor-ink-secondary); }
.mo__go { margin: 0; }
@media (min-width: 640px) { .mo__go { text-align: center; } }

/* ─── Colour roles (so a glance tells you what is what) ───────────────────
   Purple FILL = the one thing to buy: the Order button. Nothing else is filled.
   Purple OUTLINE = go somewhere or do something else (look inside, start a circle, join the waitlist, read the opening).
   Gold = where you are: chapter numerals, the current week, hairlines. Plain ink = reading. */
.btn-ghost, .ways__door .threshold__cta, #join .threshold__cta {
  display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; padding: 0 1.5rem; box-sizing: border-box;
  border: 1px solid var(--moor-purple); border-bottom: 1px solid var(--moor-purple); background: none; text-decoration: none; text-align: center;
  font-family: var(--font-utility); font-style: normal; font-weight: 600; font-size: 1rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--moor-purple-ink); transition: background-color .3s ease, color .3s ease;
}
.btn-ghost:hover, .ways__door .threshold__cta:hover, #join .threshold__cta:hover { background: var(--moor-purple-ghost); color: var(--moor-ink-primary); }
.btn-ghost:focus-visible, .ways__door .threshold__cta:focus-visible, #join .threshold__cta:focus-visible { outline: 2px solid var(--moor-purple-bright); outline-offset: 3px; }
@media (min-width: 640px) { .btn-ghost, #join .threshold__cta { display: inline-flex; width: auto; } }
@media (min-width: 640px) { #join .threshold { text-align: center; } }
.ways__body { margin-bottom: 1.25rem; }

/* small meta lines were set at 55% ink; informational text keeps at least secondary ink */
html .about-book__quote cite, html .about-book__meta, html .xr-open__sub, html .book-cover figcaption { color: var(--moor-ink-secondary); }

/* the date that matters in the preview reads first */
.mo__next b { color: var(--moor-ink-primary); font-weight: 500; }

/* phones: the four weeks are rows, not four columns (the longest label did not fit its column and ran to the card edge) */
@media (max-width: 520px) {
  .mo__thread { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .mo__thread li { grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; align-items: baseline; }
  .mo__thread .mo__bar { grid-column: 1 / -1; }
  .mo__thread .mo__wk { font-size: .9375rem; }
  .mo__thread .mo__day { font-size: .9375rem; }
}
