/* Liquid Scripture — Reservoir home shelf (Step 3). Scoped to #lsReservoirHome. */
#lsReservoirHome {
  --ls-rh-abyss: #07090e;
  --ls-rh-sapphire-bright: #c8dcf0;
  --ls-rh-platinum: #f4f7fb;
  --ls-rh-muted: #9aa8b8;
  --ls-rh-hair: rgba(255, 255, 255, 0.13);
  --ls-rh-chrome: rgba(255, 255, 255, 0.09);
  --ls-rh-ice: rgba(186, 214, 240, 0.42);
  position: fixed;
  inset: 0;
  z-index: 100190;
  display: none;
  background-color: #07090e;
  background-image:
    radial-gradient(ellipse 90% 55% at 50% -12%, rgba(255, 255, 255, 0.06), transparent 58%),
    radial-gradient(ellipse 55% 40% at 12% 28%, rgba(186, 214, 240, 0.05), transparent 52%),
    radial-gradient(ellipse 55% 40% at 88% 32%, rgba(186, 214, 240, 0.04), transparent 52%),
    linear-gradient(180deg, #0a0c12 0%, #07090e 42%, #050608 100%);
  color: var(--ls-rh-platinum);
  font-family: "Cormorant Garamond", Georgia, serif;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
#lsReservoirHome.ls-rh-visible {
  display: flex;
  justify-content: center;
}
#lsReservoirHome .ls-rh-app {
  position: relative;
  width: 100%;
  max-width: 480px;
  min-height: 100dvh;
  padding: 26px 18px 40px;
  background-color: rgba(10, 12, 18, 0.72);
  background-image:
    radial-gradient(120% 50% at 50% -8%, rgba(255, 255, 255, 0.07), transparent 62%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, transparent 28%);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
}
#lsReservoirHome .ls-rh-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 4px;
  margin-bottom: 4px;
}
#lsReservoirHome .ls-rh-brand {
  flex: 1;
  min-width: 0;
  text-align: center;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--ls-rh-muted);
}
#lsReservoirHome .ls-rh-top-end {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: none;
}
#lsReservoirHome .ls-rh-back {
  flex: none;
  border: none;
  background: transparent;
  color: var(--ls-rh-muted);
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 6px 0;
  white-space: nowrap;
}
#lsReservoirHome .ls-rh-standing {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--ls-rh-hair);
  border-radius: 30px;
  padding: 6px 12px;
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
  background: transparent;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}
#lsReservoirHome .ls-rh-standing:hover,
#lsReservoirHome .ls-rh-standing:focus-visible {
  border-color: rgba(108, 192, 255, 0.45);
  box-shadow: 0 0 12px rgba(47, 125, 246, 0.2);
  outline: none;
}
#lsReservoirHome .ls-rh-standing i {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  transform: rotate(45deg);
  background: var(--ls-rh-sapphire-bright);
  box-shadow: 0 0 8px var(--ls-rh-sapphire-bright);
  font-style: normal;
}
#lsReservoirHome .ls-rh-h1 {
  font-family: Cinzel, serif;
  font-weight: 600;
  font-size: 28px;
  letter-spacing: 0.04em;
  margin-top: 12px;
  color: #fafcff;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.12), 0 0 32px rgba(255, 255, 255, 0.08);
}
#lsReservoirHome .ls-rh-greet {
  font-style: italic;
  color: var(--ls-rh-muted);
  font-size: 15px;
  margin-top: 4px;
  line-height: 1.45;
}
#lsReservoirHome .ls-rh-toggle {
  display: flex;
  background: rgba(9, 15, 32, 0.7);
  border: 1px solid var(--ls-rh-hair);
  border-radius: 30px;
  padding: 4px;
  margin-top: 18px;
}
#lsReservoirHome .ls-rh-toggle[hidden] {
  display: none !important;
}
#lsReservoirHome .ls-rh-tab {
  flex: 1;
  border: none;
  background: transparent;
  color: var(--ls-rh-muted);
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 12px;
  border-radius: 24px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
#lsReservoirHome .ls-rh-tab.ls-rh-on {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.14),
    rgba(255, 255, 255, 0.05)
  );
  color: #fafcff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 0 14px rgba(255, 255, 255, 0.06);
}
#lsReservoirHome .ls-rh-tab-badge {
  font-size: 9px;
  background: rgba(240, 248, 255, 0.92);
  color: #0a0c12;
  border-radius: 20px;
  padding: 1px 6px;
  letter-spacing: 0;
}
#lsReservoirHome .ls-rh-tab-badge[hidden] {
  display: none;
}
#lsReservoirHome .ls-rh-panel {
  display: none;
  margin-top: 18px;
}
#lsReservoirHome .ls-rh-panel.ls-rh-show {
  display: block;
  animation: ls-rh-fade 0.4s ease;
}
@keyframes ls-rh-fade {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
#lsReservoirHome .ls-rh-course-meta {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ls-rh-muted);
  margin: 2px 4px 12px;
}
#lsReservoirHome .ls-rh-assigned {
  position: relative;
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid rgba(120, 178, 238, 0.45);
  border-radius: 18px;
  padding: 16px 18px;
  margin-bottom: 12px;
  background: rgba(8, 16, 34, 0.7);
  box-shadow: 0 0 22px rgba(47, 125, 246, 0.1);
  cursor: pointer;
  transition: transform 0.15s;
  overflow: hidden;
}
#lsReservoirHome .ls-rh-assigned:active {
  transform: scale(0.99);
}
#lsReservoirHome .ls-rh-afill {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0;
  background: linear-gradient(
    180deg,
    rgba(50, 118, 222, 0.5),
    rgba(12, 30, 90, 0.92) 60%,
    rgba(5, 14, 46, 0.96)
  );
  border-top: 1.5px solid rgba(120, 178, 238, 0.6);
  transition: height 1.1s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
}
#lsReservoirHome .ls-rh-ashade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(6, 12, 26, 0.55),
    rgba(6, 12, 26, 0.2)
  );
  z-index: 1;
}
#lsReservoirHome .ls-rh-acontent {
  position: relative;
  z-index: 2;
}
#lsReservoirHome .ls-rh-atop {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#lsReservoirHome .ls-rh-afrom {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
}
#lsReservoirHome .ls-rh-adue {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--ls-rh-muted);
}
#lsReservoirHome .ls-rh-aname {
  font-family: Cinzel, serif;
  font-size: 20px;
  color: #eef6ff;
  margin-top: 7px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}
#lsReservoirHome .ls-rh-aprof {
  font-style: italic;
  font-size: 13px;
  color: #c0cedf;
  margin-top: 2px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}
#lsReservoirHome .ls-rh-aprog {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #aebfd2;
  margin-top: 12px;
}
#lsReservoirHome .ls-rh-aprog b {
  color: var(--ls-rh-sapphire-bright);
  font-weight: 500;
}
#lsReservoirHome .ls-rh-join-course {
  margin-top: 28px;
  border: 1px dashed rgba(120, 178, 238, 0.28);
  border-radius: 16px;
  padding: 14px 16px;
  background: rgba(8, 14, 28, 0.35);
}
#lsReservoirHome .ls-rh-join-course[hidden] {
  display: none !important;
}
#lsReservoirHome .ls-rh-join-title {
  font-family: Cinzel, serif;
  font-size: 16px;
  color: #dde7f0;
}
#lsReservoirHome .ls-rh-join-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
#lsReservoirHome .ls-rh-join-code {
  flex: 1;
  border: 1px solid var(--ls-rh-hair);
  border-radius: 11px;
  background: rgba(4, 8, 16, 0.6);
  padding: 10px 12px;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #eaf2fb;
}
#lsReservoirHome .ls-rh-join-btn {
  flex-shrink: 0;
  border: 1px solid rgba(120, 178, 238, 0.5);
  border-radius: 11px;
  padding: 10px 14px;
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #eaf4ff;
  background: rgba(47, 125, 246, 0.16);
  cursor: pointer;
}
#lsReservoirHome .ls-rh-join-msg {
  font-style: italic;
  font-size: 12px;
  color: var(--ls-rh-muted);
  margin-top: 8px;
  line-height: 1.45;
}
#lsReservoirHome .ls-rh-today {
  position: relative;
  border: 1px solid rgba(120, 178, 238, 0.4);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(8, 16, 34, 0.7);
  padding: 16px 18px;
  margin-top: 18px;
}
#lsReservoirHome .ls-rh-today-lbl {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
}
#lsReservoirHome .ls-rh-today-msg {
  font-family: Cinzel, serif;
  font-size: 19px;
  color: #eff6fc;
  margin-top: 6px;
}
#lsReservoirHome .ls-rh-today-meta {
  font-style: italic;
  color: #aebfd2;
  font-size: 13px;
  margin-top: 3px;
}
#lsReservoirHome .ls-rh-today-btn {
  margin-top: 13px;
  display: inline-block;
  border: 1px solid rgba(120, 178, 238, 0.5);
  border-radius: 20px;
  padding: 8px 16px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #eaf4ff;
  background: rgba(47, 125, 246, 0.18);
  cursor: pointer;
}
#lsReservoirHome .ls-rh-today-btn[disabled] {
  opacity: 0.45;
  cursor: default;
}
#lsReservoirHome .ls-rh-shelf-label {
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
  margin: 26px 4px 10px;
}
#lsReservoirHome .ls-rh-shelf {
  display: flex;
  flex-direction: column;
  gap: 11px;
}
#lsReservoirHome .ls-rh-rcard {
  position: relative;
  height: 82px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--ls-rh-hair);
  background: rgba(9, 15, 32, 0.6);
  cursor: pointer;
  transition: transform 0.15s;
}
#lsReservoirHome .ls-rh-rcard:active {
  transform: scale(0.99);
}
#lsReservoirHome .ls-rh-rfill {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0;
  background: linear-gradient(
    180deg,
    rgba(50, 118, 222, 0.5),
    rgba(12, 30, 90, 0.92) 60%,
    rgba(5, 14, 46, 0.96)
  );
  border-top: 1.5px solid rgba(120, 178, 238, 0.55);
  transition: height 1.1s cubic-bezier(0.4, 0, 0.2, 1);
}
#lsReservoirHome .ls-rh-rshade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(4, 7, 13, 0.82) 38%,
    rgba(4, 7, 13, 0.15)
  );
  z-index: 1;
}
#lsReservoirHome .ls-rh-rcontent {
  position: relative;
  z-index: 2;
  padding: 0 18px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#lsReservoirHome .ls-rh-rname {
  font-family: Cinzel, serif;
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0.03em;
  color: #eef5fc;
  display: flex;
  align-items: center;
  gap: 9px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}
#lsReservoirHome .ls-rh-rname .ls-rh-glyph {
  color: var(--ls-rh-sapphire-bright);
  font-size: 13px;
  opacity: 0.9;
}
#lsReservoirHome .ls-rh-rcue {
  font-style: italic;
  font-size: 13px;
  color: #bdcadb;
  margin-top: 2px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}
#lsReservoirHome .ls-rh-rdeep {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
  text-align: right;
  line-height: 1.6;
}
#lsReservoirHome .ls-rh-rdeep b {
  font-family: Cinzel, serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0;
  display: block;
  color: #eaf4ff;
}
#lsReservoirHome .ls-rh-rdeep small {
  display: block;
  color: var(--ls-rh-muted);
  font-size: 8px;
  letter-spacing: 0.2em;
}
#lsReservoirHome .ls-rh-rcard.ls-rh-rcard-locked {
  opacity: 0.72;
}
#lsReservoirHome .ls-rh-rcard.ls-rh-rcard-locked .ls-rh-rname::after {
  content: " · Premium";
  font-family: "JetBrains Mono", monospace;
  font-size: 8px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
  margin-left: 6px;
}
#lsReservoirHome .ls-rh-settings {
  flex: none;
  width: 28px;
  height: 28px;
  border: 1px solid var(--ls-rh-hair);
  border-radius: 50%;
  background: transparent;
  color: var(--ls-rh-muted);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.2s, color 0.2s;
}
#lsReservoirHome .ls-rh-settings:hover,
#lsReservoirHome .ls-rh-settings:focus-visible {
  border-color: rgba(108, 192, 255, 0.45);
  color: var(--ls-rh-sapphire-bright);
  outline: none;
}

/* Top-bar entry (welcome pill) — opt-in Reservoir */
#lsReservoirEntryBtn.ls-reservoir-entry-btn {
  position: relative;
  color: rgba(147, 197, 253, 0.98) !important;
}
#lsReservoirEntryBtn .ls-reservoir-glyph svg {
  width: 17px;
  height: 17px;
  display: block;
}
#lsReservoirEntryBtn .ls-reservoir-due-count {
  display: none;
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
  color: #041018;
  background: rgba(63, 208, 137, 0.92);
  box-shadow: 0 0 8px rgba(63, 208, 137, 0.35);
}
#lsReservoirEntryBtn.ls-reservoir-has-due .ls-reservoir-glyph svg {
  filter: drop-shadow(0 0 6px rgba(59, 130, 246, 0.45));
}

#lsReservoirHome .ls-rh-today-tend {
  font-style: italic;
  color: var(--ls-rh-muted);
  font-size: 12px;
  margin-top: 11px;
}
#lsReservoirHome .ls-rh-week {
  position: relative;
  border: 1px solid rgba(120, 178, 238, 0.4);
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(
    160deg,
    rgba(18, 44, 92, 0.5),
    rgba(8, 16, 34, 0.78)
  );
  padding: 16px 18px;
}
#lsReservoirHome .ls-rh-week-lbl {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
}
#lsReservoirHome .ls-rh-week-ref {
  font-family: Cinzel, serif;
  font-size: 22px;
  color: #eff6fc;
  margin-top: 6px;
}
#lsReservoirHome .ls-rh-week-kind {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ls-rh-muted);
  margin-top: 5px;
}
#lsReservoirHome .ls-rh-week-text {
  font-style: italic;
  color: #b6c4d6;
  font-size: 14px;
  margin-top: 4px;
  line-height: 1.4;
}
#lsReservoirHome .ls-rh-week-meta {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.12em;
  color: var(--ls-rh-muted);
  margin-top: 10px;
}
#lsReservoirHome .ls-rh-week-you {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
  margin-top: 10px;
}
#lsReservoirHome .ls-rh-week-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}
#lsReservoirHome .ls-rh-week-btn {
  margin-top: 0;
  border: none;
  border-radius: 20px;
  padding: 10px 18px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #eaf4ff;
  background: linear-gradient(
    180deg,
    rgba(47, 125, 246, 0.55),
    rgba(47, 125, 246, 0.25)
  );
  box-shadow: 0 0 16px rgba(47, 125, 246, 0.3);
  cursor: pointer;
}
#lsReservoirHome .ls-rh-week-btn.ls-rh-week-joined {
  background: transparent;
  border: 1px solid var(--ls-rh-hair);
  color: var(--ls-rh-muted);
  box-shadow: none;
}
#lsReservoirHome .ls-rh-week-done {
  border-color: rgba(120, 178, 238, 0.55);
  box-shadow: 0 0 24px rgba(47, 125, 246, 0.16);
}
#lsReservoirHome .ls-rh-week-done .ls-rh-week-btn.ls-rh-week-joined {
  background: linear-gradient(
    180deg,
    rgba(47, 125, 246, 0.55),
    rgba(47, 125, 246, 0.25)
  );
  border: none;
  color: #eaf4ff;
  box-shadow: 0 0 16px rgba(47, 125, 246, 0.3);
}
#lsReservoirHome .ls-rh-week-share {
  border: 1px solid rgba(120, 178, 238, 0.45);
  border-radius: 20px;
  padding: 10px 14px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #cfe0f2;
  background: transparent;
  cursor: pointer;
}
#lsReservoirHome .ls-rh-week-share[hidden] {
  display: none;
}
#lsReservoirHome .ls-rh-active-plans {
  display: flex;
  flex-direction: column;
  gap: 11px;
}
#lsReservoirHome .ls-rh-empty-note {
  font-style: italic;
  color: var(--ls-rh-muted);
  font-size: 13px;
  padding: 4px 2px 8px;
}
#lsReservoirHome .ls-rh-vcard {
  position: relative;
  height: 84px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--ls-rh-hair);
  background: rgba(9, 15, 32, 0.6);
  cursor: pointer;
  transition: transform 0.15s;
}
#lsReservoirHome .ls-rh-vcard:active {
  transform: scale(0.99);
}
#lsReservoirHome .ls-rh-vfill {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0;
  background: linear-gradient(
    180deg,
    rgba(50, 118, 222, 0.5),
    rgba(12, 30, 90, 0.92) 60%,
    rgba(5, 14, 46, 0.96)
  );
  border-top: 1.5px solid rgba(120, 178, 238, 0.55);
  transition: height 1.1s cubic-bezier(0.4, 0, 0.2, 1);
}
#lsReservoirHome .ls-rh-vshade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(4, 7, 13, 0.82) 38%,
    rgba(4, 7, 13, 0.15)
  );
  z-index: 1;
}
#lsReservoirHome .ls-rh-vcontent {
  position: relative;
  z-index: 2;
  padding: 0 18px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#lsReservoirHome .ls-rh-vname {
  font-family: Cinzel, serif;
  font-size: 18px;
  color: #eff6fc;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}
#lsReservoirHome .ls-rh-vcue {
  font-style: italic;
  font-size: 13px;
  color: #bdcadb;
  margin-top: 2px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}
#lsReservoirHome .ls-rh-vprog {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ls-rh-sapphire-bright);
  text-align: right;
}
#lsReservoirHome .ls-rh-vprog b {
  font-family: Cinzel, serif;
  font-size: 20px;
  display: block;
  color: #eaf4ff;
}
#lsReservoirHome .ls-rh-vprog small {
  display: block;
  color: var(--ls-rh-muted);
  font-size: 8px;
  letter-spacing: 0.2em;
}
#lsReservoirHome .ls-rh-plan-library {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#lsReservoirHome .ls-rh-plan-row {
  border: 1px solid var(--ls-rh-hair);
  border-radius: 14px;
  background: rgba(9, 15, 32, 0.55);
  padding: 13px 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
#lsReservoirHome .ls-rh-plan-name {
  font-family: Cinzel, serif;
  font-size: 17px;
  color: #eaf2fb;
}
#lsReservoirHome .ls-rh-plan-meta {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--ls-rh-muted);
  margin-top: 3px;
}
#lsReservoirHome .ls-rh-plan-start {
  flex-shrink: 0;
  border: 1px solid rgba(120, 178, 238, 0.5);
  border-radius: 20px;
  padding: 8px 14px;
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #eaf4ff;
  background: rgba(47, 125, 246, 0.16);
  cursor: pointer;
}
#lsReservoirHome .ls-rh-plan-start.ls-rh-started,
#lsReservoirHome .ls-rh-plan-start:disabled {
  background: transparent;
  border-color: var(--ls-rh-hair);
  color: var(--ls-rh-muted);
  cursor: default;
}
#lsReservoirHome .ls-rh-build {
  border: 1px dashed rgba(120, 178, 238, 0.4);
  border-radius: 16px;
  padding: 16px 18px;
  background: rgba(8, 14, 28, 0.5);
}
#lsReservoirHome .ls-rh-build-title {
  font-family: Cinzel, serif;
  font-size: 18px;
  color: #eef6ff;
}
#lsReservoirHome .ls-rh-build-lbl {
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ls-rh-muted);
  margin: 13px 0 5px;
}
#lsReservoirHome .ls-rh-ch-template,
#lsReservoirHome .ls-rh-ch-due {
  width: 100%;
  border: 1px solid var(--ls-rh-hair);
  border-radius: 11px;
  background: rgba(4, 8, 16, 0.6);
  padding: 11px 13px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 16px;
  color: #eaf2fb;
}
#lsReservoirHome .ls-rh-ch-set {
  width: 100%;
  margin-top: 15px;
  border: none;
  border-radius: 13px;
  padding: 13px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #eaf4ff;
  cursor: pointer;
  background: linear-gradient(
    180deg,
    rgba(47, 125, 246, 0.55),
    rgba(47, 125, 246, 0.25)
  );
  box-shadow: 0 0 18px rgba(47, 125, 246, 0.3);
}

/* ── Luxury chrome skin — white / icy / chrome accents; blue reserved for rare highlights ── */
#lsReservoirHome .ls-rh-standing:hover,
#lsReservoirHome .ls-rh-standing:focus-visible {
  border-color: rgba(255, 255, 255, 0.28);
  box-shadow: 0 0 14px rgba(255, 255, 255, 0.08);
}
#lsReservoirHome .ls-rh-standing i {
  background: linear-gradient(135deg, #f0f6ff, #9eb8d4);
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.22);
}
#lsReservoirHome .ls-rh-assigned,
#lsReservoirHome .ls-rh-today,
#lsReservoirHome .ls-rh-week {
  border-color: rgba(255, 255, 255, 0.14);
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.07) 0%,
    rgba(255, 255, 255, 0.03) 42%,
    rgba(8, 10, 16, 0.55) 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 12px 36px rgba(0, 0, 0, 0.35);
}
#lsReservoirHome .ls-rh-afill,
#lsReservoirHome .ls-rh-rfill,
#lsReservoirHome .ls-rh-vfill {
  background: linear-gradient(
    180deg,
    rgba(220, 232, 248, 0.22),
    rgba(140, 160, 185, 0.35) 55%,
    rgba(40, 48, 62, 0.75) 100%
  );
  border-top-color: rgba(255, 255, 255, 0.22);
}
#lsReservoirHome .ls-rh-rcard,
#lsReservoirHome .ls-rh-vcard,
#lsReservoirHome .ls-rh-plan-row {
  border-color: rgba(255, 255, 255, 0.12);
  background: linear-gradient(
    160deg,
    rgba(255, 255, 255, 0.06),
    rgba(8, 10, 16, 0.5)
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
}
#lsReservoirHome .ls-rh-shelf-label {
  color: rgba(220, 232, 248, 0.72);
}
#lsReservoirHome .ls-rh-today-btn,
#lsReservoirHome .ls-rh-join-btn,
#lsReservoirHome .ls-rh-plan-start,
#lsReservoirHome .ls-rh-week-share {
  border-color: rgba(255, 255, 255, 0.22);
  color: #f4f8fc;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
#lsReservoirHome .ls-rh-week-btn,
#lsReservoirHome .ls-rh-ch-set {
  border: 1px solid rgba(186, 214, 240, 0.35);
  color: #f8fbff;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.14),
    rgba(186, 214, 240, 0.12)
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 0 20px rgba(186, 214, 240, 0.08);
}
#lsReservoirHome .ls-rh-week-done {
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.05);
}
#lsReservoirHome .ls-rh-week-done .ls-rh-week-btn.ls-rh-week-joined {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.14),
    rgba(186, 214, 240, 0.12)
  );
  border: 1px solid rgba(186, 214, 240, 0.35);
  color: #f8fbff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
#lsReservoirHome .ls-rh-build,
#lsReservoirHome .ls-rh-join-course {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.04);
}
#lsReservoirHome .ls-rh-toggle {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}
#lsReservoirHome .ls-rh-settings:hover,
#lsReservoirHome .ls-rh-settings:focus-visible {
  border-color: rgba(255, 255, 255, 0.28);
  color: #e8f0fa;
}

/* ── Desktop (900px+): wider canvas + 2-col shelf — mobile layout unchanged below 900px ── */
@media (min-width: 900px) {
  #lsReservoirHome {
    background-color: #07090e;
    background-image:
      radial-gradient(ellipse 70% 55% at 8% 18%, rgba(255, 255, 255, 0.05), transparent 52%),
      radial-gradient(ellipse 70% 55% at 92% 22%, rgba(186, 214, 240, 0.06), transparent 52%),
      radial-gradient(120% 48% at 50% -8%, rgba(255, 255, 255, 0.07), transparent 58%),
      linear-gradient(180deg, #0a0c12 0%, #07090e 100%);
  }

  #lsReservoirHome .ls-rh-app {
    max-width: min(1140px, 94vw);
    width: 100%;
    padding: 28px 40px 52px;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.06),
      0 24px 80px rgba(0, 0, 0, 0.45);
  }

  #lsReservoirHome .ls-rh-h1 {
    font-size: 32px;
    margin-top: 16px;
  }

  #lsReservoirHome .ls-rh-greet {
    font-size: 16px;
    max-width: 42rem;
  }

  /* App-level grid: full-width header; optional 2-col footer for join + teach */
  #lsReservoirHome .ls-rh-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 28px;
  }

  #lsReservoirHome .ls-rh-top,
  #lsReservoirHome .ls-rh-h1,
  #lsReservoirHome .ls-rh-greet,
  #lsReservoirHome .ls-rh-toggle,
  #lsReservoirHome .ls-rh-panel {
    grid-column: 1 / -1;
  }

  #lsReservoirHome .ls-rh-join-course:not([hidden]) {
    grid-column: 1 / -1;
    margin-top: 20px;
  }

  #lsReservoirHome .ls-rh-join-course:not([hidden]):has(~ .ls-rh-teach:not([hidden])) {
    grid-column: 1;
  }

  #lsReservoirHome .ls-rh-teach:not([hidden]) {
    grid-column: 2;
    margin-top: 20px;
  }

  #lsReservoirHome .ls-rh-panel-personal.ls-rh-show {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 28px;
    row-gap: 0;
    align-items: start;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-today {
    grid-column: 1;
    grid-row: 1 / 3;
    margin-top: 18px;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
    margin-top: 18px;
    margin-bottom: 0;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-week {
    grid-column: 2;
    grid-row: 2;
    margin-top: 0;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(4) {
    grid-column: 1 / -1;
    grid-row: 3;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-active-plans {
    grid-column: 1 / -1;
    grid-row: 4;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(6) {
    grid-column: 1;
    grid-row: 5;
    margin-bottom: 0;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-plan-library {
    grid-column: 1;
    grid-row: 6;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(8) {
    grid-column: 2;
    grid-row: 5;
    margin-bottom: 0;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-build {
    grid-column: 2;
    grid-row: 6;
    height: 100%;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(10) {
    grid-column: 1 / -1;
    grid-row: 7;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf {
    grid-column: 1 / -1;
    grid-row: 8;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(12) {
    grid-column: 1 / -1;
    grid-row: 9;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-currents {
    grid-column: 1 / -1;
    grid-row: 10;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-empty-note {
    grid-column: 1 / -1;
  }

  /* Courses panel: 2-col assignment cards */
  #lsReservoirHome .ls-rh-panel-courses.ls-rh-show .ls-rh-course-blocks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
  }

  #lsReservoirHome .ls-rh-panel-courses.ls-rh-show .ls-rh-course-meta {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1200px) {
  #lsReservoirHome .ls-rh-app {
    max-width: min(1240px, 92vw);
    padding: 32px 48px 56px;
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf,
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-currents {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-active-plans {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MONOLITHIC SANCTUARY — "Quiet Wealth" pass (appended; wins by source order).
   One seamless frosted pane · strict monochrome platinum/silver/gray ·
   ghost-only controls · generous negative space · depth shown as a quiet
   water-line instead of loud labels. Goal: a private gallery for *tending*
   Scripture, not a task workstation.
   ═══════════════════════════════════════════════════════════════════════════ */
#lsReservoirHome {
  /* Recolor the entire surface to a strict monochrome ramp (kills the icy blue). */
  --ls-rh-sapphire-bright: #cfd6e0;
  --ls-rh-platinum: #eef1f5;
  --ls-rh-muted: #8b95a3;
  --rh-ink: #eef1f5;
  --rh-ink-2: #c3ccd6;
  --rh-ink-3: #8b95a3;
  --rh-line: rgba(255, 255, 255, 0.07);
  --rh-line-strong: rgba(255, 255, 255, 0.16);
  background-color: #070809 !important;
  background-image:
    radial-gradient(ellipse 100% 60% at 50% -15%, rgba(255, 255, 255, 0.045), transparent 60%),
    linear-gradient(180deg, #0a0b0f 0%, #070809 56%, #050506 100%) !important;
}

/* (1) MATERIALITY — the .ls-rh-app pane is the single piece of glass. */
#lsReservoirHome .ls-rh-app {
  background-color: rgba(12, 13, 17, 0.5) !important;
  background-image:
    radial-gradient(130% 46% at 50% -10%, rgba(255, 255, 255, 0.05), transparent 62%) !important;
  backdrop-filter: blur(28px) saturate(1.04) !important;
  -webkit-backdrop-filter: blur(28px) saturate(1.04) !important;
  padding: 40px 26px 72px !important;
}

/* Dissolve every inner container into that one pane — no nested cards. */
#lsReservoirHome .ls-rh-today,
#lsReservoirHome .ls-rh-week,
#lsReservoirHome .ls-rh-build,
#lsReservoirHome .ls-rh-join-course,
#lsReservoirHome .ls-rh-rcard,
#lsReservoirHome .ls-rh-vcard,
#lsReservoirHome .ls-rh-ccard,
#lsReservoirHome .ls-rh-plan-row,
#lsReservoirHome .ls-rh-assigned,
#lsReservoirHome .ls-rh-toggle {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* (2) NEGATIVE SPACE — airy rhythm; section labels become gallery dividers. */
#lsReservoirHome .ls-rh-h1 {
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  color: var(--rh-ink) !important;
  text-shadow: none !important;
  margin-top: 18px !important;
}
#lsReservoirHome .ls-rh-greet {
  color: var(--rh-ink-3) !important;
  margin-top: 8px !important;
}
#lsReservoirHome .ls-rh-shelf-label {
  margin: 44px 2px 18px !important;
  padding-top: 22px !important;
  border-top: 1px solid var(--rh-line) !important;
  color: var(--rh-ink-3) !important;
  font-size: 9px !important;
  letter-spacing: 0.34em !important;
}
#lsReservoirHome .ls-rh-today {
  padding: 6px 2px 0 !important;
  margin-top: 22px !important;
}
#lsReservoirHome .ls-rh-week { padding: 4px 2px !important; }

/* Cards → flat gallery rows separated by a single hairline. */
#lsReservoirHome .ls-rh-shelf,
#lsReservoirHome .ls-rh-active-plans,
#lsReservoirHome .ls-rh-currents,
#lsReservoirHome .ls-rh-plan-library {
  row-gap: 0 !important; /* hairlines separate rows; keep column-gap on desktop grids */
}
#lsReservoirHome .ls-rh-rcard,
#lsReservoirHome .ls-rh-vcard,
#lsReservoirHome .ls-rh-ccard,
#lsReservoirHome .ls-rh-assigned,
#lsReservoirHome .ls-rh-plan-row {
  height: auto !important;
  min-height: 0 !important;
  border-bottom: 1px solid var(--rh-line) !important;
  margin-bottom: 0 !important;
}
#lsReservoirHome .ls-rh-rcontent,
#lsReservoirHome .ls-rh-vcontent,
#lsReservoirHome .ls-rh-ccontent {
  height: auto !important;
  padding: 20px 4px !important;
}
#lsReservoirHome .ls-rh-assigned { padding: 20px 4px !important; }
#lsReservoirHome .ls-rh-plan-row { padding: 18px 4px !important; }
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:last-child,
#lsReservoirHome .ls-rh-active-plans .ls-rh-vcard:last-child,
#lsReservoirHome .ls-rh-currents .ls-rh-ccard:last-child,
#lsReservoirHome .ls-rh-plan-library .ls-rh-plan-row:last-child {
  border-bottom: none !important;
}

/* Depth = a whisper-faint water-line (held rises quietly), not a loud fill. */
#lsReservoirHome .ls-rh-rfill,
#lsReservoirHome .ls-rh-vfill,
#lsReservoirHome .ls-rh-cfill,
#lsReservoirHome .ls-rh-afill {
  opacity: 1 !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0)) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.16) !important;
}
#lsReservoirHome .ls-rh-rshade,
#lsReservoirHome .ls-rh-vshade,
#lsReservoirHome .ls-rh-cshade,
#lsReservoirHome .ls-rh-ashade { display: none !important; }

/* (3) TYPOGRAPHY — names in platinum, meta in cool gray; quiet the counters. */
#lsReservoirHome .ls-rh-rname,
#lsReservoirHome .ls-rh-vname,
#lsReservoirHome .ls-rh-cname,
#lsReservoirHome .ls-rh-aname,
#lsReservoirHome .ls-rh-plan-name,
#lsReservoirHome .ls-rh-today-msg,
#lsReservoirHome .ls-rh-week-ref,
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title {
  color: var(--rh-ink) !important;
  text-shadow: none !important;
  font-weight: 500 !important;
}
#lsReservoirHome .ls-rh-rcue,
#lsReservoirHome .ls-rh-vcue,
#lsReservoirHome .ls-rh-ccue,
#lsReservoirHome .ls-rh-aprof,
#lsReservoirHome .ls-rh-today-meta,
#lsReservoirHome .ls-rh-week-text,
#lsReservoirHome .ls-rh-plan-meta {
  color: var(--rh-ink-3) !important;
  text-shadow: none !important;
}
#lsReservoirHome .ls-rh-rdeep,
#lsReservoirHome .ls-rh-vprog,
#lsReservoirHome .ls-rh-cprog,
#lsReservoirHome .ls-rh-aprog {
  color: var(--rh-ink-3) !important;
  font-size: 8px !important;
  letter-spacing: 0.24em !important;
}
#lsReservoirHome .ls-rh-rdeep b,
#lsReservoirHome .ls-rh-vprog b,
#lsReservoirHome .ls-rh-cprog b {
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  color: var(--rh-ink) !important;
}
#lsReservoirHome .ls-rh-rdeep small,
#lsReservoirHome .ls-rh-vprog small,
#lsReservoirHome .ls-rh-cprog small { display: none !important; } /* drop tier-label noise */
#lsReservoirHome .ls-rh-rname .ls-rh-glyph { color: var(--rh-ink-3) !important; opacity: 0.8 !important; }

/* (4) VISUAL SILENCE — every action is a quiet ghost; no filled/glowing buttons. */
#lsReservoirHome .ls-rh-week-btn,
#lsReservoirHome .ls-rh-week-btn.ls-rh-week-joined,
#lsReservoirHome .ls-rh-week-share,
#lsReservoirHome .ls-rh-today-btn,
#lsReservoirHome .ls-rh-ch-set,
#lsReservoirHome .ls-rh-join-btn,
#lsReservoirHome .ls-rh-plan-start,
#lsReservoirHome .ls-rh-teach-row button {
  background: transparent !important;
  background-image: none !important;
  border: 1px solid var(--rh-line-strong) !important;
  box-shadow: none !important;
  color: var(--rh-ink-2) !important;
  border-radius: 999px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  transition: border-color 0.3s ease, color 0.3s ease !important;
}
#lsReservoirHome .ls-rh-week-btn:hover,
#lsReservoirHome .ls-rh-week-share:hover,
#lsReservoirHome .ls-rh-today-btn:not([disabled]):hover,
#lsReservoirHome .ls-rh-ch-set:hover,
#lsReservoirHome .ls-rh-join-btn:hover,
#lsReservoirHome .ls-rh-plan-start:not(:disabled):hover,
#lsReservoirHome .ls-rh-teach-row button:hover {
  border-color: rgba(255, 255, 255, 0.42) !important;
  color: var(--rh-ink) !important;
}
#lsReservoirHome .ls-rh-week-done { box-shadow: none !important; }

/* (5) DEMOTE utilities — build-your-own + course code read as quiet footer matter. */
#lsReservoirHome .ls-rh-build,
#lsReservoirHome .ls-rh-join-course {
  opacity: 0.65 !important;
  padding: 4px 2px !important;
  transition: opacity 0.3s ease !important;
}
#lsReservoirHome .ls-rh-build:hover,
#lsReservoirHome .ls-rh-join-course:hover,
#lsReservoirHome .ls-rh-build:focus-within,
#lsReservoirHome .ls-rh-join-course:focus-within { opacity: 1 !important; }
#lsReservoirHome .ls-rh-ch-template,
#lsReservoirHome .ls-rh-ch-due,
#lsReservoirHome .ls-rh-join-code {
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid var(--rh-line) !important;
  color: var(--rh-ink-2) !important;
}

/* Quiet the top chrome to match the gallery hush. */
#lsReservoirHome .ls-rh-standing {
  border-color: var(--rh-line-strong) !important;
  color: var(--rh-ink-3) !important;
  box-shadow: none !important;
}
#lsReservoirHome .ls-rh-standing i {
  background: linear-gradient(135deg, #e9eef4, #aab4c2) !important;
  box-shadow: none !important;
}
#lsReservoirHome .ls-rh-settings { border-color: var(--rh-line-strong) !important; }
#lsReservoirHome .ls-rh-brand { color: var(--rh-ink-3) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   DEEP RESERVOIR — icon gallery grid (matches the mockup).
   Reservoirs become a 2-col grid of quiet monoline icon + label tiles. Held
   reservoirs glow softly; "in waiting" ones stay muted. Per-tile cue + depth
   counter are hidden (aggregate "// N in waiting" lives on the section label),
   so the shelf reads like a curated gallery, not a list of meters.
   ═══════════════════════════════════════════════════════════════════════════ */
#lsReservoirHome .ls-rh-shelf {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 18px !important;
  row-gap: 0 !important;
}
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard {
  height: auto !important;
  min-height: 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--rh-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}
/* No water fill / shade in the gallery grid — depth is implied by glow. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rfill,
#lsReservoirHome .ls-rh-shelf .ls-rh-rshade,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcue,
#lsReservoirHome .ls-rh-shelf .ls-rh-rdeep { display: none !important; }
#lsReservoirHome .ls-rh-shelf .ls-rh-rcontent {
  height: auto !important;
  padding: 17px 2px !important;
  justify-content: flex-start !important;
}
#lsReservoirHome .ls-rh-shelf .ls-rh-rname {
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--rh-ink-3) !important; /* waiting = muted */
  gap: 13px !important;
  align-items: center !important;
  transition: color 0.35s ease !important;
}
#lsReservoirHome .ls-rh-shelf .ls-rh-glyph {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  flex: none !important;
  color: var(--rh-ink-3) !important;
  opacity: 0.62 !important;
  transition: color 0.35s ease, opacity 0.35s ease, filter 0.35s ease !important;
}
#lsReservoirHome .ls-rh-shelf .ls-rh-glyph svg {
  width: 21px !important;
  height: 21px !important;
  display: block !important;
}
/* Green radial halo that blooms behind the icon (like COURAGE in the mockup). */
#lsReservoirHome .ls-rh-shelf .ls-rh-glyph { position: relative !important; }
#lsReservoirHome .ls-rh-shelf .ls-rh-glyph::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 96px;
  height: 96px;
  transform: translate(-50%, -50%) scale(0.55);
  background: radial-gradient(circle, rgba(52, 222, 158, 0.5) 0%, rgba(52, 222, 158, 0.16) 38%, rgba(52, 222, 158, 0) 70%);
  opacity: 0;
  pointer-events: none;
  z-index: -1;
  transition: opacity 0.45s ease, transform 0.45s ease;
}

/* The green ignites on the reservoir you touch (hover / focus / press) … */
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:hover .ls-rh-glyph,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:focus-visible .ls-rh-glyph,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:active .ls-rh-glyph,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-held .ls-rh-glyph {
  color: #57f0b4 !important;
  opacity: 1 !important;
}
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:hover .ls-rh-glyph::after,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:focus-visible .ls-rh-glyph::after,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:active .ls-rh-glyph::after,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-held .ls-rh-glyph::after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:hover .ls-rh-rname,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:focus-visible .ls-rh-rname,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:active .ls-rh-rname,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-held .ls-rh-rname {
  color: #79f0c0 !important;
  text-shadow: 0 0 10px rgba(52, 222, 158, 0.45) !important;
}
/* The "· PREMIUM" tag lights up green with the word too. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:hover .ls-rh-rname::after,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:focus-visible .ls-rh-rname::after,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:active .ls-rh-rname::after,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-held .ls-rh-rname::after {
  color: #57e0a0 !important;
}

/* … and stays lit + breathing on the reservoirs you're already holding. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-held .ls-rh-glyph {
  animation: ls-rh-held-pulse 3.4s ease-in-out infinite !important;
}
@keyframes ls-rh-held-pulse {
  0%, 100% { filter: drop-shadow(0 0 4px rgba(52, 222, 158, 0.45)); }
  50% { filter: drop-shadow(0 0 12px rgba(52, 222, 158, 0.95)); }
}
/* Slipping reservoirs keep a faint cool urgency glow. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-has-slip:not(.ls-rh-held) .ls-rh-glyph {
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.4)) !important;
}
/* Last row keeps a clean edge. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:last-child,
#lsReservoirHome .ls-rh-shelf .ls-rh-rcard:nth-last-child(2):nth-child(odd) {
  border-bottom: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LIVING TIDE — animated blue water at the bottom of the CURRENTS section
   (a single section footer, not the whole app, per the mockup). Three parallax
   wave layers drift in opposite directions; masked so it fades up into the pane.
   ═══════════════════════════════════════════════════════════════════════════ */
#lsReservoirHome .ls-rh-tide {
  position: relative;
  width: 100%;
  height: 84px;
  margin-top: 4px;
  pointer-events: none;
  overflow: hidden;
  border-radius: 0 0 14px 14px;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 58%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 58%);
}
/* Desktop: the tide spans the full width beneath the Currents grid. */
@media (min-width: 900px) {
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-tide {
    grid-column: 1 / -1;
  }
}
#lsReservoirHome .ls-rh-wave {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 200%;
  height: 100%;
  background-repeat: repeat-x;
  background-position: 0 bottom;
  background-size: 50% 100%;
  will-change: transform;
}
#lsReservoirHome .ls-rh-wave-back {
  opacity: 0.2;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,50 C150,90 350,15 600,50 C850,85 1050,20 1200,50 L1200,120 L0,120 Z' fill='%231f5fbf'/%3E%3C/svg%3E");
  animation: ls-rh-tide-x 17s linear infinite;
}
#lsReservoirHome .ls-rh-wave-mid {
  opacity: 0.28;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,58 C200,20 400,94 600,58 C820,22 1010,94 1200,58 L1200,120 L0,120 Z' fill='%232f7df6'/%3E%3C/svg%3E");
  animation: ls-rh-tide-x 11s linear infinite reverse;
}
#lsReservoirHome .ls-rh-wave-front {
  opacity: 0.36;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,72 C180,104 380,42 600,72 C840,104 1030,42 1200,72 L1200,120 L0,120 Z' fill='%2362a6fb'/%3E%3C/svg%3E");
  animation: ls-rh-tide-x 7.5s linear infinite;
}
@keyframes ls-rh-tide-x {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   READABILITY PASS — drop the serif/italic "cursive" display faces for a clean
   sans, and color the titles icy blue so they pop against the dark pane.
   ═══════════════════════════════════════════════════════════════════════════ */
#lsReservoirHome {
  --rh-ice-title: #82c8f5; /* icy blue for headings */
  --rh-ice-soft: #9ad6f8;  /* lighter icy blue for small eyebrow labels */
}
/* De-cursive: force a readable sans on every serif/italic text element. */
#lsReservoirHome .ls-rh-h1,
#lsReservoirHome .ls-rh-greet,
#lsReservoirHome .ls-rh-today-msg,
#lsReservoirHome .ls-rh-today-meta,
#lsReservoirHome .ls-rh-today-tend,
#lsReservoirHome .ls-rh-week-ref,
#lsReservoirHome .ls-rh-week-text,
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title,
#lsReservoirHome .ls-rh-join-msg,
#lsReservoirHome .ls-rh-empty-note,
#lsReservoirHome .ls-rh-rname,
#lsReservoirHome .ls-rh-vname,
#lsReservoirHome .ls-rh-cname,
#lsReservoirHome .ls-rh-aname,
#lsReservoirHome .ls-rh-aprof,
#lsReservoirHome .ls-rh-rcue,
#lsReservoirHome .ls-rh-vcue,
#lsReservoirHome .ls-rh-ccue,
#lsReservoirHome .ls-rh-plan-name,
#lsReservoirHome .ls-rh-vprog b,
#lsReservoirHome .ls-rh-cprog b,
#lsReservoirHome .ls-rh-aprog,
#lsReservoirHome .ls-rh-ch-template,
#lsReservoirHome .ls-rh-ch-due {
  font-family: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, system-ui, sans-serif !important;
  font-style: normal !important;
}
/* Big + block + item titles → icy blue. */
#lsReservoirHome .ls-rh-h1 {
  color: var(--rh-ice-title) !important;
  text-shadow: 0 0 20px rgba(110, 180, 235, 0.3) !important;
}
#lsReservoirHome .ls-rh-today-msg,
#lsReservoirHome .ls-rh-week-ref,
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title,
#lsReservoirHome .ls-rh-plan-name,
#lsReservoirHome .ls-rh-vname,
#lsReservoirHome .ls-rh-cname,
#lsReservoirHome .ls-rh-aname {
  color: var(--rh-ice-title) !important;
  text-shadow: none !important;
}
/* Section eyebrow labels → softer icy blue so they pop. */
#lsReservoirHome .ls-rh-shelf-label,
#lsReservoirHome .ls-rh-today-lbl,
#lsReservoirHome .ls-rh-week-lbl {
  color: var(--rh-ice-soft) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BILLIONAIRE PASS — restraint. Icy blue is the SINGLE accent (micro-labels
   only); every real title returns to clean platinum. Type sizes raised so
   nothing reads cramped. Quiet wealth: monochrome + one cool accent + air.
   ═══════════════════════════════════════════════════════════════════════════ */
/* Titles → platinum, not blue. */
#lsReservoirHome .ls-rh-h1 {
  color: #f5f8fc !important;
  text-shadow: none !important;
  letter-spacing: 0.06em !important;
}
#lsReservoirHome .ls-rh-today-msg,
#lsReservoirHome .ls-rh-week-ref,
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title,
#lsReservoirHome .ls-rh-plan-name,
#lsReservoirHome .ls-rh-vname,
#lsReservoirHome .ls-rh-cname,
#lsReservoirHome .ls-rh-aname {
  color: #eef3f9 !important;
  font-weight: 500 !important;
}
/* The one accent: micro eyebrow labels in restrained icy blue, a touch larger. */
#lsReservoirHome .ls-rh-shelf-label,
#lsReservoirHome .ls-rh-today-lbl,
#lsReservoirHome .ls-rh-week-lbl {
  color: #8fcdf2 !important;
  font-size: 10.5px !important;
  letter-spacing: 0.28em !important;
}
/* Raise undersized text to comfortable, confident sizes. */
#lsReservoirHome .ls-rh-greet {
  color: #aab4c1 !important;
  font-size: 15.5px !important;
  line-height: 1.5 !important;
}
#lsReservoirHome .ls-rh-today-msg { font-size: 22px !important; }
#lsReservoirHome .ls-rh-week-ref { font-size: 23px !important; }
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title { font-size: 19px !important; }
#lsReservoirHome .ls-rh-today-meta,
#lsReservoirHome .ls-rh-week-text,
#lsReservoirHome .ls-rh-today-tend,
#lsReservoirHome .ls-rh-empty-note,
#lsReservoirHome .ls-rh-join-msg {
  color: #9aa6b3 !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
}
#lsReservoirHome .ls-rh-week-kind,
#lsReservoirHome .ls-rh-week-meta,
#lsReservoirHome .ls-rh-plan-meta {
  font-size: 10.5px !important;
  letter-spacing: 0.12em !important;
}
/* Item names in the gallery + currents: legible, platinum. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rname { font-size: 11.5px !important; }
#lsReservoirHome .ls-rh-vname,
#lsReservoirHome .ls-rh-cname { font-size: 18px !important; }
/* Ghost buttons: a hair larger so labels don't feel tiny. */
#lsReservoirHome .ls-rh-week-btn,
#lsReservoirHome .ls-rh-week-share,
#lsReservoirHome .ls-rh-today-btn,
#lsReservoirHome .ls-rh-ch-set,
#lsReservoirHome .ls-rh-join-btn,
#lsReservoirHome .ls-rh-plan-start {
  font-size: 10.5px !important;
}
@media (prefers-reduced-motion: reduce) {
  #lsReservoirHome .ls-rh-wave { animation: none !important; }
  #lsReservoirHome .ls-rh-shelf .ls-rh-rcard.ls-rh-held .ls-rh-glyph { animation: none !important; }
}

/* ── Contain the ghost buttons so they never stretch full-width (looked cheap). ── */
#lsReservoirHome .ls-rh-today-btn,
#lsReservoirHome .ls-rh-week-btn,
#lsReservoirHome .ls-rh-week-share,
#lsReservoirHome .ls-rh-join-btn,
#lsReservoirHome .ls-rh-plan-library .ls-rh-week-btn,
#lsReservoirHome .ls-rh-plan-start {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: max-content !important;
  align-self: flex-start !important;
  padding: 11px 24px !important;
}
/* "Set challenge" stays a confident full-width form action (it's a real submit). */
#lsReservoirHome .ls-rh-ch-set {
  width: 100% !important;
  max-width: none !important;
  align-self: stretch !important;
  padding: 13px !important;
  font-size: 11px !important;
}

/* ════════════════════════════════════════════════════════════════════════
   RESERVOIR GLASS SCREEN — float the pane as one curvy frosted slab,
   with a faint, theme-aware scene behind it so the glass refracts a real
   backdrop (mirrors the active after-login plate).
   ════════════════════════════════════════════════════════════════════════ */

/* The "room" behind the glass: deepen + add a soft top/bottom glow. */
#lsReservoirHome {
  background-image:
    radial-gradient(120% 58% at 50% -10%, rgba(140, 178, 232, 0.12), transparent 60%),
    radial-gradient(95% 50% at 50% 116%, rgba(46, 96, 188, 0.12), transparent 62%),
    linear-gradient(180deg, #0a0d14 0%, #07090e 50%, #04060a 100%) !important;
  padding: 16px 0 26px !important;
}
#lsReservoirHome.ls-rh-visible {
  align-items: flex-start !important;
}

/* Faint theme scene layer (fixed, sits behind the floating glass). */
#lsReservoirHome::before {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  background-position: center bottom !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  opacity: 0.26 !important;
  filter: saturate(1.05) brightness(0.72) blur(2px) !important;
  pointer-events: none !important;
}
html[data-ls-reading-plate="home"] #lsReservoirHome::before {
  background-image: url("../img/ls-pack-home-fire-modern.png?v=lspack1") !important;
}
html[data-ls-reading-plate="urban"] #lsReservoirHome::before {
  background-image: url("../img/ls-splash-dubai-luxwater-a.png?v=lspack1") !important;
}
html[data-ls-reading-plate="city"] #lsReservoirHome::before {
  background-image: url("../img/ls-pack-urban-modern-night.png?v=lspack3") !important;
}
html[data-ls-reading-plate="night"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-night-river-heaven-v2.png?v=ls_reading_night_heaven_v2") !important;
}
html[data-ls-reading-plate="heaven"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-faith-blue-rocks-v2.jpg?v=ls_faith_blue_rocks_v2") !important;
}
html[data-ls-reading-plate="river"] #lsReservoirHome::before {
  background-image: url("../img/ls-calm-plate-02-desert-river-ribbon.png?v=ls_reading_plate_v1") !important;
}
html[data-ls-reading-plate="v5"] #lsReservoirHome::before {
  background-image: url("../img/ls-mountain-v5-outline-glow.jpg?v=ls_reading_plate_v1") !important;
}
html[data-ls-reading-plate="granite"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-foundation-granite-threshold-v1.png?v=ls_found_prov_v1") !important;
}
html[data-ls-reading-plate="sapphirepeak"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-foundation-flowers-v1.jpg?v=ls_found_flowers_v1") !important;
}
html[data-ls-reading-plate="lux1"] #lsReservoirHome::before,
html[data-ls-reading-plate="lux1hi"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-luxury-sand-a-dark.png?v=ls_lux_sand_v8") !important;
}
html[data-ls-reading-plate="lux2"] #lsReservoirHome::before,
html[data-ls-reading-plate="lux2hi"] #lsReservoirHome::before,
html:not([data-ls-reading-plate]) #lsReservoirHome::before {
  background-image: url("../img/ls-reading-luxury-sand-b-dark.png?v=ls_lux_sand_v8") !important;
}
html[data-ls-reading-plate="morning"] #lsReservoirHome::before {
  background-image: url("../img/ls-splash-plate-morning-still-v1.png?v=ls_topic_plate_v1") !important;
}
html[data-ls-reading-plate="mist"] #lsReservoirHome::before {
  background-image: url("../img/ls-splash-plate-river-mist-v1.png?v=ls_topic_plate_v1") !important;
}
html[data-ls-reading-plate="provision"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-provision-warm-path-v1.png?v=ls_topic_plate_v1") !important;
}
html[data-ls-reading-plate="peace"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-peace-still-dawn-v1.png?v=ls_topic_plate_v2") !important;
}
html[data-ls-reading-plate="emotional"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-emotional-v1.png?v=ls_topic_user_v1") !important;
}
html[data-ls-reading-plate="wisdomretreat"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-apologetics-atrium-walls-sapphire-edge-v1.png?v=ls_atrium_walls_v1") !important;
}
html[data-ls-reading-plate="retreat"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-peace-lux-moon-pool-v2.png?v=ls_peace_lux_v2") !important;
}
html[data-ls-reading-plate="chrome"] #lsReservoirHome::before {
  background-image: url("../img/ls-og-share-mountain-chrome.png?v=ls_reading_plate_v1") !important;
}
html[data-ls-reading-plate="couragepeak"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-courage-real-sky-v1.png?v=ls_courage_sky_v1") !important;
}
html[data-ls-reading-plate="kingdom"] #lsReservoirHome::before {
  background-image: url("../img/ls-reading-kingdom-balanced-vessel-v5.png?v=ls_kingdom_v5") !important;
}

/* The pane becomes one floating, curvy piece of frosted liquid glass. */
#lsReservoirHome .ls-rh-app {
  position: relative !important;
  z-index: 1 !important;
  width: min(480px, calc(100% - 26px)) !important;
  max-width: 480px !important;
  min-height: calc(100dvh - 42px) !important;
  margin: 14px auto 24px !important;
  padding: 34px 24px 60px !important;
  border-radius: 34px !important;
  background-color: rgba(15, 19, 29, 0.42) !important;
  background-image:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.03) 14%, transparent 34%),
    radial-gradient(130% 40% at 50% -6%, rgba(180, 210, 245, 0.10), transparent 60%) !important;
  backdrop-filter: blur(34px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(34px) saturate(1.4) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  box-shadow:
    0 34px 90px rgba(0, 0, 0, 0.58),
    0 8px 28px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 0 60px rgba(120, 160, 220, 0.05),
    0 0 64px rgba(70, 120, 210, 0.13) !important;
}
@media (min-width: 900px) {
  /* Wide curvy glass slab — leave room for the 2-column layout inside. */
  #lsReservoirHome .ls-rh-app {
    width: min(1040px, 92vw) !important;
    max-width: 1040px !important;
    border-radius: 40px !important;
    padding: 46px 52px 72px !important;
    margin: 20px auto 30px !important;
  }
}

/* Form fields must stay inside the glass (no spill on the right). */
#lsReservoirHome .ls-rh-ch-template,
#lsReservoirHome .ls-rh-ch-due,
#lsReservoirHome .ls-rh-join-code,
#lsReservoirHome .ls-rh-ch-set {
  box-sizing: border-box !important;
  max-width: 100% !important;
}
/* The challenge <select> can hold long titles — keep it clipped, not spilling. */
#lsReservoirHome .ls-rh-ch-template {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

@media (prefers-reduced-motion: reduce) {
  #lsReservoirHome::before { filter: saturate(1.05) brightness(0.72) !important; }
}

/* ════════════════════════════════════════════════════════════════════════
   LUXE LIFT — elegant editorial serif for the display titles, brighter glass
   + scene, and lighter text so the pane reads expensive (not a black box).
   ════════════════════════════════════════════════════════════════════════ */
#lsReservoirHome {
  --rh-line: rgba(255, 255, 255, 0.13) !important;
  --rh-line-strong: rgba(255, 255, 255, 0.24) !important;
  --rh-ink: #f4f7fc !important;
  --rh-ink-2: #d2dbe7 !important;
  --rh-ink-3: #a3afbf !important;
}

/* Let the chosen pack actually glow behind the glass. */
#lsReservoirHome::before {
  opacity: 0.46 !important;
  filter: saturate(1.1) brightness(0.92) blur(1.5px) !important;
}

/* The pane: lighter, more luminous, with a bright cool top sheen. */
#lsReservoirHome .ls-rh-app {
  background-color: rgba(20, 25, 36, 0.34) !important;
  background-image:
    linear-gradient(180deg, rgba(255, 255, 255, 0.17) 0%, rgba(255, 255, 255, 0.045) 12%, transparent 30%),
    radial-gradient(140% 42% at 50% -6%, rgba(196, 222, 252, 0.14), transparent 60%) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow:
    0 36px 96px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    inset 0 0 70px rgba(150, 185, 235, 0.07),
    0 0 70px rgba(80, 130, 215, 0.16) !important;
}

/* Display titles → refined editorial serif (Cormorant: elegant, NOT script). */
#lsReservoirHome .ls-rh-h1,
#lsReservoirHome .ls-rh-today-msg,
#lsReservoirHome .ls-rh-week-ref,
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title,
#lsReservoirHome .ls-rh-plan-name,
#lsReservoirHome .ls-rh-vname,
#lsReservoirHome .ls-rh-cname,
#lsReservoirHome .ls-rh-aname {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif !important;
  font-style: normal !important;
  font-weight: 600 !important;
  letter-spacing: 0.012em !important;
}
#lsReservoirHome .ls-rh-h1 {
  font-size: 35px !important;
  line-height: 1.12 !important;
  color: #ffffff !important;
  letter-spacing: 0.01em !important;
}
#lsReservoirHome .ls-rh-today-msg { font-size: 27px !important; color: #f7faff !important; }
#lsReservoirHome .ls-rh-week-ref  { font-size: 28px !important; color: #f7faff !important; }
#lsReservoirHome .ls-rh-build-title,
#lsReservoirHome .ls-rh-join-title { font-size: 22px !important; color: #f7faff !important; }

/* Body copy lifted out of the murk. */
#lsReservoirHome .ls-rh-greet { color: #ced7e3 !important; }
#lsReservoirHome .ls-rh-today-meta,
#lsReservoirHome .ls-rh-week-text,
#lsReservoirHome .ls-rh-today-tend,
#lsReservoirHome .ls-rh-empty-note,
#lsReservoirHome .ls-rh-join-msg { color: #b8c2cf !important; }

/* Eyebrow micro-labels: brighter icy accent. */
#lsReservoirHome .ls-rh-shelf-label,
#lsReservoirHome .ls-rh-today-lbl,
#lsReservoirHome .ls-rh-week-lbl { color: #a9d9f6 !important; }

/* Ghost buttons get a faint glass fill + brighter edge so they feel premium. */
#lsReservoirHome .ls-rh-today-btn,
#lsReservoirHome .ls-rh-week-btn,
#lsReservoirHome .ls-rh-week-share,
#lsReservoirHome .ls-rh-join-btn,
#lsReservoirHome .ls-rh-plan-start {
  border: 1px solid rgba(255, 255, 255, 0.26) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.015)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
  color: #eaf1fa !important;
}
#lsReservoirHome .ls-rh-today-btn:hover,
#lsReservoirHome .ls-rh-week-btn:hover,
#lsReservoirHome .ls-rh-week-share:hover,
#lsReservoirHome .ls-rh-join-btn:hover,
#lsReservoirHome .ls-rh-plan-start:hover {
  border-color: rgba(255, 255, 255, 0.42) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.03)) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   READABILITY BUMP — nudge the smallest mono/meta text up so nothing reads
   tiny on the glass (sizes only; colors/styles preserved).
   ════════════════════════════════════════════════════════════════════════ */
/* Section eyebrow labels (TODAY / CHALLENGE OF THE WEEK / YOUR RESERVOIRS…). */
#lsReservoirHome .ls-rh-shelf-label,
#lsReservoirHome .ls-rh-today-lbl,
#lsReservoirHome .ls-rh-week-lbl {
  font-size: 12px !important;
  letter-spacing: 0.22em !important;
}
/* Personal-challenge field labels (WHAT TO MEMORIZE / BY WHEN). */
#lsReservoirHome .ls-rh-build-lbl {
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
}
/* Challenge meta lines (COMMUNITY · WEEK… / 3 VERSES · IN ORDER). */
#lsReservoirHome .ls-rh-week-kind,
#lsReservoirHome .ls-rh-week-meta,
#lsReservoirHome .ls-rh-plan-meta {
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
}
#lsReservoirHome .ls-rh-week-you {
  font-size: 12.5px !important;
  letter-spacing: 0.05em !important;
}
/* Body / description copy. */
#lsReservoirHome .ls-rh-today-meta,
#lsReservoirHome .ls-rh-week-text,
#lsReservoirHome .ls-rh-today-tend,
#lsReservoirHome .ls-rh-empty-note,
#lsReservoirHome .ls-rh-join-msg,
#lsReservoirHome .ls-rh-rcue,
#lsReservoirHome .ls-rh-vcue,
#lsReservoirHome .ls-rh-ccue,
#lsReservoirHome .ls-rh-aprof {
  font-size: 14.5px !important;
  line-height: 1.55 !important;
}
/* Reservoir tile names + the "· Premium" tag. */
#lsReservoirHome .ls-rh-shelf .ls-rh-rname { font-size: 13.5px !important; }
#lsReservoirHome .ls-rh-shelf .ls-rh-rname::after,
#lsReservoirHome .ls-rh-rcard.ls-rh-rcard-locked .ls-rh-rname::after {
  font-size: 10px !important;
}
/* Progress / depth counters (0/4 etc.). */
#lsReservoirHome .ls-rh-rdeep,
#lsReservoirHome .ls-rh-vprog,
#lsReservoirHome .ls-rh-cprog,
#lsReservoirHome .ls-rh-aprog {
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
}
#lsReservoirHome .ls-rh-rdeep b,
#lsReservoirHome .ls-rh-vprog b,
#lsReservoirHome .ls-rh-cprog b { font-size: 14px !important; }
/* Course-code input. */
#lsReservoirHome .ls-rh-join-code { font-size: 14px !important; }

/* ════════════════════════════════════════════════════════════════════════
   LAYOUT ALIGN v23 — restore the Reservoir home grid after the glass/luxe
   passes. The pane hugs its content again; Today + Challenge sit side-by-side
   at the top instead of drifting to the bottom with a dead zone between.
   ════════════════════════════════════════════════════════════════════════ */
#lsReservoirHome .ls-rh-app {
  min-height: auto !important;
  height: auto !important;
}
#lsReservoirHome.ls-rh-visible {
  align-items: flex-start !important;
}

@media (min-width: 900px) {
  #lsReservoirHome .ls-rh-app {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 28px !important;
    align-content: start !important;
  }

  #lsReservoirHome .ls-rh-top,
  #lsReservoirHome .ls-rh-h1,
  #lsReservoirHome .ls-rh-greet,
  #lsReservoirHome .ls-rh-toggle,
  #lsReservoirHome .ls-rh-panel,
  #lsReservoirHome .ls-rh-join-course,
  #lsReservoirHome .ls-rh-teach {
    grid-column: 1 / -1 !important;
  }

  #lsReservoirHome .ls-rh-panel-personal.ls-rh-show {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 32px !important;
    row-gap: 10px !important;
    align-items: start !important;
    align-content: start !important;
  }

  /* Hero row: Today (left) + Challenge (right), pinned to the top. */
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-today {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    margin-top: 18px !important;
    align-self: start !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(2) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 18px 0 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-week {
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin-top: 0 !important;
  }

  /* Full-width section dividers only on rows below the hero pair. */
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(4) {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    margin: 32px 2px 14px !important;
    padding-top: 18px !important;
    border-top: 1px solid var(--rh-line, rgba(255, 255, 255, 0.13)) !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-active-plans {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(6) {
    grid-column: 1 !important;
    grid-row: 5 !important;
    margin: 32px 2px 14px !important;
    padding-top: 18px !important;
    border-top: 1px solid var(--rh-line, rgba(255, 255, 255, 0.13)) !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-plan-library {
    grid-column: 1 !important;
    grid-row: 6 !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(8) {
    grid-column: 2 !important;
    grid-row: 5 !important;
    margin: 32px 2px 14px !important;
    padding-top: 18px !important;
    border-top: 1px solid var(--rh-line, rgba(255, 255, 255, 0.13)) !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-build {
    grid-column: 2 !important;
    grid-row: 6 !important;
    height: auto !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(10) {
    grid-column: 1 / -1 !important;
    grid-row: 7 !important;
    margin: 32px 2px 14px !important;
    padding-top: 18px !important;
    border-top: 1px solid var(--rh-line, rgba(255, 255, 255, 0.13)) !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf {
    grid-column: 1 / -1 !important;
    grid-row: 8 !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-shelf-label:nth-child(12) {
    grid-column: 1 / -1 !important;
    grid-row: 9 !important;
    margin: 32px 2px 14px !important;
    padding-top: 18px !important;
    border-top: 1px solid var(--rh-line, rgba(255, 255, 255, 0.13)) !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-currents {
    grid-column: 1 / -1 !important;
    grid-row: 10 !important;
  }
  #lsReservoirHome .ls-rh-panel-personal > .ls-rh-tide {
    grid-column: 1 / -1 !important;
    grid-row: 11 !important;
  }
}
